mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-04-16 15:28:55 +00:00
Do a clean-up pass on the OBSOLETE features (versions):
- remove legions of those, - remove associated patches no longer needed, - mark then as (OBSOLETE) in the prompt;
This commit is contained in:
parent
ab0fc7eab4
commit
6c368af5b4
@ -9,50 +9,16 @@ choice
|
||||
bool
|
||||
prompt "binutils version"
|
||||
|
||||
config BINUTILS_V_2_11_2
|
||||
bool
|
||||
prompt "2.11.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config BINUTILS_V_2_13_90
|
||||
bool
|
||||
prompt "2.13.90"
|
||||
depends on OBSOLETE
|
||||
|
||||
config BINUTILS_V_2_14
|
||||
bool
|
||||
prompt "2.14"
|
||||
depends on OBSOLETE
|
||||
|
||||
config BINUTILS_V_2_14_90
|
||||
bool
|
||||
prompt "2.14.90"
|
||||
depends on OBSOLETE
|
||||
|
||||
config BINUTILS_V_2_14_92
|
||||
bool
|
||||
prompt "2.14.92"
|
||||
prompt "2.14 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config BINUTILS_V_2_15
|
||||
bool
|
||||
prompt "2.15"
|
||||
prompt "2.15 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config BINUTILS_V_2_15_90
|
||||
bool
|
||||
prompt "2.15.90"
|
||||
depends on OBSOLETE
|
||||
|
||||
config BINUTILS_V_2_15_91
|
||||
bool
|
||||
prompt "2.15.91"
|
||||
depends on OBSOLETE
|
||||
|
||||
config BINUTILS_V_2_16
|
||||
bool
|
||||
prompt "2.16"
|
||||
|
||||
config BINUTILS_V_2_16_1
|
||||
bool
|
||||
prompt "2.16.1"
|
||||
@ -61,89 +27,19 @@ config BINUTILS_V_2_17
|
||||
bool
|
||||
prompt "2.17"
|
||||
|
||||
config BINUTILS_V_2_17_50_0_1
|
||||
bool
|
||||
prompt "2.17.50.0.1"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_2
|
||||
bool
|
||||
prompt "2.17.50.0.2"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_3
|
||||
bool
|
||||
prompt "2.17.50.0.3"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_4
|
||||
bool
|
||||
prompt "2.17.50.0.4"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_5
|
||||
bool
|
||||
prompt "2.17.50.0.5"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_6
|
||||
bool
|
||||
prompt "2.17.50.0.6"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_7
|
||||
bool
|
||||
prompt "2.17.50.0.7"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_8
|
||||
bool
|
||||
prompt "2.17.50.0.8"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_9
|
||||
bool
|
||||
prompt "2.17.50.0.9"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_10
|
||||
bool
|
||||
prompt "2.17.50.0.10"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_11
|
||||
bool
|
||||
prompt "2.17.50.0.11"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_12
|
||||
bool
|
||||
prompt "2.17.50.0.12"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_13
|
||||
bool
|
||||
prompt "2.17.50.0.13"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_14
|
||||
bool
|
||||
prompt "2.17.50.0.14"
|
||||
prompt "2.17.50.0.10 (EXPERIMENTAL)"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_15
|
||||
bool
|
||||
prompt "2.17.50.0.15"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_16
|
||||
bool
|
||||
prompt "2.17.50.0.16"
|
||||
prompt "2.17.50.0.15 (EXPERIMENTAL)"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_17
|
||||
bool
|
||||
prompt "2.17.50.0.17"
|
||||
prompt "2.17.50.0.17 (EXPERIMENTAL)"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config BINUTILS_V_2_17_50_0_18
|
||||
@ -157,33 +53,12 @@ endchoice
|
||||
|
||||
config BINUTILS_VERSION
|
||||
string
|
||||
default "2.11.2" if BINUTILS_V_2_11_2
|
||||
default "2.13.90" if BINUTILS_V_2_13_90
|
||||
default "2.14" if BINUTILS_V_2_14
|
||||
default "2.14.90" if BINUTILS_V_2_14_90
|
||||
default "2.14.92" if BINUTILS_V_2_14_92
|
||||
default "2.15" if BINUTILS_V_2_15
|
||||
default "2.15.90" if BINUTILS_V_2_15_90
|
||||
default "2.15.91" if BINUTILS_V_2_15_91
|
||||
default "2.16" if BINUTILS_V_2_16
|
||||
default "2.16.1" if BINUTILS_V_2_16_1
|
||||
default "2.17" if BINUTILS_V_2_17
|
||||
default "2.17.50.0.1" if BINUTILS_V_2_17_50_0_1
|
||||
default "2.17.50.0.2" if BINUTILS_V_2_17_50_0_2
|
||||
default "2.17.50.0.3" if BINUTILS_V_2_17_50_0_3
|
||||
default "2.17.50.0.4" if BINUTILS_V_2_17_50_0_4
|
||||
default "2.17.50.0.5" if BINUTILS_V_2_17_50_0_5
|
||||
default "2.17.50.0.6" if BINUTILS_V_2_17_50_0_6
|
||||
default "2.17.50.0.7" if BINUTILS_V_2_17_50_0_7
|
||||
default "2.17.50.0.8" if BINUTILS_V_2_17_50_0_8
|
||||
default "2.17.50.0.9" if BINUTILS_V_2_17_50_0_9
|
||||
default "2.17.50.0.10" if BINUTILS_V_2_17_50_0_10
|
||||
default "2.17.50.0.11" if BINUTILS_V_2_17_50_0_11
|
||||
default "2.17.50.0.12" if BINUTILS_V_2_17_50_0_12
|
||||
default "2.17.50.0.13" if BINUTILS_V_2_17_50_0_13
|
||||
default "2.17.50.0.14" if BINUTILS_V_2_17_50_0_14
|
||||
default "2.17.50.0.15" if BINUTILS_V_2_17_50_0_15
|
||||
default "2.17.50.0.16" if BINUTILS_V_2_17_50_0_16
|
||||
default "2.17.50.0.17" if BINUTILS_V_2_17_50_0_17
|
||||
default "2.17.50.0.18" if BINUTILS_V_2_17_50_0_18
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
|
@ -6,81 +6,23 @@ choice
|
||||
|
||||
config CC_V_2_95_3
|
||||
bool
|
||||
prompt "2.95.3"
|
||||
prompt "2.95.3 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_2_3
|
||||
bool
|
||||
prompt "3.2.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_3
|
||||
bool
|
||||
prompt "3.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_3_1
|
||||
bool
|
||||
prompt "3.3.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_3_2
|
||||
bool
|
||||
prompt "3.3.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_3_3
|
||||
bool
|
||||
prompt "3.3.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_3_4
|
||||
bool
|
||||
prompt "3.3.4"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_3_5
|
||||
bool
|
||||
prompt "3.3.5"
|
||||
prompt "3.2.3 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_3_6
|
||||
bool
|
||||
prompt "3.3.6"
|
||||
|
||||
config CC_V_3_4_0
|
||||
bool
|
||||
prompt "3.4.0"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_4_1
|
||||
bool
|
||||
prompt "3.4.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_4_2
|
||||
bool
|
||||
prompt "3.4.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_4_3
|
||||
bool
|
||||
prompt "3.4.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_4_4
|
||||
bool
|
||||
prompt "3.4.4"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_4_5
|
||||
bool
|
||||
prompt "3.4.5"
|
||||
prompt "3.3.6 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_3_4_6
|
||||
bool
|
||||
prompt "3.4.6"
|
||||
prompt "3.4.6 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config CC_V_4_0_0
|
||||
bool
|
||||
@ -130,19 +72,7 @@ config CC_VERSION
|
||||
string
|
||||
default "2.95.3" if CC_V_2_95_3
|
||||
default "3.2.3" if CC_V_3_2_3
|
||||
default "3.3" if CC_V_3_3
|
||||
default "3.3.1" if CC_V_3_3_1
|
||||
default "3.3.2" if CC_V_3_3_2
|
||||
default "3.3.3" if CC_V_3_3_3
|
||||
default "3.3.4" if CC_V_3_3_4
|
||||
default "3.3.5" if CC_V_3_3_5
|
||||
default "3.3.6" if CC_V_3_3_6
|
||||
default "3.4.0" if CC_V_3_4_0
|
||||
default "3.4.1" if CC_V_3_4_1
|
||||
default "3.4.2" if CC_V_3_4_2
|
||||
default "3.4.3" if CC_V_3_4_3
|
||||
default "3.4.4" if CC_V_3_4_4
|
||||
default "3.4.5" if CC_V_3_4_5
|
||||
default "3.4.6" if CC_V_3_4_6
|
||||
default "4.0.0" if CC_V_4_0_0
|
||||
default "4.0.1" if CC_V_4_0_1
|
||||
|
@ -13,7 +13,7 @@ choice
|
||||
|
||||
config DMALLOC_V_5_4_3
|
||||
bool
|
||||
prompt "5.4.3"
|
||||
prompt "5.4.3 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config DMALLOC_V_5_5_2
|
||||
|
@ -42,19 +42,9 @@ config GDB_V_snapshot
|
||||
prompt "snapshot (EXPERIMENTAL)"
|
||||
depends on EXPERIMENTAL
|
||||
|
||||
config GDB_V_6_2_1
|
||||
bool
|
||||
prompt "6.2.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config GDB_V_6_3
|
||||
bool
|
||||
prompt "6.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config GDB_V_6_4
|
||||
bool
|
||||
prompt "6.4"
|
||||
prompt "6.4 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config GDB_V_6_5
|
||||
@ -72,8 +62,6 @@ endchoice
|
||||
config GDB_VERSION
|
||||
string
|
||||
default "snapshot" if GDB_V_snapshot
|
||||
default "6.2.1" if GDB_V_6_2_1
|
||||
default "6.3" if GDB_V_6_3
|
||||
default "6.4" if GDB_V_6_4
|
||||
default "6.5" if GDB_V_6_5
|
||||
default "6.6" if GDB_V_6_6
|
||||
|
@ -20,7 +20,7 @@ choice
|
||||
|
||||
config LTRACE_V_0_3_36
|
||||
bool
|
||||
prompt "0.3.36"
|
||||
prompt "0.3.36 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LTRACE_V_0_4
|
||||
|
@ -13,77 +13,12 @@ choice
|
||||
|
||||
config STRACE_V_4_5
|
||||
bool
|
||||
prompt "4.5"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_1
|
||||
bool
|
||||
prompt "4.5.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_2
|
||||
bool
|
||||
prompt "4.5.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_3
|
||||
bool
|
||||
prompt "4.5.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_4
|
||||
bool
|
||||
prompt "4.5.4"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_5
|
||||
bool
|
||||
prompt "4.5.5"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_6
|
||||
bool
|
||||
prompt "4.5.6"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_7
|
||||
bool
|
||||
prompt "4.5.7"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_8
|
||||
bool
|
||||
prompt "4.5.8"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_9
|
||||
bool
|
||||
prompt "4.5.9"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_10
|
||||
bool
|
||||
prompt "4.5.10"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_11
|
||||
bool
|
||||
prompt "4.5.11"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_12
|
||||
bool
|
||||
prompt "4.5.12"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_13
|
||||
bool
|
||||
prompt "4.5.13"
|
||||
prompt "4.5 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_14
|
||||
bool
|
||||
prompt "4.5.14"
|
||||
prompt "4.5.14 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config STRACE_V_4_5_15
|
||||
@ -97,19 +32,6 @@ endchoice
|
||||
config STRACE_VERSION
|
||||
string
|
||||
default "4.5" if STRACE_V_4_5
|
||||
default "4.5.1" if STRACE_V_4_5_1
|
||||
default "4.5.2" if STRACE_V_4_5_2
|
||||
default "4.5.3" if STRACE_V_4_5_3
|
||||
default "4.5.4" if STRACE_V_4_5_4
|
||||
default "4.5.5" if STRACE_V_4_5_5
|
||||
default "4.5.6" if STRACE_V_4_5_6
|
||||
default "4.5.7" if STRACE_V_4_5_7
|
||||
default "4.5.8" if STRACE_V_4_5_8
|
||||
default "4.5.9" if STRACE_V_4_5_9
|
||||
default "4.5.10" if STRACE_V_4_5_10
|
||||
default "4.5.11" if STRACE_V_4_5_11
|
||||
default "4.5.12" if STRACE_V_4_5_12
|
||||
default "4.5.13" if STRACE_V_4_5_13
|
||||
default "4.5.14" if STRACE_V_4_5_14
|
||||
default "4.5.15" if STRACE_V_4_5_15
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
|
@ -2,25 +2,9 @@ choice
|
||||
bool
|
||||
prompt "Linux kernel version"
|
||||
|
||||
config KERNEL_COPY_V_2_6_0
|
||||
config KERNEL_COPY_V_2_4_26
|
||||
bool
|
||||
prompt "2.6.0"
|
||||
|
||||
config KERNEL_COPY_V_2_6_1
|
||||
bool
|
||||
prompt "2.6.1"
|
||||
|
||||
config KERNEL_COPY_V_2_6_2
|
||||
bool
|
||||
prompt "2.6.2"
|
||||
|
||||
config KERNEL_COPY_V_2_6_3
|
||||
bool
|
||||
prompt "2.6.3"
|
||||
|
||||
config KERNEL_COPY_V_2_6_4
|
||||
bool
|
||||
prompt "2.6.4"
|
||||
prompt "2.4.26"
|
||||
|
||||
config KERNEL_COPY_V_2_6_5
|
||||
bool
|
||||
@ -38,645 +22,21 @@ config KERNEL_COPY_V_2_6_8
|
||||
bool
|
||||
prompt "2.6.8"
|
||||
|
||||
config KERNEL_COPY_V_2_6_8_1
|
||||
bool
|
||||
prompt "2.6.8.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_9
|
||||
bool
|
||||
prompt "2.6.9"
|
||||
|
||||
config KERNEL_COPY_V_2_6_10
|
||||
bool
|
||||
prompt "2.6.10"
|
||||
|
||||
config KERNEL_COPY_V_2_6_11
|
||||
bool
|
||||
prompt "2.6.11"
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_1
|
||||
bool
|
||||
prompt "2.6.11.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_10
|
||||
bool
|
||||
prompt "2.6.11.10"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_11
|
||||
bool
|
||||
prompt "2.6.11.11"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_12
|
||||
bool
|
||||
prompt "2.6.11.12"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_2
|
||||
bool
|
||||
prompt "2.6.11.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_3
|
||||
bool
|
||||
prompt "2.6.11.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_4
|
||||
bool
|
||||
prompt "2.6.11.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_5
|
||||
bool
|
||||
prompt "2.6.11.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_6
|
||||
bool
|
||||
prompt "2.6.11.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_7
|
||||
bool
|
||||
prompt "2.6.11.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_8
|
||||
bool
|
||||
prompt "2.6.11.8"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_11_9
|
||||
bool
|
||||
prompt "2.6.11.9"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_12
|
||||
bool
|
||||
prompt "2.6.12"
|
||||
|
||||
config KERNEL_COPY_V_2_6_12_1
|
||||
bool
|
||||
prompt "2.6.12.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_12_2
|
||||
bool
|
||||
prompt "2.6.12.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_12_3
|
||||
bool
|
||||
prompt "2.6.12.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_12_4
|
||||
bool
|
||||
prompt "2.6.12.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_12_5
|
||||
bool
|
||||
prompt "2.6.12.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_12_6
|
||||
bool
|
||||
prompt "2.6.12.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_13
|
||||
bool
|
||||
prompt "2.6.13"
|
||||
|
||||
config KERNEL_COPY_V_2_6_13_1
|
||||
bool
|
||||
prompt "2.6.13.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_13_2
|
||||
bool
|
||||
prompt "2.6.13.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_13_3
|
||||
bool
|
||||
prompt "2.6.13.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_13_4
|
||||
bool
|
||||
prompt "2.6.13.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_13_5
|
||||
bool
|
||||
prompt "2.6.13.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_14
|
||||
bool
|
||||
prompt "2.6.14"
|
||||
|
||||
config KERNEL_COPY_V_2_6_14_1
|
||||
bool
|
||||
prompt "2.6.14.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_14_2
|
||||
bool
|
||||
prompt "2.6.14.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_14_3
|
||||
bool
|
||||
prompt "2.6.14.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_14_4
|
||||
bool
|
||||
prompt "2.6.14.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_14_5
|
||||
bool
|
||||
prompt "2.6.14.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_14_6
|
||||
bool
|
||||
prompt "2.6.14.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_14_7
|
||||
bool
|
||||
prompt "2.6.14.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_15
|
||||
bool
|
||||
prompt "2.6.15"
|
||||
|
||||
config KERNEL_COPY_V_2_6_15_1
|
||||
bool
|
||||
prompt "2.6.15.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_15_2
|
||||
bool
|
||||
prompt "2.6.15.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_15_3
|
||||
bool
|
||||
prompt "2.6.15.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_15_4
|
||||
bool
|
||||
prompt "2.6.15.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_15_5
|
||||
bool
|
||||
prompt "2.6.15.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_15_6
|
||||
bool
|
||||
prompt "2.6.15.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_15_7
|
||||
bool
|
||||
prompt "2.6.15.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16
|
||||
bool
|
||||
prompt "2.6.16"
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_1
|
||||
bool
|
||||
prompt "2.6.16.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_10
|
||||
bool
|
||||
prompt "2.6.16.10"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_11
|
||||
bool
|
||||
prompt "2.6.16.11"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_12
|
||||
bool
|
||||
prompt "2.6.16.12"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_13
|
||||
bool
|
||||
prompt "2.6.16.13"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_14
|
||||
bool
|
||||
prompt "2.6.16.14"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_15
|
||||
bool
|
||||
prompt "2.6.16.15"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_16
|
||||
bool
|
||||
prompt "2.6.16.16"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_17
|
||||
bool
|
||||
prompt "2.6.16.17"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_18
|
||||
bool
|
||||
prompt "2.6.16.18"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_19
|
||||
bool
|
||||
prompt "2.6.16.19"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_2
|
||||
bool
|
||||
prompt "2.6.16.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_20
|
||||
bool
|
||||
prompt "2.6.16.20"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_21
|
||||
bool
|
||||
prompt "2.6.16.21"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_22
|
||||
bool
|
||||
prompt "2.6.16.22"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_23
|
||||
bool
|
||||
prompt "2.6.16.23"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_24
|
||||
bool
|
||||
prompt "2.6.16.24"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_25
|
||||
bool
|
||||
prompt "2.6.16.25"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_26
|
||||
bool
|
||||
prompt "2.6.16.26"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_27
|
||||
bool
|
||||
prompt "2.6.16.27"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_28
|
||||
bool
|
||||
prompt "2.6.16.28"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_29
|
||||
bool
|
||||
prompt "2.6.16.29"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_3
|
||||
bool
|
||||
prompt "2.6.16.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_30
|
||||
bool
|
||||
prompt "2.6.16.30"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_31
|
||||
bool
|
||||
prompt "2.6.16.31"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_32
|
||||
bool
|
||||
prompt "2.6.16.32"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_33
|
||||
bool
|
||||
prompt "2.6.16.33"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_34
|
||||
bool
|
||||
prompt "2.6.16.34"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_35
|
||||
bool
|
||||
prompt "2.6.16.35"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_36
|
||||
bool
|
||||
prompt "2.6.16.36"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_4
|
||||
bool
|
||||
prompt "2.6.16.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_5
|
||||
bool
|
||||
prompt "2.6.16.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_6
|
||||
bool
|
||||
prompt "2.6.16.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_7
|
||||
bool
|
||||
prompt "2.6.16.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_8
|
||||
bool
|
||||
prompt "2.6.16.8"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_16_9
|
||||
bool
|
||||
prompt "2.6.16.9"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17
|
||||
bool
|
||||
prompt "2.6.17"
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_1
|
||||
bool
|
||||
prompt "2.6.17.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_10
|
||||
bool
|
||||
prompt "2.6.17.10"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_11
|
||||
bool
|
||||
prompt "2.6.17.11"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_12
|
||||
bool
|
||||
prompt "2.6.17.12"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_13
|
||||
bool
|
||||
prompt "2.6.17.13"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_14
|
||||
bool
|
||||
prompt "2.6.17.14"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_2
|
||||
bool
|
||||
prompt "2.6.17.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_3
|
||||
bool
|
||||
prompt "2.6.17.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_4
|
||||
bool
|
||||
prompt "2.6.17.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_5
|
||||
bool
|
||||
prompt "2.6.17.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_6
|
||||
bool
|
||||
prompt "2.6.17.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_7
|
||||
bool
|
||||
prompt "2.6.17.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_8
|
||||
bool
|
||||
prompt "2.6.17.8"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_17_9
|
||||
bool
|
||||
prompt "2.6.17.9"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_18
|
||||
bool
|
||||
prompt "2.6.18"
|
||||
|
||||
config KERNEL_COPY_V_2_6_18_1
|
||||
bool
|
||||
prompt "2.6.18.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_18_2
|
||||
bool
|
||||
prompt "2.6.18.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_18_3
|
||||
bool
|
||||
prompt "2.6.18.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_18_4
|
||||
bool
|
||||
prompt "2.6.18.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_18_5
|
||||
bool
|
||||
prompt "2.6.18.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_18_6
|
||||
bool
|
||||
prompt "2.6.18.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_COPY_V_2_6_19
|
||||
bool
|
||||
prompt "2.6.19"
|
||||
|
||||
config KERNEL_COPY_V_2_6_19_1
|
||||
bool
|
||||
prompt "2.6.19.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
# CT_INSERT_VERSION_ABOVE
|
||||
# Don't remove above line!
|
||||
endchoice
|
||||
|
||||
config KERNEL_VERSION
|
||||
string
|
||||
default "2.6.0" if KERNEL_COPY_V_2_6_0
|
||||
default "2.6.1" if KERNEL_COPY_V_2_6_1
|
||||
default "2.6.2" if KERNEL_COPY_V_2_6_2
|
||||
default "2.6.3" if KERNEL_COPY_V_2_6_3
|
||||
default "2.6.4" if KERNEL_COPY_V_2_6_4
|
||||
default "2.6.5" if KERNEL_COPY_V_2_6_5
|
||||
default "2.6.6" if KERNEL_COPY_V_2_6_6
|
||||
default "2.6.7" if KERNEL_COPY_V_2_6_7
|
||||
default "2.6.8" if KERNEL_COPY_V_2_6_8
|
||||
default "2.6.8.1" if KERNEL_COPY_V_2_6_8_1
|
||||
default "2.6.9" if KERNEL_COPY_V_2_6_9
|
||||
default "2.6.10" if KERNEL_COPY_V_2_6_10
|
||||
default "2.6.11" if KERNEL_COPY_V_2_6_11
|
||||
default "2.6.11.1" if KERNEL_COPY_V_2_6_11_1
|
||||
default "2.6.11.10" if KERNEL_COPY_V_2_6_11_10
|
||||
default "2.6.11.11" if KERNEL_COPY_V_2_6_11_11
|
||||
default "2.6.11.12" if KERNEL_COPY_V_2_6_11_12
|
||||
default "2.6.11.2" if KERNEL_COPY_V_2_6_11_2
|
||||
default "2.6.11.3" if KERNEL_COPY_V_2_6_11_3
|
||||
default "2.6.11.4" if KERNEL_COPY_V_2_6_11_4
|
||||
default "2.6.11.5" if KERNEL_COPY_V_2_6_11_5
|
||||
default "2.6.11.6" if KERNEL_COPY_V_2_6_11_6
|
||||
default "2.6.11.7" if KERNEL_COPY_V_2_6_11_7
|
||||
default "2.6.11.8" if KERNEL_COPY_V_2_6_11_8
|
||||
default "2.6.11.9" if KERNEL_COPY_V_2_6_11_9
|
||||
default "2.6.12" if KERNEL_COPY_V_2_6_12
|
||||
default "2.6.12.1" if KERNEL_COPY_V_2_6_12_1
|
||||
default "2.6.12.2" if KERNEL_COPY_V_2_6_12_2
|
||||
default "2.6.12.3" if KERNEL_COPY_V_2_6_12_3
|
||||
default "2.6.12.4" if KERNEL_COPY_V_2_6_12_4
|
||||
default "2.6.12.5" if KERNEL_COPY_V_2_6_12_5
|
||||
default "2.6.12.6" if KERNEL_COPY_V_2_6_12_6
|
||||
default "2.6.13" if KERNEL_COPY_V_2_6_13
|
||||
default "2.6.13.1" if KERNEL_COPY_V_2_6_13_1
|
||||
default "2.6.13.2" if KERNEL_COPY_V_2_6_13_2
|
||||
default "2.6.13.3" if KERNEL_COPY_V_2_6_13_3
|
||||
default "2.6.13.4" if KERNEL_COPY_V_2_6_13_4
|
||||
default "2.6.13.5" if KERNEL_COPY_V_2_6_13_5
|
||||
default "2.6.14" if KERNEL_COPY_V_2_6_14
|
||||
default "2.6.14.1" if KERNEL_COPY_V_2_6_14_1
|
||||
default "2.6.14.2" if KERNEL_COPY_V_2_6_14_2
|
||||
default "2.6.14.3" if KERNEL_COPY_V_2_6_14_3
|
||||
default "2.6.14.4" if KERNEL_COPY_V_2_6_14_4
|
||||
default "2.6.14.5" if KERNEL_COPY_V_2_6_14_5
|
||||
default "2.6.14.6" if KERNEL_COPY_V_2_6_14_6
|
||||
default "2.6.14.7" if KERNEL_COPY_V_2_6_14_7
|
||||
default "2.6.15" if KERNEL_COPY_V_2_6_15
|
||||
default "2.6.15.1" if KERNEL_COPY_V_2_6_15_1
|
||||
default "2.6.15.2" if KERNEL_COPY_V_2_6_15_2
|
||||
default "2.6.15.3" if KERNEL_COPY_V_2_6_15_3
|
||||
default "2.6.15.4" if KERNEL_COPY_V_2_6_15_4
|
||||
default "2.6.15.5" if KERNEL_COPY_V_2_6_15_5
|
||||
default "2.6.15.6" if KERNEL_COPY_V_2_6_15_6
|
||||
default "2.6.15.7" if KERNEL_COPY_V_2_6_15_7
|
||||
default "2.6.16" if KERNEL_COPY_V_2_6_16
|
||||
default "2.6.16.1" if KERNEL_COPY_V_2_6_16_1
|
||||
default "2.6.16.10" if KERNEL_COPY_V_2_6_16_10
|
||||
default "2.6.16.11" if KERNEL_COPY_V_2_6_16_11
|
||||
default "2.6.16.12" if KERNEL_COPY_V_2_6_16_12
|
||||
default "2.6.16.13" if KERNEL_COPY_V_2_6_16_13
|
||||
default "2.6.16.14" if KERNEL_COPY_V_2_6_16_14
|
||||
default "2.6.16.15" if KERNEL_COPY_V_2_6_16_15
|
||||
default "2.6.16.16" if KERNEL_COPY_V_2_6_16_16
|
||||
default "2.6.16.17" if KERNEL_COPY_V_2_6_16_17
|
||||
default "2.6.16.18" if KERNEL_COPY_V_2_6_16_18
|
||||
default "2.6.16.19" if KERNEL_COPY_V_2_6_16_19
|
||||
default "2.6.16.2" if KERNEL_COPY_V_2_6_16_2
|
||||
default "2.6.16.20" if KERNEL_COPY_V_2_6_16_20
|
||||
default "2.6.16.21" if KERNEL_COPY_V_2_6_16_21
|
||||
default "2.6.16.22" if KERNEL_COPY_V_2_6_16_22
|
||||
default "2.6.16.23" if KERNEL_COPY_V_2_6_16_23
|
||||
default "2.6.16.24" if KERNEL_COPY_V_2_6_16_24
|
||||
default "2.6.16.25" if KERNEL_COPY_V_2_6_16_25
|
||||
default "2.6.16.26" if KERNEL_COPY_V_2_6_16_26
|
||||
default "2.6.16.27" if KERNEL_COPY_V_2_6_16_27
|
||||
default "2.6.16.28" if KERNEL_COPY_V_2_6_16_28
|
||||
default "2.6.16.29" if KERNEL_COPY_V_2_6_16_29
|
||||
default "2.6.16.3" if KERNEL_COPY_V_2_6_16_3
|
||||
default "2.6.16.30" if KERNEL_COPY_V_2_6_16_30
|
||||
default "2.6.16.31" if KERNEL_COPY_V_2_6_16_31
|
||||
default "2.6.16.32" if KERNEL_COPY_V_2_6_16_32
|
||||
default "2.6.16.33" if KERNEL_COPY_V_2_6_16_33
|
||||
default "2.6.16.34" if KERNEL_COPY_V_2_6_16_34
|
||||
default "2.6.16.35" if KERNEL_COPY_V_2_6_16_35
|
||||
default "2.6.16.36" if KERNEL_COPY_V_2_6_16_36
|
||||
default "2.6.16.4" if KERNEL_COPY_V_2_6_16_4
|
||||
default "2.6.16.5" if KERNEL_COPY_V_2_6_16_5
|
||||
default "2.6.16.6" if KERNEL_COPY_V_2_6_16_6
|
||||
default "2.6.16.7" if KERNEL_COPY_V_2_6_16_7
|
||||
default "2.6.16.8" if KERNEL_COPY_V_2_6_16_8
|
||||
default "2.6.16.9" if KERNEL_COPY_V_2_6_16_9
|
||||
default "2.6.17" if KERNEL_COPY_V_2_6_17
|
||||
default "2.6.17.1" if KERNEL_COPY_V_2_6_17_1
|
||||
default "2.6.17.10" if KERNEL_COPY_V_2_6_17_10
|
||||
default "2.6.17.11" if KERNEL_COPY_V_2_6_17_11
|
||||
default "2.6.17.12" if KERNEL_COPY_V_2_6_17_12
|
||||
default "2.6.17.13" if KERNEL_COPY_V_2_6_17_13
|
||||
default "2.6.17.14" if KERNEL_COPY_V_2_6_17_14
|
||||
default "2.6.17.2" if KERNEL_COPY_V_2_6_17_2
|
||||
default "2.6.17.3" if KERNEL_COPY_V_2_6_17_3
|
||||
default "2.6.17.4" if KERNEL_COPY_V_2_6_17_4
|
||||
default "2.6.17.5" if KERNEL_COPY_V_2_6_17_5
|
||||
default "2.6.17.6" if KERNEL_COPY_V_2_6_17_6
|
||||
default "2.6.17.7" if KERNEL_COPY_V_2_6_17_7
|
||||
default "2.6.17.8" if KERNEL_COPY_V_2_6_17_8
|
||||
default "2.6.17.9" if KERNEL_COPY_V_2_6_17_9
|
||||
default "2.6.18" if KERNEL_COPY_V_2_6_18
|
||||
default "2.6.18.1" if KERNEL_COPY_V_2_6_18_1
|
||||
default "2.6.18.2" if KERNEL_COPY_V_2_6_18_2
|
||||
default "2.6.18.3" if KERNEL_COPY_V_2_6_18_3
|
||||
default "2.6.18.4" if KERNEL_COPY_V_2_6_18_4
|
||||
default "2.6.18.5" if KERNEL_COPY_V_2_6_18_5
|
||||
default "2.6.18.6" if KERNEL_COPY_V_2_6_18_6
|
||||
default "2.6.19" if KERNEL_COPY_V_2_6_19
|
||||
default "2.6.19.1" if KERNEL_COPY_V_2_6_19_1
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
# Don't remove above line!
|
||||
|
@ -2,203 +2,24 @@ choice
|
||||
bool
|
||||
prompt "Linux kernel version"
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18
|
||||
bool
|
||||
prompt "2.6.18"
|
||||
depends on OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18_1
|
||||
bool
|
||||
prompt "2.6.18.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18_2
|
||||
bool
|
||||
prompt "2.6.18.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18_3
|
||||
bool
|
||||
prompt "2.6.18.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18_4
|
||||
bool
|
||||
prompt "2.6.18.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18_5
|
||||
bool
|
||||
prompt "2.6.18.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18_6
|
||||
bool
|
||||
prompt "2.6.18.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18_7
|
||||
bool
|
||||
prompt "2.6.18.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_18_8
|
||||
bool
|
||||
prompt "2.6.18.8"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_19
|
||||
bool
|
||||
prompt "2.6.19"
|
||||
depends on OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_19_1
|
||||
bool
|
||||
prompt "2.6.19.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_19_2
|
||||
bool
|
||||
prompt "2.6.19.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_19_3
|
||||
bool
|
||||
prompt "2.6.19.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_19_4
|
||||
bool
|
||||
prompt "2.6.19.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_19_5
|
||||
bool
|
||||
prompt "2.6.19.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_19_6
|
||||
bool
|
||||
prompt "2.6.19.6"
|
||||
prompt "2.6.18.8 (OBSOLETE)"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_19_7
|
||||
bool
|
||||
prompt "2.6.19.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20
|
||||
bool
|
||||
prompt "2.6.20"
|
||||
depends on OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_1
|
||||
bool
|
||||
prompt "2.6.20.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_2
|
||||
bool
|
||||
prompt "2.6.20.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_3
|
||||
bool
|
||||
prompt "2.6.20.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_4
|
||||
bool
|
||||
prompt "2.6.20.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_5
|
||||
bool
|
||||
prompt "2.6.20.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_6
|
||||
bool
|
||||
prompt "2.6.20.6"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_7
|
||||
bool
|
||||
prompt "2.6.20.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_8
|
||||
bool
|
||||
prompt "2.6.20.8"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_9
|
||||
bool
|
||||
prompt "2.6.20.9"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_10
|
||||
bool
|
||||
prompt "2.6.20.10"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_11
|
||||
bool
|
||||
prompt "2.6.20.11"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_12
|
||||
bool
|
||||
prompt "2.6.20.12"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_13
|
||||
bool
|
||||
prompt "2.6.20.13"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_14
|
||||
bool
|
||||
prompt "2.6.20.14"
|
||||
prompt "2.6.19.7 (OBSOLETE)"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_20_15
|
||||
bool
|
||||
prompt "2.6.20.15"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
prompt "2.6.20.15 (OBSOLETE)"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_21
|
||||
config KERNEL_INSTALL_V_2_6_21_7
|
||||
bool
|
||||
prompt "2.6.21"
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_21_1
|
||||
bool
|
||||
prompt "2.6.21.1"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_21_2
|
||||
bool
|
||||
prompt "2.6.21.2"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_21_3
|
||||
bool
|
||||
prompt "2.6.21.3"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_21_4
|
||||
bool
|
||||
prompt "2.6.21.4"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_21_5
|
||||
bool
|
||||
prompt "2.6.21.5"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_21_6
|
||||
bool
|
||||
prompt "2.6.21.6"
|
||||
prompt "2.6.21.7"
|
||||
depends on KERNEL_VERSION_SEE_EXTRAVERSION
|
||||
|
||||
config KERNEL_INSTALL_V_2_6_22
|
||||
@ -221,46 +42,10 @@ endchoice
|
||||
|
||||
config KERNEL_VERSION
|
||||
string
|
||||
default "2.6.18" if KERNEL_INSTALL_V_2_6_18
|
||||
default "2.6.18.1" if KERNEL_INSTALL_V_2_6_18_1
|
||||
default "2.6.18.2" if KERNEL_INSTALL_V_2_6_18_2
|
||||
default "2.6.18.3" if KERNEL_INSTALL_V_2_6_18_3
|
||||
default "2.6.18.4" if KERNEL_INSTALL_V_2_6_18_4
|
||||
default "2.6.18.5" if KERNEL_INSTALL_V_2_6_18_5
|
||||
default "2.6.18.6" if KERNEL_INSTALL_V_2_6_18_6
|
||||
default "2.6.18.7" if KERNEL_INSTALL_V_2_6_18_7
|
||||
default "2.6.18.8" if KERNEL_INSTALL_V_2_6_18_8
|
||||
default "2.6.19" if KERNEL_INSTALL_V_2_6_19
|
||||
default "2.6.19.1" if KERNEL_INSTALL_V_2_6_19_1
|
||||
default "2.6.19.2" if KERNEL_INSTALL_V_2_6_19_2
|
||||
default "2.6.19.3" if KERNEL_INSTALL_V_2_6_19_3
|
||||
default "2.6.19.4" if KERNEL_INSTALL_V_2_6_19_4
|
||||
default "2.6.19.5" if KERNEL_INSTALL_V_2_6_19_5
|
||||
default "2.6.19.6" if KERNEL_INSTALL_V_2_6_19_6
|
||||
default "2.6.19.7" if KERNEL_INSTALL_V_2_6_19_7
|
||||
default "2.6.20" if KERNEL_INSTALL_V_2_6_20
|
||||
default "2.6.20.1" if KERNEL_INSTALL_V_2_6_20_1
|
||||
default "2.6.20.2" if KERNEL_INSTALL_V_2_6_20_2
|
||||
default "2.6.20.3" if KERNEL_INSTALL_V_2_6_20_3
|
||||
default "2.6.20.4" if KERNEL_INSTALL_V_2_6_20_4
|
||||
default "2.6.20.5" if KERNEL_INSTALL_V_2_6_20_5
|
||||
default "2.6.20.6" if KERNEL_INSTALL_V_2_6_20_6
|
||||
default "2.6.20.7" if KERNEL_INSTALL_V_2_6_20_7
|
||||
default "2.6.20.8" if KERNEL_INSTALL_V_2_6_20_8
|
||||
default "2.6.20.9" if KERNEL_INSTALL_V_2_6_20_9
|
||||
default "2.6.20.10" if KERNEL_INSTALL_V_2_6_20_10
|
||||
default "2.6.20.11" if KERNEL_INSTALL_V_2_6_20_11
|
||||
default "2.6.20.12" if KERNEL_INSTALL_V_2_6_20_12
|
||||
default "2.6.20.13" if KERNEL_INSTALL_V_2_6_20_13
|
||||
default "2.6.20.14" if KERNEL_INSTALL_V_2_6_20_14
|
||||
default "2.6.20.15" if KERNEL_INSTALL_V_2_6_20_15
|
||||
default "2.6.21" if KERNEL_INSTALL_V_2_6_21
|
||||
default "2.6.21.1" if KERNEL_INSTALL_V_2_6_21_1
|
||||
default "2.6.21.2" if KERNEL_INSTALL_V_2_6_21_2
|
||||
default "2.6.21.3" if KERNEL_INSTALL_V_2_6_21_3
|
||||
default "2.6.21.4" if KERNEL_INSTALL_V_2_6_21_4
|
||||
default "2.6.21.5" if KERNEL_INSTALL_V_2_6_21_5
|
||||
default "2.6.21.6" if KERNEL_INSTALL_V_2_6_21_6
|
||||
default "2.6.21.7" if KERNEL_INSTALL_V_2_6_21_7
|
||||
default "2.6.22" if KERNEL_INSTALL_V_2_6_22
|
||||
default "2.6.22.1" if KERNEL_INSTALL_V_2_6_22_1
|
||||
default "2.6.22.2" if KERNEL_INSTALL_V_2_6_22_2
|
||||
|
@ -4,103 +4,10 @@ choice
|
||||
bool
|
||||
prompt "glibc version"
|
||||
|
||||
config LIBC_V_1_09_1
|
||||
bool
|
||||
prompt "1.09.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_0_1
|
||||
bool
|
||||
prompt "2.0.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_0_6
|
||||
bool
|
||||
prompt "2.0.6"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_1_1
|
||||
bool
|
||||
prompt "2.1.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_1_2
|
||||
bool
|
||||
prompt "2.1.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_1_3
|
||||
bool
|
||||
prompt "2.1.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_2
|
||||
bool
|
||||
prompt "2.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_2_1
|
||||
bool
|
||||
prompt "2.2.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_2_2
|
||||
bool
|
||||
prompt "2.2.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_2_3
|
||||
bool
|
||||
prompt "2.2.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_2_4
|
||||
bool
|
||||
prompt "2.2.4"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_2_5
|
||||
bool
|
||||
prompt "2.2.5"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_3
|
||||
bool
|
||||
prompt "2.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_3_1
|
||||
bool
|
||||
prompt "2.3.1"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_3_2
|
||||
bool
|
||||
prompt "2.3.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_3_3
|
||||
bool
|
||||
prompt "2.3.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_3_4
|
||||
bool
|
||||
prompt "2.3.4"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_3_5
|
||||
bool
|
||||
prompt "2.3.5"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_3_6
|
||||
bool
|
||||
prompt "2.3.6"
|
||||
|
||||
config LIBC_V_2_4
|
||||
bool
|
||||
prompt "2.4"
|
||||
prompt "2.3.6 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_2_5
|
||||
bool
|
||||
@ -108,8 +15,7 @@ config LIBC_V_2_5
|
||||
|
||||
config LIBC_V_2_5_1
|
||||
bool
|
||||
prompt "2.5.1 (EXPERIMENTAL)"
|
||||
depends on EXPERIMENTAL
|
||||
prompt "2.5.1"
|
||||
|
||||
config LIBC_V_2_6
|
||||
bool
|
||||
@ -127,24 +33,6 @@ endchoice
|
||||
|
||||
config LIBC_VERSION
|
||||
string
|
||||
default "1.09.1" if LIBC_V_1_09_1
|
||||
default "2.0.1" if LIBC_V_2_0_1
|
||||
default "2.0.6" if LIBC_V_2_0_6
|
||||
default "2.1.1" if LIBC_V_2_1_1
|
||||
default "2.1.2" if LIBC_V_2_1_2
|
||||
default "2.1.3" if LIBC_V_2_1_3
|
||||
default "2.2" if LIBC_V_2_2
|
||||
default "2.2.1" if LIBC_V_2_2_1
|
||||
default "2.2.2" if LIBC_V_2_2_2
|
||||
default "2.2.3" if LIBC_V_2_2_3
|
||||
default "2.2.4" if LIBC_V_2_2_4
|
||||
default "2.2.5" if LIBC_V_2_2_5
|
||||
default "2.3" if LIBC_V_2_3
|
||||
default "2.3.1" if LIBC_V_2_3_1
|
||||
default "2.3.2" if LIBC_V_2_3_2
|
||||
default "2.3.3" if LIBC_V_2_3_3
|
||||
default "2.3.4" if LIBC_V_2_3_4
|
||||
default "2.3.5" if LIBC_V_2_3_5
|
||||
default "2.3.6" if LIBC_V_2_3_6
|
||||
default "2.4" if LIBC_V_2_4
|
||||
default "2.5" if LIBC_V_2_5
|
||||
|
@ -12,29 +12,19 @@ config LIBC_V_specific_date
|
||||
bool
|
||||
prompt "<specific date>"
|
||||
|
||||
config LIBC_V_0_9_26
|
||||
bool
|
||||
prompt "0.9.26"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_0_9_27
|
||||
bool
|
||||
prompt "0.9.27"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_0_9_28
|
||||
bool
|
||||
prompt "0.9.28"
|
||||
prompt "0.9.28 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_0_9_28_1
|
||||
bool
|
||||
prompt "0.9.28.1"
|
||||
prompt "0.9.28.1 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_0_9_28_2
|
||||
bool
|
||||
prompt "0.9.28.2"
|
||||
prompt "0.9.28.2 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_V_0_9_28_3
|
||||
@ -53,8 +43,6 @@ config LIBC_VERSION
|
||||
string
|
||||
prompt "Enter date (YYYYMMDD)" if LIBC_V_specific_date
|
||||
default "snapshot" if LIBC_V_snapshot
|
||||
default "0.9.26" if LIBC_V_0_9_26
|
||||
default "0.9.27" if LIBC_V_0_9_27
|
||||
default "0.9.28" if LIBC_V_0_9_28
|
||||
default "0.9.28.1" if LIBC_V_0_9_28_1
|
||||
default "0.9.28.2" if LIBC_V_0_9_28_2
|
||||
@ -62,6 +50,12 @@ config LIBC_VERSION
|
||||
default "0.9.29" if LIBC_V_0_9_29
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
# Don't remove above line!
|
||||
help
|
||||
Enter the date of the snapshot you want to use in the form: YYYYMMDD
|
||||
where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
|
||||
day in the month.
|
||||
|
||||
Please note that uClibc site removes snapshots older than a month.
|
||||
|
||||
choice
|
||||
bool
|
||||
|
@ -19,44 +19,9 @@ choice
|
||||
bool
|
||||
prompt "libelf version"
|
||||
|
||||
config LIBELF_V_0_8_0
|
||||
bool
|
||||
prompt "0.8.0"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBELF_V_0_8_2
|
||||
bool
|
||||
prompt "0.8.2"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBELF_V_0_8_3
|
||||
bool
|
||||
prompt "0.8.3"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBELF_V_0_8_4
|
||||
bool
|
||||
prompt "0.8.4"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBELF_V_0_8_5
|
||||
bool
|
||||
prompt "0.8.5"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBELF_V_0_8_6
|
||||
bool
|
||||
prompt "0.8.6"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBELF_V_0_8_7
|
||||
bool
|
||||
prompt "0.8.7"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBELF_V_0_8_8
|
||||
bool
|
||||
prompt "0.8.8"
|
||||
prompt "0.8.8 (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBELF_V_0_8_9
|
||||
@ -69,13 +34,6 @@ endchoice
|
||||
|
||||
config LIBELF_VERSION
|
||||
string
|
||||
default "0.8.0" if LIBELF_V_0_8_0
|
||||
default "0.8.2" if LIBELF_V_0_8_2
|
||||
default "0.8.3" if LIBELF_V_0_8_3
|
||||
default "0.8.4" if LIBELF_V_0_8_4
|
||||
default "0.8.5" if LIBELF_V_0_8_5
|
||||
default "0.8.6" if LIBELF_V_0_8_6
|
||||
default "0.8.7" if LIBELF_V_0_8_7
|
||||
default "0.8.8" if LIBELF_V_0_8_8
|
||||
default "0.8.9" if LIBELF_V_0_8_9
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
|
@ -1,28 +0,0 @@
|
||||
See http://gcc.gnu.org/PR3106
|
||||
Backported from gcc-3.0.x
|
||||
|
||||
Fixes error
|
||||
.../binutils-2.11.2/libiberty/strerror.c:468: error: conflicting types for `sys_nerr'
|
||||
/usr/include/stdio.h:258: error: previous declaration of `sys_nerr'
|
||||
make[1]: *** [strerror.o] Error 1
|
||||
make: *** [all-libiberty] Error 2
|
||||
on Mac OS X.
|
||||
|
||||
--- binutils-2.11.2/libiberty/strerror.c.old 2004-03-24 16:23:19.000000000 -0800
|
||||
+++ binutils-2.11.2/libiberty/strerror.c 2004-03-24 16:23:48.000000000 -0800
|
||||
@@ -13,6 +13,7 @@
|
||||
incompatible with our later declaration, perhaps by using const
|
||||
attributes. So we hide the declaration in errno.h (if any) using a
|
||||
macro. */
|
||||
+#define sys_nerr sys_nerr__
|
||||
#define sys_errlist sys_errlist__
|
||||
#endif
|
||||
|
||||
@@ -20,6 +21,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef HAVE_SYS_ERRLIST
|
||||
+#undef sys_nerr
|
||||
#undef sys_errlist
|
||||
#endif
|
||||
|
@ -1,6 +0,0 @@
|
||||
The files rh62*.patch are from the Red Hat 6.2 file
|
||||
binutils-2.13.90.0.2-2.src.rpm
|
||||
|
||||
I am trusting here that Red Hat's patches are appropriate for all CPU
|
||||
types. If I'm wrong, just remove the offending patch...
|
||||
- Dan Kegel
|
@ -1,96 +0,0 @@
|
||||
2002-04-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf32-sparc.c (elf32_sparc_relocate_section): Find real output
|
||||
section with SEC_MERGE.
|
||||
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
|
||||
|
||||
--- binutils/bfd/elf32-sparc.c.jj Sat Apr 20 22:11:57 2002
|
||||
+++ binutils/bfd/elf32-sparc.c Sat Apr 20 23:06:33 2002
|
||||
@@ -1144,7 +1144,7 @@ elf32_sparc_relocate_section (output_bfd
|
||||
struct elf_link_hash_entry *h;
|
||||
Elf_Internal_Sym *sym;
|
||||
asection *sec;
|
||||
- bfd_vma relocation, off;
|
||||
+ bfd_vma relocation, off, orig_addend = 0;
|
||||
bfd_reloc_status_type r;
|
||||
boolean is_plt = false;
|
||||
boolean unresolved_reloc;
|
||||
@@ -1192,6 +1192,7 @@ elf32_sparc_relocate_section (output_bfd
|
||||
{
|
||||
sym = local_syms + r_symndx;
|
||||
sec = local_sections[r_symndx];
|
||||
+ orig_addend = rel->r_addend;
|
||||
relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
|
||||
}
|
||||
else
|
||||
@@ -1527,6 +1528,25 @@ elf32_sparc_relocate_section (output_bfd
|
||||
asection *osec;
|
||||
|
||||
osec = sec->output_section;
|
||||
+ /* FIXME: As soon as making sections zero size
|
||||
+ is possible, this if can go away. */
|
||||
+ if (bfd_is_abs_section (osec)
|
||||
+ && h == NULL
|
||||
+ && (sec->flags & SEC_MERGE)
|
||||
+ && ELF_ST_TYPE (sym->st_info) == STT_SECTION
|
||||
+ && (elf_section_data (sec)->sec_info_type
|
||||
+ == ELF_INFO_TYPE_MERGE))
|
||||
+ {
|
||||
+ asection *msec;
|
||||
+
|
||||
+ msec = sec;
|
||||
+ _bfd_merged_section_offset (output_bfd, &msec,
|
||||
+ elf_section_data (sec)->sec_info,
|
||||
+ sym->st_value + orig_addend,
|
||||
+ (bfd_vma) 0);
|
||||
+ osec = msec->output_section;
|
||||
+ }
|
||||
+
|
||||
indx = elf_section_data (osec)->dynindx;
|
||||
|
||||
/* FIXME: we really should be able to link non-pic
|
||||
--- binutils/bfd/elf64-sparc.c.jj Sat Apr 20 22:11:57 2002
|
||||
+++ binutils/bfd/elf64-sparc.c Sat Apr 20 23:12:18 2002
|
||||
@@ -1939,7 +1939,7 @@ sparc64_elf_relocate_section (output_bfd
|
||||
struct elf_link_hash_entry *h;
|
||||
Elf_Internal_Sym *sym;
|
||||
asection *sec;
|
||||
- bfd_vma relocation, off;
|
||||
+ bfd_vma relocation, off, orig_addend = 0;
|
||||
bfd_reloc_status_type r;
|
||||
boolean is_plt = false;
|
||||
boolean unresolved_reloc;
|
||||
@@ -1982,6 +1982,7 @@ sparc64_elf_relocate_section (output_bfd
|
||||
{
|
||||
sym = local_syms + r_symndx;
|
||||
sec = local_sections[r_symndx];
|
||||
+ orig_addend = rel->r_addend;
|
||||
relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
|
||||
}
|
||||
else
|
||||
@@ -2211,6 +2212,25 @@ sparc64_elf_relocate_section (output_bfd
|
||||
asection *osec;
|
||||
|
||||
osec = sec->output_section;
|
||||
+ /* FIXME: As soon as making sections zero size
|
||||
+ is possible, this if can go away. */
|
||||
+ if (bfd_is_abs_section (osec)
|
||||
+ && h == NULL
|
||||
+ && (sec->flags & SEC_MERGE)
|
||||
+ && ELF_ST_TYPE (sym->st_info) == STT_SECTION
|
||||
+ && (elf_section_data (sec)->sec_info_type
|
||||
+ == ELF_INFO_TYPE_MERGE))
|
||||
+ {
|
||||
+ asection *msec;
|
||||
+
|
||||
+ msec = sec;
|
||||
+ _bfd_merged_section_offset (output_bfd, &msec,
|
||||
+ elf_section_data (sec)->sec_info,
|
||||
+ sym->st_value + orig_addend,
|
||||
+ (bfd_vma) 0);
|
||||
+ osec = msec->output_section;
|
||||
+ }
|
||||
+
|
||||
indx = elf_section_data (osec)->dynindx;
|
||||
|
||||
/* FIXME: we really should be able to link non-pic
|
@ -1,58 +0,0 @@
|
||||
--- binutils/ld/emulparams/elf_i386_glibc21.sh.jj Sat Aug 3 17:04:41 2002
|
||||
+++ binutils/ld/emulparams/elf_i386_glibc21.sh Sat Aug 3 17:04:41 2002
|
||||
@@ -0,0 +1,11 @@
|
||||
+SCRIPT_NAME=elf
|
||||
+OUTPUT_FORMAT="elf32-i386"
|
||||
+TEXT_START_ADDR=0x08048000
|
||||
+MAXPAGESIZE=0x1000
|
||||
+NONPAGED_TEXT_START_ADDR=0x08048000
|
||||
+ARCH=i386
|
||||
+MACHINE=
|
||||
+NOP=0x9090
|
||||
+TEMPLATE_NAME=elf32
|
||||
+GENERATE_SHLIB_SCRIPT=yes
|
||||
+LIB_PATH=/usr/i386-glibc21-linux/lib:/usr/local/lib
|
||||
--- binutils/ld/configure.tgt.jj Thu Aug 1 20:49:32 2002
|
||||
+++ binutils/ld/configure.tgt Sat Aug 3 17:06:18 2002
|
||||
@@ -143,7 +143,8 @@ i[3456]86-*-linux*aout*) targ_emul=i386l
|
||||
;;
|
||||
i[3456]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
|
||||
i[3456]86-*-linux-gnu*) targ_emul=elf_i386
|
||||
- targ_extra_emuls=i386linux
|
||||
+ targ_extra_emuls="i386linux elf_i386_glibc21"
|
||||
+ targ_extra_libpath=elf_i386_glibc21
|
||||
if test x${want64} = xtrue; then
|
||||
targ_extra_emuls="$targ_extra_emuls elf_x86_64"
|
||||
fi
|
||||
--- binutils/ld/Makefile.am.jj Thu Aug 1 20:49:32 2002
|
||||
+++ binutils/ld/Makefile.am Sat Aug 3 17:04:41 2002
|
||||
@@ -181,6 +181,7 @@ ALL_EMULATIONS = \
|
||||
eelf_i386.o \
|
||||
eelf_i386_be.o \
|
||||
eelf_i386_chaos.o \
|
||||
+ eelf_i386_glibc21.o \
|
||||
eelf_i386_fbsd.o \
|
||||
eelf_i386_ldso.o \
|
||||
eelf_s390.o \
|
||||
@@ -718,6 +719,9 @@ eelf_i386_be.c: $(srcdir)/emulparams/elf
|
||||
eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)"
|
||||
+eelf_i386_glibc21.c: $(srcdir)/emulparams/elf_i386_glibc21.sh \
|
||||
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
+ ${GENSCRIPTS} elf_i386_glibc21 "$(tdir_elf_i386_glibc21)"
|
||||
eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
|
||||
$(srcdir)/emulparams/elf_i386.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
--- binutils/ld/Makefile.in.jj Thu Aug 1 20:49:32 2002
|
||||
+++ binutils/ld/Makefile.in Sat Aug 3 17:07:34 2002
|
||||
@@ -1197,6 +1197,9 @@ eelf_i386_be.c: $(srcdir)/emulparams/elf
|
||||
eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)"
|
||||
+eelf_i386_glibc21.c: $(srcdir)/emulparams/elf_i386_glibc21.sh \
|
||||
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
+ ${GENSCRIPTS} elf_i386_glibc21 "$(tdir_elf_i386_glibc21)"
|
||||
eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
|
||||
$(srcdir)/emulparams/elf_i386.sh \
|
||||
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
@ -1,372 +0,0 @@
|
||||
2002-08-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/tc-i386.c (output_insn): Save frag_now and frag_now_fix ()
|
||||
at start of insn, pass it to output_disp and output_imm.
|
||||
(output_disp): Added arguments. If _GLOBAL_OFFSET_TABLE_ is seen
|
||||
in displacement for R_386_32 reloc, use R_386_GOTPC and compute
|
||||
properly addend.
|
||||
(output_imm): Added arguments. Compute properly addend for
|
||||
R_386_GOTPC.
|
||||
(md_apply_fix3): Remove R_386_GOTPC handling.
|
||||
* testsuite/gas/i386/gotpc.s: New.
|
||||
* testsuite/gas/i386/gotpc.d: New.
|
||||
* testsuite/gas/i386/i386.exp: Add gotpc test.
|
||||
|
||||
--- binutils/gas/config/tc-i386.c.jj 2002-07-18 11:35:39.000000000 +0200
|
||||
+++ binutils/gas/config/tc-i386.c 2002-08-02 21:13:18.000000000 +0200
|
||||
@@ -104,8 +104,10 @@ static void output_insn PARAMS ((void));
|
||||
static void output_branch PARAMS ((void));
|
||||
static void output_jump PARAMS ((void));
|
||||
static void output_interseg_jump PARAMS ((void));
|
||||
-static void output_imm PARAMS ((void));
|
||||
-static void output_disp PARAMS ((void));
|
||||
+static void output_imm PARAMS ((fragS *insn_start_frag,
|
||||
+ offsetT insn_start_off));
|
||||
+static void output_disp PARAMS ((fragS *insn_start_frag,
|
||||
+ offsetT insn_start_off));
|
||||
#ifndef I386COFF
|
||||
static void s_bss PARAMS ((int));
|
||||
#endif
|
||||
@@ -3101,14 +3103,21 @@ output_interseg_jump ()
|
||||
md_number_to_chars (p + size, (valueT) i.op[0].imms->X_add_number, 2);
|
||||
}
|
||||
|
||||
+
|
||||
static void
|
||||
output_insn ()
|
||||
{
|
||||
+ fragS *insn_start_frag;
|
||||
+ offsetT insn_start_off;
|
||||
+
|
||||
/* Tie dwarf2 debug info to the address at the start of the insn.
|
||||
We can't do this after the insn has been output as the current
|
||||
frag may have been closed off. eg. by frag_var. */
|
||||
dwarf2_emit_insn (0);
|
||||
|
||||
+ insn_start_frag = frag_now;
|
||||
+ insn_start_off = frag_now_fix ();
|
||||
+
|
||||
/* Output jumps. */
|
||||
if (i.tm.opcode_modifier & Jump)
|
||||
output_branch ();
|
||||
@@ -3179,10 +3188,10 @@ output_insn ()
|
||||
}
|
||||
|
||||
if (i.disp_operands)
|
||||
- output_disp ();
|
||||
+ output_disp (insn_start_frag, insn_start_off);
|
||||
|
||||
if (i.imm_operands)
|
||||
- output_imm ();
|
||||
+ output_imm (insn_start_frag, insn_start_off);
|
||||
}
|
||||
|
||||
#ifdef DEBUG386
|
||||
@@ -3194,7 +3203,9 @@ output_insn ()
|
||||
}
|
||||
|
||||
static void
|
||||
-output_disp ()
|
||||
+output_disp (insn_start_frag, insn_start_off)
|
||||
+ fragS *insn_start_frag;
|
||||
+ offsetT insn_start_off;
|
||||
{
|
||||
char *p;
|
||||
unsigned int n;
|
||||
@@ -3224,6 +3235,7 @@ output_disp ()
|
||||
}
|
||||
else
|
||||
{
|
||||
+ RELOC_ENUM reloc_type;
|
||||
int size = 4;
|
||||
int sign = 0;
|
||||
int pcrel = (i.flags[n] & Operand_PCrel) != 0;
|
||||
@@ -3266,16 +3278,50 @@ output_disp ()
|
||||
}
|
||||
|
||||
p = frag_more (size);
|
||||
+ reloc_type = reloc (size, pcrel, sign, i.reloc[n]);
|
||||
+#ifdef BFD_ASSEMBLER
|
||||
+ if (reloc_type == BFD_RELOC_32
|
||||
+ && GOT_symbol
|
||||
+ && GOT_symbol == i.op[n].disps->X_add_symbol
|
||||
+ && (i.op[n].disps->X_op == O_symbol
|
||||
+ || (i.op[n].disps->X_op == O_add
|
||||
+ && ((symbol_get_value_expression
|
||||
+ (i.op[n].disps->X_op_symbol)->X_op)
|
||||
+ == O_subtract))))
|
||||
+ {
|
||||
+ offsetT add;
|
||||
+
|
||||
+ if (insn_start_frag == frag_now)
|
||||
+ add = (p - frag_now->fr_literal) - insn_start_off;
|
||||
+ else
|
||||
+ {
|
||||
+ fragS *fr;
|
||||
+
|
||||
+ add = insn_start_frag->fr_fix - insn_start_off;
|
||||
+ for (fr = insn_start_frag->fr_next;
|
||||
+ fr && fr != frag_now; fr = fr->fr_next)
|
||||
+ add += fr->fr_fix;
|
||||
+ add += p - frag_now->fr_literal;
|
||||
+ }
|
||||
+
|
||||
+ /* We don't support dynamic linking on x86-64 yet. */
|
||||
+ if (flag_code == CODE_64BIT)
|
||||
+ abort ();
|
||||
+ reloc_type = BFD_RELOC_386_GOTPC;
|
||||
+ i.op[n].disps->X_add_number += add;
|
||||
+ }
|
||||
+#endif
|
||||
fix_new_exp (frag_now, p - frag_now->fr_literal, size,
|
||||
- i.op[n].disps, pcrel,
|
||||
- reloc (size, pcrel, sign, i.reloc[n]));
|
||||
+ i.op[n].disps, pcrel, reloc_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
-output_imm ()
|
||||
+output_imm (insn_start_frag, insn_start_off)
|
||||
+ fragS *insn_start_frag;
|
||||
+ offsetT insn_start_off;
|
||||
{
|
||||
char *p;
|
||||
unsigned int n;
|
||||
@@ -3328,6 +3374,48 @@ output_imm ()
|
||||
p = frag_more (size);
|
||||
reloc_type = reloc (size, 0, sign, i.reloc[n]);
|
||||
#ifdef BFD_ASSEMBLER
|
||||
+ /* This is tough to explain. We end up with this one if we
|
||||
+ * have operands that look like
|
||||
+ * "_GLOBAL_OFFSET_TABLE_+[.-.L284]". The goal here is to
|
||||
+ * obtain the absolute address of the GOT, and it is strongly
|
||||
+ * preferable from a performance point of view to avoid using
|
||||
+ * a runtime relocation for this. The actual sequence of
|
||||
+ * instructions often look something like:
|
||||
+ *
|
||||
+ * call .L66
|
||||
+ * .L66:
|
||||
+ * popl %ebx
|
||||
+ * addl $_GLOBAL_OFFSET_TABLE_+[.-.L66],%ebx
|
||||
+ *
|
||||
+ * The call and pop essentially return the absolute address
|
||||
+ * of the label .L66 and store it in %ebx. The linker itself
|
||||
+ * will ultimately change the first operand of the addl so
|
||||
+ * that %ebx points to the GOT, but to keep things simple, the
|
||||
+ * .o file must have this operand set so that it generates not
|
||||
+ * the absolute address of .L66, but the absolute address of
|
||||
+ * itself. This allows the linker itself simply treat a GOTPC
|
||||
+ * relocation as asking for a pcrel offset to the GOT to be
|
||||
+ * added in, and the addend of the relocation is stored in the
|
||||
+ * operand field for the instruction itself.
|
||||
+ *
|
||||
+ * Our job here is to fix the operand so that it would add
|
||||
+ * the correct offset so that %ebx would point to itself. The
|
||||
+ * thing that is tricky is that .-.L66 will point to the
|
||||
+ * beginning of the instruction, so we need to further modify
|
||||
+ * the operand so that it will point to itself. There are
|
||||
+ * other cases where you have something like:
|
||||
+ *
|
||||
+ * .long $_GLOBAL_OFFSET_TABLE_+[.-.L66]
|
||||
+ *
|
||||
+ * and here no correction would be required. Internally in
|
||||
+ * the assembler we treat operands of this form as not being
|
||||
+ * pcrel since the '.' is explicitly mentioned, and I wonder
|
||||
+ * whether it would simplify matters to do it this way. Who
|
||||
+ * knows. In earlier versions of the PIC patches, the
|
||||
+ * pcrel_adjust field was used to store the correction, but
|
||||
+ * since the expression is not pcrel, I felt it would be
|
||||
+ * confusing to do it this way. */
|
||||
+
|
||||
if (reloc_type == BFD_RELOC_32
|
||||
&& GOT_symbol
|
||||
&& GOT_symbol == i.op[n].imms->X_add_symbol
|
||||
@@ -3337,11 +3425,26 @@ output_imm ()
|
||||
(i.op[n].imms->X_op_symbol)->X_op)
|
||||
== O_subtract))))
|
||||
{
|
||||
+ offsetT add;
|
||||
+
|
||||
+ if (insn_start_frag == frag_now)
|
||||
+ add = (p - frag_now->fr_literal) - insn_start_off;
|
||||
+ else
|
||||
+ {
|
||||
+ fragS *fr;
|
||||
+
|
||||
+ add = insn_start_frag->fr_fix - insn_start_off;
|
||||
+ for (fr = insn_start_frag->fr_next;
|
||||
+ fr && fr != frag_now; fr = fr->fr_next)
|
||||
+ add += fr->fr_fix;
|
||||
+ add += p - frag_now->fr_literal;
|
||||
+ }
|
||||
+
|
||||
/* We don't support dynamic linking on x86-64 yet. */
|
||||
if (flag_code == CODE_64BIT)
|
||||
abort ();
|
||||
reloc_type = BFD_RELOC_386_GOTPC;
|
||||
- i.op[n].imms->X_add_number += 3;
|
||||
+ i.op[n].imms->X_add_number += add;
|
||||
}
|
||||
#endif
|
||||
fix_new_exp (frag_now, p - frag_now->fr_literal, size,
|
||||
@@ -4542,48 +4645,6 @@ md_apply_fix3 (fixP, valP, seg)
|
||||
runtime we merely add the offset to the actual PLT entry. */
|
||||
value = -4;
|
||||
break;
|
||||
- case BFD_RELOC_386_GOTPC:
|
||||
-
|
||||
-/* This is tough to explain. We end up with this one if we have
|
||||
- * operands that look like "_GLOBAL_OFFSET_TABLE_+[.-.L284]". The goal
|
||||
- * here is to obtain the absolute address of the GOT, and it is strongly
|
||||
- * preferable from a performance point of view to avoid using a runtime
|
||||
- * relocation for this. The actual sequence of instructions often look
|
||||
- * something like:
|
||||
- *
|
||||
- * call .L66
|
||||
- * .L66:
|
||||
- * popl %ebx
|
||||
- * addl $_GLOBAL_OFFSET_TABLE_+[.-.L66],%ebx
|
||||
- *
|
||||
- * The call and pop essentially return the absolute address of
|
||||
- * the label .L66 and store it in %ebx. The linker itself will
|
||||
- * ultimately change the first operand of the addl so that %ebx points to
|
||||
- * the GOT, but to keep things simple, the .o file must have this operand
|
||||
- * set so that it generates not the absolute address of .L66, but the
|
||||
- * absolute address of itself. This allows the linker itself simply
|
||||
- * treat a GOTPC relocation as asking for a pcrel offset to the GOT to be
|
||||
- * added in, and the addend of the relocation is stored in the operand
|
||||
- * field for the instruction itself.
|
||||
- *
|
||||
- * Our job here is to fix the operand so that it would add the correct
|
||||
- * offset so that %ebx would point to itself. The thing that is tricky is
|
||||
- * that .-.L66 will point to the beginning of the instruction, so we need
|
||||
- * to further modify the operand so that it will point to itself.
|
||||
- * There are other cases where you have something like:
|
||||
- *
|
||||
- * .long $_GLOBAL_OFFSET_TABLE_+[.-.L66]
|
||||
- *
|
||||
- * and here no correction would be required. Internally in the assembler
|
||||
- * we treat operands of this form as not being pcrel since the '.' is
|
||||
- * explicitly mentioned, and I wonder whether it would simplify matters
|
||||
- * to do it this way. Who knows. In earlier versions of the PIC patches,
|
||||
- * the pcrel_adjust field was used to store the correction, but since the
|
||||
- * expression is not pcrel, I felt it would be confusing to do it this
|
||||
- * way. */
|
||||
-
|
||||
- value -= 1;
|
||||
- break;
|
||||
case BFD_RELOC_386_GOT32:
|
||||
case BFD_RELOC_386_TLS_GD:
|
||||
case BFD_RELOC_386_TLS_LDM:
|
||||
--- binutils/gas/testsuite/gas/i386/gotpc.s.jj 2002-08-02 21:17:57.000000000 +0200
|
||||
+++ binutils/gas/testsuite/gas/i386/gotpc.s 2002-08-03 22:55:47.000000000 +0200
|
||||
@@ -0,0 +1,40 @@
|
||||
+ .text
|
||||
+test:
|
||||
+ addl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
|
||||
+ addl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
|
||||
+ addl $_GLOBAL_OFFSET_TABLE_, %eax
|
||||
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
||||
+ leal _GLOBAL_OFFSET_TABLE+[.-test](%eax), %ebx
|
||||
+ leal _GLOBAL_OFFSET_TABLE+[.-test](%ebx), %eax
|
||||
+ leal _GLOBAL_OFFSET_TABLE+[.-test](%eax), %eax
|
||||
+ leal _GLOBAL_OFFSET_TABLE+[.-test](%ebx), %ebx
|
||||
+ subl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
|
||||
+ subl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
|
||||
+ subl $_GLOBAL_OFFSET_TABLE_, %eax
|
||||
+ subl $_GLOBAL_OFFSET_TABLE_, %ebx
|
||||
+ orl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
|
||||
+ orl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
|
||||
+ orl $_GLOBAL_OFFSET_TABLE_, %eax
|
||||
+ orl $_GLOBAL_OFFSET_TABLE_, %ebx
|
||||
+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
|
||||
+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
|
||||
+ movl $_GLOBAL_OFFSET_TABLE_, %eax
|
||||
+ movl $_GLOBAL_OFFSET_TABLE_, %ebx
|
||||
+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], foo
|
||||
+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], %gs:foo
|
||||
+ gs; movl $_GLOBAL_OFFSET_TABLE_+[.-test], foo
|
||||
+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], _GLOBAL_OFFSET_TABLE_
|
||||
+ movl _GLOBAL_OFFSET_TABLE_+[.-test], %eax
|
||||
+ movl _GLOBAL_OFFSET_TABLE_+[.-test], %ebx
|
||||
+ movl %eax, _GLOBAL_OFFSET_TABLE_+[.-test]
|
||||
+ movl %ebx, _GLOBAL_OFFSET_TABLE_+[.-test]
|
||||
+ movl %eax, %gs:_GLOBAL_OFFSET_TABLE_+[.-test]
|
||||
+ movl %ebx, %gs:_GLOBAL_OFFSET_TABLE_+[.-test]
|
||||
+ gs; movl %eax, _GLOBAL_OFFSET_TABLE_+[.-test]
|
||||
+ gs; movl %ebx, _GLOBAL_OFFSET_TABLE_+[.-test]
|
||||
+ leal _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %eax
|
||||
+ leal _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %ebx
|
||||
+ movl _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %eax
|
||||
+ movl _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %ebx
|
||||
+ .long _GLOBAL_OFFSET_TABLE_+[.-test]
|
||||
+ .long _GLOBAL_OFFSET_TABLE_@GOTOFF
|
||||
--- binutils/gas/testsuite/gas/i386/gotpc.d.jj 2002-08-02 21:18:43.000000000 +0200
|
||||
+++ binutils/gas/testsuite/gas/i386/gotpc.d 2002-08-03 23:05:43.000000000 +0200
|
||||
@@ -0,0 +1,52 @@
|
||||
+#objdump: -drw
|
||||
+#name: i386 gotpc
|
||||
+
|
||||
+.*: +file format .*
|
||||
+
|
||||
+Disassembly of section .text:
|
||||
+
|
||||
+0+000 <test>:
|
||||
+ 0: 05 01 00 00 00 [ ]*add \$0x1,%eax 1: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 5: 81 c3 07 00 00 00 [ ]*add \$0x7,%ebx 7: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ b: 05 01 00 00 00 [ ]*add \$0x1,%eax c: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 10: 81 c3 02 00 00 00 [ ]*add \$0x2,%ebx 12: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 16: 8d 98 16 00 00 00 [ ]*lea 0x16\(%eax\),%ebx 18: (R_386_)?(dir)?32 _GLOBAL_OFFSET_TABLE
|
||||
+ 1c: 8d 83 1c 00 00 00 [ ]*lea 0x1c\(%ebx\),%eax 1e: (R_386_)?(dir)?32 _GLOBAL_OFFSET_TABLE
|
||||
+ 22: 8d 80 22 00 00 00 [ ]*lea 0x22\(%eax\),%eax 24: (R_386_)?(dir)?32 _GLOBAL_OFFSET_TABLE
|
||||
+ 28: 8d 9b 28 00 00 00 [ ]*lea 0x28\(%ebx\),%ebx 2a: (R_386_)?(dir)?32 _GLOBAL_OFFSET_TABLE
|
||||
+ 2e: 2d 2f 00 00 00 [ ]*sub \$0x2f,%eax 2f: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 33: 81 eb 35 00 00 00 [ ]*sub \$0x35,%ebx 35: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 39: 2d 01 00 00 00 [ ]*sub \$0x1,%eax 3a: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 3e: 81 eb 02 00 00 00 [ ]*sub \$0x2,%ebx 40: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 44: 0d 45 00 00 00 [ ]*or \$0x45,%eax 45: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 49: 81 cb 4b 00 00 00 [ ]*or \$0x4b,%ebx 4b: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 4f: 0d 01 00 00 00 [ ]*or \$0x1,%eax 50: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 54: 81 cb 02 00 00 00 [ ]*or \$0x2,%ebx 56: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 5a: b8 5b 00 00 00 [ ]*mov \$0x5b,%eax 5b: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 5f: bb 60 00 00 00 [ ]*mov \$0x60,%ebx 60: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 64: b8 01 00 00 00 [ ]*mov \$0x1,%eax 65: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 69: bb 01 00 00 00 [ ]*mov \$0x1,%ebx 6a: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 6e: c7 05 00 00 00 00 74 00 00 00 [ ]*movl \$0x74,0x0 70: (R_386_)?(dir)?32 foo
|
||||
+[ ]*74: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 78: 65 c7 05 00 00 00 00 7f 00 00 00 [ ]*movl \$0x7f,%gs:0x0 7b: (R_386_)?(dir)?32 foo
|
||||
+[ ]*7f: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 83: 65 c7 05 00 00 00 00 8a 00 00 00 [ ]*movl \$0x8a,%gs:0x0 86: (R_386_)?(dir)?32 foo
|
||||
+[ ]*8a: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 8e: c7 05 02 00 00 00 94 00 00 00 [ ]*movl \$0x94,0x2 90: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+[ ]*94: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 98: a1 99 00 00 00 [ ]*mov 0x99,%eax 99: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ 9d: 8b 1d 9f 00 00 00 [ ]*mov 0x9f,%ebx 9f: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ a3: a3 a4 00 00 00 [ ]*mov %eax,0xa4 a4: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ a8: 89 1d aa 00 00 00 [ ]*mov %ebx,0xaa aa: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ ae: 65 a3 b0 00 00 00 [ ]*mov %eax,%gs:0xb0 b0: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ b4: 65 89 1d b7 00 00 00 [ ]*mov %ebx,%gs:0xb7 b7: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ bb: 65 a3 bd 00 00 00 [ ]*mov %eax,%gs:0xbd bd: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ c1: 65 89 1d c4 00 00 00 [ ]*mov %ebx,%gs:0xc4 c4: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ c8: 8d 83 00 00 00 00 [ ]*lea 0x0\(%ebx\),%eax ca: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
|
||||
+ ce: 8d 9b 00 00 00 00 [ ]*lea 0x0\(%ebx\),%ebx d0: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
|
||||
+ d4: 8b 83 00 00 00 00 [ ]*mov 0x0\(%ebx\),%eax d6: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
|
||||
+ da: 8b 9b 00 00 00 00 [ ]*mov 0x0\(%ebx\),%ebx dc: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
|
||||
+ e0: e0 00 [ ]*loopne e2 <test\+0xe2> e0: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
|
||||
+ e2: 00 00 [ ]*add %al,\(%eax\)
|
||||
+ e4: 00 00 [ ]*add %al,\(%eax\) e4: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
|
||||
+ ...
|
||||
--- binutils/gas/testsuite/gas/i386/i386.exp.jj 2002-07-18 11:35:39.000000000 +0200
|
||||
+++ binutils/gas/testsuite/gas/i386/i386.exp 2002-08-02 21:57:46.000000000 +0200
|
||||
@@ -53,6 +53,7 @@ if [expr ([istarget "i*86-*-*"] || [ist
|
||||
run_dump_test "jump"
|
||||
run_dump_test "ssemmx2"
|
||||
run_dump_test "sse2"
|
||||
+ run_dump_test "gotpc"
|
||||
|
||||
# PIC is only supported on ELF targets.
|
||||
if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] )
|
||||
|
@ -1,27 +0,0 @@
|
||||
2002-08-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf32-i386.c (elf_i386_relocate_section): Fill in proper addend
|
||||
for R_386_TLS_TPOFF32 relocs against symndx 0.
|
||||
|
||||
--- binutils/bfd/elf32-i386.c.jj 2002-07-30 16:14:55.000000000 +0200
|
||||
+++ binutils/bfd/elf32-i386.c 2002-08-07 23:41:48.000000000 +0200
|
||||
@@ -2561,13 +2567,17 @@ elf_i386_relocate_section (output_bfd, i
|
||||
outrel.r_offset = (htab->sgot->output_section->vma
|
||||
+ htab->sgot->output_offset + off);
|
||||
|
||||
- bfd_put_32 (output_bfd, 0,
|
||||
- htab->sgot->contents + off);
|
||||
indx = h && h->dynindx != -1 ? h->dynindx : 0;
|
||||
if (r_type == R_386_TLS_GD)
|
||||
dr_type = R_386_TLS_DTPMOD32;
|
||||
else
|
||||
dr_type = R_386_TLS_TPOFF32;
|
||||
+ if (dr_type == R_386_TLS_TPOFF32 && indx == 0)
|
||||
+ bfd_put_32 (output_bfd, relocation - dtpoff_base (info),
|
||||
+ htab->sgot->contents + off);
|
||||
+ else
|
||||
+ bfd_put_32 (output_bfd, 0,
|
||||
+ htab->sgot->contents + off);
|
||||
outrel.r_info = ELF32_R_INFO (indx, dr_type);
|
||||
loc = (Elf32_External_Rel *) htab->srelgot->contents;
|
||||
loc += htab->srelgot->reloc_count++;
|
@ -1,11 +0,0 @@
|
||||
--- orig/Makefile.in 2004-05-12 18:22:30.000000000 -0700
|
||||
+++ binutils-2.14.90.0.5/Makefile.in 2004-05-12 18:26:19.000000000 -0700
|
||||
@@ -24384,6 +24384,8 @@
|
||||
# Demangler depends on libiberty.
|
||||
configure-demangler: maybe-configure-libiberty
|
||||
all-demangler: maybe-all-libiberty
|
||||
+configure-build-demangler: maybe-configure-build-libiberty
|
||||
+all-build-demangler: maybe-all-build-libiberty
|
||||
|
||||
# The new demangler, which is included in libiberty, is written in C++.
|
||||
# A working C++ compiler is required. For the target demangler, it may
|
@ -1,38 +0,0 @@
|
||||
Message-Id: <200307311239.h6VCdNe27056@r-rr.iij4u.or.jp>
|
||||
To: dank@kegel.com
|
||||
Cc: kkojima@rr.iij4u.or.jp
|
||||
Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
|
||||
with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
|
||||
In-Reply-To: Your message of "Wed, 30 Jul 2003 21:55:54 -0700"
|
||||
<3F28A15A.5010400@kegel.com>
|
||||
References: <3F28A15A.5010400@kegel.com>
|
||||
Date: Thu, 31 Jul 2003 21:47:38 +0900
|
||||
From: kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
|
||||
Dan Kegel <dank@kegel.com> wrote:
|
||||
>> I'll give binutils-2.14.90.0.5 a shot, then.
|
||||
>
|
||||
> No joy - same problem. Guess I'll take this up on binutils and/or libc-alpha.
|
||||
|
||||
Please try the patch below, though it's a diff against the current
|
||||
binutils CVS.
|
||||
|
||||
Regards,
|
||||
kaz
|
||||
--
|
||||
diff -u3p ORIG/src/bfd/elf32-sh.c LOCAL/src/bfd/elf32-sh.c
|
||||
--- src/bfd/elf32-sh.c.old Fri Jul 25 14:46:58 2003
|
||||
+++ src/bfd/elf32-sh.c Thu Jul 31 21:09:38 2003
|
||||
@@ -6497,8 +6497,10 @@ sh_elf_check_relocs (bfd *abfd, struct b
|
||||
sreloc, 2))
|
||||
return FALSE;
|
||||
}
|
||||
+#if 0
|
||||
if (sec->flags & SEC_READONLY)
|
||||
info->flags |= DF_TEXTREL;
|
||||
+#endif
|
||||
elf_section_data (sec)->sreloc = sreloc;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- orig/Makefile.in 2004-05-12 18:22:30.000000000 -0700
|
||||
+++ binutils-2.14.90.0.5/Makefile.in 2004-05-12 18:26:19.000000000 -0700
|
||||
@@ -24384,6 +24384,8 @@
|
||||
# Demangler depends on libiberty.
|
||||
configure-demangler: maybe-configure-libiberty
|
||||
all-demangler: maybe-all-libiberty
|
||||
+configure-build-demangler: maybe-configure-build-libiberty
|
||||
+all-build-demangler: maybe-all-build-libiberty
|
||||
|
||||
# The new demangler, which is included in libiberty, is written in C++.
|
||||
# A working C++ compiler is required. For the target demangler, it may
|
@ -1,101 +0,0 @@
|
||||
Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
|
||||
Fixes
|
||||
localealias.s:544: Error: junk at end of line, first unrecognized character is `,'
|
||||
when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
|
||||
|
||||
Paths adjusted to match crosstool's patcher.
|
||||
|
||||
Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
|
||||
From: Andreas Schwab <schwab at suse dot de>
|
||||
To: Nathan Sidwell <nathan at codesourcery dot com>
|
||||
Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
|
||||
Date: Fri, 23 Apr 2004 22:27:19 +0200
|
||||
Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
|
||||
|
||||
Nathan Sidwell <nathan@codesourcery.com> writes:
|
||||
|
||||
> Index: read.c
|
||||
> ===================================================================
|
||||
> RCS file: /cvs/src/src/gas/read.c,v
|
||||
> retrieving revision 1.76
|
||||
> diff -c -3 -p -r1.76 read.c
|
||||
> *** read.c 12 Mar 2004 17:48:12 -0000 1.76
|
||||
> --- read.c 18 Mar 2004 09:56:05 -0000
|
||||
> *************** read_a_source_file (char *name)
|
||||
> *** 1053,1059 ****
|
||||
> #endif
|
||||
> input_line_pointer--;
|
||||
> /* Report unknown char as ignored. */
|
||||
> ! ignore_rest_of_line ();
|
||||
> }
|
||||
>
|
||||
> #ifdef md_after_pass_hook
|
||||
> --- 1053,1059 ----
|
||||
> #endif
|
||||
> input_line_pointer--;
|
||||
> /* Report unknown char as ignored. */
|
||||
> ! demand_empty_rest_of_line ();
|
||||
> }
|
||||
>
|
||||
> #ifdef md_after_pass_hook
|
||||
|
||||
This means that the unknown character is no longer ignored, despite the
|
||||
comment. As a side effect a line starting with a line comment character
|
||||
not followed by APP in NO_APP mode now triggers an error instead of just a
|
||||
warning, breaking builds of glibc on m68k-linux. Earlier in
|
||||
read_a_source_file where #APP is handled there is another comment that
|
||||
claims that unknown comments are ignored, when in fact they aren't (only
|
||||
the initial line comment character is skipped).
|
||||
|
||||
Note that the presence of #APP will mess up the line counters, but
|
||||
that appears to be difficult to fix.
|
||||
|
||||
Andreas.
|
||||
|
||||
2004-04-23 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* read.c (read_a_source_file): Ignore unknown text after line
|
||||
comment character. Fix misleading comment.
|
||||
|
||||
--- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200
|
||||
+++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
/* read.c - read a source file -
|
||||
Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
- 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
@@ -950,10 +950,14 @@ read_a_source_file (char *name)
|
||||
unsigned int new_length;
|
||||
char *tmp_buf = 0;
|
||||
|
||||
- bump_line_counters ();
|
||||
s = input_line_pointer;
|
||||
if (strncmp (s, "APP\n", 4))
|
||||
- continue; /* We ignore it */
|
||||
+ {
|
||||
+ /* We ignore it */
|
||||
+ ignore_rest_of_line ();
|
||||
+ continue;
|
||||
+ }
|
||||
+ bump_line_counters ();
|
||||
s += 4;
|
||||
|
||||
sb_new (&sbuf);
|
||||
@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
|
||||
continue;
|
||||
#endif
|
||||
input_line_pointer--;
|
||||
- /* Report unknown char as ignored. */
|
||||
+ /* Report unknown char as error. */
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
Andreas Schwab, SuSE Labs, schwab@suse.de
|
||||
SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany
|
||||
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
|
||||
"And now for something completely different."
|
@ -1,192 +0,0 @@
|
||||
See
|
||||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15247
|
||||
|
||||
Fixes spurious error
|
||||
/tmp/ccvNi4ou.s: Assembler messages:
|
||||
/tmp/ccvNi4ou.s:2310: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
|
||||
make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/math/dosincos.o] Error 1
|
||||
|
||||
when compiling glibc's dosincos.c with gcc-3.4.0
|
||||
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/opcodes/sparc-opc.c,v
|
||||
retrieving revision 1.9
|
||||
retrieving revision 1.10
|
||||
diff -u -r1.9 -r1.10
|
||||
--- src/opcodes/sparc-opc.c 2004/01/18 23:46:32 1.9
|
||||
+++ src/opcodes/sparc-opc.c 2004/04/20 10:23:51 1.10
|
||||
@@ -1273,110 +1273,72 @@
|
||||
#define FM_DF 2 /* v9 */
|
||||
#define FM_QF 3 /* v9 */
|
||||
|
||||
-#define fmovicc(opcode, fpsize, cond, flags) /* v9 */ \
|
||||
-{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags, v9 }
|
||||
-
|
||||
-#define fmovfcc(opcode, fpsize, fcond, flags) /* v9 */ \
|
||||
-{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags, v9 }
|
||||
+#define fmoviccx(opcode, fpsize, args, cond, flags) /* v9 */ \
|
||||
+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags, v9 }
|
||||
+
|
||||
+#define fmovfccx(opcode, fpsize, args, fcond, flags) /* v9 */ \
|
||||
+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags, v9 }
|
||||
|
||||
/* FIXME: use fmovicc/fmovfcc? */ /* v9 */
|
||||
-#define fmovcc(opcode, fpsize, cond, fcond, flags) /* v9 */ \
|
||||
-{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags | F_FLOAT, v9 }
|
||||
-
|
||||
-/* v9 */ fmovcc ("fmovda", FM_DF, CONDA, FCONDA, 0),
|
||||
-/* v9 */ fmovcc ("fmovqa", FM_QF, CONDA, FCONDA, 0),
|
||||
-/* v9 */ fmovcc ("fmovsa", FM_SF, CONDA, FCONDA, 0),
|
||||
-/* v9 */ fmovicc ("fmovdcc", FM_DF, CONDCC, 0),
|
||||
-/* v9 */ fmovicc ("fmovqcc", FM_QF, CONDCC, 0),
|
||||
-/* v9 */ fmovicc ("fmovscc", FM_SF, CONDCC, 0),
|
||||
-/* v9 */ fmovicc ("fmovdcs", FM_DF, CONDCS, 0),
|
||||
-/* v9 */ fmovicc ("fmovqcs", FM_QF, CONDCS, 0),
|
||||
-/* v9 */ fmovicc ("fmovscs", FM_SF, CONDCS, 0),
|
||||
-/* v9 */ fmovcc ("fmovde", FM_DF, CONDE, FCONDE, 0),
|
||||
-/* v9 */ fmovcc ("fmovqe", FM_QF, CONDE, FCONDE, 0),
|
||||
-/* v9 */ fmovcc ("fmovse", FM_SF, CONDE, FCONDE, 0),
|
||||
-/* v9 */ fmovcc ("fmovdg", FM_DF, CONDG, FCONDG, 0),
|
||||
-/* v9 */ fmovcc ("fmovqg", FM_QF, CONDG, FCONDG, 0),
|
||||
-/* v9 */ fmovcc ("fmovsg", FM_SF, CONDG, FCONDG, 0),
|
||||
-/* v9 */ fmovcc ("fmovdge", FM_DF, CONDGE, FCONDGE, 0),
|
||||
-/* v9 */ fmovcc ("fmovqge", FM_QF, CONDGE, FCONDGE, 0),
|
||||
-/* v9 */ fmovcc ("fmovsge", FM_SF, CONDGE, FCONDGE, 0),
|
||||
-/* v9 */ fmovicc ("fmovdgeu", FM_DF, CONDGEU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovqgeu", FM_QF, CONDGEU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovsgeu", FM_SF, CONDGEU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovdgu", FM_DF, CONDGU, 0),
|
||||
-/* v9 */ fmovicc ("fmovqgu", FM_QF, CONDGU, 0),
|
||||
-/* v9 */ fmovicc ("fmovsgu", FM_SF, CONDGU, 0),
|
||||
-/* v9 */ fmovcc ("fmovdl", FM_DF, CONDL, FCONDL, 0),
|
||||
-/* v9 */ fmovcc ("fmovql", FM_QF, CONDL, FCONDL, 0),
|
||||
-/* v9 */ fmovcc ("fmovsl", FM_SF, CONDL, FCONDL, 0),
|
||||
-/* v9 */ fmovcc ("fmovdle", FM_DF, CONDLE, FCONDLE, 0),
|
||||
-/* v9 */ fmovcc ("fmovqle", FM_QF, CONDLE, FCONDLE, 0),
|
||||
-/* v9 */ fmovcc ("fmovsle", FM_SF, CONDLE, FCONDLE, 0),
|
||||
-/* v9 */ fmovicc ("fmovdleu", FM_DF, CONDLEU, 0),
|
||||
-/* v9 */ fmovicc ("fmovqleu", FM_QF, CONDLEU, 0),
|
||||
-/* v9 */ fmovicc ("fmovsleu", FM_SF, CONDLEU, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdlg", FM_DF, FCONDLG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqlg", FM_QF, FCONDLG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovslg", FM_SF, FCONDLG, 0),
|
||||
-/* v9 */ fmovicc ("fmovdlu", FM_DF, CONDLU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovqlu", FM_QF, CONDLU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovslu", FM_SF, CONDLU, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovdn", FM_DF, CONDN, FCONDN, 0),
|
||||
-/* v9 */ fmovcc ("fmovqn", FM_QF, CONDN, FCONDN, 0),
|
||||
-/* v9 */ fmovcc ("fmovsn", FM_SF, CONDN, FCONDN, 0),
|
||||
-/* v9 */ fmovcc ("fmovdne", FM_DF, CONDNE, FCONDNE, 0),
|
||||
-/* v9 */ fmovcc ("fmovqne", FM_QF, CONDNE, FCONDNE, 0),
|
||||
-/* v9 */ fmovcc ("fmovsne", FM_SF, CONDNE, FCONDNE, 0),
|
||||
-/* v9 */ fmovicc ("fmovdneg", FM_DF, CONDNEG, 0),
|
||||
-/* v9 */ fmovicc ("fmovqneg", FM_QF, CONDNEG, 0),
|
||||
-/* v9 */ fmovicc ("fmovsneg", FM_SF, CONDNEG, 0),
|
||||
-/* v9 */ fmovcc ("fmovdnz", FM_DF, CONDNZ, FCONDNZ, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovqnz", FM_QF, CONDNZ, FCONDNZ, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovsnz", FM_SF, CONDNZ, FCONDNZ, F_ALIAS),
|
||||
-/* v9 */ fmovfcc ("fmovdo", FM_DF, FCONDO, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqo", FM_QF, FCONDO, 0),
|
||||
-/* v9 */ fmovfcc ("fmovso", FM_SF, FCONDO, 0),
|
||||
-/* v9 */ fmovicc ("fmovdpos", FM_DF, CONDPOS, 0),
|
||||
-/* v9 */ fmovicc ("fmovqpos", FM_QF, CONDPOS, 0),
|
||||
-/* v9 */ fmovicc ("fmovspos", FM_SF, CONDPOS, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdu", FM_DF, FCONDU, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqu", FM_QF, FCONDU, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsu", FM_SF, FCONDU, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdue", FM_DF, FCONDUE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovque", FM_QF, FCONDUE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsue", FM_SF, FCONDUE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdug", FM_DF, FCONDUG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqug", FM_QF, FCONDUG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsug", FM_SF, FCONDUG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovduge", FM_DF, FCONDUGE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovquge", FM_QF, FCONDUGE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsuge", FM_SF, FCONDUGE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdul", FM_DF, FCONDUL, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqul", FM_QF, FCONDUL, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsul", FM_SF, FCONDUL, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdule", FM_DF, FCONDULE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqule", FM_QF, FCONDULE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsule", FM_SF, FCONDULE, 0),
|
||||
-/* v9 */ fmovicc ("fmovdvc", FM_DF, CONDVC, 0),
|
||||
-/* v9 */ fmovicc ("fmovqvc", FM_QF, CONDVC, 0),
|
||||
-/* v9 */ fmovicc ("fmovsvc", FM_SF, CONDVC, 0),
|
||||
-/* v9 */ fmovicc ("fmovdvs", FM_DF, CONDVS, 0),
|
||||
-/* v9 */ fmovicc ("fmovqvs", FM_QF, CONDVS, 0),
|
||||
-/* v9 */ fmovicc ("fmovsvs", FM_SF, CONDVS, 0),
|
||||
-/* v9 */ fmovcc ("fmovdz", FM_DF, CONDZ, FCONDZ, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovqz", FM_QF, CONDZ, FCONDZ, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovsz", FM_SF, CONDZ, FCONDZ, F_ALIAS),
|
||||
-
|
||||
+#define fmovccx(opcode, fpsize, args, cond, fcond, flags) /* v9 */ \
|
||||
+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags | F_FLOAT, v9 }
|
||||
+
|
||||
+#define fmovicc(suffix, cond, flags) /* v9 */ \
|
||||
+fmoviccx("fmovd" suffix, FM_DF, "B,H", cond, flags), \
|
||||
+fmoviccx("fmovq" suffix, FM_QF, "R,J", cond, flags), \
|
||||
+fmoviccx("fmovs" suffix, FM_SF, "f,g", cond, flags)
|
||||
+
|
||||
+#define fmovfcc(suffix, fcond, flags) /* v9 */ \
|
||||
+fmovfccx("fmovd" suffix, FM_DF, "B,H", fcond, flags), \
|
||||
+fmovfccx("fmovq" suffix, FM_QF, "R,J", fcond, flags), \
|
||||
+fmovfccx("fmovs" suffix, FM_SF, "f,g", fcond, flags)
|
||||
+
|
||||
+#define fmovcc(suffix, cond, fcond, flags) /* v9 */ \
|
||||
+fmovccx("fmovd" suffix, FM_DF, "B,H", cond, fcond, flags), \
|
||||
+fmovccx("fmovq" suffix, FM_QF, "R,J", cond, fcond, flags), \
|
||||
+fmovccx("fmovs" suffix, FM_SF, "f,g", cond, fcond, flags)
|
||||
+
|
||||
+/* v9 */ fmovcc ("a", CONDA, FCONDA, 0),
|
||||
+/* v9 */ fmovicc ("cc", CONDCC, 0),
|
||||
+/* v9 */ fmovicc ("cs", CONDCS, 0),
|
||||
+/* v9 */ fmovcc ("e", CONDE, FCONDE, 0),
|
||||
+/* v9 */ fmovcc ("g", CONDG, FCONDG, 0),
|
||||
+/* v9 */ fmovcc ("ge", CONDGE, FCONDGE, 0),
|
||||
+/* v9 */ fmovicc ("geu", CONDGEU, F_ALIAS),
|
||||
+/* v9 */ fmovicc ("gu", CONDGU, 0),
|
||||
+/* v9 */ fmovcc ("l", CONDL, FCONDL, 0),
|
||||
+/* v9 */ fmovcc ("le", CONDLE, FCONDLE, 0),
|
||||
+/* v9 */ fmovicc ("leu", CONDLEU, 0),
|
||||
+/* v9 */ fmovfcc ("lg", FCONDLG, 0),
|
||||
+/* v9 */ fmovicc ("lu", CONDLU, F_ALIAS),
|
||||
+/* v9 */ fmovcc ("n", CONDN, FCONDN, 0),
|
||||
+/* v9 */ fmovcc ("ne", CONDNE, FCONDNE, 0),
|
||||
+/* v9 */ fmovicc ("neg", CONDNEG, 0),
|
||||
+/* v9 */ fmovcc ("nz", CONDNZ, FCONDNZ, F_ALIAS),
|
||||
+/* v9 */ fmovfcc ("o", FCONDO, 0),
|
||||
+/* v9 */ fmovicc ("pos", CONDPOS, 0),
|
||||
+/* v9 */ fmovfcc ("u", FCONDU, 0),
|
||||
+/* v9 */ fmovfcc ("ue", FCONDUE, 0),
|
||||
+/* v9 */ fmovfcc ("ug", FCONDUG, 0),
|
||||
+/* v9 */ fmovfcc ("uge", FCONDUGE, 0),
|
||||
+/* v9 */ fmovfcc ("ul", FCONDUL, 0),
|
||||
+/* v9 */ fmovfcc ("ule", FCONDULE, 0),
|
||||
+/* v9 */ fmovicc ("vc", CONDVC, 0),
|
||||
+/* v9 */ fmovicc ("vs", CONDVS, 0),
|
||||
+/* v9 */ fmovcc ("z", CONDZ, FCONDZ, F_ALIAS),
|
||||
+
|
||||
+#undef fmoviccx /* v9 */
|
||||
+#undef fmovfccx /* v9 */
|
||||
+#undef fmovccx /* v9 */
|
||||
#undef fmovicc /* v9 */
|
||||
#undef fmovfcc /* v9 */
|
||||
#undef fmovcc /* v9 */
|
@ -1,118 +0,0 @@
|
||||
From http://sources.redhat.com/ml/binutils/2004-08/msg00190.html
|
||||
|
||||
Date: Tue, 17 Aug 2004 12:04:29 +0200
|
||||
From: Jakub Jelinek <jakub at redhat dot com>
|
||||
To: binutils at sources dot redhat dot com
|
||||
Subject: [PATCH] Fix `defined in discarded section' errors when building ia64 gcc
|
||||
Message-ID: <20040817100429.GL30497@sunsite.ms.mff.cuni.cz>
|
||||
Reply-To: Jakub Jelinek <jakub at redhat dot com>
|
||||
References: <20040817090201.GK30497@sunsite.ms.mff.cuni.cz>
|
||||
In-Reply-To: <20040817090201 dot GK30497 at sunsite dot ms dot mff dot cuni dot cz>
|
||||
|
||||
On Tue, Aug 17, 2004 at 11:02:01AM +0200, Jakub Jelinek wrote:
|
||||
> Current gcc 3.4.x (at least gcc-3_4-rhl-branch) doesn't build with CVS
|
||||
> binutils (nor 2.15.91.0.2).
|
||||
> The problem is that libstdc++.so linking fails with:
|
||||
> `.gnu.linkonce.t._ZNSdD2Ev' referenced in section `.gnu.linkonce.ia64unw._ZNSdD2Ev' of .libs/sstream-inst.o: defined in discarded section `.gnu.linkonce.t._ZNSdD2Ev' of .libs/sstream-inst.o
|
||||
> The problem is that both io-inst.s and sstream-inst.s have
|
||||
> .gnu.linkonce.t._ZNSdD2Ev definition, but because io-inst.cc
|
||||
> also instantiates some templates sstream-inst.cc doesn't instantiate,
|
||||
> the inliner can do a better job in io-inst.cc.
|
||||
> The result is that _ZNSdD2Ev in io-inst.cc is a leaf routine, while
|
||||
> it is not in sstream-inst.cc (in assembly,
|
||||
> _ZNSdD2Ev in io-inst.s starts with .prologue and no .save directives,
|
||||
> while _ZNSdD2Ev] in sstream-inst.s has .prologue 12, 35 and some
|
||||
> .save directives.
|
||||
> IA-64 ABI allows leaf routines to have no unwind section at all,
|
||||
> which means .gnu.linkonce.ia64unw._ZNSdD2Ev is not created in
|
||||
> io-inst.o at all and as .gnu.linkonce.t._ZNSdD2Ev comes first
|
||||
> and wins, .gnu.linkonce.ia64unw._ZNSdD2Ev in sstream.o suddenly
|
||||
> references a discarded section.
|
||||
>
|
||||
> Not sure what should be done here, but certainly the compiler
|
||||
> isn't at fault here, it is a binutils problem.
|
||||
> One fix could be to create empty .gnu.linkonce.ia64unw.* section
|
||||
> in assembler, another special case ia64 unwind sections in the linker.
|
||||
|
||||
Here is a patch for the first possibility.
|
||||
It certainly makes libstdc++.so to link and even the unwind info looks
|
||||
good on brief skimming.
|
||||
|
||||
2004-08-17 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/tc-ia64.c (start_unwind_section): Add linkonce_empty
|
||||
argument, don't do anything if current section is not
|
||||
.gnu.linkonce.t.* and linkonce_empty is set.
|
||||
(generate_unwind_image, dot_endp): Adjust callers, call
|
||||
start_unwind_section (*, 1) if nothing will be put into the
|
||||
section.
|
||||
|
||||
--- binutils/gas/config/tc-ia64.c.jj 2004-07-30 11:42:24.000000000 +0200
|
||||
+++ binutils/gas/config/tc-ia64.c 2004-08-17 13:45:04.288173205 +0200
|
||||
@@ -1,5 +1,6 @@
|
||||
/* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture.
|
||||
- Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||
+ Free Software Foundation, Inc.
|
||||
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
@@ -3297,7 +3298,7 @@ static char *special_linkonce_name[] =
|
||||
};
|
||||
|
||||
static void
|
||||
-start_unwind_section (const segT text_seg, int sec_index)
|
||||
+start_unwind_section (const segT text_seg, int sec_index, int linkonce_empty)
|
||||
{
|
||||
/*
|
||||
Use a slightly ugly scheme to derive the unwind section names from
|
||||
@@ -3359,6 +3360,8 @@ start_unwind_section (const segT text_se
|
||||
prefix = special_linkonce_name [sec_index - SPECIAL_SECTION_UNWIND];
|
||||
suffix += sizeof (".gnu.linkonce.t.") - 1;
|
||||
}
|
||||
+ else if (linkonce_empty)
|
||||
+ return;
|
||||
|
||||
prefix_len = strlen (prefix);
|
||||
suffix_len = strlen (suffix);
|
||||
@@ -3444,7 +3447,7 @@ generate_unwind_image (const segT text_s
|
||||
expressionS exp;
|
||||
bfd_reloc_code_real_type reloc;
|
||||
|
||||
- start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO);
|
||||
+ start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 0);
|
||||
|
||||
/* Make sure the section has 4 byte alignment for ILP32 and
|
||||
8 byte alignment for LP64. */
|
||||
@@ -3485,6 +3488,8 @@ generate_unwind_image (const segT text_s
|
||||
unwind.personality_routine = 0;
|
||||
}
|
||||
}
|
||||
+ else
|
||||
+ start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 1);
|
||||
|
||||
free_saved_prologue_counts ();
|
||||
unwind.list = unwind.tail = unwind.current_entry = NULL;
|
||||
@@ -4164,7 +4169,7 @@ dot_endp (dummy)
|
||||
subseg_set (md.last_text_seg, 0);
|
||||
unwind.proc_end = expr_build_dot ();
|
||||
|
||||
- start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND);
|
||||
+ start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 0);
|
||||
|
||||
/* Make sure that section has 4 byte alignment for ILP32 and
|
||||
8 byte alignment for LP64. */
|
||||
@@ -4204,6 +4209,9 @@ dot_endp (dummy)
|
||||
bytes_per_address);
|
||||
|
||||
}
|
||||
+ else
|
||||
+ start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 1);
|
||||
+
|
||||
subseg_set (saved_seg, saved_subseg);
|
||||
|
||||
/* Parse names of main and alternate entry points and set symbol sizes. */
|
||||
|
||||
|
||||
Jakub
|
||||
|
@ -1,74 +0,0 @@
|
||||
See http://sources.redhat.com/ml/binutils/2004-08/msg00256.html
|
||||
|
||||
Date: Fri, 20 Aug 2004 21:13:43 -0400
|
||||
From: Daniel Jacobowitz <drow at false dot org>
|
||||
To: binutils at sources dot redhat dot com
|
||||
Subject: Re: Handle SEC_LINK_DUPLICATES_SAME_CONTENTS for arm-linux
|
||||
Message-ID: <20040821011342.GA30319@nevyn.them.org>
|
||||
Mail-Followup-To: binutils at sources dot redhat dot com
|
||||
References: <20040818145518.GA9774@nevyn.them.org> <20040819055040.GA11820@lucon.org> <20040819080034.GE21716@bubble.modra.org> <20040820173240.GA17678@nevyn.them.org> <20040821003737.GB16016@bubble.modra.org>
|
||||
In-Reply-To: <20040821003737 dot GB16016 at bubble dot modra dot org>
|
||||
|
||||
On Sat, Aug 21, 2004 at 10:07:38AM +0930, Alan Modra wrote:
|
||||
> On Fri, Aug 20, 2004 at 01:32:40PM -0400, Daniel Jacobowitz wrote:
|
||||
> > Thanks. How's this?
|
||||
>
|
||||
> As you might have guessed from my rather slack review of your previous
|
||||
> patch, I trust you enough to give the OK without proper review. But
|
||||
> since you asked... :)
|
||||
|
||||
Checked in as so.
|
||||
|
||||
--
|
||||
Daniel Jacobowitz
|
||||
|
||||
2004-08-20 Daniel Jacobowitz <dan@debian.org>
|
||||
|
||||
* elflink.c (_bfd_elf_section_already_linked): Handle
|
||||
SEC_LINK_DUPLICATES_SAME_CONTENTS.
|
||||
|
||||
Index: elflink.c
|
||||
===================================================================
|
||||
RCS file: /big/fsf/rsync/src-cvs/src/bfd/elflink.c,v
|
||||
retrieving revision 1.97
|
||||
diff -u -p -r1.97 elflink.c
|
||||
--- binutils/bfd/elflink.c 18 Aug 2004 02:45:42 -0000 1.97
|
||||
+++ binutils/bfd/elflink.c 21 Aug 2004 00:59:08 -0000
|
||||
@@ -9366,6 +9366,36 @@ _bfd_elf_section_already_linked (bfd *ab
|
||||
(_("%B: duplicate section `%A' has different size\n"),
|
||||
abfd, sec);
|
||||
break;
|
||||
+
|
||||
+ case SEC_LINK_DUPLICATES_SAME_CONTENTS:
|
||||
+ if (sec->size != l->sec->size)
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: duplicate section `%A' has different size\n"),
|
||||
+ abfd, sec);
|
||||
+ else if (sec->size != 0)
|
||||
+ {
|
||||
+ bfd_byte *sec_contents, *l_sec_contents;
|
||||
+
|
||||
+ if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents))
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: warning: could not read contents of section `%A'\n"),
|
||||
+ abfd, sec);
|
||||
+ else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec,
|
||||
+ &l_sec_contents))
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: warning: could not read contents of section `%A'\n"),
|
||||
+ l->sec->owner, l->sec);
|
||||
+ else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0)
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: warning: duplicate section `%A' has different contents\n"),
|
||||
+ abfd, sec);
|
||||
+
|
||||
+ if (sec_contents)
|
||||
+ free (sec_contents);
|
||||
+ if (l_sec_contents)
|
||||
+ free (l_sec_contents);
|
||||
+ }
|
||||
+ break;
|
||||
}
|
||||
|
||||
/* Set the output_section field so that lang_add_section
|
||||
|
@ -1,101 +0,0 @@
|
||||
Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
|
||||
Fixes
|
||||
localealias.s:544: Error: junk at end of line, first unrecognized character is `,'
|
||||
when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
|
||||
|
||||
Paths adjusted to match crosstool's patcher.
|
||||
|
||||
Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
|
||||
From: Andreas Schwab <schwab at suse dot de>
|
||||
To: Nathan Sidwell <nathan at codesourcery dot com>
|
||||
Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
|
||||
Date: Fri, 23 Apr 2004 22:27:19 +0200
|
||||
Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
|
||||
|
||||
Nathan Sidwell <nathan@codesourcery.com> writes:
|
||||
|
||||
> Index: read.c
|
||||
> ===================================================================
|
||||
> RCS file: /cvs/src/src/gas/read.c,v
|
||||
> retrieving revision 1.76
|
||||
> diff -c -3 -p -r1.76 read.c
|
||||
> *** read.c 12 Mar 2004 17:48:12 -0000 1.76
|
||||
> --- read.c 18 Mar 2004 09:56:05 -0000
|
||||
> *************** read_a_source_file (char *name)
|
||||
> *** 1053,1059 ****
|
||||
> #endif
|
||||
> input_line_pointer--;
|
||||
> /* Report unknown char as ignored. */
|
||||
> ! ignore_rest_of_line ();
|
||||
> }
|
||||
>
|
||||
> #ifdef md_after_pass_hook
|
||||
> --- 1053,1059 ----
|
||||
> #endif
|
||||
> input_line_pointer--;
|
||||
> /* Report unknown char as ignored. */
|
||||
> ! demand_empty_rest_of_line ();
|
||||
> }
|
||||
>
|
||||
> #ifdef md_after_pass_hook
|
||||
|
||||
This means that the unknown character is no longer ignored, despite the
|
||||
comment. As a side effect a line starting with a line comment character
|
||||
not followed by APP in NO_APP mode now triggers an error instead of just a
|
||||
warning, breaking builds of glibc on m68k-linux. Earlier in
|
||||
read_a_source_file where #APP is handled there is another comment that
|
||||
claims that unknown comments are ignored, when in fact they aren't (only
|
||||
the initial line comment character is skipped).
|
||||
|
||||
Note that the presence of #APP will mess up the line counters, but
|
||||
that appears to be difficult to fix.
|
||||
|
||||
Andreas.
|
||||
|
||||
2004-04-23 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* read.c (read_a_source_file): Ignore unknown text after line
|
||||
comment character. Fix misleading comment.
|
||||
|
||||
--- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200
|
||||
+++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
/* read.c - read a source file -
|
||||
Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
- 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
@@ -950,10 +950,14 @@ read_a_source_file (char *name)
|
||||
unsigned int new_length;
|
||||
char *tmp_buf = 0;
|
||||
|
||||
- bump_line_counters ();
|
||||
s = input_line_pointer;
|
||||
if (strncmp (s, "APP\n", 4))
|
||||
- continue; /* We ignore it */
|
||||
+ {
|
||||
+ /* We ignore it */
|
||||
+ ignore_rest_of_line ();
|
||||
+ continue;
|
||||
+ }
|
||||
+ bump_line_counters ();
|
||||
s += 4;
|
||||
|
||||
sb_new (&sbuf);
|
||||
@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
|
||||
continue;
|
||||
#endif
|
||||
input_line_pointer--;
|
||||
- /* Report unknown char as ignored. */
|
||||
+ /* Report unknown char as error. */
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
Andreas Schwab, SuSE Labs, schwab@suse.de
|
||||
SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany
|
||||
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
|
||||
"And now for something completely different."
|
@ -1,192 +0,0 @@
|
||||
See
|
||||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15247
|
||||
|
||||
Fixes spurious error
|
||||
/tmp/ccvNi4ou.s: Assembler messages:
|
||||
/tmp/ccvNi4ou.s:2310: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
|
||||
make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/math/dosincos.o] Error 1
|
||||
|
||||
when compiling glibc's dosincos.c with gcc-3.4.0
|
||||
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/opcodes/sparc-opc.c,v
|
||||
retrieving revision 1.9
|
||||
retrieving revision 1.10
|
||||
diff -u -r1.9 -r1.10
|
||||
--- src/opcodes/sparc-opc.c 2004/01/18 23:46:32 1.9
|
||||
+++ src/opcodes/sparc-opc.c 2004/04/20 10:23:51 1.10
|
||||
@@ -1273,110 +1273,72 @@
|
||||
#define FM_DF 2 /* v9 */
|
||||
#define FM_QF 3 /* v9 */
|
||||
|
||||
-#define fmovicc(opcode, fpsize, cond, flags) /* v9 */ \
|
||||
-{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags, v9 }
|
||||
-
|
||||
-#define fmovfcc(opcode, fpsize, fcond, flags) /* v9 */ \
|
||||
-{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags, v9 }
|
||||
+#define fmoviccx(opcode, fpsize, args, cond, flags) /* v9 */ \
|
||||
+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags, v9 }
|
||||
+
|
||||
+#define fmovfccx(opcode, fpsize, args, fcond, flags) /* v9 */ \
|
||||
+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags, v9 }
|
||||
|
||||
/* FIXME: use fmovicc/fmovfcc? */ /* v9 */
|
||||
-#define fmovcc(opcode, fpsize, cond, fcond, flags) /* v9 */ \
|
||||
-{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags | F_FLOAT, v9 }, \
|
||||
-{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags | F_FLOAT, v9 }
|
||||
-
|
||||
-/* v9 */ fmovcc ("fmovda", FM_DF, CONDA, FCONDA, 0),
|
||||
-/* v9 */ fmovcc ("fmovqa", FM_QF, CONDA, FCONDA, 0),
|
||||
-/* v9 */ fmovcc ("fmovsa", FM_SF, CONDA, FCONDA, 0),
|
||||
-/* v9 */ fmovicc ("fmovdcc", FM_DF, CONDCC, 0),
|
||||
-/* v9 */ fmovicc ("fmovqcc", FM_QF, CONDCC, 0),
|
||||
-/* v9 */ fmovicc ("fmovscc", FM_SF, CONDCC, 0),
|
||||
-/* v9 */ fmovicc ("fmovdcs", FM_DF, CONDCS, 0),
|
||||
-/* v9 */ fmovicc ("fmovqcs", FM_QF, CONDCS, 0),
|
||||
-/* v9 */ fmovicc ("fmovscs", FM_SF, CONDCS, 0),
|
||||
-/* v9 */ fmovcc ("fmovde", FM_DF, CONDE, FCONDE, 0),
|
||||
-/* v9 */ fmovcc ("fmovqe", FM_QF, CONDE, FCONDE, 0),
|
||||
-/* v9 */ fmovcc ("fmovse", FM_SF, CONDE, FCONDE, 0),
|
||||
-/* v9 */ fmovcc ("fmovdg", FM_DF, CONDG, FCONDG, 0),
|
||||
-/* v9 */ fmovcc ("fmovqg", FM_QF, CONDG, FCONDG, 0),
|
||||
-/* v9 */ fmovcc ("fmovsg", FM_SF, CONDG, FCONDG, 0),
|
||||
-/* v9 */ fmovcc ("fmovdge", FM_DF, CONDGE, FCONDGE, 0),
|
||||
-/* v9 */ fmovcc ("fmovqge", FM_QF, CONDGE, FCONDGE, 0),
|
||||
-/* v9 */ fmovcc ("fmovsge", FM_SF, CONDGE, FCONDGE, 0),
|
||||
-/* v9 */ fmovicc ("fmovdgeu", FM_DF, CONDGEU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovqgeu", FM_QF, CONDGEU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovsgeu", FM_SF, CONDGEU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovdgu", FM_DF, CONDGU, 0),
|
||||
-/* v9 */ fmovicc ("fmovqgu", FM_QF, CONDGU, 0),
|
||||
-/* v9 */ fmovicc ("fmovsgu", FM_SF, CONDGU, 0),
|
||||
-/* v9 */ fmovcc ("fmovdl", FM_DF, CONDL, FCONDL, 0),
|
||||
-/* v9 */ fmovcc ("fmovql", FM_QF, CONDL, FCONDL, 0),
|
||||
-/* v9 */ fmovcc ("fmovsl", FM_SF, CONDL, FCONDL, 0),
|
||||
-/* v9 */ fmovcc ("fmovdle", FM_DF, CONDLE, FCONDLE, 0),
|
||||
-/* v9 */ fmovcc ("fmovqle", FM_QF, CONDLE, FCONDLE, 0),
|
||||
-/* v9 */ fmovcc ("fmovsle", FM_SF, CONDLE, FCONDLE, 0),
|
||||
-/* v9 */ fmovicc ("fmovdleu", FM_DF, CONDLEU, 0),
|
||||
-/* v9 */ fmovicc ("fmovqleu", FM_QF, CONDLEU, 0),
|
||||
-/* v9 */ fmovicc ("fmovsleu", FM_SF, CONDLEU, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdlg", FM_DF, FCONDLG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqlg", FM_QF, FCONDLG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovslg", FM_SF, FCONDLG, 0),
|
||||
-/* v9 */ fmovicc ("fmovdlu", FM_DF, CONDLU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovqlu", FM_QF, CONDLU, F_ALIAS),
|
||||
-/* v9 */ fmovicc ("fmovslu", FM_SF, CONDLU, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovdn", FM_DF, CONDN, FCONDN, 0),
|
||||
-/* v9 */ fmovcc ("fmovqn", FM_QF, CONDN, FCONDN, 0),
|
||||
-/* v9 */ fmovcc ("fmovsn", FM_SF, CONDN, FCONDN, 0),
|
||||
-/* v9 */ fmovcc ("fmovdne", FM_DF, CONDNE, FCONDNE, 0),
|
||||
-/* v9 */ fmovcc ("fmovqne", FM_QF, CONDNE, FCONDNE, 0),
|
||||
-/* v9 */ fmovcc ("fmovsne", FM_SF, CONDNE, FCONDNE, 0),
|
||||
-/* v9 */ fmovicc ("fmovdneg", FM_DF, CONDNEG, 0),
|
||||
-/* v9 */ fmovicc ("fmovqneg", FM_QF, CONDNEG, 0),
|
||||
-/* v9 */ fmovicc ("fmovsneg", FM_SF, CONDNEG, 0),
|
||||
-/* v9 */ fmovcc ("fmovdnz", FM_DF, CONDNZ, FCONDNZ, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovqnz", FM_QF, CONDNZ, FCONDNZ, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovsnz", FM_SF, CONDNZ, FCONDNZ, F_ALIAS),
|
||||
-/* v9 */ fmovfcc ("fmovdo", FM_DF, FCONDO, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqo", FM_QF, FCONDO, 0),
|
||||
-/* v9 */ fmovfcc ("fmovso", FM_SF, FCONDO, 0),
|
||||
-/* v9 */ fmovicc ("fmovdpos", FM_DF, CONDPOS, 0),
|
||||
-/* v9 */ fmovicc ("fmovqpos", FM_QF, CONDPOS, 0),
|
||||
-/* v9 */ fmovicc ("fmovspos", FM_SF, CONDPOS, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdu", FM_DF, FCONDU, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqu", FM_QF, FCONDU, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsu", FM_SF, FCONDU, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdue", FM_DF, FCONDUE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovque", FM_QF, FCONDUE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsue", FM_SF, FCONDUE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdug", FM_DF, FCONDUG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqug", FM_QF, FCONDUG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsug", FM_SF, FCONDUG, 0),
|
||||
-/* v9 */ fmovfcc ("fmovduge", FM_DF, FCONDUGE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovquge", FM_QF, FCONDUGE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsuge", FM_SF, FCONDUGE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdul", FM_DF, FCONDUL, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqul", FM_QF, FCONDUL, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsul", FM_SF, FCONDUL, 0),
|
||||
-/* v9 */ fmovfcc ("fmovdule", FM_DF, FCONDULE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovqule", FM_QF, FCONDULE, 0),
|
||||
-/* v9 */ fmovfcc ("fmovsule", FM_SF, FCONDULE, 0),
|
||||
-/* v9 */ fmovicc ("fmovdvc", FM_DF, CONDVC, 0),
|
||||
-/* v9 */ fmovicc ("fmovqvc", FM_QF, CONDVC, 0),
|
||||
-/* v9 */ fmovicc ("fmovsvc", FM_SF, CONDVC, 0),
|
||||
-/* v9 */ fmovicc ("fmovdvs", FM_DF, CONDVS, 0),
|
||||
-/* v9 */ fmovicc ("fmovqvs", FM_QF, CONDVS, 0),
|
||||
-/* v9 */ fmovicc ("fmovsvs", FM_SF, CONDVS, 0),
|
||||
-/* v9 */ fmovcc ("fmovdz", FM_DF, CONDZ, FCONDZ, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovqz", FM_QF, CONDZ, FCONDZ, F_ALIAS),
|
||||
-/* v9 */ fmovcc ("fmovsz", FM_SF, CONDZ, FCONDZ, F_ALIAS),
|
||||
-
|
||||
+#define fmovccx(opcode, fpsize, args, cond, fcond, flags) /* v9 */ \
|
||||
+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags | F_FLOAT, v9 }, \
|
||||
+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags | F_FLOAT, v9 }
|
||||
+
|
||||
+#define fmovicc(suffix, cond, flags) /* v9 */ \
|
||||
+fmoviccx("fmovd" suffix, FM_DF, "B,H", cond, flags), \
|
||||
+fmoviccx("fmovq" suffix, FM_QF, "R,J", cond, flags), \
|
||||
+fmoviccx("fmovs" suffix, FM_SF, "f,g", cond, flags)
|
||||
+
|
||||
+#define fmovfcc(suffix, fcond, flags) /* v9 */ \
|
||||
+fmovfccx("fmovd" suffix, FM_DF, "B,H", fcond, flags), \
|
||||
+fmovfccx("fmovq" suffix, FM_QF, "R,J", fcond, flags), \
|
||||
+fmovfccx("fmovs" suffix, FM_SF, "f,g", fcond, flags)
|
||||
+
|
||||
+#define fmovcc(suffix, cond, fcond, flags) /* v9 */ \
|
||||
+fmovccx("fmovd" suffix, FM_DF, "B,H", cond, fcond, flags), \
|
||||
+fmovccx("fmovq" suffix, FM_QF, "R,J", cond, fcond, flags), \
|
||||
+fmovccx("fmovs" suffix, FM_SF, "f,g", cond, fcond, flags)
|
||||
+
|
||||
+/* v9 */ fmovcc ("a", CONDA, FCONDA, 0),
|
||||
+/* v9 */ fmovicc ("cc", CONDCC, 0),
|
||||
+/* v9 */ fmovicc ("cs", CONDCS, 0),
|
||||
+/* v9 */ fmovcc ("e", CONDE, FCONDE, 0),
|
||||
+/* v9 */ fmovcc ("g", CONDG, FCONDG, 0),
|
||||
+/* v9 */ fmovcc ("ge", CONDGE, FCONDGE, 0),
|
||||
+/* v9 */ fmovicc ("geu", CONDGEU, F_ALIAS),
|
||||
+/* v9 */ fmovicc ("gu", CONDGU, 0),
|
||||
+/* v9 */ fmovcc ("l", CONDL, FCONDL, 0),
|
||||
+/* v9 */ fmovcc ("le", CONDLE, FCONDLE, 0),
|
||||
+/* v9 */ fmovicc ("leu", CONDLEU, 0),
|
||||
+/* v9 */ fmovfcc ("lg", FCONDLG, 0),
|
||||
+/* v9 */ fmovicc ("lu", CONDLU, F_ALIAS),
|
||||
+/* v9 */ fmovcc ("n", CONDN, FCONDN, 0),
|
||||
+/* v9 */ fmovcc ("ne", CONDNE, FCONDNE, 0),
|
||||
+/* v9 */ fmovicc ("neg", CONDNEG, 0),
|
||||
+/* v9 */ fmovcc ("nz", CONDNZ, FCONDNZ, F_ALIAS),
|
||||
+/* v9 */ fmovfcc ("o", FCONDO, 0),
|
||||
+/* v9 */ fmovicc ("pos", CONDPOS, 0),
|
||||
+/* v9 */ fmovfcc ("u", FCONDU, 0),
|
||||
+/* v9 */ fmovfcc ("ue", FCONDUE, 0),
|
||||
+/* v9 */ fmovfcc ("ug", FCONDUG, 0),
|
||||
+/* v9 */ fmovfcc ("uge", FCONDUGE, 0),
|
||||
+/* v9 */ fmovfcc ("ul", FCONDUL, 0),
|
||||
+/* v9 */ fmovfcc ("ule", FCONDULE, 0),
|
||||
+/* v9 */ fmovicc ("vc", CONDVC, 0),
|
||||
+/* v9 */ fmovicc ("vs", CONDVS, 0),
|
||||
+/* v9 */ fmovcc ("z", CONDZ, FCONDZ, F_ALIAS),
|
||||
+
|
||||
+#undef fmoviccx /* v9 */
|
||||
+#undef fmovfccx /* v9 */
|
||||
+#undef fmovccx /* v9 */
|
||||
#undef fmovicc /* v9 */
|
||||
#undef fmovfcc /* v9 */
|
||||
#undef fmovcc /* v9 */
|
@ -1,118 +0,0 @@
|
||||
From http://sources.redhat.com/ml/binutils/2004-08/msg00190.html
|
||||
|
||||
Date: Tue, 17 Aug 2004 12:04:29 +0200
|
||||
From: Jakub Jelinek <jakub at redhat dot com>
|
||||
To: binutils at sources dot redhat dot com
|
||||
Subject: [PATCH] Fix `defined in discarded section' errors when building ia64 gcc
|
||||
Message-ID: <20040817100429.GL30497@sunsite.ms.mff.cuni.cz>
|
||||
Reply-To: Jakub Jelinek <jakub at redhat dot com>
|
||||
References: <20040817090201.GK30497@sunsite.ms.mff.cuni.cz>
|
||||
In-Reply-To: <20040817090201 dot GK30497 at sunsite dot ms dot mff dot cuni dot cz>
|
||||
|
||||
On Tue, Aug 17, 2004 at 11:02:01AM +0200, Jakub Jelinek wrote:
|
||||
> Current gcc 3.4.x (at least gcc-3_4-rhl-branch) doesn't build with CVS
|
||||
> binutils (nor 2.15.91.0.2).
|
||||
> The problem is that libstdc++.so linking fails with:
|
||||
> `.gnu.linkonce.t._ZNSdD2Ev' referenced in section `.gnu.linkonce.ia64unw._ZNSdD2Ev' of .libs/sstream-inst.o: defined in discarded section `.gnu.linkonce.t._ZNSdD2Ev' of .libs/sstream-inst.o
|
||||
> The problem is that both io-inst.s and sstream-inst.s have
|
||||
> .gnu.linkonce.t._ZNSdD2Ev definition, but because io-inst.cc
|
||||
> also instantiates some templates sstream-inst.cc doesn't instantiate,
|
||||
> the inliner can do a better job in io-inst.cc.
|
||||
> The result is that _ZNSdD2Ev in io-inst.cc is a leaf routine, while
|
||||
> it is not in sstream-inst.cc (in assembly,
|
||||
> _ZNSdD2Ev in io-inst.s starts with .prologue and no .save directives,
|
||||
> while _ZNSdD2Ev] in sstream-inst.s has .prologue 12, 35 and some
|
||||
> .save directives.
|
||||
> IA-64 ABI allows leaf routines to have no unwind section at all,
|
||||
> which means .gnu.linkonce.ia64unw._ZNSdD2Ev is not created in
|
||||
> io-inst.o at all and as .gnu.linkonce.t._ZNSdD2Ev comes first
|
||||
> and wins, .gnu.linkonce.ia64unw._ZNSdD2Ev in sstream.o suddenly
|
||||
> references a discarded section.
|
||||
>
|
||||
> Not sure what should be done here, but certainly the compiler
|
||||
> isn't at fault here, it is a binutils problem.
|
||||
> One fix could be to create empty .gnu.linkonce.ia64unw.* section
|
||||
> in assembler, another special case ia64 unwind sections in the linker.
|
||||
|
||||
Here is a patch for the first possibility.
|
||||
It certainly makes libstdc++.so to link and even the unwind info looks
|
||||
good on brief skimming.
|
||||
|
||||
2004-08-17 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/tc-ia64.c (start_unwind_section): Add linkonce_empty
|
||||
argument, don't do anything if current section is not
|
||||
.gnu.linkonce.t.* and linkonce_empty is set.
|
||||
(generate_unwind_image, dot_endp): Adjust callers, call
|
||||
start_unwind_section (*, 1) if nothing will be put into the
|
||||
section.
|
||||
|
||||
--- binutils/gas/config/tc-ia64.c.jj 2004-07-30 11:42:24.000000000 +0200
|
||||
+++ binutils/gas/config/tc-ia64.c 2004-08-17 13:45:04.288173205 +0200
|
||||
@@ -1,5 +1,6 @@
|
||||
/* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture.
|
||||
- Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||
+ Free Software Foundation, Inc.
|
||||
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
@@ -3297,7 +3298,7 @@ static char *special_linkonce_name[] =
|
||||
};
|
||||
|
||||
static void
|
||||
-start_unwind_section (const segT text_seg, int sec_index)
|
||||
+start_unwind_section (const segT text_seg, int sec_index, int linkonce_empty)
|
||||
{
|
||||
/*
|
||||
Use a slightly ugly scheme to derive the unwind section names from
|
||||
@@ -3359,6 +3360,8 @@ start_unwind_section (const segT text_se
|
||||
prefix = special_linkonce_name [sec_index - SPECIAL_SECTION_UNWIND];
|
||||
suffix += sizeof (".gnu.linkonce.t.") - 1;
|
||||
}
|
||||
+ else if (linkonce_empty)
|
||||
+ return;
|
||||
|
||||
prefix_len = strlen (prefix);
|
||||
suffix_len = strlen (suffix);
|
||||
@@ -3444,7 +3447,7 @@ generate_unwind_image (const segT text_s
|
||||
expressionS exp;
|
||||
bfd_reloc_code_real_type reloc;
|
||||
|
||||
- start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO);
|
||||
+ start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 0);
|
||||
|
||||
/* Make sure the section has 4 byte alignment for ILP32 and
|
||||
8 byte alignment for LP64. */
|
||||
@@ -3485,6 +3488,8 @@ generate_unwind_image (const segT text_s
|
||||
unwind.personality_routine = 0;
|
||||
}
|
||||
}
|
||||
+ else
|
||||
+ start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 1);
|
||||
|
||||
free_saved_prologue_counts ();
|
||||
unwind.list = unwind.tail = unwind.current_entry = NULL;
|
||||
@@ -4164,7 +4169,7 @@ dot_endp (dummy)
|
||||
subseg_set (md.last_text_seg, 0);
|
||||
unwind.proc_end = expr_build_dot ();
|
||||
|
||||
- start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND);
|
||||
+ start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 0);
|
||||
|
||||
/* Make sure that section has 4 byte alignment for ILP32 and
|
||||
8 byte alignment for LP64. */
|
||||
@@ -4204,6 +4209,9 @@ dot_endp (dummy)
|
||||
bytes_per_address);
|
||||
|
||||
}
|
||||
+ else
|
||||
+ start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 1);
|
||||
+
|
||||
subseg_set (saved_seg, saved_subseg);
|
||||
|
||||
/* Parse names of main and alternate entry points and set symbol sizes. */
|
||||
|
||||
|
||||
Jakub
|
||||
|
@ -1,68 +0,0 @@
|
||||
See http://sources.redhat.com/ml/binutils/2004-08/msg00256.html
|
||||
|
||||
Date: Fri, 20 Aug 2004 21:13:43 -0400
|
||||
From: Daniel Jacobowitz <drow at false dot org>
|
||||
To: binutils at sources dot redhat dot com
|
||||
Subject: Re: Handle SEC_LINK_DUPLICATES_SAME_CONTENTS for arm-linux
|
||||
Message-ID: <20040821011342.GA30319@nevyn.them.org>
|
||||
Mail-Followup-To: binutils at sources dot redhat dot com
|
||||
References: <20040818145518.GA9774@nevyn.them.org> <20040819055040.GA11820@lucon.org> <20040819080034.GE21716@bubble.modra.org> <20040820173240.GA17678@nevyn.them.org> <20040821003737.GB16016@bubble.modra.org>
|
||||
In-Reply-To: <20040821003737 dot GB16016 at bubble dot modra dot org>
|
||||
|
||||
On Sat, Aug 21, 2004 at 10:07:38AM +0930, Alan Modra wrote:
|
||||
> On Fri, Aug 20, 2004 at 01:32:40PM -0400, Daniel Jacobowitz wrote:
|
||||
> > Thanks. How's this?
|
||||
>
|
||||
> As you might have guessed from my rather slack review of your previous
|
||||
> patch, I trust you enough to give the OK without proper review. But
|
||||
> since you asked... :)
|
||||
|
||||
Checked in as so.
|
||||
|
||||
--
|
||||
Daniel Jacobowitz
|
||||
|
||||
[ rediffed against binutils-2.15.91.0.2, with some elbow grease ]
|
||||
|
||||
2004-08-20 Daniel Jacobowitz <dan@debian.org>
|
||||
|
||||
* elflink.c (_bfd_elf_section_already_linked): Handle
|
||||
SEC_LINK_DUPLICATES_SAME_CONTENTS.
|
||||
--- binutils-2.15.91.0.2/bfd/elflink.c.old 2004-07-27 21:36:08.000000000 -0700
|
||||
+++ binutils-2.15.91.0.2/bfd/elflink.c 2004-08-26 06:38:07.000000000 -0700
|
||||
@@ -9359,6 +9359,35 @@
|
||||
(_("%s: %s: warning: duplicate section `%s' has different size\n"),
|
||||
bfd_archive_filename (abfd), name);
|
||||
break;
|
||||
+ case SEC_LINK_DUPLICATES_SAME_CONTENTS:
|
||||
+ if (sec->size != l->sec->size)
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: duplicate section `%A' has different size\n"),
|
||||
+ bfd_archive_filename (abfd), sec);
|
||||
+ else if (sec->size != 0)
|
||||
+ {
|
||||
+ bfd_byte *sec_contents, *l_sec_contents;
|
||||
+
|
||||
+ if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents))
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: warning: could not read contents of section `%A'\n"),
|
||||
+ bfd_archive_filename (abfd), sec);
|
||||
+ else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec,
|
||||
+ &l_sec_contents))
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: warning: could not read contents of section `%A'\n"),
|
||||
+ bfd_archive_filename(l->sec->owner), l->sec);
|
||||
+ else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0)
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: warning: duplicate section `%A' has different contents\n"),
|
||||
+ bfd_archive_filename (abfd), sec);
|
||||
+
|
||||
+ if (sec_contents)
|
||||
+ free (sec_contents);
|
||||
+ if (l_sec_contents)
|
||||
+ free (l_sec_contents);
|
||||
+ }
|
||||
+ break;
|
||||
}
|
||||
|
||||
/* Set the output_section field so that lang_add_section
|
@ -1,101 +0,0 @@
|
||||
Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
|
||||
Fixes
|
||||
localealias.s:544: Error: junk at end of line, first unrecognized character is `,'
|
||||
when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
|
||||
|
||||
Paths adjusted to match crosstool's patcher.
|
||||
|
||||
Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
|
||||
From: Andreas Schwab <schwab at suse dot de>
|
||||
To: Nathan Sidwell <nathan at codesourcery dot com>
|
||||
Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
|
||||
Date: Fri, 23 Apr 2004 22:27:19 +0200
|
||||
Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
|
||||
|
||||
Nathan Sidwell <nathan@codesourcery.com> writes:
|
||||
|
||||
> Index: read.c
|
||||
> ===================================================================
|
||||
> RCS file: /cvs/src/src/gas/read.c,v
|
||||
> retrieving revision 1.76
|
||||
> diff -c -3 -p -r1.76 read.c
|
||||
> *** read.c 12 Mar 2004 17:48:12 -0000 1.76
|
||||
> --- read.c 18 Mar 2004 09:56:05 -0000
|
||||
> *************** read_a_source_file (char *name)
|
||||
> *** 1053,1059 ****
|
||||
> #endif
|
||||
> input_line_pointer--;
|
||||
> /* Report unknown char as ignored. */
|
||||
> ! ignore_rest_of_line ();
|
||||
> }
|
||||
>
|
||||
> #ifdef md_after_pass_hook
|
||||
> --- 1053,1059 ----
|
||||
> #endif
|
||||
> input_line_pointer--;
|
||||
> /* Report unknown char as ignored. */
|
||||
> ! demand_empty_rest_of_line ();
|
||||
> }
|
||||
>
|
||||
> #ifdef md_after_pass_hook
|
||||
|
||||
This means that the unknown character is no longer ignored, despite the
|
||||
comment. As a side effect a line starting with a line comment character
|
||||
not followed by APP in NO_APP mode now triggers an error instead of just a
|
||||
warning, breaking builds of glibc on m68k-linux. Earlier in
|
||||
read_a_source_file where #APP is handled there is another comment that
|
||||
claims that unknown comments are ignored, when in fact they aren't (only
|
||||
the initial line comment character is skipped).
|
||||
|
||||
Note that the presence of #APP will mess up the line counters, but
|
||||
that appears to be difficult to fix.
|
||||
|
||||
Andreas.
|
||||
|
||||
2004-04-23 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* read.c (read_a_source_file): Ignore unknown text after line
|
||||
comment character. Fix misleading comment.
|
||||
|
||||
--- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200
|
||||
+++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
/* read.c - read a source file -
|
||||
Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
- 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
@@ -950,10 +950,14 @@ read_a_source_file (char *name)
|
||||
unsigned int new_length;
|
||||
char *tmp_buf = 0;
|
||||
|
||||
- bump_line_counters ();
|
||||
s = input_line_pointer;
|
||||
if (strncmp (s, "APP\n", 4))
|
||||
- continue; /* We ignore it */
|
||||
+ {
|
||||
+ /* We ignore it */
|
||||
+ ignore_rest_of_line ();
|
||||
+ continue;
|
||||
+ }
|
||||
+ bump_line_counters ();
|
||||
s += 4;
|
||||
|
||||
sb_new (&sbuf);
|
||||
@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
|
||||
continue;
|
||||
#endif
|
||||
input_line_pointer--;
|
||||
- /* Report unknown char as ignored. */
|
||||
+ /* Report unknown char as error. */
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
Andreas Schwab, SuSE Labs, schwab@suse.de
|
||||
SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany
|
||||
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
|
||||
"And now for something completely different."
|
@ -1,139 +0,0 @@
|
||||
--- binutils-2.16.91.0.7/bfd/configure
|
||||
+++ binutils-2.16.91.0.7/bfd/configure
|
||||
@@ -3576,7 +3576,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/binutils/configure
|
||||
+++ binutils-2.16.91.0.7/binutils/configure
|
||||
@@ -3411,7 +3411,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/configure
|
||||
+++ binutils-2.16.91.0.7/configure
|
||||
@@ -1270,7 +1270,7 @@
|
||||
am33_2.0-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
- sh-*-linux*)
|
||||
+ sh*-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||||
@@ -1578,7 +1578,7 @@
|
||||
romp-*-*)
|
||||
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
|
||||
;;
|
||||
- sh-*-* | sh64-*-*)
|
||||
+ sh*-*-* | sh64-*-*)
|
||||
case "${host}" in
|
||||
i[3456789]86-*-vsta) ;; # don't add gprof back in
|
||||
i[3456789]86-*-go32*) ;; # don't add gprof back in
|
||||
--- binutils-2.16.91.0.7/configure.in
|
||||
+++ binutils-2.16.91.0.7/configure.in
|
||||
@@ -468,7 +468,7 @@
|
||||
am33_2.0-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
- sh-*-linux*)
|
||||
+ sh*-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||||
@@ -776,7 +776,7 @@
|
||||
romp-*-*)
|
||||
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
|
||||
;;
|
||||
- sh-*-* | sh64-*-*)
|
||||
+ sh*-*-* | sh64-*-*)
|
||||
case "${host}" in
|
||||
i[[3456789]]86-*-vsta) ;; # don't add gprof back in
|
||||
i[[3456789]]86-*-go32*) ;; # don't add gprof back in
|
||||
--- binutils-2.16.91.0.7/gas/configure
|
||||
+++ binutils-2.16.91.0.7/gas/configure
|
||||
@@ -3411,7 +3411,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/gprof/configure
|
||||
+++ binutils-2.16.91.0.7/gprof/configure
|
||||
@@ -3419,6 +3419,11 @@
|
||||
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
|
||||
;;
|
||||
|
||||
+linux-uclibc*)
|
||||
+ lt_cv_deplibs_check_method=pass_all
|
||||
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
|
||||
+ ;;
|
||||
+
|
||||
netbsd* | knetbsd*-gnu)
|
||||
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
|
||||
lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
|
||||
--- binutils-2.16.91.0.7/ld/configure
|
||||
+++ binutils-2.16.91.0.7/ld/configure
|
||||
@@ -3413,7 +3413,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/libtool.m4
|
||||
+++ binutils-2.16.91.0.7/libtool.m4
|
||||
@@ -739,7 +739,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/ltconfig
|
||||
+++ binutils-2.16.91.0.7/ltconfig
|
||||
@@ -602,6 +602,7 @@
|
||||
|
||||
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
|
||||
case $host_os in
|
||||
+linux-uclibc*) ;;
|
||||
linux-gnu*) ;;
|
||||
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
|
||||
esac
|
||||
@@ -1247,7 +1248,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
--- binutils-2.16.91.0.7/opcodes/configure
|
||||
+++ binutils-2.16.91.0.7/opcodes/configure
|
||||
@@ -3579,7 +3579,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
@ -1,24 +0,0 @@
|
||||
diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
|
||||
--- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
|
||||
+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
|
||||
@@ -1299,7 +1299,7 @@
|
||||
arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
;;
|
||||
- arm*-*-linux-gnueabi)
|
||||
+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
noconfigdirs="$noconfigdirs target-libjava target-libobjc"
|
||||
;;
|
||||
diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
|
||||
--- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
|
||||
+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
|
||||
@@ -497,7 +497,7 @@
|
||||
arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
;;
|
||||
- arm*-*-linux-gnueabi)
|
||||
+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
noconfigdirs="$noconfigdirs target-libjava target-libobjc"
|
||||
;;
|
@ -1,50 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
## 001_ld_makefile_patch.dpatch
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Description: correct where ld scripts are installed
|
||||
## DP: Author: Chris Chimelis <chris@debian.org>
|
||||
## DP: Upstream status: N/A
|
||||
## DP: Date: ??
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
|
||||
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
|
||||
|
||||
case "$1" in
|
||||
-patch) patch $patch_opts -p1 < $0;;
|
||||
-unpatch) patch $patch_opts -p1 -R < $0;;
|
||||
*)
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@DPATCH@
|
||||
--- binutils-2.16.91.0.1/ld/Makefile.am
|
||||
+++ binutils-2.16.91.0.1/ld/Makefile.am
|
||||
@@ -20,7 +20,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
||||
--- binutils-2.16.91.0.1/ld/Makefile.in
|
||||
+++ binutils-2.16.91.0.1/ld/Makefile.in
|
||||
@@ -268,7 +268,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
BASEDIR = $(srcdir)/..
|
||||
BFDDIR = $(BASEDIR)/bfd
|
||||
INCDIR = $(BASEDIR)/include
|
@ -1,47 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
|
||||
## DP: cases where -rpath isn't specified. (#151024)
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
|
||||
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
|
||||
|
||||
case "$1" in
|
||||
-patch) patch $patch_opts -p1 < $0;;
|
||||
-unpatch) patch $patch_opts -p1 -R < $0;;
|
||||
*)
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
|
||||
--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
|
||||
+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
|
||||
@@ -692,6 +692,8 @@
|
||||
&& command_line.rpath == NULL)
|
||||
{
|
||||
lib_path = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((lib_path) && (strlen (lib_path) == 0))
|
||||
+ lib_path = NULL;
|
||||
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
|
||||
force))
|
||||
break;
|
||||
@@ -871,6 +873,8 @@
|
||||
rpath = command_line.rpath;
|
||||
if (rpath == NULL)
|
||||
rpath = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((rpath) && (strlen (rpath) == 0))
|
||||
+ rpath = NULL;
|
||||
if (! (bfd_elf_size_dynamic_sections
|
||||
(output_bfd, command_line.soname, rpath,
|
||||
command_line.filter_shlib,
|
@ -1,139 +0,0 @@
|
||||
--- binutils-2.16.91.0.7/bfd/configure
|
||||
+++ binutils-2.16.91.0.7/bfd/configure
|
||||
@@ -3576,7 +3576,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/binutils/configure
|
||||
+++ binutils-2.16.91.0.7/binutils/configure
|
||||
@@ -3411,7 +3411,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/configure
|
||||
+++ binutils-2.16.91.0.7/configure
|
||||
@@ -1270,7 +1270,7 @@
|
||||
am33_2.0-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
- sh-*-linux*)
|
||||
+ sh*-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||||
@@ -1578,7 +1578,7 @@
|
||||
romp-*-*)
|
||||
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
|
||||
;;
|
||||
- sh-*-* | sh64-*-*)
|
||||
+ sh*-*-* | sh64-*-*)
|
||||
case "${host}" in
|
||||
i[3456789]86-*-vsta) ;; # don't add gprof back in
|
||||
i[3456789]86-*-go32*) ;; # don't add gprof back in
|
||||
--- binutils-2.16.91.0.7/configure.in
|
||||
+++ binutils-2.16.91.0.7/configure.in
|
||||
@@ -468,7 +468,7 @@
|
||||
am33_2.0-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
- sh-*-linux*)
|
||||
+ sh*-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||||
@@ -776,7 +776,7 @@
|
||||
romp-*-*)
|
||||
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
|
||||
;;
|
||||
- sh-*-* | sh64-*-*)
|
||||
+ sh*-*-* | sh64-*-*)
|
||||
case "${host}" in
|
||||
i[[3456789]]86-*-vsta) ;; # don't add gprof back in
|
||||
i[[3456789]]86-*-go32*) ;; # don't add gprof back in
|
||||
--- binutils-2.16.91.0.7/gas/configure
|
||||
+++ binutils-2.16.91.0.7/gas/configure
|
||||
@@ -3411,7 +3411,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/gprof/configure
|
||||
+++ binutils-2.16.91.0.7/gprof/configure
|
||||
@@ -3419,6 +3419,11 @@
|
||||
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
|
||||
;;
|
||||
|
||||
+linux-uclibc*)
|
||||
+ lt_cv_deplibs_check_method=pass_all
|
||||
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
|
||||
+ ;;
|
||||
+
|
||||
netbsd* | knetbsd*-gnu)
|
||||
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
|
||||
lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
|
||||
--- binutils-2.16.91.0.7/ld/configure
|
||||
+++ binutils-2.16.91.0.7/ld/configure
|
||||
@@ -3413,7 +3413,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/libtool.m4
|
||||
+++ binutils-2.16.91.0.7/libtool.m4
|
||||
@@ -739,7 +739,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
--- binutils-2.16.91.0.7/ltconfig
|
||||
+++ binutils-2.16.91.0.7/ltconfig
|
||||
@@ -602,6 +602,7 @@
|
||||
|
||||
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
|
||||
case $host_os in
|
||||
+linux-uclibc*) ;;
|
||||
linux-gnu*) ;;
|
||||
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
|
||||
esac
|
||||
@@ -1247,7 +1248,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
--- binutils-2.16.91.0.7/opcodes/configure
|
||||
+++ binutils-2.16.91.0.7/opcodes/configure
|
||||
@@ -3579,7 +3579,7 @@
|
||||
;;
|
||||
|
||||
# This must be Linux ELF.
|
||||
-linux-gnu*)
|
||||
+linux-gnu*|linux-uclibc*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
@ -1,24 +0,0 @@
|
||||
diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
|
||||
--- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
|
||||
+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
|
||||
@@ -1299,7 +1299,7 @@
|
||||
arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
;;
|
||||
- arm*-*-linux-gnueabi)
|
||||
+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
noconfigdirs="$noconfigdirs target-libjava target-libobjc"
|
||||
;;
|
||||
diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
|
||||
--- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
|
||||
+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
|
||||
@@ -497,7 +497,7 @@
|
||||
arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
;;
|
||||
- arm*-*-linux-gnueabi)
|
||||
+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
noconfigdirs="$noconfigdirs target-libjava target-libobjc"
|
||||
;;
|
@ -1,50 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
## 001_ld_makefile_patch.dpatch
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Description: correct where ld scripts are installed
|
||||
## DP: Author: Chris Chimelis <chris@debian.org>
|
||||
## DP: Upstream status: N/A
|
||||
## DP: Date: ??
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
|
||||
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
|
||||
|
||||
case "$1" in
|
||||
-patch) patch $patch_opts -p1 < $0;;
|
||||
-unpatch) patch $patch_opts -p1 -R < $0;;
|
||||
*)
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@DPATCH@
|
||||
--- binutils-2.16.91.0.1/ld/Makefile.am
|
||||
+++ binutils-2.16.91.0.1/ld/Makefile.am
|
||||
@@ -20,7 +20,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
||||
--- binutils-2.16.91.0.1/ld/Makefile.in
|
||||
+++ binutils-2.16.91.0.1/ld/Makefile.in
|
||||
@@ -268,7 +268,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
BASEDIR = $(srcdir)/..
|
||||
BFDDIR = $(BASEDIR)/bfd
|
||||
INCDIR = $(BASEDIR)/include
|
@ -1,47 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
|
||||
## DP: cases where -rpath isn't specified. (#151024)
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
|
||||
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
|
||||
|
||||
case "$1" in
|
||||
-patch) patch $patch_opts -p1 < $0;;
|
||||
-unpatch) patch $patch_opts -p1 -R < $0;;
|
||||
*)
|
||||
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
|
||||
--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
|
||||
+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
|
||||
@@ -692,6 +692,8 @@
|
||||
&& command_line.rpath == NULL)
|
||||
{
|
||||
lib_path = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((lib_path) && (strlen (lib_path) == 0))
|
||||
+ lib_path = NULL;
|
||||
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
|
||||
force))
|
||||
break;
|
||||
@@ -871,6 +873,8 @@
|
||||
rpath = command_line.rpath;
|
||||
if (rpath == NULL)
|
||||
rpath = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((rpath) && (strlen (rpath) == 0))
|
||||
+ rpath = NULL;
|
||||
if (! (bfd_elf_size_dynamic_sections
|
||||
(output_bfd, command_line.soname, rpath,
|
||||
command_line.filter_shlib,
|
@ -1,37 +0,0 @@
|
||||
Fixes the following problem when testing a cross-compiler:
|
||||
|
||||
============================================
|
||||
Testing g++.dg/compat/abi/bitfield1,
|
||||
...
|
||||
Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/testsuite/../g++ ...
|
||||
/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C
|
||||
pid is 16028 -16028
|
||||
compiler exited with status 1
|
||||
output is:
|
||||
sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
|
||||
/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/testsuite/../g++: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libc.so.6: ELF file data encoding not little-endian
|
||||
|
||||
FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
|
||||
============================================
|
||||
|
||||
--- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old Thu Oct 17 17:22:57 2002
|
||||
+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp Mon Jul 14 10:59:19 2003
|
||||
@@ -42,11 +42,13 @@
|
||||
proc compat-fix-library-path { } {
|
||||
global ld_library_path
|
||||
|
||||
- # See comments in lib/g++.exp for why this is needed.
|
||||
- setenv LD_LIBRARY_PATH $ld_library_path
|
||||
- setenv SHLIB_PATH $ld_library_path
|
||||
- setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
- setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ if {![is_remote target]} {
|
||||
+ # See comments in lib/g++.exp for why this is needed.
|
||||
+ setenv LD_LIBRARY_PATH $ld_library_path
|
||||
+ setenv SHLIB_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ }
|
||||
}
|
||||
|
||||
#
|
@ -1,72 +0,0 @@
|
||||
When configuring a s390->s390 or cris->cris crosscompiler
|
||||
(ok, I haven't hit this yet, but one of these days I'll get me an account
|
||||
on an s390, and then I'll need this patch :-), you'll get the
|
||||
following error:
|
||||
|
||||
+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
|
||||
--target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
|
||||
--prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
|
||||
--enable-languages=c
|
||||
--with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
|
||||
unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
|
||||
--disable-shared
|
||||
...
|
||||
*** --with-headers is only supported when cross compiling
|
||||
|
||||
This error pops up only when you're using Daniel Jacobowitz's technique
|
||||
of slightly changing the target and host tuples to make them different
|
||||
enough to force gcc's build system to not try to pull in system libraries
|
||||
or headers. This technique is needed e.g. to build an x86 -> x86
|
||||
cross-compiler.
|
||||
(The LFS developers ran into the same bug that prompted me to use
|
||||
this technique; they point people who run into it to
|
||||
http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
|
||||
way of avoiding this problem. I think the tuple tweak is the way to go, though.)
|
||||
|
||||
config-patches@gnu.org rejected this patch, on the grounds that there
|
||||
is only one vendor of each of those two architectures, so the
|
||||
canonicalization is by definition correct. When I pointed out the
|
||||
difficulty this causes for people building s390 -> s390 or
|
||||
cris -> cris compilers that are incompatible with the system
|
||||
libraries and thus must be built like cross-compilers, he grumped and said
|
||||
"autoconf should let you specify a cross-compiler in some other way than
|
||||
comparing tuple strings".
|
||||
|
||||
|
||||
|
||||
--- gcc-3.3/config.sub.old Sun Jun 8 20:38:47 2003
|
||||
+++ gcc-3.3/config.sub Sun Jun 8 20:40:34 2003
|
||||
@@ -433,9 +433,12 @@
|
||||
crds | unos)
|
||||
basic_machine=m68k-crds
|
||||
;;
|
||||
- cris | cris-* | etrax*)
|
||||
+ cris | etrax*)
|
||||
basic_machine=cris-axis
|
||||
;;
|
||||
+ cris-*)
|
||||
+ basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
+ ;;
|
||||
da30 | da30-*)
|
||||
basic_machine=m68k-da30
|
||||
;;
|
||||
@@ -820,11 +823,17 @@
|
||||
rtpc | rtpc-*)
|
||||
basic_machine=romp-ibm
|
||||
;;
|
||||
- s390 | s390-*)
|
||||
+ s390)
|
||||
basic_machine=s390-ibm
|
||||
;;
|
||||
- s390x | s390x-*)
|
||||
+ s390-*)
|
||||
+ basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
+ ;;
|
||||
+ s390x)
|
||||
basic_machine=s390x-ibm
|
||||
+ ;;
|
||||
+ s390x-*)
|
||||
+ basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
sa29200)
|
||||
basic_machine=a29k-amd
|
@ -1,21 +0,0 @@
|
||||
From 3.4 branch. Fixes test failure
|
||||
FAIL: g++.dg/abi/empty6.C (test for warnings, line 6)
|
||||
|
||||
===================================================================
|
||||
RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
|
||||
retrieving revision 1.1
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.1 -r1.2
|
||||
--- gcc/gcc/testsuite/g++.dg/abi/empty6.C 2002/09/25 19:07:35 1.1
|
||||
+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C 2003/06/03 19:10:09 1.2
|
||||
@@ -5,4 +5,9 @@
|
||||
struct B {
|
||||
A a; // { dg-warning "empty" }
|
||||
virtual void f () {}
|
||||
-};
|
||||
+} __attribute__((aligned(8)));
|
||||
+/* The preceding attribute is necessary on targets with
|
||||
+ BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
|
||||
+ offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
|
||||
+ and then there is no discrepancy between DECL_FIELD_OFFSET and
|
||||
+ byte_position to warn about. */
|
@ -1,100 +0,0 @@
|
||||
See http://gcc.gnu.org/PR12010
|
||||
|
||||
g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
|
||||
|
||||
The first hunk fixes the error
|
||||
|
||||
/testsuite_flags: /testsuite_flags: No such file or directory
|
||||
while executing
|
||||
"exec sh ${odir_v3}/testsuite_flags --build-includes"
|
||||
(procedure "g++_include_flags" line 21)
|
||||
invoked from within
|
||||
"g++_include_flags [get_multilibs] "
|
||||
(procedure "g++_init" line 63)
|
||||
invoked from within
|
||||
"${tool}_init $test_file_name"
|
||||
(procedure "runtest" line 19)
|
||||
invoked from within
|
||||
"runtest $test_name"
|
||||
("foreach" body line 42)
|
||||
invoked from within
|
||||
...
|
||||
make[1]: [check-g++] Error 1 (ignored)
|
||||
|
||||
The fix isn't especially pretty, but it worked for me, and can't hurt the
|
||||
more common native compiler case. Maybe someone who knows the code better
|
||||
can come up with a better fix.
|
||||
|
||||
The second hunk fixes the error
|
||||
|
||||
sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/powerpc-405-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
|
||||
|
||||
when trying to compile g++ testcases (!); setting up
|
||||
the shared library environment when running crosstests of g++
|
||||
should either be done by a special board file, or by
|
||||
setting up a remote chroot environment (see http://kegel.com/crosstool),
|
||||
not by blithely setting LD_LIBRARY_PATH on the local system.
|
||||
|
||||
--- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old Fri Jul 11 15:42:47 2003
|
||||
+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp Sat Jul 12 12:57:07 2003
|
||||
@@ -72,6 +72,8 @@
|
||||
#
|
||||
proc g++_include_flags { paths } {
|
||||
global srcdir
|
||||
+ global objdir
|
||||
+ global target_triplet
|
||||
global HAVE_LIBSTDCXX_V3
|
||||
global TESTING_IN_BUILD_TREE
|
||||
|
||||
@@ -90,6 +92,20 @@
|
||||
|
||||
if { ${HAVE_LIBSTDCXX_V3} } {
|
||||
set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
|
||||
+ # first assume no multilibs
|
||||
+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
|
||||
+ # assume multilib only one level deep
|
||||
+ set multisub [file tail $gccpath]
|
||||
+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ error "Can't find libstdc++-v3"
|
||||
+ }
|
||||
append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
|
||||
} else {
|
||||
set odir_v2 [lookfor_file ${gccpath} libstdc++]
|
||||
@@ -192,16 +192,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
|
||||
- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
|
||||
- # (for the 64-bit ABI). The right way to do this would be to modify
|
||||
- # unix.exp -- but that's not an option since it's part of DejaGNU
|
||||
- # proper, so we do it here. We really only need to do
|
||||
- # this on IRIX, but it shouldn't hurt to do it anywhere else.
|
||||
- setenv LD_LIBRARY_PATH $ld_library_path
|
||||
- setenv SHLIB_PATH $ld_library_path
|
||||
- setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
- setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ if {![is_remote target]} {
|
||||
+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
|
||||
+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
|
||||
+ # (for the 64-bit ABI). The right way to do this would be to modify
|
||||
+ # unix.exp -- but that's not an option since it's part of DejaGNU
|
||||
+ # proper, so we do it here. We really only need to do
|
||||
+ # this on IRIX, but it shouldn't hurt to do it anywhere else.
|
||||
+
|
||||
+ # Doing this causes us to be unable to run cross-compilers.
|
||||
+ setenv LD_LIBRARY_PATH $ld_library_path
|
||||
+ setenv SHLIB_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ }
|
||||
|
||||
return "$flags"
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
Without this patch, the command
|
||||
|
||||
RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
|
||||
|
||||
fails in two ways:
|
||||
1. the -L option meant to locate the testsuite directory is incorrect, and
|
||||
2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
|
||||
is the native compiler is invoked when we really wanted to invoke the cross-compiler
|
||||
we just built.
|
||||
|
||||
Here's an example log of the problem in action. Every testcase fails, this shows just one:
|
||||
-------------
|
||||
Invoking the compiler as g++ -ggdb3 -DDEBUG_ASSERT -I/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite /home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc -g -O2 -DDEBUG_ASSERT -L/testsuite -lv3test -lm -o ./binders.exe
|
||||
compiler exited with status 1
|
||||
output is:
|
||||
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h: In method `void binder2nd<mem_fun1_ref_t<void,Elem,int> >::operator ()(const Elem &) const':^M
|
||||
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_algo.h:83: instantiated from `for_each<Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> > >(Elem *, Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> >)'^M
|
||||
/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc:43: instantiated from here^M
|
||||
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:224: conversion from `const Elem' to `Elem &' discards qualifiers^M
|
||||
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:622: in passing argument 1 of `mem_fun1_ref_t<void,Elem,int>::operator ()(Elem &, int) const'^M
|
||||
...
|
||||
FAIL: 20_util/binders.cc (test for excess errors)
|
||||
WARNING: 20_util/binders.cc compilation failed to produce executable
|
||||
-------------
|
||||
|
||||
And here's the patch. I'm not happy with it, and it probably gets some cases wrong,
|
||||
but it seems to work for the common native case and for my cross-compiler case.
|
||||
|
||||
--- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old Sun Jul 13 10:42:01 2003
|
||||
+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Sun Jul 13 11:39:54 2003
|
||||
@@ -46,8 +46,23 @@
|
||||
global gluefile wrap_flags
|
||||
global ld_library_path
|
||||
global tool_root_dir
|
||||
+ global target_triplet
|
||||
|
||||
set blddir [lookfor_file [get_multilibs] libstdc++-v3]
|
||||
+ if { $blddir == "" } {
|
||||
+ set multilibs [get_multilibs]
|
||||
+ # FIXME: assume multilib only one level deep
|
||||
+ set multisub [file tail $multilibs]
|
||||
+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
|
||||
+ set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $blddir == "" } {
|
||||
+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
|
||||
+ set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $blddir == "" } {
|
||||
+ error "Can't find libstdc++-v3"
|
||||
+ }
|
||||
|
||||
# By default, we assume we want to run program images.
|
||||
global dg-do-what-default
|
@ -1,44 +0,0 @@
|
||||
#
|
||||
# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
|
||||
#
|
||||
# Error:
|
||||
#
|
||||
# creating libintl.h
|
||||
# Configuring etc...
|
||||
# loading cache ../config.cache
|
||||
# checking for a BSD compatible install... (cached) /usr/bin/install -c
|
||||
# creating ./config.status
|
||||
# creating Makefile
|
||||
# trap: usage: trap [-lp] [[arg] signal_spec ...]
|
||||
#
|
||||
# Description:
|
||||
#
|
||||
# non-posix conform usage of trap causes bash >= 3.0 to fail
|
||||
# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
|
||||
#
|
||||
# Status:
|
||||
#
|
||||
# fixed in gcc >= 3.3.5
|
||||
# backport of gcc-3.3.5 fix
|
||||
#
|
||||
diff -ruN gcc-3.3.1-orig/configure gcc-3.3.1/configure
|
||||
--- gcc-3.3.1-orig/configure 2002-09-29 18:11:24.000000000 +0200
|
||||
+++ gcc-3.3.1/configure 2005-04-20 18:49:20.223220401 +0200
|
||||
@@ -697,7 +697,7 @@
|
||||
if test -f skip-this-dir; then
|
||||
# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
|
||||
# and reset the trap handler.
|
||||
- trap 0
|
||||
+ trap '' 0
|
||||
rm -rf Makefile* ${tmpdir}
|
||||
# Execute the final clean-up actions
|
||||
${config_shell} skip-this-dir
|
||||
@@ -1596,7 +1596,7 @@
|
||||
# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
|
||||
# and reset the trap handler.
|
||||
rm -rf ${tmpdir}
|
||||
-trap 0
|
||||
+trap '' 0
|
||||
|
||||
exit 0
|
||||
|
@ -1,65 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10392-1.c Sun Sep 14 14:28:24 2003
|
||||
@@ -0,0 +1,62 @@
|
||||
+/* PR optimization/10392
|
||||
+ * Reporter: marcus@mc.pp.se
|
||||
+ * Summary: [3.3/3.4 regression] [SH] optimizer generates faulty array indexing
|
||||
+ * Description:
|
||||
+ * The address calculation of an index operation on an array on the stack
|
||||
+ * can _under some conditions_ get messed up completely
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * Problem only happens with -O2 -m4, so it should only happen on sh4,
|
||||
+ * but what the heck, let's test other architectures, too.
|
||||
+ * Not marked as xfail since it's a regression.
|
||||
+*/
|
||||
+/* { dg-do run } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+/* { dg-options "-O2 -m4" { target sh4-*-* } } */
|
||||
+const char *dont_optimize_function_away;
|
||||
+
|
||||
+const char *use(const char *str)
|
||||
+{
|
||||
+ dont_optimize_function_away = str;
|
||||
+ if (str[0] != 'v')
|
||||
+ abort();
|
||||
+ if (str[1] < '1' || str[1] > '6')
|
||||
+ abort();
|
||||
+ if (str[2])
|
||||
+ abort();
|
||||
+ return str[2] ? "notused" : "v6";
|
||||
+}
|
||||
+
|
||||
+const char *func(char *a, char *b)
|
||||
+{
|
||||
+ char buf[128];
|
||||
+ unsigned char i;
|
||||
+ const char *result;
|
||||
+
|
||||
+ char *item[] = {
|
||||
+ "v1",
|
||||
+ "v2",
|
||||
+ };
|
||||
+
|
||||
+ buf[0] = 'v';
|
||||
+ buf[1] = '3';
|
||||
+ buf[2] = 0;
|
||||
+
|
||||
+ for (i = 0; i < 2; i++) {
|
||||
+ /* bug is: following line passes wild pointer to use() on sh4 -O2 */
|
||||
+ result = use(item[i]);
|
||||
+
|
||||
+ use(buf);
|
||||
+ use(a);
|
||||
+ use(b);
|
||||
+ result = use(result);
|
||||
+ }
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+int main()
|
||||
+{
|
||||
+ func("v4", "v5");
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
@ -1,46 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10412-1.c Sun Sep 14 16:15:21 2003
|
||||
@@ -0,0 +1,43 @@
|
||||
+/* PR target/10412
|
||||
+ * Reporter: shrinivasa@kpitcummins.com
|
||||
+ * Summary: Renesas SH - Incorrect code generation
|
||||
+ * Description:
|
||||
+ * When following code is compiled with
|
||||
+ * sh-elf-gcc -S -mhitachi -m2 -O2 bug1.c
|
||||
+ * generates an incorrect code.
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * Problem only happens with -mhitachi -m2. Not sure if I can give those
|
||||
+ * options for all sh targets. They work on sh4, though.
|
||||
+ * Not marked as xfail as it's a regression relative to hardhat 2.0 gcc-2.97.
|
||||
+*/
|
||||
+/* { dg-do run } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+int global_val;
|
||||
+
|
||||
+int func0(int x)
|
||||
+{
|
||||
+ global_val += x;
|
||||
+ return (x != 99);
|
||||
+}
|
||||
+
|
||||
+int func1(unsigned long addr)
|
||||
+{
|
||||
+ int err;
|
||||
+
|
||||
+ err = func0(addr);
|
||||
+ if (err)
|
||||
+ return (err);
|
||||
+
|
||||
+ err = func0(addr * 7); /* address of func0 is lost during multiplication -> probable SIGSEGV */
|
||||
+ return (err);
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ global_val = 0;
|
||||
+ global_val += func1(99);
|
||||
+ if (global_val != 99 * 8 + 1)
|
||||
+ abort();
|
||||
+ return 0;
|
||||
+}
|
@ -1,17 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10589-1.c Mon Sep 15 08:57:58 2003
|
||||
@@ -0,0 +1,14 @@
|
||||
+/* PR target/10589
|
||||
+ * Reporter: mathieu@thenesis.com
|
||||
+ * Summary: For Hitachi SH target, GCC crashes when both -fomit-frame-pointer and -mdalign options are specified
|
||||
+ * Keywords: ice-on-valid-code
|
||||
+ * Testcase by Kazu Hirata, tweaked by dank@kegel.com
|
||||
+ * Did not fail in Hard Hat 2.0 gcc-2.97, nor in dodes gcc-3.0.2, so this is a regression, so I'm not marking it xfail
|
||||
+ */
|
||||
+/* { dg-do compile { target sh*-*-* } } */
|
||||
+/* { dg-options "-fomit-frame-pointer -mdalign" } */
|
||||
+
|
||||
+int foo(int a, int b)
|
||||
+{
|
||||
+ return a / b;
|
||||
+}
|
@ -1,25 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11162-1.c Sun Sep 14 16:24:41 2003
|
||||
@@ -0,0 +1,22 @@
|
||||
+/*
|
||||
+ * PR optimization/11162
|
||||
+ * Reporter: Toshiyasu Morita <tm@kloo.net>
|
||||
+ * Summary: [3.4 Regression] [-fnew-ra] ICE compiling channel.i on sh
|
||||
+ * Keywords: ice-on-valid-code
|
||||
+ * Description:
|
||||
+ * [ICE] when channel.i from stress-1.17 is compiled with options:
|
||||
+ * -O2 -m4 -fnew-ra
|
||||
+ * ...
|
||||
+ * The CFG code gets confused by the addition of a USE insn after a sibcall.
|
||||
+ * Sibcalls are supposed to end the block (and the function!), so the fact
|
||||
+ * that we have an instruction following one (even if its fake) is confusing.
|
||||
+ *
|
||||
+ * testcase tweaked by dank@kegel.com
|
||||
+ */
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O2 -fnew-ra" } */
|
||||
+
|
||||
+int foo(char *p1)
|
||||
+{
|
||||
+ return bar(p1);
|
||||
+}
|
@ -1,39 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11587-1.c Mon Sep 15 08:46:00 2003
|
||||
@@ -0,0 +1,36 @@
|
||||
+/* PR optimization/11587
|
||||
+ * Reporter: Michael Eager <eager@mvista.com>
|
||||
+ * Summary: [3.3/3.4 Regression] SH ICE in reload_cse_simplify_operand, postreload.c
|
||||
+ * Keywords: ice-on-valid-code
|
||||
+ *
|
||||
+ * Note: a fix exists; see bugzilla
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * Not marked as xfail since it's a regression.
|
||||
+ */
|
||||
+
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O1" } */
|
||||
+int foo1(void);
|
||||
+int foo2();
|
||||
+int foo3();
|
||||
+
|
||||
+static int goo()
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ if (i <= 0)
|
||||
+ return i;
|
||||
+
|
||||
+ if (foo1() > 1) {
|
||||
+ i = foo2();
|
||||
+ if (i < 0)
|
||||
+ return i;
|
||||
+ if (i) {
|
||||
+ if (foo3())
|
||||
+ return 1;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+}
|
@ -1,48 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c Sun Sep 14 14:26:33 2003
|
||||
@@ -0,0 +1,45 @@
|
||||
+/* PR optimization/11736
|
||||
+ * Reporter: marcus@mc.pp.se
|
||||
+ * Summary: Stackpointer messed up on SuperH
|
||||
+ * Keywords: wrong-code
|
||||
+ * Description:
|
||||
+ * When a function with 5 arguments is called in both branches of a
|
||||
+ * conditional, and only the last argument differs, the code to push that
|
||||
+ * last argument on the stack gets confused.
|
||||
+ * Space for the fifth argument is reserved on the stack by the
|
||||
+ * instruction I have marked as "A". However, if the else-branch is
|
||||
+ * taken the stackpointer is decremented _again_ at "B". This
|
||||
+ * decrementation is never restored, and it is only due to the
|
||||
+ * restoration of r15 from r14 that the function works at all. With
|
||||
+ * -fomit-frame-pointer it will crash.
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97
|
||||
+ * and dodes gcc-3.0.2
|
||||
+ */
|
||||
+
|
||||
+/* { dg-do run } */
|
||||
+/* { dg-options "-O1 -fomit-frame-pointer" } */
|
||||
+
|
||||
+int expected_e;
|
||||
+
|
||||
+void bar(int a, int b, int c, int d, int e)
|
||||
+{
|
||||
+ if (e != expected_e)
|
||||
+ abort();
|
||||
+}
|
||||
+
|
||||
+void foo(int a)
|
||||
+{
|
||||
+ if (a)
|
||||
+ bar(0, 0, 0, 0, 1);
|
||||
+ else
|
||||
+ bar(0, 0, 0, 0, 0); /* stack pointer decremented extra time here, causing segfault */
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ for (expected_e = 0; expected_e < 2; expected_e++)
|
||||
+ foo(expected_e);
|
||||
+ return 0;
|
||||
+}
|
@ -1,45 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11864-1.c Sun Sep 14 14:32:24 2003
|
||||
@@ -0,0 +1,42 @@
|
||||
+/* PR optimization/11864
|
||||
+ * Reporter: Kazumoto Kojima <kkojima@gcc.gnu.org>
|
||||
+ * Summary: [3.3/3.4 regression] miscompiles zero extension and test
|
||||
+ * Description:
|
||||
+ * gcc-3.3/3.4 -O2 for sh target may miscompile the combination of zero extension
|
||||
+ * and test if it's zero.
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com. Not marked as xfail because it's a regression.
|
||||
+ */
|
||||
+/* { dg-do run } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+extern void abort(void);
|
||||
+
|
||||
+int val = 0xff00;
|
||||
+
|
||||
+int f(void)
|
||||
+{
|
||||
+ return val;
|
||||
+}
|
||||
+
|
||||
+unsigned char a[1];
|
||||
+
|
||||
+void foo(void)
|
||||
+{
|
||||
+ a[0] = f() & 255;
|
||||
+
|
||||
+ if (!a[0])
|
||||
+ a[0] = f() & 255;
|
||||
+
|
||||
+ if (!a[0])
|
||||
+ a[0] = 1 + (f() & 127);
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ foo();
|
||||
+ if (!a[0])
|
||||
+ abort();
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
@ -1,61 +0,0 @@
|
||||
Message-Id: 20030822160024.GA305@ftbfs.org
|
||||
From: Matt Kraai kraai at alumni dot cmu dot edu
|
||||
To: gcc-patches at gcc dot gnu dot org
|
||||
Date: Fri, 22 Aug 2003 09:00:24 -0700
|
||||
Subject: PR 11949
|
||||
|
||||
Howdy,
|
||||
|
||||
I've backported the following patch from the mainline to the 3.3
|
||||
branch to fix PR 11949.
|
||||
|
||||
Bootstrapped and regression tested on powerpc-unknown-linux-gnu.
|
||||
|
||||
OK to commit?
|
||||
|
||||
PR c/11949
|
||||
Backport from mainline:
|
||||
|
||||
2003-05-05 Aldy Hernandez aldyh@redhat.com
|
||||
|
||||
* testsuite/gcc.c-torture/compile/simd-6.c: New.
|
||||
|
||||
* c-typeck.c (digest_init): Handle arrays of vector constants.
|
||||
|
||||
Index: gcc/c-typeck.c
|
||||
===================================================================
|
||||
RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
|
||||
retrieving revision 1.213.2.8
|
||||
diff -3 -c -p -r1.213.2.8 c-typeck.c
|
||||
*** gcc/gcc/c-typeck.c 19 Aug 2003 01:42:35 -0000 1.213.2.8
|
||||
--- gcc/gcc/c-typeck.c 22 Aug 2003 09:24:03 -0000
|
||||
*************** digest_init (type, init, require_constan
|
||||
*** 4765,4772 ****
|
||||
if (code == VECTOR_TYPE
|
||||
&& comptypes (TREE_TYPE (inside_init), type)
|
||||
&& TREE_CONSTANT (inside_init))
|
||||
! return build_vector (type, TREE_OPERAND (inside_init, 1));
|
||||
!
|
||||
|
||||
/* Any type can be initialized
|
||||
from an expression of the same type, optionally with braces. */
|
||||
--- 4765,4778 ----
|
||||
if (code == VECTOR_TYPE
|
||||
&& comptypes (TREE_TYPE (inside_init), type)
|
||||
&& TREE_CONSTANT (inside_init))
|
||||
! {
|
||||
! if (TREE_CODE (inside_init) == VECTOR_CST
|
||||
! && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)),
|
||||
! TYPE_MAIN_VARIANT (type)))
|
||||
! return inside_init;
|
||||
! else
|
||||
! return build_vector (type, CONSTRUCTOR_ELTS (inside_init));
|
||||
! }
|
||||
|
||||
/* Any type can be initialized
|
||||
from an expression of the same type, optionally with braces. */
|
||||
|
||||
typedef int __attribute__((mode(V2SI))) vec;
|
||||
|
||||
vec a[] = {(vec) {1, 2}, {3, 4}};
|
||||
|
@ -1,43 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr9365-1.c Sun Sep 14 09:34:37 2003
|
||||
@@ -0,0 +1,40 @@
|
||||
+/* PR target/9365
|
||||
+ * Origin: marcus@mc.pp.se
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * [3.3 regression] [SH] segfault in gen_far_branch (config/sh/sh.c)
|
||||
+ * ice-on-valid-code
|
||||
+ * Not marked as xfail since it's a regression
|
||||
+*/
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O2 -fomit-frame-pointer" } */
|
||||
+
|
||||
+
|
||||
+void foo(int n, int *p)
|
||||
+{
|
||||
+ switch(n) {
|
||||
+ case 100: case 110: case 120: case 130: case 140:
|
||||
+ case 200: case 210: case 220: case 230: case 240:
|
||||
+ case 300: case 310: case 320: case 330: case 340:
|
||||
+ case 400: case 410: case 420: case 430: case 440:
|
||||
+ case 500: case 510: case 520: case 530: case 540:
|
||||
+ case 600: case 610: case 620: case 630: case 640:
|
||||
+ case 700: case 710: case 720: case 730: case 740:
|
||||
+ case 800: case 810: case 820: case 830: case 840:
|
||||
+ case 900: case 910: case 920: case 930: case 940:
|
||||
+ break;
|
||||
+ default:
|
||||
+ *p = n;
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ int p;
|
||||
+
|
||||
+ (void) argv;
|
||||
+
|
||||
+ foo(argc, &p);
|
||||
+
|
||||
+ return p;
|
||||
+}
|
@ -1,61 +0,0 @@
|
||||
See http://gcc.gnu.org/PR11901
|
||||
Should fix
|
||||
make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
|
||||
in glibc's "make tests".
|
||||
|
||||
-------------
|
||||
|
||||
Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
|
||||
To: dank@kegel.com
|
||||
Cc: linux-sh@m17n.org
|
||||
Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
|
||||
with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
|
||||
In-Reply-To: Your message of "Wed, 30 Jul 2003 11:20:49 +0900"
|
||||
<200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
|
||||
References: <200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
|
||||
Date: Wed, 30 Jul 2003 12:03:01 +0900
|
||||
From: kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
|
||||
> I'll try to write the PIC version of it,
|
||||
|
||||
Dan, does the attached patch work for you?
|
||||
|
||||
[dank: original patch deleted; here's same thing rediffed against gcc-3.3 instead of HEAD]
|
||||
|
||||
--- gcc-3.3/gcc/config/sh/lib1funcs.asm.old Tue Jul 29 21:37:29 2003
|
||||
+++ gcc-3.3/gcc/config/sh/lib1funcs.asm Tue Jul 29 21:40:58 2003
|
||||
@@ -1792,7 +1792,17 @@
|
||||
.global GLOBAL(set_fpscr)
|
||||
GLOBAL(set_fpscr):
|
||||
lds r4,fpscr
|
||||
+#ifdef __PIC__
|
||||
+ mov.l r12,@-r15
|
||||
+ mova LOCAL(set_fpscr_L0),r0
|
||||
+ mov.l LOCAL(set_fpscr_L0),r12
|
||||
+ add r0,r12
|
||||
+ mov.l LOCAL(set_fpscr_L1),r0
|
||||
+ mov.l @(r0,r12),r1
|
||||
+ mov.l @r15+,r12
|
||||
+#else
|
||||
mov.l LOCAL(set_fpscr_L1),r1
|
||||
+#endif
|
||||
swap.w r4,r0
|
||||
or #24,r0
|
||||
#ifndef FMOVD_WORKS
|
||||
@@ -1820,8 +1830,16 @@
|
||||
mov.l r3,@(4,r1)
|
||||
#endif
|
||||
.align 2
|
||||
+#ifdef __PIC__
|
||||
+LOCAL(set_fpscr_L0):
|
||||
+ .long _GLOBAL_OFFSET_TABLE_
|
||||
+LOCAL(set_fpscr_L1):
|
||||
+ .long GLOBAL(fpscr_values@GOT)
|
||||
+#else
|
||||
LOCAL(set_fpscr_L1):
|
||||
.long GLOBAL(fpscr_values)
|
||||
+#endif
|
||||
+
|
||||
#ifdef __ELF__
|
||||
.comm GLOBAL(fpscr_values),8,4
|
||||
#else
|
@ -1,52 +0,0 @@
|
||||
See http://gcc.gnu.org/PR11902
|
||||
|
||||
Part of fix for abort on line
|
||||
assert (info[DT_RPATH] == NULL);
|
||||
in glibc-2.3.2's ld.so, which makes all dynamically-linked
|
||||
programs crash.
|
||||
|
||||
Message-Id: <200308020452.h724q0n01509@r-rr.iij4u.or.jp>
|
||||
To: dank@kegel.com
|
||||
Cc: kkojima@rr.iij4u.or.jp
|
||||
Subject: Re: Writing PIC version of __udivsi3_i4?
|
||||
In-Reply-To: Your message of "Fri, 01 Aug 2003 21:15:27 -0700"
|
||||
<3F2B3ADF.6030206@kegel.com>
|
||||
References: <3F2B3ADF.6030206@kegel.com>
|
||||
Date: Sat, 02 Aug 2003 13:58:05 +0900
|
||||
From: kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
|
||||
Dan Kegel <dank@kegel.com> wrote:
|
||||
> It seems it might be from gcc's spec file:
|
||||
>
|
||||
> *subtarget_link_spec:
|
||||
> %{shared:-shared} %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} %{!rpath:-rpath /lib}} %{static:-static}
|
||||
>
|
||||
> as the only place -rpath showed up was in the output of gcc -v as it
|
||||
> was linking libc.so.
|
||||
>
|
||||
> Well, that's a clue, anyway! Guess I'll dig through the spec files
|
||||
> tomorrow to see if I can figure it out some more.
|
||||
|
||||
I've grepped gcc/config/*/*.h and found only SH and old libc1 stuffs
|
||||
of i386/alpha include %{!rpath:-rpath ... in 3.3 release and the
|
||||
current CVS. And my sh-gcc's specs doesn't have this :-(
|
||||
It would be the Right Thing to remove this stuff simply. How about
|
||||
the gcc patch below?
|
||||
|
||||
Regards,
|
||||
kaz
|
||||
--
|
||||
--- gcc-3.3/gcc/config/sh/linux.h.orig Sat Aug 2 13:20:57 2003
|
||||
+++ gcc-3.3/gcc/config/sh/linux.h Sat Aug 2 13:22:42 2003
|
||||
@@ -48,8 +48,7 @@ do { \
|
||||
"%{shared:-shared} \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
|
||||
- %{!rpath:-rpath /lib}} \
|
||||
+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
|
||||
%{static:-static}"
|
||||
|
||||
/* The GNU C++ standard library requires that these macros be defined. */
|
||||
|
||||
|
@ -1,44 +0,0 @@
|
||||
See http://gcc.gnu.org/PR11903
|
||||
|
||||
Patch to fix following test case failure:
|
||||
|
||||
=== libstdc++-v3 tests ===
|
||||
FAIL: thread/pthread1.cc (test for excess errors)
|
||||
Excess errors:
|
||||
/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/sh4-unknown-linux-gnu/bin/ld: cannot find -lthread
|
||||
collect2: ld returned 1 exit status
|
||||
|
||||
Note that *any* program compiled with -pthread fails:
|
||||
|
||||
/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/bin/sh4-unknown-linux-gnu-gcc hello.c -pthread
|
||||
/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/lib/gcc-lib/sh4-unknown-linux-gnu/3.3.1/../../../../sh4-unknown-linux-gnu/bin/ld: cannot find -lthread
|
||||
collect2: ld returned 1 exit status
|
||||
|
||||
Compiling with -lpthread on the other hand works fine:
|
||||
/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/bin/sh4-unknown-linux-gnu-gcc hello.c -lpthread
|
||||
|
||||
So -pthread is broken in some trivial way; it should invoke -lpthread, not -lthread,
|
||||
at least when targeting Linux.
|
||||
|
||||
http://www.sh-linux.org/rpm-2003/SRPMS/gcc-3.2.3-3.src.rpm contains a jumbo patch,
|
||||
gcc-20030210-sh-linux-1.patch, that includes a fix for this. Here's the
|
||||
appropriate hunk (brings in a fix for the documented -mieee option).
|
||||
No idea if this fix is completely right, but it works for me...
|
||||
- dank@kegel.com 20 Jul 2003
|
||||
|
||||
Index: linux.h
|
||||
===================================================================
|
||||
RCS file: /cvsroot/gcc/gcc/gcc/config/sh/linux.h,v
|
||||
retrieving revision 1.9.20.1
|
||||
diff -u -d -u -r1.9.20.1 linux.h
|
||||
--- gcc-ss-3_3-20030714/gcc/config/sh/linux.h.old 6 Jun 2003 02:30:59 -0000 1.9.20.1
|
||||
+++ gcc-ss-3_3-20030714/gcc/config/sh/linux.h 20 Jul 2003 23:36:50 -0000
|
||||
@@ -59,7 +59,7 @@
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC \
|
||||
"%{shared: -lc} \
|
||||
- %{!shared: %{pthread:-lthread} \
|
||||
+ %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \
|
||||
%{profile:-lc_p} %{!profile: -lc}}"
|
||||
|
||||
#undef STARTFILE_SPEC
|
@ -1,23 +0,0 @@
|
||||
Fixes
|
||||
FAIL: g++.jason/thunk3.C (test for excess errors)
|
||||
on sh4-unknown-linux-gnu.
|
||||
|
||||
Does any sh variant *not* use the generic thunk support? If so, the patch should be
|
||||
more cautious. As it is, it excludes all sh processors from this test.
|
||||
|
||||
Index: thunk3.C
|
||||
===================================================================
|
||||
RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
|
||||
retrieving revision 1.13
|
||||
diff -u -d -u -r1.13 thunk3.C
|
||||
--- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old 25 Mar 2002 17:57:03 -0000 1.13
|
||||
+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C 20 Jul 2003 16:57:38 -0000
|
||||
@@ -2,7 +2,7 @@
|
||||
// Note that this will break on any target that uses the generic thunk
|
||||
// support, because it doesn't support variadic functions.
|
||||
|
||||
-// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
|
||||
+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
|
||||
|
||||
#include <stdarg.h>
|
||||
|
@ -1,21 +0,0 @@
|
||||
From 3.4 branch. Fixes test failure
|
||||
FAIL: g++.dg/abi/empty6.C (test for warnings, line 6)
|
||||
|
||||
===================================================================
|
||||
RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
|
||||
retrieving revision 1.1
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.1 -r1.2
|
||||
--- gcc/gcc/testsuite/g++.dg/abi/empty6.C 2002/09/25 19:07:35 1.1
|
||||
+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C 2003/06/03 19:10:09 1.2
|
||||
@@ -5,4 +5,9 @@
|
||||
struct B {
|
||||
A a; // { dg-warning "empty" }
|
||||
virtual void f () {}
|
||||
-};
|
||||
+} __attribute__((aligned(8)));
|
||||
+/* The preceding attribute is necessary on targets with
|
||||
+ BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
|
||||
+ offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
|
||||
+ and then there is no discrepancy between DECL_FIELD_OFFSET and
|
||||
+ byte_position to warn about. */
|
@ -1,100 +0,0 @@
|
||||
See http://gcc.gnu.org/PR12010
|
||||
|
||||
g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
|
||||
|
||||
The first hunk fixes the error
|
||||
|
||||
/testsuite_flags: /testsuite_flags: No such file or directory
|
||||
while executing
|
||||
"exec sh ${odir_v3}/testsuite_flags --build-includes"
|
||||
(procedure "g++_include_flags" line 21)
|
||||
invoked from within
|
||||
"g++_include_flags [get_multilibs] "
|
||||
(procedure "g++_init" line 63)
|
||||
invoked from within
|
||||
"${tool}_init $test_file_name"
|
||||
(procedure "runtest" line 19)
|
||||
invoked from within
|
||||
"runtest $test_name"
|
||||
("foreach" body line 42)
|
||||
invoked from within
|
||||
...
|
||||
make[1]: [check-g++] Error 1 (ignored)
|
||||
|
||||
The fix isn't especially pretty, but it worked for me, and can't hurt the
|
||||
more common native compiler case. Maybe someone who knows the code better
|
||||
can come up with a better fix.
|
||||
|
||||
The second hunk fixes the error
|
||||
|
||||
sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/powerpc-405-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
|
||||
|
||||
when trying to compile g++ testcases (!); setting up
|
||||
the shared library environment when running crosstests of g++
|
||||
should either be done by a special board file, or by
|
||||
setting up a remote chroot environment (see http://kegel.com/crosstool),
|
||||
not by blithely setting LD_LIBRARY_PATH on the local system.
|
||||
|
||||
--- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old Fri Jul 11 15:42:47 2003
|
||||
+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp Sat Jul 12 12:57:07 2003
|
||||
@@ -72,6 +72,8 @@
|
||||
#
|
||||
proc g++_include_flags { paths } {
|
||||
global srcdir
|
||||
+ global objdir
|
||||
+ global target_triplet
|
||||
global HAVE_LIBSTDCXX_V3
|
||||
global TESTING_IN_BUILD_TREE
|
||||
|
||||
@@ -90,6 +92,20 @@
|
||||
|
||||
if { ${HAVE_LIBSTDCXX_V3} } {
|
||||
set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
|
||||
+ # first assume no multilibs
|
||||
+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
|
||||
+ # assume multilib only one level deep
|
||||
+ set multisub [file tail $gccpath]
|
||||
+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ error "Can't find libstdc++-v3"
|
||||
+ }
|
||||
append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
|
||||
} else {
|
||||
set odir_v2 [lookfor_file ${gccpath} libstdc++]
|
||||
@@ -192,16 +192,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
|
||||
- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
|
||||
- # (for the 64-bit ABI). The right way to do this would be to modify
|
||||
- # unix.exp -- but that's not an option since it's part of DejaGNU
|
||||
- # proper, so we do it here. We really only need to do
|
||||
- # this on IRIX, but it shouldn't hurt to do it anywhere else.
|
||||
- setenv LD_LIBRARY_PATH $ld_library_path
|
||||
- setenv SHLIB_PATH $ld_library_path
|
||||
- setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
- setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ if {![is_remote target]} {
|
||||
+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
|
||||
+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
|
||||
+ # (for the 64-bit ABI). The right way to do this would be to modify
|
||||
+ # unix.exp -- but that's not an option since it's part of DejaGNU
|
||||
+ # proper, so we do it here. We really only need to do
|
||||
+ # this on IRIX, but it shouldn't hurt to do it anywhere else.
|
||||
+
|
||||
+ # Doing this causes us to be unable to run cross-compilers.
|
||||
+ setenv LD_LIBRARY_PATH $ld_library_path
|
||||
+ setenv SHLIB_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ }
|
||||
|
||||
return "$flags"
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
Without this patch, the command
|
||||
|
||||
RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
|
||||
|
||||
fails in two ways:
|
||||
1. the -L option meant to locate the testsuite directory is incorrect, and
|
||||
2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
|
||||
is the native compiler is invoked when we really wanted to invoke the cross-compiler
|
||||
we just built.
|
||||
|
||||
Here's an example log of the problem in action. Every testcase fails, this shows just one:
|
||||
-------------
|
||||
Invoking the compiler as g++ -ggdb3 -DDEBUG_ASSERT -I/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite /home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc -g -O2 -DDEBUG_ASSERT -L/testsuite -lv3test -lm -o ./binders.exe
|
||||
compiler exited with status 1
|
||||
output is:
|
||||
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h: In method `void binder2nd<mem_fun1_ref_t<void,Elem,int> >::operator ()(const Elem &) const':^M
|
||||
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_algo.h:83: instantiated from `for_each<Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> > >(Elem *, Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> >)'^M
|
||||
/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc:43: instantiated from here^M
|
||||
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:224: conversion from `const Elem' to `Elem &' discards qualifiers^M
|
||||
/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:622: in passing argument 1 of `mem_fun1_ref_t<void,Elem,int>::operator ()(Elem &, int) const'^M
|
||||
...
|
||||
FAIL: 20_util/binders.cc (test for excess errors)
|
||||
WARNING: 20_util/binders.cc compilation failed to produce executable
|
||||
-------------
|
||||
|
||||
And here's the patch. I'm not happy with it, and it probably gets some cases wrong,
|
||||
but it seems to work for the common native case and for my cross-compiler case.
|
||||
|
||||
--- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old Sun Jul 13 10:42:01 2003
|
||||
+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Sun Jul 13 11:39:54 2003
|
||||
@@ -46,8 +46,23 @@
|
||||
global gluefile wrap_flags
|
||||
global ld_library_path
|
||||
global tool_root_dir
|
||||
+ global target_triplet
|
||||
|
||||
set blddir [lookfor_file [get_multilibs] libstdc++-v3]
|
||||
+ if { $blddir == "" } {
|
||||
+ set multilibs [get_multilibs]
|
||||
+ # FIXME: assume multilib only one level deep
|
||||
+ set multisub [file tail $multilibs]
|
||||
+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
|
||||
+ set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $blddir == "" } {
|
||||
+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
|
||||
+ set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $blddir == "" } {
|
||||
+ error "Can't find libstdc++-v3"
|
||||
+ }
|
||||
|
||||
# By default, we assume we want to run program images.
|
||||
global dg-do-what-default
|
@ -1,65 +0,0 @@
|
||||
By Lennert Buytenhek <buytenh@wantstofly.org>
|
||||
Adds support for arm*b-linux* big-endian ARM targets
|
||||
|
||||
See http://gcc.gnu.org/PR16350
|
||||
|
||||
diff -urN gcc-3.3.2.orig/gcc/config/arm/linux-elf.h gcc-3.3.2/gcc/config/arm/linux-elf.h
|
||||
--- gcc-3.3.2.orig/gcc/config/arm/linux-elf.h 2003-09-16 17:39:23.000000000 +0200
|
||||
+++ gcc-3.3.2/gcc/config/arm/linux-elf.h 2004-07-07 14:03:54.329839922 +0200
|
||||
@@ -30,15 +30,29 @@
|
||||
/* Do not assume anything about header files. */
|
||||
#define NO_IMPLICIT_EXTERN_C
|
||||
|
||||
+/*
|
||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
|
||||
+ * (big endian) configurations.
|
||||
+ */
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT
|
||||
+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
|
||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
|
||||
+#else
|
||||
+#define TARGET_ENDIAN_DEFAULT 0
|
||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
|
||||
+#endif
|
||||
+
|
||||
/* Default is to use APCS-32 mode. */
|
||||
#undef TARGET_DEFAULT
|
||||
-#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
|
||||
+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
|
||||
|
||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
|
||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
|
||||
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS \
|
||||
- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
|
||||
+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
|
||||
|
||||
#define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
|
||||
|
||||
@@ -86,7 +100,7 @@
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
|
||||
-X \
|
||||
- %{mbig-endian:-EB}" \
|
||||
+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
|
||||
SUBTARGET_EXTRA_LINK_SPEC
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
diff -urN gcc-3.3.2.orig/gcc/config.gcc gcc-3.3.2/gcc/config.gcc
|
||||
--- gcc-3.3.2.orig/gcc/config.gcc 2003-10-01 21:07:01.000000000 +0200
|
||||
+++ gcc-3.3.2/gcc/config.gcc 2004-07-07 14:04:59.046716638 +0200
|
||||
@@ -699,6 +699,11 @@
|
||||
;;
|
||||
arm*-*-linux*) # ARM GNU/Linux with ELF
|
||||
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h"
|
||||
+ case $machine in
|
||||
+ arm*b-*)
|
||||
+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
|
||||
+ ;;
|
||||
+ esac
|
||||
tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
|
||||
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
|
||||
gnu_ld=yes
|
@ -1,44 +0,0 @@
|
||||
#
|
||||
# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
|
||||
#
|
||||
# Error:
|
||||
#
|
||||
# creating libintl.h
|
||||
# Configuring etc...
|
||||
# loading cache ../config.cache
|
||||
# checking for a BSD compatible install... (cached) /usr/bin/install -c
|
||||
# creating ./config.status
|
||||
# creating Makefile
|
||||
# trap: usage: trap [-lp] [[arg] signal_spec ...]
|
||||
#
|
||||
# Description:
|
||||
#
|
||||
# non-posix conform usage of trap causes bash >= 3.0 to fail
|
||||
# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
|
||||
#
|
||||
# Status:
|
||||
#
|
||||
# fixed in gcc >= 3.3.5
|
||||
# backport of gcc-3.3.5 fix
|
||||
#
|
||||
diff -ruN gcc-3.3.2-orig/configure gcc-3.3.2/configure
|
||||
--- gcc-3.3.2-orig/configure 2002-09-29 18:11:24.000000000 +0200
|
||||
+++ gcc-3.3.2/configure 2005-04-20 20:55:51.000000000 +0200
|
||||
@@ -697,7 +697,7 @@
|
||||
if test -f skip-this-dir; then
|
||||
# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
|
||||
# and reset the trap handler.
|
||||
- trap 0
|
||||
+ trap '' 0
|
||||
rm -rf Makefile* ${tmpdir}
|
||||
# Execute the final clean-up actions
|
||||
${config_shell} skip-this-dir
|
||||
@@ -1596,7 +1596,7 @@
|
||||
# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
|
||||
# and reset the trap handler.
|
||||
rm -rf ${tmpdir}
|
||||
-trap 0
|
||||
+trap '' 0
|
||||
|
||||
exit 0
|
||||
|
@ -1 +0,0 @@
|
||||
../3.3.1/pr10392-1-test.patch
|
@ -1 +0,0 @@
|
||||
../3.3.1/pr10412-1-test.patch
|
@ -1 +0,0 @@
|
||||
../3.3.1/pr10589-1-test.patch
|
@ -1 +0,0 @@
|
||||
../3.3.1/pr11162-1-test.patch
|
@ -1 +0,0 @@
|
||||
../3.3.1/pr11587-1-test.patch
|
@ -1,31 +0,0 @@
|
||||
pr11608
|
||||
|
||||
------------
|
||||
I'm building and testing an x86->sh4 crosscompiler with http://kegel.com/crosstool
|
||||
With either gcc-3.3 or gcc-ss-3_3-20030714 I get:
|
||||
|
||||
Testing debug/20020327-1.c, -gstabs1
|
||||
...
|
||||
FAIL: gcc.dg/debug/20020327-1.c (test for excess errors)
|
||||
Excess errors:
|
||||
/tmp/cc8dFF7Y.s: Assembler messages:
|
||||
/tmp/cc8dFF7Y.s:66: Error: symbol `Letext' is already defined
|
||||
|
||||
------------
|
||||
|
||||
Index: elf.h
|
||||
===================================================================
|
||||
RCS file: /cvs/gcc/gcc/gcc/config/sh/elf.h,v
|
||||
retrieving revision 1.32
|
||||
diff -u -p -r1.32 elf.h
|
||||
--- gcc-orig/gcc/config/sh/elf.h 27 Sep 2003 04:48:28 -0000 1.32
|
||||
+++ gcc-new/gcc/config/sh/elf.h 2 Jan 2004 07:23:23 -0000
|
||||
@@ -95,7 +95,7 @@ while (0)
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
do { \
|
||||
text_section (); \
|
||||
- fprintf ((FILE), "\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO); \
|
||||
+ asm_fprintf ((FILE), "\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO); \
|
||||
} while (0)
|
||||
|
||||
#undef STARTFILE_SPEC
|
@ -1 +0,0 @@
|
||||
../3.3.1/pr11736-1-test.patch
|
@ -1 +0,0 @@
|
||||
../3.3.1/pr11864-1-test.patch
|
@ -1,56 +0,0 @@
|
||||
See http://gcc.gnu.org/PR13260
|
||||
|
||||
/cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c,v --> standard output
|
||||
revision 1.1
|
||||
--- - 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
|
||||
@@ -0,0 +1,49 @@
|
||||
+/* PR optimization/13260 */
|
||||
+
|
||||
+#include <string.h>
|
||||
+
|
||||
+typedef unsigned long u32;
|
||||
+
|
||||
+u32 in_aton(const char* x)
|
||||
+{
|
||||
+ return 0x0a0b0c0d;
|
||||
+}
|
||||
+
|
||||
+u32 root_nfs_parse_addr(char *name)
|
||||
+{
|
||||
+ u32 addr;
|
||||
+ int octets = 0;
|
||||
+ char *cp, *cq;
|
||||
+
|
||||
+ cp = cq = name;
|
||||
+ while (octets < 4) {
|
||||
+ while (*cp >= '0' && *cp <= '9')
|
||||
+ cp++;
|
||||
+ if (cp == cq || cp - cq > 3)
|
||||
+ break;
|
||||
+ if (*cp == '.' || octets == 3)
|
||||
+ octets++;
|
||||
+ if (octets < 4)
|
||||
+ cp++;
|
||||
+ cq = cp;
|
||||
+ }
|
||||
+
|
||||
+ if (octets == 4 && (*cp == ':' || *cp == '\0')) {
|
||||
+ if (*cp == ':')
|
||||
+ *cp++ = '\0';
|
||||
+ addr = in_aton(name);
|
||||
+ strcpy(name, cp);
|
||||
+ } else
|
||||
+ addr = (-1);
|
||||
+
|
||||
+ return addr;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main()
|
||||
+{
|
||||
+ static char addr[] = "10.11.12.13:/hello";
|
||||
+ u32 result = root_nfs_parse_addr(addr);
|
||||
+ if (result != 0x0a0b0c0d) { abort(); }
|
||||
+ return 0;
|
||||
+}
|
@ -1 +0,0 @@
|
||||
../3.3.1/pr9365-1-test.patch
|
@ -1,610 +0,0 @@
|
||||
Fixes the problem
|
||||
[ libdemo.so and main.o both use assignment on structures ]
|
||||
$ sh4-unknown-linux-gnu-gcc libdemo.so main.o
|
||||
sh4-unknown-linux-gnu/bin/ld: warning: type and size of dynamic symbol `__movstr_i4_even' are not defined
|
||||
[ resulting app links, but crashes at runtime ]
|
||||
See testcase at http://tsukuba.m17n.org/linux-sh/ml/linux-sh/2003-11/msg00016.html
|
||||
|
||||
Patch was posted as http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01641.html
|
||||
and is in cvs as http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sh/lib1funcs.asm.diff?r1=1.29.4.1&r2=1.29.4.2
|
||||
|
||||
but see also sh-libgcc-hidden.patch
|
||||
|
||||
===================================================================
|
||||
|
||||
--- gcc/gcc/config/sh/lib1funcs.asm 2002/09/20 01:29:21 1.29.4.1
|
||||
+++ gcc/gcc/config/sh/lib1funcs.asm 2003/11/18 12:27:31
|
||||
@@ -38,9 +38,14 @@
|
||||
amylaar@cygnus.com */
|
||||
|
||||
#ifdef __ELF__
|
||||
-#define LOCAL(X) .L_##X
|
||||
-#else
|
||||
-#define LOCAL(X) L_##X
|
||||
+#define LOCAL(X) .L_##X
|
||||
+#define FUNC(X) .type X,@function
|
||||
+#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
|
||||
+#define ENDFUNC(X) ENDFUNC0(X)
|
||||
+#else
|
||||
+#define LOCAL(X) L_##X
|
||||
+#define FUNC(X)
|
||||
+#define ENDFUNC(X)
|
||||
#endif
|
||||
|
||||
#define CONCAT(A,B) A##B
|
||||
@@ -87,6 +92,40 @@
|
||||
.global GLOBAL(ashiftrt_r4_31)
|
||||
.global GLOBAL(ashiftrt_r4_32)
|
||||
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_0))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_1))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_2))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_3))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_4))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_5))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_6))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_7))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_8))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_9))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_10))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_11))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_12))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_13))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_14))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_15))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_16))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_17))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_18))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_19))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_20))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_21))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_22))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_23))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_24))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_25))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_26))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_27))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_28))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_29))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_30))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_31))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_32))
|
||||
+
|
||||
.align 1
|
||||
GLOBAL(ashiftrt_r4_32):
|
||||
GLOBAL(ashiftrt_r4_31):
|
||||
@@ -166,6 +205,40 @@
|
||||
GLOBAL(ashiftrt_r4_0):
|
||||
rts
|
||||
nop
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_0))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_1))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_2))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_3))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_4))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_5))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_6))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_7))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_8))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_9))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_10))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_11))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_12))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_13))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_14))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_15))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_16))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_17))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_18))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_19))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_20))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_21))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_22))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_23))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_24))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_25))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_26))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_27))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_28))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_29))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_30))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_31))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_32))
|
||||
#endif
|
||||
|
||||
#ifdef L_ashiftrt_n
|
||||
@@ -188,6 +261,7 @@
|
||||
!
|
||||
|
||||
.global GLOBAL(ashrsi3)
|
||||
+ FUNC(GLOBAL(ashrsi3))
|
||||
.align 2
|
||||
GLOBAL(ashrsi3):
|
||||
mov #31,r0
|
||||
@@ -315,6 +389,7 @@
|
||||
rts
|
||||
nop
|
||||
|
||||
+ ENDFUNC(GLOBAL(ashrsi3))
|
||||
#endif
|
||||
|
||||
#ifdef L_ashiftlt
|
||||
@@ -336,6 +411,7 @@
|
||||
! (none)
|
||||
!
|
||||
.global GLOBAL(ashlsi3)
|
||||
+ FUNC(GLOBAL(ashlsi3))
|
||||
.align 2
|
||||
GLOBAL(ashlsi3):
|
||||
mov #31,r0
|
||||
@@ -472,6 +548,7 @@
|
||||
rts
|
||||
nop
|
||||
|
||||
+ ENDFUNC(GLOBAL(ashlsi3))
|
||||
#endif
|
||||
|
||||
#ifdef L_lshiftrt
|
||||
@@ -493,6 +570,7 @@
|
||||
! (none)
|
||||
!
|
||||
.global GLOBAL(lshrsi3)
|
||||
+ FUNC(GLOBAL(lshrsi3))
|
||||
.align 2
|
||||
GLOBAL(lshrsi3):
|
||||
mov #31,r0
|
||||
@@ -629,6 +707,7 @@
|
||||
rts
|
||||
nop
|
||||
|
||||
+ ENDFUNC(GLOBAL(lshrsi3))
|
||||
#endif
|
||||
|
||||
#ifdef L_movstr
|
||||
@@ -645,76 +724,113 @@
|
||||
add #64,r4
|
||||
.align 4
|
||||
.global GLOBAL(movstrSI64)
|
||||
+ FUNC(GLOBAL(movstrSI64))
|
||||
GLOBAL(movstrSI64):
|
||||
mov.l @(60,r5),r0
|
||||
mov.l r0,@(60,r4)
|
||||
.global GLOBAL(movstrSI60)
|
||||
+ FUNC(GLOBAL(movstrSI60))
|
||||
GLOBAL(movstrSI60):
|
||||
mov.l @(56,r5),r0
|
||||
mov.l r0,@(56,r4)
|
||||
.global GLOBAL(movstrSI56)
|
||||
+ FUNC(GLOBAL(movstrSI56))
|
||||
GLOBAL(movstrSI56):
|
||||
mov.l @(52,r5),r0
|
||||
mov.l r0,@(52,r4)
|
||||
.global GLOBAL(movstrSI52)
|
||||
+ FUNC(GLOBAL(movstrSI52))
|
||||
GLOBAL(movstrSI52):
|
||||
mov.l @(48,r5),r0
|
||||
mov.l r0,@(48,r4)
|
||||
.global GLOBAL(movstrSI48)
|
||||
+ FUNC(GLOBAL(movstrSI48))
|
||||
GLOBAL(movstrSI48):
|
||||
mov.l @(44,r5),r0
|
||||
mov.l r0,@(44,r4)
|
||||
.global GLOBAL(movstrSI44)
|
||||
+ FUNC(GLOBAL(movstrSI44))
|
||||
GLOBAL(movstrSI44):
|
||||
mov.l @(40,r5),r0
|
||||
mov.l r0,@(40,r4)
|
||||
.global GLOBAL(movstrSI40)
|
||||
+ FUNC(GLOBAL(movstrSI40))
|
||||
GLOBAL(movstrSI40):
|
||||
mov.l @(36,r5),r0
|
||||
mov.l r0,@(36,r4)
|
||||
.global GLOBAL(movstrSI36)
|
||||
+ FUNC(GLOBAL(movstrSI36))
|
||||
GLOBAL(movstrSI36):
|
||||
mov.l @(32,r5),r0
|
||||
mov.l r0,@(32,r4)
|
||||
.global GLOBAL(movstrSI32)
|
||||
+ FUNC(GLOBAL(movstrSI32))
|
||||
GLOBAL(movstrSI32):
|
||||
mov.l @(28,r5),r0
|
||||
mov.l r0,@(28,r4)
|
||||
.global GLOBAL(movstrSI28)
|
||||
+ FUNC(GLOBAL(movstrSI28))
|
||||
GLOBAL(movstrSI28):
|
||||
mov.l @(24,r5),r0
|
||||
mov.l r0,@(24,r4)
|
||||
.global GLOBAL(movstrSI24)
|
||||
+ FUNC(GLOBAL(movstrSI24))
|
||||
GLOBAL(movstrSI24):
|
||||
mov.l @(20,r5),r0
|
||||
mov.l r0,@(20,r4)
|
||||
.global GLOBAL(movstrSI20)
|
||||
+ FUNC(GLOBAL(movstrSI20))
|
||||
GLOBAL(movstrSI20):
|
||||
mov.l @(16,r5),r0
|
||||
mov.l r0,@(16,r4)
|
||||
.global GLOBAL(movstrSI16)
|
||||
+ FUNC(GLOBAL(movstrSI16))
|
||||
GLOBAL(movstrSI16):
|
||||
mov.l @(12,r5),r0
|
||||
mov.l r0,@(12,r4)
|
||||
.global GLOBAL(movstrSI12)
|
||||
+ FUNC(GLOBAL(movstrSI12))
|
||||
GLOBAL(movstrSI12):
|
||||
mov.l @(8,r5),r0
|
||||
mov.l r0,@(8,r4)
|
||||
.global GLOBAL(movstrSI8)
|
||||
+ FUNC(GLOBAL(movstrSI8))
|
||||
GLOBAL(movstrSI8):
|
||||
mov.l @(4,r5),r0
|
||||
mov.l r0,@(4,r4)
|
||||
.global GLOBAL(movstrSI4)
|
||||
+ FUNC(GLOBAL(movstrSI4))
|
||||
GLOBAL(movstrSI4):
|
||||
mov.l @(0,r5),r0
|
||||
mov.l r0,@(0,r4)
|
||||
+ .global GLOBAL(movstrSI0)
|
||||
+ FUNC(GLOBAL(movstrSI0))
|
||||
GLOBAL(movstrSI0):
|
||||
rts
|
||||
nop
|
||||
|
||||
+ ENDFUNC(GLOBAL(movstrSI64))
|
||||
+ ENDFUNC(GLOBAL(movstrSI60))
|
||||
+ ENDFUNC(GLOBAL(movstrSI56))
|
||||
+ ENDFUNC(GLOBAL(movstrSI52))
|
||||
+ ENDFUNC(GLOBAL(movstrSI48))
|
||||
+ ENDFUNC(GLOBAL(movstrSI44))
|
||||
+ ENDFUNC(GLOBAL(movstrSI40))
|
||||
+ ENDFUNC(GLOBAL(movstrSI36))
|
||||
+ ENDFUNC(GLOBAL(movstrSI32))
|
||||
+ ENDFUNC(GLOBAL(movstrSI28))
|
||||
+ ENDFUNC(GLOBAL(movstrSI24))
|
||||
+ ENDFUNC(GLOBAL(movstrSI20))
|
||||
+ ENDFUNC(GLOBAL(movstrSI16))
|
||||
+ ENDFUNC(GLOBAL(movstrSI12))
|
||||
+ ENDFUNC(GLOBAL(movstrSI8))
|
||||
+ ENDFUNC(GLOBAL(movstrSI4))
|
||||
+ ENDFUNC(GLOBAL(movstrSI0))
|
||||
+
|
||||
.align 4
|
||||
|
||||
.global GLOBAL(movstr)
|
||||
+ FUNC(GLOBAL(movstr))
|
||||
GLOBAL(movstr):
|
||||
mov.l @(60,r5),r0
|
||||
mov.l r0,@(60,r4)
|
||||
@@ -771,6 +887,8 @@
|
||||
add #64,r5
|
||||
bra GLOBAL(movstr)
|
||||
add #64,r4
|
||||
+
|
||||
+ FUNC(GLOBAL(movstr))
|
||||
#endif
|
||||
|
||||
#ifdef L_movstr_i4
|
||||
@@ -779,6 +897,10 @@
|
||||
.global GLOBAL(movstr_i4_odd)
|
||||
.global GLOBAL(movstrSI12_i4)
|
||||
|
||||
+ FUNC(GLOBAL(movstr_i4_even))
|
||||
+ FUNC(GLOBAL(movstr_i4_odd))
|
||||
+ FUNC(GLOBAL(movstrSI12_i4))
|
||||
+
|
||||
.p2align 5
|
||||
L_movstr_2mod4_end:
|
||||
mov.l r0,@(16,r4)
|
||||
@@ -787,6 +909,11 @@
|
||||
|
||||
.p2align 2
|
||||
|
||||
+GLOBAL(movstr_i4_even):
|
||||
+ mov.l @r5+,r0
|
||||
+ bra L_movstr_start_even
|
||||
+ mov.l @r5+,r1
|
||||
+
|
||||
GLOBAL(movstr_i4_odd):
|
||||
mov.l @r5+,r1
|
||||
add #-4,r4
|
||||
@@ -813,10 +940,8 @@
|
||||
rts
|
||||
mov.l r3,@(12,r4)
|
||||
|
||||
-GLOBAL(movstr_i4_even):
|
||||
- mov.l @r5+,r0
|
||||
- bra L_movstr_start_even
|
||||
- mov.l @r5+,r1
|
||||
+ ENDFUNC(GLOBAL(movstr_i4_even))
|
||||
+ ENDFUNC(GLOBAL(movstr_i4_odd))
|
||||
|
||||
.p2align 4
|
||||
GLOBAL(movstrSI12_i4):
|
||||
@@ -827,12 +952,15 @@
|
||||
mov.l r1,@(4,r4)
|
||||
rts
|
||||
mov.l r2,@(8,r4)
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(movstrSI12_i4))
|
||||
#endif
|
||||
|
||||
#ifdef L_mulsi3
|
||||
|
||||
|
||||
.global GLOBAL(mulsi3)
|
||||
+ FUNC(GLOBAL(mulsi3))
|
||||
|
||||
! r4 = aabb
|
||||
! r5 = ccdd
|
||||
@@ -865,7 +993,7 @@
|
||||
rts
|
||||
add r2,r0
|
||||
|
||||
-
|
||||
+ FUNC(GLOBAL(mulsi3))
|
||||
#endif
|
||||
#endif /* ! __SH5__ */
|
||||
#ifdef L_sdivsi3_i4
|
||||
@@ -875,6 +1003,7 @@
|
||||
!! args in r4 and r5, result in fpul, clobber dr0, dr2
|
||||
|
||||
.global GLOBAL(sdivsi3_i4)
|
||||
+ FUNC(GLOBAL(sdivsi3_i4))
|
||||
GLOBAL(sdivsi3_i4):
|
||||
lds r4,fpul
|
||||
float fpul,dr0
|
||||
@@ -884,6 +1013,7 @@
|
||||
rts
|
||||
ftrc dr0,fpul
|
||||
|
||||
+ ENDFUNC(GLOBAL(sdivsi3_i4))
|
||||
#elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
|
||||
!! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
|
||||
|
||||
@@ -892,6 +1022,7 @@
|
||||
.mode SHcompact
|
||||
#endif
|
||||
.global GLOBAL(sdivsi3_i4)
|
||||
+ FUNC(GLOBAL(sdivsi3_i4))
|
||||
GLOBAL(sdivsi3_i4):
|
||||
sts.l fpscr,@-r15
|
||||
mov #8,r2
|
||||
@@ -906,6 +1037,7 @@
|
||||
rts
|
||||
lds.l @r15+,fpscr
|
||||
|
||||
+ ENDFUNC(GLOBAL(sdivsi3_i4))
|
||||
#endif /* ! __SH5__ || __SH5__ == 32 */
|
||||
#endif /* ! __SH4__ */
|
||||
#endif
|
||||
@@ -920,9 +1052,10 @@
|
||||
!!
|
||||
!!
|
||||
|
||||
-!! args in r4 and r5, result in r0 clobber r1,r2,r3
|
||||
+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
|
||||
|
||||
.global GLOBAL(sdivsi3)
|
||||
+ FUNC(GLOBAL(sdivsi3))
|
||||
#if __SHMEDIA__
|
||||
#if __SH5__ == 32
|
||||
.section .text..SHmedia32,"ax"
|
||||
@@ -1166,6 +1299,7 @@
|
||||
div0: rts
|
||||
mov #0,r0
|
||||
|
||||
+ ENDFUNC(GLOBAL(sdivsi3))
|
||||
#endif /* ! __SHMEDIA__ */
|
||||
#endif /* ! __SH4__ */
|
||||
#endif
|
||||
@@ -1174,9 +1308,11 @@
|
||||
.title "SH DIVIDE"
|
||||
!! 4 byte integer Divide code for the Hitachi SH
|
||||
#ifdef __SH4__
|
||||
-!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
|
||||
+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
|
||||
+!! and t bit
|
||||
|
||||
.global GLOBAL(udivsi3_i4)
|
||||
+ FUNC(GLOBAL(udivsi3_i4))
|
||||
GLOBAL(udivsi3_i4):
|
||||
mov #1,r1
|
||||
cmp/hi r1,r5
|
||||
@@ -1217,11 +1353,13 @@
|
||||
L1:
|
||||
.double 2147483648
|
||||
|
||||
+ ENDFUNC(GLOBAL(udivsi3_i4))
|
||||
#elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
|
||||
#if ! __SH5__ || __SH5__ == 32
|
||||
!! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
|
||||
.mode SHmedia
|
||||
.global GLOBAL(udivsi3_i4)
|
||||
+ FUNC(GLOBAL(udivsi3_i4))
|
||||
GLOBAL(udivsi3_i4):
|
||||
addz.l r4,r63,r20
|
||||
addz.l r5,r63,r21
|
||||
@@ -1234,6 +1372,8 @@
|
||||
ftrc.dq dr0,dr32
|
||||
fmov.s fr33,fr32
|
||||
blink tr0,r63
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(udivsi3_i4))
|
||||
#endif /* ! __SH5__ || __SH5__ == 32 */
|
||||
#elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
|
||||
!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
|
||||
@@ -1287,6 +1427,7 @@
|
||||
#endif
|
||||
.double 2147483648
|
||||
|
||||
+ ENDFUNC(GLOBAL(udivsi3_i4))
|
||||
#endif /* ! __SH4__ */
|
||||
#endif
|
||||
|
||||
@@ -1297,6 +1438,7 @@
|
||||
|
||||
!! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
|
||||
.global GLOBAL(udivsi3)
|
||||
+ FUNC(GLOBAL(udivsi3))
|
||||
|
||||
#if __SHMEDIA__
|
||||
#if __SH5__ == 32
|
||||
@@ -1485,6 +1627,7 @@
|
||||
rts
|
||||
rotcl r0
|
||||
|
||||
+ ENDFUNC(GLOBAL(udivsi3))
|
||||
#endif /* ! __SHMEDIA__ */
|
||||
#endif /* __SH4__ */
|
||||
#endif /* L_udivsi3 */
|
||||
@@ -1790,6 +1933,7 @@
|
||||
.mode SHcompact
|
||||
#endif
|
||||
.global GLOBAL(set_fpscr)
|
||||
+ FUNC(GLOBAL(set_fpscr))
|
||||
GLOBAL(set_fpscr):
|
||||
lds r4,fpscr
|
||||
mov.l LOCAL(set_fpscr_L1),r1
|
||||
@@ -1822,6 +1966,8 @@
|
||||
.align 2
|
||||
LOCAL(set_fpscr_L1):
|
||||
.long GLOBAL(fpscr_values)
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(set_fpscr))
|
||||
#ifdef __ELF__
|
||||
.comm GLOBAL(fpscr_values),8,4
|
||||
#else
|
||||
@@ -1860,6 +2006,7 @@
|
||||
blink tr0, r63
|
||||
#elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
|
||||
.global GLOBAL(ic_invalidate)
|
||||
+ FUNC(GLOBAL(ic_invalidate))
|
||||
GLOBAL(ic_invalidate):
|
||||
ocbwb @r4
|
||||
mova 0f,r0
|
||||
@@ -1882,6 +2029,8 @@
|
||||
nop
|
||||
.endr
|
||||
.endr
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(ic_invalidate))
|
||||
#endif /* SH4 */
|
||||
#endif /* L_ic_invalidate */
|
||||
|
||||
@@ -1940,6 +2089,7 @@
|
||||
will be expanded into r2/r3 upon return. */
|
||||
|
||||
.global GLOBAL(GCC_shcompact_call_trampoline)
|
||||
+ FUNC(GLOBAL(GCC_shcompact_call_trampoline))
|
||||
GLOBAL(GCC_shcompact_call_trampoline):
|
||||
ptabs/l r0, tr0 /* Prepare to call the actual function. */
|
||||
movi ((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
|
||||
@@ -2290,6 +2440,8 @@
|
||||
shari r2, 32, r2
|
||||
#endif
|
||||
blink tr0, r63
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
|
||||
#endif /* L_shcompact_call_trampoline */
|
||||
|
||||
#ifdef L_shcompact_return_trampoline
|
||||
@@ -2302,6 +2454,7 @@
|
||||
.section .text..SHmedia32, "ax"
|
||||
.align 2
|
||||
.global GLOBAL(GCC_shcompact_return_trampoline)
|
||||
+ FUNC(GLOBAL(GCC_shcompact_return_trampoline))
|
||||
GLOBAL(GCC_shcompact_return_trampoline):
|
||||
ptabs/l r18, tr0
|
||||
#if __LITTLE_ENDIAN__
|
||||
@@ -2313,6 +2466,8 @@
|
||||
#endif
|
||||
or r3, r2, r2
|
||||
blink tr0, r63
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
|
||||
#endif /* L_shcompact_return_trampoline */
|
||||
|
||||
#ifdef L_shcompact_incoming_args
|
||||
@@ -2367,6 +2522,7 @@
|
||||
actual bit pattern. */
|
||||
|
||||
.global GLOBAL(GCC_shcompact_incoming_args)
|
||||
+ FUNC(GLOBAL(GCC_shcompact_incoming_args))
|
||||
GLOBAL(GCC_shcompact_incoming_args):
|
||||
ptabs/l r18, tr0 /* Prepare to return. */
|
||||
shlri r17, 32, r0 /* Load the cookie. */
|
||||
@@ -2519,6 +2675,7 @@
|
||||
LOCAL(ia_return): /* Return. */
|
||||
blink tr0, r63
|
||||
LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction. */
|
||||
+ ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
|
||||
#endif /* L_shcompact_incoming_args */
|
||||
#endif
|
||||
#if __SH5__
|
||||
@@ -2530,6 +2687,7 @@
|
||||
#endif
|
||||
.align 3 /* It is copied in units of 8 bytes in SHmedia mode. */
|
||||
.global GLOBAL(GCC_nested_trampoline)
|
||||
+ FUNC(GLOBAL(GCC_nested_trampoline))
|
||||
GLOBAL(GCC_nested_trampoline):
|
||||
.mode SHmedia
|
||||
ptrel/u r63, tr0
|
||||
@@ -2546,6 +2704,8 @@
|
||||
ld.l r0, 28, r1
|
||||
#endif
|
||||
blink tr1, r63
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(GCC_nested_trampoline))
|
||||
#endif /* L_nested_trampoline */
|
||||
#endif /* __SH5__ */
|
||||
#if __SH5__ == 32
|
||||
@@ -2555,6 +2715,7 @@
|
||||
.align 2
|
||||
#ifndef __SH4_NOFPU__
|
||||
.global GLOBAL(GCC_push_shmedia_regs)
|
||||
+ FUNC(GLOBAL(GCC_push_shmedia_regs))
|
||||
GLOBAL(GCC_push_shmedia_regs):
|
||||
addi.l r15, -14*8, r15
|
||||
fst.d r15, 13*8, dr62
|
||||
@@ -2573,6 +2734,7 @@
|
||||
fst.d r15, 0*8, dr36
|
||||
#endif
|
||||
.global GLOBAL(GCC_push_shmedia_regs_nofpu)
|
||||
+ FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
|
||||
GLOBAL(GCC_push_shmedia_regs_nofpu):
|
||||
ptabs/l r18, tr0
|
||||
addi.l r15, -27*8, r15
|
||||
@@ -2608,8 +2770,13 @@
|
||||
st.q r15, 0*8, r28
|
||||
blink tr0, r63
|
||||
|
||||
+#ifndef __SH4_NOFPU__
|
||||
+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
|
||||
+#endif
|
||||
+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
|
||||
#ifndef __SH4_NOFPU__
|
||||
.global GLOBAL(GCC_pop_shmedia_regs)
|
||||
+ FUNC(GLOBAL(GCC_pop_shmedia_regs))
|
||||
GLOBAL(GCC_pop_shmedia_regs):
|
||||
pt .L0, tr1
|
||||
movi 41*8, r0
|
||||
@@ -2630,6 +2797,7 @@
|
||||
blink tr1, r63
|
||||
#endif
|
||||
.global GLOBAL(GCC_pop_shmedia_regs_nofpu)
|
||||
+ FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
|
||||
GLOBAL(GCC_pop_shmedia_regs_nofpu):
|
||||
movi 27*8, r0
|
||||
.L0:
|
||||
@@ -2666,5 +2834,10 @@
|
||||
ld.q r15, 0*8, r28
|
||||
add.l r15, r0, r15
|
||||
blink tr0, r63
|
||||
+
|
||||
+#ifndef __SH4_NOFPU__
|
||||
+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
|
||||
+#endif
|
||||
+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
|
||||
#endif /* __SH5__ == 32 */
|
||||
#endif /* L_push_pop_shmedia_regs */
|
@ -1,122 +0,0 @@
|
||||
[adjusted very slightly to apply to gcc-3.3.2 - dank]
|
||||
|
||||
From: kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
|
||||
I've noticed one more problem about this issue. In the testcase given
|
||||
by ZhouChang, libdemo.so exports __movstr_i4_even which is a function
|
||||
in libgcc.a. This itself is not a problem but it means that some functions
|
||||
in libgcc.a which should not be exported from shared objects might be
|
||||
exported from shared libs
|
||||
|
||||
Date: Wed, 19 Nov 2003 09:04:12 +0900 (JST)
|
||||
From: kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
Subject: [linux-sh:03096] Re: [linux] Re: About tool chain in
|
||||
http://kegel.com/crosstool/
|
||||
To: dank@kegel.com
|
||||
Cc: zjuzhou@yahoo.com.cn, linux-sh@m17n.org, zhan_sh@yahoo.com.cn,
|
||||
crossgcc@sources.redhat.com
|
||||
Message-Id: <20031119.090412.85413542.kkojima@rr.iij4u.or.jp>
|
||||
|
||||
Hi,
|
||||
|
||||
Dan Kegel <dank@kegel.com> wrote:
|
||||
> I'll try that, thanks. I notice that the '.hidden' isn't in cvs yet.
|
||||
> I also notice you've been trying to get that into CVS for two years
|
||||
> now (http://gcc.gnu.org/ml/gcc-patches/2001-10/msg00053.html).
|
||||
> Time for another try? It'd be nice if gcc-3.4 (and maybe even gcc-3.3.3)
|
||||
> didn't need a patch for this.
|
||||
|
||||
The situation is a bit complicated. sh-linux target doesn't make
|
||||
shared libgcc in gcc-3.3.x.
|
||||
OTOH, I withdrew that .hidden patch because gcc-3.3 has a general
|
||||
mechanism to make all libgcc functions .hidden. But I missed that
|
||||
that mechanism was conditionalized later so that it's done only
|
||||
when the target creates the shared libgcc.
|
||||
In 3.4, sh-linux target becomes to use the shared libgcc like as
|
||||
all other linux targets, so there is no problem.
|
||||
|
||||
I inclined to backport 3.4 shared libgcc stuff to 3.3.3 rather
|
||||
than the old .hidden patch. How do you think about it?
|
||||
I'm happy if you or ZhouChang create a PR on gcc bugzilla about
|
||||
this issue.
|
||||
|
||||
Regards,
|
||||
kaz
|
||||
--
|
||||
This is a backport of 3.4 shared libgcc stuff to 3.3 branch.
|
||||
* config.gcc (sh*-*-linux*): Add t-slibgcc-elf-ver and t-linux.
|
||||
to tmake_file. * config/sh/libgcc-glibc.ver: New file.
|
||||
* config/sh/t-linux (SHLIB_LINK): Override to use a linker script
|
||||
libgcc_s.so.
|
||||
(SHLIB_INSTALL): Likewise.
|
||||
|
||||
diff -u3prN ORIG/gcc-3.3/gcc/config/sh/libgcc-glibc.ver gcc-3.3/gcc/config/sh/libgcc-glibc.ver
|
||||
--- ORIG/gcc-3.3/gcc/config/sh/libgcc-glibc.ver Thu Jan 1 09:00:00 1970
|
||||
+++ gcc-3.3/gcc/config/sh/libgcc-glibc.ver Wed Nov 19 08:15:16 2003
|
||||
@@ -0,0 +1,21 @@
|
||||
+# In order to work around the very problems that force us to now generally
|
||||
+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
|
||||
+# By now choosing the same version tags for these specific routines, we
|
||||
+# maintain enough binary compatibility to allow future versions of glibc
|
||||
+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
|
||||
+
|
||||
+# Note that we cannot use the default libgcc-glibc.ver file on sh,
|
||||
+# because GLIBC_2.0 does not exist on this architecture, as the first
|
||||
+# ever glibc release on the platform was GLIBC_2.2.
|
||||
+
|
||||
+%inherit GCC_3.0 GLIBC_2.2
|
||||
+GLIBC_2.2 {
|
||||
+ __register_frame
|
||||
+ __register_frame_table
|
||||
+ __deregister_frame
|
||||
+ __register_frame_info
|
||||
+ __deregister_frame_info
|
||||
+ __frame_state_for
|
||||
+ __register_frame_info_table
|
||||
+}
|
||||
+
|
||||
diff -u3prN ORIG/gcc-3.3/gcc/config/sh/t-linux gcc-3.3/gcc/config/sh/t-linux
|
||||
--- ORIG/gcc-3.3/gcc/config/sh/t-linux Fri Jun 6 11:07:14 2003
|
||||
+++ gcc-3.3/gcc/config/sh/t-linux Wed Nov 19 08:09:26 2003
|
||||
@@ -12,3 +12,27 @@ MULTILIB_MATCHES =
|
||||
MULTILIB_EXCEPTIONS=
|
||||
|
||||
EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o
|
||||
+
|
||||
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
|
||||
+# the symbol versions that glibc used.
|
||||
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/sh/libgcc-glibc.ver
|
||||
+
|
||||
+# Override SHLIB_LINK and SHLIB_INSTALL to use linker script
|
||||
+# libgcc_s.so.
|
||||
+SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||
+ -Wl,--soname=$(SHLIB_SONAME) \
|
||||
+ -Wl,--version-script=$(SHLIB_MAP) \
|
||||
+ -o $(SHLIB_NAME) @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
|
||||
+ rm -f $(SHLIB_SOLINK) && \
|
||||
+ (echo "/* GNU ld script"; \
|
||||
+ echo " Use the shared library, but some functions are only in"; \
|
||||
+ echo " the static library. */"; \
|
||||
+ echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \
|
||||
+ ) > $(SHLIB_SOLINK)
|
||||
+SHLIB_INSTALL = \
|
||||
+ $$(SHELL) $$(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
|
||||
+ $(INSTALL_DATA) $(SHLIB_NAME) \
|
||||
+ $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
|
||||
+ rm -f $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
|
||||
+ $(INSTALL_DATA) $(SHLIB_SOLINK) \
|
||||
+ $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
||||
diff -u3prN ORIG/gcc-3.3/gcc/config.gcc gcc-3.3/gcc/config.gcc
|
||||
--- ORIG/gcc-3.3/gcc/config.gcc Sat Aug 9 07:19:07 2003
|
||||
+++ gcc-3.3/gcc/config.gcc Wed Nov 19 08:07:53 2003
|
||||
@@ -2308,7 +2308,7 @@ sh-*-rtems*)
|
||||
fi
|
||||
;;
|
||||
sh-*-linux* | sh[2346lbe]*-*-linux*)
|
||||
- tmake_file="sh/t-sh sh/t-elf"
|
||||
+ tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux"
|
||||
case $machine in
|
||||
sh*be-*-* | sh*eb-*-*) ;;
|
||||
*)
|
||||
|
||||
|
@ -1,67 +0,0 @@
|
||||
See http://gcc.gnu.org/PR11901
|
||||
Should fix
|
||||
make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
|
||||
in glibc's "make tests".
|
||||
|
||||
Note: this patch is named
|
||||
sh-pic-set_fpscr-gcc-3.3.2.patch
|
||||
and must be applied after
|
||||
sh-lib1funcs_sizeAndType.patch
|
||||
but that'll happen naturally if you apply them in alphabetical order.
|
||||
|
||||
-------------
|
||||
|
||||
Date: Wed, 30 Jul 2003 12:03:01 +0900
|
||||
From: kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
Subject: [linux-sh:02916] Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
|
||||
with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
|
||||
To: dank@kegel.com
|
||||
Cc: linux-sh@m17n.org
|
||||
Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
|
||||
|
||||
> I'll try to write the PIC version of it,
|
||||
|
||||
Dan, does the attached patch work for you?
|
||||
|
||||
Regards,
|
||||
kaz
|
||||
--
|
||||
diff -u3prN ORIG/gcc/gcc/config/sh/lib1funcs.asm LOCAL/gcc/gcc/config/sh/lib1funcs.asm
|
||||
--- ORIG/gcc/gcc/config/sh/lib1funcs.asm Thu Jun 19 07:38:59 2003
|
||||
+++ gcc-3.3.2/gcc/config/sh/lib1funcs.asm Wed Jul 30 11:08:49 2003
|
||||
@@ -1936,7 +1944,17 @@ GLOBAL(moddi3):
|
||||
FUNC(GLOBAL(set_fpscr))
|
||||
GLOBAL(set_fpscr):
|
||||
lds r4,fpscr
|
||||
+#ifdef __PIC__
|
||||
+ mov.l r12,@-r15
|
||||
+ mova LOCAL(set_fpscr_L0),r0
|
||||
+ mov.l LOCAL(set_fpscr_L0),r12
|
||||
+ add r0,r12
|
||||
+ mov.l LOCAL(set_fpscr_L1),r0
|
||||
+ mov.l @(r0,r12),r1
|
||||
+ mov.l @r15+,r12
|
||||
+#else
|
||||
mov.l LOCAL(set_fpscr_L1),r1
|
||||
+#endif
|
||||
swap.w r4,r0
|
||||
or #24,r0
|
||||
#ifndef FMOVD_WORKS
|
||||
@@ -1964,8 +1982,15 @@ GLOBAL(set_fpscr):
|
||||
mov.l r3,@(4,r1)
|
||||
#endif
|
||||
.align 2
|
||||
+#ifdef __PIC__
|
||||
+LOCAL(set_fpscr_L0):
|
||||
+ .long _GLOBAL_OFFSET_TABLE_
|
||||
+LOCAL(set_fpscr_L1):
|
||||
+ .long GLOBAL(fpscr_values@GOT)
|
||||
+#else
|
||||
LOCAL(set_fpscr_L1):
|
||||
.long GLOBAL(fpscr_values)
|
||||
+#endif
|
||||
|
||||
ENDFUNC(GLOBAL(set_fpscr))
|
||||
#ifndef NO_FPSCR_VALUES
|
||||
|
||||
|
@ -1,23 +0,0 @@
|
||||
Fixes
|
||||
FAIL: g++.jason/thunk3.C (test for excess errors)
|
||||
on sh4-unknown-linux-gnu.
|
||||
|
||||
Does any sh variant *not* use the generic thunk support? If so, the patch should be
|
||||
more cautious. As it is, it excludes all sh processors from this test.
|
||||
|
||||
Index: thunk3.C
|
||||
===================================================================
|
||||
RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
|
||||
retrieving revision 1.13
|
||||
diff -u -d -u -r1.13 thunk3.C
|
||||
--- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old 25 Mar 2002 17:57:03 -0000 1.13
|
||||
+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C 20 Jul 2003 16:57:38 -0000
|
||||
@@ -2,7 +2,7 @@
|
||||
// Note that this will break on any target that uses the generic thunk
|
||||
// support, because it doesn't support variadic functions.
|
||||
|
||||
-// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
|
||||
+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
|
||||
|
||||
#include <stdarg.h>
|
||||
|
@ -1,72 +0,0 @@
|
||||
When configuring a s390->s390 or cris->cris crosscompiler
|
||||
(ok, I haven't hit this yet, but one of these days I'll get me an account
|
||||
on an s390, and then I'll need this patch :-), you'll get the
|
||||
following error:
|
||||
|
||||
+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
|
||||
--target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
|
||||
--prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
|
||||
--enable-languages=c
|
||||
--with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
|
||||
unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
|
||||
--disable-shared
|
||||
...
|
||||
*** --with-headers is only supported when cross compiling
|
||||
|
||||
This error pops up only when you're using Daniel Jacobowitz's technique
|
||||
of slightly changing the target and host tuples to make them different
|
||||
enough to force gcc's build system to not try to pull in system libraries
|
||||
or headers. This technique is needed e.g. to build an x86 -> x86
|
||||
cross-compiler.
|
||||
(The LFS developers ran into the same bug that prompted me to use
|
||||
this technique; they point people who run into it to
|
||||
http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
|
||||
way of avoiding this problem. I think the tuple tweak is the way to go, though.)
|
||||
|
||||
config-patches@gnu.org rejected this patch, on the grounds that there
|
||||
is only one vendor of each of those two architectures, so the
|
||||
canonicalization is by definition correct. When I pointed out the
|
||||
difficulty this causes for people building s390 -> s390 or
|
||||
cris -> cris compilers that are incompatible with the system
|
||||
libraries and thus must be built like cross-compilers, he grumped and said
|
||||
"autoconf should let you specify a cross-compiler in some other way than
|
||||
comparing tuple strings".
|
||||
|
||||
|
||||
|
||||
--- gcc-3.3/config.sub.old Sun Jun 8 20:38:47 2003
|
||||
+++ gcc-3.3/config.sub Sun Jun 8 20:40:34 2003
|
||||
@@ -433,9 +433,12 @@
|
||||
crds | unos)
|
||||
basic_machine=m68k-crds
|
||||
;;
|
||||
- cris | cris-* | etrax*)
|
||||
+ cris | etrax*)
|
||||
basic_machine=cris-axis
|
||||
;;
|
||||
+ cris-*)
|
||||
+ basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
+ ;;
|
||||
da30 | da30-*)
|
||||
basic_machine=m68k-da30
|
||||
;;
|
||||
@@ -820,11 +823,17 @@
|
||||
rtpc | rtpc-*)
|
||||
basic_machine=romp-ibm
|
||||
;;
|
||||
- s390 | s390-*)
|
||||
+ s390)
|
||||
basic_machine=s390-ibm
|
||||
;;
|
||||
- s390x | s390x-*)
|
||||
+ s390-*)
|
||||
+ basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
+ ;;
|
||||
+ s390x)
|
||||
basic_machine=s390x-ibm
|
||||
+ ;;
|
||||
+ s390x-*)
|
||||
+ basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
sa29200)
|
||||
basic_machine=a29k-amd
|
@ -1,21 +0,0 @@
|
||||
From 3.4 branch. Fixes test failure
|
||||
FAIL: g++.dg/abi/empty6.C (test for warnings, line 6)
|
||||
|
||||
===================================================================
|
||||
RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
|
||||
retrieving revision 1.1
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.1 -r1.2
|
||||
--- gcc/gcc/testsuite/g++.dg/abi/empty6.C 2002/09/25 19:07:35 1.1
|
||||
+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C 2003/06/03 19:10:09 1.2
|
||||
@@ -5,4 +5,9 @@
|
||||
struct B {
|
||||
A a; // { dg-warning "empty" }
|
||||
virtual void f () {}
|
||||
-};
|
||||
+} __attribute__((aligned(8)));
|
||||
+/* The preceding attribute is necessary on targets with
|
||||
+ BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
|
||||
+ offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
|
||||
+ and then there is no discrepancy between DECL_FIELD_OFFSET and
|
||||
+ byte_position to warn about. */
|
@ -1,65 +0,0 @@
|
||||
By Lennert Buytenhek <buytenh@wantstofly.org>
|
||||
Adds support for arm*b-linux* big-endian ARM targets
|
||||
|
||||
See http://gcc.gnu.org/PR16350
|
||||
|
||||
diff -urN gcc-3.3.2.orig/gcc/config/arm/linux-elf.h gcc-3.3.2/gcc/config/arm/linux-elf.h
|
||||
--- gcc-3.3.2.orig/gcc/config/arm/linux-elf.h 2003-09-16 17:39:23.000000000 +0200
|
||||
+++ gcc-3.3.2/gcc/config/arm/linux-elf.h 2004-07-07 14:03:54.329839922 +0200
|
||||
@@ -30,15 +30,29 @@
|
||||
/* Do not assume anything about header files. */
|
||||
#define NO_IMPLICIT_EXTERN_C
|
||||
|
||||
+/*
|
||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
|
||||
+ * (big endian) configurations.
|
||||
+ */
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT
|
||||
+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
|
||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
|
||||
+#else
|
||||
+#define TARGET_ENDIAN_DEFAULT 0
|
||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
|
||||
+#endif
|
||||
+
|
||||
/* Default is to use APCS-32 mode. */
|
||||
#undef TARGET_DEFAULT
|
||||
-#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
|
||||
+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
|
||||
|
||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
|
||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
|
||||
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS \
|
||||
- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
|
||||
+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
|
||||
|
||||
#define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
|
||||
|
||||
@@ -86,7 +100,7 @@
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
|
||||
-X \
|
||||
- %{mbig-endian:-EB}" \
|
||||
+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
|
||||
SUBTARGET_EXTRA_LINK_SPEC
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
diff -urN gcc-3.3.2.orig/gcc/config.gcc gcc-3.3.2/gcc/config.gcc
|
||||
--- gcc-3.3.2.orig/gcc/config.gcc 2003-10-01 21:07:01.000000000 +0200
|
||||
+++ gcc-3.3.2/gcc/config.gcc 2004-07-07 14:04:59.046716638 +0200
|
||||
@@ -699,6 +699,11 @@
|
||||
;;
|
||||
arm*-*-linux*) # ARM GNU/Linux with ELF
|
||||
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h"
|
||||
+ case $machine in
|
||||
+ arm*b-*)
|
||||
+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
|
||||
+ ;;
|
||||
+ esac
|
||||
tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
|
||||
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
|
||||
gnu_ld=yes
|
@ -1,44 +0,0 @@
|
||||
#
|
||||
# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
|
||||
#
|
||||
# Error:
|
||||
#
|
||||
# creating libintl.h
|
||||
# Configuring etc...
|
||||
# loading cache ../config.cache
|
||||
# checking for a BSD compatible install... (cached) /usr/bin/install -c
|
||||
# creating ./config.status
|
||||
# creating Makefile
|
||||
# trap: usage: trap [-lp] [[arg] signal_spec ...]
|
||||
#
|
||||
# Description:
|
||||
#
|
||||
# non-posix conform usage of trap causes bash >= 3.0 to fail
|
||||
# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
|
||||
#
|
||||
# Status:
|
||||
#
|
||||
# fixed in gcc >= 3.3.5
|
||||
# backport of gcc-3.3.5 fix
|
||||
#
|
||||
diff -ruN gcc-3.3.3-orig/configure gcc-3.3.3/configure
|
||||
--- gcc-3.3.3-orig/configure 2002-09-29 18:11:24.000000000 +0200
|
||||
+++ gcc-3.3.3/configure 2005-04-20 21:03:51.000000000 +0200
|
||||
@@ -697,7 +697,7 @@
|
||||
if test -f skip-this-dir; then
|
||||
# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
|
||||
# and reset the trap handler.
|
||||
- trap 0
|
||||
+ trap '' 0
|
||||
rm -rf Makefile* ${tmpdir}
|
||||
# Execute the final clean-up actions
|
||||
${config_shell} skip-this-dir
|
||||
@@ -1596,7 +1596,7 @@
|
||||
# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
|
||||
# and reset the trap handler.
|
||||
rm -rf ${tmpdir}
|
||||
-trap 0
|
||||
+trap '' 0
|
||||
|
||||
exit 0
|
||||
|
@ -1,65 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10392-1.c Sun Sep 14 14:28:24 2003
|
||||
@@ -0,0 +1,62 @@
|
||||
+/* PR optimization/10392
|
||||
+ * Reporter: marcus@mc.pp.se
|
||||
+ * Summary: [3.3/3.4 regression] [SH] optimizer generates faulty array indexing
|
||||
+ * Description:
|
||||
+ * The address calculation of an index operation on an array on the stack
|
||||
+ * can _under some conditions_ get messed up completely
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * Problem only happens with -O2 -m4, so it should only happen on sh4,
|
||||
+ * but what the heck, let's test other architectures, too.
|
||||
+ * Not marked as xfail since it's a regression.
|
||||
+*/
|
||||
+/* { dg-do run } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+/* { dg-options "-O2 -m4" { target sh4-*-* } } */
|
||||
+const char *dont_optimize_function_away;
|
||||
+
|
||||
+const char *use(const char *str)
|
||||
+{
|
||||
+ dont_optimize_function_away = str;
|
||||
+ if (str[0] != 'v')
|
||||
+ abort();
|
||||
+ if (str[1] < '1' || str[1] > '6')
|
||||
+ abort();
|
||||
+ if (str[2])
|
||||
+ abort();
|
||||
+ return str[2] ? "notused" : "v6";
|
||||
+}
|
||||
+
|
||||
+const char *func(char *a, char *b)
|
||||
+{
|
||||
+ char buf[128];
|
||||
+ unsigned char i;
|
||||
+ const char *result;
|
||||
+
|
||||
+ char *item[] = {
|
||||
+ "v1",
|
||||
+ "v2",
|
||||
+ };
|
||||
+
|
||||
+ buf[0] = 'v';
|
||||
+ buf[1] = '3';
|
||||
+ buf[2] = 0;
|
||||
+
|
||||
+ for (i = 0; i < 2; i++) {
|
||||
+ /* bug is: following line passes wild pointer to use() on sh4 -O2 */
|
||||
+ result = use(item[i]);
|
||||
+
|
||||
+ use(buf);
|
||||
+ use(a);
|
||||
+ use(b);
|
||||
+ result = use(result);
|
||||
+ }
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+int main()
|
||||
+{
|
||||
+ func("v4", "v5");
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
@ -1,46 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10412-1.c Sun Sep 14 16:15:21 2003
|
||||
@@ -0,0 +1,43 @@
|
||||
+/* PR target/10412
|
||||
+ * Reporter: shrinivasa@kpitcummins.com
|
||||
+ * Summary: Renesas SH - Incorrect code generation
|
||||
+ * Description:
|
||||
+ * When following code is compiled with
|
||||
+ * sh-elf-gcc -S -mhitachi -m2 -O2 bug1.c
|
||||
+ * generates an incorrect code.
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * Problem only happens with -mhitachi -m2. Not sure if I can give those
|
||||
+ * options for all sh targets. They work on sh4, though.
|
||||
+ * Not marked as xfail as it's a regression relative to hardhat 2.0 gcc-2.97.
|
||||
+*/
|
||||
+/* { dg-do run } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+int global_val;
|
||||
+
|
||||
+int func0(int x)
|
||||
+{
|
||||
+ global_val += x;
|
||||
+ return (x != 99);
|
||||
+}
|
||||
+
|
||||
+int func1(unsigned long addr)
|
||||
+{
|
||||
+ int err;
|
||||
+
|
||||
+ err = func0(addr);
|
||||
+ if (err)
|
||||
+ return (err);
|
||||
+
|
||||
+ err = func0(addr * 7); /* address of func0 is lost during multiplication -> probable SIGSEGV */
|
||||
+ return (err);
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ global_val = 0;
|
||||
+ global_val += func1(99);
|
||||
+ if (global_val != 99 * 8 + 1)
|
||||
+ abort();
|
||||
+ return 0;
|
||||
+}
|
@ -1,17 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10589-1.c Mon Sep 15 08:57:58 2003
|
||||
@@ -0,0 +1,14 @@
|
||||
+/* PR target/10589
|
||||
+ * Reporter: mathieu@thenesis.com
|
||||
+ * Summary: For Hitachi SH target, GCC crashes when both -fomit-frame-pointer and -mdalign options are specified
|
||||
+ * Keywords: ice-on-valid-code
|
||||
+ * Testcase by Kazu Hirata, tweaked by dank@kegel.com
|
||||
+ * Did not fail in Hard Hat 2.0 gcc-2.97, nor in dodes gcc-3.0.2, so this is a regression, so I'm not marking it xfail
|
||||
+ */
|
||||
+/* { dg-do compile { target sh*-*-* } } */
|
||||
+/* { dg-options "-fomit-frame-pointer -mdalign" } */
|
||||
+
|
||||
+int foo(int a, int b)
|
||||
+{
|
||||
+ return a / b;
|
||||
+}
|
@ -1,25 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11162-1.c Sun Sep 14 16:24:41 2003
|
||||
@@ -0,0 +1,22 @@
|
||||
+/*
|
||||
+ * PR optimization/11162
|
||||
+ * Reporter: Toshiyasu Morita <tm@kloo.net>
|
||||
+ * Summary: [3.4 Regression] [-fnew-ra] ICE compiling channel.i on sh
|
||||
+ * Keywords: ice-on-valid-code
|
||||
+ * Description:
|
||||
+ * [ICE] when channel.i from stress-1.17 is compiled with options:
|
||||
+ * -O2 -m4 -fnew-ra
|
||||
+ * ...
|
||||
+ * The CFG code gets confused by the addition of a USE insn after a sibcall.
|
||||
+ * Sibcalls are supposed to end the block (and the function!), so the fact
|
||||
+ * that we have an instruction following one (even if its fake) is confusing.
|
||||
+ *
|
||||
+ * testcase tweaked by dank@kegel.com
|
||||
+ */
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O2 -fnew-ra" } */
|
||||
+
|
||||
+int foo(char *p1)
|
||||
+{
|
||||
+ return bar(p1);
|
||||
+}
|
@ -1,39 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11587-1.c Mon Sep 15 08:46:00 2003
|
||||
@@ -0,0 +1,36 @@
|
||||
+/* PR optimization/11587
|
||||
+ * Reporter: Michael Eager <eager@mvista.com>
|
||||
+ * Summary: [3.3/3.4 Regression] SH ICE in reload_cse_simplify_operand, postreload.c
|
||||
+ * Keywords: ice-on-valid-code
|
||||
+ *
|
||||
+ * Note: a fix exists; see bugzilla
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * Not marked as xfail since it's a regression.
|
||||
+ */
|
||||
+
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O1" } */
|
||||
+int foo1(void);
|
||||
+int foo2();
|
||||
+int foo3();
|
||||
+
|
||||
+static int goo()
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ if (i <= 0)
|
||||
+ return i;
|
||||
+
|
||||
+ if (foo1() > 1) {
|
||||
+ i = foo2();
|
||||
+ if (i < 0)
|
||||
+ return i;
|
||||
+ if (i) {
|
||||
+ if (foo3())
|
||||
+ return 1;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+}
|
@ -1,26 +0,0 @@
|
||||
# See http://gcc.gnu.org/PR11608
|
||||
# Fixes following error when testing sh4 toolchain:
|
||||
#
|
||||
# Testing debug/20020327-1.c, -gstabs1
|
||||
# ...
|
||||
# FAIL: gcc.dg/debug/20020327-1.c (test for excess errors)
|
||||
# Excess errors:
|
||||
# /tmp/cc8dFF7Y.s: Assembler messages:
|
||||
# /tmp/cc8dFF7Y.s:66: Error: symbol `Letext' is already defined
|
||||
|
||||
Index: elf.h
|
||||
===================================================================
|
||||
RCS file: /cvs/gcc/gcc/gcc/config/sh/elf.h,v
|
||||
retrieving revision 1.32
|
||||
diff -u -p -r1.32 elf.h
|
||||
--- gcc/gcc/config/sh/elf.h.old 27 Sep 2003 04:48:28 -0000 1.32
|
||||
+++ gcc/gcc/config/sh/elf.h 2 Jan 2004 07:23:23 -0000
|
||||
@@ -95,7 +95,7 @@ while (0)
|
||||
#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
|
||||
do { \
|
||||
text_section (); \
|
||||
- fprintf ((FILE), "\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO); \
|
||||
+ asm_fprintf ((FILE), "\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO); \
|
||||
} while (0)
|
||||
|
||||
#undef STARTFILE_SPEC
|
@ -1,48 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c Sun Sep 14 14:26:33 2003
|
||||
@@ -0,0 +1,45 @@
|
||||
+/* PR optimization/11736
|
||||
+ * Reporter: marcus@mc.pp.se
|
||||
+ * Summary: Stackpointer messed up on SuperH
|
||||
+ * Keywords: wrong-code
|
||||
+ * Description:
|
||||
+ * When a function with 5 arguments is called in both branches of a
|
||||
+ * conditional, and only the last argument differs, the code to push that
|
||||
+ * last argument on the stack gets confused.
|
||||
+ * Space for the fifth argument is reserved on the stack by the
|
||||
+ * instruction I have marked as "A". However, if the else-branch is
|
||||
+ * taken the stackpointer is decremented _again_ at "B". This
|
||||
+ * decrementation is never restored, and it is only due to the
|
||||
+ * restoration of r15 from r14 that the function works at all. With
|
||||
+ * -fomit-frame-pointer it will crash.
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97
|
||||
+ * and dodes gcc-3.0.2
|
||||
+ */
|
||||
+
|
||||
+/* { dg-do run } */
|
||||
+/* { dg-options "-O1 -fomit-frame-pointer" } */
|
||||
+
|
||||
+int expected_e;
|
||||
+
|
||||
+void bar(int a, int b, int c, int d, int e)
|
||||
+{
|
||||
+ if (e != expected_e)
|
||||
+ abort();
|
||||
+}
|
||||
+
|
||||
+void foo(int a)
|
||||
+{
|
||||
+ if (a)
|
||||
+ bar(0, 0, 0, 0, 1);
|
||||
+ else
|
||||
+ bar(0, 0, 0, 0, 0); /* stack pointer decremented extra time here, causing segfault */
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ for (expected_e = 0; expected_e < 2; expected_e++)
|
||||
+ foo(expected_e);
|
||||
+ return 0;
|
||||
+}
|
@ -1,45 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11864-1.c Sun Sep 14 14:32:24 2003
|
||||
@@ -0,0 +1,42 @@
|
||||
+/* PR optimization/11864
|
||||
+ * Reporter: Kazumoto Kojima <kkojima@gcc.gnu.org>
|
||||
+ * Summary: [3.3/3.4 regression] miscompiles zero extension and test
|
||||
+ * Description:
|
||||
+ * gcc-3.3/3.4 -O2 for sh target may miscompile the combination of zero extension
|
||||
+ * and test if it's zero.
|
||||
+ *
|
||||
+ * Testcase tweaked by dank@kegel.com. Not marked as xfail because it's a regression.
|
||||
+ */
|
||||
+/* { dg-do run } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+extern void abort(void);
|
||||
+
|
||||
+int val = 0xff00;
|
||||
+
|
||||
+int f(void)
|
||||
+{
|
||||
+ return val;
|
||||
+}
|
||||
+
|
||||
+unsigned char a[1];
|
||||
+
|
||||
+void foo(void)
|
||||
+{
|
||||
+ a[0] = f() & 255;
|
||||
+
|
||||
+ if (!a[0])
|
||||
+ a[0] = f() & 255;
|
||||
+
|
||||
+ if (!a[0])
|
||||
+ a[0] = 1 + (f() & 127);
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ foo();
|
||||
+ if (!a[0])
|
||||
+ abort();
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
@ -1,85 +0,0 @@
|
||||
See http://gcc.gnu.org/PR12009
|
||||
|
||||
Fixes the following problems when testing a cross-compiler:
|
||||
|
||||
============================================
|
||||
Testing g++.dg/compat/abi/bitfield1,
|
||||
...
|
||||
Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-gli
|
||||
bc-2.2.5/build-gcc/gcc/testsuite/../g++ ...
|
||||
/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/gcc/test
|
||||
suite/g++.dg/compat/abi/bitfield1_main.C
|
||||
pid is 16028 -16028
|
||||
compiler exited with status 1
|
||||
output is:
|
||||
sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gc
|
||||
c-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libdl.so.2: ELF file data encoding
|
||||
not little-endian
|
||||
/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/te
|
||||
stsuite/../g++: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-
|
||||
linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libc.so.6: ELF file da
|
||||
ta encoding not little-endian
|
||||
|
||||
FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
|
||||
============================================
|
||||
|
||||
and
|
||||
|
||||
sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/powerpc-405-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
|
||||
|
||||
|
||||
|
||||
--- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old Thu Oct 17 17:22:57 2002
|
||||
+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp Mon Jul 14 10:59:19 2003
|
||||
@@ -42,11 +42,13 @@
|
||||
proc compat-fix-library-path { } {
|
||||
global ld_library_path
|
||||
|
||||
- # See comments in lib/g++.exp for why this is needed.
|
||||
- setenv LD_LIBRARY_PATH $ld_library_path
|
||||
- setenv SHLIB_PATH $ld_library_path
|
||||
- setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
- setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ if {![is_remote target]} {
|
||||
+ # See comments in lib/g++.exp for why this is needed.
|
||||
+ setenv LD_LIBRARY_PATH $ld_library_path
|
||||
+ setenv SHLIB_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ }
|
||||
}
|
||||
|
||||
#
|
||||
--- gcc-3.4-20030813/gcc/testsuite/lib/g++.exp.orig Tue Jun 17 18:56:45 2003
|
||||
+++ gcc-3.4-20030813/gcc/testsuite/lib/g++.exp Sun Aug 17 18:35:38 2003
|
||||
@@ -166,16 +182,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
|
||||
- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
|
||||
- # (for the 64-bit ABI). The right way to do this would be to modify
|
||||
- # unix.exp -- but that's not an option since it's part of DejaGNU
|
||||
- # proper, so we do it here. We really only need to do
|
||||
- # this on IRIX, but it shouldn't hurt to do it anywhere else.
|
||||
- setenv LD_LIBRARY_PATH $ld_library_path
|
||||
- setenv SHLIB_PATH $ld_library_path
|
||||
- setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
- setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ if {![is_remote target]} {
|
||||
+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
|
||||
+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
|
||||
+ # (for the 64-bit ABI). The right way to do this would be to modify
|
||||
+ # unix.exp -- but that's not an option since it's part of DejaGNU
|
||||
+ # proper, so we do it here. We really only need to do
|
||||
+ # this on IRIX, but it shouldn't hurt to do it anywhere else.
|
||||
+
|
||||
+ # Doing this causes us to be unable to run cross-compilers.
|
||||
+ setenv LD_LIBRARY_PATH $ld_library_path
|
||||
+ setenv SHLIB_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARYN32_PATH $ld_library_path
|
||||
+ setenv LD_LIBRARY64_PATH $ld_library_path
|
||||
+ }
|
||||
|
||||
return "$flags"
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
Adjusted for gcc-3.3-20040119
|
||||
|
||||
See http://gcc.gnu.org/PR12010
|
||||
|
||||
Without this patch, one gets both compile and link time errors in
|
||||
'make check' when configured for cross-compiling.
|
||||
|
||||
In particular, 'make check' on a cross-compiler fails with
|
||||
|
||||
/testsuite_flags: /testsuite_flags: No such file or directory
|
||||
while executing
|
||||
"exec sh ${odir_v3}/testsuite_flags --build-includes"
|
||||
(procedure "g++_include_flags" line 21)
|
||||
invoked from within
|
||||
"g++_include_flags [get_multilibs] "
|
||||
(procedure "g++_init" line 63)
|
||||
invoked from within
|
||||
"${tool}_init $test_file_name"
|
||||
(procedure "runtest" line 19)
|
||||
...
|
||||
make[1]: [check-g++] Error 1 (ignored)
|
||||
|
||||
--- gcc-3.3-20040119/gcc/testsuite/lib/g++.exp.orig 2004-01-25 17:56:24.000000000 -0800
|
||||
+++ gcc-3.3-20040119/gcc/testsuite/lib/g++.exp 2004-01-25 18:29:44.000000000 -0800
|
||||
@@ -72,6 +72,8 @@ proc g++_version { } {
|
||||
#
|
||||
proc g++_include_flags { paths } {
|
||||
global srcdir
|
||||
+ global objdir
|
||||
+ global target_triplet
|
||||
global HAVE_LIBSTDCXX_V3
|
||||
global TESTING_IN_BUILD_TREE
|
||||
|
||||
@@ -90,6 +92,20 @@ proc g++_include_flags { paths } {
|
||||
|
||||
if { ${HAVE_LIBSTDCXX_V3} } {
|
||||
set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
|
||||
+ # first assume no multilibs
|
||||
+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
|
||||
+ # assume multilib only one level deep
|
||||
+ set multisub [file tail $gccpath]
|
||||
+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $odir_v3 == "" } {
|
||||
+ error "Can't find libstdc++-v3"
|
||||
+ }
|
||||
append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
|
||||
} else {
|
||||
set odir_v2 [lookfor_file ${gccpath} libstdc++]
|
||||
|
||||
--- gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old Sun Jul 13 10:42:01 2003
|
||||
+++ gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Sun Jul 13 11:39:54 2003
|
||||
@@ -48,8 +48,23 @@
|
||||
global ld_library_path
|
||||
global original_ld_library_path
|
||||
global tool_root_dir
|
||||
+ global target_triplet
|
||||
|
||||
set blddir [lookfor_file [get_multilibs] libstdc++-v3]
|
||||
+ if { $blddir == "" } {
|
||||
+ set multilibs [get_multilibs]
|
||||
+ # FIXME: assume multilib only one level deep
|
||||
+ set multisub [file tail $multilibs]
|
||||
+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
|
||||
+ set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $blddir == "" } {
|
||||
+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
|
||||
+ set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
|
||||
+ }
|
||||
+ if { $blddir == "" } {
|
||||
+ error "Can't find libstdc++-v3"
|
||||
+ }
|
||||
|
||||
# By default, we assume we want to run program images.
|
||||
global dg-do-what-default
|
@ -1,19 +0,0 @@
|
||||
See http://gcc.gnu.org/PR13250
|
||||
Fixes bad code generated when compiling SHA256 for SH processor
|
||||
|
||||
===================================================================
|
||||
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.md,v
|
||||
retrieving revision 1.171
|
||||
retrieving revision 1.172
|
||||
diff -u -r1.171 -r1.172
|
||||
--- gcc/gcc/config/sh/sh.md 2004/05/10 23:25:13 1.171
|
||||
+++ gcc/gcc/config/sh/sh.md 2004/05/28 05:47:36 1.172
|
||||
@@ -2194,7 +2194,7 @@
|
||||
parts[0] = gen_reg_rtx (SImode);
|
||||
parts[1] = gen_reg_rtx (SImode);
|
||||
emit_insn (gen_rotlsi3_16 (parts[2-choice], operands[1]));
|
||||
- parts[choice-1] = operands[1];
|
||||
+ emit_move_insn (parts[choice-1], operands[1]);
|
||||
emit_insn (gen_ashlsi3 (parts[0], parts[0], GEN_INT (8)));
|
||||
emit_insn (gen_lshrsi3 (parts[1], parts[1], GEN_INT (8)));
|
||||
emit_insn (gen_iorsi3 (operands[0], parts[0], parts[1]));
|
@ -1,246 +0,0 @@
|
||||
Date: Fri, 06 Feb 2004 12:35:58 +0900
|
||||
From: SUGIOKA Toshinobu <sugioka@itonet.co.jp>
|
||||
Subject: [linux-sh:03150] Re: gcc 3.3 optimisation problem
|
||||
To: linux-sh@m17n.org
|
||||
Message-Id: <4.2.0.58.J.20040206122503.04fe3058@router.itonet.co.jp>
|
||||
List-Help: <mailto:linux-sh-ctl@m17n.org?body=help>
|
||||
List-Id: linux-sh.m17n.org
|
||||
|
||||
At 19:40 03/12/01 +0000, Stuart Menefy <stuart.menefy@st.com> wrote:
|
||||
>On Sat, 29 Nov 2003 20:19:08 +0900 kkojima@rr.iij4u.or.jp wrote:
|
||||
>
|
||||
>> Dan Kegel <dank@kegel.com> wrote:
|
||||
>> > Stuart Menefy wrote:
|
||||
>> >> I've just been trying to put together a gcc 3.3.2 based toolchain, and
|
||||
>> >> appear to be hitting a gcc optimisation bug. I was just wondering if
|
||||
>> >> anyone else had seen anything similar.
|
||||
>> >>
|
||||
>> >> The problem is seen when building the kernel, in the function
|
||||
>> >> root_nfs_parse_addr(). I've extracted this into a small stand alone
|
||||
>> >> program which demonstrates the problem.
|
||||
>> >
|
||||
>> > Excellent work. I haven't seen anything like this (doesn't mean much)
|
||||
>> > and the sh-specific optimization bugs in the gcc bug database don't look
|
||||
>> > similar. I think you should submit this as a bug report at
|
||||
>> > http://gcc.gnu.org/bugzilla/
|
||||
>> > It would be good if you could make your test case call abort() if
|
||||
>> > the problem is present, so the test case can be automated.
|
||||
>>
|
||||
>> Indeed. It'd be very nice to create a gcc PR for this issue.
|
||||
>
|
||||
>OK, I've done that. PR 13260.
|
||||
|
||||
PR 13260 was fixed by amylaar@gcc.gnu.org at 2003-12-04 20:10:29 on mainline(gcc-3.4).
|
||||
I have back-ported that patch to gcc-3.3.3 and seems fine for me.
|
||||
|
||||
* sh-protos.h (sh_expand_t_scc): Declare.
|
||||
* sh.h (PREDICATE_CODES): Add cmpsi_operand.
|
||||
* sh.c (cmpsi_operand, sh_expand_t_scc): New functions.
|
||||
* sh.md (cmpsi): Use cmpsi_operand. If T_REG is compared to
|
||||
something that is not a CONST_INT, copy it into a pseudo register.
|
||||
(subc): Fix description of new T value.
|
||||
(slt, sgt, sge, sgtu): Don't clobber T after rtl generation is over.
|
||||
(sltu, sleu, sgeu): Likewise.
|
||||
(seq, sne): Likewise. Use sh_expand_t_scc.
|
||||
|
||||
diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh-protos.h gcc-3.3-20040126/gcc/config/sh/sh-protos.h
|
||||
--- gcc-3.3-20040126-1/gcc/config/sh/sh-protos.h Tue Jan 13 02:03:24 2004
|
||||
+++ gcc-3.3-20040126/gcc/config/sh/sh-protos.h Fri Jan 30 17:54:04 2004
|
||||
@@ -102,6 +102,7 @@
|
||||
extern int sh_can_redirect_branch PARAMS ((rtx, rtx));
|
||||
extern void sh_expand_unop_v2sf PARAMS ((enum rtx_code, rtx, rtx));
|
||||
extern void sh_expand_binop_v2sf PARAMS ((enum rtx_code, rtx, rtx, rtx));
|
||||
+extern int sh_expand_t_scc (enum rtx_code code, rtx target);
|
||||
#ifdef TREE_CODE
|
||||
extern void sh_va_start PARAMS ((tree, rtx));
|
||||
extern rtx sh_va_arg PARAMS ((tree, tree));
|
||||
diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.c gcc-3.3-20040126/gcc/config/sh/sh.c
|
||||
--- gcc-3.3-20040126-1/gcc/config/sh/sh.c Thu Jan 15 03:11:36 2004
|
||||
+++ gcc-3.3-20040126/gcc/config/sh/sh.c Fri Jan 30 17:53:58 2004
|
||||
@@ -7870,6 +7870,15 @@
|
||||
return register_operand (op, mode);
|
||||
}
|
||||
|
||||
+int
|
||||
+cmpsi_operand (rtx op, enum machine_mode mode)
|
||||
+{
|
||||
+ if (GET_CODE (op) == REG && REGNO (op) == T_REG
|
||||
+ && GET_MODE (op) == SImode)
|
||||
+ return 1;
|
||||
+ return arith_operand (op, mode);
|
||||
+}
|
||||
+
|
||||
/* INSN is an sfunc; return the rtx that describes the address used. */
|
||||
static rtx
|
||||
extract_sfunc_addr (rtx insn)
|
||||
@@ -7917,4 +7926,33 @@
|
||||
abort ();
|
||||
}
|
||||
|
||||
+int
|
||||
+sh_expand_t_scc (enum rtx_code code, rtx target)
|
||||
+{
|
||||
+ rtx result = target;
|
||||
+ HOST_WIDE_INT val;
|
||||
+
|
||||
+ if (GET_CODE (sh_compare_op0) != REG || REGNO (sh_compare_op0) != T_REG
|
||||
+ || GET_CODE (sh_compare_op1) != CONST_INT)
|
||||
+ return 0;
|
||||
+ if (GET_CODE (result) != REG)
|
||||
+ result = gen_reg_rtx (SImode);
|
||||
+ val = INTVAL (sh_compare_op1);
|
||||
+ if ((code == EQ && val == 1) || (code == NE && val == 0))
|
||||
+ emit_insn (gen_movt (result));
|
||||
+ else if ((code == EQ && val == 0) || (code == NE && val == 1))
|
||||
+ {
|
||||
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, result));
|
||||
+ emit_insn (gen_subc (result, result, result));
|
||||
+ emit_insn (gen_addsi3 (result, result, GEN_INT (1)));
|
||||
+ }
|
||||
+ else if (code == EQ || code == NE)
|
||||
+ emit_insn (gen_move_insn (result, GEN_INT (code == NE)));
|
||||
+ else
|
||||
+ return 0;
|
||||
+ if (result != target)
|
||||
+ emit_move_insn (target, result);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
#include "gt-sh.h"
|
||||
diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.h gcc-3.3-20040126/gcc/config/sh/sh.h
|
||||
--- gcc-3.3-20040126-1/gcc/config/sh/sh.h Wed Apr 16 02:06:09 2003
|
||||
+++ gcc-3.3-20040126/gcc/config/sh/sh.h Fri Jan 30 17:53:51 2004
|
||||
@@ -3231,6 +3231,7 @@
|
||||
{"arith_reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_VECTOR}}, \
|
||||
{"binary_float_operator", {PLUS, MINUS, MULT, DIV}}, \
|
||||
{"binary_logical_operator", {AND, IOR, XOR}}, \
|
||||
+ {"cmpsi_operand", {SUBREG, REG, CONST_INT}}, \
|
||||
{"commutative_float_operator", {PLUS, MULT}}, \
|
||||
{"equality_comparison_operator", {EQ,NE}}, \
|
||||
{"extend_reg_operand", {SUBREG, REG, TRUNCATE}}, \
|
||||
diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.md gcc-3.3-20040126/gcc/config/sh/sh.md
|
||||
--- gcc-3.3-20040126-1/gcc/config/sh/sh.md Tue Jan 13 02:03:25 2004
|
||||
+++ gcc-3.3-20040126/gcc/config/sh/sh.md Fri Jan 30 17:54:20 2004
|
||||
@@ -685,11 +685,14 @@
|
||||
|
||||
(define_expand "cmpsi"
|
||||
[(set (reg:SI T_REG)
|
||||
- (compare (match_operand:SI 0 "arith_operand" "")
|
||||
+ (compare (match_operand:SI 0 "cmpsi_operand" "")
|
||||
(match_operand:SI 1 "arith_operand" "")))]
|
||||
"TARGET_SH1"
|
||||
"
|
||||
{
|
||||
+ if (GET_CODE (operands[0]) == REG && REGNO (operands[0]) == T_REG
|
||||
+ && GET_CODE (operands[1]) != CONST_INT)
|
||||
+ operands[0] = copy_to_mode_reg (SImode, operands[0]);
|
||||
sh_compare_op0 = operands[0];
|
||||
sh_compare_op1 = operands[1];
|
||||
DONE;
|
||||
@@ -1147,7 +1150,9 @@
|
||||
(match_operand:SI 2 "arith_reg_operand" "r"))
|
||||
(reg:SI T_REG)))
|
||||
(set (reg:SI T_REG)
|
||||
- (gtu:SI (minus:SI (match_dup 1) (match_dup 2)) (match_dup 1)))]
|
||||
+ (gtu:SI (minus:SI (minus:SI (match_dup 1) (match_dup 2))
|
||||
+ (reg:SI T_REG))
|
||||
+ (match_dup 1)))]
|
||||
"TARGET_SH1"
|
||||
"subc %2,%0"
|
||||
[(set_attr "type" "arith")])
|
||||
@@ -7223,6 +7228,10 @@
|
||||
}
|
||||
DONE;
|
||||
}
|
||||
+ if (sh_expand_t_scc (EQ, operands[0]))
|
||||
+ DONE;
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
operands[1] = prepare_scc_operands (EQ);
|
||||
}")
|
||||
|
||||
@@ -7269,6 +7278,8 @@
|
||||
}
|
||||
DONE;
|
||||
}
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
operands[1] = prepare_scc_operands (LT);
|
||||
}")
|
||||
|
||||
@@ -7371,6 +7382,8 @@
|
||||
}
|
||||
DONE;
|
||||
}
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
operands[1] = prepare_scc_operands (GT);
|
||||
}")
|
||||
|
||||
@@ -7423,6 +7436,8 @@
|
||||
DONE;
|
||||
}
|
||||
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
if (GET_MODE_CLASS (GET_MODE (sh_compare_op0)) == MODE_FLOAT)
|
||||
{
|
||||
if (TARGET_IEEE)
|
||||
@@ -7462,6 +7477,8 @@
|
||||
sh_compare_op0, sh_compare_op1));
|
||||
DONE;
|
||||
}
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
operands[1] = prepare_scc_operands (GTU);
|
||||
}")
|
||||
|
||||
@@ -7486,6 +7503,8 @@
|
||||
sh_compare_op1, sh_compare_op0));
|
||||
DONE;
|
||||
}
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
operands[1] = prepare_scc_operands (LTU);
|
||||
}")
|
||||
|
||||
@@ -7515,6 +7534,8 @@
|
||||
|
||||
DONE;
|
||||
}
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
operands[1] = prepare_scc_operands (LEU);
|
||||
}")
|
||||
|
||||
@@ -7545,6 +7566,8 @@
|
||||
DONE;
|
||||
}
|
||||
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
operands[1] = prepare_scc_operands (GEU);
|
||||
}")
|
||||
|
||||
@@ -7592,8 +7615,12 @@
|
||||
DONE;
|
||||
}
|
||||
|
||||
- operands[1] = prepare_scc_operands (EQ);
|
||||
- operands[2] = gen_reg_rtx (SImode);
|
||||
+ if (sh_expand_t_scc (NE, operands[0]))
|
||||
+ DONE;
|
||||
+ if (! rtx_equal_function_value_matters)
|
||||
+ FAIL;
|
||||
+ operands[1] = prepare_scc_operands (EQ);
|
||||
+ operands[2] = gen_reg_rtx (SImode);
|
||||
}")
|
||||
|
||||
(define_expand "sunordered"
|
||||
|
||||
----
|
||||
SUGIOKA Toshinobu
|
||||
|
||||
|
||||
|
||||
|
@ -1,56 +0,0 @@
|
||||
See http://gcc.gnu.org/PR13260
|
||||
|
||||
/cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c,v --> standard output
|
||||
revision 1.1
|
||||
--- - 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
|
||||
@@ -0,0 +1,49 @@
|
||||
+/* PR optimization/13260 */
|
||||
+
|
||||
+#include <string.h>
|
||||
+
|
||||
+typedef unsigned long u32;
|
||||
+
|
||||
+u32 in_aton(const char* x)
|
||||
+{
|
||||
+ return 0x0a0b0c0d;
|
||||
+}
|
||||
+
|
||||
+u32 root_nfs_parse_addr(char *name)
|
||||
+{
|
||||
+ u32 addr;
|
||||
+ int octets = 0;
|
||||
+ char *cp, *cq;
|
||||
+
|
||||
+ cp = cq = name;
|
||||
+ while (octets < 4) {
|
||||
+ while (*cp >= '0' && *cp <= '9')
|
||||
+ cp++;
|
||||
+ if (cp == cq || cp - cq > 3)
|
||||
+ break;
|
||||
+ if (*cp == '.' || octets == 3)
|
||||
+ octets++;
|
||||
+ if (octets < 4)
|
||||
+ cp++;
|
||||
+ cq = cp;
|
||||
+ }
|
||||
+
|
||||
+ if (octets == 4 && (*cp == ':' || *cp == '\0')) {
|
||||
+ if (*cp == ':')
|
||||
+ *cp++ = '\0';
|
||||
+ addr = in_aton(name);
|
||||
+ strcpy(name, cp);
|
||||
+ } else
|
||||
+ addr = (-1);
|
||||
+
|
||||
+ return addr;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main()
|
||||
+{
|
||||
+ static char addr[] = "10.11.12.13:/hello";
|
||||
+ u32 result = root_nfs_parse_addr(addr);
|
||||
+ if (result != 0x0a0b0c0d) { abort(); }
|
||||
+ return 0;
|
||||
+}
|
@ -1,25 +0,0 @@
|
||||
See http://gcc.gnu.org/PR15089
|
||||
"In some cases the specified register for a local variable meant to be
|
||||
used with inline assembly code is not respected. This breaks code
|
||||
relying on this feature to implement non-standard calling convension."
|
||||
|
||||
This fix is probably needed to properly implement linux syscalls in some architectures.
|
||||
|
||||
First added to crosstool by Jamie Hicks, see
|
||||
http://www.handhelds.org/hypermail/kernel-discuss/current/0066.html
|
||||
|
||||
Index: gcc/loop.c
|
||||
===================================================================
|
||||
RCS file: /cvs/gcc/gcc/gcc/loop.c,v
|
||||
retrieving revision 1.488.2.3
|
||||
diff -u -r1.488.2.3 loop.c
|
||||
--- gcc-old/gcc/loop.c 14 Feb 2004 14:46:03 -0000 1.488.2.3
|
||||
+++ gcc-new/gcc/loop.c 28 Apr 2004 22:02:53 -0000
|
||||
@@ -929,6 +929,7 @@
|
||||
|| (! (GET_CODE (SET_SRC (set)) == REG
|
||||
&& (REGNO (SET_SRC (set))
|
||||
< FIRST_PSEUDO_REGISTER))))
|
||||
+ && regno >= FIRST_PSEUDO_REGISTER
|
||||
/* This test is not redundant; SET_SRC (set) might be
|
||||
a call-clobbered register and the life of REGNO
|
||||
might span a call. */
|
@ -1,43 +0,0 @@
|
||||
--- /dev/null Sat Dec 14 13:56:51 2002
|
||||
+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr9365-1.c Sun Sep 14 09:34:37 2003
|
||||
@@ -0,0 +1,40 @@
|
||||
+/* PR target/9365
|
||||
+ * Origin: marcus@mc.pp.se
|
||||
+ * Testcase tweaked by dank@kegel.com
|
||||
+ * [3.3 regression] [SH] segfault in gen_far_branch (config/sh/sh.c)
|
||||
+ * ice-on-valid-code
|
||||
+ * Not marked as xfail since it's a regression
|
||||
+*/
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O2 -fomit-frame-pointer" } */
|
||||
+
|
||||
+
|
||||
+void foo(int n, int *p)
|
||||
+{
|
||||
+ switch(n) {
|
||||
+ case 100: case 110: case 120: case 130: case 140:
|
||||
+ case 200: case 210: case 220: case 230: case 240:
|
||||
+ case 300: case 310: case 320: case 330: case 340:
|
||||
+ case 400: case 410: case 420: case 430: case 440:
|
||||
+ case 500: case 510: case 520: case 530: case 540:
|
||||
+ case 600: case 610: case 620: case 630: case 640:
|
||||
+ case 700: case 710: case 720: case 730: case 740:
|
||||
+ case 800: case 810: case 820: case 830: case 840:
|
||||
+ case 900: case 910: case 920: case 930: case 940:
|
||||
+ break;
|
||||
+ default:
|
||||
+ *p = n;
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char **argv)
|
||||
+{
|
||||
+ int p;
|
||||
+
|
||||
+ (void) argv;
|
||||
+
|
||||
+ foo(argc, &p);
|
||||
+
|
||||
+ return p;
|
||||
+}
|
@ -1,610 +0,0 @@
|
||||
Fixes the problem
|
||||
[ libdemo.so and main.o both use assignment on structures ]
|
||||
$ sh4-unknown-linux-gnu-gcc libdemo.so main.o
|
||||
sh4-unknown-linux-gnu/bin/ld: warning: type and size of dynamic symbol `__movstr_i4_even' are not defined
|
||||
[ resulting app links, but crashes at runtime ]
|
||||
See testcase at http://tsukuba.m17n.org/linux-sh/ml/linux-sh/2003-11/msg00016.html
|
||||
|
||||
Patch was posted as http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01641.html
|
||||
and is in cvs as http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sh/lib1funcs.asm.diff?r1=1.29.4.1&r2=1.29.4.2
|
||||
|
||||
but see also sh-libgcc-hidden.patch (part of gcc-3.3.3 as of 20040119 or so)
|
||||
|
||||
===================================================================
|
||||
|
||||
--- gcc/gcc/config/sh/lib1funcs.asm 2002/09/20 01:29:21 1.29.4.1
|
||||
+++ gcc/gcc/config/sh/lib1funcs.asm 2003/11/18 12:27:31
|
||||
@@ -38,9 +38,14 @@
|
||||
amylaar@cygnus.com */
|
||||
|
||||
#ifdef __ELF__
|
||||
-#define LOCAL(X) .L_##X
|
||||
-#else
|
||||
-#define LOCAL(X) L_##X
|
||||
+#define LOCAL(X) .L_##X
|
||||
+#define FUNC(X) .type X,@function
|
||||
+#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
|
||||
+#define ENDFUNC(X) ENDFUNC0(X)
|
||||
+#else
|
||||
+#define LOCAL(X) L_##X
|
||||
+#define FUNC(X)
|
||||
+#define ENDFUNC(X)
|
||||
#endif
|
||||
|
||||
#define CONCAT(A,B) A##B
|
||||
@@ -87,6 +92,40 @@
|
||||
.global GLOBAL(ashiftrt_r4_31)
|
||||
.global GLOBAL(ashiftrt_r4_32)
|
||||
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_0))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_1))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_2))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_3))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_4))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_5))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_6))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_7))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_8))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_9))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_10))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_11))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_12))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_13))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_14))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_15))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_16))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_17))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_18))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_19))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_20))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_21))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_22))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_23))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_24))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_25))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_26))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_27))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_28))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_29))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_30))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_31))
|
||||
+ FUNC(GLOBAL(ashiftrt_r4_32))
|
||||
+
|
||||
.align 1
|
||||
GLOBAL(ashiftrt_r4_32):
|
||||
GLOBAL(ashiftrt_r4_31):
|
||||
@@ -166,6 +205,40 @@
|
||||
GLOBAL(ashiftrt_r4_0):
|
||||
rts
|
||||
nop
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_0))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_1))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_2))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_3))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_4))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_5))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_6))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_7))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_8))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_9))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_10))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_11))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_12))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_13))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_14))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_15))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_16))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_17))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_18))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_19))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_20))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_21))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_22))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_23))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_24))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_25))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_26))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_27))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_28))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_29))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_30))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_31))
|
||||
+ ENDFUNC(GLOBAL(ashiftrt_r4_32))
|
||||
#endif
|
||||
|
||||
#ifdef L_ashiftrt_n
|
||||
@@ -188,6 +261,7 @@
|
||||
!
|
||||
|
||||
.global GLOBAL(ashrsi3)
|
||||
+ FUNC(GLOBAL(ashrsi3))
|
||||
.align 2
|
||||
GLOBAL(ashrsi3):
|
||||
mov #31,r0
|
||||
@@ -315,6 +389,7 @@
|
||||
rts
|
||||
nop
|
||||
|
||||
+ ENDFUNC(GLOBAL(ashrsi3))
|
||||
#endif
|
||||
|
||||
#ifdef L_ashiftlt
|
||||
@@ -336,6 +411,7 @@
|
||||
! (none)
|
||||
!
|
||||
.global GLOBAL(ashlsi3)
|
||||
+ FUNC(GLOBAL(ashlsi3))
|
||||
.align 2
|
||||
GLOBAL(ashlsi3):
|
||||
mov #31,r0
|
||||
@@ -472,6 +548,7 @@
|
||||
rts
|
||||
nop
|
||||
|
||||
+ ENDFUNC(GLOBAL(ashlsi3))
|
||||
#endif
|
||||
|
||||
#ifdef L_lshiftrt
|
||||
@@ -493,6 +570,7 @@
|
||||
! (none)
|
||||
!
|
||||
.global GLOBAL(lshrsi3)
|
||||
+ FUNC(GLOBAL(lshrsi3))
|
||||
.align 2
|
||||
GLOBAL(lshrsi3):
|
||||
mov #31,r0
|
||||
@@ -629,6 +707,7 @@
|
||||
rts
|
||||
nop
|
||||
|
||||
+ ENDFUNC(GLOBAL(lshrsi3))
|
||||
#endif
|
||||
|
||||
#ifdef L_movstr
|
||||
@@ -645,76 +724,113 @@
|
||||
add #64,r4
|
||||
.align 4
|
||||
.global GLOBAL(movstrSI64)
|
||||
+ FUNC(GLOBAL(movstrSI64))
|
||||
GLOBAL(movstrSI64):
|
||||
mov.l @(60,r5),r0
|
||||
mov.l r0,@(60,r4)
|
||||
.global GLOBAL(movstrSI60)
|
||||
+ FUNC(GLOBAL(movstrSI60))
|
||||
GLOBAL(movstrSI60):
|
||||
mov.l @(56,r5),r0
|
||||
mov.l r0,@(56,r4)
|
||||
.global GLOBAL(movstrSI56)
|
||||
+ FUNC(GLOBAL(movstrSI56))
|
||||
GLOBAL(movstrSI56):
|
||||
mov.l @(52,r5),r0
|
||||
mov.l r0,@(52,r4)
|
||||
.global GLOBAL(movstrSI52)
|
||||
+ FUNC(GLOBAL(movstrSI52))
|
||||
GLOBAL(movstrSI52):
|
||||
mov.l @(48,r5),r0
|
||||
mov.l r0,@(48,r4)
|
||||
.global GLOBAL(movstrSI48)
|
||||
+ FUNC(GLOBAL(movstrSI48))
|
||||
GLOBAL(movstrSI48):
|
||||
mov.l @(44,r5),r0
|
||||
mov.l r0,@(44,r4)
|
||||
.global GLOBAL(movstrSI44)
|
||||
+ FUNC(GLOBAL(movstrSI44))
|
||||
GLOBAL(movstrSI44):
|
||||
mov.l @(40,r5),r0
|
||||
mov.l r0,@(40,r4)
|
||||
.global GLOBAL(movstrSI40)
|
||||
+ FUNC(GLOBAL(movstrSI40))
|
||||
GLOBAL(movstrSI40):
|
||||
mov.l @(36,r5),r0
|
||||
mov.l r0,@(36,r4)
|
||||
.global GLOBAL(movstrSI36)
|
||||
+ FUNC(GLOBAL(movstrSI36))
|
||||
GLOBAL(movstrSI36):
|
||||
mov.l @(32,r5),r0
|
||||
mov.l r0,@(32,r4)
|
||||
.global GLOBAL(movstrSI32)
|
||||
+ FUNC(GLOBAL(movstrSI32))
|
||||
GLOBAL(movstrSI32):
|
||||
mov.l @(28,r5),r0
|
||||
mov.l r0,@(28,r4)
|
||||
.global GLOBAL(movstrSI28)
|
||||
+ FUNC(GLOBAL(movstrSI28))
|
||||
GLOBAL(movstrSI28):
|
||||
mov.l @(24,r5),r0
|
||||
mov.l r0,@(24,r4)
|
||||
.global GLOBAL(movstrSI24)
|
||||
+ FUNC(GLOBAL(movstrSI24))
|
||||
GLOBAL(movstrSI24):
|
||||
mov.l @(20,r5),r0
|
||||
mov.l r0,@(20,r4)
|
||||
.global GLOBAL(movstrSI20)
|
||||
+ FUNC(GLOBAL(movstrSI20))
|
||||
GLOBAL(movstrSI20):
|
||||
mov.l @(16,r5),r0
|
||||
mov.l r0,@(16,r4)
|
||||
.global GLOBAL(movstrSI16)
|
||||
+ FUNC(GLOBAL(movstrSI16))
|
||||
GLOBAL(movstrSI16):
|
||||
mov.l @(12,r5),r0
|
||||
mov.l r0,@(12,r4)
|
||||
.global GLOBAL(movstrSI12)
|
||||
+ FUNC(GLOBAL(movstrSI12))
|
||||
GLOBAL(movstrSI12):
|
||||
mov.l @(8,r5),r0
|
||||
mov.l r0,@(8,r4)
|
||||
.global GLOBAL(movstrSI8)
|
||||
+ FUNC(GLOBAL(movstrSI8))
|
||||
GLOBAL(movstrSI8):
|
||||
mov.l @(4,r5),r0
|
||||
mov.l r0,@(4,r4)
|
||||
.global GLOBAL(movstrSI4)
|
||||
+ FUNC(GLOBAL(movstrSI4))
|
||||
GLOBAL(movstrSI4):
|
||||
mov.l @(0,r5),r0
|
||||
mov.l r0,@(0,r4)
|
||||
+ .global GLOBAL(movstrSI0)
|
||||
+ FUNC(GLOBAL(movstrSI0))
|
||||
GLOBAL(movstrSI0):
|
||||
rts
|
||||
nop
|
||||
|
||||
+ ENDFUNC(GLOBAL(movstrSI64))
|
||||
+ ENDFUNC(GLOBAL(movstrSI60))
|
||||
+ ENDFUNC(GLOBAL(movstrSI56))
|
||||
+ ENDFUNC(GLOBAL(movstrSI52))
|
||||
+ ENDFUNC(GLOBAL(movstrSI48))
|
||||
+ ENDFUNC(GLOBAL(movstrSI44))
|
||||
+ ENDFUNC(GLOBAL(movstrSI40))
|
||||
+ ENDFUNC(GLOBAL(movstrSI36))
|
||||
+ ENDFUNC(GLOBAL(movstrSI32))
|
||||
+ ENDFUNC(GLOBAL(movstrSI28))
|
||||
+ ENDFUNC(GLOBAL(movstrSI24))
|
||||
+ ENDFUNC(GLOBAL(movstrSI20))
|
||||
+ ENDFUNC(GLOBAL(movstrSI16))
|
||||
+ ENDFUNC(GLOBAL(movstrSI12))
|
||||
+ ENDFUNC(GLOBAL(movstrSI8))
|
||||
+ ENDFUNC(GLOBAL(movstrSI4))
|
||||
+ ENDFUNC(GLOBAL(movstrSI0))
|
||||
+
|
||||
.align 4
|
||||
|
||||
.global GLOBAL(movstr)
|
||||
+ FUNC(GLOBAL(movstr))
|
||||
GLOBAL(movstr):
|
||||
mov.l @(60,r5),r0
|
||||
mov.l r0,@(60,r4)
|
||||
@@ -771,6 +887,8 @@
|
||||
add #64,r5
|
||||
bra GLOBAL(movstr)
|
||||
add #64,r4
|
||||
+
|
||||
+ FUNC(GLOBAL(movstr))
|
||||
#endif
|
||||
|
||||
#ifdef L_movstr_i4
|
||||
@@ -779,6 +897,10 @@
|
||||
.global GLOBAL(movstr_i4_odd)
|
||||
.global GLOBAL(movstrSI12_i4)
|
||||
|
||||
+ FUNC(GLOBAL(movstr_i4_even))
|
||||
+ FUNC(GLOBAL(movstr_i4_odd))
|
||||
+ FUNC(GLOBAL(movstrSI12_i4))
|
||||
+
|
||||
.p2align 5
|
||||
L_movstr_2mod4_end:
|
||||
mov.l r0,@(16,r4)
|
||||
@@ -787,6 +909,11 @@
|
||||
|
||||
.p2align 2
|
||||
|
||||
+GLOBAL(movstr_i4_even):
|
||||
+ mov.l @r5+,r0
|
||||
+ bra L_movstr_start_even
|
||||
+ mov.l @r5+,r1
|
||||
+
|
||||
GLOBAL(movstr_i4_odd):
|
||||
mov.l @r5+,r1
|
||||
add #-4,r4
|
||||
@@ -813,10 +940,8 @@
|
||||
rts
|
||||
mov.l r3,@(12,r4)
|
||||
|
||||
-GLOBAL(movstr_i4_even):
|
||||
- mov.l @r5+,r0
|
||||
- bra L_movstr_start_even
|
||||
- mov.l @r5+,r1
|
||||
+ ENDFUNC(GLOBAL(movstr_i4_even))
|
||||
+ ENDFUNC(GLOBAL(movstr_i4_odd))
|
||||
|
||||
.p2align 4
|
||||
GLOBAL(movstrSI12_i4):
|
||||
@@ -827,12 +952,15 @@
|
||||
mov.l r1,@(4,r4)
|
||||
rts
|
||||
mov.l r2,@(8,r4)
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(movstrSI12_i4))
|
||||
#endif
|
||||
|
||||
#ifdef L_mulsi3
|
||||
|
||||
|
||||
.global GLOBAL(mulsi3)
|
||||
+ FUNC(GLOBAL(mulsi3))
|
||||
|
||||
! r4 = aabb
|
||||
! r5 = ccdd
|
||||
@@ -865,7 +993,7 @@
|
||||
rts
|
||||
add r2,r0
|
||||
|
||||
-
|
||||
+ FUNC(GLOBAL(mulsi3))
|
||||
#endif
|
||||
#endif /* ! __SH5__ */
|
||||
#ifdef L_sdivsi3_i4
|
||||
@@ -875,6 +1003,7 @@
|
||||
!! args in r4 and r5, result in fpul, clobber dr0, dr2
|
||||
|
||||
.global GLOBAL(sdivsi3_i4)
|
||||
+ FUNC(GLOBAL(sdivsi3_i4))
|
||||
GLOBAL(sdivsi3_i4):
|
||||
lds r4,fpul
|
||||
float fpul,dr0
|
||||
@@ -884,6 +1013,7 @@
|
||||
rts
|
||||
ftrc dr0,fpul
|
||||
|
||||
+ ENDFUNC(GLOBAL(sdivsi3_i4))
|
||||
#elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
|
||||
!! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
|
||||
|
||||
@@ -892,6 +1022,7 @@
|
||||
.mode SHcompact
|
||||
#endif
|
||||
.global GLOBAL(sdivsi3_i4)
|
||||
+ FUNC(GLOBAL(sdivsi3_i4))
|
||||
GLOBAL(sdivsi3_i4):
|
||||
sts.l fpscr,@-r15
|
||||
mov #8,r2
|
||||
@@ -906,6 +1037,7 @@
|
||||
rts
|
||||
lds.l @r15+,fpscr
|
||||
|
||||
+ ENDFUNC(GLOBAL(sdivsi3_i4))
|
||||
#endif /* ! __SH5__ || __SH5__ == 32 */
|
||||
#endif /* ! __SH4__ */
|
||||
#endif
|
||||
@@ -920,9 +1052,10 @@
|
||||
!!
|
||||
!!
|
||||
|
||||
-!! args in r4 and r5, result in r0 clobber r1,r2,r3
|
||||
+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
|
||||
|
||||
.global GLOBAL(sdivsi3)
|
||||
+ FUNC(GLOBAL(sdivsi3))
|
||||
#if __SHMEDIA__
|
||||
#if __SH5__ == 32
|
||||
.section .text..SHmedia32,"ax"
|
||||
@@ -1166,6 +1299,7 @@
|
||||
div0: rts
|
||||
mov #0,r0
|
||||
|
||||
+ ENDFUNC(GLOBAL(sdivsi3))
|
||||
#endif /* ! __SHMEDIA__ */
|
||||
#endif /* ! __SH4__ */
|
||||
#endif
|
||||
@@ -1174,9 +1308,11 @@
|
||||
.title "SH DIVIDE"
|
||||
!! 4 byte integer Divide code for the Hitachi SH
|
||||
#ifdef __SH4__
|
||||
-!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
|
||||
+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
|
||||
+!! and t bit
|
||||
|
||||
.global GLOBAL(udivsi3_i4)
|
||||
+ FUNC(GLOBAL(udivsi3_i4))
|
||||
GLOBAL(udivsi3_i4):
|
||||
mov #1,r1
|
||||
cmp/hi r1,r5
|
||||
@@ -1217,11 +1353,13 @@
|
||||
L1:
|
||||
.double 2147483648
|
||||
|
||||
+ ENDFUNC(GLOBAL(udivsi3_i4))
|
||||
#elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
|
||||
#if ! __SH5__ || __SH5__ == 32
|
||||
!! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
|
||||
.mode SHmedia
|
||||
.global GLOBAL(udivsi3_i4)
|
||||
+ FUNC(GLOBAL(udivsi3_i4))
|
||||
GLOBAL(udivsi3_i4):
|
||||
addz.l r4,r63,r20
|
||||
addz.l r5,r63,r21
|
||||
@@ -1234,6 +1372,8 @@
|
||||
ftrc.dq dr0,dr32
|
||||
fmov.s fr33,fr32
|
||||
blink tr0,r63
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(udivsi3_i4))
|
||||
#endif /* ! __SH5__ || __SH5__ == 32 */
|
||||
#elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
|
||||
!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
|
||||
@@ -1287,6 +1427,7 @@
|
||||
#endif
|
||||
.double 2147483648
|
||||
|
||||
+ ENDFUNC(GLOBAL(udivsi3_i4))
|
||||
#endif /* ! __SH4__ */
|
||||
#endif
|
||||
|
||||
@@ -1297,6 +1438,7 @@
|
||||
|
||||
!! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
|
||||
.global GLOBAL(udivsi3)
|
||||
+ FUNC(GLOBAL(udivsi3))
|
||||
|
||||
#if __SHMEDIA__
|
||||
#if __SH5__ == 32
|
||||
@@ -1485,6 +1627,7 @@
|
||||
rts
|
||||
rotcl r0
|
||||
|
||||
+ ENDFUNC(GLOBAL(udivsi3))
|
||||
#endif /* ! __SHMEDIA__ */
|
||||
#endif /* __SH4__ */
|
||||
#endif /* L_udivsi3 */
|
||||
@@ -1790,6 +1933,7 @@
|
||||
.mode SHcompact
|
||||
#endif
|
||||
.global GLOBAL(set_fpscr)
|
||||
+ FUNC(GLOBAL(set_fpscr))
|
||||
GLOBAL(set_fpscr):
|
||||
lds r4,fpscr
|
||||
mov.l LOCAL(set_fpscr_L1),r1
|
||||
@@ -1822,6 +1966,8 @@
|
||||
.align 2
|
||||
LOCAL(set_fpscr_L1):
|
||||
.long GLOBAL(fpscr_values)
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(set_fpscr))
|
||||
#ifdef __ELF__
|
||||
.comm GLOBAL(fpscr_values),8,4
|
||||
#else
|
||||
@@ -1860,6 +2006,7 @@
|
||||
blink tr0, r63
|
||||
#elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
|
||||
.global GLOBAL(ic_invalidate)
|
||||
+ FUNC(GLOBAL(ic_invalidate))
|
||||
GLOBAL(ic_invalidate):
|
||||
ocbwb @r4
|
||||
mova 0f,r0
|
||||
@@ -1882,6 +2029,8 @@
|
||||
nop
|
||||
.endr
|
||||
.endr
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(ic_invalidate))
|
||||
#endif /* SH4 */
|
||||
#endif /* L_ic_invalidate */
|
||||
|
||||
@@ -1940,6 +2089,7 @@
|
||||
will be expanded into r2/r3 upon return. */
|
||||
|
||||
.global GLOBAL(GCC_shcompact_call_trampoline)
|
||||
+ FUNC(GLOBAL(GCC_shcompact_call_trampoline))
|
||||
GLOBAL(GCC_shcompact_call_trampoline):
|
||||
ptabs/l r0, tr0 /* Prepare to call the actual function. */
|
||||
movi ((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
|
||||
@@ -2290,6 +2440,8 @@
|
||||
shari r2, 32, r2
|
||||
#endif
|
||||
blink tr0, r63
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
|
||||
#endif /* L_shcompact_call_trampoline */
|
||||
|
||||
#ifdef L_shcompact_return_trampoline
|
||||
@@ -2302,6 +2454,7 @@
|
||||
.section .text..SHmedia32, "ax"
|
||||
.align 2
|
||||
.global GLOBAL(GCC_shcompact_return_trampoline)
|
||||
+ FUNC(GLOBAL(GCC_shcompact_return_trampoline))
|
||||
GLOBAL(GCC_shcompact_return_trampoline):
|
||||
ptabs/l r18, tr0
|
||||
#if __LITTLE_ENDIAN__
|
||||
@@ -2313,6 +2466,8 @@
|
||||
#endif
|
||||
or r3, r2, r2
|
||||
blink tr0, r63
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
|
||||
#endif /* L_shcompact_return_trampoline */
|
||||
|
||||
#ifdef L_shcompact_incoming_args
|
||||
@@ -2367,6 +2522,7 @@
|
||||
actual bit pattern. */
|
||||
|
||||
.global GLOBAL(GCC_shcompact_incoming_args)
|
||||
+ FUNC(GLOBAL(GCC_shcompact_incoming_args))
|
||||
GLOBAL(GCC_shcompact_incoming_args):
|
||||
ptabs/l r18, tr0 /* Prepare to return. */
|
||||
shlri r17, 32, r0 /* Load the cookie. */
|
||||
@@ -2519,6 +2675,7 @@
|
||||
LOCAL(ia_return): /* Return. */
|
||||
blink tr0, r63
|
||||
LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction. */
|
||||
+ ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
|
||||
#endif /* L_shcompact_incoming_args */
|
||||
#endif
|
||||
#if __SH5__
|
||||
@@ -2530,6 +2687,7 @@
|
||||
#endif
|
||||
.align 3 /* It is copied in units of 8 bytes in SHmedia mode. */
|
||||
.global GLOBAL(GCC_nested_trampoline)
|
||||
+ FUNC(GLOBAL(GCC_nested_trampoline))
|
||||
GLOBAL(GCC_nested_trampoline):
|
||||
.mode SHmedia
|
||||
ptrel/u r63, tr0
|
||||
@@ -2546,6 +2704,8 @@
|
||||
ld.l r0, 28, r1
|
||||
#endif
|
||||
blink tr1, r63
|
||||
+
|
||||
+ ENDFUNC(GLOBAL(GCC_nested_trampoline))
|
||||
#endif /* L_nested_trampoline */
|
||||
#endif /* __SH5__ */
|
||||
#if __SH5__ == 32
|
||||
@@ -2555,6 +2715,7 @@
|
||||
.align 2
|
||||
#ifndef __SH4_NOFPU__
|
||||
.global GLOBAL(GCC_push_shmedia_regs)
|
||||
+ FUNC(GLOBAL(GCC_push_shmedia_regs))
|
||||
GLOBAL(GCC_push_shmedia_regs):
|
||||
addi.l r15, -14*8, r15
|
||||
fst.d r15, 13*8, dr62
|
||||
@@ -2573,6 +2734,7 @@
|
||||
fst.d r15, 0*8, dr36
|
||||
#endif
|
||||
.global GLOBAL(GCC_push_shmedia_regs_nofpu)
|
||||
+ FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
|
||||
GLOBAL(GCC_push_shmedia_regs_nofpu):
|
||||
ptabs/l r18, tr0
|
||||
addi.l r15, -27*8, r15
|
||||
@@ -2608,8 +2770,13 @@
|
||||
st.q r15, 0*8, r28
|
||||
blink tr0, r63
|
||||
|
||||
+#ifndef __SH4_NOFPU__
|
||||
+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
|
||||
+#endif
|
||||
+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
|
||||
#ifndef __SH4_NOFPU__
|
||||
.global GLOBAL(GCC_pop_shmedia_regs)
|
||||
+ FUNC(GLOBAL(GCC_pop_shmedia_regs))
|
||||
GLOBAL(GCC_pop_shmedia_regs):
|
||||
pt .L0, tr1
|
||||
movi 41*8, r0
|
||||
@@ -2630,6 +2797,7 @@
|
||||
blink tr1, r63
|
||||
#endif
|
||||
.global GLOBAL(GCC_pop_shmedia_regs_nofpu)
|
||||
+ FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
|
||||
GLOBAL(GCC_pop_shmedia_regs_nofpu):
|
||||
movi 27*8, r0
|
||||
.L0:
|
||||
@@ -2666,5 +2834,10 @@
|
||||
ld.q r15, 0*8, r28
|
||||
add.l r15, r0, r15
|
||||
blink tr0, r63
|
||||
+
|
||||
+#ifndef __SH4_NOFPU__
|
||||
+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
|
||||
+#endif
|
||||
+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
|
||||
#endif /* __SH5__ == 32 */
|
||||
#endif /* L_push_pop_shmedia_regs */
|
@ -1,67 +0,0 @@
|
||||
See http://gcc.gnu.org/PR11901
|
||||
Should fix
|
||||
make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
|
||||
in glibc's "make tests".
|
||||
|
||||
Note: this patch is named
|
||||
sh-pic-set_fpscr-gcc-3.3.2.patch
|
||||
and must be applied after
|
||||
sh-lib1funcs_sizeAndType.patch
|
||||
but that'll happen naturally if you apply them in alphabetical order.
|
||||
|
||||
-------------
|
||||
|
||||
Date: Wed, 30 Jul 2003 12:03:01 +0900
|
||||
From: kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
Subject: [linux-sh:02916] Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
|
||||
with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
|
||||
To: dank@kegel.com
|
||||
Cc: linux-sh@m17n.org
|
||||
Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
|
||||
|
||||
> I'll try to write the PIC version of it,
|
||||
|
||||
Dan, does the attached patch work for you?
|
||||
|
||||
Regards,
|
||||
kaz
|
||||
--
|
||||
diff -u3prN ORIG/gcc/gcc/config/sh/lib1funcs.asm LOCAL/gcc/gcc/config/sh/lib1funcs.asm
|
||||
--- ORIG/gcc/gcc/config/sh/lib1funcs.asm Thu Jun 19 07:38:59 2003
|
||||
+++ gcc-3.3.2/gcc/config/sh/lib1funcs.asm Wed Jul 30 11:08:49 2003
|
||||
@@ -1936,7 +1944,17 @@ GLOBAL(moddi3):
|
||||
FUNC(GLOBAL(set_fpscr))
|
||||
GLOBAL(set_fpscr):
|
||||
lds r4,fpscr
|
||||
+#ifdef __PIC__
|
||||
+ mov.l r12,@-r15
|
||||
+ mova LOCAL(set_fpscr_L0),r0
|
||||
+ mov.l LOCAL(set_fpscr_L0),r12
|
||||
+ add r0,r12
|
||||
+ mov.l LOCAL(set_fpscr_L1),r0
|
||||
+ mov.l @(r0,r12),r1
|
||||
+ mov.l @r15+,r12
|
||||
+#else
|
||||
mov.l LOCAL(set_fpscr_L1),r1
|
||||
+#endif
|
||||
swap.w r4,r0
|
||||
or #24,r0
|
||||
#ifndef FMOVD_WORKS
|
||||
@@ -1964,8 +1982,15 @@ GLOBAL(set_fpscr):
|
||||
mov.l r3,@(4,r1)
|
||||
#endif
|
||||
.align 2
|
||||
+#ifdef __PIC__
|
||||
+LOCAL(set_fpscr_L0):
|
||||
+ .long _GLOBAL_OFFSET_TABLE_
|
||||
+LOCAL(set_fpscr_L1):
|
||||
+ .long GLOBAL(fpscr_values@GOT)
|
||||
+#else
|
||||
LOCAL(set_fpscr_L1):
|
||||
.long GLOBAL(fpscr_values)
|
||||
+#endif
|
||||
|
||||
ENDFUNC(GLOBAL(set_fpscr))
|
||||
#ifndef NO_FPSCR_VALUES
|
||||
|
||||
|
@ -1,23 +0,0 @@
|
||||
Fixes
|
||||
FAIL: g++.jason/thunk3.C (test for excess errors)
|
||||
on sh4-unknown-linux-gnu.
|
||||
|
||||
Does any sh variant *not* use the generic thunk support? If so, the patch should be
|
||||
more cautious. As it is, it excludes all sh processors from this test.
|
||||
|
||||
Index: thunk3.C
|
||||
===================================================================
|
||||
RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
|
||||
retrieving revision 1.13
|
||||
diff -u -d -u -r1.13 thunk3.C
|
||||
--- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old 25 Mar 2002 17:57:03 -0000 1.13
|
||||
+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C 20 Jul 2003 16:57:38 -0000
|
||||
@@ -2,7 +2,7 @@
|
||||
// Note that this will break on any target that uses the generic thunk
|
||||
// support, because it doesn't support variadic functions.
|
||||
|
||||
-// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
|
||||
+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
|
||||
|
||||
#include <stdarg.h>
|
||||
|
@ -1,62 +0,0 @@
|
||||
diff -urN gcc-3.3.4.orig/gcc/config/arm/linux-elf.h gcc-3.3.4/gcc/config/arm/linux-elf.h
|
||||
--- gcc-3.3.4.orig/gcc/config/arm/linux-elf.h 2004-03-30 22:43:45.000000000 +0200
|
||||
+++ gcc-3.3.4/gcc/config/arm/linux-elf.h 2004-08-20 02:13:02.969084177 +0200
|
||||
@@ -30,17 +30,31 @@
|
||||
/* Do not assume anything about header files. */
|
||||
#define NO_IMPLICIT_EXTERN_C
|
||||
|
||||
+/*
|
||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
|
||||
+ * (big endian) configurations.
|
||||
+ */
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT
|
||||
+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
|
||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
|
||||
+#else
|
||||
+#define TARGET_ENDIAN_DEFAULT 0
|
||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
|
||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
|
||||
+#endif
|
||||
+
|
||||
/* Default is to use APCS-32 mode. */
|
||||
#undef TARGET_DEFAULT
|
||||
-#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
|
||||
+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
|
||||
|
||||
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
|
||||
|
||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
|
||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
|
||||
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS \
|
||||
- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
|
||||
+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
|
||||
|
||||
#define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
|
||||
|
||||
@@ -88,7 +102,7 @@
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
|
||||
-X \
|
||||
- %{mbig-endian:-EB}" \
|
||||
+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
|
||||
SUBTARGET_EXTRA_LINK_SPEC
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
diff -urN gcc-3.3.4.orig/gcc/config.gcc gcc-3.3.4/gcc/config.gcc
|
||||
--- gcc-3.3.4.orig/gcc/config.gcc 2004-04-29 06:42:47.000000000 +0200
|
||||
+++ gcc-3.3.4/gcc/config.gcc 2004-08-20 02:11:04.326143343 +0200
|
||||
@@ -699,6 +699,11 @@
|
||||
;;
|
||||
arm*-*-linux*) # ARM GNU/Linux with ELF
|
||||
tm_file="dbxelf.h elfos.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
|
||||
+ case $machine in
|
||||
+ arm*b-*)
|
||||
+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
|
||||
+ ;;
|
||||
+ esac
|
||||
tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
|
||||
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
|
||||
gnu_ld=yes
|
@ -1,71 +0,0 @@
|
||||
From http://gcc.gnu.org/ml/gcc-patches/2003-11/msg00832.html, by
|
||||
Richard Earnshaw. Fixes http://gcc.gnu.org/PR22528
|
||||
|
||||
--- gcc-3.3.4/gcc/config/arm/arm.md.orig 2004-03-30 22:43:44.000000000 +0200
|
||||
+++ gcc-3.3.4/gcc/config/arm/arm.md 2005-08-15 12:21:55.000000000 +0200
|
||||
@@ -4275,7 +4275,7 @@
|
||||
(set (match_dup 2)
|
||||
(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
|
||||
;; store the high byte
|
||||
- (set (match_dup 4) (subreg:QI (match_dup 2) 0))] ;explicit subreg safe
|
||||
+ (set (match_dup 4) (match_dup 5))]
|
||||
"TARGET_ARM"
|
||||
"
|
||||
{
|
||||
@@ -4291,7 +4291,8 @@
|
||||
operands[1] = adjust_address (operands[1], QImode, 0);
|
||||
operands[3] = gen_lowpart (QImode, operands[0]);
|
||||
operands[0] = gen_lowpart (SImode, operands[0]);
|
||||
- operands[2] = gen_reg_rtx (SImode);
|
||||
+ operands[2] = gen_reg_rtx (SImode);
|
||||
+ operands[5] = gen_lowpart (QImode, operands[2]);
|
||||
}"
|
||||
)
|
||||
|
||||
@@ -4299,7 +4300,7 @@
|
||||
[(set (match_dup 4) (match_dup 3))
|
||||
(set (match_dup 2)
|
||||
(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
|
||||
- (set (match_operand 1 "" "") (subreg:QI (match_dup 2) 3))]
|
||||
+ (set (match_operand 1 "" "") (match_dup 5))]
|
||||
"TARGET_ARM"
|
||||
"
|
||||
{
|
||||
@@ -4316,13 +4317,14 @@
|
||||
operands[3] = gen_lowpart (QImode, operands[0]);
|
||||
operands[0] = gen_lowpart (SImode, operands[0]);
|
||||
operands[2] = gen_reg_rtx (SImode);
|
||||
+ operands[5] = gen_lowpart (QImode, operands[2]);
|
||||
}"
|
||||
)
|
||||
|
||||
;; Subroutine to store a half word integer constant into memory.
|
||||
(define_expand "storeinthi"
|
||||
[(set (match_operand 0 "" "")
|
||||
- (subreg:QI (match_operand 1 "" "") 0))
|
||||
+ (match_operand 1 "" ""))
|
||||
(set (match_dup 3) (match_dup 2))]
|
||||
"TARGET_ARM"
|
||||
"
|
||||
@@ -4363,6 +4365,7 @@
|
||||
operands[3] = adjust_address (op0, QImode, 1);
|
||||
operands[0] = adjust_address (operands[0], QImode, 0);
|
||||
operands[2] = gen_lowpart (QImode, operands[2]);
|
||||
+ operands[1] = gen_lowpart (QImode, operands[1]);
|
||||
}"
|
||||
)
|
||||
|
||||
@@ -4682,11 +4685,12 @@
|
||||
(set (match_dup 3)
|
||||
(ashiftrt:SI (match_dup 2) (const_int 16)))
|
||||
(set (match_operand:HI 0 "s_register_operand" "")
|
||||
- (subreg:HI (match_dup 3) 0))]
|
||||
+ (match_dup 4))]
|
||||
"TARGET_ARM"
|
||||
"
|
||||
operands[2] = gen_reg_rtx (SImode);
|
||||
operands[3] = gen_reg_rtx (SImode);
|
||||
+ operands[4] = gen_lowpart (HImode, operands[3]);
|
||||
"
|
||||
)
|
||||
|
@ -1,38 +0,0 @@
|
||||
Date: Tue, 06 Jul 2004 10:40:57 +0900 (JST)
|
||||
Message-Id: <20040706.104057.48529182.kkojima@rr.iij4u.or.jp>
|
||||
To: dank@kegel.com
|
||||
Cc: linux-sh@m17n.org, linuxsh-dev@lists.sourceforge.net
|
||||
Subject: gcc-3.4.1 (Was: The current kernel for a Jornada 680 SH3)
|
||||
From: Kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||
In-Reply-To: <20040529.175014.48668611.kkojima@rr.iij4u.or.jp>
|
||||
References: <20040528.125858.50336810.kkojima@rr.iij4u.or.jp>
|
||||
<40B8205D.8030200@kegel.com>
|
||||
<20040529.175014.48668611.kkojima@rr.iij4u.or.jp>
|
||||
|
||||
Hi,
|
||||
|
||||
...
|
||||
|
||||
BTW, gcc-3.3.4 was also released and there is a bad news :-( Someone
|
||||
reverted wrongly a configury patch against libstdc++ for sh-linux at
|
||||
the last moment. We have to regenerate gcc-3.3.4/libstdc++-v3/configure
|
||||
with autoconf 2.13 or apply the one-line patch below manually:
|
||||
|
||||
--- gcc-3.3.4-orig/libstdc++-v3/configure 2004-06-01 09:45:44.000000000 +0900
|
||||
+++ gcc-3.3.4/libstdc++-v3/configure 2004-06-29 22:38:05.000000000 +0900
|
||||
@@ -2009,7 +2009,7 @@ irix5* | irix6*)
|
||||
# This must be Linux ELF.
|
||||
linux-gnu*)
|
||||
case $host_cpu in
|
||||
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
|
||||
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
|
||||
lt_cv_deplibs_check_method=pass_all ;;
|
||||
*)
|
||||
# glibc up to 2.1.1 does not perform some relocations on ARM
|
||||
|
||||
|
||||
Regards,
|
||||
kaz
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user