1.1 --- a/config/binutils.in Tue Aug 14 19:32:22 2007 +0000
1.2 +++ b/config/binutils.in Tue Aug 14 20:11:44 2007 +0000
1.3 @@ -9,50 +9,16 @@
1.4 bool
1.5 prompt "binutils version"
1.6
1.7 -config BINUTILS_V_2_11_2
1.8 - bool
1.9 - prompt "2.11.2"
1.10 - depends on OBSOLETE
1.11 -
1.12 -config BINUTILS_V_2_13_90
1.13 - bool
1.14 - prompt "2.13.90"
1.15 - depends on OBSOLETE
1.16 -
1.17 config BINUTILS_V_2_14
1.18 bool
1.19 - prompt "2.14"
1.20 - depends on OBSOLETE
1.21 -
1.22 -config BINUTILS_V_2_14_90
1.23 - bool
1.24 - prompt "2.14.90"
1.25 - depends on OBSOLETE
1.26 -
1.27 -config BINUTILS_V_2_14_92
1.28 - bool
1.29 - prompt "2.14.92"
1.30 + prompt "2.14 (OBSOLETE)"
1.31 depends on OBSOLETE
1.32
1.33 config BINUTILS_V_2_15
1.34 bool
1.35 - prompt "2.15"
1.36 + prompt "2.15 (OBSOLETE)"
1.37 depends on OBSOLETE
1.38
1.39 -config BINUTILS_V_2_15_90
1.40 - bool
1.41 - prompt "2.15.90"
1.42 - depends on OBSOLETE
1.43 -
1.44 -config BINUTILS_V_2_15_91
1.45 - bool
1.46 - prompt "2.15.91"
1.47 - depends on OBSOLETE
1.48 -
1.49 -config BINUTILS_V_2_16
1.50 - bool
1.51 - prompt "2.16"
1.52 -
1.53 config BINUTILS_V_2_16_1
1.54 bool
1.55 prompt "2.16.1"
1.56 @@ -61,89 +27,19 @@
1.57 bool
1.58 prompt "2.17"
1.59
1.60 -config BINUTILS_V_2_17_50_0_1
1.61 - bool
1.62 - prompt "2.17.50.0.1"
1.63 - depends on EXPERIMENTAL
1.64 -
1.65 -config BINUTILS_V_2_17_50_0_2
1.66 - bool
1.67 - prompt "2.17.50.0.2"
1.68 - depends on EXPERIMENTAL
1.69 -
1.70 -config BINUTILS_V_2_17_50_0_3
1.71 - bool
1.72 - prompt "2.17.50.0.3"
1.73 - depends on EXPERIMENTAL
1.74 -
1.75 -config BINUTILS_V_2_17_50_0_4
1.76 - bool
1.77 - prompt "2.17.50.0.4"
1.78 - depends on EXPERIMENTAL
1.79 -
1.80 -config BINUTILS_V_2_17_50_0_5
1.81 - bool
1.82 - prompt "2.17.50.0.5"
1.83 - depends on EXPERIMENTAL
1.84 -
1.85 -config BINUTILS_V_2_17_50_0_6
1.86 - bool
1.87 - prompt "2.17.50.0.6"
1.88 - depends on EXPERIMENTAL
1.89 -
1.90 -config BINUTILS_V_2_17_50_0_7
1.91 - bool
1.92 - prompt "2.17.50.0.7"
1.93 - depends on EXPERIMENTAL
1.94 -
1.95 -config BINUTILS_V_2_17_50_0_8
1.96 - bool
1.97 - prompt "2.17.50.0.8"
1.98 - depends on EXPERIMENTAL
1.99 -
1.100 -config BINUTILS_V_2_17_50_0_9
1.101 - bool
1.102 - prompt "2.17.50.0.9"
1.103 - depends on EXPERIMENTAL
1.104 -
1.105 config BINUTILS_V_2_17_50_0_10
1.106 bool
1.107 - prompt "2.17.50.0.10"
1.108 - depends on EXPERIMENTAL
1.109 -
1.110 -config BINUTILS_V_2_17_50_0_11
1.111 - bool
1.112 - prompt "2.17.50.0.11"
1.113 - depends on EXPERIMENTAL
1.114 -
1.115 -config BINUTILS_V_2_17_50_0_12
1.116 - bool
1.117 - prompt "2.17.50.0.12"
1.118 - depends on EXPERIMENTAL
1.119 -
1.120 -config BINUTILS_V_2_17_50_0_13
1.121 - bool
1.122 - prompt "2.17.50.0.13"
1.123 - depends on EXPERIMENTAL
1.124 -
1.125 -config BINUTILS_V_2_17_50_0_14
1.126 - bool
1.127 - prompt "2.17.50.0.14"
1.128 + prompt "2.17.50.0.10 (EXPERIMENTAL)"
1.129 depends on EXPERIMENTAL
1.130
1.131 config BINUTILS_V_2_17_50_0_15
1.132 bool
1.133 - prompt "2.17.50.0.15"
1.134 - depends on EXPERIMENTAL
1.135 -
1.136 -config BINUTILS_V_2_17_50_0_16
1.137 - bool
1.138 - prompt "2.17.50.0.16"
1.139 + prompt "2.17.50.0.15 (EXPERIMENTAL)"
1.140 depends on EXPERIMENTAL
1.141
1.142 config BINUTILS_V_2_17_50_0_17
1.143 bool
1.144 - prompt "2.17.50.0.17"
1.145 + prompt "2.17.50.0.17 (EXPERIMENTAL)"
1.146 depends on EXPERIMENTAL
1.147
1.148 config BINUTILS_V_2_17_50_0_18
1.149 @@ -157,33 +53,12 @@
1.150
1.151 config BINUTILS_VERSION
1.152 string
1.153 - default "2.11.2" if BINUTILS_V_2_11_2
1.154 - default "2.13.90" if BINUTILS_V_2_13_90
1.155 default "2.14" if BINUTILS_V_2_14
1.156 - default "2.14.90" if BINUTILS_V_2_14_90
1.157 - default "2.14.92" if BINUTILS_V_2_14_92
1.158 default "2.15" if BINUTILS_V_2_15
1.159 - default "2.15.90" if BINUTILS_V_2_15_90
1.160 - default "2.15.91" if BINUTILS_V_2_15_91
1.161 - default "2.16" if BINUTILS_V_2_16
1.162 default "2.16.1" if BINUTILS_V_2_16_1
1.163 default "2.17" if BINUTILS_V_2_17
1.164 - default "2.17.50.0.1" if BINUTILS_V_2_17_50_0_1
1.165 - default "2.17.50.0.2" if BINUTILS_V_2_17_50_0_2
1.166 - default "2.17.50.0.3" if BINUTILS_V_2_17_50_0_3
1.167 - default "2.17.50.0.4" if BINUTILS_V_2_17_50_0_4
1.168 - default "2.17.50.0.5" if BINUTILS_V_2_17_50_0_5
1.169 - default "2.17.50.0.6" if BINUTILS_V_2_17_50_0_6
1.170 - default "2.17.50.0.7" if BINUTILS_V_2_17_50_0_7
1.171 - default "2.17.50.0.8" if BINUTILS_V_2_17_50_0_8
1.172 - default "2.17.50.0.9" if BINUTILS_V_2_17_50_0_9
1.173 default "2.17.50.0.10" if BINUTILS_V_2_17_50_0_10
1.174 - default "2.17.50.0.11" if BINUTILS_V_2_17_50_0_11
1.175 - default "2.17.50.0.12" if BINUTILS_V_2_17_50_0_12
1.176 - default "2.17.50.0.13" if BINUTILS_V_2_17_50_0_13
1.177 default "2.17.50.0.14" if BINUTILS_V_2_17_50_0_14
1.178 - default "2.17.50.0.15" if BINUTILS_V_2_17_50_0_15
1.179 - default "2.17.50.0.16" if BINUTILS_V_2_17_50_0_16
1.180 default "2.17.50.0.17" if BINUTILS_V_2_17_50_0_17
1.181 default "2.17.50.0.18" if BINUTILS_V_2_17_50_0_18
1.182 # CT_INSERT_VERSION_STRING_ABOVE
2.1 --- a/config/cc_gcc.in Tue Aug 14 19:32:22 2007 +0000
2.2 +++ b/config/cc_gcc.in Tue Aug 14 20:11:44 2007 +0000
2.3 @@ -6,81 +6,23 @@
2.4
2.5 config CC_V_2_95_3
2.6 bool
2.7 - prompt "2.95.3"
2.8 + prompt "2.95.3 (OBSOLETE)"
2.9 depends on OBSOLETE
2.10
2.11 config CC_V_3_2_3
2.12 bool
2.13 - prompt "3.2.3"
2.14 - depends on OBSOLETE
2.15 -
2.16 -config CC_V_3_3
2.17 - bool
2.18 - prompt "3.3"
2.19 - depends on OBSOLETE
2.20 -
2.21 -config CC_V_3_3_1
2.22 - bool
2.23 - prompt "3.3.1"
2.24 - depends on OBSOLETE
2.25 -
2.26 -config CC_V_3_3_2
2.27 - bool
2.28 - prompt "3.3.2"
2.29 - depends on OBSOLETE
2.30 -
2.31 -config CC_V_3_3_3
2.32 - bool
2.33 - prompt "3.3.3"
2.34 - depends on OBSOLETE
2.35 -
2.36 -config CC_V_3_3_4
2.37 - bool
2.38 - prompt "3.3.4"
2.39 - depends on OBSOLETE
2.40 -
2.41 -config CC_V_3_3_5
2.42 - bool
2.43 - prompt "3.3.5"
2.44 + prompt "3.2.3 (OBSOLETE)"
2.45 depends on OBSOLETE
2.46
2.47 config CC_V_3_3_6
2.48 bool
2.49 - prompt "3.3.6"
2.50 -
2.51 -config CC_V_3_4_0
2.52 - bool
2.53 - prompt "3.4.0"
2.54 - depends on OBSOLETE
2.55 -
2.56 -config CC_V_3_4_1
2.57 - bool
2.58 - prompt "3.4.1"
2.59 - depends on OBSOLETE
2.60 -
2.61 -config CC_V_3_4_2
2.62 - bool
2.63 - prompt "3.4.2"
2.64 - depends on OBSOLETE
2.65 -
2.66 -config CC_V_3_4_3
2.67 - bool
2.68 - prompt "3.4.3"
2.69 - depends on OBSOLETE
2.70 -
2.71 -config CC_V_3_4_4
2.72 - bool
2.73 - prompt "3.4.4"
2.74 - depends on OBSOLETE
2.75 -
2.76 -config CC_V_3_4_5
2.77 - bool
2.78 - prompt "3.4.5"
2.79 + prompt "3.3.6 (OBSOLETE)"
2.80 depends on OBSOLETE
2.81
2.82 config CC_V_3_4_6
2.83 bool
2.84 - prompt "3.4.6"
2.85 + prompt "3.4.6 (OBSOLETE)"
2.86 + depends on OBSOLETE
2.87
2.88 config CC_V_4_0_0
2.89 bool
2.90 @@ -130,19 +72,7 @@
2.91 string
2.92 default "2.95.3" if CC_V_2_95_3
2.93 default "3.2.3" if CC_V_3_2_3
2.94 - default "3.3" if CC_V_3_3
2.95 - default "3.3.1" if CC_V_3_3_1
2.96 - default "3.3.2" if CC_V_3_3_2
2.97 - default "3.3.3" if CC_V_3_3_3
2.98 - default "3.3.4" if CC_V_3_3_4
2.99 - default "3.3.5" if CC_V_3_3_5
2.100 default "3.3.6" if CC_V_3_3_6
2.101 - default "3.4.0" if CC_V_3_4_0
2.102 - default "3.4.1" if CC_V_3_4_1
2.103 - default "3.4.2" if CC_V_3_4_2
2.104 - default "3.4.3" if CC_V_3_4_3
2.105 - default "3.4.4" if CC_V_3_4_4
2.106 - default "3.4.5" if CC_V_3_4_5
2.107 default "3.4.6" if CC_V_3_4_6
2.108 default "4.0.0" if CC_V_4_0_0
2.109 default "4.0.1" if CC_V_4_0_1
3.1 --- a/config/debug/dmalloc.in Tue Aug 14 19:32:22 2007 +0000
3.2 +++ b/config/debug/dmalloc.in Tue Aug 14 20:11:44 2007 +0000
3.3 @@ -13,7 +13,7 @@
3.4
3.5 config DMALLOC_V_5_4_3
3.6 bool
3.7 - prompt "5.4.3"
3.8 + prompt "5.4.3 (OBSOLETE)"
3.9 depends on OBSOLETE
3.10
3.11 config DMALLOC_V_5_5_2
4.1 --- a/config/debug/gdb.in Tue Aug 14 19:32:22 2007 +0000
4.2 +++ b/config/debug/gdb.in Tue Aug 14 20:11:44 2007 +0000
4.3 @@ -42,19 +42,9 @@
4.4 prompt "snapshot (EXPERIMENTAL)"
4.5 depends on EXPERIMENTAL
4.6
4.7 -config GDB_V_6_2_1
4.8 - bool
4.9 - prompt "6.2.1"
4.10 - depends on OBSOLETE
4.11 -
4.12 -config GDB_V_6_3
4.13 - bool
4.14 - prompt "6.3"
4.15 - depends on OBSOLETE
4.16 -
4.17 config GDB_V_6_4
4.18 bool
4.19 - prompt "6.4"
4.20 + prompt "6.4 (OBSOLETE)"
4.21 depends on OBSOLETE
4.22
4.23 config GDB_V_6_5
4.24 @@ -72,8 +62,6 @@
4.25 config GDB_VERSION
4.26 string
4.27 default "snapshot" if GDB_V_snapshot
4.28 - default "6.2.1" if GDB_V_6_2_1
4.29 - default "6.3" if GDB_V_6_3
4.30 default "6.4" if GDB_V_6_4
4.31 default "6.5" if GDB_V_6_5
4.32 default "6.6" if GDB_V_6_6
5.1 --- a/config/debug/ltrace.in Tue Aug 14 19:32:22 2007 +0000
5.2 +++ b/config/debug/ltrace.in Tue Aug 14 20:11:44 2007 +0000
5.3 @@ -20,7 +20,7 @@
5.4
5.5 config LTRACE_V_0_3_36
5.6 bool
5.7 - prompt "0.3.36"
5.8 + prompt "0.3.36 (OBSOLETE)"
5.9 depends on OBSOLETE
5.10
5.11 config LTRACE_V_0_4
6.1 --- a/config/debug/strace.in Tue Aug 14 19:32:22 2007 +0000
6.2 +++ b/config/debug/strace.in Tue Aug 14 20:11:44 2007 +0000
6.3 @@ -13,77 +13,12 @@
6.4
6.5 config STRACE_V_4_5
6.6 bool
6.7 - prompt "4.5"
6.8 - depends on OBSOLETE
6.9 -
6.10 -config STRACE_V_4_5_1
6.11 - bool
6.12 - prompt "4.5.1"
6.13 - depends on OBSOLETE
6.14 -
6.15 -config STRACE_V_4_5_2
6.16 - bool
6.17 - prompt "4.5.2"
6.18 - depends on OBSOLETE
6.19 -
6.20 -config STRACE_V_4_5_3
6.21 - bool
6.22 - prompt "4.5.3"
6.23 - depends on OBSOLETE
6.24 -
6.25 -config STRACE_V_4_5_4
6.26 - bool
6.27 - prompt "4.5.4"
6.28 - depends on OBSOLETE
6.29 -
6.30 -config STRACE_V_4_5_5
6.31 - bool
6.32 - prompt "4.5.5"
6.33 - depends on OBSOLETE
6.34 -
6.35 -config STRACE_V_4_5_6
6.36 - bool
6.37 - prompt "4.5.6"
6.38 - depends on OBSOLETE
6.39 -
6.40 -config STRACE_V_4_5_7
6.41 - bool
6.42 - prompt "4.5.7"
6.43 - depends on OBSOLETE
6.44 -
6.45 -config STRACE_V_4_5_8
6.46 - bool
6.47 - prompt "4.5.8"
6.48 - depends on OBSOLETE
6.49 -
6.50 -config STRACE_V_4_5_9
6.51 - bool
6.52 - prompt "4.5.9"
6.53 - depends on OBSOLETE
6.54 -
6.55 -config STRACE_V_4_5_10
6.56 - bool
6.57 - prompt "4.5.10"
6.58 - depends on OBSOLETE
6.59 -
6.60 -config STRACE_V_4_5_11
6.61 - bool
6.62 - prompt "4.5.11"
6.63 - depends on OBSOLETE
6.64 -
6.65 -config STRACE_V_4_5_12
6.66 - bool
6.67 - prompt "4.5.12"
6.68 - depends on OBSOLETE
6.69 -
6.70 -config STRACE_V_4_5_13
6.71 - bool
6.72 - prompt "4.5.13"
6.73 + prompt "4.5 (OBSOLETE)"
6.74 depends on OBSOLETE
6.75
6.76 config STRACE_V_4_5_14
6.77 bool
6.78 - prompt "4.5.14"
6.79 + prompt "4.5.14 (OBSOLETE)"
6.80 depends on OBSOLETE
6.81
6.82 config STRACE_V_4_5_15
6.83 @@ -97,19 +32,6 @@
6.84 config STRACE_VERSION
6.85 string
6.86 default "4.5" if STRACE_V_4_5
6.87 - default "4.5.1" if STRACE_V_4_5_1
6.88 - default "4.5.2" if STRACE_V_4_5_2
6.89 - default "4.5.3" if STRACE_V_4_5_3
6.90 - default "4.5.4" if STRACE_V_4_5_4
6.91 - default "4.5.5" if STRACE_V_4_5_5
6.92 - default "4.5.6" if STRACE_V_4_5_6
6.93 - default "4.5.7" if STRACE_V_4_5_7
6.94 - default "4.5.8" if STRACE_V_4_5_8
6.95 - default "4.5.9" if STRACE_V_4_5_9
6.96 - default "4.5.10" if STRACE_V_4_5_10
6.97 - default "4.5.11" if STRACE_V_4_5_11
6.98 - default "4.5.12" if STRACE_V_4_5_12
6.99 - default "4.5.13" if STRACE_V_4_5_13
6.100 default "4.5.14" if STRACE_V_4_5_14
6.101 default "4.5.15" if STRACE_V_4_5_15
6.102 # CT_INSERT_VERSION_STRING_ABOVE
7.1 --- a/config/kernel_linux_headers_copy.in Tue Aug 14 19:32:22 2007 +0000
7.2 +++ b/config/kernel_linux_headers_copy.in Tue Aug 14 20:11:44 2007 +0000
7.3 @@ -2,25 +2,9 @@
7.4 bool
7.5 prompt "Linux kernel version"
7.6
7.7 -config KERNEL_COPY_V_2_6_0
7.8 +config KERNEL_COPY_V_2_4_26
7.9 bool
7.10 - prompt "2.6.0"
7.11 -
7.12 -config KERNEL_COPY_V_2_6_1
7.13 - bool
7.14 - prompt "2.6.1"
7.15 -
7.16 -config KERNEL_COPY_V_2_6_2
7.17 - bool
7.18 - prompt "2.6.2"
7.19 -
7.20 -config KERNEL_COPY_V_2_6_3
7.21 - bool
7.22 - prompt "2.6.3"
7.23 -
7.24 -config KERNEL_COPY_V_2_6_4
7.25 - bool
7.26 - prompt "2.6.4"
7.27 + prompt "2.4.26"
7.28
7.29 config KERNEL_COPY_V_2_6_5
7.30 bool
7.31 @@ -38,645 +22,21 @@
7.32 bool
7.33 prompt "2.6.8"
7.34
7.35 -config KERNEL_COPY_V_2_6_8_1
7.36 - bool
7.37 - prompt "2.6.8.1"
7.38 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.39 -
7.40 -config KERNEL_COPY_V_2_6_9
7.41 - bool
7.42 - prompt "2.6.9"
7.43 -
7.44 -config KERNEL_COPY_V_2_6_10
7.45 - bool
7.46 - prompt "2.6.10"
7.47 -
7.48 -config KERNEL_COPY_V_2_6_11
7.49 - bool
7.50 - prompt "2.6.11"
7.51 -
7.52 -config KERNEL_COPY_V_2_6_11_1
7.53 - bool
7.54 - prompt "2.6.11.1"
7.55 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.56 -
7.57 -config KERNEL_COPY_V_2_6_11_10
7.58 - bool
7.59 - prompt "2.6.11.10"
7.60 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.61 -
7.62 -config KERNEL_COPY_V_2_6_11_11
7.63 - bool
7.64 - prompt "2.6.11.11"
7.65 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.66 -
7.67 -config KERNEL_COPY_V_2_6_11_12
7.68 - bool
7.69 - prompt "2.6.11.12"
7.70 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.71 -
7.72 -config KERNEL_COPY_V_2_6_11_2
7.73 - bool
7.74 - prompt "2.6.11.2"
7.75 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.76 -
7.77 config KERNEL_COPY_V_2_6_11_3
7.78 bool
7.79 prompt "2.6.11.3"
7.80 depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.81
7.82 -config KERNEL_COPY_V_2_6_11_4
7.83 - bool
7.84 - prompt "2.6.11.4"
7.85 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.86 -
7.87 -config KERNEL_COPY_V_2_6_11_5
7.88 - bool
7.89 - prompt "2.6.11.5"
7.90 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.91 -
7.92 -config KERNEL_COPY_V_2_6_11_6
7.93 - bool
7.94 - prompt "2.6.11.6"
7.95 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.96 -
7.97 -config KERNEL_COPY_V_2_6_11_7
7.98 - bool
7.99 - prompt "2.6.11.7"
7.100 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.101 -
7.102 -config KERNEL_COPY_V_2_6_11_8
7.103 - bool
7.104 - prompt "2.6.11.8"
7.105 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.106 -
7.107 -config KERNEL_COPY_V_2_6_11_9
7.108 - bool
7.109 - prompt "2.6.11.9"
7.110 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.111 -
7.112 -config KERNEL_COPY_V_2_6_12
7.113 - bool
7.114 - prompt "2.6.12"
7.115 -
7.116 -config KERNEL_COPY_V_2_6_12_1
7.117 - bool
7.118 - prompt "2.6.12.1"
7.119 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.120 -
7.121 -config KERNEL_COPY_V_2_6_12_2
7.122 - bool
7.123 - prompt "2.6.12.2"
7.124 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.125 -
7.126 -config KERNEL_COPY_V_2_6_12_3
7.127 - bool
7.128 - prompt "2.6.12.3"
7.129 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.130 -
7.131 -config KERNEL_COPY_V_2_6_12_4
7.132 - bool
7.133 - prompt "2.6.12.4"
7.134 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.135 -
7.136 -config KERNEL_COPY_V_2_6_12_5
7.137 - bool
7.138 - prompt "2.6.12.5"
7.139 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.140 -
7.141 -config KERNEL_COPY_V_2_6_12_6
7.142 - bool
7.143 - prompt "2.6.12.6"
7.144 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.145 -
7.146 -config KERNEL_COPY_V_2_6_13
7.147 - bool
7.148 - prompt "2.6.13"
7.149 -
7.150 -config KERNEL_COPY_V_2_6_13_1
7.151 - bool
7.152 - prompt "2.6.13.1"
7.153 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.154 -
7.155 -config KERNEL_COPY_V_2_6_13_2
7.156 - bool
7.157 - prompt "2.6.13.2"
7.158 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.159 -
7.160 -config KERNEL_COPY_V_2_6_13_3
7.161 - bool
7.162 - prompt "2.6.13.3"
7.163 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.164 -
7.165 -config KERNEL_COPY_V_2_6_13_4
7.166 - bool
7.167 - prompt "2.6.13.4"
7.168 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.169 -
7.170 -config KERNEL_COPY_V_2_6_13_5
7.171 - bool
7.172 - prompt "2.6.13.5"
7.173 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.174 -
7.175 -config KERNEL_COPY_V_2_6_14
7.176 - bool
7.177 - prompt "2.6.14"
7.178 -
7.179 -config KERNEL_COPY_V_2_6_14_1
7.180 - bool
7.181 - prompt "2.6.14.1"
7.182 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.183 -
7.184 -config KERNEL_COPY_V_2_6_14_2
7.185 - bool
7.186 - prompt "2.6.14.2"
7.187 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.188 -
7.189 -config KERNEL_COPY_V_2_6_14_3
7.190 - bool
7.191 - prompt "2.6.14.3"
7.192 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.193 -
7.194 -config KERNEL_COPY_V_2_6_14_4
7.195 - bool
7.196 - prompt "2.6.14.4"
7.197 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.198 -
7.199 -config KERNEL_COPY_V_2_6_14_5
7.200 - bool
7.201 - prompt "2.6.14.5"
7.202 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.203 -
7.204 -config KERNEL_COPY_V_2_6_14_6
7.205 - bool
7.206 - prompt "2.6.14.6"
7.207 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.208 -
7.209 -config KERNEL_COPY_V_2_6_14_7
7.210 - bool
7.211 - prompt "2.6.14.7"
7.212 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.213 -
7.214 -config KERNEL_COPY_V_2_6_15
7.215 - bool
7.216 - prompt "2.6.15"
7.217 -
7.218 -config KERNEL_COPY_V_2_6_15_1
7.219 - bool
7.220 - prompt "2.6.15.1"
7.221 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.222 -
7.223 -config KERNEL_COPY_V_2_6_15_2
7.224 - bool
7.225 - prompt "2.6.15.2"
7.226 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.227 -
7.228 -config KERNEL_COPY_V_2_6_15_3
7.229 - bool
7.230 - prompt "2.6.15.3"
7.231 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.232 -
7.233 -config KERNEL_COPY_V_2_6_15_4
7.234 - bool
7.235 - prompt "2.6.15.4"
7.236 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.237 -
7.238 -config KERNEL_COPY_V_2_6_15_5
7.239 - bool
7.240 - prompt "2.6.15.5"
7.241 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.242 -
7.243 -config KERNEL_COPY_V_2_6_15_6
7.244 - bool
7.245 - prompt "2.6.15.6"
7.246 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.247 -
7.248 -config KERNEL_COPY_V_2_6_15_7
7.249 - bool
7.250 - prompt "2.6.15.7"
7.251 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.252 -
7.253 -config KERNEL_COPY_V_2_6_16
7.254 - bool
7.255 - prompt "2.6.16"
7.256 -
7.257 -config KERNEL_COPY_V_2_6_16_1
7.258 - bool
7.259 - prompt "2.6.16.1"
7.260 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.261 -
7.262 -config KERNEL_COPY_V_2_6_16_10
7.263 - bool
7.264 - prompt "2.6.16.10"
7.265 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.266 -
7.267 -config KERNEL_COPY_V_2_6_16_11
7.268 - bool
7.269 - prompt "2.6.16.11"
7.270 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.271 -
7.272 -config KERNEL_COPY_V_2_6_16_12
7.273 - bool
7.274 - prompt "2.6.16.12"
7.275 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.276 -
7.277 -config KERNEL_COPY_V_2_6_16_13
7.278 - bool
7.279 - prompt "2.6.16.13"
7.280 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.281 -
7.282 -config KERNEL_COPY_V_2_6_16_14
7.283 - bool
7.284 - prompt "2.6.16.14"
7.285 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.286 -
7.287 -config KERNEL_COPY_V_2_6_16_15
7.288 - bool
7.289 - prompt "2.6.16.15"
7.290 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.291 -
7.292 -config KERNEL_COPY_V_2_6_16_16
7.293 - bool
7.294 - prompt "2.6.16.16"
7.295 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.296 -
7.297 -config KERNEL_COPY_V_2_6_16_17
7.298 - bool
7.299 - prompt "2.6.16.17"
7.300 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.301 -
7.302 -config KERNEL_COPY_V_2_6_16_18
7.303 - bool
7.304 - prompt "2.6.16.18"
7.305 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.306 -
7.307 -config KERNEL_COPY_V_2_6_16_19
7.308 - bool
7.309 - prompt "2.6.16.19"
7.310 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.311 -
7.312 -config KERNEL_COPY_V_2_6_16_2
7.313 - bool
7.314 - prompt "2.6.16.2"
7.315 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.316 -
7.317 -config KERNEL_COPY_V_2_6_16_20
7.318 - bool
7.319 - prompt "2.6.16.20"
7.320 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.321 -
7.322 -config KERNEL_COPY_V_2_6_16_21
7.323 - bool
7.324 - prompt "2.6.16.21"
7.325 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.326 -
7.327 -config KERNEL_COPY_V_2_6_16_22
7.328 - bool
7.329 - prompt "2.6.16.22"
7.330 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.331 -
7.332 -config KERNEL_COPY_V_2_6_16_23
7.333 - bool
7.334 - prompt "2.6.16.23"
7.335 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.336 -
7.337 -config KERNEL_COPY_V_2_6_16_24
7.338 - bool
7.339 - prompt "2.6.16.24"
7.340 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.341 -
7.342 -config KERNEL_COPY_V_2_6_16_25
7.343 - bool
7.344 - prompt "2.6.16.25"
7.345 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.346 -
7.347 -config KERNEL_COPY_V_2_6_16_26
7.348 - bool
7.349 - prompt "2.6.16.26"
7.350 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.351 -
7.352 -config KERNEL_COPY_V_2_6_16_27
7.353 - bool
7.354 - prompt "2.6.16.27"
7.355 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.356 -
7.357 -config KERNEL_COPY_V_2_6_16_28
7.358 - bool
7.359 - prompt "2.6.16.28"
7.360 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.361 -
7.362 -config KERNEL_COPY_V_2_6_16_29
7.363 - bool
7.364 - prompt "2.6.16.29"
7.365 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.366 -
7.367 -config KERNEL_COPY_V_2_6_16_3
7.368 - bool
7.369 - prompt "2.6.16.3"
7.370 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.371 -
7.372 -config KERNEL_COPY_V_2_6_16_30
7.373 - bool
7.374 - prompt "2.6.16.30"
7.375 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.376 -
7.377 -config KERNEL_COPY_V_2_6_16_31
7.378 - bool
7.379 - prompt "2.6.16.31"
7.380 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.381 -
7.382 -config KERNEL_COPY_V_2_6_16_32
7.383 - bool
7.384 - prompt "2.6.16.32"
7.385 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.386 -
7.387 -config KERNEL_COPY_V_2_6_16_33
7.388 - bool
7.389 - prompt "2.6.16.33"
7.390 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.391 -
7.392 -config KERNEL_COPY_V_2_6_16_34
7.393 - bool
7.394 - prompt "2.6.16.34"
7.395 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.396 -
7.397 -config KERNEL_COPY_V_2_6_16_35
7.398 - bool
7.399 - prompt "2.6.16.35"
7.400 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.401 -
7.402 -config KERNEL_COPY_V_2_6_16_36
7.403 - bool
7.404 - prompt "2.6.16.36"
7.405 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.406 -
7.407 -config KERNEL_COPY_V_2_6_16_4
7.408 - bool
7.409 - prompt "2.6.16.4"
7.410 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.411 -
7.412 -config KERNEL_COPY_V_2_6_16_5
7.413 - bool
7.414 - prompt "2.6.16.5"
7.415 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.416 -
7.417 -config KERNEL_COPY_V_2_6_16_6
7.418 - bool
7.419 - prompt "2.6.16.6"
7.420 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.421 -
7.422 -config KERNEL_COPY_V_2_6_16_7
7.423 - bool
7.424 - prompt "2.6.16.7"
7.425 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.426 -
7.427 -config KERNEL_COPY_V_2_6_16_8
7.428 - bool
7.429 - prompt "2.6.16.8"
7.430 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.431 -
7.432 -config KERNEL_COPY_V_2_6_16_9
7.433 - bool
7.434 - prompt "2.6.16.9"
7.435 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.436 -
7.437 -config KERNEL_COPY_V_2_6_17
7.438 - bool
7.439 - prompt "2.6.17"
7.440 -
7.441 -config KERNEL_COPY_V_2_6_17_1
7.442 - bool
7.443 - prompt "2.6.17.1"
7.444 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.445 -
7.446 -config KERNEL_COPY_V_2_6_17_10
7.447 - bool
7.448 - prompt "2.6.17.10"
7.449 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.450 -
7.451 -config KERNEL_COPY_V_2_6_17_11
7.452 - bool
7.453 - prompt "2.6.17.11"
7.454 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.455 -
7.456 -config KERNEL_COPY_V_2_6_17_12
7.457 - bool
7.458 - prompt "2.6.17.12"
7.459 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.460 -
7.461 -config KERNEL_COPY_V_2_6_17_13
7.462 - bool
7.463 - prompt "2.6.17.13"
7.464 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.465 -
7.466 -config KERNEL_COPY_V_2_6_17_14
7.467 - bool
7.468 - prompt "2.6.17.14"
7.469 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.470 -
7.471 -config KERNEL_COPY_V_2_6_17_2
7.472 - bool
7.473 - prompt "2.6.17.2"
7.474 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.475 -
7.476 -config KERNEL_COPY_V_2_6_17_3
7.477 - bool
7.478 - prompt "2.6.17.3"
7.479 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.480 -
7.481 -config KERNEL_COPY_V_2_6_17_4
7.482 - bool
7.483 - prompt "2.6.17.4"
7.484 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.485 -
7.486 -config KERNEL_COPY_V_2_6_17_5
7.487 - bool
7.488 - prompt "2.6.17.5"
7.489 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.490 -
7.491 -config KERNEL_COPY_V_2_6_17_6
7.492 - bool
7.493 - prompt "2.6.17.6"
7.494 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.495 -
7.496 -config KERNEL_COPY_V_2_6_17_7
7.497 - bool
7.498 - prompt "2.6.17.7"
7.499 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.500 -
7.501 -config KERNEL_COPY_V_2_6_17_8
7.502 - bool
7.503 - prompt "2.6.17.8"
7.504 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.505 -
7.506 -config KERNEL_COPY_V_2_6_17_9
7.507 - bool
7.508 - prompt "2.6.17.9"
7.509 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.510 -
7.511 -config KERNEL_COPY_V_2_6_18
7.512 - bool
7.513 - prompt "2.6.18"
7.514 -
7.515 -config KERNEL_COPY_V_2_6_18_1
7.516 - bool
7.517 - prompt "2.6.18.1"
7.518 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.519 -
7.520 -config KERNEL_COPY_V_2_6_18_2
7.521 - bool
7.522 - prompt "2.6.18.2"
7.523 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.524 -
7.525 -config KERNEL_COPY_V_2_6_18_3
7.526 - bool
7.527 - prompt "2.6.18.3"
7.528 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.529 -
7.530 -config KERNEL_COPY_V_2_6_18_4
7.531 - bool
7.532 - prompt "2.6.18.4"
7.533 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.534 -
7.535 -config KERNEL_COPY_V_2_6_18_5
7.536 - bool
7.537 - prompt "2.6.18.5"
7.538 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.539 -
7.540 -config KERNEL_COPY_V_2_6_18_6
7.541 - bool
7.542 - prompt "2.6.18.6"
7.543 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.544 -
7.545 -config KERNEL_COPY_V_2_6_19
7.546 - bool
7.547 - prompt "2.6.19"
7.548 -
7.549 -config KERNEL_COPY_V_2_6_19_1
7.550 - bool
7.551 - prompt "2.6.19.1"
7.552 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
7.553 -
7.554 # CT_INSERT_VERSION_ABOVE
7.555 # Don't remove above line!
7.556 endchoice
7.557
7.558 config KERNEL_VERSION
7.559 string
7.560 - default "2.6.0" if KERNEL_COPY_V_2_6_0
7.561 - default "2.6.1" if KERNEL_COPY_V_2_6_1
7.562 - default "2.6.2" if KERNEL_COPY_V_2_6_2
7.563 - default "2.6.3" if KERNEL_COPY_V_2_6_3
7.564 - default "2.6.4" if KERNEL_COPY_V_2_6_4
7.565 default "2.6.5" if KERNEL_COPY_V_2_6_5
7.566 default "2.6.6" if KERNEL_COPY_V_2_6_6
7.567 default "2.6.7" if KERNEL_COPY_V_2_6_7
7.568 default "2.6.8" if KERNEL_COPY_V_2_6_8
7.569 - default "2.6.8.1" if KERNEL_COPY_V_2_6_8_1
7.570 - default "2.6.9" if KERNEL_COPY_V_2_6_9
7.571 - default "2.6.10" if KERNEL_COPY_V_2_6_10
7.572 - default "2.6.11" if KERNEL_COPY_V_2_6_11
7.573 - default "2.6.11.1" if KERNEL_COPY_V_2_6_11_1
7.574 - default "2.6.11.10" if KERNEL_COPY_V_2_6_11_10
7.575 - default "2.6.11.11" if KERNEL_COPY_V_2_6_11_11
7.576 - default "2.6.11.12" if KERNEL_COPY_V_2_6_11_12
7.577 - default "2.6.11.2" if KERNEL_COPY_V_2_6_11_2
7.578 default "2.6.11.3" if KERNEL_COPY_V_2_6_11_3
7.579 - default "2.6.11.4" if KERNEL_COPY_V_2_6_11_4
7.580 - default "2.6.11.5" if KERNEL_COPY_V_2_6_11_5
7.581 - default "2.6.11.6" if KERNEL_COPY_V_2_6_11_6
7.582 - default "2.6.11.7" if KERNEL_COPY_V_2_6_11_7
7.583 - default "2.6.11.8" if KERNEL_COPY_V_2_6_11_8
7.584 - default "2.6.11.9" if KERNEL_COPY_V_2_6_11_9
7.585 - default "2.6.12" if KERNEL_COPY_V_2_6_12
7.586 - default "2.6.12.1" if KERNEL_COPY_V_2_6_12_1
7.587 - default "2.6.12.2" if KERNEL_COPY_V_2_6_12_2
7.588 - default "2.6.12.3" if KERNEL_COPY_V_2_6_12_3
7.589 - default "2.6.12.4" if KERNEL_COPY_V_2_6_12_4
7.590 - default "2.6.12.5" if KERNEL_COPY_V_2_6_12_5
7.591 - default "2.6.12.6" if KERNEL_COPY_V_2_6_12_6
7.592 - default "2.6.13" if KERNEL_COPY_V_2_6_13
7.593 - default "2.6.13.1" if KERNEL_COPY_V_2_6_13_1
7.594 - default "2.6.13.2" if KERNEL_COPY_V_2_6_13_2
7.595 - default "2.6.13.3" if KERNEL_COPY_V_2_6_13_3
7.596 - default "2.6.13.4" if KERNEL_COPY_V_2_6_13_4
7.597 - default "2.6.13.5" if KERNEL_COPY_V_2_6_13_5
7.598 - default "2.6.14" if KERNEL_COPY_V_2_6_14
7.599 - default "2.6.14.1" if KERNEL_COPY_V_2_6_14_1
7.600 - default "2.6.14.2" if KERNEL_COPY_V_2_6_14_2
7.601 - default "2.6.14.3" if KERNEL_COPY_V_2_6_14_3
7.602 - default "2.6.14.4" if KERNEL_COPY_V_2_6_14_4
7.603 - default "2.6.14.5" if KERNEL_COPY_V_2_6_14_5
7.604 - default "2.6.14.6" if KERNEL_COPY_V_2_6_14_6
7.605 - default "2.6.14.7" if KERNEL_COPY_V_2_6_14_7
7.606 - default "2.6.15" if KERNEL_COPY_V_2_6_15
7.607 - default "2.6.15.1" if KERNEL_COPY_V_2_6_15_1
7.608 - default "2.6.15.2" if KERNEL_COPY_V_2_6_15_2
7.609 - default "2.6.15.3" if KERNEL_COPY_V_2_6_15_3
7.610 - default "2.6.15.4" if KERNEL_COPY_V_2_6_15_4
7.611 - default "2.6.15.5" if KERNEL_COPY_V_2_6_15_5
7.612 - default "2.6.15.6" if KERNEL_COPY_V_2_6_15_6
7.613 - default "2.6.15.7" if KERNEL_COPY_V_2_6_15_7
7.614 - default "2.6.16" if KERNEL_COPY_V_2_6_16
7.615 - default "2.6.16.1" if KERNEL_COPY_V_2_6_16_1
7.616 - default "2.6.16.10" if KERNEL_COPY_V_2_6_16_10
7.617 - default "2.6.16.11" if KERNEL_COPY_V_2_6_16_11
7.618 - default "2.6.16.12" if KERNEL_COPY_V_2_6_16_12
7.619 - default "2.6.16.13" if KERNEL_COPY_V_2_6_16_13
7.620 - default "2.6.16.14" if KERNEL_COPY_V_2_6_16_14
7.621 - default "2.6.16.15" if KERNEL_COPY_V_2_6_16_15
7.622 - default "2.6.16.16" if KERNEL_COPY_V_2_6_16_16
7.623 - default "2.6.16.17" if KERNEL_COPY_V_2_6_16_17
7.624 - default "2.6.16.18" if KERNEL_COPY_V_2_6_16_18
7.625 - default "2.6.16.19" if KERNEL_COPY_V_2_6_16_19
7.626 - default "2.6.16.2" if KERNEL_COPY_V_2_6_16_2
7.627 - default "2.6.16.20" if KERNEL_COPY_V_2_6_16_20
7.628 - default "2.6.16.21" if KERNEL_COPY_V_2_6_16_21
7.629 - default "2.6.16.22" if KERNEL_COPY_V_2_6_16_22
7.630 - default "2.6.16.23" if KERNEL_COPY_V_2_6_16_23
7.631 - default "2.6.16.24" if KERNEL_COPY_V_2_6_16_24
7.632 - default "2.6.16.25" if KERNEL_COPY_V_2_6_16_25
7.633 - default "2.6.16.26" if KERNEL_COPY_V_2_6_16_26
7.634 - default "2.6.16.27" if KERNEL_COPY_V_2_6_16_27
7.635 - default "2.6.16.28" if KERNEL_COPY_V_2_6_16_28
7.636 - default "2.6.16.29" if KERNEL_COPY_V_2_6_16_29
7.637 - default "2.6.16.3" if KERNEL_COPY_V_2_6_16_3
7.638 - default "2.6.16.30" if KERNEL_COPY_V_2_6_16_30
7.639 - default "2.6.16.31" if KERNEL_COPY_V_2_6_16_31
7.640 - default "2.6.16.32" if KERNEL_COPY_V_2_6_16_32
7.641 - default "2.6.16.33" if KERNEL_COPY_V_2_6_16_33
7.642 - default "2.6.16.34" if KERNEL_COPY_V_2_6_16_34
7.643 - default "2.6.16.35" if KERNEL_COPY_V_2_6_16_35
7.644 - default "2.6.16.36" if KERNEL_COPY_V_2_6_16_36
7.645 - default "2.6.16.4" if KERNEL_COPY_V_2_6_16_4
7.646 - default "2.6.16.5" if KERNEL_COPY_V_2_6_16_5
7.647 - default "2.6.16.6" if KERNEL_COPY_V_2_6_16_6
7.648 - default "2.6.16.7" if KERNEL_COPY_V_2_6_16_7
7.649 - default "2.6.16.8" if KERNEL_COPY_V_2_6_16_8
7.650 - default "2.6.16.9" if KERNEL_COPY_V_2_6_16_9
7.651 - default "2.6.17" if KERNEL_COPY_V_2_6_17
7.652 - default "2.6.17.1" if KERNEL_COPY_V_2_6_17_1
7.653 - default "2.6.17.10" if KERNEL_COPY_V_2_6_17_10
7.654 - default "2.6.17.11" if KERNEL_COPY_V_2_6_17_11
7.655 - default "2.6.17.12" if KERNEL_COPY_V_2_6_17_12
7.656 - default "2.6.17.13" if KERNEL_COPY_V_2_6_17_13
7.657 - default "2.6.17.14" if KERNEL_COPY_V_2_6_17_14
7.658 - default "2.6.17.2" if KERNEL_COPY_V_2_6_17_2
7.659 - default "2.6.17.3" if KERNEL_COPY_V_2_6_17_3
7.660 - default "2.6.17.4" if KERNEL_COPY_V_2_6_17_4
7.661 - default "2.6.17.5" if KERNEL_COPY_V_2_6_17_5
7.662 - default "2.6.17.6" if KERNEL_COPY_V_2_6_17_6
7.663 - default "2.6.17.7" if KERNEL_COPY_V_2_6_17_7
7.664 - default "2.6.17.8" if KERNEL_COPY_V_2_6_17_8
7.665 - default "2.6.17.9" if KERNEL_COPY_V_2_6_17_9
7.666 - default "2.6.18" if KERNEL_COPY_V_2_6_18
7.667 - default "2.6.18.1" if KERNEL_COPY_V_2_6_18_1
7.668 - default "2.6.18.2" if KERNEL_COPY_V_2_6_18_2
7.669 - default "2.6.18.3" if KERNEL_COPY_V_2_6_18_3
7.670 - default "2.6.18.4" if KERNEL_COPY_V_2_6_18_4
7.671 - default "2.6.18.5" if KERNEL_COPY_V_2_6_18_5
7.672 - default "2.6.18.6" if KERNEL_COPY_V_2_6_18_6
7.673 - default "2.6.19" if KERNEL_COPY_V_2_6_19
7.674 - default "2.6.19.1" if KERNEL_COPY_V_2_6_19_1
7.675 # CT_INSERT_VERSION_STRING_ABOVE
7.676 # Don't remove above line!
8.1 --- a/config/kernel_linux_headers_install.in Tue Aug 14 19:32:22 2007 +0000
8.2 +++ b/config/kernel_linux_headers_install.in Tue Aug 14 20:11:44 2007 +0000
8.3 @@ -2,203 +2,24 @@
8.4 bool
8.5 prompt "Linux kernel version"
8.6
8.7 -config KERNEL_INSTALL_V_2_6_18
8.8 - bool
8.9 - prompt "2.6.18"
8.10 - depends on OBSOLETE
8.11 -
8.12 -config KERNEL_INSTALL_V_2_6_18_1
8.13 - bool
8.14 - prompt "2.6.18.1"
8.15 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.16 -
8.17 -config KERNEL_INSTALL_V_2_6_18_2
8.18 - bool
8.19 - prompt "2.6.18.2"
8.20 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.21 -
8.22 -config KERNEL_INSTALL_V_2_6_18_3
8.23 - bool
8.24 - prompt "2.6.18.3"
8.25 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.26 -
8.27 -config KERNEL_INSTALL_V_2_6_18_4
8.28 - bool
8.29 - prompt "2.6.18.4"
8.30 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.31 -
8.32 -config KERNEL_INSTALL_V_2_6_18_5
8.33 - bool
8.34 - prompt "2.6.18.5"
8.35 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.36 -
8.37 -config KERNEL_INSTALL_V_2_6_18_6
8.38 - bool
8.39 - prompt "2.6.18.6"
8.40 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.41 -
8.42 -config KERNEL_INSTALL_V_2_6_18_7
8.43 - bool
8.44 - prompt "2.6.18.7"
8.45 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.46 -
8.47 config KERNEL_INSTALL_V_2_6_18_8
8.48 bool
8.49 - prompt "2.6.18.8"
8.50 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.51 -
8.52 -config KERNEL_INSTALL_V_2_6_19
8.53 - bool
8.54 - prompt "2.6.19"
8.55 - depends on OBSOLETE
8.56 -
8.57 -config KERNEL_INSTALL_V_2_6_19_1
8.58 - bool
8.59 - prompt "2.6.19.1"
8.60 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.61 -
8.62 -config KERNEL_INSTALL_V_2_6_19_2
8.63 - bool
8.64 - prompt "2.6.19.2"
8.65 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.66 -
8.67 -config KERNEL_INSTALL_V_2_6_19_3
8.68 - bool
8.69 - prompt "2.6.19.3"
8.70 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.71 -
8.72 -config KERNEL_INSTALL_V_2_6_19_4
8.73 - bool
8.74 - prompt "2.6.19.4"
8.75 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.76 -
8.77 -config KERNEL_INSTALL_V_2_6_19_5
8.78 - bool
8.79 - prompt "2.6.19.5"
8.80 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.81 -
8.82 -config KERNEL_INSTALL_V_2_6_19_6
8.83 - bool
8.84 - prompt "2.6.19.6"
8.85 + prompt "2.6.18.8 (OBSOLETE)"
8.86 depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.87
8.88 config KERNEL_INSTALL_V_2_6_19_7
8.89 bool
8.90 - prompt "2.6.19.7"
8.91 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.92 -
8.93 -config KERNEL_INSTALL_V_2_6_20
8.94 - bool
8.95 - prompt "2.6.20"
8.96 - depends on OBSOLETE
8.97 -
8.98 -config KERNEL_INSTALL_V_2_6_20_1
8.99 - bool
8.100 - prompt "2.6.20.1"
8.101 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.102 -
8.103 -config KERNEL_INSTALL_V_2_6_20_2
8.104 - bool
8.105 - prompt "2.6.20.2"
8.106 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.107 -
8.108 -config KERNEL_INSTALL_V_2_6_20_3
8.109 - bool
8.110 - prompt "2.6.20.3"
8.111 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.112 -
8.113 -config KERNEL_INSTALL_V_2_6_20_4
8.114 - bool
8.115 - prompt "2.6.20.4"
8.116 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.117 -
8.118 -config KERNEL_INSTALL_V_2_6_20_5
8.119 - bool
8.120 - prompt "2.6.20.5"
8.121 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.122 -
8.123 -config KERNEL_INSTALL_V_2_6_20_6
8.124 - bool
8.125 - prompt "2.6.20.6"
8.126 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.127 -
8.128 -config KERNEL_INSTALL_V_2_6_20_7
8.129 - bool
8.130 - prompt "2.6.20.7"
8.131 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.132 -
8.133 -config KERNEL_INSTALL_V_2_6_20_8
8.134 - bool
8.135 - prompt "2.6.20.8"
8.136 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.137 -
8.138 -config KERNEL_INSTALL_V_2_6_20_9
8.139 - bool
8.140 - prompt "2.6.20.9"
8.141 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.142 -
8.143 -config KERNEL_INSTALL_V_2_6_20_10
8.144 - bool
8.145 - prompt "2.6.20.10"
8.146 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.147 -
8.148 -config KERNEL_INSTALL_V_2_6_20_11
8.149 - bool
8.150 - prompt "2.6.20.11"
8.151 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.152 -
8.153 -config KERNEL_INSTALL_V_2_6_20_12
8.154 - bool
8.155 - prompt "2.6.20.12"
8.156 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.157 -
8.158 -config KERNEL_INSTALL_V_2_6_20_13
8.159 - bool
8.160 - prompt "2.6.20.13"
8.161 - depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.162 -
8.163 -config KERNEL_INSTALL_V_2_6_20_14
8.164 - bool
8.165 - prompt "2.6.20.14"
8.166 + prompt "2.6.19.7 (OBSOLETE)"
8.167 depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.168
8.169 config KERNEL_INSTALL_V_2_6_20_15
8.170 bool
8.171 - prompt "2.6.20.15"
8.172 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.173 + prompt "2.6.20.15 (OBSOLETE)"
8.174 + depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
8.175
8.176 -config KERNEL_INSTALL_V_2_6_21
8.177 +config KERNEL_INSTALL_V_2_6_21_7
8.178 bool
8.179 - prompt "2.6.21"
8.180 -
8.181 -config KERNEL_INSTALL_V_2_6_21_1
8.182 - bool
8.183 - prompt "2.6.21.1"
8.184 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.185 -
8.186 -config KERNEL_INSTALL_V_2_6_21_2
8.187 - bool
8.188 - prompt "2.6.21.2"
8.189 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.190 -
8.191 -config KERNEL_INSTALL_V_2_6_21_3
8.192 - bool
8.193 - prompt "2.6.21.3"
8.194 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.195 -
8.196 -config KERNEL_INSTALL_V_2_6_21_4
8.197 - bool
8.198 - prompt "2.6.21.4"
8.199 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.200 -
8.201 -config KERNEL_INSTALL_V_2_6_21_5
8.202 - bool
8.203 - prompt "2.6.21.5"
8.204 - depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.205 -
8.206 -config KERNEL_INSTALL_V_2_6_21_6
8.207 - bool
8.208 - prompt "2.6.21.6"
8.209 + prompt "2.6.21.7"
8.210 depends on KERNEL_VERSION_SEE_EXTRAVERSION
8.211
8.212 config KERNEL_INSTALL_V_2_6_22
8.213 @@ -221,46 +42,10 @@
8.214
8.215 config KERNEL_VERSION
8.216 string
8.217 - default "2.6.18" if KERNEL_INSTALL_V_2_6_18
8.218 - default "2.6.18.1" if KERNEL_INSTALL_V_2_6_18_1
8.219 - default "2.6.18.2" if KERNEL_INSTALL_V_2_6_18_2
8.220 - default "2.6.18.3" if KERNEL_INSTALL_V_2_6_18_3
8.221 - default "2.6.18.4" if KERNEL_INSTALL_V_2_6_18_4
8.222 - default "2.6.18.5" if KERNEL_INSTALL_V_2_6_18_5
8.223 - default "2.6.18.6" if KERNEL_INSTALL_V_2_6_18_6
8.224 - default "2.6.18.7" if KERNEL_INSTALL_V_2_6_18_7
8.225 default "2.6.18.8" if KERNEL_INSTALL_V_2_6_18_8
8.226 - default "2.6.19" if KERNEL_INSTALL_V_2_6_19
8.227 - default "2.6.19.1" if KERNEL_INSTALL_V_2_6_19_1
8.228 - default "2.6.19.2" if KERNEL_INSTALL_V_2_6_19_2
8.229 - default "2.6.19.3" if KERNEL_INSTALL_V_2_6_19_3
8.230 - default "2.6.19.4" if KERNEL_INSTALL_V_2_6_19_4
8.231 - default "2.6.19.5" if KERNEL_INSTALL_V_2_6_19_5
8.232 - default "2.6.19.6" if KERNEL_INSTALL_V_2_6_19_6
8.233 default "2.6.19.7" if KERNEL_INSTALL_V_2_6_19_7
8.234 - default "2.6.20" if KERNEL_INSTALL_V_2_6_20
8.235 - default "2.6.20.1" if KERNEL_INSTALL_V_2_6_20_1
8.236 - default "2.6.20.2" if KERNEL_INSTALL_V_2_6_20_2
8.237 - default "2.6.20.3" if KERNEL_INSTALL_V_2_6_20_3
8.238 - default "2.6.20.4" if KERNEL_INSTALL_V_2_6_20_4
8.239 - default "2.6.20.5" if KERNEL_INSTALL_V_2_6_20_5
8.240 - default "2.6.20.6" if KERNEL_INSTALL_V_2_6_20_6
8.241 - default "2.6.20.7" if KERNEL_INSTALL_V_2_6_20_7
8.242 - default "2.6.20.8" if KERNEL_INSTALL_V_2_6_20_8
8.243 - default "2.6.20.9" if KERNEL_INSTALL_V_2_6_20_9
8.244 - default "2.6.20.10" if KERNEL_INSTALL_V_2_6_20_10
8.245 - default "2.6.20.11" if KERNEL_INSTALL_V_2_6_20_11
8.246 - default "2.6.20.12" if KERNEL_INSTALL_V_2_6_20_12
8.247 - default "2.6.20.13" if KERNEL_INSTALL_V_2_6_20_13
8.248 - default "2.6.20.14" if KERNEL_INSTALL_V_2_6_20_14
8.249 default "2.6.20.15" if KERNEL_INSTALL_V_2_6_20_15
8.250 - default "2.6.21" if KERNEL_INSTALL_V_2_6_21
8.251 - default "2.6.21.1" if KERNEL_INSTALL_V_2_6_21_1
8.252 - default "2.6.21.2" if KERNEL_INSTALL_V_2_6_21_2
8.253 - default "2.6.21.3" if KERNEL_INSTALL_V_2_6_21_3
8.254 - default "2.6.21.4" if KERNEL_INSTALL_V_2_6_21_4
8.255 - default "2.6.21.5" if KERNEL_INSTALL_V_2_6_21_5
8.256 - default "2.6.21.6" if KERNEL_INSTALL_V_2_6_21_6
8.257 + default "2.6.21.7" if KERNEL_INSTALL_V_2_6_21_7
8.258 default "2.6.22" if KERNEL_INSTALL_V_2_6_22
8.259 default "2.6.22.1" if KERNEL_INSTALL_V_2_6_22_1
8.260 default "2.6.22.2" if KERNEL_INSTALL_V_2_6_22_2
9.1 --- a/config/libc_glibc.in Tue Aug 14 19:32:22 2007 +0000
9.2 +++ b/config/libc_glibc.in Tue Aug 14 20:11:44 2007 +0000
9.3 @@ -4,103 +4,10 @@
9.4 bool
9.5 prompt "glibc version"
9.6
9.7 -config LIBC_V_1_09_1
9.8 - bool
9.9 - prompt "1.09.1"
9.10 - depends on OBSOLETE
9.11 -
9.12 -config LIBC_V_2_0_1
9.13 - bool
9.14 - prompt "2.0.1"
9.15 - depends on OBSOLETE
9.16 -
9.17 -config LIBC_V_2_0_6
9.18 - bool
9.19 - prompt "2.0.6"
9.20 - depends on OBSOLETE
9.21 -
9.22 -config LIBC_V_2_1_1
9.23 - bool
9.24 - prompt "2.1.1"
9.25 - depends on OBSOLETE
9.26 -
9.27 -config LIBC_V_2_1_2
9.28 - bool
9.29 - prompt "2.1.2"
9.30 - depends on OBSOLETE
9.31 -
9.32 -config LIBC_V_2_1_3
9.33 - bool
9.34 - prompt "2.1.3"
9.35 - depends on OBSOLETE
9.36 -
9.37 -config LIBC_V_2_2
9.38 - bool
9.39 - prompt "2.2"
9.40 - depends on OBSOLETE
9.41 -
9.42 -config LIBC_V_2_2_1
9.43 - bool
9.44 - prompt "2.2.1"
9.45 - depends on OBSOLETE
9.46 -
9.47 -config LIBC_V_2_2_2
9.48 - bool
9.49 - prompt "2.2.2"
9.50 - depends on OBSOLETE
9.51 -
9.52 -config LIBC_V_2_2_3
9.53 - bool
9.54 - prompt "2.2.3"
9.55 - depends on OBSOLETE
9.56 -
9.57 -config LIBC_V_2_2_4
9.58 - bool
9.59 - prompt "2.2.4"
9.60 - depends on OBSOLETE
9.61 -
9.62 -config LIBC_V_2_2_5
9.63 - bool
9.64 - prompt "2.2.5"
9.65 - depends on OBSOLETE
9.66 -
9.67 -config LIBC_V_2_3
9.68 - bool
9.69 - prompt "2.3"
9.70 - depends on OBSOLETE
9.71 -
9.72 -config LIBC_V_2_3_1
9.73 - bool
9.74 - prompt "2.3.1"
9.75 - depends on OBSOLETE
9.76 -
9.77 -config LIBC_V_2_3_2
9.78 - bool
9.79 - prompt "2.3.2"
9.80 - depends on OBSOLETE
9.81 -
9.82 -config LIBC_V_2_3_3
9.83 - bool
9.84 - prompt "2.3.3"
9.85 - depends on OBSOLETE
9.86 -
9.87 -config LIBC_V_2_3_4
9.88 - bool
9.89 - prompt "2.3.4"
9.90 - depends on OBSOLETE
9.91 -
9.92 -config LIBC_V_2_3_5
9.93 - bool
9.94 - prompt "2.3.5"
9.95 - depends on OBSOLETE
9.96 -
9.97 config LIBC_V_2_3_6
9.98 bool
9.99 - prompt "2.3.6"
9.100 -
9.101 -config LIBC_V_2_4
9.102 - bool
9.103 - prompt "2.4"
9.104 + prompt "2.3.6 (OBSOLETE)"
9.105 + depends on OBSOLETE
9.106
9.107 config LIBC_V_2_5
9.108 bool
9.109 @@ -108,8 +15,7 @@
9.110
9.111 config LIBC_V_2_5_1
9.112 bool
9.113 - prompt "2.5.1 (EXPERIMENTAL)"
9.114 - depends on EXPERIMENTAL
9.115 + prompt "2.5.1"
9.116
9.117 config LIBC_V_2_6
9.118 bool
9.119 @@ -127,24 +33,6 @@
9.120
9.121 config LIBC_VERSION
9.122 string
9.123 - default "1.09.1" if LIBC_V_1_09_1
9.124 - default "2.0.1" if LIBC_V_2_0_1
9.125 - default "2.0.6" if LIBC_V_2_0_6
9.126 - default "2.1.1" if LIBC_V_2_1_1
9.127 - default "2.1.2" if LIBC_V_2_1_2
9.128 - default "2.1.3" if LIBC_V_2_1_3
9.129 - default "2.2" if LIBC_V_2_2
9.130 - default "2.2.1" if LIBC_V_2_2_1
9.131 - default "2.2.2" if LIBC_V_2_2_2
9.132 - default "2.2.3" if LIBC_V_2_2_3
9.133 - default "2.2.4" if LIBC_V_2_2_4
9.134 - default "2.2.5" if LIBC_V_2_2_5
9.135 - default "2.3" if LIBC_V_2_3
9.136 - default "2.3.1" if LIBC_V_2_3_1
9.137 - default "2.3.2" if LIBC_V_2_3_2
9.138 - default "2.3.3" if LIBC_V_2_3_3
9.139 - default "2.3.4" if LIBC_V_2_3_4
9.140 - default "2.3.5" if LIBC_V_2_3_5
9.141 default "2.3.6" if LIBC_V_2_3_6
9.142 default "2.4" if LIBC_V_2_4
9.143 default "2.5" if LIBC_V_2_5
10.1 --- a/config/libc_uClibc.in Tue Aug 14 19:32:22 2007 +0000
10.2 +++ b/config/libc_uClibc.in Tue Aug 14 20:11:44 2007 +0000
10.3 @@ -12,29 +12,19 @@
10.4 bool
10.5 prompt "<specific date>"
10.6
10.7 -config LIBC_V_0_9_26
10.8 - bool
10.9 - prompt "0.9.26"
10.10 - depends on OBSOLETE
10.11 -
10.12 -config LIBC_V_0_9_27
10.13 - bool
10.14 - prompt "0.9.27"
10.15 - depends on OBSOLETE
10.16 -
10.17 config LIBC_V_0_9_28
10.18 bool
10.19 - prompt "0.9.28"
10.20 + prompt "0.9.28 (OBSOLETE)"
10.21 depends on OBSOLETE
10.22
10.23 config LIBC_V_0_9_28_1
10.24 bool
10.25 - prompt "0.9.28.1"
10.26 + prompt "0.9.28.1 (OBSOLETE)"
10.27 depends on OBSOLETE
10.28
10.29 config LIBC_V_0_9_28_2
10.30 bool
10.31 - prompt "0.9.28.2"
10.32 + prompt "0.9.28.2 (OBSOLETE)"
10.33 depends on OBSOLETE
10.34
10.35 config LIBC_V_0_9_28_3
10.36 @@ -53,8 +43,6 @@
10.37 string
10.38 prompt "Enter date (YYYYMMDD)" if LIBC_V_specific_date
10.39 default "snapshot" if LIBC_V_snapshot
10.40 - default "0.9.26" if LIBC_V_0_9_26
10.41 - default "0.9.27" if LIBC_V_0_9_27
10.42 default "0.9.28" if LIBC_V_0_9_28
10.43 default "0.9.28.1" if LIBC_V_0_9_28_1
10.44 default "0.9.28.2" if LIBC_V_0_9_28_2
10.45 @@ -62,6 +50,12 @@
10.46 default "0.9.29" if LIBC_V_0_9_29
10.47 # CT_INSERT_VERSION_STRING_ABOVE
10.48 # Don't remove above line!
10.49 + help
10.50 + Enter the date of the snapshot you want to use in the form: YYYYMMDD
10.51 + where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
10.52 + day in the month.
10.53 +
10.54 + Please note that uClibc site removes snapshots older than a month.
10.55
10.56 choice
10.57 bool
11.1 --- a/config/tools/libelf.in Tue Aug 14 19:32:22 2007 +0000
11.2 +++ b/config/tools/libelf.in Tue Aug 14 20:11:44 2007 +0000
11.3 @@ -19,44 +19,9 @@
11.4 bool
11.5 prompt "libelf version"
11.6
11.7 -config LIBELF_V_0_8_0
11.8 - bool
11.9 - prompt "0.8.0"
11.10 - depends on OBSOLETE
11.11 -
11.12 -config LIBELF_V_0_8_2
11.13 - bool
11.14 - prompt "0.8.2"
11.15 - depends on OBSOLETE
11.16 -
11.17 -config LIBELF_V_0_8_3
11.18 - bool
11.19 - prompt "0.8.3"
11.20 - depends on OBSOLETE
11.21 -
11.22 -config LIBELF_V_0_8_4
11.23 - bool
11.24 - prompt "0.8.4"
11.25 - depends on OBSOLETE
11.26 -
11.27 -config LIBELF_V_0_8_5
11.28 - bool
11.29 - prompt "0.8.5"
11.30 - depends on OBSOLETE
11.31 -
11.32 -config LIBELF_V_0_8_6
11.33 - bool
11.34 - prompt "0.8.6"
11.35 - depends on OBSOLETE
11.36 -
11.37 -config LIBELF_V_0_8_7
11.38 - bool
11.39 - prompt "0.8.7"
11.40 - depends on OBSOLETE
11.41 -
11.42 config LIBELF_V_0_8_8
11.43 bool
11.44 - prompt "0.8.8"
11.45 + prompt "0.8.8 (OBSOLETE)"
11.46 depends on OBSOLETE
11.47
11.48 config LIBELF_V_0_8_9
11.49 @@ -69,13 +34,6 @@
11.50
11.51 config LIBELF_VERSION
11.52 string
11.53 - default "0.8.0" if LIBELF_V_0_8_0
11.54 - default "0.8.2" if LIBELF_V_0_8_2
11.55 - default "0.8.3" if LIBELF_V_0_8_3
11.56 - default "0.8.4" if LIBELF_V_0_8_4
11.57 - default "0.8.5" if LIBELF_V_0_8_5
11.58 - default "0.8.6" if LIBELF_V_0_8_6
11.59 - default "0.8.7" if LIBELF_V_0_8_7
11.60 default "0.8.8" if LIBELF_V_0_8_8
11.61 default "0.8.9" if LIBELF_V_0_8_9
11.62 # CT_INSERT_VERSION_STRING_ABOVE
12.1 --- a/patches/binutils/2.11.2/gcc-pr3106.patch Tue Aug 14 19:32:22 2007 +0000
12.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
12.3 @@ -1,28 +0,0 @@
12.4 -See http://gcc.gnu.org/PR3106
12.5 -Backported from gcc-3.0.x
12.6 -
12.7 -Fixes error
12.8 - .../binutils-2.11.2/libiberty/strerror.c:468: error: conflicting types for `sys_nerr'
12.9 - /usr/include/stdio.h:258: error: previous declaration of `sys_nerr'
12.10 - make[1]: *** [strerror.o] Error 1
12.11 - make: *** [all-libiberty] Error 2
12.12 -on Mac OS X.
12.13 -
12.14 ---- binutils-2.11.2/libiberty/strerror.c.old 2004-03-24 16:23:19.000000000 -0800
12.15 -+++ binutils-2.11.2/libiberty/strerror.c 2004-03-24 16:23:48.000000000 -0800
12.16 -@@ -13,6 +13,7 @@
12.17 - incompatible with our later declaration, perhaps by using const
12.18 - attributes. So we hide the declaration in errno.h (if any) using a
12.19 - macro. */
12.20 -+#define sys_nerr sys_nerr__
12.21 - #define sys_errlist sys_errlist__
12.22 - #endif
12.23 -
12.24 -@@ -20,6 +21,7 @@
12.25 - #include <errno.h>
12.26 -
12.27 - #ifdef HAVE_SYS_ERRLIST
12.28 -+#undef sys_nerr
12.29 - #undef sys_errlist
12.30 - #endif
12.31 -
13.1 --- a/patches/binutils/2.13.90.0.2/README Tue Aug 14 19:32:22 2007 +0000
13.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
13.3 @@ -1,6 +0,0 @@
13.4 -The files rh62*.patch are from the Red Hat 6.2 file
13.5 -binutils-2.13.90.0.2-2.src.rpm
13.6 -
13.7 -I am trusting here that Red Hat's patches are appropriate for all CPU
13.8 -types. If I'm wrong, just remove the offending patch...
13.9 -- Dan Kegel
14.1 --- a/patches/binutils/2.13.90.0.2/rh62-binutils-2.11.93.0.2-sparc-nonpic.patch Tue Aug 14 19:32:22 2007 +0000
14.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
14.3 @@ -1,96 +0,0 @@
14.4 -2002-04-20 Jakub Jelinek <jakub@redhat.com>
14.5 -
14.6 - * elf32-sparc.c (elf32_sparc_relocate_section): Find real output
14.7 - section with SEC_MERGE.
14.8 - * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
14.9 -
14.10 ---- binutils/bfd/elf32-sparc.c.jj Sat Apr 20 22:11:57 2002
14.11 -+++ binutils/bfd/elf32-sparc.c Sat Apr 20 23:06:33 2002
14.12 -@@ -1144,7 +1144,7 @@ elf32_sparc_relocate_section (output_bfd
14.13 - struct elf_link_hash_entry *h;
14.14 - Elf_Internal_Sym *sym;
14.15 - asection *sec;
14.16 -- bfd_vma relocation, off;
14.17 -+ bfd_vma relocation, off, orig_addend = 0;
14.18 - bfd_reloc_status_type r;
14.19 - boolean is_plt = false;
14.20 - boolean unresolved_reloc;
14.21 -@@ -1192,6 +1192,7 @@ elf32_sparc_relocate_section (output_bfd
14.22 - {
14.23 - sym = local_syms + r_symndx;
14.24 - sec = local_sections[r_symndx];
14.25 -+ orig_addend = rel->r_addend;
14.26 - relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
14.27 - }
14.28 - else
14.29 -@@ -1527,6 +1528,25 @@ elf32_sparc_relocate_section (output_bfd
14.30 - asection *osec;
14.31 -
14.32 - osec = sec->output_section;
14.33 -+ /* FIXME: As soon as making sections zero size
14.34 -+ is possible, this if can go away. */
14.35 -+ if (bfd_is_abs_section (osec)
14.36 -+ && h == NULL
14.37 -+ && (sec->flags & SEC_MERGE)
14.38 -+ && ELF_ST_TYPE (sym->st_info) == STT_SECTION
14.39 -+ && (elf_section_data (sec)->sec_info_type
14.40 -+ == ELF_INFO_TYPE_MERGE))
14.41 -+ {
14.42 -+ asection *msec;
14.43 -+
14.44 -+ msec = sec;
14.45 -+ _bfd_merged_section_offset (output_bfd, &msec,
14.46 -+ elf_section_data (sec)->sec_info,
14.47 -+ sym->st_value + orig_addend,
14.48 -+ (bfd_vma) 0);
14.49 -+ osec = msec->output_section;
14.50 -+ }
14.51 -+
14.52 - indx = elf_section_data (osec)->dynindx;
14.53 -
14.54 - /* FIXME: we really should be able to link non-pic
14.55 ---- binutils/bfd/elf64-sparc.c.jj Sat Apr 20 22:11:57 2002
14.56 -+++ binutils/bfd/elf64-sparc.c Sat Apr 20 23:12:18 2002
14.57 -@@ -1939,7 +1939,7 @@ sparc64_elf_relocate_section (output_bfd
14.58 - struct elf_link_hash_entry *h;
14.59 - Elf_Internal_Sym *sym;
14.60 - asection *sec;
14.61 -- bfd_vma relocation, off;
14.62 -+ bfd_vma relocation, off, orig_addend = 0;
14.63 - bfd_reloc_status_type r;
14.64 - boolean is_plt = false;
14.65 - boolean unresolved_reloc;
14.66 -@@ -1982,6 +1982,7 @@ sparc64_elf_relocate_section (output_bfd
14.67 - {
14.68 - sym = local_syms + r_symndx;
14.69 - sec = local_sections[r_symndx];
14.70 -+ orig_addend = rel->r_addend;
14.71 - relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
14.72 - }
14.73 - else
14.74 -@@ -2211,6 +2212,25 @@ sparc64_elf_relocate_section (output_bfd
14.75 - asection *osec;
14.76 -
14.77 - osec = sec->output_section;
14.78 -+ /* FIXME: As soon as making sections zero size
14.79 -+ is possible, this if can go away. */
14.80 -+ if (bfd_is_abs_section (osec)
14.81 -+ && h == NULL
14.82 -+ && (sec->flags & SEC_MERGE)
14.83 -+ && ELF_ST_TYPE (sym->st_info) == STT_SECTION
14.84 -+ && (elf_section_data (sec)->sec_info_type
14.85 -+ == ELF_INFO_TYPE_MERGE))
14.86 -+ {
14.87 -+ asection *msec;
14.88 -+
14.89 -+ msec = sec;
14.90 -+ _bfd_merged_section_offset (output_bfd, &msec,
14.91 -+ elf_section_data (sec)->sec_info,
14.92 -+ sym->st_value + orig_addend,
14.93 -+ (bfd_vma) 0);
14.94 -+ osec = msec->output_section;
14.95 -+ }
14.96 -+
14.97 - indx = elf_section_data (osec)->dynindx;
14.98 -
14.99 - /* FIXME: we really should be able to link non-pic
15.1 --- a/patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-glibc21.patch Tue Aug 14 19:32:22 2007 +0000
15.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
15.3 @@ -1,58 +0,0 @@
15.4 ---- binutils/ld/emulparams/elf_i386_glibc21.sh.jj Sat Aug 3 17:04:41 2002
15.5 -+++ binutils/ld/emulparams/elf_i386_glibc21.sh Sat Aug 3 17:04:41 2002
15.6 -@@ -0,0 +1,11 @@
15.7 -+SCRIPT_NAME=elf
15.8 -+OUTPUT_FORMAT="elf32-i386"
15.9 -+TEXT_START_ADDR=0x08048000
15.10 -+MAXPAGESIZE=0x1000
15.11 -+NONPAGED_TEXT_START_ADDR=0x08048000
15.12 -+ARCH=i386
15.13 -+MACHINE=
15.14 -+NOP=0x9090
15.15 -+TEMPLATE_NAME=elf32
15.16 -+GENERATE_SHLIB_SCRIPT=yes
15.17 -+LIB_PATH=/usr/i386-glibc21-linux/lib:/usr/local/lib
15.18 ---- binutils/ld/configure.tgt.jj Thu Aug 1 20:49:32 2002
15.19 -+++ binutils/ld/configure.tgt Sat Aug 3 17:06:18 2002
15.20 -@@ -143,7 +143,8 @@ i[3456]86-*-linux*aout*) targ_emul=i386l
15.21 - ;;
15.22 - i[3456]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
15.23 - i[3456]86-*-linux-gnu*) targ_emul=elf_i386
15.24 -- targ_extra_emuls=i386linux
15.25 -+ targ_extra_emuls="i386linux elf_i386_glibc21"
15.26 -+ targ_extra_libpath=elf_i386_glibc21
15.27 - if test x${want64} = xtrue; then
15.28 - targ_extra_emuls="$targ_extra_emuls elf_x86_64"
15.29 - fi
15.30 ---- binutils/ld/Makefile.am.jj Thu Aug 1 20:49:32 2002
15.31 -+++ binutils/ld/Makefile.am Sat Aug 3 17:04:41 2002
15.32 -@@ -181,6 +181,7 @@ ALL_EMULATIONS = \
15.33 - eelf_i386.o \
15.34 - eelf_i386_be.o \
15.35 - eelf_i386_chaos.o \
15.36 -+ eelf_i386_glibc21.o \
15.37 - eelf_i386_fbsd.o \
15.38 - eelf_i386_ldso.o \
15.39 - eelf_s390.o \
15.40 -@@ -718,6 +719,9 @@ eelf_i386_be.c: $(srcdir)/emulparams/elf
15.41 - eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \
15.42 - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS}
15.43 - ${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)"
15.44 -+eelf_i386_glibc21.c: $(srcdir)/emulparams/elf_i386_glibc21.sh \
15.45 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
15.46 -+ ${GENSCRIPTS} elf_i386_glibc21 "$(tdir_elf_i386_glibc21)"
15.47 - eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
15.48 - $(srcdir)/emulparams/elf_i386.sh \
15.49 - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
15.50 ---- binutils/ld/Makefile.in.jj Thu Aug 1 20:49:32 2002
15.51 -+++ binutils/ld/Makefile.in Sat Aug 3 17:07:34 2002
15.52 -@@ -1197,6 +1197,9 @@ eelf_i386_be.c: $(srcdir)/emulparams/elf
15.53 - eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \
15.54 - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS}
15.55 - ${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)"
15.56 -+eelf_i386_glibc21.c: $(srcdir)/emulparams/elf_i386_glibc21.sh \
15.57 -+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
15.58 -+ ${GENSCRIPTS} elf_i386_glibc21 "$(tdir_elf_i386_glibc21)"
15.59 - eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
15.60 - $(srcdir)/emulparams/elf_i386.sh \
15.61 - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
16.1 --- a/patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-gotpc.patch Tue Aug 14 19:32:22 2007 +0000
16.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
16.3 @@ -1,372 +0,0 @@
16.4 -2002-08-03 Jakub Jelinek <jakub@redhat.com>
16.5 -
16.6 - * config/tc-i386.c (output_insn): Save frag_now and frag_now_fix ()
16.7 - at start of insn, pass it to output_disp and output_imm.
16.8 - (output_disp): Added arguments. If _GLOBAL_OFFSET_TABLE_ is seen
16.9 - in displacement for R_386_32 reloc, use R_386_GOTPC and compute
16.10 - properly addend.
16.11 - (output_imm): Added arguments. Compute properly addend for
16.12 - R_386_GOTPC.
16.13 - (md_apply_fix3): Remove R_386_GOTPC handling.
16.14 - * testsuite/gas/i386/gotpc.s: New.
16.15 - * testsuite/gas/i386/gotpc.d: New.
16.16 - * testsuite/gas/i386/i386.exp: Add gotpc test.
16.17 -
16.18 ---- binutils/gas/config/tc-i386.c.jj 2002-07-18 11:35:39.000000000 +0200
16.19 -+++ binutils/gas/config/tc-i386.c 2002-08-02 21:13:18.000000000 +0200
16.20 -@@ -104,8 +104,10 @@ static void output_insn PARAMS ((void));
16.21 - static void output_branch PARAMS ((void));
16.22 - static void output_jump PARAMS ((void));
16.23 - static void output_interseg_jump PARAMS ((void));
16.24 --static void output_imm PARAMS ((void));
16.25 --static void output_disp PARAMS ((void));
16.26 -+static void output_imm PARAMS ((fragS *insn_start_frag,
16.27 -+ offsetT insn_start_off));
16.28 -+static void output_disp PARAMS ((fragS *insn_start_frag,
16.29 -+ offsetT insn_start_off));
16.30 - #ifndef I386COFF
16.31 - static void s_bss PARAMS ((int));
16.32 - #endif
16.33 -@@ -3101,14 +3103,21 @@ output_interseg_jump ()
16.34 - md_number_to_chars (p + size, (valueT) i.op[0].imms->X_add_number, 2);
16.35 - }
16.36 -
16.37 -+
16.38 - static void
16.39 - output_insn ()
16.40 - {
16.41 -+ fragS *insn_start_frag;
16.42 -+ offsetT insn_start_off;
16.43 -+
16.44 - /* Tie dwarf2 debug info to the address at the start of the insn.
16.45 - We can't do this after the insn has been output as the current
16.46 - frag may have been closed off. eg. by frag_var. */
16.47 - dwarf2_emit_insn (0);
16.48 -
16.49 -+ insn_start_frag = frag_now;
16.50 -+ insn_start_off = frag_now_fix ();
16.51 -+
16.52 - /* Output jumps. */
16.53 - if (i.tm.opcode_modifier & Jump)
16.54 - output_branch ();
16.55 -@@ -3179,10 +3188,10 @@ output_insn ()
16.56 - }
16.57 -
16.58 - if (i.disp_operands)
16.59 -- output_disp ();
16.60 -+ output_disp (insn_start_frag, insn_start_off);
16.61 -
16.62 - if (i.imm_operands)
16.63 -- output_imm ();
16.64 -+ output_imm (insn_start_frag, insn_start_off);
16.65 - }
16.66 -
16.67 - #ifdef DEBUG386
16.68 -@@ -3194,7 +3203,9 @@ output_insn ()
16.69 - }
16.70 -
16.71 - static void
16.72 --output_disp ()
16.73 -+output_disp (insn_start_frag, insn_start_off)
16.74 -+ fragS *insn_start_frag;
16.75 -+ offsetT insn_start_off;
16.76 - {
16.77 - char *p;
16.78 - unsigned int n;
16.79 -@@ -3224,6 +3235,7 @@ output_disp ()
16.80 - }
16.81 - else
16.82 - {
16.83 -+ RELOC_ENUM reloc_type;
16.84 - int size = 4;
16.85 - int sign = 0;
16.86 - int pcrel = (i.flags[n] & Operand_PCrel) != 0;
16.87 -@@ -3266,16 +3278,50 @@ output_disp ()
16.88 - }
16.89 -
16.90 - p = frag_more (size);
16.91 -+ reloc_type = reloc (size, pcrel, sign, i.reloc[n]);
16.92 -+#ifdef BFD_ASSEMBLER
16.93 -+ if (reloc_type == BFD_RELOC_32
16.94 -+ && GOT_symbol
16.95 -+ && GOT_symbol == i.op[n].disps->X_add_symbol
16.96 -+ && (i.op[n].disps->X_op == O_symbol
16.97 -+ || (i.op[n].disps->X_op == O_add
16.98 -+ && ((symbol_get_value_expression
16.99 -+ (i.op[n].disps->X_op_symbol)->X_op)
16.100 -+ == O_subtract))))
16.101 -+ {
16.102 -+ offsetT add;
16.103 -+
16.104 -+ if (insn_start_frag == frag_now)
16.105 -+ add = (p - frag_now->fr_literal) - insn_start_off;
16.106 -+ else
16.107 -+ {
16.108 -+ fragS *fr;
16.109 -+
16.110 -+ add = insn_start_frag->fr_fix - insn_start_off;
16.111 -+ for (fr = insn_start_frag->fr_next;
16.112 -+ fr && fr != frag_now; fr = fr->fr_next)
16.113 -+ add += fr->fr_fix;
16.114 -+ add += p - frag_now->fr_literal;
16.115 -+ }
16.116 -+
16.117 -+ /* We don't support dynamic linking on x86-64 yet. */
16.118 -+ if (flag_code == CODE_64BIT)
16.119 -+ abort ();
16.120 -+ reloc_type = BFD_RELOC_386_GOTPC;
16.121 -+ i.op[n].disps->X_add_number += add;
16.122 -+ }
16.123 -+#endif
16.124 - fix_new_exp (frag_now, p - frag_now->fr_literal, size,
16.125 -- i.op[n].disps, pcrel,
16.126 -- reloc (size, pcrel, sign, i.reloc[n]));
16.127 -+ i.op[n].disps, pcrel, reloc_type);
16.128 - }
16.129 - }
16.130 - }
16.131 - }
16.132 -
16.133 - static void
16.134 --output_imm ()
16.135 -+output_imm (insn_start_frag, insn_start_off)
16.136 -+ fragS *insn_start_frag;
16.137 -+ offsetT insn_start_off;
16.138 - {
16.139 - char *p;
16.140 - unsigned int n;
16.141 -@@ -3328,6 +3374,48 @@ output_imm ()
16.142 - p = frag_more (size);
16.143 - reloc_type = reloc (size, 0, sign, i.reloc[n]);
16.144 - #ifdef BFD_ASSEMBLER
16.145 -+ /* This is tough to explain. We end up with this one if we
16.146 -+ * have operands that look like
16.147 -+ * "_GLOBAL_OFFSET_TABLE_+[.-.L284]". The goal here is to
16.148 -+ * obtain the absolute address of the GOT, and it is strongly
16.149 -+ * preferable from a performance point of view to avoid using
16.150 -+ * a runtime relocation for this. The actual sequence of
16.151 -+ * instructions often look something like:
16.152 -+ *
16.153 -+ * call .L66
16.154 -+ * .L66:
16.155 -+ * popl %ebx
16.156 -+ * addl $_GLOBAL_OFFSET_TABLE_+[.-.L66],%ebx
16.157 -+ *
16.158 -+ * The call and pop essentially return the absolute address
16.159 -+ * of the label .L66 and store it in %ebx. The linker itself
16.160 -+ * will ultimately change the first operand of the addl so
16.161 -+ * that %ebx points to the GOT, but to keep things simple, the
16.162 -+ * .o file must have this operand set so that it generates not
16.163 -+ * the absolute address of .L66, but the absolute address of
16.164 -+ * itself. This allows the linker itself simply treat a GOTPC
16.165 -+ * relocation as asking for a pcrel offset to the GOT to be
16.166 -+ * added in, and the addend of the relocation is stored in the
16.167 -+ * operand field for the instruction itself.
16.168 -+ *
16.169 -+ * Our job here is to fix the operand so that it would add
16.170 -+ * the correct offset so that %ebx would point to itself. The
16.171 -+ * thing that is tricky is that .-.L66 will point to the
16.172 -+ * beginning of the instruction, so we need to further modify
16.173 -+ * the operand so that it will point to itself. There are
16.174 -+ * other cases where you have something like:
16.175 -+ *
16.176 -+ * .long $_GLOBAL_OFFSET_TABLE_+[.-.L66]
16.177 -+ *
16.178 -+ * and here no correction would be required. Internally in
16.179 -+ * the assembler we treat operands of this form as not being
16.180 -+ * pcrel since the '.' is explicitly mentioned, and I wonder
16.181 -+ * whether it would simplify matters to do it this way. Who
16.182 -+ * knows. In earlier versions of the PIC patches, the
16.183 -+ * pcrel_adjust field was used to store the correction, but
16.184 -+ * since the expression is not pcrel, I felt it would be
16.185 -+ * confusing to do it this way. */
16.186 -+
16.187 - if (reloc_type == BFD_RELOC_32
16.188 - && GOT_symbol
16.189 - && GOT_symbol == i.op[n].imms->X_add_symbol
16.190 -@@ -3337,11 +3425,26 @@ output_imm ()
16.191 - (i.op[n].imms->X_op_symbol)->X_op)
16.192 - == O_subtract))))
16.193 - {
16.194 -+ offsetT add;
16.195 -+
16.196 -+ if (insn_start_frag == frag_now)
16.197 -+ add = (p - frag_now->fr_literal) - insn_start_off;
16.198 -+ else
16.199 -+ {
16.200 -+ fragS *fr;
16.201 -+
16.202 -+ add = insn_start_frag->fr_fix - insn_start_off;
16.203 -+ for (fr = insn_start_frag->fr_next;
16.204 -+ fr && fr != frag_now; fr = fr->fr_next)
16.205 -+ add += fr->fr_fix;
16.206 -+ add += p - frag_now->fr_literal;
16.207 -+ }
16.208 -+
16.209 - /* We don't support dynamic linking on x86-64 yet. */
16.210 - if (flag_code == CODE_64BIT)
16.211 - abort ();
16.212 - reloc_type = BFD_RELOC_386_GOTPC;
16.213 -- i.op[n].imms->X_add_number += 3;
16.214 -+ i.op[n].imms->X_add_number += add;
16.215 - }
16.216 - #endif
16.217 - fix_new_exp (frag_now, p - frag_now->fr_literal, size,
16.218 -@@ -4542,48 +4645,6 @@ md_apply_fix3 (fixP, valP, seg)
16.219 - runtime we merely add the offset to the actual PLT entry. */
16.220 - value = -4;
16.221 - break;
16.222 -- case BFD_RELOC_386_GOTPC:
16.223 --
16.224 --/* This is tough to explain. We end up with this one if we have
16.225 -- * operands that look like "_GLOBAL_OFFSET_TABLE_+[.-.L284]". The goal
16.226 -- * here is to obtain the absolute address of the GOT, and it is strongly
16.227 -- * preferable from a performance point of view to avoid using a runtime
16.228 -- * relocation for this. The actual sequence of instructions often look
16.229 -- * something like:
16.230 -- *
16.231 -- * call .L66
16.232 -- * .L66:
16.233 -- * popl %ebx
16.234 -- * addl $_GLOBAL_OFFSET_TABLE_+[.-.L66],%ebx
16.235 -- *
16.236 -- * The call and pop essentially return the absolute address of
16.237 -- * the label .L66 and store it in %ebx. The linker itself will
16.238 -- * ultimately change the first operand of the addl so that %ebx points to
16.239 -- * the GOT, but to keep things simple, the .o file must have this operand
16.240 -- * set so that it generates not the absolute address of .L66, but the
16.241 -- * absolute address of itself. This allows the linker itself simply
16.242 -- * treat a GOTPC relocation as asking for a pcrel offset to the GOT to be
16.243 -- * added in, and the addend of the relocation is stored in the operand
16.244 -- * field for the instruction itself.
16.245 -- *
16.246 -- * Our job here is to fix the operand so that it would add the correct
16.247 -- * offset so that %ebx would point to itself. The thing that is tricky is
16.248 -- * that .-.L66 will point to the beginning of the instruction, so we need
16.249 -- * to further modify the operand so that it will point to itself.
16.250 -- * There are other cases where you have something like:
16.251 -- *
16.252 -- * .long $_GLOBAL_OFFSET_TABLE_+[.-.L66]
16.253 -- *
16.254 -- * and here no correction would be required. Internally in the assembler
16.255 -- * we treat operands of this form as not being pcrel since the '.' is
16.256 -- * explicitly mentioned, and I wonder whether it would simplify matters
16.257 -- * to do it this way. Who knows. In earlier versions of the PIC patches,
16.258 -- * the pcrel_adjust field was used to store the correction, but since the
16.259 -- * expression is not pcrel, I felt it would be confusing to do it this
16.260 -- * way. */
16.261 --
16.262 -- value -= 1;
16.263 -- break;
16.264 - case BFD_RELOC_386_GOT32:
16.265 - case BFD_RELOC_386_TLS_GD:
16.266 - case BFD_RELOC_386_TLS_LDM:
16.267 ---- binutils/gas/testsuite/gas/i386/gotpc.s.jj 2002-08-02 21:17:57.000000000 +0200
16.268 -+++ binutils/gas/testsuite/gas/i386/gotpc.s 2002-08-03 22:55:47.000000000 +0200
16.269 -@@ -0,0 +1,40 @@
16.270 -+ .text
16.271 -+test:
16.272 -+ addl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
16.273 -+ addl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
16.274 -+ addl $_GLOBAL_OFFSET_TABLE_, %eax
16.275 -+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
16.276 -+ leal _GLOBAL_OFFSET_TABLE+[.-test](%eax), %ebx
16.277 -+ leal _GLOBAL_OFFSET_TABLE+[.-test](%ebx), %eax
16.278 -+ leal _GLOBAL_OFFSET_TABLE+[.-test](%eax), %eax
16.279 -+ leal _GLOBAL_OFFSET_TABLE+[.-test](%ebx), %ebx
16.280 -+ subl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
16.281 -+ subl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
16.282 -+ subl $_GLOBAL_OFFSET_TABLE_, %eax
16.283 -+ subl $_GLOBAL_OFFSET_TABLE_, %ebx
16.284 -+ orl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
16.285 -+ orl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
16.286 -+ orl $_GLOBAL_OFFSET_TABLE_, %eax
16.287 -+ orl $_GLOBAL_OFFSET_TABLE_, %ebx
16.288 -+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
16.289 -+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
16.290 -+ movl $_GLOBAL_OFFSET_TABLE_, %eax
16.291 -+ movl $_GLOBAL_OFFSET_TABLE_, %ebx
16.292 -+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], foo
16.293 -+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], %gs:foo
16.294 -+ gs; movl $_GLOBAL_OFFSET_TABLE_+[.-test], foo
16.295 -+ movl $_GLOBAL_OFFSET_TABLE_+[.-test], _GLOBAL_OFFSET_TABLE_
16.296 -+ movl _GLOBAL_OFFSET_TABLE_+[.-test], %eax
16.297 -+ movl _GLOBAL_OFFSET_TABLE_+[.-test], %ebx
16.298 -+ movl %eax, _GLOBAL_OFFSET_TABLE_+[.-test]
16.299 -+ movl %ebx, _GLOBAL_OFFSET_TABLE_+[.-test]
16.300 -+ movl %eax, %gs:_GLOBAL_OFFSET_TABLE_+[.-test]
16.301 -+ movl %ebx, %gs:_GLOBAL_OFFSET_TABLE_+[.-test]
16.302 -+ gs; movl %eax, _GLOBAL_OFFSET_TABLE_+[.-test]
16.303 -+ gs; movl %ebx, _GLOBAL_OFFSET_TABLE_+[.-test]
16.304 -+ leal _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %eax
16.305 -+ leal _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %ebx
16.306 -+ movl _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %eax
16.307 -+ movl _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %ebx
16.308 -+ .long _GLOBAL_OFFSET_TABLE_+[.-test]
16.309 -+ .long _GLOBAL_OFFSET_TABLE_@GOTOFF
16.310 ---- binutils/gas/testsuite/gas/i386/gotpc.d.jj 2002-08-02 21:18:43.000000000 +0200
16.311 -+++ binutils/gas/testsuite/gas/i386/gotpc.d 2002-08-03 23:05:43.000000000 +0200
16.312 -@@ -0,0 +1,52 @@
16.313 -+#objdump: -drw
16.314 -+#name: i386 gotpc
16.315 -+
16.316 -+.*: +file format .*
16.317 -+
16.318 -+Disassembly of section .text:
16.319 -+
16.320 -+0+000 <test>:
16.321 -+ 0: 05 01 00 00 00 [ ]*add \$0x1,%eax 1: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.322 -+ 5: 81 c3 07 00 00 00 [ ]*add \$0x7,%ebx 7: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.323 -+ b: 05 01 00 00 00 [ ]*add \$0x1,%eax c: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.324 -+ 10: 81 c3 02 00 00 00 [ ]*add \$0x2,%ebx 12: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.325 -+ 16: 8d 98 16 00 00 00 [ ]*lea 0x16\(%eax\),%ebx 18: (R_386_)?(dir)?32 _GLOBAL_OFFSET_TABLE
16.326 -+ 1c: 8d 83 1c 00 00 00 [ ]*lea 0x1c\(%ebx\),%eax 1e: (R_386_)?(dir)?32 _GLOBAL_OFFSET_TABLE
16.327 -+ 22: 8d 80 22 00 00 00 [ ]*lea 0x22\(%eax\),%eax 24: (R_386_)?(dir)?32 _GLOBAL_OFFSET_TABLE
16.328 -+ 28: 8d 9b 28 00 00 00 [ ]*lea 0x28\(%ebx\),%ebx 2a: (R_386_)?(dir)?32 _GLOBAL_OFFSET_TABLE
16.329 -+ 2e: 2d 2f 00 00 00 [ ]*sub \$0x2f,%eax 2f: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.330 -+ 33: 81 eb 35 00 00 00 [ ]*sub \$0x35,%ebx 35: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.331 -+ 39: 2d 01 00 00 00 [ ]*sub \$0x1,%eax 3a: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.332 -+ 3e: 81 eb 02 00 00 00 [ ]*sub \$0x2,%ebx 40: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.333 -+ 44: 0d 45 00 00 00 [ ]*or \$0x45,%eax 45: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.334 -+ 49: 81 cb 4b 00 00 00 [ ]*or \$0x4b,%ebx 4b: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.335 -+ 4f: 0d 01 00 00 00 [ ]*or \$0x1,%eax 50: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.336 -+ 54: 81 cb 02 00 00 00 [ ]*or \$0x2,%ebx 56: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.337 -+ 5a: b8 5b 00 00 00 [ ]*mov \$0x5b,%eax 5b: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.338 -+ 5f: bb 60 00 00 00 [ ]*mov \$0x60,%ebx 60: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.339 -+ 64: b8 01 00 00 00 [ ]*mov \$0x1,%eax 65: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.340 -+ 69: bb 01 00 00 00 [ ]*mov \$0x1,%ebx 6a: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.341 -+ 6e: c7 05 00 00 00 00 74 00 00 00 [ ]*movl \$0x74,0x0 70: (R_386_)?(dir)?32 foo
16.342 -+[ ]*74: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.343 -+ 78: 65 c7 05 00 00 00 00 7f 00 00 00 [ ]*movl \$0x7f,%gs:0x0 7b: (R_386_)?(dir)?32 foo
16.344 -+[ ]*7f: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.345 -+ 83: 65 c7 05 00 00 00 00 8a 00 00 00 [ ]*movl \$0x8a,%gs:0x0 86: (R_386_)?(dir)?32 foo
16.346 -+[ ]*8a: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.347 -+ 8e: c7 05 02 00 00 00 94 00 00 00 [ ]*movl \$0x94,0x2 90: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.348 -+[ ]*94: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.349 -+ 98: a1 99 00 00 00 [ ]*mov 0x99,%eax 99: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.350 -+ 9d: 8b 1d 9f 00 00 00 [ ]*mov 0x9f,%ebx 9f: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.351 -+ a3: a3 a4 00 00 00 [ ]*mov %eax,0xa4 a4: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.352 -+ a8: 89 1d aa 00 00 00 [ ]*mov %ebx,0xaa aa: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.353 -+ ae: 65 a3 b0 00 00 00 [ ]*mov %eax,%gs:0xb0 b0: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.354 -+ b4: 65 89 1d b7 00 00 00 [ ]*mov %ebx,%gs:0xb7 b7: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.355 -+ bb: 65 a3 bd 00 00 00 [ ]*mov %eax,%gs:0xbd bd: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.356 -+ c1: 65 89 1d c4 00 00 00 [ ]*mov %ebx,%gs:0xc4 c4: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.357 -+ c8: 8d 83 00 00 00 00 [ ]*lea 0x0\(%ebx\),%eax ca: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
16.358 -+ ce: 8d 9b 00 00 00 00 [ ]*lea 0x0\(%ebx\),%ebx d0: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
16.359 -+ d4: 8b 83 00 00 00 00 [ ]*mov 0x0\(%ebx\),%eax d6: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
16.360 -+ da: 8b 9b 00 00 00 00 [ ]*mov 0x0\(%ebx\),%ebx dc: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
16.361 -+ e0: e0 00 [ ]*loopne e2 <test\+0xe2> e0: (R_386_)?GOTPC _GLOBAL_OFFSET_TABLE_
16.362 -+ e2: 00 00 [ ]*add %al,\(%eax\)
16.363 -+ e4: 00 00 [ ]*add %al,\(%eax\) e4: (R_386_)?GOTOFF _GLOBAL_OFFSET_TABLE_
16.364 -+ ...
16.365 ---- binutils/gas/testsuite/gas/i386/i386.exp.jj 2002-07-18 11:35:39.000000000 +0200
16.366 -+++ binutils/gas/testsuite/gas/i386/i386.exp 2002-08-02 21:57:46.000000000 +0200
16.367 -@@ -53,6 +53,7 @@ if [expr ([istarget "i*86-*-*"] || [ist
16.368 - run_dump_test "jump"
16.369 - run_dump_test "ssemmx2"
16.370 - run_dump_test "sse2"
16.371 -+ run_dump_test "gotpc"
16.372 -
16.373 - # PIC is only supported on ELF targets.
16.374 - if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] )
16.375 -
17.1 --- a/patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-tpoff32.patch Tue Aug 14 19:32:22 2007 +0000
17.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
17.3 @@ -1,27 +0,0 @@
17.4 -2002-08-07 Jakub Jelinek <jakub@redhat.com>
17.5 -
17.6 - * elf32-i386.c (elf_i386_relocate_section): Fill in proper addend
17.7 - for R_386_TLS_TPOFF32 relocs against symndx 0.
17.8 -
17.9 ---- binutils/bfd/elf32-i386.c.jj 2002-07-30 16:14:55.000000000 +0200
17.10 -+++ binutils/bfd/elf32-i386.c 2002-08-07 23:41:48.000000000 +0200
17.11 -@@ -2561,13 +2567,17 @@ elf_i386_relocate_section (output_bfd, i
17.12 - outrel.r_offset = (htab->sgot->output_section->vma
17.13 - + htab->sgot->output_offset + off);
17.14 -
17.15 -- bfd_put_32 (output_bfd, 0,
17.16 -- htab->sgot->contents + off);
17.17 - indx = h && h->dynindx != -1 ? h->dynindx : 0;
17.18 - if (r_type == R_386_TLS_GD)
17.19 - dr_type = R_386_TLS_DTPMOD32;
17.20 - else
17.21 - dr_type = R_386_TLS_TPOFF32;
17.22 -+ if (dr_type == R_386_TLS_TPOFF32 && indx == 0)
17.23 -+ bfd_put_32 (output_bfd, relocation - dtpoff_base (info),
17.24 -+ htab->sgot->contents + off);
17.25 -+ else
17.26 -+ bfd_put_32 (output_bfd, 0,
17.27 -+ htab->sgot->contents + off);
17.28 - outrel.r_info = ELF32_R_INFO (indx, dr_type);
17.29 - loc = (Elf32_External_Rel *) htab->srelgot->contents;
17.30 - loc += htab->srelgot->reloc_count++;
18.1 --- a/patches/binutils/2.14.90.0.5/binutils-cross-demangler.patch Tue Aug 14 19:32:22 2007 +0000
18.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
18.3 @@ -1,11 +0,0 @@
18.4 ---- orig/Makefile.in 2004-05-12 18:22:30.000000000 -0700
18.5 -+++ binutils-2.14.90.0.5/Makefile.in 2004-05-12 18:26:19.000000000 -0700
18.6 -@@ -24384,6 +24384,8 @@
18.7 - # Demangler depends on libiberty.
18.8 - configure-demangler: maybe-configure-libiberty
18.9 - all-demangler: maybe-all-libiberty
18.10 -+configure-build-demangler: maybe-configure-build-libiberty
18.11 -+all-build-demangler: maybe-all-build-libiberty
18.12 -
18.13 - # The new demangler, which is included in libiberty, is written in C++.
18.14 - # A working C++ compiler is required. For the target demangler, it may
19.1 --- a/patches/binutils/2.14.90.0.5/binutils-sh-relocs.patch Tue Aug 14 19:32:22 2007 +0000
19.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
19.3 @@ -1,38 +0,0 @@
19.4 -Message-Id: <200307311239.h6VCdNe27056@r-rr.iij4u.or.jp>
19.5 -To: dank@kegel.com
19.6 -Cc: kkojima@rr.iij4u.or.jp
19.7 -Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
19.8 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
19.9 -In-Reply-To: Your message of "Wed, 30 Jul 2003 21:55:54 -0700"
19.10 - <3F28A15A.5010400@kegel.com>
19.11 -References: <3F28A15A.5010400@kegel.com>
19.12 -Date: Thu, 31 Jul 2003 21:47:38 +0900
19.13 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
19.14 -
19.15 -Dan Kegel <dank@kegel.com> wrote:
19.16 ->> I'll give binutils-2.14.90.0.5 a shot, then.
19.17 ->
19.18 -> No joy - same problem. Guess I'll take this up on binutils and/or libc-alpha.
19.19 -
19.20 -Please try the patch below, though it's a diff against the current
19.21 -binutils CVS.
19.22 -
19.23 -Regards,
19.24 - kaz
19.25 ---
19.26 -diff -u3p ORIG/src/bfd/elf32-sh.c LOCAL/src/bfd/elf32-sh.c
19.27 ---- src/bfd/elf32-sh.c.old Fri Jul 25 14:46:58 2003
19.28 -+++ src/bfd/elf32-sh.c Thu Jul 31 21:09:38 2003
19.29 -@@ -6497,8 +6497,10 @@ sh_elf_check_relocs (bfd *abfd, struct b
19.30 - sreloc, 2))
19.31 - return FALSE;
19.32 - }
19.33 -+#if 0
19.34 - if (sec->flags & SEC_READONLY)
19.35 - info->flags |= DF_TEXTREL;
19.36 -+#endif
19.37 - elf_section_data (sec)->sreloc = sreloc;
19.38 - }
19.39 -
19.40 -
19.41 -
20.1 --- a/patches/binutils/2.14.90.0.7/binutils-cross-demangler.patch Tue Aug 14 19:32:22 2007 +0000
20.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
20.3 @@ -1,11 +0,0 @@
20.4 ---- orig/Makefile.in 2004-05-12 18:22:30.000000000 -0700
20.5 -+++ binutils-2.14.90.0.5/Makefile.in 2004-05-12 18:26:19.000000000 -0700
20.6 -@@ -24384,6 +24384,8 @@
20.7 - # Demangler depends on libiberty.
20.8 - configure-demangler: maybe-configure-libiberty
20.9 - all-demangler: maybe-all-libiberty
20.10 -+configure-build-demangler: maybe-configure-build-libiberty
20.11 -+all-build-demangler: maybe-all-build-libiberty
20.12 -
20.13 - # The new demangler, which is included in libiberty, is written in C++.
20.14 - # A working C++ compiler is required. For the target demangler, it may
21.1 --- a/patches/binutils/2.14.92/binutils-skip-comments.patch Tue Aug 14 19:32:22 2007 +0000
21.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
21.3 @@ -1,101 +0,0 @@
21.4 -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
21.5 -Fixes
21.6 -localealias.s:544: Error: junk at end of line, first unrecognized character is `,'
21.7 -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
21.8 -
21.9 -Paths adjusted to match crosstool's patcher.
21.10 -
21.11 -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
21.12 -From: Andreas Schwab <schwab at suse dot de>
21.13 -To: Nathan Sidwell <nathan at codesourcery dot com>
21.14 -Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
21.15 -Date: Fri, 23 Apr 2004 22:27:19 +0200
21.16 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
21.17 -
21.18 -Nathan Sidwell <nathan@codesourcery.com> writes:
21.19 -
21.20 -> Index: read.c
21.21 -> ===================================================================
21.22 -> RCS file: /cvs/src/src/gas/read.c,v
21.23 -> retrieving revision 1.76
21.24 -> diff -c -3 -p -r1.76 read.c
21.25 -> *** read.c 12 Mar 2004 17:48:12 -0000 1.76
21.26 -> --- read.c 18 Mar 2004 09:56:05 -0000
21.27 -> *************** read_a_source_file (char *name)
21.28 -> *** 1053,1059 ****
21.29 -> #endif
21.30 -> input_line_pointer--;
21.31 -> /* Report unknown char as ignored. */
21.32 -> ! ignore_rest_of_line ();
21.33 -> }
21.34 ->
21.35 -> #ifdef md_after_pass_hook
21.36 -> --- 1053,1059 ----
21.37 -> #endif
21.38 -> input_line_pointer--;
21.39 -> /* Report unknown char as ignored. */
21.40 -> ! demand_empty_rest_of_line ();
21.41 -> }
21.42 ->
21.43 -> #ifdef md_after_pass_hook
21.44 -
21.45 -This means that the unknown character is no longer ignored, despite the
21.46 -comment. As a side effect a line starting with a line comment character
21.47 -not followed by APP in NO_APP mode now triggers an error instead of just a
21.48 -warning, breaking builds of glibc on m68k-linux. Earlier in
21.49 -read_a_source_file where #APP is handled there is another comment that
21.50 -claims that unknown comments are ignored, when in fact they aren't (only
21.51 -the initial line comment character is skipped).
21.52 -
21.53 -Note that the presence of #APP will mess up the line counters, but
21.54 -that appears to be difficult to fix.
21.55 -
21.56 -Andreas.
21.57 -
21.58 -2004-04-23 Andreas Schwab <schwab@suse.de>
21.59 -
21.60 - * read.c (read_a_source_file): Ignore unknown text after line
21.61 - comment character. Fix misleading comment.
21.62 -
21.63 ---- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200
21.64 -+++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200
21.65 -@@ -1,6 +1,6 @@
21.66 - /* read.c - read a source file -
21.67 - Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
21.68 -- 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
21.69 -+ 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
21.70 -
21.71 - This file is part of GAS, the GNU Assembler.
21.72 -
21.73 -@@ -950,10 +950,14 @@ read_a_source_file (char *name)
21.74 - unsigned int new_length;
21.75 - char *tmp_buf = 0;
21.76 -
21.77 -- bump_line_counters ();
21.78 - s = input_line_pointer;
21.79 - if (strncmp (s, "APP\n", 4))
21.80 -- continue; /* We ignore it */
21.81 -+ {
21.82 -+ /* We ignore it */
21.83 -+ ignore_rest_of_line ();
21.84 -+ continue;
21.85 -+ }
21.86 -+ bump_line_counters ();
21.87 - s += 4;
21.88 -
21.89 - sb_new (&sbuf);
21.90 -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
21.91 - continue;
21.92 - #endif
21.93 - input_line_pointer--;
21.94 -- /* Report unknown char as ignored. */
21.95 -+ /* Report unknown char as error. */
21.96 - demand_empty_rest_of_line ();
21.97 - }
21.98 -
21.99 -
21.100 ---
21.101 -Andreas Schwab, SuSE Labs, schwab@suse.de
21.102 -SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany
21.103 -Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
21.104 -"And now for something completely different."
22.1 --- a/patches/binutils/2.14.92/gccpr15247-fix.patch Tue Aug 14 19:32:22 2007 +0000
22.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
22.3 @@ -1,192 +0,0 @@
22.4 -See
22.5 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15247
22.6 -
22.7 -Fixes spurious error
22.8 -/tmp/ccvNi4ou.s: Assembler messages:
22.9 -/tmp/ccvNi4ou.s:2310: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
22.10 -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
22.11 -
22.12 -when compiling glibc's dosincos.c with gcc-3.4.0
22.13 -
22.14 -===================================================================
22.15 -RCS file: /cvs/src/src/opcodes/sparc-opc.c,v
22.16 -retrieving revision 1.9
22.17 -retrieving revision 1.10
22.18 -diff -u -r1.9 -r1.10
22.19 ---- src/opcodes/sparc-opc.c 2004/01/18 23:46:32 1.9
22.20 -+++ src/opcodes/sparc-opc.c 2004/04/20 10:23:51 1.10
22.21 -@@ -1273,110 +1273,72 @@
22.22 - #define FM_DF 2 /* v9 */
22.23 - #define FM_QF 3 /* v9 */
22.24 -
22.25 --#define fmovicc(opcode, fpsize, cond, flags) /* v9 */ \
22.26 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags, v9 }, \
22.27 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags, v9 }
22.28 --
22.29 --#define fmovfcc(opcode, fpsize, fcond, flags) /* v9 */ \
22.30 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags, v9 }, \
22.31 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags, v9 }, \
22.32 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags, v9 }, \
22.33 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags, v9 }
22.34 -+#define fmoviccx(opcode, fpsize, args, cond, flags) /* v9 */ \
22.35 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags, v9 }, \
22.36 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags, v9 }
22.37 -+
22.38 -+#define fmovfccx(opcode, fpsize, args, fcond, flags) /* v9 */ \
22.39 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags, v9 }, \
22.40 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags, v9 }, \
22.41 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags, v9 }, \
22.42 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags, v9 }
22.43 -
22.44 - /* FIXME: use fmovicc/fmovfcc? */ /* v9 */
22.45 --#define fmovcc(opcode, fpsize, cond, fcond, flags) /* v9 */ \
22.46 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags | F_FLOAT, v9 }, \
22.47 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags | F_FLOAT, v9 }, \
22.48 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags | F_FLOAT, v9 }, \
22.49 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags | F_FLOAT, v9 }, \
22.50 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags | F_FLOAT, v9 }, \
22.51 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags | F_FLOAT, v9 }
22.52 --
22.53 --/* v9 */ fmovcc ("fmovda", FM_DF, CONDA, FCONDA, 0),
22.54 --/* v9 */ fmovcc ("fmovqa", FM_QF, CONDA, FCONDA, 0),
22.55 --/* v9 */ fmovcc ("fmovsa", FM_SF, CONDA, FCONDA, 0),
22.56 --/* v9 */ fmovicc ("fmovdcc", FM_DF, CONDCC, 0),
22.57 --/* v9 */ fmovicc ("fmovqcc", FM_QF, CONDCC, 0),
22.58 --/* v9 */ fmovicc ("fmovscc", FM_SF, CONDCC, 0),
22.59 --/* v9 */ fmovicc ("fmovdcs", FM_DF, CONDCS, 0),
22.60 --/* v9 */ fmovicc ("fmovqcs", FM_QF, CONDCS, 0),
22.61 --/* v9 */ fmovicc ("fmovscs", FM_SF, CONDCS, 0),
22.62 --/* v9 */ fmovcc ("fmovde", FM_DF, CONDE, FCONDE, 0),
22.63 --/* v9 */ fmovcc ("fmovqe", FM_QF, CONDE, FCONDE, 0),
22.64 --/* v9 */ fmovcc ("fmovse", FM_SF, CONDE, FCONDE, 0),
22.65 --/* v9 */ fmovcc ("fmovdg", FM_DF, CONDG, FCONDG, 0),
22.66 --/* v9 */ fmovcc ("fmovqg", FM_QF, CONDG, FCONDG, 0),
22.67 --/* v9 */ fmovcc ("fmovsg", FM_SF, CONDG, FCONDG, 0),
22.68 --/* v9 */ fmovcc ("fmovdge", FM_DF, CONDGE, FCONDGE, 0),
22.69 --/* v9 */ fmovcc ("fmovqge", FM_QF, CONDGE, FCONDGE, 0),
22.70 --/* v9 */ fmovcc ("fmovsge", FM_SF, CONDGE, FCONDGE, 0),
22.71 --/* v9 */ fmovicc ("fmovdgeu", FM_DF, CONDGEU, F_ALIAS),
22.72 --/* v9 */ fmovicc ("fmovqgeu", FM_QF, CONDGEU, F_ALIAS),
22.73 --/* v9 */ fmovicc ("fmovsgeu", FM_SF, CONDGEU, F_ALIAS),
22.74 --/* v9 */ fmovicc ("fmovdgu", FM_DF, CONDGU, 0),
22.75 --/* v9 */ fmovicc ("fmovqgu", FM_QF, CONDGU, 0),
22.76 --/* v9 */ fmovicc ("fmovsgu", FM_SF, CONDGU, 0),
22.77 --/* v9 */ fmovcc ("fmovdl", FM_DF, CONDL, FCONDL, 0),
22.78 --/* v9 */ fmovcc ("fmovql", FM_QF, CONDL, FCONDL, 0),
22.79 --/* v9 */ fmovcc ("fmovsl", FM_SF, CONDL, FCONDL, 0),
22.80 --/* v9 */ fmovcc ("fmovdle", FM_DF, CONDLE, FCONDLE, 0),
22.81 --/* v9 */ fmovcc ("fmovqle", FM_QF, CONDLE, FCONDLE, 0),
22.82 --/* v9 */ fmovcc ("fmovsle", FM_SF, CONDLE, FCONDLE, 0),
22.83 --/* v9 */ fmovicc ("fmovdleu", FM_DF, CONDLEU, 0),
22.84 --/* v9 */ fmovicc ("fmovqleu", FM_QF, CONDLEU, 0),
22.85 --/* v9 */ fmovicc ("fmovsleu", FM_SF, CONDLEU, 0),
22.86 --/* v9 */ fmovfcc ("fmovdlg", FM_DF, FCONDLG, 0),
22.87 --/* v9 */ fmovfcc ("fmovqlg", FM_QF, FCONDLG, 0),
22.88 --/* v9 */ fmovfcc ("fmovslg", FM_SF, FCONDLG, 0),
22.89 --/* v9 */ fmovicc ("fmovdlu", FM_DF, CONDLU, F_ALIAS),
22.90 --/* v9 */ fmovicc ("fmovqlu", FM_QF, CONDLU, F_ALIAS),
22.91 --/* v9 */ fmovicc ("fmovslu", FM_SF, CONDLU, F_ALIAS),
22.92 --/* v9 */ fmovcc ("fmovdn", FM_DF, CONDN, FCONDN, 0),
22.93 --/* v9 */ fmovcc ("fmovqn", FM_QF, CONDN, FCONDN, 0),
22.94 --/* v9 */ fmovcc ("fmovsn", FM_SF, CONDN, FCONDN, 0),
22.95 --/* v9 */ fmovcc ("fmovdne", FM_DF, CONDNE, FCONDNE, 0),
22.96 --/* v9 */ fmovcc ("fmovqne", FM_QF, CONDNE, FCONDNE, 0),
22.97 --/* v9 */ fmovcc ("fmovsne", FM_SF, CONDNE, FCONDNE, 0),
22.98 --/* v9 */ fmovicc ("fmovdneg", FM_DF, CONDNEG, 0),
22.99 --/* v9 */ fmovicc ("fmovqneg", FM_QF, CONDNEG, 0),
22.100 --/* v9 */ fmovicc ("fmovsneg", FM_SF, CONDNEG, 0),
22.101 --/* v9 */ fmovcc ("fmovdnz", FM_DF, CONDNZ, FCONDNZ, F_ALIAS),
22.102 --/* v9 */ fmovcc ("fmovqnz", FM_QF, CONDNZ, FCONDNZ, F_ALIAS),
22.103 --/* v9 */ fmovcc ("fmovsnz", FM_SF, CONDNZ, FCONDNZ, F_ALIAS),
22.104 --/* v9 */ fmovfcc ("fmovdo", FM_DF, FCONDO, 0),
22.105 --/* v9 */ fmovfcc ("fmovqo", FM_QF, FCONDO, 0),
22.106 --/* v9 */ fmovfcc ("fmovso", FM_SF, FCONDO, 0),
22.107 --/* v9 */ fmovicc ("fmovdpos", FM_DF, CONDPOS, 0),
22.108 --/* v9 */ fmovicc ("fmovqpos", FM_QF, CONDPOS, 0),
22.109 --/* v9 */ fmovicc ("fmovspos", FM_SF, CONDPOS, 0),
22.110 --/* v9 */ fmovfcc ("fmovdu", FM_DF, FCONDU, 0),
22.111 --/* v9 */ fmovfcc ("fmovqu", FM_QF, FCONDU, 0),
22.112 --/* v9 */ fmovfcc ("fmovsu", FM_SF, FCONDU, 0),
22.113 --/* v9 */ fmovfcc ("fmovdue", FM_DF, FCONDUE, 0),
22.114 --/* v9 */ fmovfcc ("fmovque", FM_QF, FCONDUE, 0),
22.115 --/* v9 */ fmovfcc ("fmovsue", FM_SF, FCONDUE, 0),
22.116 --/* v9 */ fmovfcc ("fmovdug", FM_DF, FCONDUG, 0),
22.117 --/* v9 */ fmovfcc ("fmovqug", FM_QF, FCONDUG, 0),
22.118 --/* v9 */ fmovfcc ("fmovsug", FM_SF, FCONDUG, 0),
22.119 --/* v9 */ fmovfcc ("fmovduge", FM_DF, FCONDUGE, 0),
22.120 --/* v9 */ fmovfcc ("fmovquge", FM_QF, FCONDUGE, 0),
22.121 --/* v9 */ fmovfcc ("fmovsuge", FM_SF, FCONDUGE, 0),
22.122 --/* v9 */ fmovfcc ("fmovdul", FM_DF, FCONDUL, 0),
22.123 --/* v9 */ fmovfcc ("fmovqul", FM_QF, FCONDUL, 0),
22.124 --/* v9 */ fmovfcc ("fmovsul", FM_SF, FCONDUL, 0),
22.125 --/* v9 */ fmovfcc ("fmovdule", FM_DF, FCONDULE, 0),
22.126 --/* v9 */ fmovfcc ("fmovqule", FM_QF, FCONDULE, 0),
22.127 --/* v9 */ fmovfcc ("fmovsule", FM_SF, FCONDULE, 0),
22.128 --/* v9 */ fmovicc ("fmovdvc", FM_DF, CONDVC, 0),
22.129 --/* v9 */ fmovicc ("fmovqvc", FM_QF, CONDVC, 0),
22.130 --/* v9 */ fmovicc ("fmovsvc", FM_SF, CONDVC, 0),
22.131 --/* v9 */ fmovicc ("fmovdvs", FM_DF, CONDVS, 0),
22.132 --/* v9 */ fmovicc ("fmovqvs", FM_QF, CONDVS, 0),
22.133 --/* v9 */ fmovicc ("fmovsvs", FM_SF, CONDVS, 0),
22.134 --/* v9 */ fmovcc ("fmovdz", FM_DF, CONDZ, FCONDZ, F_ALIAS),
22.135 --/* v9 */ fmovcc ("fmovqz", FM_QF, CONDZ, FCONDZ, F_ALIAS),
22.136 --/* v9 */ fmovcc ("fmovsz", FM_SF, CONDZ, FCONDZ, F_ALIAS),
22.137 --
22.138 -+#define fmovccx(opcode, fpsize, args, cond, fcond, flags) /* v9 */ \
22.139 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags | F_FLOAT, v9 }, \
22.140 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags | F_FLOAT, v9 }, \
22.141 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags | F_FLOAT, v9 }, \
22.142 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags | F_FLOAT, v9 }, \
22.143 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags | F_FLOAT, v9 }, \
22.144 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags | F_FLOAT, v9 }
22.145 -+
22.146 -+#define fmovicc(suffix, cond, flags) /* v9 */ \
22.147 -+fmoviccx("fmovd" suffix, FM_DF, "B,H", cond, flags), \
22.148 -+fmoviccx("fmovq" suffix, FM_QF, "R,J", cond, flags), \
22.149 -+fmoviccx("fmovs" suffix, FM_SF, "f,g", cond, flags)
22.150 -+
22.151 -+#define fmovfcc(suffix, fcond, flags) /* v9 */ \
22.152 -+fmovfccx("fmovd" suffix, FM_DF, "B,H", fcond, flags), \
22.153 -+fmovfccx("fmovq" suffix, FM_QF, "R,J", fcond, flags), \
22.154 -+fmovfccx("fmovs" suffix, FM_SF, "f,g", fcond, flags)
22.155 -+
22.156 -+#define fmovcc(suffix, cond, fcond, flags) /* v9 */ \
22.157 -+fmovccx("fmovd" suffix, FM_DF, "B,H", cond, fcond, flags), \
22.158 -+fmovccx("fmovq" suffix, FM_QF, "R,J", cond, fcond, flags), \
22.159 -+fmovccx("fmovs" suffix, FM_SF, "f,g", cond, fcond, flags)
22.160 -+
22.161 -+/* v9 */ fmovcc ("a", CONDA, FCONDA, 0),
22.162 -+/* v9 */ fmovicc ("cc", CONDCC, 0),
22.163 -+/* v9 */ fmovicc ("cs", CONDCS, 0),
22.164 -+/* v9 */ fmovcc ("e", CONDE, FCONDE, 0),
22.165 -+/* v9 */ fmovcc ("g", CONDG, FCONDG, 0),
22.166 -+/* v9 */ fmovcc ("ge", CONDGE, FCONDGE, 0),
22.167 -+/* v9 */ fmovicc ("geu", CONDGEU, F_ALIAS),
22.168 -+/* v9 */ fmovicc ("gu", CONDGU, 0),
22.169 -+/* v9 */ fmovcc ("l", CONDL, FCONDL, 0),
22.170 -+/* v9 */ fmovcc ("le", CONDLE, FCONDLE, 0),
22.171 -+/* v9 */ fmovicc ("leu", CONDLEU, 0),
22.172 -+/* v9 */ fmovfcc ("lg", FCONDLG, 0),
22.173 -+/* v9 */ fmovicc ("lu", CONDLU, F_ALIAS),
22.174 -+/* v9 */ fmovcc ("n", CONDN, FCONDN, 0),
22.175 -+/* v9 */ fmovcc ("ne", CONDNE, FCONDNE, 0),
22.176 -+/* v9 */ fmovicc ("neg", CONDNEG, 0),
22.177 -+/* v9 */ fmovcc ("nz", CONDNZ, FCONDNZ, F_ALIAS),
22.178 -+/* v9 */ fmovfcc ("o", FCONDO, 0),
22.179 -+/* v9 */ fmovicc ("pos", CONDPOS, 0),
22.180 -+/* v9 */ fmovfcc ("u", FCONDU, 0),
22.181 -+/* v9 */ fmovfcc ("ue", FCONDUE, 0),
22.182 -+/* v9 */ fmovfcc ("ug", FCONDUG, 0),
22.183 -+/* v9 */ fmovfcc ("uge", FCONDUGE, 0),
22.184 -+/* v9 */ fmovfcc ("ul", FCONDUL, 0),
22.185 -+/* v9 */ fmovfcc ("ule", FCONDULE, 0),
22.186 -+/* v9 */ fmovicc ("vc", CONDVC, 0),
22.187 -+/* v9 */ fmovicc ("vs", CONDVS, 0),
22.188 -+/* v9 */ fmovcc ("z", CONDZ, FCONDZ, F_ALIAS),
22.189 -+
22.190 -+#undef fmoviccx /* v9 */
22.191 -+#undef fmovfccx /* v9 */
22.192 -+#undef fmovccx /* v9 */
22.193 - #undef fmovicc /* v9 */
22.194 - #undef fmovfcc /* v9 */
22.195 - #undef fmovcc /* v9 */
23.1 --- a/patches/binutils/2.15.90.0.3/binutils-20040817-linkonce.patch Tue Aug 14 19:32:22 2007 +0000
23.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
23.3 @@ -1,118 +0,0 @@
23.4 -From http://sources.redhat.com/ml/binutils/2004-08/msg00190.html
23.5 -
23.6 -Date: Tue, 17 Aug 2004 12:04:29 +0200
23.7 -From: Jakub Jelinek <jakub at redhat dot com>
23.8 -To: binutils at sources dot redhat dot com
23.9 -Subject: [PATCH] Fix `defined in discarded section' errors when building ia64 gcc
23.10 -Message-ID: <20040817100429.GL30497@sunsite.ms.mff.cuni.cz>
23.11 -Reply-To: Jakub Jelinek <jakub at redhat dot com>
23.12 -References: <20040817090201.GK30497@sunsite.ms.mff.cuni.cz>
23.13 -In-Reply-To: <20040817090201 dot GK30497 at sunsite dot ms dot mff dot cuni dot cz>
23.14 -
23.15 -On Tue, Aug 17, 2004 at 11:02:01AM +0200, Jakub Jelinek wrote:
23.16 -> Current gcc 3.4.x (at least gcc-3_4-rhl-branch) doesn't build with CVS
23.17 -> binutils (nor 2.15.91.0.2).
23.18 -> The problem is that libstdc++.so linking fails with:
23.19 -> `.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
23.20 -> The problem is that both io-inst.s and sstream-inst.s have
23.21 -> .gnu.linkonce.t._ZNSdD2Ev definition, but because io-inst.cc
23.22 -> also instantiates some templates sstream-inst.cc doesn't instantiate,
23.23 -> the inliner can do a better job in io-inst.cc.
23.24 -> The result is that _ZNSdD2Ev in io-inst.cc is a leaf routine, while
23.25 -> it is not in sstream-inst.cc (in assembly,
23.26 -> _ZNSdD2Ev in io-inst.s starts with .prologue and no .save directives,
23.27 -> while _ZNSdD2Ev] in sstream-inst.s has .prologue 12, 35 and some
23.28 -> .save directives.
23.29 -> IA-64 ABI allows leaf routines to have no unwind section at all,
23.30 -> which means .gnu.linkonce.ia64unw._ZNSdD2Ev is not created in
23.31 -> io-inst.o at all and as .gnu.linkonce.t._ZNSdD2Ev comes first
23.32 -> and wins, .gnu.linkonce.ia64unw._ZNSdD2Ev in sstream.o suddenly
23.33 -> references a discarded section.
23.34 ->
23.35 -> Not sure what should be done here, but certainly the compiler
23.36 -> isn't at fault here, it is a binutils problem.
23.37 -> One fix could be to create empty .gnu.linkonce.ia64unw.* section
23.38 -> in assembler, another special case ia64 unwind sections in the linker.
23.39 -
23.40 -Here is a patch for the first possibility.
23.41 -It certainly makes libstdc++.so to link and even the unwind info looks
23.42 -good on brief skimming.
23.43 -
23.44 -2004-08-17 Jakub Jelinek <jakub@redhat.com>
23.45 -
23.46 - * config/tc-ia64.c (start_unwind_section): Add linkonce_empty
23.47 - argument, don't do anything if current section is not
23.48 - .gnu.linkonce.t.* and linkonce_empty is set.
23.49 - (generate_unwind_image, dot_endp): Adjust callers, call
23.50 - start_unwind_section (*, 1) if nothing will be put into the
23.51 - section.
23.52 -
23.53 ---- binutils/gas/config/tc-ia64.c.jj 2004-07-30 11:42:24.000000000 +0200
23.54 -+++ binutils/gas/config/tc-ia64.c 2004-08-17 13:45:04.288173205 +0200
23.55 -@@ -1,5 +1,6 @@
23.56 - /* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture.
23.57 -- Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
23.58 -+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
23.59 -+ Free Software Foundation, Inc.
23.60 - Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
23.61 -
23.62 - This file is part of GAS, the GNU Assembler.
23.63 -@@ -3297,7 +3298,7 @@ static char *special_linkonce_name[] =
23.64 - };
23.65 -
23.66 - static void
23.67 --start_unwind_section (const segT text_seg, int sec_index)
23.68 -+start_unwind_section (const segT text_seg, int sec_index, int linkonce_empty)
23.69 - {
23.70 - /*
23.71 - Use a slightly ugly scheme to derive the unwind section names from
23.72 -@@ -3359,6 +3360,8 @@ start_unwind_section (const segT text_se
23.73 - prefix = special_linkonce_name [sec_index - SPECIAL_SECTION_UNWIND];
23.74 - suffix += sizeof (".gnu.linkonce.t.") - 1;
23.75 - }
23.76 -+ else if (linkonce_empty)
23.77 -+ return;
23.78 -
23.79 - prefix_len = strlen (prefix);
23.80 - suffix_len = strlen (suffix);
23.81 -@@ -3444,7 +3447,7 @@ generate_unwind_image (const segT text_s
23.82 - expressionS exp;
23.83 - bfd_reloc_code_real_type reloc;
23.84 -
23.85 -- start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO);
23.86 -+ start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 0);
23.87 -
23.88 - /* Make sure the section has 4 byte alignment for ILP32 and
23.89 - 8 byte alignment for LP64. */
23.90 -@@ -3485,6 +3488,8 @@ generate_unwind_image (const segT text_s
23.91 - unwind.personality_routine = 0;
23.92 - }
23.93 - }
23.94 -+ else
23.95 -+ start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 1);
23.96 -
23.97 - free_saved_prologue_counts ();
23.98 - unwind.list = unwind.tail = unwind.current_entry = NULL;
23.99 -@@ -4164,7 +4169,7 @@ dot_endp (dummy)
23.100 - subseg_set (md.last_text_seg, 0);
23.101 - unwind.proc_end = expr_build_dot ();
23.102 -
23.103 -- start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND);
23.104 -+ start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 0);
23.105 -
23.106 - /* Make sure that section has 4 byte alignment for ILP32 and
23.107 - 8 byte alignment for LP64. */
23.108 -@@ -4204,6 +4209,9 @@ dot_endp (dummy)
23.109 - bytes_per_address);
23.110 -
23.111 - }
23.112 -+ else
23.113 -+ start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 1);
23.114 -+
23.115 - subseg_set (saved_seg, saved_subseg);
23.116 -
23.117 - /* Parse names of main and alternate entry points and set symbol sizes. */
23.118 -
23.119 -
23.120 - Jakub
23.121 -
24.1 --- a/patches/binutils/2.15.90.0.3/binutils-20040820-duplicates.patch Tue Aug 14 19:32:22 2007 +0000
24.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
24.3 @@ -1,74 +0,0 @@
24.4 -See http://sources.redhat.com/ml/binutils/2004-08/msg00256.html
24.5 -
24.6 -Date: Fri, 20 Aug 2004 21:13:43 -0400
24.7 -From: Daniel Jacobowitz <drow at false dot org>
24.8 -To: binutils at sources dot redhat dot com
24.9 -Subject: Re: Handle SEC_LINK_DUPLICATES_SAME_CONTENTS for arm-linux
24.10 -Message-ID: <20040821011342.GA30319@nevyn.them.org>
24.11 -Mail-Followup-To: binutils at sources dot redhat dot com
24.12 -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>
24.13 -In-Reply-To: <20040821003737 dot GB16016 at bubble dot modra dot org>
24.14 -
24.15 -On Sat, Aug 21, 2004 at 10:07:38AM +0930, Alan Modra wrote:
24.16 -> On Fri, Aug 20, 2004 at 01:32:40PM -0400, Daniel Jacobowitz wrote:
24.17 -> > Thanks. How's this?
24.18 ->
24.19 -> As you might have guessed from my rather slack review of your previous
24.20 -> patch, I trust you enough to give the OK without proper review. But
24.21 -> since you asked... :)
24.22 -
24.23 -Checked in as so.
24.24 -
24.25 ---
24.26 -Daniel Jacobowitz
24.27 -
24.28 -2004-08-20 Daniel Jacobowitz <dan@debian.org>
24.29 -
24.30 - * elflink.c (_bfd_elf_section_already_linked): Handle
24.31 - SEC_LINK_DUPLICATES_SAME_CONTENTS.
24.32 -
24.33 -Index: elflink.c
24.34 -===================================================================
24.35 -RCS file: /big/fsf/rsync/src-cvs/src/bfd/elflink.c,v
24.36 -retrieving revision 1.97
24.37 -diff -u -p -r1.97 elflink.c
24.38 ---- binutils/bfd/elflink.c 18 Aug 2004 02:45:42 -0000 1.97
24.39 -+++ binutils/bfd/elflink.c 21 Aug 2004 00:59:08 -0000
24.40 -@@ -9366,6 +9366,36 @@ _bfd_elf_section_already_linked (bfd *ab
24.41 - (_("%B: duplicate section `%A' has different size\n"),
24.42 - abfd, sec);
24.43 - break;
24.44 -+
24.45 -+ case SEC_LINK_DUPLICATES_SAME_CONTENTS:
24.46 -+ if (sec->size != l->sec->size)
24.47 -+ (*_bfd_error_handler)
24.48 -+ (_("%B: duplicate section `%A' has different size\n"),
24.49 -+ abfd, sec);
24.50 -+ else if (sec->size != 0)
24.51 -+ {
24.52 -+ bfd_byte *sec_contents, *l_sec_contents;
24.53 -+
24.54 -+ if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents))
24.55 -+ (*_bfd_error_handler)
24.56 -+ (_("%B: warning: could not read contents of section `%A'\n"),
24.57 -+ abfd, sec);
24.58 -+ else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec,
24.59 -+ &l_sec_contents))
24.60 -+ (*_bfd_error_handler)
24.61 -+ (_("%B: warning: could not read contents of section `%A'\n"),
24.62 -+ l->sec->owner, l->sec);
24.63 -+ else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0)
24.64 -+ (*_bfd_error_handler)
24.65 -+ (_("%B: warning: duplicate section `%A' has different contents\n"),
24.66 -+ abfd, sec);
24.67 -+
24.68 -+ if (sec_contents)
24.69 -+ free (sec_contents);
24.70 -+ if (l_sec_contents)
24.71 -+ free (l_sec_contents);
24.72 -+ }
24.73 -+ break;
24.74 - }
24.75 -
24.76 - /* Set the output_section field so that lang_add_section
24.77 -
25.1 --- a/patches/binutils/2.15.90.0.3/binutils-skip-comments.patch Tue Aug 14 19:32:22 2007 +0000
25.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
25.3 @@ -1,101 +0,0 @@
25.4 -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
25.5 -Fixes
25.6 -localealias.s:544: Error: junk at end of line, first unrecognized character is `,'
25.7 -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
25.8 -
25.9 -Paths adjusted to match crosstool's patcher.
25.10 -
25.11 -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
25.12 -From: Andreas Schwab <schwab at suse dot de>
25.13 -To: Nathan Sidwell <nathan at codesourcery dot com>
25.14 -Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
25.15 -Date: Fri, 23 Apr 2004 22:27:19 +0200
25.16 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
25.17 -
25.18 -Nathan Sidwell <nathan@codesourcery.com> writes:
25.19 -
25.20 -> Index: read.c
25.21 -> ===================================================================
25.22 -> RCS file: /cvs/src/src/gas/read.c,v
25.23 -> retrieving revision 1.76
25.24 -> diff -c -3 -p -r1.76 read.c
25.25 -> *** read.c 12 Mar 2004 17:48:12 -0000 1.76
25.26 -> --- read.c 18 Mar 2004 09:56:05 -0000
25.27 -> *************** read_a_source_file (char *name)
25.28 -> *** 1053,1059 ****
25.29 -> #endif
25.30 -> input_line_pointer--;
25.31 -> /* Report unknown char as ignored. */
25.32 -> ! ignore_rest_of_line ();
25.33 -> }
25.34 ->
25.35 -> #ifdef md_after_pass_hook
25.36 -> --- 1053,1059 ----
25.37 -> #endif
25.38 -> input_line_pointer--;
25.39 -> /* Report unknown char as ignored. */
25.40 -> ! demand_empty_rest_of_line ();
25.41 -> }
25.42 ->
25.43 -> #ifdef md_after_pass_hook
25.44 -
25.45 -This means that the unknown character is no longer ignored, despite the
25.46 -comment. As a side effect a line starting with a line comment character
25.47 -not followed by APP in NO_APP mode now triggers an error instead of just a
25.48 -warning, breaking builds of glibc on m68k-linux. Earlier in
25.49 -read_a_source_file where #APP is handled there is another comment that
25.50 -claims that unknown comments are ignored, when in fact they aren't (only
25.51 -the initial line comment character is skipped).
25.52 -
25.53 -Note that the presence of #APP will mess up the line counters, but
25.54 -that appears to be difficult to fix.
25.55 -
25.56 -Andreas.
25.57 -
25.58 -2004-04-23 Andreas Schwab <schwab@suse.de>
25.59 -
25.60 - * read.c (read_a_source_file): Ignore unknown text after line
25.61 - comment character. Fix misleading comment.
25.62 -
25.63 ---- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200
25.64 -+++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200
25.65 -@@ -1,6 +1,6 @@
25.66 - /* read.c - read a source file -
25.67 - Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
25.68 -- 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
25.69 -+ 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
25.70 -
25.71 - This file is part of GAS, the GNU Assembler.
25.72 -
25.73 -@@ -950,10 +950,14 @@ read_a_source_file (char *name)
25.74 - unsigned int new_length;
25.75 - char *tmp_buf = 0;
25.76 -
25.77 -- bump_line_counters ();
25.78 - s = input_line_pointer;
25.79 - if (strncmp (s, "APP\n", 4))
25.80 -- continue; /* We ignore it */
25.81 -+ {
25.82 -+ /* We ignore it */
25.83 -+ ignore_rest_of_line ();
25.84 -+ continue;
25.85 -+ }
25.86 -+ bump_line_counters ();
25.87 - s += 4;
25.88 -
25.89 - sb_new (&sbuf);
25.90 -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
25.91 - continue;
25.92 - #endif
25.93 - input_line_pointer--;
25.94 -- /* Report unknown char as ignored. */
25.95 -+ /* Report unknown char as error. */
25.96 - demand_empty_rest_of_line ();
25.97 - }
25.98 -
25.99 -
25.100 ---
25.101 -Andreas Schwab, SuSE Labs, schwab@suse.de
25.102 -SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany
25.103 -Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
25.104 -"And now for something completely different."
26.1 --- a/patches/binutils/2.15.90.0.3/gccpr15247-fix.patch Tue Aug 14 19:32:22 2007 +0000
26.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
26.3 @@ -1,192 +0,0 @@
26.4 -See
26.5 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15247
26.6 -
26.7 -Fixes spurious error
26.8 -/tmp/ccvNi4ou.s: Assembler messages:
26.9 -/tmp/ccvNi4ou.s:2310: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
26.10 -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
26.11 -
26.12 -when compiling glibc's dosincos.c with gcc-3.4.0
26.13 -
26.14 -===================================================================
26.15 -RCS file: /cvs/src/src/opcodes/sparc-opc.c,v
26.16 -retrieving revision 1.9
26.17 -retrieving revision 1.10
26.18 -diff -u -r1.9 -r1.10
26.19 ---- src/opcodes/sparc-opc.c 2004/01/18 23:46:32 1.9
26.20 -+++ src/opcodes/sparc-opc.c 2004/04/20 10:23:51 1.10
26.21 -@@ -1273,110 +1273,72 @@
26.22 - #define FM_DF 2 /* v9 */
26.23 - #define FM_QF 3 /* v9 */
26.24 -
26.25 --#define fmovicc(opcode, fpsize, cond, flags) /* v9 */ \
26.26 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags, v9 }, \
26.27 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags, v9 }
26.28 --
26.29 --#define fmovfcc(opcode, fpsize, fcond, flags) /* v9 */ \
26.30 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags, v9 }, \
26.31 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags, v9 }, \
26.32 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags, v9 }, \
26.33 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags, v9 }
26.34 -+#define fmoviccx(opcode, fpsize, args, cond, flags) /* v9 */ \
26.35 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags, v9 }, \
26.36 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags, v9 }
26.37 -+
26.38 -+#define fmovfccx(opcode, fpsize, args, fcond, flags) /* v9 */ \
26.39 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags, v9 }, \
26.40 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags, v9 }, \
26.41 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags, v9 }, \
26.42 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags, v9 }
26.43 -
26.44 - /* FIXME: use fmovicc/fmovfcc? */ /* v9 */
26.45 --#define fmovcc(opcode, fpsize, cond, fcond, flags) /* v9 */ \
26.46 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags | F_FLOAT, v9 }, \
26.47 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags | F_FLOAT, v9 }, \
26.48 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags | F_FLOAT, v9 }, \
26.49 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags | F_FLOAT, v9 }, \
26.50 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags | F_FLOAT, v9 }, \
26.51 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags | F_FLOAT, v9 }
26.52 --
26.53 --/* v9 */ fmovcc ("fmovda", FM_DF, CONDA, FCONDA, 0),
26.54 --/* v9 */ fmovcc ("fmovqa", FM_QF, CONDA, FCONDA, 0),
26.55 --/* v9 */ fmovcc ("fmovsa", FM_SF, CONDA, FCONDA, 0),
26.56 --/* v9 */ fmovicc ("fmovdcc", FM_DF, CONDCC, 0),
26.57 --/* v9 */ fmovicc ("fmovqcc", FM_QF, CONDCC, 0),
26.58 --/* v9 */ fmovicc ("fmovscc", FM_SF, CONDCC, 0),
26.59 --/* v9 */ fmovicc ("fmovdcs", FM_DF, CONDCS, 0),
26.60 --/* v9 */ fmovicc ("fmovqcs", FM_QF, CONDCS, 0),
26.61 --/* v9 */ fmovicc ("fmovscs", FM_SF, CONDCS, 0),
26.62 --/* v9 */ fmovcc ("fmovde", FM_DF, CONDE, FCONDE, 0),
26.63 --/* v9 */ fmovcc ("fmovqe", FM_QF, CONDE, FCONDE, 0),
26.64 --/* v9 */ fmovcc ("fmovse", FM_SF, CONDE, FCONDE, 0),
26.65 --/* v9 */ fmovcc ("fmovdg", FM_DF, CONDG, FCONDG, 0),
26.66 --/* v9 */ fmovcc ("fmovqg", FM_QF, CONDG, FCONDG, 0),
26.67 --/* v9 */ fmovcc ("fmovsg", FM_SF, CONDG, FCONDG, 0),
26.68 --/* v9 */ fmovcc ("fmovdge", FM_DF, CONDGE, FCONDGE, 0),
26.69 --/* v9 */ fmovcc ("fmovqge", FM_QF, CONDGE, FCONDGE, 0),
26.70 --/* v9 */ fmovcc ("fmovsge", FM_SF, CONDGE, FCONDGE, 0),
26.71 --/* v9 */ fmovicc ("fmovdgeu", FM_DF, CONDGEU, F_ALIAS),
26.72 --/* v9 */ fmovicc ("fmovqgeu", FM_QF, CONDGEU, F_ALIAS),
26.73 --/* v9 */ fmovicc ("fmovsgeu", FM_SF, CONDGEU, F_ALIAS),
26.74 --/* v9 */ fmovicc ("fmovdgu", FM_DF, CONDGU, 0),
26.75 --/* v9 */ fmovicc ("fmovqgu", FM_QF, CONDGU, 0),
26.76 --/* v9 */ fmovicc ("fmovsgu", FM_SF, CONDGU, 0),
26.77 --/* v9 */ fmovcc ("fmovdl", FM_DF, CONDL, FCONDL, 0),
26.78 --/* v9 */ fmovcc ("fmovql", FM_QF, CONDL, FCONDL, 0),
26.79 --/* v9 */ fmovcc ("fmovsl", FM_SF, CONDL, FCONDL, 0),
26.80 --/* v9 */ fmovcc ("fmovdle", FM_DF, CONDLE, FCONDLE, 0),
26.81 --/* v9 */ fmovcc ("fmovqle", FM_QF, CONDLE, FCONDLE, 0),
26.82 --/* v9 */ fmovcc ("fmovsle", FM_SF, CONDLE, FCONDLE, 0),
26.83 --/* v9 */ fmovicc ("fmovdleu", FM_DF, CONDLEU, 0),
26.84 --/* v9 */ fmovicc ("fmovqleu", FM_QF, CONDLEU, 0),
26.85 --/* v9 */ fmovicc ("fmovsleu", FM_SF, CONDLEU, 0),
26.86 --/* v9 */ fmovfcc ("fmovdlg", FM_DF, FCONDLG, 0),
26.87 --/* v9 */ fmovfcc ("fmovqlg", FM_QF, FCONDLG, 0),
26.88 --/* v9 */ fmovfcc ("fmovslg", FM_SF, FCONDLG, 0),
26.89 --/* v9 */ fmovicc ("fmovdlu", FM_DF, CONDLU, F_ALIAS),
26.90 --/* v9 */ fmovicc ("fmovqlu", FM_QF, CONDLU, F_ALIAS),
26.91 --/* v9 */ fmovicc ("fmovslu", FM_SF, CONDLU, F_ALIAS),
26.92 --/* v9 */ fmovcc ("fmovdn", FM_DF, CONDN, FCONDN, 0),
26.93 --/* v9 */ fmovcc ("fmovqn", FM_QF, CONDN, FCONDN, 0),
26.94 --/* v9 */ fmovcc ("fmovsn", FM_SF, CONDN, FCONDN, 0),
26.95 --/* v9 */ fmovcc ("fmovdne", FM_DF, CONDNE, FCONDNE, 0),
26.96 --/* v9 */ fmovcc ("fmovqne", FM_QF, CONDNE, FCONDNE, 0),
26.97 --/* v9 */ fmovcc ("fmovsne", FM_SF, CONDNE, FCONDNE, 0),
26.98 --/* v9 */ fmovicc ("fmovdneg", FM_DF, CONDNEG, 0),
26.99 --/* v9 */ fmovicc ("fmovqneg", FM_QF, CONDNEG, 0),
26.100 --/* v9 */ fmovicc ("fmovsneg", FM_SF, CONDNEG, 0),
26.101 --/* v9 */ fmovcc ("fmovdnz", FM_DF, CONDNZ, FCONDNZ, F_ALIAS),
26.102 --/* v9 */ fmovcc ("fmovqnz", FM_QF, CONDNZ, FCONDNZ, F_ALIAS),
26.103 --/* v9 */ fmovcc ("fmovsnz", FM_SF, CONDNZ, FCONDNZ, F_ALIAS),
26.104 --/* v9 */ fmovfcc ("fmovdo", FM_DF, FCONDO, 0),
26.105 --/* v9 */ fmovfcc ("fmovqo", FM_QF, FCONDO, 0),
26.106 --/* v9 */ fmovfcc ("fmovso", FM_SF, FCONDO, 0),
26.107 --/* v9 */ fmovicc ("fmovdpos", FM_DF, CONDPOS, 0),
26.108 --/* v9 */ fmovicc ("fmovqpos", FM_QF, CONDPOS, 0),
26.109 --/* v9 */ fmovicc ("fmovspos", FM_SF, CONDPOS, 0),
26.110 --/* v9 */ fmovfcc ("fmovdu", FM_DF, FCONDU, 0),
26.111 --/* v9 */ fmovfcc ("fmovqu", FM_QF, FCONDU, 0),
26.112 --/* v9 */ fmovfcc ("fmovsu", FM_SF, FCONDU, 0),
26.113 --/* v9 */ fmovfcc ("fmovdue", FM_DF, FCONDUE, 0),
26.114 --/* v9 */ fmovfcc ("fmovque", FM_QF, FCONDUE, 0),
26.115 --/* v9 */ fmovfcc ("fmovsue", FM_SF, FCONDUE, 0),
26.116 --/* v9 */ fmovfcc ("fmovdug", FM_DF, FCONDUG, 0),
26.117 --/* v9 */ fmovfcc ("fmovqug", FM_QF, FCONDUG, 0),
26.118 --/* v9 */ fmovfcc ("fmovsug", FM_SF, FCONDUG, 0),
26.119 --/* v9 */ fmovfcc ("fmovduge", FM_DF, FCONDUGE, 0),
26.120 --/* v9 */ fmovfcc ("fmovquge", FM_QF, FCONDUGE, 0),
26.121 --/* v9 */ fmovfcc ("fmovsuge", FM_SF, FCONDUGE, 0),
26.122 --/* v9 */ fmovfcc ("fmovdul", FM_DF, FCONDUL, 0),
26.123 --/* v9 */ fmovfcc ("fmovqul", FM_QF, FCONDUL, 0),
26.124 --/* v9 */ fmovfcc ("fmovsul", FM_SF, FCONDUL, 0),
26.125 --/* v9 */ fmovfcc ("fmovdule", FM_DF, FCONDULE, 0),
26.126 --/* v9 */ fmovfcc ("fmovqule", FM_QF, FCONDULE, 0),
26.127 --/* v9 */ fmovfcc ("fmovsule", FM_SF, FCONDULE, 0),
26.128 --/* v9 */ fmovicc ("fmovdvc", FM_DF, CONDVC, 0),
26.129 --/* v9 */ fmovicc ("fmovqvc", FM_QF, CONDVC, 0),
26.130 --/* v9 */ fmovicc ("fmovsvc", FM_SF, CONDVC, 0),
26.131 --/* v9 */ fmovicc ("fmovdvs", FM_DF, CONDVS, 0),
26.132 --/* v9 */ fmovicc ("fmovqvs", FM_QF, CONDVS, 0),
26.133 --/* v9 */ fmovicc ("fmovsvs", FM_SF, CONDVS, 0),
26.134 --/* v9 */ fmovcc ("fmovdz", FM_DF, CONDZ, FCONDZ, F_ALIAS),
26.135 --/* v9 */ fmovcc ("fmovqz", FM_QF, CONDZ, FCONDZ, F_ALIAS),
26.136 --/* v9 */ fmovcc ("fmovsz", FM_SF, CONDZ, FCONDZ, F_ALIAS),
26.137 --
26.138 -+#define fmovccx(opcode, fpsize, args, cond, fcond, flags) /* v9 */ \
26.139 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags | F_FLOAT, v9 }, \
26.140 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags | F_FLOAT, v9 }, \
26.141 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags | F_FLOAT, v9 }, \
26.142 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags | F_FLOAT, v9 }, \
26.143 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags | F_FLOAT, v9 }, \
26.144 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags | F_FLOAT, v9 }
26.145 -+
26.146 -+#define fmovicc(suffix, cond, flags) /* v9 */ \
26.147 -+fmoviccx("fmovd" suffix, FM_DF, "B,H", cond, flags), \
26.148 -+fmoviccx("fmovq" suffix, FM_QF, "R,J", cond, flags), \
26.149 -+fmoviccx("fmovs" suffix, FM_SF, "f,g", cond, flags)
26.150 -+
26.151 -+#define fmovfcc(suffix, fcond, flags) /* v9 */ \
26.152 -+fmovfccx("fmovd" suffix, FM_DF, "B,H", fcond, flags), \
26.153 -+fmovfccx("fmovq" suffix, FM_QF, "R,J", fcond, flags), \
26.154 -+fmovfccx("fmovs" suffix, FM_SF, "f,g", fcond, flags)
26.155 -+
26.156 -+#define fmovcc(suffix, cond, fcond, flags) /* v9 */ \
26.157 -+fmovccx("fmovd" suffix, FM_DF, "B,H", cond, fcond, flags), \
26.158 -+fmovccx("fmovq" suffix, FM_QF, "R,J", cond, fcond, flags), \
26.159 -+fmovccx("fmovs" suffix, FM_SF, "f,g", cond, fcond, flags)
26.160 -+
26.161 -+/* v9 */ fmovcc ("a", CONDA, FCONDA, 0),
26.162 -+/* v9 */ fmovicc ("cc", CONDCC, 0),
26.163 -+/* v9 */ fmovicc ("cs", CONDCS, 0),
26.164 -+/* v9 */ fmovcc ("e", CONDE, FCONDE, 0),
26.165 -+/* v9 */ fmovcc ("g", CONDG, FCONDG, 0),
26.166 -+/* v9 */ fmovcc ("ge", CONDGE, FCONDGE, 0),
26.167 -+/* v9 */ fmovicc ("geu", CONDGEU, F_ALIAS),
26.168 -+/* v9 */ fmovicc ("gu", CONDGU, 0),
26.169 -+/* v9 */ fmovcc ("l", CONDL, FCONDL, 0),
26.170 -+/* v9 */ fmovcc ("le", CONDLE, FCONDLE, 0),
26.171 -+/* v9 */ fmovicc ("leu", CONDLEU, 0),
26.172 -+/* v9 */ fmovfcc ("lg", FCONDLG, 0),
26.173 -+/* v9 */ fmovicc ("lu", CONDLU, F_ALIAS),
26.174 -+/* v9 */ fmovcc ("n", CONDN, FCONDN, 0),
26.175 -+/* v9 */ fmovcc ("ne", CONDNE, FCONDNE, 0),
26.176 -+/* v9 */ fmovicc ("neg", CONDNEG, 0),
26.177 -+/* v9 */ fmovcc ("nz", CONDNZ, FCONDNZ, F_ALIAS),
26.178 -+/* v9 */ fmovfcc ("o", FCONDO, 0),
26.179 -+/* v9 */ fmovicc ("pos", CONDPOS, 0),
26.180 -+/* v9 */ fmovfcc ("u", FCONDU, 0),
26.181 -+/* v9 */ fmovfcc ("ue", FCONDUE, 0),
26.182 -+/* v9 */ fmovfcc ("ug", FCONDUG, 0),
26.183 -+/* v9 */ fmovfcc ("uge", FCONDUGE, 0),
26.184 -+/* v9 */ fmovfcc ("ul", FCONDUL, 0),
26.185 -+/* v9 */ fmovfcc ("ule", FCONDULE, 0),
26.186 -+/* v9 */ fmovicc ("vc", CONDVC, 0),
26.187 -+/* v9 */ fmovicc ("vs", CONDVS, 0),
26.188 -+/* v9 */ fmovcc ("z", CONDZ, FCONDZ, F_ALIAS),
26.189 -+
26.190 -+#undef fmoviccx /* v9 */
26.191 -+#undef fmovfccx /* v9 */
26.192 -+#undef fmovccx /* v9 */
26.193 - #undef fmovicc /* v9 */
26.194 - #undef fmovfcc /* v9 */
26.195 - #undef fmovcc /* v9 */
27.1 --- a/patches/binutils/2.15.91.0.2/binutils-20040817-linkonce.patch Tue Aug 14 19:32:22 2007 +0000
27.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
27.3 @@ -1,118 +0,0 @@
27.4 -From http://sources.redhat.com/ml/binutils/2004-08/msg00190.html
27.5 -
27.6 -Date: Tue, 17 Aug 2004 12:04:29 +0200
27.7 -From: Jakub Jelinek <jakub at redhat dot com>
27.8 -To: binutils at sources dot redhat dot com
27.9 -Subject: [PATCH] Fix `defined in discarded section' errors when building ia64 gcc
27.10 -Message-ID: <20040817100429.GL30497@sunsite.ms.mff.cuni.cz>
27.11 -Reply-To: Jakub Jelinek <jakub at redhat dot com>
27.12 -References: <20040817090201.GK30497@sunsite.ms.mff.cuni.cz>
27.13 -In-Reply-To: <20040817090201 dot GK30497 at sunsite dot ms dot mff dot cuni dot cz>
27.14 -
27.15 -On Tue, Aug 17, 2004 at 11:02:01AM +0200, Jakub Jelinek wrote:
27.16 -> Current gcc 3.4.x (at least gcc-3_4-rhl-branch) doesn't build with CVS
27.17 -> binutils (nor 2.15.91.0.2).
27.18 -> The problem is that libstdc++.so linking fails with:
27.19 -> `.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
27.20 -> The problem is that both io-inst.s and sstream-inst.s have
27.21 -> .gnu.linkonce.t._ZNSdD2Ev definition, but because io-inst.cc
27.22 -> also instantiates some templates sstream-inst.cc doesn't instantiate,
27.23 -> the inliner can do a better job in io-inst.cc.
27.24 -> The result is that _ZNSdD2Ev in io-inst.cc is a leaf routine, while
27.25 -> it is not in sstream-inst.cc (in assembly,
27.26 -> _ZNSdD2Ev in io-inst.s starts with .prologue and no .save directives,
27.27 -> while _ZNSdD2Ev] in sstream-inst.s has .prologue 12, 35 and some
27.28 -> .save directives.
27.29 -> IA-64 ABI allows leaf routines to have no unwind section at all,
27.30 -> which means .gnu.linkonce.ia64unw._ZNSdD2Ev is not created in
27.31 -> io-inst.o at all and as .gnu.linkonce.t._ZNSdD2Ev comes first
27.32 -> and wins, .gnu.linkonce.ia64unw._ZNSdD2Ev in sstream.o suddenly
27.33 -> references a discarded section.
27.34 ->
27.35 -> Not sure what should be done here, but certainly the compiler
27.36 -> isn't at fault here, it is a binutils problem.
27.37 -> One fix could be to create empty .gnu.linkonce.ia64unw.* section
27.38 -> in assembler, another special case ia64 unwind sections in the linker.
27.39 -
27.40 -Here is a patch for the first possibility.
27.41 -It certainly makes libstdc++.so to link and even the unwind info looks
27.42 -good on brief skimming.
27.43 -
27.44 -2004-08-17 Jakub Jelinek <jakub@redhat.com>
27.45 -
27.46 - * config/tc-ia64.c (start_unwind_section): Add linkonce_empty
27.47 - argument, don't do anything if current section is not
27.48 - .gnu.linkonce.t.* and linkonce_empty is set.
27.49 - (generate_unwind_image, dot_endp): Adjust callers, call
27.50 - start_unwind_section (*, 1) if nothing will be put into the
27.51 - section.
27.52 -
27.53 ---- binutils/gas/config/tc-ia64.c.jj 2004-07-30 11:42:24.000000000 +0200
27.54 -+++ binutils/gas/config/tc-ia64.c 2004-08-17 13:45:04.288173205 +0200
27.55 -@@ -1,5 +1,6 @@
27.56 - /* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture.
27.57 -- Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
27.58 -+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
27.59 -+ Free Software Foundation, Inc.
27.60 - Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
27.61 -
27.62 - This file is part of GAS, the GNU Assembler.
27.63 -@@ -3297,7 +3298,7 @@ static char *special_linkonce_name[] =
27.64 - };
27.65 -
27.66 - static void
27.67 --start_unwind_section (const segT text_seg, int sec_index)
27.68 -+start_unwind_section (const segT text_seg, int sec_index, int linkonce_empty)
27.69 - {
27.70 - /*
27.71 - Use a slightly ugly scheme to derive the unwind section names from
27.72 -@@ -3359,6 +3360,8 @@ start_unwind_section (const segT text_se
27.73 - prefix = special_linkonce_name [sec_index - SPECIAL_SECTION_UNWIND];
27.74 - suffix += sizeof (".gnu.linkonce.t.") - 1;
27.75 - }
27.76 -+ else if (linkonce_empty)
27.77 -+ return;
27.78 -
27.79 - prefix_len = strlen (prefix);
27.80 - suffix_len = strlen (suffix);
27.81 -@@ -3444,7 +3447,7 @@ generate_unwind_image (const segT text_s
27.82 - expressionS exp;
27.83 - bfd_reloc_code_real_type reloc;
27.84 -
27.85 -- start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO);
27.86 -+ start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 0);
27.87 -
27.88 - /* Make sure the section has 4 byte alignment for ILP32 and
27.89 - 8 byte alignment for LP64. */
27.90 -@@ -3485,6 +3488,8 @@ generate_unwind_image (const segT text_s
27.91 - unwind.personality_routine = 0;
27.92 - }
27.93 - }
27.94 -+ else
27.95 -+ start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 1);
27.96 -
27.97 - free_saved_prologue_counts ();
27.98 - unwind.list = unwind.tail = unwind.current_entry = NULL;
27.99 -@@ -4164,7 +4169,7 @@ dot_endp (dummy)
27.100 - subseg_set (md.last_text_seg, 0);
27.101 - unwind.proc_end = expr_build_dot ();
27.102 -
27.103 -- start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND);
27.104 -+ start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 0);
27.105 -
27.106 - /* Make sure that section has 4 byte alignment for ILP32 and
27.107 - 8 byte alignment for LP64. */
27.108 -@@ -4204,6 +4209,9 @@ dot_endp (dummy)
27.109 - bytes_per_address);
27.110 -
27.111 - }
27.112 -+ else
27.113 -+ start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 1);
27.114 -+
27.115 - subseg_set (saved_seg, saved_subseg);
27.116 -
27.117 - /* Parse names of main and alternate entry points and set symbol sizes. */
27.118 -
27.119 -
27.120 - Jakub
27.121 -
28.1 --- a/patches/binutils/2.15.91.0.2/binutils-dup-sections.patch Tue Aug 14 19:32:22 2007 +0000
28.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
28.3 @@ -1,68 +0,0 @@
28.4 -See http://sources.redhat.com/ml/binutils/2004-08/msg00256.html
28.5 -
28.6 -Date: Fri, 20 Aug 2004 21:13:43 -0400
28.7 -From: Daniel Jacobowitz <drow at false dot org>
28.8 -To: binutils at sources dot redhat dot com
28.9 -Subject: Re: Handle SEC_LINK_DUPLICATES_SAME_CONTENTS for arm-linux
28.10 -Message-ID: <20040821011342.GA30319@nevyn.them.org>
28.11 -Mail-Followup-To: binutils at sources dot redhat dot com
28.12 -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>
28.13 -In-Reply-To: <20040821003737 dot GB16016 at bubble dot modra dot org>
28.14 -
28.15 -On Sat, Aug 21, 2004 at 10:07:38AM +0930, Alan Modra wrote:
28.16 -> On Fri, Aug 20, 2004 at 01:32:40PM -0400, Daniel Jacobowitz wrote:
28.17 -> > Thanks. How's this?
28.18 ->
28.19 -> As you might have guessed from my rather slack review of your previous
28.20 -> patch, I trust you enough to give the OK without proper review. But
28.21 -> since you asked... :)
28.22 -
28.23 -Checked in as so.
28.24 -
28.25 ---
28.26 -Daniel Jacobowitz
28.27 -
28.28 -[ rediffed against binutils-2.15.91.0.2, with some elbow grease ]
28.29 -
28.30 -2004-08-20 Daniel Jacobowitz <dan@debian.org>
28.31 -
28.32 - * elflink.c (_bfd_elf_section_already_linked): Handle
28.33 - SEC_LINK_DUPLICATES_SAME_CONTENTS.
28.34 ---- binutils-2.15.91.0.2/bfd/elflink.c.old 2004-07-27 21:36:08.000000000 -0700
28.35 -+++ binutils-2.15.91.0.2/bfd/elflink.c 2004-08-26 06:38:07.000000000 -0700
28.36 -@@ -9359,6 +9359,35 @@
28.37 - (_("%s: %s: warning: duplicate section `%s' has different size\n"),
28.38 - bfd_archive_filename (abfd), name);
28.39 - break;
28.40 -+ case SEC_LINK_DUPLICATES_SAME_CONTENTS:
28.41 -+ if (sec->size != l->sec->size)
28.42 -+ (*_bfd_error_handler)
28.43 -+ (_("%B: duplicate section `%A' has different size\n"),
28.44 -+ bfd_archive_filename (abfd), sec);
28.45 -+ else if (sec->size != 0)
28.46 -+ {
28.47 -+ bfd_byte *sec_contents, *l_sec_contents;
28.48 -+
28.49 -+ if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents))
28.50 -+ (*_bfd_error_handler)
28.51 -+ (_("%B: warning: could not read contents of section `%A'\n"),
28.52 -+ bfd_archive_filename (abfd), sec);
28.53 -+ else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec,
28.54 -+ &l_sec_contents))
28.55 -+ (*_bfd_error_handler)
28.56 -+ (_("%B: warning: could not read contents of section `%A'\n"),
28.57 -+ bfd_archive_filename(l->sec->owner), l->sec);
28.58 -+ else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0)
28.59 -+ (*_bfd_error_handler)
28.60 -+ (_("%B: warning: duplicate section `%A' has different contents\n"),
28.61 -+ bfd_archive_filename (abfd), sec);
28.62 -+
28.63 -+ if (sec_contents)
28.64 -+ free (sec_contents);
28.65 -+ if (l_sec_contents)
28.66 -+ free (l_sec_contents);
28.67 -+ }
28.68 -+ break;
28.69 - }
28.70 -
28.71 - /* Set the output_section field so that lang_add_section
29.1 --- a/patches/binutils/2.15.91.0.2/binutils-skip-comments.patch Tue Aug 14 19:32:22 2007 +0000
29.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
29.3 @@ -1,101 +0,0 @@
29.4 -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
29.5 -Fixes
29.6 -localealias.s:544: Error: junk at end of line, first unrecognized character is `,'
29.7 -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
29.8 -
29.9 -Paths adjusted to match crosstool's patcher.
29.10 -
29.11 -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
29.12 -From: Andreas Schwab <schwab at suse dot de>
29.13 -To: Nathan Sidwell <nathan at codesourcery dot com>
29.14 -Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
29.15 -Date: Fri, 23 Apr 2004 22:27:19 +0200
29.16 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
29.17 -
29.18 -Nathan Sidwell <nathan@codesourcery.com> writes:
29.19 -
29.20 -> Index: read.c
29.21 -> ===================================================================
29.22 -> RCS file: /cvs/src/src/gas/read.c,v
29.23 -> retrieving revision 1.76
29.24 -> diff -c -3 -p -r1.76 read.c
29.25 -> *** read.c 12 Mar 2004 17:48:12 -0000 1.76
29.26 -> --- read.c 18 Mar 2004 09:56:05 -0000
29.27 -> *************** read_a_source_file (char *name)
29.28 -> *** 1053,1059 ****
29.29 -> #endif
29.30 -> input_line_pointer--;
29.31 -> /* Report unknown char as ignored. */
29.32 -> ! ignore_rest_of_line ();
29.33 -> }
29.34 ->
29.35 -> #ifdef md_after_pass_hook
29.36 -> --- 1053,1059 ----
29.37 -> #endif
29.38 -> input_line_pointer--;
29.39 -> /* Report unknown char as ignored. */
29.40 -> ! demand_empty_rest_of_line ();
29.41 -> }
29.42 ->
29.43 -> #ifdef md_after_pass_hook
29.44 -
29.45 -This means that the unknown character is no longer ignored, despite the
29.46 -comment. As a side effect a line starting with a line comment character
29.47 -not followed by APP in NO_APP mode now triggers an error instead of just a
29.48 -warning, breaking builds of glibc on m68k-linux. Earlier in
29.49 -read_a_source_file where #APP is handled there is another comment that
29.50 -claims that unknown comments are ignored, when in fact they aren't (only
29.51 -the initial line comment character is skipped).
29.52 -
29.53 -Note that the presence of #APP will mess up the line counters, but
29.54 -that appears to be difficult to fix.
29.55 -
29.56 -Andreas.
29.57 -
29.58 -2004-04-23 Andreas Schwab <schwab@suse.de>
29.59 -
29.60 - * read.c (read_a_source_file): Ignore unknown text after line
29.61 - comment character. Fix misleading comment.
29.62 -
29.63 ---- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200
29.64 -+++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200
29.65 -@@ -1,6 +1,6 @@
29.66 - /* read.c - read a source file -
29.67 - Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
29.68 -- 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
29.69 -+ 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
29.70 -
29.71 - This file is part of GAS, the GNU Assembler.
29.72 -
29.73 -@@ -950,10 +950,14 @@ read_a_source_file (char *name)
29.74 - unsigned int new_length;
29.75 - char *tmp_buf = 0;
29.76 -
29.77 -- bump_line_counters ();
29.78 - s = input_line_pointer;
29.79 - if (strncmp (s, "APP\n", 4))
29.80 -- continue; /* We ignore it */
29.81 -+ {
29.82 -+ /* We ignore it */
29.83 -+ ignore_rest_of_line ();
29.84 -+ continue;
29.85 -+ }
29.86 -+ bump_line_counters ();
29.87 - s += 4;
29.88 -
29.89 - sb_new (&sbuf);
29.90 -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
29.91 - continue;
29.92 - #endif
29.93 - input_line_pointer--;
29.94 -- /* Report unknown char as ignored. */
29.95 -+ /* Report unknown char as error. */
29.96 - demand_empty_rest_of_line ();
29.97 - }
29.98 -
29.99 -
29.100 ---
29.101 -Andreas Schwab, SuSE Labs, schwab@suse.de
29.102 -SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany
29.103 -Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
29.104 -"And now for something completely different."
30.1 --- a/patches/binutils/2.17.50.0.8/100-uclibc-conf.patch Tue Aug 14 19:32:22 2007 +0000
30.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
30.3 @@ -1,139 +0,0 @@
30.4 ---- binutils-2.16.91.0.7/bfd/configure
30.5 -+++ binutils-2.16.91.0.7/bfd/configure
30.6 -@@ -3576,7 +3576,7 @@
30.7 - ;;
30.8 -
30.9 - # This must be Linux ELF.
30.10 --linux-gnu*)
30.11 -+linux-gnu*|linux-uclibc*)
30.12 - lt_cv_deplibs_check_method=pass_all
30.13 - ;;
30.14 -
30.15 ---- binutils-2.16.91.0.7/binutils/configure
30.16 -+++ binutils-2.16.91.0.7/binutils/configure
30.17 -@@ -3411,7 +3411,7 @@
30.18 - ;;
30.19 -
30.20 - # This must be Linux ELF.
30.21 --linux-gnu*)
30.22 -+linux-gnu*|linux-uclibc*)
30.23 - lt_cv_deplibs_check_method=pass_all
30.24 - ;;
30.25 -
30.26 ---- binutils-2.16.91.0.7/configure
30.27 -+++ binutils-2.16.91.0.7/configure
30.28 -@@ -1270,7 +1270,7 @@
30.29 - am33_2.0-*-linux*)
30.30 - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
30.31 - ;;
30.32 -- sh-*-linux*)
30.33 -+ sh*-*-linux*)
30.34 - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
30.35 - ;;
30.36 - sh*-*-pe|mips*-*-pe|*arm-wince-pe)
30.37 -@@ -1578,7 +1578,7 @@
30.38 - romp-*-*)
30.39 - noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
30.40 - ;;
30.41 -- sh-*-* | sh64-*-*)
30.42 -+ sh*-*-* | sh64-*-*)
30.43 - case "${host}" in
30.44 - i[3456789]86-*-vsta) ;; # don't add gprof back in
30.45 - i[3456789]86-*-go32*) ;; # don't add gprof back in
30.46 ---- binutils-2.16.91.0.7/configure.in
30.47 -+++ binutils-2.16.91.0.7/configure.in
30.48 -@@ -468,7 +468,7 @@
30.49 - am33_2.0-*-linux*)
30.50 - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
30.51 - ;;
30.52 -- sh-*-linux*)
30.53 -+ sh*-*-linux*)
30.54 - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
30.55 - ;;
30.56 - sh*-*-pe|mips*-*-pe|*arm-wince-pe)
30.57 -@@ -776,7 +776,7 @@
30.58 - romp-*-*)
30.59 - noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
30.60 - ;;
30.61 -- sh-*-* | sh64-*-*)
30.62 -+ sh*-*-* | sh64-*-*)
30.63 - case "${host}" in
30.64 - i[[3456789]]86-*-vsta) ;; # don't add gprof back in
30.65 - i[[3456789]]86-*-go32*) ;; # don't add gprof back in
30.66 ---- binutils-2.16.91.0.7/gas/configure
30.67 -+++ binutils-2.16.91.0.7/gas/configure
30.68 -@@ -3411,7 +3411,7 @@
30.69 - ;;
30.70 -
30.71 - # This must be Linux ELF.
30.72 --linux-gnu*)
30.73 -+linux-gnu*|linux-uclibc*)
30.74 - lt_cv_deplibs_check_method=pass_all
30.75 - ;;
30.76 -
30.77 ---- binutils-2.16.91.0.7/gprof/configure
30.78 -+++ binutils-2.16.91.0.7/gprof/configure
30.79 -@@ -3419,6 +3419,11 @@
30.80 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
30.81 - ;;
30.82 -
30.83 -+linux-uclibc*)
30.84 -+ lt_cv_deplibs_check_method=pass_all
30.85 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
30.86 -+ ;;
30.87 -+
30.88 - netbsd* | knetbsd*-gnu)
30.89 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
30.90 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
30.91 ---- binutils-2.16.91.0.7/ld/configure
30.92 -+++ binutils-2.16.91.0.7/ld/configure
30.93 -@@ -3413,7 +3413,7 @@
30.94 - ;;
30.95 -
30.96 - # This must be Linux ELF.
30.97 --linux-gnu*)
30.98 -+linux-gnu*|linux-uclibc*)
30.99 - lt_cv_deplibs_check_method=pass_all
30.100 - ;;
30.101 -
30.102 ---- binutils-2.16.91.0.7/libtool.m4
30.103 -+++ binutils-2.16.91.0.7/libtool.m4
30.104 -@@ -739,7 +739,7 @@
30.105 - ;;
30.106 -
30.107 - # This must be Linux ELF.
30.108 --linux-gnu*)
30.109 -+linux-gnu*|linux-uclibc*)
30.110 - lt_cv_deplibs_check_method=pass_all
30.111 - ;;
30.112 -
30.113 ---- binutils-2.16.91.0.7/ltconfig
30.114 -+++ binutils-2.16.91.0.7/ltconfig
30.115 -@@ -602,6 +602,7 @@
30.116 -
30.117 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
30.118 - case $host_os in
30.119 -+linux-uclibc*) ;;
30.120 - linux-gnu*) ;;
30.121 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
30.122 - esac
30.123 -@@ -1247,7 +1248,7 @@
30.124 - ;;
30.125 -
30.126 - # This must be Linux ELF.
30.127 --linux-gnu*)
30.128 -+linux-gnu*|linux-uclibc*)
30.129 - version_type=linux
30.130 - need_lib_prefix=no
30.131 - need_version=no
30.132 ---- binutils-2.16.91.0.7/opcodes/configure
30.133 -+++ binutils-2.16.91.0.7/opcodes/configure
30.134 -@@ -3579,7 +3579,7 @@
30.135 - ;;
30.136 -
30.137 - # This must be Linux ELF.
30.138 --linux-gnu*)
30.139 -+linux-gnu*|linux-uclibc*)
30.140 - lt_cv_deplibs_check_method=pass_all
30.141 - ;;
30.142 -
31.1 --- a/patches/binutils/2.17.50.0.8/110-arm-eabi-conf.patch Tue Aug 14 19:32:22 2007 +0000
31.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
31.3 @@ -1,24 +0,0 @@
31.4 -diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
31.5 ---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
31.6 -+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
31.7 -@@ -1299,7 +1299,7 @@
31.8 - arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
31.9 - noconfigdirs="$noconfigdirs target-libffi target-qthreads"
31.10 - ;;
31.11 -- arm*-*-linux-gnueabi)
31.12 -+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
31.13 - noconfigdirs="$noconfigdirs target-libffi target-qthreads"
31.14 - noconfigdirs="$noconfigdirs target-libjava target-libobjc"
31.15 - ;;
31.16 -diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
31.17 ---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
31.18 -+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
31.19 -@@ -497,7 +497,7 @@
31.20 - arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
31.21 - noconfigdirs="$noconfigdirs target-libffi target-qthreads"
31.22 - ;;
31.23 -- arm*-*-linux-gnueabi)
31.24 -+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
31.25 - noconfigdirs="$noconfigdirs target-libffi target-qthreads"
31.26 - noconfigdirs="$noconfigdirs target-libjava target-libobjc"
31.27 - ;;
32.1 --- a/patches/binutils/2.17.50.0.8/300-001_ld_makefile_patch.patch Tue Aug 14 19:32:22 2007 +0000
32.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
32.3 @@ -1,50 +0,0 @@
32.4 -#!/bin/sh -e
32.5 -## 001_ld_makefile_patch.dpatch
32.6 -##
32.7 -## All lines beginning with `## DP:' are a description of the patch.
32.8 -## DP: Description: correct where ld scripts are installed
32.9 -## DP: Author: Chris Chimelis <chris@debian.org>
32.10 -## DP: Upstream status: N/A
32.11 -## DP: Date: ??
32.12 -
32.13 -if [ $# -ne 1 ]; then
32.14 - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
32.15 - exit 1
32.16 -fi
32.17 -
32.18 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
32.19 -patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
32.20 -
32.21 -case "$1" in
32.22 - -patch) patch $patch_opts -p1 < $0;;
32.23 - -unpatch) patch $patch_opts -p1 -R < $0;;
32.24 - *)
32.25 - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
32.26 - exit 1;;
32.27 -esac
32.28 -
32.29 -exit 0
32.30 -
32.31 -@DPATCH@
32.32 ---- binutils-2.16.91.0.1/ld/Makefile.am
32.33 -+++ binutils-2.16.91.0.1/ld/Makefile.am
32.34 -@@ -20,7 +20,7 @@
32.35 - # We put the scripts in the directory $(scriptdir)/ldscripts.
32.36 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
32.37 - # directives need to be different for native and cross linkers.
32.38 --scriptdir = $(tooldir)/lib
32.39 -+scriptdir = $(libdir)
32.40 -
32.41 - EMUL = @EMUL@
32.42 - EMULATION_OFILES = @EMULATION_OFILES@
32.43 ---- binutils-2.16.91.0.1/ld/Makefile.in
32.44 -+++ binutils-2.16.91.0.1/ld/Makefile.in
32.45 -@@ -268,7 +268,7 @@
32.46 - # We put the scripts in the directory $(scriptdir)/ldscripts.
32.47 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
32.48 - # directives need to be different for native and cross linkers.
32.49 --scriptdir = $(tooldir)/lib
32.50 -+scriptdir = $(libdir)
32.51 - BASEDIR = $(srcdir)/..
32.52 - BFDDIR = $(BASEDIR)/bfd
32.53 - INCDIR = $(BASEDIR)/include
33.1 --- a/patches/binutils/2.17.50.0.8/300-012_check_ldrunpath_length.patch Tue Aug 14 19:32:22 2007 +0000
33.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
33.3 @@ -1,47 +0,0 @@
33.4 -#!/bin/sh -e
33.5 -## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
33.6 -##
33.7 -## All lines beginning with `## DP:' are a description of the patch.
33.8 -## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
33.9 -## DP: cases where -rpath isn't specified. (#151024)
33.10 -
33.11 -if [ $# -ne 1 ]; then
33.12 - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
33.13 - exit 1
33.14 -fi
33.15 -
33.16 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
33.17 -patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
33.18 -
33.19 -case "$1" in
33.20 - -patch) patch $patch_opts -p1 < $0;;
33.21 - -unpatch) patch $patch_opts -p1 -R < $0;;
33.22 - *)
33.23 - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
33.24 - exit 1;;
33.25 -esac
33.26 -
33.27 -exit 0
33.28 -
33.29 -@DPATCH@
33.30 -diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
33.31 ---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
33.32 -+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
33.33 -@@ -692,6 +692,8 @@
33.34 - && command_line.rpath == NULL)
33.35 - {
33.36 - lib_path = (const char *) getenv ("LD_RUN_PATH");
33.37 -+ if ((lib_path) && (strlen (lib_path) == 0))
33.38 -+ lib_path = NULL;
33.39 - if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
33.40 - force))
33.41 - break;
33.42 -@@ -871,6 +873,8 @@
33.43 - rpath = command_line.rpath;
33.44 - if (rpath == NULL)
33.45 - rpath = (const char *) getenv ("LD_RUN_PATH");
33.46 -+ if ((rpath) && (strlen (rpath) == 0))
33.47 -+ rpath = NULL;
33.48 - if (! (bfd_elf_size_dynamic_sections
33.49 - (output_bfd, command_line.soname, rpath,
33.50 - command_line.filter_shlib,
34.1 --- a/patches/binutils/2.17.50.0.9/100-uclibc-conf.patch Tue Aug 14 19:32:22 2007 +0000
34.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
34.3 @@ -1,139 +0,0 @@
34.4 ---- binutils-2.16.91.0.7/bfd/configure
34.5 -+++ binutils-2.16.91.0.7/bfd/configure
34.6 -@@ -3576,7 +3576,7 @@
34.7 - ;;
34.8 -
34.9 - # This must be Linux ELF.
34.10 --linux-gnu*)
34.11 -+linux-gnu*|linux-uclibc*)
34.12 - lt_cv_deplibs_check_method=pass_all
34.13 - ;;
34.14 -
34.15 ---- binutils-2.16.91.0.7/binutils/configure
34.16 -+++ binutils-2.16.91.0.7/binutils/configure
34.17 -@@ -3411,7 +3411,7 @@
34.18 - ;;
34.19 -
34.20 - # This must be Linux ELF.
34.21 --linux-gnu*)
34.22 -+linux-gnu*|linux-uclibc*)
34.23 - lt_cv_deplibs_check_method=pass_all
34.24 - ;;
34.25 -
34.26 ---- binutils-2.16.91.0.7/configure
34.27 -+++ binutils-2.16.91.0.7/configure
34.28 -@@ -1270,7 +1270,7 @@
34.29 - am33_2.0-*-linux*)
34.30 - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
34.31 - ;;
34.32 -- sh-*-linux*)
34.33 -+ sh*-*-linux*)
34.34 - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
34.35 - ;;
34.36 - sh*-*-pe|mips*-*-pe|*arm-wince-pe)
34.37 -@@ -1578,7 +1578,7 @@
34.38 - romp-*-*)
34.39 - noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
34.40 - ;;
34.41 -- sh-*-* | sh64-*-*)
34.42 -+ sh*-*-* | sh64-*-*)
34.43 - case "${host}" in
34.44 - i[3456789]86-*-vsta) ;; # don't add gprof back in
34.45 - i[3456789]86-*-go32*) ;; # don't add gprof back in
34.46 ---- binutils-2.16.91.0.7/configure.in
34.47 -+++ binutils-2.16.91.0.7/configure.in
34.48 -@@ -468,7 +468,7 @@
34.49 - am33_2.0-*-linux*)
34.50 - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
34.51 - ;;
34.52 -- sh-*-linux*)
34.53 -+ sh*-*-linux*)
34.54 - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
34.55 - ;;
34.56 - sh*-*-pe|mips*-*-pe|*arm-wince-pe)
34.57 -@@ -776,7 +776,7 @@
34.58 - romp-*-*)
34.59 - noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
34.60 - ;;
34.61 -- sh-*-* | sh64-*-*)
34.62 -+ sh*-*-* | sh64-*-*)
34.63 - case "${host}" in
34.64 - i[[3456789]]86-*-vsta) ;; # don't add gprof back in
34.65 - i[[3456789]]86-*-go32*) ;; # don't add gprof back in
34.66 ---- binutils-2.16.91.0.7/gas/configure
34.67 -+++ binutils-2.16.91.0.7/gas/configure
34.68 -@@ -3411,7 +3411,7 @@
34.69 - ;;
34.70 -
34.71 - # This must be Linux ELF.
34.72 --linux-gnu*)
34.73 -+linux-gnu*|linux-uclibc*)
34.74 - lt_cv_deplibs_check_method=pass_all
34.75 - ;;
34.76 -
34.77 ---- binutils-2.16.91.0.7/gprof/configure
34.78 -+++ binutils-2.16.91.0.7/gprof/configure
34.79 -@@ -3419,6 +3419,11 @@
34.80 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
34.81 - ;;
34.82 -
34.83 -+linux-uclibc*)
34.84 -+ lt_cv_deplibs_check_method=pass_all
34.85 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
34.86 -+ ;;
34.87 -+
34.88 - netbsd* | knetbsd*-gnu)
34.89 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
34.90 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
34.91 ---- binutils-2.16.91.0.7/ld/configure
34.92 -+++ binutils-2.16.91.0.7/ld/configure
34.93 -@@ -3413,7 +3413,7 @@
34.94 - ;;
34.95 -
34.96 - # This must be Linux ELF.
34.97 --linux-gnu*)
34.98 -+linux-gnu*|linux-uclibc*)
34.99 - lt_cv_deplibs_check_method=pass_all
34.100 - ;;
34.101 -
34.102 ---- binutils-2.16.91.0.7/libtool.m4
34.103 -+++ binutils-2.16.91.0.7/libtool.m4
34.104 -@@ -739,7 +739,7 @@
34.105 - ;;
34.106 -
34.107 - # This must be Linux ELF.
34.108 --linux-gnu*)
34.109 -+linux-gnu*|linux-uclibc*)
34.110 - lt_cv_deplibs_check_method=pass_all
34.111 - ;;
34.112 -
34.113 ---- binutils-2.16.91.0.7/ltconfig
34.114 -+++ binutils-2.16.91.0.7/ltconfig
34.115 -@@ -602,6 +602,7 @@
34.116 -
34.117 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
34.118 - case $host_os in
34.119 -+linux-uclibc*) ;;
34.120 - linux-gnu*) ;;
34.121 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
34.122 - esac
34.123 -@@ -1247,7 +1248,7 @@
34.124 - ;;
34.125 -
34.126 - # This must be Linux ELF.
34.127 --linux-gnu*)
34.128 -+linux-gnu*|linux-uclibc*)
34.129 - version_type=linux
34.130 - need_lib_prefix=no
34.131 - need_version=no
34.132 ---- binutils-2.16.91.0.7/opcodes/configure
34.133 -+++ binutils-2.16.91.0.7/opcodes/configure
34.134 -@@ -3579,7 +3579,7 @@
34.135 - ;;
34.136 -
34.137 - # This must be Linux ELF.
34.138 --linux-gnu*)
34.139 -+linux-gnu*|linux-uclibc*)
34.140 - lt_cv_deplibs_check_method=pass_all
34.141 - ;;
34.142 -
35.1 --- a/patches/binutils/2.17.50.0.9/110-arm-eabi-conf.patch Tue Aug 14 19:32:22 2007 +0000
35.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35.3 @@ -1,24 +0,0 @@
35.4 -diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
35.5 ---- binutils-2.16.91.0.7.orig/configure 2006-05-31 14:54:24.000000000 +0300
35.6 -+++ binutils-2.16.91.0.7/configure 2006-05-31 14:55:53.000000000 +0300
35.7 -@@ -1299,7 +1299,7 @@
35.8 - arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
35.9 - noconfigdirs="$noconfigdirs target-libffi target-qthreads"
35.10 - ;;
35.11 -- arm*-*-linux-gnueabi)
35.12 -+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
35.13 - noconfigdirs="$noconfigdirs target-libffi target-qthreads"
35.14 - noconfigdirs="$noconfigdirs target-libjava target-libobjc"
35.15 - ;;
35.16 -diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
35.17 ---- binutils-2.16.91.0.7.orig/configure.in 2006-05-31 14:54:24.000000000 +0300
35.18 -+++ binutils-2.16.91.0.7/configure.in 2006-05-31 14:55:53.000000000 +0300
35.19 -@@ -497,7 +497,7 @@
35.20 - arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
35.21 - noconfigdirs="$noconfigdirs target-libffi target-qthreads"
35.22 - ;;
35.23 -- arm*-*-linux-gnueabi)
35.24 -+ arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
35.25 - noconfigdirs="$noconfigdirs target-libffi target-qthreads"
35.26 - noconfigdirs="$noconfigdirs target-libjava target-libobjc"
35.27 - ;;
36.1 --- a/patches/binutils/2.17.50.0.9/300-001_ld_makefile_patch.patch Tue Aug 14 19:32:22 2007 +0000
36.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
36.3 @@ -1,50 +0,0 @@
36.4 -#!/bin/sh -e
36.5 -## 001_ld_makefile_patch.dpatch
36.6 -##
36.7 -## All lines beginning with `## DP:' are a description of the patch.
36.8 -## DP: Description: correct where ld scripts are installed
36.9 -## DP: Author: Chris Chimelis <chris@debian.org>
36.10 -## DP: Upstream status: N/A
36.11 -## DP: Date: ??
36.12 -
36.13 -if [ $# -ne 1 ]; then
36.14 - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
36.15 - exit 1
36.16 -fi
36.17 -
36.18 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
36.19 -patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
36.20 -
36.21 -case "$1" in
36.22 - -patch) patch $patch_opts -p1 < $0;;
36.23 - -unpatch) patch $patch_opts -p1 -R < $0;;
36.24 - *)
36.25 - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
36.26 - exit 1;;
36.27 -esac
36.28 -
36.29 -exit 0
36.30 -
36.31 -@DPATCH@
36.32 ---- binutils-2.16.91.0.1/ld/Makefile.am
36.33 -+++ binutils-2.16.91.0.1/ld/Makefile.am
36.34 -@@ -20,7 +20,7 @@
36.35 - # We put the scripts in the directory $(scriptdir)/ldscripts.
36.36 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
36.37 - # directives need to be different for native and cross linkers.
36.38 --scriptdir = $(tooldir)/lib
36.39 -+scriptdir = $(libdir)
36.40 -
36.41 - EMUL = @EMUL@
36.42 - EMULATION_OFILES = @EMULATION_OFILES@
36.43 ---- binutils-2.16.91.0.1/ld/Makefile.in
36.44 -+++ binutils-2.16.91.0.1/ld/Makefile.in
36.45 -@@ -268,7 +268,7 @@
36.46 - # We put the scripts in the directory $(scriptdir)/ldscripts.
36.47 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
36.48 - # directives need to be different for native and cross linkers.
36.49 --scriptdir = $(tooldir)/lib
36.50 -+scriptdir = $(libdir)
36.51 - BASEDIR = $(srcdir)/..
36.52 - BFDDIR = $(BASEDIR)/bfd
36.53 - INCDIR = $(BASEDIR)/include
37.1 --- a/patches/binutils/2.17.50.0.9/300-012_check_ldrunpath_length.patch Tue Aug 14 19:32:22 2007 +0000
37.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
37.3 @@ -1,47 +0,0 @@
37.4 -#!/bin/sh -e
37.5 -## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
37.6 -##
37.7 -## All lines beginning with `## DP:' are a description of the patch.
37.8 -## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
37.9 -## DP: cases where -rpath isn't specified. (#151024)
37.10 -
37.11 -if [ $# -ne 1 ]; then
37.12 - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
37.13 - exit 1
37.14 -fi
37.15 -
37.16 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
37.17 -patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
37.18 -
37.19 -case "$1" in
37.20 - -patch) patch $patch_opts -p1 < $0;;
37.21 - -unpatch) patch $patch_opts -p1 -R < $0;;
37.22 - *)
37.23 - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
37.24 - exit 1;;
37.25 -esac
37.26 -
37.27 -exit 0
37.28 -
37.29 -@DPATCH@
37.30 -diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
37.31 ---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
37.32 -+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
37.33 -@@ -692,6 +692,8 @@
37.34 - && command_line.rpath == NULL)
37.35 - {
37.36 - lib_path = (const char *) getenv ("LD_RUN_PATH");
37.37 -+ if ((lib_path) && (strlen (lib_path) == 0))
37.38 -+ lib_path = NULL;
37.39 - if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
37.40 - force))
37.41 - break;
37.42 -@@ -871,6 +873,8 @@
37.43 - rpath = command_line.rpath;
37.44 - if (rpath == NULL)
37.45 - rpath = (const char *) getenv ("LD_RUN_PATH");
37.46 -+ if ((rpath) && (strlen (rpath) == 0))
37.47 -+ rpath = NULL;
37.48 - if (! (bfd_elf_size_dynamic_sections
37.49 - (output_bfd, command_line.soname, rpath,
37.50 - command_line.filter_shlib,
38.1 --- a/patches/gcc/3.3.1/compat.exp.patch Tue Aug 14 19:32:22 2007 +0000
38.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
38.3 @@ -1,37 +0,0 @@
38.4 -Fixes the following problem when testing a cross-compiler:
38.5 -
38.6 -============================================
38.7 -Testing g++.dg/compat/abi/bitfield1,
38.8 -...
38.9 -Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/testsuite/../g++ ...
38.10 -/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
38.11 -pid is 16028 -16028
38.12 -compiler exited with status 1
38.13 -output is:
38.14 -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
38.15 -/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
38.16 -
38.17 -FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
38.18 -============================================
38.19 -
38.20 ---- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old Thu Oct 17 17:22:57 2002
38.21 -+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp Mon Jul 14 10:59:19 2003
38.22 -@@ -42,11 +42,13 @@
38.23 - proc compat-fix-library-path { } {
38.24 - global ld_library_path
38.25 -
38.26 -- # See comments in lib/g++.exp for why this is needed.
38.27 -- setenv LD_LIBRARY_PATH $ld_library_path
38.28 -- setenv SHLIB_PATH $ld_library_path
38.29 -- setenv LD_LIBRARYN32_PATH $ld_library_path
38.30 -- setenv LD_LIBRARY64_PATH $ld_library_path
38.31 -+ if {![is_remote target]} {
38.32 -+ # See comments in lib/g++.exp for why this is needed.
38.33 -+ setenv LD_LIBRARY_PATH $ld_library_path
38.34 -+ setenv SHLIB_PATH $ld_library_path
38.35 -+ setenv LD_LIBRARYN32_PATH $ld_library_path
38.36 -+ setenv LD_LIBRARY64_PATH $ld_library_path
38.37 -+ }
38.38 - }
38.39 -
38.40 - #
39.1 --- a/patches/gcc/3.3.1/config.sub.patch Tue Aug 14 19:32:22 2007 +0000
39.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
39.3 @@ -1,72 +0,0 @@
39.4 -When configuring a s390->s390 or cris->cris crosscompiler
39.5 -(ok, I haven't hit this yet, but one of these days I'll get me an account
39.6 -on an s390, and then I'll need this patch :-), you'll get the
39.7 -following error:
39.8 -
39.9 -+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
39.10 ---target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
39.11 ---prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
39.12 ---enable-languages=c
39.13 ---with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
39.14 -unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
39.15 ---disable-shared
39.16 -...
39.17 -*** --with-headers is only supported when cross compiling
39.18 -
39.19 -This error pops up only when you're using Daniel Jacobowitz's technique
39.20 -of slightly changing the target and host tuples to make them different
39.21 -enough to force gcc's build system to not try to pull in system libraries
39.22 -or headers. This technique is needed e.g. to build an x86 -> x86
39.23 -cross-compiler.
39.24 -(The LFS developers ran into the same bug that prompted me to use
39.25 -this technique; they point people who run into it to
39.26 -http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
39.27 -way of avoiding this problem. I think the tuple tweak is the way to go, though.)
39.28 -
39.29 -config-patches@gnu.org rejected this patch, on the grounds that there
39.30 -is only one vendor of each of those two architectures, so the
39.31 -canonicalization is by definition correct. When I pointed out the
39.32 -difficulty this causes for people building s390 -> s390 or
39.33 -cris -> cris compilers that are incompatible with the system
39.34 -libraries and thus must be built like cross-compilers, he grumped and said
39.35 -"autoconf should let you specify a cross-compiler in some other way than
39.36 -comparing tuple strings".
39.37 -
39.38 -
39.39 -
39.40 ---- gcc-3.3/config.sub.old Sun Jun 8 20:38:47 2003
39.41 -+++ gcc-3.3/config.sub Sun Jun 8 20:40:34 2003
39.42 -@@ -433,9 +433,12 @@
39.43 - crds | unos)
39.44 - basic_machine=m68k-crds
39.45 - ;;
39.46 -- cris | cris-* | etrax*)
39.47 -+ cris | etrax*)
39.48 - basic_machine=cris-axis
39.49 - ;;
39.50 -+ cris-*)
39.51 -+ basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
39.52 -+ ;;
39.53 - da30 | da30-*)
39.54 - basic_machine=m68k-da30
39.55 - ;;
39.56 -@@ -820,11 +823,17 @@
39.57 - rtpc | rtpc-*)
39.58 - basic_machine=romp-ibm
39.59 - ;;
39.60 -- s390 | s390-*)
39.61 -+ s390)
39.62 - basic_machine=s390-ibm
39.63 - ;;
39.64 -- s390x | s390x-*)
39.65 -+ s390-*)
39.66 -+ basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
39.67 -+ ;;
39.68 -+ s390x)
39.69 - basic_machine=s390x-ibm
39.70 -+ ;;
39.71 -+ s390x-*)
39.72 -+ basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
39.73 - ;;
39.74 - sa29200)
39.75 - basic_machine=a29k-amd
40.1 --- a/patches/gcc/3.3.1/empty6.patch Tue Aug 14 19:32:22 2007 +0000
40.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
40.3 @@ -1,21 +0,0 @@
40.4 -From 3.4 branch. Fixes test failure
40.5 -FAIL: g++.dg/abi/empty6.C (test for warnings, line 6)
40.6 -
40.7 -===================================================================
40.8 -RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
40.9 -retrieving revision 1.1
40.10 -retrieving revision 1.2
40.11 -diff -u -r1.1 -r1.2
40.12 ---- gcc/gcc/testsuite/g++.dg/abi/empty6.C 2002/09/25 19:07:35 1.1
40.13 -+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C 2003/06/03 19:10:09 1.2
40.14 -@@ -5,4 +5,9 @@
40.15 - struct B {
40.16 - A a; // { dg-warning "empty" }
40.17 - virtual void f () {}
40.18 --};
40.19 -+} __attribute__((aligned(8)));
40.20 -+/* The preceding attribute is necessary on targets with
40.21 -+ BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
40.22 -+ offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
40.23 -+ and then there is no discrepancy between DECL_FIELD_OFFSET and
40.24 -+ byte_position to warn about. */
41.1 --- a/patches/gcc/3.3.1/gcc-3.2.3-g++.exp.patch Tue Aug 14 19:32:22 2007 +0000
41.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
41.3 @@ -1,100 +0,0 @@
41.4 -See http://gcc.gnu.org/PR12010
41.5 -
41.6 -g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
41.7 -
41.8 -The first hunk fixes the error
41.9 -
41.10 -/testsuite_flags: /testsuite_flags: No such file or directory
41.11 - while executing
41.12 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
41.13 - (procedure "g++_include_flags" line 21)
41.14 - invoked from within
41.15 -"g++_include_flags [get_multilibs] "
41.16 - (procedure "g++_init" line 63)
41.17 - invoked from within
41.18 -"${tool}_init $test_file_name"
41.19 - (procedure "runtest" line 19)
41.20 - invoked from within
41.21 -"runtest $test_name"
41.22 - ("foreach" body line 42)
41.23 - invoked from within
41.24 -...
41.25 -make[1]: [check-g++] Error 1 (ignored)
41.26 -
41.27 -The fix isn't especially pretty, but it worked for me, and can't hurt the
41.28 -more common native compiler case. Maybe someone who knows the code better
41.29 -can come up with a better fix.
41.30 -
41.31 -The second hunk fixes the error
41.32 -
41.33 -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
41.34 -
41.35 -when trying to compile g++ testcases (!); setting up
41.36 -the shared library environment when running crosstests of g++
41.37 -should either be done by a special board file, or by
41.38 -setting up a remote chroot environment (see http://kegel.com/crosstool),
41.39 -not by blithely setting LD_LIBRARY_PATH on the local system.
41.40 -
41.41 ---- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old Fri Jul 11 15:42:47 2003
41.42 -+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp Sat Jul 12 12:57:07 2003
41.43 -@@ -72,6 +72,8 @@
41.44 - #
41.45 - proc g++_include_flags { paths } {
41.46 - global srcdir
41.47 -+ global objdir
41.48 -+ global target_triplet
41.49 - global HAVE_LIBSTDCXX_V3
41.50 - global TESTING_IN_BUILD_TREE
41.51 -
41.52 -@@ -90,6 +92,20 @@
41.53 -
41.54 - if { ${HAVE_LIBSTDCXX_V3} } {
41.55 - set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
41.56 -+ if { $odir_v3 == "" } {
41.57 -+ verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
41.58 -+ # first assume no multilibs
41.59 -+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
41.60 -+ }
41.61 -+ if { $odir_v3 == "" } {
41.62 -+ verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
41.63 -+ # assume multilib only one level deep
41.64 -+ set multisub [file tail $gccpath]
41.65 -+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
41.66 -+ }
41.67 -+ if { $odir_v3 == "" } {
41.68 -+ error "Can't find libstdc++-v3"
41.69 -+ }
41.70 - append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
41.71 - } else {
41.72 - set odir_v2 [lookfor_file ${gccpath} libstdc++]
41.73 -@@ -192,16 +192,20 @@
41.74 - }
41.75 - }
41.76 -
41.77 -- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
41.78 -- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
41.79 -- # (for the 64-bit ABI). The right way to do this would be to modify
41.80 -- # unix.exp -- but that's not an option since it's part of DejaGNU
41.81 -- # proper, so we do it here. We really only need to do
41.82 -- # this on IRIX, but it shouldn't hurt to do it anywhere else.
41.83 -- setenv LD_LIBRARY_PATH $ld_library_path
41.84 -- setenv SHLIB_PATH $ld_library_path
41.85 -- setenv LD_LIBRARYN32_PATH $ld_library_path
41.86 -- setenv LD_LIBRARY64_PATH $ld_library_path
41.87 -+ if {![is_remote target]} {
41.88 -+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
41.89 -+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
41.90 -+ # (for the 64-bit ABI). The right way to do this would be to modify
41.91 -+ # unix.exp -- but that's not an option since it's part of DejaGNU
41.92 -+ # proper, so we do it here. We really only need to do
41.93 -+ # this on IRIX, but it shouldn't hurt to do it anywhere else.
41.94 -+
41.95 -+ # Doing this causes us to be unable to run cross-compilers.
41.96 -+ setenv LD_LIBRARY_PATH $ld_library_path
41.97 -+ setenv SHLIB_PATH $ld_library_path
41.98 -+ setenv LD_LIBRARYN32_PATH $ld_library_path
41.99 -+ setenv LD_LIBRARY64_PATH $ld_library_path
41.100 -+ }
41.101 -
41.102 - return "$flags"
41.103 - }
42.1 --- a/patches/gcc/3.3.1/gcc-3.3-libstdc++-v3-dg.exp.patch Tue Aug 14 19:32:22 2007 +0000
42.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
42.3 @@ -1,54 +0,0 @@
42.4 -Without this patch, the command
42.5 -
42.6 -RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
42.7 -
42.8 -fails in two ways:
42.9 -1. the -L option meant to locate the testsuite directory is incorrect, and
42.10 -2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
42.11 -is the native compiler is invoked when we really wanted to invoke the cross-compiler
42.12 -we just built.
42.13 -
42.14 -Here's an example log of the problem in action. Every testcase fails, this shows just one:
42.15 --------------
42.16 -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
42.17 -compiler exited with status 1
42.18 -output is:
42.19 -/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
42.20 -/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
42.21 -/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
42.22 -/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
42.23 -/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
42.24 -...
42.25 -FAIL: 20_util/binders.cc (test for excess errors)
42.26 -WARNING: 20_util/binders.cc compilation failed to produce executable
42.27 --------------
42.28 -
42.29 -And here's the patch. I'm not happy with it, and it probably gets some cases wrong,
42.30 -but it seems to work for the common native case and for my cross-compiler case.
42.31 -
42.32 ---- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old Sun Jul 13 10:42:01 2003
42.33 -+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Sun Jul 13 11:39:54 2003
42.34 -@@ -46,8 +46,23 @@
42.35 - global gluefile wrap_flags
42.36 - global ld_library_path
42.37 - global tool_root_dir
42.38 -+ global target_triplet
42.39 -
42.40 - set blddir [lookfor_file [get_multilibs] libstdc++-v3]
42.41 -+ if { $blddir == "" } {
42.42 -+ set multilibs [get_multilibs]
42.43 -+ # FIXME: assume multilib only one level deep
42.44 -+ set multisub [file tail $multilibs]
42.45 -+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
42.46 -+ set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
42.47 -+ }
42.48 -+ if { $blddir == "" } {
42.49 -+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
42.50 -+ set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
42.51 -+ }
42.52 -+ if { $blddir == "" } {
42.53 -+ error "Can't find libstdc++-v3"
42.54 -+ }
42.55 -
42.56 - # By default, we assume we want to run program images.
42.57 - global dg-do-what-default
43.1 --- a/patches/gcc/3.3.1/gcc-3.3.1-trap-posix.patch Tue Aug 14 19:32:22 2007 +0000
43.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
43.3 @@ -1,44 +0,0 @@
43.4 -#
43.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
43.6 -#
43.7 -# Error:
43.8 -#
43.9 -# creating libintl.h
43.10 -# Configuring etc...
43.11 -# loading cache ../config.cache
43.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
43.13 -# creating ./config.status
43.14 -# creating Makefile
43.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
43.16 -#
43.17 -# Description:
43.18 -#
43.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
43.20 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
43.21 -#
43.22 -# Status:
43.23 -#
43.24 -# fixed in gcc >= 3.3.5
43.25 -# backport of gcc-3.3.5 fix
43.26 -#
43.27 -diff -ruN gcc-3.3.1-orig/configure gcc-3.3.1/configure
43.28 ---- gcc-3.3.1-orig/configure 2002-09-29 18:11:24.000000000 +0200
43.29 -+++ gcc-3.3.1/configure 2005-04-20 18:49:20.223220401 +0200
43.30 -@@ -697,7 +697,7 @@
43.31 - if test -f skip-this-dir; then
43.32 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
43.33 - # and reset the trap handler.
43.34 -- trap 0
43.35 -+ trap '' 0
43.36 - rm -rf Makefile* ${tmpdir}
43.37 - # Execute the final clean-up actions
43.38 - ${config_shell} skip-this-dir
43.39 -@@ -1596,7 +1596,7 @@
43.40 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
43.41 - # and reset the trap handler.
43.42 - rm -rf ${tmpdir}
43.43 --trap 0
43.44 -+trap '' 0
43.45 -
43.46 - exit 0
43.47 -
44.1 --- a/patches/gcc/3.3.1/pr10392-1-test.patch Tue Aug 14 19:32:22 2007 +0000
44.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
44.3 @@ -1,65 +0,0 @@
44.4 ---- /dev/null Sat Dec 14 13:56:51 2002
44.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10392-1.c Sun Sep 14 14:28:24 2003
44.6 -@@ -0,0 +1,62 @@
44.7 -+/* PR optimization/10392
44.8 -+ * Reporter: marcus@mc.pp.se
44.9 -+ * Summary: [3.3/3.4 regression] [SH] optimizer generates faulty array indexing
44.10 -+ * Description:
44.11 -+ * The address calculation of an index operation on an array on the stack
44.12 -+ * can _under some conditions_ get messed up completely
44.13 -+ *
44.14 -+ * Testcase tweaked by dank@kegel.com
44.15 -+ * Problem only happens with -O2 -m4, so it should only happen on sh4,
44.16 -+ * but what the heck, let's test other architectures, too.
44.17 -+ * Not marked as xfail since it's a regression.
44.18 -+*/
44.19 -+/* { dg-do run } */
44.20 -+/* { dg-options "-O2" } */
44.21 -+/* { dg-options "-O2 -m4" { target sh4-*-* } } */
44.22 -+const char *dont_optimize_function_away;
44.23 -+
44.24 -+const char *use(const char *str)
44.25 -+{
44.26 -+ dont_optimize_function_away = str;
44.27 -+ if (str[0] != 'v')
44.28 -+ abort();
44.29 -+ if (str[1] < '1' || str[1] > '6')
44.30 -+ abort();
44.31 -+ if (str[2])
44.32 -+ abort();
44.33 -+ return str[2] ? "notused" : "v6";
44.34 -+}
44.35 -+
44.36 -+const char *func(char *a, char *b)
44.37 -+{
44.38 -+ char buf[128];
44.39 -+ unsigned char i;
44.40 -+ const char *result;
44.41 -+
44.42 -+ char *item[] = {
44.43 -+ "v1",
44.44 -+ "v2",
44.45 -+ };
44.46 -+
44.47 -+ buf[0] = 'v';
44.48 -+ buf[1] = '3';
44.49 -+ buf[2] = 0;
44.50 -+
44.51 -+ for (i = 0; i < 2; i++) {
44.52 -+ /* bug is: following line passes wild pointer to use() on sh4 -O2 */
44.53 -+ result = use(item[i]);
44.54 -+
44.55 -+ use(buf);
44.56 -+ use(a);
44.57 -+ use(b);
44.58 -+ result = use(result);
44.59 -+ }
44.60 -+ return result;
44.61 -+}
44.62 -+
44.63 -+int main()
44.64 -+{
44.65 -+ func("v4", "v5");
44.66 -+ return 0;
44.67 -+}
44.68 -+
45.1 --- a/patches/gcc/3.3.1/pr10412-1-test.patch Tue Aug 14 19:32:22 2007 +0000
45.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
45.3 @@ -1,46 +0,0 @@
45.4 ---- /dev/null Sat Dec 14 13:56:51 2002
45.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10412-1.c Sun Sep 14 16:15:21 2003
45.6 -@@ -0,0 +1,43 @@
45.7 -+/* PR target/10412
45.8 -+ * Reporter: shrinivasa@kpitcummins.com
45.9 -+ * Summary: Renesas SH - Incorrect code generation
45.10 -+ * Description:
45.11 -+ * When following code is compiled with
45.12 -+ * sh-elf-gcc -S -mhitachi -m2 -O2 bug1.c
45.13 -+ * generates an incorrect code.
45.14 -+ *
45.15 -+ * Testcase tweaked by dank@kegel.com
45.16 -+ * Problem only happens with -mhitachi -m2. Not sure if I can give those
45.17 -+ * options for all sh targets. They work on sh4, though.
45.18 -+ * Not marked as xfail as it's a regression relative to hardhat 2.0 gcc-2.97.
45.19 -+*/
45.20 -+/* { dg-do run } */
45.21 -+/* { dg-options "-O2" } */
45.22 -+int global_val;
45.23 -+
45.24 -+int func0(int x)
45.25 -+{
45.26 -+ global_val += x;
45.27 -+ return (x != 99);
45.28 -+}
45.29 -+
45.30 -+int func1(unsigned long addr)
45.31 -+{
45.32 -+ int err;
45.33 -+
45.34 -+ err = func0(addr);
45.35 -+ if (err)
45.36 -+ return (err);
45.37 -+
45.38 -+ err = func0(addr * 7); /* address of func0 is lost during multiplication -> probable SIGSEGV */
45.39 -+ return (err);
45.40 -+}
45.41 -+
45.42 -+int main(int argc, char **argv)
45.43 -+{
45.44 -+ global_val = 0;
45.45 -+ global_val += func1(99);
45.46 -+ if (global_val != 99 * 8 + 1)
45.47 -+ abort();
45.48 -+ return 0;
45.49 -+}
46.1 --- a/patches/gcc/3.3.1/pr10589-1-test.patch Tue Aug 14 19:32:22 2007 +0000
46.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
46.3 @@ -1,17 +0,0 @@
46.4 ---- /dev/null Sat Dec 14 13:56:51 2002
46.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10589-1.c Mon Sep 15 08:57:58 2003
46.6 -@@ -0,0 +1,14 @@
46.7 -+/* PR target/10589
46.8 -+ * Reporter: mathieu@thenesis.com
46.9 -+ * Summary: For Hitachi SH target, GCC crashes when both -fomit-frame-pointer and -mdalign options are specified
46.10 -+ * Keywords: ice-on-valid-code
46.11 -+ * Testcase by Kazu Hirata, tweaked by dank@kegel.com
46.12 -+ * 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
46.13 -+ */
46.14 -+/* { dg-do compile { target sh*-*-* } } */
46.15 -+/* { dg-options "-fomit-frame-pointer -mdalign" } */
46.16 -+
46.17 -+int foo(int a, int b)
46.18 -+{
46.19 -+ return a / b;
46.20 -+}
47.1 --- a/patches/gcc/3.3.1/pr11162-1-test.patch Tue Aug 14 19:32:22 2007 +0000
47.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
47.3 @@ -1,25 +0,0 @@
47.4 ---- /dev/null Sat Dec 14 13:56:51 2002
47.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11162-1.c Sun Sep 14 16:24:41 2003
47.6 -@@ -0,0 +1,22 @@
47.7 -+/*
47.8 -+ * PR optimization/11162
47.9 -+ * Reporter: Toshiyasu Morita <tm@kloo.net>
47.10 -+ * Summary: [3.4 Regression] [-fnew-ra] ICE compiling channel.i on sh
47.11 -+ * Keywords: ice-on-valid-code
47.12 -+ * Description:
47.13 -+ * [ICE] when channel.i from stress-1.17 is compiled with options:
47.14 -+ * -O2 -m4 -fnew-ra
47.15 -+ * ...
47.16 -+ * The CFG code gets confused by the addition of a USE insn after a sibcall.
47.17 -+ * Sibcalls are supposed to end the block (and the function!), so the fact
47.18 -+ * that we have an instruction following one (even if its fake) is confusing.
47.19 -+ *
47.20 -+ * testcase tweaked by dank@kegel.com
47.21 -+ */
47.22 -+/* { dg-do compile } */
47.23 -+/* { dg-options "-O2 -fnew-ra" } */
47.24 -+
47.25 -+int foo(char *p1)
47.26 -+{
47.27 -+ return bar(p1);
47.28 -+}
48.1 --- a/patches/gcc/3.3.1/pr11587-1-test.patch Tue Aug 14 19:32:22 2007 +0000
48.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
48.3 @@ -1,39 +0,0 @@
48.4 ---- /dev/null Sat Dec 14 13:56:51 2002
48.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11587-1.c Mon Sep 15 08:46:00 2003
48.6 -@@ -0,0 +1,36 @@
48.7 -+/* PR optimization/11587
48.8 -+ * Reporter: Michael Eager <eager@mvista.com>
48.9 -+ * Summary: [3.3/3.4 Regression] SH ICE in reload_cse_simplify_operand, postreload.c
48.10 -+ * Keywords: ice-on-valid-code
48.11 -+ *
48.12 -+ * Note: a fix exists; see bugzilla
48.13 -+ *
48.14 -+ * Testcase tweaked by dank@kegel.com
48.15 -+ * Not marked as xfail since it's a regression.
48.16 -+ */
48.17 -+
48.18 -+/* { dg-do compile } */
48.19 -+/* { dg-options "-O1" } */
48.20 -+int foo1(void);
48.21 -+int foo2();
48.22 -+int foo3();
48.23 -+
48.24 -+static int goo()
48.25 -+{
48.26 -+ int i;
48.27 -+
48.28 -+ if (i <= 0)
48.29 -+ return i;
48.30 -+
48.31 -+ if (foo1() > 1) {
48.32 -+ i = foo2();
48.33 -+ if (i < 0)
48.34 -+ return i;
48.35 -+ if (i) {
48.36 -+ if (foo3())
48.37 -+ return 1;
48.38 -+ return 0;
48.39 -+ }
48.40 -+ }
48.41 -+
48.42 -+}
49.1 --- a/patches/gcc/3.3.1/pr11736-1-test.patch Tue Aug 14 19:32:22 2007 +0000
49.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
49.3 @@ -1,48 +0,0 @@
49.4 ---- /dev/null Sat Dec 14 13:56:51 2002
49.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c Sun Sep 14 14:26:33 2003
49.6 -@@ -0,0 +1,45 @@
49.7 -+/* PR optimization/11736
49.8 -+ * Reporter: marcus@mc.pp.se
49.9 -+ * Summary: Stackpointer messed up on SuperH
49.10 -+ * Keywords: wrong-code
49.11 -+ * Description:
49.12 -+ * When a function with 5 arguments is called in both branches of a
49.13 -+ * conditional, and only the last argument differs, the code to push that
49.14 -+ * last argument on the stack gets confused.
49.15 -+ * Space for the fifth argument is reserved on the stack by the
49.16 -+ * instruction I have marked as "A". However, if the else-branch is
49.17 -+ * taken the stackpointer is decremented _again_ at "B". This
49.18 -+ * decrementation is never restored, and it is only due to the
49.19 -+ * restoration of r15 from r14 that the function works at all. With
49.20 -+ * -fomit-frame-pointer it will crash.
49.21 -+ *
49.22 -+ * Testcase tweaked by dank@kegel.com
49.23 -+ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97
49.24 -+ * and dodes gcc-3.0.2
49.25 -+ */
49.26 -+
49.27 -+/* { dg-do run } */
49.28 -+/* { dg-options "-O1 -fomit-frame-pointer" } */
49.29 -+
49.30 -+int expected_e;
49.31 -+
49.32 -+void bar(int a, int b, int c, int d, int e)
49.33 -+{
49.34 -+ if (e != expected_e)
49.35 -+ abort();
49.36 -+}
49.37 -+
49.38 -+void foo(int a)
49.39 -+{
49.40 -+ if (a)
49.41 -+ bar(0, 0, 0, 0, 1);
49.42 -+ else
49.43 -+ bar(0, 0, 0, 0, 0); /* stack pointer decremented extra time here, causing segfault */
49.44 -+}
49.45 -+
49.46 -+int main(int argc, char **argv)
49.47 -+{
49.48 -+ for (expected_e = 0; expected_e < 2; expected_e++)
49.49 -+ foo(expected_e);
49.50 -+ return 0;
49.51 -+}
50.1 --- a/patches/gcc/3.3.1/pr11864-1-test.patch Tue Aug 14 19:32:22 2007 +0000
50.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
50.3 @@ -1,45 +0,0 @@
50.4 ---- /dev/null Sat Dec 14 13:56:51 2002
50.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11864-1.c Sun Sep 14 14:32:24 2003
50.6 -@@ -0,0 +1,42 @@
50.7 -+/* PR optimization/11864
50.8 -+ * Reporter: Kazumoto Kojima <kkojima@gcc.gnu.org>
50.9 -+ * Summary: [3.3/3.4 regression] miscompiles zero extension and test
50.10 -+ * Description:
50.11 -+ * gcc-3.3/3.4 -O2 for sh target may miscompile the combination of zero extension
50.12 -+ * and test if it's zero.
50.13 -+ *
50.14 -+ * Testcase tweaked by dank@kegel.com. Not marked as xfail because it's a regression.
50.15 -+ */
50.16 -+/* { dg-do run } */
50.17 -+/* { dg-options "-O2" } */
50.18 -+
50.19 -+extern void abort(void);
50.20 -+
50.21 -+int val = 0xff00;
50.22 -+
50.23 -+int f(void)
50.24 -+{
50.25 -+ return val;
50.26 -+}
50.27 -+
50.28 -+unsigned char a[1];
50.29 -+
50.30 -+void foo(void)
50.31 -+{
50.32 -+ a[0] = f() & 255;
50.33 -+
50.34 -+ if (!a[0])
50.35 -+ a[0] = f() & 255;
50.36 -+
50.37 -+ if (!a[0])
50.38 -+ a[0] = 1 + (f() & 127);
50.39 -+}
50.40 -+
50.41 -+int main(int argc, char **argv)
50.42 -+{
50.43 -+ foo();
50.44 -+ if (!a[0])
50.45 -+ abort();
50.46 -+
50.47 -+ return 0;
50.48 -+}
51.1 --- a/patches/gcc/3.3.1/pr11949-fix.patch Tue Aug 14 19:32:22 2007 +0000
51.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
51.3 @@ -1,61 +0,0 @@
51.4 -Message-Id: 20030822160024.GA305@ftbfs.org
51.5 -From: Matt Kraai kraai at alumni dot cmu dot edu
51.6 -To: gcc-patches at gcc dot gnu dot org
51.7 -Date: Fri, 22 Aug 2003 09:00:24 -0700
51.8 -Subject: PR 11949
51.9 -
51.10 -Howdy,
51.11 -
51.12 -I've backported the following patch from the mainline to the 3.3
51.13 -branch to fix PR 11949.
51.14 -
51.15 -Bootstrapped and regression tested on powerpc-unknown-linux-gnu.
51.16 -
51.17 -OK to commit?
51.18 -
51.19 - PR c/11949
51.20 - Backport from mainline:
51.21 -
51.22 - 2003-05-05 Aldy Hernandez aldyh@redhat.com
51.23 -
51.24 - * testsuite/gcc.c-torture/compile/simd-6.c: New.
51.25 -
51.26 - * c-typeck.c (digest_init): Handle arrays of vector constants.
51.27 -
51.28 -Index: gcc/c-typeck.c
51.29 -===================================================================
51.30 -RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
51.31 -retrieving revision 1.213.2.8
51.32 -diff -3 -c -p -r1.213.2.8 c-typeck.c
51.33 -*** gcc/gcc/c-typeck.c 19 Aug 2003 01:42:35 -0000 1.213.2.8
51.34 ---- gcc/gcc/c-typeck.c 22 Aug 2003 09:24:03 -0000
51.35 -*************** digest_init (type, init, require_constan
51.36 -*** 4765,4772 ****
51.37 - if (code == VECTOR_TYPE
51.38 - && comptypes (TREE_TYPE (inside_init), type)
51.39 - && TREE_CONSTANT (inside_init))
51.40 -! return build_vector (type, TREE_OPERAND (inside_init, 1));
51.41 -!
51.42 -
51.43 - /* Any type can be initialized
51.44 - from an expression of the same type, optionally with braces. */
51.45 ---- 4765,4778 ----
51.46 - if (code == VECTOR_TYPE
51.47 - && comptypes (TREE_TYPE (inside_init), type)
51.48 - && TREE_CONSTANT (inside_init))
51.49 -! {
51.50 -! if (TREE_CODE (inside_init) == VECTOR_CST
51.51 -! && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)),
51.52 -! TYPE_MAIN_VARIANT (type)))
51.53 -! return inside_init;
51.54 -! else
51.55 -! return build_vector (type, CONSTRUCTOR_ELTS (inside_init));
51.56 -! }
51.57 -
51.58 - /* Any type can be initialized
51.59 - from an expression of the same type, optionally with braces. */
51.60 -
51.61 -typedef int __attribute__((mode(V2SI))) vec;
51.62 -
51.63 -vec a[] = {(vec) {1, 2}, {3, 4}};
51.64 -
52.1 --- a/patches/gcc/3.3.1/pr9365-1-test.patch Tue Aug 14 19:32:22 2007 +0000
52.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
52.3 @@ -1,43 +0,0 @@
52.4 ---- /dev/null Sat Dec 14 13:56:51 2002
52.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr9365-1.c Sun Sep 14 09:34:37 2003
52.6 -@@ -0,0 +1,40 @@
52.7 -+/* PR target/9365
52.8 -+ * Origin: marcus@mc.pp.se
52.9 -+ * Testcase tweaked by dank@kegel.com
52.10 -+ * [3.3 regression] [SH] segfault in gen_far_branch (config/sh/sh.c)
52.11 -+ * ice-on-valid-code
52.12 -+ * Not marked as xfail since it's a regression
52.13 -+*/
52.14 -+/* { dg-do compile } */
52.15 -+/* { dg-options "-O2 -fomit-frame-pointer" } */
52.16 -+
52.17 -+
52.18 -+void foo(int n, int *p)
52.19 -+{
52.20 -+ switch(n) {
52.21 -+ case 100: case 110: case 120: case 130: case 140:
52.22 -+ case 200: case 210: case 220: case 230: case 240:
52.23 -+ case 300: case 310: case 320: case 330: case 340:
52.24 -+ case 400: case 410: case 420: case 430: case 440:
52.25 -+ case 500: case 510: case 520: case 530: case 540:
52.26 -+ case 600: case 610: case 620: case 630: case 640:
52.27 -+ case 700: case 710: case 720: case 730: case 740:
52.28 -+ case 800: case 810: case 820: case 830: case 840:
52.29 -+ case 900: case 910: case 920: case 930: case 940:
52.30 -+ break;
52.31 -+ default:
52.32 -+ *p = n;
52.33 -+ break;
52.34 -+ }
52.35 -+}
52.36 -+
52.37 -+int main(int argc, char **argv)
52.38 -+{
52.39 -+ int p;
52.40 -+
52.41 -+ (void) argv;
52.42 -+
52.43 -+ foo(argc, &p);
52.44 -+
52.45 -+ return p;
52.46 -+}
53.1 --- a/patches/gcc/3.3.1/sh-pic-set_fpscr.patch Tue Aug 14 19:32:22 2007 +0000
53.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
53.3 @@ -1,61 +0,0 @@
53.4 -See http://gcc.gnu.org/PR11901
53.5 -Should fix
53.6 -make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
53.7 -in glibc's "make tests".
53.8 -
53.9 --------------
53.10 -
53.11 -Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
53.12 -To: dank@kegel.com
53.13 -Cc: linux-sh@m17n.org
53.14 -Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
53.15 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
53.16 -In-Reply-To: Your message of "Wed, 30 Jul 2003 11:20:49 +0900"
53.17 - <200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
53.18 -References: <200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
53.19 -Date: Wed, 30 Jul 2003 12:03:01 +0900
53.20 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
53.21 -
53.22 -> I'll try to write the PIC version of it,
53.23 -
53.24 -Dan, does the attached patch work for you?
53.25 -
53.26 -[dank: original patch deleted; here's same thing rediffed against gcc-3.3 instead of HEAD]
53.27 -
53.28 ---- gcc-3.3/gcc/config/sh/lib1funcs.asm.old Tue Jul 29 21:37:29 2003
53.29 -+++ gcc-3.3/gcc/config/sh/lib1funcs.asm Tue Jul 29 21:40:58 2003
53.30 -@@ -1792,7 +1792,17 @@
53.31 - .global GLOBAL(set_fpscr)
53.32 - GLOBAL(set_fpscr):
53.33 - lds r4,fpscr
53.34 -+#ifdef __PIC__
53.35 -+ mov.l r12,@-r15
53.36 -+ mova LOCAL(set_fpscr_L0),r0
53.37 -+ mov.l LOCAL(set_fpscr_L0),r12
53.38 -+ add r0,r12
53.39 -+ mov.l LOCAL(set_fpscr_L1),r0
53.40 -+ mov.l @(r0,r12),r1
53.41 -+ mov.l @r15+,r12
53.42 -+#else
53.43 - mov.l LOCAL(set_fpscr_L1),r1
53.44 -+#endif
53.45 - swap.w r4,r0
53.46 - or #24,r0
53.47 - #ifndef FMOVD_WORKS
53.48 -@@ -1820,8 +1830,16 @@
53.49 - mov.l r3,@(4,r1)
53.50 - #endif
53.51 - .align 2
53.52 -+#ifdef __PIC__
53.53 -+LOCAL(set_fpscr_L0):
53.54 -+ .long _GLOBAL_OFFSET_TABLE_
53.55 -+LOCAL(set_fpscr_L1):
53.56 -+ .long GLOBAL(fpscr_values@GOT)
53.57 -+#else
53.58 - LOCAL(set_fpscr_L1):
53.59 - .long GLOBAL(fpscr_values)
53.60 -+#endif
53.61 -+
53.62 - #ifdef __ELF__
53.63 - .comm GLOBAL(fpscr_values),8,4
53.64 - #else
54.1 --- a/patches/gcc/3.3.1/sh-spec.patch Tue Aug 14 19:32:22 2007 +0000
54.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
54.3 @@ -1,52 +0,0 @@
54.4 -See http://gcc.gnu.org/PR11902
54.5 -
54.6 -Part of fix for abort on line
54.7 - assert (info[DT_RPATH] == NULL);
54.8 -in glibc-2.3.2's ld.so, which makes all dynamically-linked
54.9 -programs crash.
54.10 -
54.11 -Message-Id: <200308020452.h724q0n01509@r-rr.iij4u.or.jp>
54.12 -To: dank@kegel.com
54.13 -Cc: kkojima@rr.iij4u.or.jp
54.14 -Subject: Re: Writing PIC version of __udivsi3_i4?
54.15 -In-Reply-To: Your message of "Fri, 01 Aug 2003 21:15:27 -0700"
54.16 - <3F2B3ADF.6030206@kegel.com>
54.17 -References: <3F2B3ADF.6030206@kegel.com>
54.18 -Date: Sat, 02 Aug 2003 13:58:05 +0900
54.19 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
54.20 -
54.21 -Dan Kegel <dank@kegel.com> wrote:
54.22 -> It seems it might be from gcc's spec file:
54.23 ->
54.24 -> *subtarget_link_spec:
54.25 -> %{shared:-shared} %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} %{!rpath:-rpath /lib}} %{static:-static}
54.26 ->
54.27 -> as the only place -rpath showed up was in the output of gcc -v as it
54.28 -> was linking libc.so.
54.29 ->
54.30 -> Well, that's a clue, anyway! Guess I'll dig through the spec files
54.31 -> tomorrow to see if I can figure it out some more.
54.32 -
54.33 -I've grepped gcc/config/*/*.h and found only SH and old libc1 stuffs
54.34 -of i386/alpha include %{!rpath:-rpath ... in 3.3 release and the
54.35 -current CVS. And my sh-gcc's specs doesn't have this :-(
54.36 -It would be the Right Thing to remove this stuff simply. How about
54.37 -the gcc patch below?
54.38 -
54.39 -Regards,
54.40 - kaz
54.41 ---
54.42 ---- gcc-3.3/gcc/config/sh/linux.h.orig Sat Aug 2 13:20:57 2003
54.43 -+++ gcc-3.3/gcc/config/sh/linux.h Sat Aug 2 13:22:42 2003
54.44 -@@ -48,8 +48,7 @@ do { \
54.45 - "%{shared:-shared} \
54.46 - %{!static: \
54.47 - %{rdynamic:-export-dynamic} \
54.48 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
54.49 -- %{!rpath:-rpath /lib}} \
54.50 -+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
54.51 - %{static:-static}"
54.52 -
54.53 - /* The GNU C++ standard library requires that these macros be defined. */
54.54 -
54.55 -
55.1 --- a/patches/gcc/3.3.1/sh4-pthread.patch Tue Aug 14 19:32:22 2007 +0000
55.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
55.3 @@ -1,44 +0,0 @@
55.4 -See http://gcc.gnu.org/PR11903
55.5 -
55.6 -Patch to fix following test case failure:
55.7 -
55.8 - === libstdc++-v3 tests ===
55.9 -FAIL: thread/pthread1.cc (test for excess errors)
55.10 -Excess errors:
55.11 -/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
55.12 -collect2: ld returned 1 exit status
55.13 -
55.14 -Note that *any* program compiled with -pthread fails:
55.15 -
55.16 -/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
55.17 -/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
55.18 -collect2: ld returned 1 exit status
55.19 -
55.20 -Compiling with -lpthread on the other hand works fine:
55.21 -/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
55.22 -
55.23 -So -pthread is broken in some trivial way; it should invoke -lpthread, not -lthread,
55.24 -at least when targeting Linux.
55.25 -
55.26 -http://www.sh-linux.org/rpm-2003/SRPMS/gcc-3.2.3-3.src.rpm contains a jumbo patch,
55.27 -gcc-20030210-sh-linux-1.patch, that includes a fix for this. Here's the
55.28 -appropriate hunk (brings in a fix for the documented -mieee option).
55.29 -No idea if this fix is completely right, but it works for me...
55.30 -- dank@kegel.com 20 Jul 2003
55.31 -
55.32 -Index: linux.h
55.33 -===================================================================
55.34 -RCS file: /cvsroot/gcc/gcc/gcc/config/sh/linux.h,v
55.35 -retrieving revision 1.9.20.1
55.36 -diff -u -d -u -r1.9.20.1 linux.h
55.37 ---- gcc-ss-3_3-20030714/gcc/config/sh/linux.h.old 6 Jun 2003 02:30:59 -0000 1.9.20.1
55.38 -+++ gcc-ss-3_3-20030714/gcc/config/sh/linux.h 20 Jul 2003 23:36:50 -0000
55.39 -@@ -59,7 +59,7 @@
55.40 - #undef LIB_SPEC
55.41 - #define LIB_SPEC \
55.42 - "%{shared: -lc} \
55.43 -- %{!shared: %{pthread:-lthread} \
55.44 -+ %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \
55.45 - %{profile:-lc_p} %{!profile: -lc}}"
55.46 -
55.47 - #undef STARTFILE_SPEC
56.1 --- a/patches/gcc/3.3.1/thunk3.patch Tue Aug 14 19:32:22 2007 +0000
56.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
56.3 @@ -1,23 +0,0 @@
56.4 -Fixes
56.5 -FAIL: g++.jason/thunk3.C (test for excess errors)
56.6 -on sh4-unknown-linux-gnu.
56.7 -
56.8 -Does any sh variant *not* use the generic thunk support? If so, the patch should be
56.9 -more cautious. As it is, it excludes all sh processors from this test.
56.10 -
56.11 -Index: thunk3.C
56.12 -===================================================================
56.13 -RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
56.14 -retrieving revision 1.13
56.15 -diff -u -d -u -r1.13 thunk3.C
56.16 ---- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old 25 Mar 2002 17:57:03 -0000 1.13
56.17 -+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C 20 Jul 2003 16:57:38 -0000
56.18 -@@ -2,7 +2,7 @@
56.19 - // Note that this will break on any target that uses the generic thunk
56.20 - // support, because it doesn't support variadic functions.
56.21 -
56.22 --// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
56.23 -+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
56.24 -
56.25 - #include <stdarg.h>
56.26 -
57.1 --- a/patches/gcc/3.3.2/empty6.patch Tue Aug 14 19:32:22 2007 +0000
57.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
57.3 @@ -1,21 +0,0 @@
57.4 -From 3.4 branch. Fixes test failure
57.5 -FAIL: g++.dg/abi/empty6.C (test for warnings, line 6)
57.6 -
57.7 -===================================================================
57.8 -RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
57.9 -retrieving revision 1.1
57.10 -retrieving revision 1.2
57.11 -diff -u -r1.1 -r1.2
57.12 ---- gcc/gcc/testsuite/g++.dg/abi/empty6.C 2002/09/25 19:07:35 1.1
57.13 -+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C 2003/06/03 19:10:09 1.2
57.14 -@@ -5,4 +5,9 @@
57.15 - struct B {
57.16 - A a; // { dg-warning "empty" }
57.17 - virtual void f () {}
57.18 --};
57.19 -+} __attribute__((aligned(8)));
57.20 -+/* The preceding attribute is necessary on targets with
57.21 -+ BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
57.22 -+ offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
57.23 -+ and then there is no discrepancy between DECL_FIELD_OFFSET and
57.24 -+ byte_position to warn about. */
58.1 --- a/patches/gcc/3.3.2/gcc-3.2.3-g++.exp.patch Tue Aug 14 19:32:22 2007 +0000
58.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
58.3 @@ -1,100 +0,0 @@
58.4 -See http://gcc.gnu.org/PR12010
58.5 -
58.6 -g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
58.7 -
58.8 -The first hunk fixes the error
58.9 -
58.10 -/testsuite_flags: /testsuite_flags: No such file or directory
58.11 - while executing
58.12 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
58.13 - (procedure "g++_include_flags" line 21)
58.14 - invoked from within
58.15 -"g++_include_flags [get_multilibs] "
58.16 - (procedure "g++_init" line 63)
58.17 - invoked from within
58.18 -"${tool}_init $test_file_name"
58.19 - (procedure "runtest" line 19)
58.20 - invoked from within
58.21 -"runtest $test_name"
58.22 - ("foreach" body line 42)
58.23 - invoked from within
58.24 -...
58.25 -make[1]: [check-g++] Error 1 (ignored)
58.26 -
58.27 -The fix isn't especially pretty, but it worked for me, and can't hurt the
58.28 -more common native compiler case. Maybe someone who knows the code better
58.29 -can come up with a better fix.
58.30 -
58.31 -The second hunk fixes the error
58.32 -
58.33 -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
58.34 -
58.35 -when trying to compile g++ testcases (!); setting up
58.36 -the shared library environment when running crosstests of g++
58.37 -should either be done by a special board file, or by
58.38 -setting up a remote chroot environment (see http://kegel.com/crosstool),
58.39 -not by blithely setting LD_LIBRARY_PATH on the local system.
58.40 -
58.41 ---- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old Fri Jul 11 15:42:47 2003
58.42 -+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp Sat Jul 12 12:57:07 2003
58.43 -@@ -72,6 +72,8 @@
58.44 - #
58.45 - proc g++_include_flags { paths } {
58.46 - global srcdir
58.47 -+ global objdir
58.48 -+ global target_triplet
58.49 - global HAVE_LIBSTDCXX_V3
58.50 - global TESTING_IN_BUILD_TREE
58.51 -
58.52 -@@ -90,6 +92,20 @@
58.53 -
58.54 - if { ${HAVE_LIBSTDCXX_V3} } {
58.55 - set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
58.56 -+ if { $odir_v3 == "" } {
58.57 -+ verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
58.58 -+ # first assume no multilibs
58.59 -+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
58.60 -+ }
58.61 -+ if { $odir_v3 == "" } {
58.62 -+ verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
58.63 -+ # assume multilib only one level deep
58.64 -+ set multisub [file tail $gccpath]
58.65 -+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
58.66 -+ }
58.67 -+ if { $odir_v3 == "" } {
58.68 -+ error "Can't find libstdc++-v3"
58.69 -+ }
58.70 - append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
58.71 - } else {
58.72 - set odir_v2 [lookfor_file ${gccpath} libstdc++]
58.73 -@@ -192,16 +192,20 @@
58.74 - }
58.75 - }
58.76 -
58.77 -- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
58.78 -- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
58.79 -- # (for the 64-bit ABI). The right way to do this would be to modify
58.80 -- # unix.exp -- but that's not an option since it's part of DejaGNU
58.81 -- # proper, so we do it here. We really only need to do
58.82 -- # this on IRIX, but it shouldn't hurt to do it anywhere else.
58.83 -- setenv LD_LIBRARY_PATH $ld_library_path
58.84 -- setenv SHLIB_PATH $ld_library_path
58.85 -- setenv LD_LIBRARYN32_PATH $ld_library_path
58.86 -- setenv LD_LIBRARY64_PATH $ld_library_path
58.87 -+ if {![is_remote target]} {
58.88 -+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
58.89 -+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
58.90 -+ # (for the 64-bit ABI). The right way to do this would be to modify
58.91 -+ # unix.exp -- but that's not an option since it's part of DejaGNU
58.92 -+ # proper, so we do it here. We really only need to do
58.93 -+ # this on IRIX, but it shouldn't hurt to do it anywhere else.
58.94 -+
58.95 -+ # Doing this causes us to be unable to run cross-compilers.
58.96 -+ setenv LD_LIBRARY_PATH $ld_library_path
58.97 -+ setenv SHLIB_PATH $ld_library_path
58.98 -+ setenv LD_LIBRARYN32_PATH $ld_library_path
58.99 -+ setenv LD_LIBRARY64_PATH $ld_library_path
58.100 -+ }
58.101 -
58.102 - return "$flags"
58.103 - }
59.1 --- a/patches/gcc/3.3.2/gcc-3.3-libstdc++-v3-dg.exp.patch Tue Aug 14 19:32:22 2007 +0000
59.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
59.3 @@ -1,54 +0,0 @@
59.4 -Without this patch, the command
59.5 -
59.6 -RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
59.7 -
59.8 -fails in two ways:
59.9 -1. the -L option meant to locate the testsuite directory is incorrect, and
59.10 -2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
59.11 -is the native compiler is invoked when we really wanted to invoke the cross-compiler
59.12 -we just built.
59.13 -
59.14 -Here's an example log of the problem in action. Every testcase fails, this shows just one:
59.15 --------------
59.16 -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
59.17 -compiler exited with status 1
59.18 -output is:
59.19 -/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
59.20 -/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
59.21 -/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
59.22 -/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
59.23 -/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
59.24 -...
59.25 -FAIL: 20_util/binders.cc (test for excess errors)
59.26 -WARNING: 20_util/binders.cc compilation failed to produce executable
59.27 --------------
59.28 -
59.29 -And here's the patch. I'm not happy with it, and it probably gets some cases wrong,
59.30 -but it seems to work for the common native case and for my cross-compiler case.
59.31 -
59.32 ---- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old Sun Jul 13 10:42:01 2003
59.33 -+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Sun Jul 13 11:39:54 2003
59.34 -@@ -46,8 +46,23 @@
59.35 - global gluefile wrap_flags
59.36 - global ld_library_path
59.37 - global tool_root_dir
59.38 -+ global target_triplet
59.39 -
59.40 - set blddir [lookfor_file [get_multilibs] libstdc++-v3]
59.41 -+ if { $blddir == "" } {
59.42 -+ set multilibs [get_multilibs]
59.43 -+ # FIXME: assume multilib only one level deep
59.44 -+ set multisub [file tail $multilibs]
59.45 -+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
59.46 -+ set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
59.47 -+ }
59.48 -+ if { $blddir == "" } {
59.49 -+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
59.50 -+ set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
59.51 -+ }
59.52 -+ if { $blddir == "" } {
59.53 -+ error "Can't find libstdc++-v3"
59.54 -+ }
59.55 -
59.56 - # By default, we assume we want to run program images.
59.57 - global dg-do-what-default
60.1 --- a/patches/gcc/3.3.2/gcc-3.3.2-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
60.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
60.3 @@ -1,65 +0,0 @@
60.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
60.5 -Adds support for arm*b-linux* big-endian ARM targets
60.6 -
60.7 -See http://gcc.gnu.org/PR16350
60.8 -
60.9 -diff -urN gcc-3.3.2.orig/gcc/config/arm/linux-elf.h gcc-3.3.2/gcc/config/arm/linux-elf.h
60.10 ---- gcc-3.3.2.orig/gcc/config/arm/linux-elf.h 2003-09-16 17:39:23.000000000 +0200
60.11 -+++ gcc-3.3.2/gcc/config/arm/linux-elf.h 2004-07-07 14:03:54.329839922 +0200
60.12 -@@ -30,15 +30,29 @@
60.13 - /* Do not assume anything about header files. */
60.14 - #define NO_IMPLICIT_EXTERN_C
60.15 -
60.16 -+/*
60.17 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
60.18 -+ * (big endian) configurations.
60.19 -+ */
60.20 -+#if TARGET_BIG_ENDIAN_DEFAULT
60.21 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
60.22 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
60.23 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
60.24 -+#else
60.25 -+#define TARGET_ENDIAN_DEFAULT 0
60.26 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
60.27 -+#define TARGET_LINKER_EMULATION "armelf_linux"
60.28 -+#endif
60.29 -+
60.30 - /* Default is to use APCS-32 mode. */
60.31 - #undef TARGET_DEFAULT
60.32 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
60.33 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
60.34 -
60.35 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
60.36 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
60.37 -
60.38 - #undef MULTILIB_DEFAULTS
60.39 - #define MULTILIB_DEFAULTS \
60.40 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
60.41 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
60.42 -
60.43 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
60.44 -
60.45 -@@ -86,7 +100,7 @@
60.46 - %{rdynamic:-export-dynamic} \
60.47 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
60.48 - -X \
60.49 -- %{mbig-endian:-EB}" \
60.50 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
60.51 - SUBTARGET_EXTRA_LINK_SPEC
60.52 -
60.53 - #define TARGET_OS_CPP_BUILTINS() \
60.54 -diff -urN gcc-3.3.2.orig/gcc/config.gcc gcc-3.3.2/gcc/config.gcc
60.55 ---- gcc-3.3.2.orig/gcc/config.gcc 2003-10-01 21:07:01.000000000 +0200
60.56 -+++ gcc-3.3.2/gcc/config.gcc 2004-07-07 14:04:59.046716638 +0200
60.57 -@@ -699,6 +699,11 @@
60.58 - ;;
60.59 - arm*-*-linux*) # ARM GNU/Linux with ELF
60.60 - 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"
60.61 -+ case $machine in
60.62 -+ arm*b-*)
60.63 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
60.64 -+ ;;
60.65 -+ esac
60.66 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
60.67 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
60.68 - gnu_ld=yes
61.1 --- a/patches/gcc/3.3.2/gcc-3.3.2-trap-posix.patch Tue Aug 14 19:32:22 2007 +0000
61.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
61.3 @@ -1,44 +0,0 @@
61.4 -#
61.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
61.6 -#
61.7 -# Error:
61.8 -#
61.9 -# creating libintl.h
61.10 -# Configuring etc...
61.11 -# loading cache ../config.cache
61.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
61.13 -# creating ./config.status
61.14 -# creating Makefile
61.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
61.16 -#
61.17 -# Description:
61.18 -#
61.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
61.20 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
61.21 -#
61.22 -# Status:
61.23 -#
61.24 -# fixed in gcc >= 3.3.5
61.25 -# backport of gcc-3.3.5 fix
61.26 -#
61.27 -diff -ruN gcc-3.3.2-orig/configure gcc-3.3.2/configure
61.28 ---- gcc-3.3.2-orig/configure 2002-09-29 18:11:24.000000000 +0200
61.29 -+++ gcc-3.3.2/configure 2005-04-20 20:55:51.000000000 +0200
61.30 -@@ -697,7 +697,7 @@
61.31 - if test -f skip-this-dir; then
61.32 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
61.33 - # and reset the trap handler.
61.34 -- trap 0
61.35 -+ trap '' 0
61.36 - rm -rf Makefile* ${tmpdir}
61.37 - # Execute the final clean-up actions
61.38 - ${config_shell} skip-this-dir
61.39 -@@ -1596,7 +1596,7 @@
61.40 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
61.41 - # and reset the trap handler.
61.42 - rm -rf ${tmpdir}
61.43 --trap 0
61.44 -+trap '' 0
61.45 -
61.46 - exit 0
61.47 -
62.1 --- a/patches/gcc/3.3.2/pr10392-1-test.patch Tue Aug 14 19:32:22 2007 +0000
62.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
62.3 @@ -1,1 +0,0 @@
62.4 -../3.3.1/pr10392-1-test.patch
62.5 \ No newline at end of file
63.1 --- a/patches/gcc/3.3.2/pr10412-1-test.patch Tue Aug 14 19:32:22 2007 +0000
63.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
63.3 @@ -1,1 +0,0 @@
63.4 -../3.3.1/pr10412-1-test.patch
63.5 \ No newline at end of file
64.1 --- a/patches/gcc/3.3.2/pr10589-1-test.patch Tue Aug 14 19:32:22 2007 +0000
64.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
64.3 @@ -1,1 +0,0 @@
64.4 -../3.3.1/pr10589-1-test.patch
64.5 \ No newline at end of file
65.1 --- a/patches/gcc/3.3.2/pr11162-1-test.patch Tue Aug 14 19:32:22 2007 +0000
65.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
65.3 @@ -1,1 +0,0 @@
65.4 -../3.3.1/pr11162-1-test.patch
65.5 \ No newline at end of file
66.1 --- a/patches/gcc/3.3.2/pr11587-1-test.patch Tue Aug 14 19:32:22 2007 +0000
66.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
66.3 @@ -1,1 +0,0 @@
66.4 -../3.3.1/pr11587-1-test.patch
66.5 \ No newline at end of file
67.1 --- a/patches/gcc/3.3.2/pr11608-fix.patch Tue Aug 14 19:32:22 2007 +0000
67.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
67.3 @@ -1,31 +0,0 @@
67.4 -pr11608
67.5 -
67.6 -------------
67.7 -I'm building and testing an x86->sh4 crosscompiler with http://kegel.com/crosstool
67.8 -With either gcc-3.3 or gcc-ss-3_3-20030714 I get:
67.9 -
67.10 -Testing debug/20020327-1.c, -gstabs1
67.11 -...
67.12 -FAIL: gcc.dg/debug/20020327-1.c (test for excess errors)
67.13 -Excess errors:
67.14 -/tmp/cc8dFF7Y.s: Assembler messages:
67.15 -/tmp/cc8dFF7Y.s:66: Error: symbol `Letext' is already defined
67.16 -
67.17 -------------
67.18 -
67.19 -Index: elf.h
67.20 -===================================================================
67.21 -RCS file: /cvs/gcc/gcc/gcc/config/sh/elf.h,v
67.22 -retrieving revision 1.32
67.23 -diff -u -p -r1.32 elf.h
67.24 ---- gcc-orig/gcc/config/sh/elf.h 27 Sep 2003 04:48:28 -0000 1.32
67.25 -+++ gcc-new/gcc/config/sh/elf.h 2 Jan 2004 07:23:23 -0000
67.26 -@@ -95,7 +95,7 @@ while (0)
67.27 - #define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
67.28 - do { \
67.29 - text_section (); \
67.30 -- fprintf ((FILE), "\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO); \
67.31 -+ asm_fprintf ((FILE), "\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO); \
67.32 - } while (0)
67.33 -
67.34 - #undef STARTFILE_SPEC
68.1 --- a/patches/gcc/3.3.2/pr11736-1-test.patch Tue Aug 14 19:32:22 2007 +0000
68.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
68.3 @@ -1,1 +0,0 @@
68.4 -../3.3.1/pr11736-1-test.patch
68.5 \ No newline at end of file
69.1 --- a/patches/gcc/3.3.2/pr11864-1-test.patch Tue Aug 14 19:32:22 2007 +0000
69.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
69.3 @@ -1,1 +0,0 @@
69.4 -../3.3.1/pr11864-1-test.patch
69.5 \ No newline at end of file
70.1 --- a/patches/gcc/3.3.2/pr13260-test.patch Tue Aug 14 19:32:22 2007 +0000
70.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
70.3 @@ -1,56 +0,0 @@
70.4 -See http://gcc.gnu.org/PR13260
70.5 -
70.6 -/cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c,v --> standard output
70.7 -revision 1.1
70.8 ---- - 1970-01-01 00:00:00.000000000 +0000
70.9 -+++ gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
70.10 -@@ -0,0 +1,49 @@
70.11 -+/* PR optimization/13260 */
70.12 -+
70.13 -+#include <string.h>
70.14 -+
70.15 -+typedef unsigned long u32;
70.16 -+
70.17 -+u32 in_aton(const char* x)
70.18 -+{
70.19 -+ return 0x0a0b0c0d;
70.20 -+}
70.21 -+
70.22 -+u32 root_nfs_parse_addr(char *name)
70.23 -+{
70.24 -+ u32 addr;
70.25 -+ int octets = 0;
70.26 -+ char *cp, *cq;
70.27 -+
70.28 -+ cp = cq = name;
70.29 -+ while (octets < 4) {
70.30 -+ while (*cp >= '0' && *cp <= '9')
70.31 -+ cp++;
70.32 -+ if (cp == cq || cp - cq > 3)
70.33 -+ break;
70.34 -+ if (*cp == '.' || octets == 3)
70.35 -+ octets++;
70.36 -+ if (octets < 4)
70.37 -+ cp++;
70.38 -+ cq = cp;
70.39 -+ }
70.40 -+
70.41 -+ if (octets == 4 && (*cp == ':' || *cp == '\0')) {
70.42 -+ if (*cp == ':')
70.43 -+ *cp++ = '\0';
70.44 -+ addr = in_aton(name);
70.45 -+ strcpy(name, cp);
70.46 -+ } else
70.47 -+ addr = (-1);
70.48 -+
70.49 -+ return addr;
70.50 -+}
70.51 -+
70.52 -+int
70.53 -+main()
70.54 -+{
70.55 -+ static char addr[] = "10.11.12.13:/hello";
70.56 -+ u32 result = root_nfs_parse_addr(addr);
70.57 -+ if (result != 0x0a0b0c0d) { abort(); }
70.58 -+ return 0;
70.59 -+}
71.1 --- a/patches/gcc/3.3.2/pr9365-1-test.patch Tue Aug 14 19:32:22 2007 +0000
71.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
71.3 @@ -1,1 +0,0 @@
71.4 -../3.3.1/pr9365-1-test.patch
71.5 \ No newline at end of file
72.1 --- a/patches/gcc/3.3.2/sh-lib1funcs_sizeAndType.patch Tue Aug 14 19:32:22 2007 +0000
72.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
72.3 @@ -1,610 +0,0 @@
72.4 -Fixes the problem
72.5 - [ libdemo.so and main.o both use assignment on structures ]
72.6 - $ sh4-unknown-linux-gnu-gcc libdemo.so main.o
72.7 - sh4-unknown-linux-gnu/bin/ld: warning: type and size of dynamic symbol `__movstr_i4_even' are not defined
72.8 - [ resulting app links, but crashes at runtime ]
72.9 -See testcase at http://tsukuba.m17n.org/linux-sh/ml/linux-sh/2003-11/msg00016.html
72.10 -
72.11 -Patch was posted as http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01641.html
72.12 -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
72.13 -
72.14 -but see also sh-libgcc-hidden.patch
72.15 -
72.16 -===================================================================
72.17 -
72.18 ---- gcc/gcc/config/sh/lib1funcs.asm 2002/09/20 01:29:21 1.29.4.1
72.19 -+++ gcc/gcc/config/sh/lib1funcs.asm 2003/11/18 12:27:31
72.20 -@@ -38,9 +38,14 @@
72.21 - amylaar@cygnus.com */
72.22 -
72.23 - #ifdef __ELF__
72.24 --#define LOCAL(X) .L_##X
72.25 --#else
72.26 --#define LOCAL(X) L_##X
72.27 -+#define LOCAL(X) .L_##X
72.28 -+#define FUNC(X) .type X,@function
72.29 -+#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
72.30 -+#define ENDFUNC(X) ENDFUNC0(X)
72.31 -+#else
72.32 -+#define LOCAL(X) L_##X
72.33 -+#define FUNC(X)
72.34 -+#define ENDFUNC(X)
72.35 - #endif
72.36 -
72.37 - #define CONCAT(A,B) A##B
72.38 -@@ -87,6 +92,40 @@
72.39 - .global GLOBAL(ashiftrt_r4_31)
72.40 - .global GLOBAL(ashiftrt_r4_32)
72.41 -
72.42 -+ FUNC(GLOBAL(ashiftrt_r4_0))
72.43 -+ FUNC(GLOBAL(ashiftrt_r4_1))
72.44 -+ FUNC(GLOBAL(ashiftrt_r4_2))
72.45 -+ FUNC(GLOBAL(ashiftrt_r4_3))
72.46 -+ FUNC(GLOBAL(ashiftrt_r4_4))
72.47 -+ FUNC(GLOBAL(ashiftrt_r4_5))
72.48 -+ FUNC(GLOBAL(ashiftrt_r4_6))
72.49 -+ FUNC(GLOBAL(ashiftrt_r4_7))
72.50 -+ FUNC(GLOBAL(ashiftrt_r4_8))
72.51 -+ FUNC(GLOBAL(ashiftrt_r4_9))
72.52 -+ FUNC(GLOBAL(ashiftrt_r4_10))
72.53 -+ FUNC(GLOBAL(ashiftrt_r4_11))
72.54 -+ FUNC(GLOBAL(ashiftrt_r4_12))
72.55 -+ FUNC(GLOBAL(ashiftrt_r4_13))
72.56 -+ FUNC(GLOBAL(ashiftrt_r4_14))
72.57 -+ FUNC(GLOBAL(ashiftrt_r4_15))
72.58 -+ FUNC(GLOBAL(ashiftrt_r4_16))
72.59 -+ FUNC(GLOBAL(ashiftrt_r4_17))
72.60 -+ FUNC(GLOBAL(ashiftrt_r4_18))
72.61 -+ FUNC(GLOBAL(ashiftrt_r4_19))
72.62 -+ FUNC(GLOBAL(ashiftrt_r4_20))
72.63 -+ FUNC(GLOBAL(ashiftrt_r4_21))
72.64 -+ FUNC(GLOBAL(ashiftrt_r4_22))
72.65 -+ FUNC(GLOBAL(ashiftrt_r4_23))
72.66 -+ FUNC(GLOBAL(ashiftrt_r4_24))
72.67 -+ FUNC(GLOBAL(ashiftrt_r4_25))
72.68 -+ FUNC(GLOBAL(ashiftrt_r4_26))
72.69 -+ FUNC(GLOBAL(ashiftrt_r4_27))
72.70 -+ FUNC(GLOBAL(ashiftrt_r4_28))
72.71 -+ FUNC(GLOBAL(ashiftrt_r4_29))
72.72 -+ FUNC(GLOBAL(ashiftrt_r4_30))
72.73 -+ FUNC(GLOBAL(ashiftrt_r4_31))
72.74 -+ FUNC(GLOBAL(ashiftrt_r4_32))
72.75 -+
72.76 - .align 1
72.77 - GLOBAL(ashiftrt_r4_32):
72.78 - GLOBAL(ashiftrt_r4_31):
72.79 -@@ -166,6 +205,40 @@
72.80 - GLOBAL(ashiftrt_r4_0):
72.81 - rts
72.82 - nop
72.83 -+
72.84 -+ ENDFUNC(GLOBAL(ashiftrt_r4_0))
72.85 -+ ENDFUNC(GLOBAL(ashiftrt_r4_1))
72.86 -+ ENDFUNC(GLOBAL(ashiftrt_r4_2))
72.87 -+ ENDFUNC(GLOBAL(ashiftrt_r4_3))
72.88 -+ ENDFUNC(GLOBAL(ashiftrt_r4_4))
72.89 -+ ENDFUNC(GLOBAL(ashiftrt_r4_5))
72.90 -+ ENDFUNC(GLOBAL(ashiftrt_r4_6))
72.91 -+ ENDFUNC(GLOBAL(ashiftrt_r4_7))
72.92 -+ ENDFUNC(GLOBAL(ashiftrt_r4_8))
72.93 -+ ENDFUNC(GLOBAL(ashiftrt_r4_9))
72.94 -+ ENDFUNC(GLOBAL(ashiftrt_r4_10))
72.95 -+ ENDFUNC(GLOBAL(ashiftrt_r4_11))
72.96 -+ ENDFUNC(GLOBAL(ashiftrt_r4_12))
72.97 -+ ENDFUNC(GLOBAL(ashiftrt_r4_13))
72.98 -+ ENDFUNC(GLOBAL(ashiftrt_r4_14))
72.99 -+ ENDFUNC(GLOBAL(ashiftrt_r4_15))
72.100 -+ ENDFUNC(GLOBAL(ashiftrt_r4_16))
72.101 -+ ENDFUNC(GLOBAL(ashiftrt_r4_17))
72.102 -+ ENDFUNC(GLOBAL(ashiftrt_r4_18))
72.103 -+ ENDFUNC(GLOBAL(ashiftrt_r4_19))
72.104 -+ ENDFUNC(GLOBAL(ashiftrt_r4_20))
72.105 -+ ENDFUNC(GLOBAL(ashiftrt_r4_21))
72.106 -+ ENDFUNC(GLOBAL(ashiftrt_r4_22))
72.107 -+ ENDFUNC(GLOBAL(ashiftrt_r4_23))
72.108 -+ ENDFUNC(GLOBAL(ashiftrt_r4_24))
72.109 -+ ENDFUNC(GLOBAL(ashiftrt_r4_25))
72.110 -+ ENDFUNC(GLOBAL(ashiftrt_r4_26))
72.111 -+ ENDFUNC(GLOBAL(ashiftrt_r4_27))
72.112 -+ ENDFUNC(GLOBAL(ashiftrt_r4_28))
72.113 -+ ENDFUNC(GLOBAL(ashiftrt_r4_29))
72.114 -+ ENDFUNC(GLOBAL(ashiftrt_r4_30))
72.115 -+ ENDFUNC(GLOBAL(ashiftrt_r4_31))
72.116 -+ ENDFUNC(GLOBAL(ashiftrt_r4_32))
72.117 - #endif
72.118 -
72.119 - #ifdef L_ashiftrt_n
72.120 -@@ -188,6 +261,7 @@
72.121 - !
72.122 -
72.123 - .global GLOBAL(ashrsi3)
72.124 -+ FUNC(GLOBAL(ashrsi3))
72.125 - .align 2
72.126 - GLOBAL(ashrsi3):
72.127 - mov #31,r0
72.128 -@@ -315,6 +389,7 @@
72.129 - rts
72.130 - nop
72.131 -
72.132 -+ ENDFUNC(GLOBAL(ashrsi3))
72.133 - #endif
72.134 -
72.135 - #ifdef L_ashiftlt
72.136 -@@ -336,6 +411,7 @@
72.137 - ! (none)
72.138 - !
72.139 - .global GLOBAL(ashlsi3)
72.140 -+ FUNC(GLOBAL(ashlsi3))
72.141 - .align 2
72.142 - GLOBAL(ashlsi3):
72.143 - mov #31,r0
72.144 -@@ -472,6 +548,7 @@
72.145 - rts
72.146 - nop
72.147 -
72.148 -+ ENDFUNC(GLOBAL(ashlsi3))
72.149 - #endif
72.150 -
72.151 - #ifdef L_lshiftrt
72.152 -@@ -493,6 +570,7 @@
72.153 - ! (none)
72.154 - !
72.155 - .global GLOBAL(lshrsi3)
72.156 -+ FUNC(GLOBAL(lshrsi3))
72.157 - .align 2
72.158 - GLOBAL(lshrsi3):
72.159 - mov #31,r0
72.160 -@@ -629,6 +707,7 @@
72.161 - rts
72.162 - nop
72.163 -
72.164 -+ ENDFUNC(GLOBAL(lshrsi3))
72.165 - #endif
72.166 -
72.167 - #ifdef L_movstr
72.168 -@@ -645,76 +724,113 @@
72.169 - add #64,r4
72.170 - .align 4
72.171 - .global GLOBAL(movstrSI64)
72.172 -+ FUNC(GLOBAL(movstrSI64))
72.173 - GLOBAL(movstrSI64):
72.174 - mov.l @(60,r5),r0
72.175 - mov.l r0,@(60,r4)
72.176 - .global GLOBAL(movstrSI60)
72.177 -+ FUNC(GLOBAL(movstrSI60))
72.178 - GLOBAL(movstrSI60):
72.179 - mov.l @(56,r5),r0
72.180 - mov.l r0,@(56,r4)
72.181 - .global GLOBAL(movstrSI56)
72.182 -+ FUNC(GLOBAL(movstrSI56))
72.183 - GLOBAL(movstrSI56):
72.184 - mov.l @(52,r5),r0
72.185 - mov.l r0,@(52,r4)
72.186 - .global GLOBAL(movstrSI52)
72.187 -+ FUNC(GLOBAL(movstrSI52))
72.188 - GLOBAL(movstrSI52):
72.189 - mov.l @(48,r5),r0
72.190 - mov.l r0,@(48,r4)
72.191 - .global GLOBAL(movstrSI48)
72.192 -+ FUNC(GLOBAL(movstrSI48))
72.193 - GLOBAL(movstrSI48):
72.194 - mov.l @(44,r5),r0
72.195 - mov.l r0,@(44,r4)
72.196 - .global GLOBAL(movstrSI44)
72.197 -+ FUNC(GLOBAL(movstrSI44))
72.198 - GLOBAL(movstrSI44):
72.199 - mov.l @(40,r5),r0
72.200 - mov.l r0,@(40,r4)
72.201 - .global GLOBAL(movstrSI40)
72.202 -+ FUNC(GLOBAL(movstrSI40))
72.203 - GLOBAL(movstrSI40):
72.204 - mov.l @(36,r5),r0
72.205 - mov.l r0,@(36,r4)
72.206 - .global GLOBAL(movstrSI36)
72.207 -+ FUNC(GLOBAL(movstrSI36))
72.208 - GLOBAL(movstrSI36):
72.209 - mov.l @(32,r5),r0
72.210 - mov.l r0,@(32,r4)
72.211 - .global GLOBAL(movstrSI32)
72.212 -+ FUNC(GLOBAL(movstrSI32))
72.213 - GLOBAL(movstrSI32):
72.214 - mov.l @(28,r5),r0
72.215 - mov.l r0,@(28,r4)
72.216 - .global GLOBAL(movstrSI28)
72.217 -+ FUNC(GLOBAL(movstrSI28))
72.218 - GLOBAL(movstrSI28):
72.219 - mov.l @(24,r5),r0
72.220 - mov.l r0,@(24,r4)
72.221 - .global GLOBAL(movstrSI24)
72.222 -+ FUNC(GLOBAL(movstrSI24))
72.223 - GLOBAL(movstrSI24):
72.224 - mov.l @(20,r5),r0
72.225 - mov.l r0,@(20,r4)
72.226 - .global GLOBAL(movstrSI20)
72.227 -+ FUNC(GLOBAL(movstrSI20))
72.228 - GLOBAL(movstrSI20):
72.229 - mov.l @(16,r5),r0
72.230 - mov.l r0,@(16,r4)
72.231 - .global GLOBAL(movstrSI16)
72.232 -+ FUNC(GLOBAL(movstrSI16))
72.233 - GLOBAL(movstrSI16):
72.234 - mov.l @(12,r5),r0
72.235 - mov.l r0,@(12,r4)
72.236 - .global GLOBAL(movstrSI12)
72.237 -+ FUNC(GLOBAL(movstrSI12))
72.238 - GLOBAL(movstrSI12):
72.239 - mov.l @(8,r5),r0
72.240 - mov.l r0,@(8,r4)
72.241 - .global GLOBAL(movstrSI8)
72.242 -+ FUNC(GLOBAL(movstrSI8))
72.243 - GLOBAL(movstrSI8):
72.244 - mov.l @(4,r5),r0
72.245 - mov.l r0,@(4,r4)
72.246 - .global GLOBAL(movstrSI4)
72.247 -+ FUNC(GLOBAL(movstrSI4))
72.248 - GLOBAL(movstrSI4):
72.249 - mov.l @(0,r5),r0
72.250 - mov.l r0,@(0,r4)
72.251 -+ .global GLOBAL(movstrSI0)
72.252 -+ FUNC(GLOBAL(movstrSI0))
72.253 - GLOBAL(movstrSI0):
72.254 - rts
72.255 - nop
72.256 -
72.257 -+ ENDFUNC(GLOBAL(movstrSI64))
72.258 -+ ENDFUNC(GLOBAL(movstrSI60))
72.259 -+ ENDFUNC(GLOBAL(movstrSI56))
72.260 -+ ENDFUNC(GLOBAL(movstrSI52))
72.261 -+ ENDFUNC(GLOBAL(movstrSI48))
72.262 -+ ENDFUNC(GLOBAL(movstrSI44))
72.263 -+ ENDFUNC(GLOBAL(movstrSI40))
72.264 -+ ENDFUNC(GLOBAL(movstrSI36))
72.265 -+ ENDFUNC(GLOBAL(movstrSI32))
72.266 -+ ENDFUNC(GLOBAL(movstrSI28))
72.267 -+ ENDFUNC(GLOBAL(movstrSI24))
72.268 -+ ENDFUNC(GLOBAL(movstrSI20))
72.269 -+ ENDFUNC(GLOBAL(movstrSI16))
72.270 -+ ENDFUNC(GLOBAL(movstrSI12))
72.271 -+ ENDFUNC(GLOBAL(movstrSI8))
72.272 -+ ENDFUNC(GLOBAL(movstrSI4))
72.273 -+ ENDFUNC(GLOBAL(movstrSI0))
72.274 -+
72.275 - .align 4
72.276 -
72.277 - .global GLOBAL(movstr)
72.278 -+ FUNC(GLOBAL(movstr))
72.279 - GLOBAL(movstr):
72.280 - mov.l @(60,r5),r0
72.281 - mov.l r0,@(60,r4)
72.282 -@@ -771,6 +887,8 @@
72.283 - add #64,r5
72.284 - bra GLOBAL(movstr)
72.285 - add #64,r4
72.286 -+
72.287 -+ FUNC(GLOBAL(movstr))
72.288 - #endif
72.289 -
72.290 - #ifdef L_movstr_i4
72.291 -@@ -779,6 +897,10 @@
72.292 - .global GLOBAL(movstr_i4_odd)
72.293 - .global GLOBAL(movstrSI12_i4)
72.294 -
72.295 -+ FUNC(GLOBAL(movstr_i4_even))
72.296 -+ FUNC(GLOBAL(movstr_i4_odd))
72.297 -+ FUNC(GLOBAL(movstrSI12_i4))
72.298 -+
72.299 - .p2align 5
72.300 - L_movstr_2mod4_end:
72.301 - mov.l r0,@(16,r4)
72.302 -@@ -787,6 +909,11 @@
72.303 -
72.304 - .p2align 2
72.305 -
72.306 -+GLOBAL(movstr_i4_even):
72.307 -+ mov.l @r5+,r0
72.308 -+ bra L_movstr_start_even
72.309 -+ mov.l @r5+,r1
72.310 -+
72.311 - GLOBAL(movstr_i4_odd):
72.312 - mov.l @r5+,r1
72.313 - add #-4,r4
72.314 -@@ -813,10 +940,8 @@
72.315 - rts
72.316 - mov.l r3,@(12,r4)
72.317 -
72.318 --GLOBAL(movstr_i4_even):
72.319 -- mov.l @r5+,r0
72.320 -- bra L_movstr_start_even
72.321 -- mov.l @r5+,r1
72.322 -+ ENDFUNC(GLOBAL(movstr_i4_even))
72.323 -+ ENDFUNC(GLOBAL(movstr_i4_odd))
72.324 -
72.325 - .p2align 4
72.326 - GLOBAL(movstrSI12_i4):
72.327 -@@ -827,12 +952,15 @@
72.328 - mov.l r1,@(4,r4)
72.329 - rts
72.330 - mov.l r2,@(8,r4)
72.331 -+
72.332 -+ ENDFUNC(GLOBAL(movstrSI12_i4))
72.333 - #endif
72.334 -
72.335 - #ifdef L_mulsi3
72.336 -
72.337 -
72.338 - .global GLOBAL(mulsi3)
72.339 -+ FUNC(GLOBAL(mulsi3))
72.340 -
72.341 - ! r4 = aabb
72.342 - ! r5 = ccdd
72.343 -@@ -865,7 +993,7 @@
72.344 - rts
72.345 - add r2,r0
72.346 -
72.347 --
72.348 -+ FUNC(GLOBAL(mulsi3))
72.349 - #endif
72.350 - #endif /* ! __SH5__ */
72.351 - #ifdef L_sdivsi3_i4
72.352 -@@ -875,6 +1003,7 @@
72.353 - !! args in r4 and r5, result in fpul, clobber dr0, dr2
72.354 -
72.355 - .global GLOBAL(sdivsi3_i4)
72.356 -+ FUNC(GLOBAL(sdivsi3_i4))
72.357 - GLOBAL(sdivsi3_i4):
72.358 - lds r4,fpul
72.359 - float fpul,dr0
72.360 -@@ -884,6 +1013,7 @@
72.361 - rts
72.362 - ftrc dr0,fpul
72.363 -
72.364 -+ ENDFUNC(GLOBAL(sdivsi3_i4))
72.365 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
72.366 - !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
72.367 -
72.368 -@@ -892,6 +1022,7 @@
72.369 - .mode SHcompact
72.370 - #endif
72.371 - .global GLOBAL(sdivsi3_i4)
72.372 -+ FUNC(GLOBAL(sdivsi3_i4))
72.373 - GLOBAL(sdivsi3_i4):
72.374 - sts.l fpscr,@-r15
72.375 - mov #8,r2
72.376 -@@ -906,6 +1037,7 @@
72.377 - rts
72.378 - lds.l @r15+,fpscr
72.379 -
72.380 -+ ENDFUNC(GLOBAL(sdivsi3_i4))
72.381 - #endif /* ! __SH5__ || __SH5__ == 32 */
72.382 - #endif /* ! __SH4__ */
72.383 - #endif
72.384 -@@ -920,9 +1052,10 @@
72.385 - !!
72.386 - !!
72.387 -
72.388 --!! args in r4 and r5, result in r0 clobber r1,r2,r3
72.389 -+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
72.390 -
72.391 - .global GLOBAL(sdivsi3)
72.392 -+ FUNC(GLOBAL(sdivsi3))
72.393 - #if __SHMEDIA__
72.394 - #if __SH5__ == 32
72.395 - .section .text..SHmedia32,"ax"
72.396 -@@ -1166,6 +1299,7 @@
72.397 - div0: rts
72.398 - mov #0,r0
72.399 -
72.400 -+ ENDFUNC(GLOBAL(sdivsi3))
72.401 - #endif /* ! __SHMEDIA__ */
72.402 - #endif /* ! __SH4__ */
72.403 - #endif
72.404 -@@ -1174,9 +1308,11 @@
72.405 - .title "SH DIVIDE"
72.406 - !! 4 byte integer Divide code for the Hitachi SH
72.407 - #ifdef __SH4__
72.408 --!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
72.409 -+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
72.410 -+!! and t bit
72.411 -
72.412 - .global GLOBAL(udivsi3_i4)
72.413 -+ FUNC(GLOBAL(udivsi3_i4))
72.414 - GLOBAL(udivsi3_i4):
72.415 - mov #1,r1
72.416 - cmp/hi r1,r5
72.417 -@@ -1217,11 +1353,13 @@
72.418 - L1:
72.419 - .double 2147483648
72.420 -
72.421 -+ ENDFUNC(GLOBAL(udivsi3_i4))
72.422 - #elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
72.423 - #if ! __SH5__ || __SH5__ == 32
72.424 - !! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
72.425 - .mode SHmedia
72.426 - .global GLOBAL(udivsi3_i4)
72.427 -+ FUNC(GLOBAL(udivsi3_i4))
72.428 - GLOBAL(udivsi3_i4):
72.429 - addz.l r4,r63,r20
72.430 - addz.l r5,r63,r21
72.431 -@@ -1234,6 +1372,8 @@
72.432 - ftrc.dq dr0,dr32
72.433 - fmov.s fr33,fr32
72.434 - blink tr0,r63
72.435 -+
72.436 -+ ENDFUNC(GLOBAL(udivsi3_i4))
72.437 - #endif /* ! __SH5__ || __SH5__ == 32 */
72.438 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
72.439 - !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
72.440 -@@ -1287,6 +1427,7 @@
72.441 - #endif
72.442 - .double 2147483648
72.443 -
72.444 -+ ENDFUNC(GLOBAL(udivsi3_i4))
72.445 - #endif /* ! __SH4__ */
72.446 - #endif
72.447 -
72.448 -@@ -1297,6 +1438,7 @@
72.449 -
72.450 - !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
72.451 - .global GLOBAL(udivsi3)
72.452 -+ FUNC(GLOBAL(udivsi3))
72.453 -
72.454 - #if __SHMEDIA__
72.455 - #if __SH5__ == 32
72.456 -@@ -1485,6 +1627,7 @@
72.457 - rts
72.458 - rotcl r0
72.459 -
72.460 -+ ENDFUNC(GLOBAL(udivsi3))
72.461 - #endif /* ! __SHMEDIA__ */
72.462 - #endif /* __SH4__ */
72.463 - #endif /* L_udivsi3 */
72.464 -@@ -1790,6 +1933,7 @@
72.465 - .mode SHcompact
72.466 - #endif
72.467 - .global GLOBAL(set_fpscr)
72.468 -+ FUNC(GLOBAL(set_fpscr))
72.469 - GLOBAL(set_fpscr):
72.470 - lds r4,fpscr
72.471 - mov.l LOCAL(set_fpscr_L1),r1
72.472 -@@ -1822,6 +1966,8 @@
72.473 - .align 2
72.474 - LOCAL(set_fpscr_L1):
72.475 - .long GLOBAL(fpscr_values)
72.476 -+
72.477 -+ ENDFUNC(GLOBAL(set_fpscr))
72.478 - #ifdef __ELF__
72.479 - .comm GLOBAL(fpscr_values),8,4
72.480 - #else
72.481 -@@ -1860,6 +2006,7 @@
72.482 - blink tr0, r63
72.483 - #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
72.484 - .global GLOBAL(ic_invalidate)
72.485 -+ FUNC(GLOBAL(ic_invalidate))
72.486 - GLOBAL(ic_invalidate):
72.487 - ocbwb @r4
72.488 - mova 0f,r0
72.489 -@@ -1882,6 +2029,8 @@
72.490 - nop
72.491 - .endr
72.492 - .endr
72.493 -+
72.494 -+ ENDFUNC(GLOBAL(ic_invalidate))
72.495 - #endif /* SH4 */
72.496 - #endif /* L_ic_invalidate */
72.497 -
72.498 -@@ -1940,6 +2089,7 @@
72.499 - will be expanded into r2/r3 upon return. */
72.500 -
72.501 - .global GLOBAL(GCC_shcompact_call_trampoline)
72.502 -+ FUNC(GLOBAL(GCC_shcompact_call_trampoline))
72.503 - GLOBAL(GCC_shcompact_call_trampoline):
72.504 - ptabs/l r0, tr0 /* Prepare to call the actual function. */
72.505 - movi ((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
72.506 -@@ -2290,6 +2440,8 @@
72.507 - shari r2, 32, r2
72.508 - #endif
72.509 - blink tr0, r63
72.510 -+
72.511 -+ ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
72.512 - #endif /* L_shcompact_call_trampoline */
72.513 -
72.514 - #ifdef L_shcompact_return_trampoline
72.515 -@@ -2302,6 +2454,7 @@
72.516 - .section .text..SHmedia32, "ax"
72.517 - .align 2
72.518 - .global GLOBAL(GCC_shcompact_return_trampoline)
72.519 -+ FUNC(GLOBAL(GCC_shcompact_return_trampoline))
72.520 - GLOBAL(GCC_shcompact_return_trampoline):
72.521 - ptabs/l r18, tr0
72.522 - #if __LITTLE_ENDIAN__
72.523 -@@ -2313,6 +2466,8 @@
72.524 - #endif
72.525 - or r3, r2, r2
72.526 - blink tr0, r63
72.527 -+
72.528 -+ ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
72.529 - #endif /* L_shcompact_return_trampoline */
72.530 -
72.531 - #ifdef L_shcompact_incoming_args
72.532 -@@ -2367,6 +2522,7 @@
72.533 - actual bit pattern. */
72.534 -
72.535 - .global GLOBAL(GCC_shcompact_incoming_args)
72.536 -+ FUNC(GLOBAL(GCC_shcompact_incoming_args))
72.537 - GLOBAL(GCC_shcompact_incoming_args):
72.538 - ptabs/l r18, tr0 /* Prepare to return. */
72.539 - shlri r17, 32, r0 /* Load the cookie. */
72.540 -@@ -2519,6 +2675,7 @@
72.541 - LOCAL(ia_return): /* Return. */
72.542 - blink tr0, r63
72.543 - LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction. */
72.544 -+ ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
72.545 - #endif /* L_shcompact_incoming_args */
72.546 - #endif
72.547 - #if __SH5__
72.548 -@@ -2530,6 +2687,7 @@
72.549 - #endif
72.550 - .align 3 /* It is copied in units of 8 bytes in SHmedia mode. */
72.551 - .global GLOBAL(GCC_nested_trampoline)
72.552 -+ FUNC(GLOBAL(GCC_nested_trampoline))
72.553 - GLOBAL(GCC_nested_trampoline):
72.554 - .mode SHmedia
72.555 - ptrel/u r63, tr0
72.556 -@@ -2546,6 +2704,8 @@
72.557 - ld.l r0, 28, r1
72.558 - #endif
72.559 - blink tr1, r63
72.560 -+
72.561 -+ ENDFUNC(GLOBAL(GCC_nested_trampoline))
72.562 - #endif /* L_nested_trampoline */
72.563 - #endif /* __SH5__ */
72.564 - #if __SH5__ == 32
72.565 -@@ -2555,6 +2715,7 @@
72.566 - .align 2
72.567 - #ifndef __SH4_NOFPU__
72.568 - .global GLOBAL(GCC_push_shmedia_regs)
72.569 -+ FUNC(GLOBAL(GCC_push_shmedia_regs))
72.570 - GLOBAL(GCC_push_shmedia_regs):
72.571 - addi.l r15, -14*8, r15
72.572 - fst.d r15, 13*8, dr62
72.573 -@@ -2573,6 +2734,7 @@
72.574 - fst.d r15, 0*8, dr36
72.575 - #endif
72.576 - .global GLOBAL(GCC_push_shmedia_regs_nofpu)
72.577 -+ FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
72.578 - GLOBAL(GCC_push_shmedia_regs_nofpu):
72.579 - ptabs/l r18, tr0
72.580 - addi.l r15, -27*8, r15
72.581 -@@ -2608,8 +2770,13 @@
72.582 - st.q r15, 0*8, r28
72.583 - blink tr0, r63
72.584 -
72.585 -+#ifndef __SH4_NOFPU__
72.586 -+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
72.587 -+#endif
72.588 -+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
72.589 - #ifndef __SH4_NOFPU__
72.590 - .global GLOBAL(GCC_pop_shmedia_regs)
72.591 -+ FUNC(GLOBAL(GCC_pop_shmedia_regs))
72.592 - GLOBAL(GCC_pop_shmedia_regs):
72.593 - pt .L0, tr1
72.594 - movi 41*8, r0
72.595 -@@ -2630,6 +2797,7 @@
72.596 - blink tr1, r63
72.597 - #endif
72.598 - .global GLOBAL(GCC_pop_shmedia_regs_nofpu)
72.599 -+ FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
72.600 - GLOBAL(GCC_pop_shmedia_regs_nofpu):
72.601 - movi 27*8, r0
72.602 - .L0:
72.603 -@@ -2666,5 +2834,10 @@
72.604 - ld.q r15, 0*8, r28
72.605 - add.l r15, r0, r15
72.606 - blink tr0, r63
72.607 -+
72.608 -+#ifndef __SH4_NOFPU__
72.609 -+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
72.610 -+#endif
72.611 -+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
72.612 - #endif /* __SH5__ == 32 */
72.613 - #endif /* L_push_pop_shmedia_regs */
73.1 --- a/patches/gcc/3.3.2/sh-libgcc-hidden.patch Tue Aug 14 19:32:22 2007 +0000
73.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
73.3 @@ -1,122 +0,0 @@
73.4 -[adjusted very slightly to apply to gcc-3.3.2 - dank]
73.5 -
73.6 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
73.7 -
73.8 -I've noticed one more problem about this issue. In the testcase given
73.9 -by ZhouChang, libdemo.so exports __movstr_i4_even which is a function
73.10 -in libgcc.a. This itself is not a problem but it means that some functions
73.11 -in libgcc.a which should not be exported from shared objects might be
73.12 -exported from shared libs
73.13 -
73.14 -Date: Wed, 19 Nov 2003 09:04:12 +0900 (JST)
73.15 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
73.16 -Subject: [linux-sh:03096] Re: [linux] Re: About tool chain in
73.17 - http://kegel.com/crosstool/
73.18 -To: dank@kegel.com
73.19 -Cc: zjuzhou@yahoo.com.cn, linux-sh@m17n.org, zhan_sh@yahoo.com.cn,
73.20 - crossgcc@sources.redhat.com
73.21 -Message-Id: <20031119.090412.85413542.kkojima@rr.iij4u.or.jp>
73.22 -
73.23 -Hi,
73.24 -
73.25 -Dan Kegel <dank@kegel.com> wrote:
73.26 -> I'll try that, thanks. I notice that the '.hidden' isn't in cvs yet.
73.27 -> I also notice you've been trying to get that into CVS for two years
73.28 -> now (http://gcc.gnu.org/ml/gcc-patches/2001-10/msg00053.html).
73.29 -> Time for another try? It'd be nice if gcc-3.4 (and maybe even gcc-3.3.3)
73.30 -> didn't need a patch for this.
73.31 -
73.32 -The situation is a bit complicated. sh-linux target doesn't make
73.33 -shared libgcc in gcc-3.3.x.
73.34 -OTOH, I withdrew that .hidden patch because gcc-3.3 has a general
73.35 -mechanism to make all libgcc functions .hidden. But I missed that
73.36 -that mechanism was conditionalized later so that it's done only
73.37 -when the target creates the shared libgcc.
73.38 -In 3.4, sh-linux target becomes to use the shared libgcc like as
73.39 -all other linux targets, so there is no problem.
73.40 -
73.41 -I inclined to backport 3.4 shared libgcc stuff to 3.3.3 rather
73.42 -than the old .hidden patch. How do you think about it?
73.43 -I'm happy if you or ZhouChang create a PR on gcc bugzilla about
73.44 -this issue.
73.45 -
73.46 -Regards,
73.47 - kaz
73.48 ---
73.49 - This is a backport of 3.4 shared libgcc stuff to 3.3 branch.
73.50 - * config.gcc (sh*-*-linux*): Add t-slibgcc-elf-ver and t-linux.
73.51 - to tmake_file. * config/sh/libgcc-glibc.ver: New file.
73.52 - * config/sh/t-linux (SHLIB_LINK): Override to use a linker script
73.53 - libgcc_s.so.
73.54 - (SHLIB_INSTALL): Likewise.
73.55 -
73.56 -diff -u3prN ORIG/gcc-3.3/gcc/config/sh/libgcc-glibc.ver gcc-3.3/gcc/config/sh/libgcc-glibc.ver
73.57 ---- ORIG/gcc-3.3/gcc/config/sh/libgcc-glibc.ver Thu Jan 1 09:00:00 1970
73.58 -+++ gcc-3.3/gcc/config/sh/libgcc-glibc.ver Wed Nov 19 08:15:16 2003
73.59 -@@ -0,0 +1,21 @@
73.60 -+# In order to work around the very problems that force us to now generally
73.61 -+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
73.62 -+# By now choosing the same version tags for these specific routines, we
73.63 -+# maintain enough binary compatibility to allow future versions of glibc
73.64 -+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
73.65 -+
73.66 -+# Note that we cannot use the default libgcc-glibc.ver file on sh,
73.67 -+# because GLIBC_2.0 does not exist on this architecture, as the first
73.68 -+# ever glibc release on the platform was GLIBC_2.2.
73.69 -+
73.70 -+%inherit GCC_3.0 GLIBC_2.2
73.71 -+GLIBC_2.2 {
73.72 -+ __register_frame
73.73 -+ __register_frame_table
73.74 -+ __deregister_frame
73.75 -+ __register_frame_info
73.76 -+ __deregister_frame_info
73.77 -+ __frame_state_for
73.78 -+ __register_frame_info_table
73.79 -+}
73.80 -+
73.81 -diff -u3prN ORIG/gcc-3.3/gcc/config/sh/t-linux gcc-3.3/gcc/config/sh/t-linux
73.82 ---- ORIG/gcc-3.3/gcc/config/sh/t-linux Fri Jun 6 11:07:14 2003
73.83 -+++ gcc-3.3/gcc/config/sh/t-linux Wed Nov 19 08:09:26 2003
73.84 -@@ -12,3 +12,27 @@ MULTILIB_MATCHES =
73.85 - MULTILIB_EXCEPTIONS=
73.86 -
73.87 - EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o
73.88 -+
73.89 -+# Override t-slibgcc-elf-ver to export some libgcc symbols with
73.90 -+# the symbol versions that glibc used.
73.91 -+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/sh/libgcc-glibc.ver
73.92 -+
73.93 -+# Override SHLIB_LINK and SHLIB_INSTALL to use linker script
73.94 -+# libgcc_s.so.
73.95 -+SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
73.96 -+ -Wl,--soname=$(SHLIB_SONAME) \
73.97 -+ -Wl,--version-script=$(SHLIB_MAP) \
73.98 -+ -o $(SHLIB_NAME) @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
73.99 -+ rm -f $(SHLIB_SOLINK) && \
73.100 -+ (echo "/* GNU ld script"; \
73.101 -+ echo " Use the shared library, but some functions are only in"; \
73.102 -+ echo " the static library. */"; \
73.103 -+ echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \
73.104 -+ ) > $(SHLIB_SOLINK)
73.105 -+SHLIB_INSTALL = \
73.106 -+ $$(SHELL) $$(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
73.107 -+ $(INSTALL_DATA) $(SHLIB_NAME) \
73.108 -+ $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
73.109 -+ rm -f $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
73.110 -+ $(INSTALL_DATA) $(SHLIB_SOLINK) \
73.111 -+ $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
73.112 -diff -u3prN ORIG/gcc-3.3/gcc/config.gcc gcc-3.3/gcc/config.gcc
73.113 ---- ORIG/gcc-3.3/gcc/config.gcc Sat Aug 9 07:19:07 2003
73.114 -+++ gcc-3.3/gcc/config.gcc Wed Nov 19 08:07:53 2003
73.115 -@@ -2308,7 +2308,7 @@ sh-*-rtems*)
73.116 - fi
73.117 - ;;
73.118 - sh-*-linux* | sh[2346lbe]*-*-linux*)
73.119 -- tmake_file="sh/t-sh sh/t-elf"
73.120 -+ tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux"
73.121 - case $machine in
73.122 - sh*be-*-* | sh*eb-*-*) ;;
73.123 - *)
73.124 -
73.125 -
74.1 --- a/patches/gcc/3.3.2/sh-pic-set_fpscr-gcc-3.3.2.patch Tue Aug 14 19:32:22 2007 +0000
74.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
74.3 @@ -1,67 +0,0 @@
74.4 -See http://gcc.gnu.org/PR11901
74.5 -Should fix
74.6 -make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
74.7 -in glibc's "make tests".
74.8 -
74.9 -Note: this patch is named
74.10 -sh-pic-set_fpscr-gcc-3.3.2.patch
74.11 -and must be applied after
74.12 -sh-lib1funcs_sizeAndType.patch
74.13 -but that'll happen naturally if you apply them in alphabetical order.
74.14 -
74.15 --------------
74.16 -
74.17 -Date: Wed, 30 Jul 2003 12:03:01 +0900
74.18 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
74.19 -Subject: [linux-sh:02916] Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
74.20 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
74.21 -To: dank@kegel.com
74.22 -Cc: linux-sh@m17n.org
74.23 -Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
74.24 -
74.25 -> I'll try to write the PIC version of it,
74.26 -
74.27 -Dan, does the attached patch work for you?
74.28 -
74.29 -Regards,
74.30 - kaz
74.31 ---
74.32 -diff -u3prN ORIG/gcc/gcc/config/sh/lib1funcs.asm LOCAL/gcc/gcc/config/sh/lib1funcs.asm
74.33 ---- ORIG/gcc/gcc/config/sh/lib1funcs.asm Thu Jun 19 07:38:59 2003
74.34 -+++ gcc-3.3.2/gcc/config/sh/lib1funcs.asm Wed Jul 30 11:08:49 2003
74.35 -@@ -1936,7 +1944,17 @@ GLOBAL(moddi3):
74.36 - FUNC(GLOBAL(set_fpscr))
74.37 - GLOBAL(set_fpscr):
74.38 - lds r4,fpscr
74.39 -+#ifdef __PIC__
74.40 -+ mov.l r12,@-r15
74.41 -+ mova LOCAL(set_fpscr_L0),r0
74.42 -+ mov.l LOCAL(set_fpscr_L0),r12
74.43 -+ add r0,r12
74.44 -+ mov.l LOCAL(set_fpscr_L1),r0
74.45 -+ mov.l @(r0,r12),r1
74.46 -+ mov.l @r15+,r12
74.47 -+#else
74.48 - mov.l LOCAL(set_fpscr_L1),r1
74.49 -+#endif
74.50 - swap.w r4,r0
74.51 - or #24,r0
74.52 - #ifndef FMOVD_WORKS
74.53 -@@ -1964,8 +1982,15 @@ GLOBAL(set_fpscr):
74.54 - mov.l r3,@(4,r1)
74.55 - #endif
74.56 - .align 2
74.57 -+#ifdef __PIC__
74.58 -+LOCAL(set_fpscr_L0):
74.59 -+ .long _GLOBAL_OFFSET_TABLE_
74.60 -+LOCAL(set_fpscr_L1):
74.61 -+ .long GLOBAL(fpscr_values@GOT)
74.62 -+#else
74.63 - LOCAL(set_fpscr_L1):
74.64 - .long GLOBAL(fpscr_values)
74.65 -+#endif
74.66 -
74.67 - ENDFUNC(GLOBAL(set_fpscr))
74.68 - #ifndef NO_FPSCR_VALUES
74.69 -
74.70 -
75.1 --- a/patches/gcc/3.3.2/thunk3.patch Tue Aug 14 19:32:22 2007 +0000
75.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
75.3 @@ -1,23 +0,0 @@
75.4 -Fixes
75.5 -FAIL: g++.jason/thunk3.C (test for excess errors)
75.6 -on sh4-unknown-linux-gnu.
75.7 -
75.8 -Does any sh variant *not* use the generic thunk support? If so, the patch should be
75.9 -more cautious. As it is, it excludes all sh processors from this test.
75.10 -
75.11 -Index: thunk3.C
75.12 -===================================================================
75.13 -RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
75.14 -retrieving revision 1.13
75.15 -diff -u -d -u -r1.13 thunk3.C
75.16 ---- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old 25 Mar 2002 17:57:03 -0000 1.13
75.17 -+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C 20 Jul 2003 16:57:38 -0000
75.18 -@@ -2,7 +2,7 @@
75.19 - // Note that this will break on any target that uses the generic thunk
75.20 - // support, because it doesn't support variadic functions.
75.21 -
75.22 --// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
75.23 -+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
75.24 -
75.25 - #include <stdarg.h>
75.26 -
76.1 --- a/patches/gcc/3.3.3/config.sub.patch Tue Aug 14 19:32:22 2007 +0000
76.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
76.3 @@ -1,72 +0,0 @@
76.4 -When configuring a s390->s390 or cris->cris crosscompiler
76.5 -(ok, I haven't hit this yet, but one of these days I'll get me an account
76.6 -on an s390, and then I'll need this patch :-), you'll get the
76.7 -following error:
76.8 -
76.9 -+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
76.10 ---target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
76.11 ---prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
76.12 ---enable-languages=c
76.13 ---with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
76.14 -unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
76.15 ---disable-shared
76.16 -...
76.17 -*** --with-headers is only supported when cross compiling
76.18 -
76.19 -This error pops up only when you're using Daniel Jacobowitz's technique
76.20 -of slightly changing the target and host tuples to make them different
76.21 -enough to force gcc's build system to not try to pull in system libraries
76.22 -or headers. This technique is needed e.g. to build an x86 -> x86
76.23 -cross-compiler.
76.24 -(The LFS developers ran into the same bug that prompted me to use
76.25 -this technique; they point people who run into it to
76.26 -http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
76.27 -way of avoiding this problem. I think the tuple tweak is the way to go, though.)
76.28 -
76.29 -config-patches@gnu.org rejected this patch, on the grounds that there
76.30 -is only one vendor of each of those two architectures, so the
76.31 -canonicalization is by definition correct. When I pointed out the
76.32 -difficulty this causes for people building s390 -> s390 or
76.33 -cris -> cris compilers that are incompatible with the system
76.34 -libraries and thus must be built like cross-compilers, he grumped and said
76.35 -"autoconf should let you specify a cross-compiler in some other way than
76.36 -comparing tuple strings".
76.37 -
76.38 -
76.39 -
76.40 ---- gcc-3.3/config.sub.old Sun Jun 8 20:38:47 2003
76.41 -+++ gcc-3.3/config.sub Sun Jun 8 20:40:34 2003
76.42 -@@ -433,9 +433,12 @@
76.43 - crds | unos)
76.44 - basic_machine=m68k-crds
76.45 - ;;
76.46 -- cris | cris-* | etrax*)
76.47 -+ cris | etrax*)
76.48 - basic_machine=cris-axis
76.49 - ;;
76.50 -+ cris-*)
76.51 -+ basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
76.52 -+ ;;
76.53 - da30 | da30-*)
76.54 - basic_machine=m68k-da30
76.55 - ;;
76.56 -@@ -820,11 +823,17 @@
76.57 - rtpc | rtpc-*)
76.58 - basic_machine=romp-ibm
76.59 - ;;
76.60 -- s390 | s390-*)
76.61 -+ s390)
76.62 - basic_machine=s390-ibm
76.63 - ;;
76.64 -- s390x | s390x-*)
76.65 -+ s390-*)
76.66 -+ basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
76.67 -+ ;;
76.68 -+ s390x)
76.69 - basic_machine=s390x-ibm
76.70 -+ ;;
76.71 -+ s390x-*)
76.72 -+ basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
76.73 - ;;
76.74 - sa29200)
76.75 - basic_machine=a29k-amd
77.1 --- a/patches/gcc/3.3.3/empty6.patch Tue Aug 14 19:32:22 2007 +0000
77.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
77.3 @@ -1,21 +0,0 @@
77.4 -From 3.4 branch. Fixes test failure
77.5 -FAIL: g++.dg/abi/empty6.C (test for warnings, line 6)
77.6 -
77.7 -===================================================================
77.8 -RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
77.9 -retrieving revision 1.1
77.10 -retrieving revision 1.2
77.11 -diff -u -r1.1 -r1.2
77.12 ---- gcc/gcc/testsuite/g++.dg/abi/empty6.C 2002/09/25 19:07:35 1.1
77.13 -+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C 2003/06/03 19:10:09 1.2
77.14 -@@ -5,4 +5,9 @@
77.15 - struct B {
77.16 - A a; // { dg-warning "empty" }
77.17 - virtual void f () {}
77.18 --};
77.19 -+} __attribute__((aligned(8)));
77.20 -+/* The preceding attribute is necessary on targets with
77.21 -+ BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
77.22 -+ offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
77.23 -+ and then there is no discrepancy between DECL_FIELD_OFFSET and
77.24 -+ byte_position to warn about. */
78.1 --- a/patches/gcc/3.3.3/gcc-3.3.2-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
78.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
78.3 @@ -1,65 +0,0 @@
78.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
78.5 -Adds support for arm*b-linux* big-endian ARM targets
78.6 -
78.7 -See http://gcc.gnu.org/PR16350
78.8 -
78.9 -diff -urN gcc-3.3.2.orig/gcc/config/arm/linux-elf.h gcc-3.3.2/gcc/config/arm/linux-elf.h
78.10 ---- gcc-3.3.2.orig/gcc/config/arm/linux-elf.h 2003-09-16 17:39:23.000000000 +0200
78.11 -+++ gcc-3.3.2/gcc/config/arm/linux-elf.h 2004-07-07 14:03:54.329839922 +0200
78.12 -@@ -30,15 +30,29 @@
78.13 - /* Do not assume anything about header files. */
78.14 - #define NO_IMPLICIT_EXTERN_C
78.15 -
78.16 -+/*
78.17 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
78.18 -+ * (big endian) configurations.
78.19 -+ */
78.20 -+#if TARGET_BIG_ENDIAN_DEFAULT
78.21 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
78.22 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
78.23 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
78.24 -+#else
78.25 -+#define TARGET_ENDIAN_DEFAULT 0
78.26 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
78.27 -+#define TARGET_LINKER_EMULATION "armelf_linux"
78.28 -+#endif
78.29 -+
78.30 - /* Default is to use APCS-32 mode. */
78.31 - #undef TARGET_DEFAULT
78.32 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
78.33 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
78.34 -
78.35 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
78.36 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
78.37 -
78.38 - #undef MULTILIB_DEFAULTS
78.39 - #define MULTILIB_DEFAULTS \
78.40 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
78.41 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
78.42 -
78.43 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
78.44 -
78.45 -@@ -86,7 +100,7 @@
78.46 - %{rdynamic:-export-dynamic} \
78.47 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
78.48 - -X \
78.49 -- %{mbig-endian:-EB}" \
78.50 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
78.51 - SUBTARGET_EXTRA_LINK_SPEC
78.52 -
78.53 - #define TARGET_OS_CPP_BUILTINS() \
78.54 -diff -urN gcc-3.3.2.orig/gcc/config.gcc gcc-3.3.2/gcc/config.gcc
78.55 ---- gcc-3.3.2.orig/gcc/config.gcc 2003-10-01 21:07:01.000000000 +0200
78.56 -+++ gcc-3.3.2/gcc/config.gcc 2004-07-07 14:04:59.046716638 +0200
78.57 -@@ -699,6 +699,11 @@
78.58 - ;;
78.59 - arm*-*-linux*) # ARM GNU/Linux with ELF
78.60 - 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"
78.61 -+ case $machine in
78.62 -+ arm*b-*)
78.63 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
78.64 -+ ;;
78.65 -+ esac
78.66 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
78.67 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
78.68 - gnu_ld=yes
79.1 --- a/patches/gcc/3.3.3/gcc-3.3.3-trap-posix.patch Tue Aug 14 19:32:22 2007 +0000
79.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
79.3 @@ -1,44 +0,0 @@
79.4 -#
79.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
79.6 -#
79.7 -# Error:
79.8 -#
79.9 -# creating libintl.h
79.10 -# Configuring etc...
79.11 -# loading cache ../config.cache
79.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
79.13 -# creating ./config.status
79.14 -# creating Makefile
79.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
79.16 -#
79.17 -# Description:
79.18 -#
79.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
79.20 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
79.21 -#
79.22 -# Status:
79.23 -#
79.24 -# fixed in gcc >= 3.3.5
79.25 -# backport of gcc-3.3.5 fix
79.26 -#
79.27 -diff -ruN gcc-3.3.3-orig/configure gcc-3.3.3/configure
79.28 ---- gcc-3.3.3-orig/configure 2002-09-29 18:11:24.000000000 +0200
79.29 -+++ gcc-3.3.3/configure 2005-04-20 21:03:51.000000000 +0200
79.30 -@@ -697,7 +697,7 @@
79.31 - if test -f skip-this-dir; then
79.32 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
79.33 - # and reset the trap handler.
79.34 -- trap 0
79.35 -+ trap '' 0
79.36 - rm -rf Makefile* ${tmpdir}
79.37 - # Execute the final clean-up actions
79.38 - ${config_shell} skip-this-dir
79.39 -@@ -1596,7 +1596,7 @@
79.40 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
79.41 - # and reset the trap handler.
79.42 - rm -rf ${tmpdir}
79.43 --trap 0
79.44 -+trap '' 0
79.45 -
79.46 - exit 0
79.47 -
80.1 --- a/patches/gcc/3.3.3/pr10392-1-test.patch Tue Aug 14 19:32:22 2007 +0000
80.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
80.3 @@ -1,65 +0,0 @@
80.4 ---- /dev/null Sat Dec 14 13:56:51 2002
80.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10392-1.c Sun Sep 14 14:28:24 2003
80.6 -@@ -0,0 +1,62 @@
80.7 -+/* PR optimization/10392
80.8 -+ * Reporter: marcus@mc.pp.se
80.9 -+ * Summary: [3.3/3.4 regression] [SH] optimizer generates faulty array indexing
80.10 -+ * Description:
80.11 -+ * The address calculation of an index operation on an array on the stack
80.12 -+ * can _under some conditions_ get messed up completely
80.13 -+ *
80.14 -+ * Testcase tweaked by dank@kegel.com
80.15 -+ * Problem only happens with -O2 -m4, so it should only happen on sh4,
80.16 -+ * but what the heck, let's test other architectures, too.
80.17 -+ * Not marked as xfail since it's a regression.
80.18 -+*/
80.19 -+/* { dg-do run } */
80.20 -+/* { dg-options "-O2" } */
80.21 -+/* { dg-options "-O2 -m4" { target sh4-*-* } } */
80.22 -+const char *dont_optimize_function_away;
80.23 -+
80.24 -+const char *use(const char *str)
80.25 -+{
80.26 -+ dont_optimize_function_away = str;
80.27 -+ if (str[0] != 'v')
80.28 -+ abort();
80.29 -+ if (str[1] < '1' || str[1] > '6')
80.30 -+ abort();
80.31 -+ if (str[2])
80.32 -+ abort();
80.33 -+ return str[2] ? "notused" : "v6";
80.34 -+}
80.35 -+
80.36 -+const char *func(char *a, char *b)
80.37 -+{
80.38 -+ char buf[128];
80.39 -+ unsigned char i;
80.40 -+ const char *result;
80.41 -+
80.42 -+ char *item[] = {
80.43 -+ "v1",
80.44 -+ "v2",
80.45 -+ };
80.46 -+
80.47 -+ buf[0] = 'v';
80.48 -+ buf[1] = '3';
80.49 -+ buf[2] = 0;
80.50 -+
80.51 -+ for (i = 0; i < 2; i++) {
80.52 -+ /* bug is: following line passes wild pointer to use() on sh4 -O2 */
80.53 -+ result = use(item[i]);
80.54 -+
80.55 -+ use(buf);
80.56 -+ use(a);
80.57 -+ use(b);
80.58 -+ result = use(result);
80.59 -+ }
80.60 -+ return result;
80.61 -+}
80.62 -+
80.63 -+int main()
80.64 -+{
80.65 -+ func("v4", "v5");
80.66 -+ return 0;
80.67 -+}
80.68 -+
81.1 --- a/patches/gcc/3.3.3/pr10412-1-test.patch Tue Aug 14 19:32:22 2007 +0000
81.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
81.3 @@ -1,46 +0,0 @@
81.4 ---- /dev/null Sat Dec 14 13:56:51 2002
81.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10412-1.c Sun Sep 14 16:15:21 2003
81.6 -@@ -0,0 +1,43 @@
81.7 -+/* PR target/10412
81.8 -+ * Reporter: shrinivasa@kpitcummins.com
81.9 -+ * Summary: Renesas SH - Incorrect code generation
81.10 -+ * Description:
81.11 -+ * When following code is compiled with
81.12 -+ * sh-elf-gcc -S -mhitachi -m2 -O2 bug1.c
81.13 -+ * generates an incorrect code.
81.14 -+ *
81.15 -+ * Testcase tweaked by dank@kegel.com
81.16 -+ * Problem only happens with -mhitachi -m2. Not sure if I can give those
81.17 -+ * options for all sh targets. They work on sh4, though.
81.18 -+ * Not marked as xfail as it's a regression relative to hardhat 2.0 gcc-2.97.
81.19 -+*/
81.20 -+/* { dg-do run } */
81.21 -+/* { dg-options "-O2" } */
81.22 -+int global_val;
81.23 -+
81.24 -+int func0(int x)
81.25 -+{
81.26 -+ global_val += x;
81.27 -+ return (x != 99);
81.28 -+}
81.29 -+
81.30 -+int func1(unsigned long addr)
81.31 -+{
81.32 -+ int err;
81.33 -+
81.34 -+ err = func0(addr);
81.35 -+ if (err)
81.36 -+ return (err);
81.37 -+
81.38 -+ err = func0(addr * 7); /* address of func0 is lost during multiplication -> probable SIGSEGV */
81.39 -+ return (err);
81.40 -+}
81.41 -+
81.42 -+int main(int argc, char **argv)
81.43 -+{
81.44 -+ global_val = 0;
81.45 -+ global_val += func1(99);
81.46 -+ if (global_val != 99 * 8 + 1)
81.47 -+ abort();
81.48 -+ return 0;
81.49 -+}
82.1 --- a/patches/gcc/3.3.3/pr10589-1-test.patch Tue Aug 14 19:32:22 2007 +0000
82.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
82.3 @@ -1,17 +0,0 @@
82.4 ---- /dev/null Sat Dec 14 13:56:51 2002
82.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10589-1.c Mon Sep 15 08:57:58 2003
82.6 -@@ -0,0 +1,14 @@
82.7 -+/* PR target/10589
82.8 -+ * Reporter: mathieu@thenesis.com
82.9 -+ * Summary: For Hitachi SH target, GCC crashes when both -fomit-frame-pointer and -mdalign options are specified
82.10 -+ * Keywords: ice-on-valid-code
82.11 -+ * Testcase by Kazu Hirata, tweaked by dank@kegel.com
82.12 -+ * 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
82.13 -+ */
82.14 -+/* { dg-do compile { target sh*-*-* } } */
82.15 -+/* { dg-options "-fomit-frame-pointer -mdalign" } */
82.16 -+
82.17 -+int foo(int a, int b)
82.18 -+{
82.19 -+ return a / b;
82.20 -+}
83.1 --- a/patches/gcc/3.3.3/pr11162-1-test.patch Tue Aug 14 19:32:22 2007 +0000
83.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
83.3 @@ -1,25 +0,0 @@
83.4 ---- /dev/null Sat Dec 14 13:56:51 2002
83.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11162-1.c Sun Sep 14 16:24:41 2003
83.6 -@@ -0,0 +1,22 @@
83.7 -+/*
83.8 -+ * PR optimization/11162
83.9 -+ * Reporter: Toshiyasu Morita <tm@kloo.net>
83.10 -+ * Summary: [3.4 Regression] [-fnew-ra] ICE compiling channel.i on sh
83.11 -+ * Keywords: ice-on-valid-code
83.12 -+ * Description:
83.13 -+ * [ICE] when channel.i from stress-1.17 is compiled with options:
83.14 -+ * -O2 -m4 -fnew-ra
83.15 -+ * ...
83.16 -+ * The CFG code gets confused by the addition of a USE insn after a sibcall.
83.17 -+ * Sibcalls are supposed to end the block (and the function!), so the fact
83.18 -+ * that we have an instruction following one (even if its fake) is confusing.
83.19 -+ *
83.20 -+ * testcase tweaked by dank@kegel.com
83.21 -+ */
83.22 -+/* { dg-do compile } */
83.23 -+/* { dg-options "-O2 -fnew-ra" } */
83.24 -+
83.25 -+int foo(char *p1)
83.26 -+{
83.27 -+ return bar(p1);
83.28 -+}
84.1 --- a/patches/gcc/3.3.3/pr11587-1-test.patch Tue Aug 14 19:32:22 2007 +0000
84.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
84.3 @@ -1,39 +0,0 @@
84.4 ---- /dev/null Sat Dec 14 13:56:51 2002
84.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11587-1.c Mon Sep 15 08:46:00 2003
84.6 -@@ -0,0 +1,36 @@
84.7 -+/* PR optimization/11587
84.8 -+ * Reporter: Michael Eager <eager@mvista.com>
84.9 -+ * Summary: [3.3/3.4 Regression] SH ICE in reload_cse_simplify_operand, postreload.c
84.10 -+ * Keywords: ice-on-valid-code
84.11 -+ *
84.12 -+ * Note: a fix exists; see bugzilla
84.13 -+ *
84.14 -+ * Testcase tweaked by dank@kegel.com
84.15 -+ * Not marked as xfail since it's a regression.
84.16 -+ */
84.17 -+
84.18 -+/* { dg-do compile } */
84.19 -+/* { dg-options "-O1" } */
84.20 -+int foo1(void);
84.21 -+int foo2();
84.22 -+int foo3();
84.23 -+
84.24 -+static int goo()
84.25 -+{
84.26 -+ int i;
84.27 -+
84.28 -+ if (i <= 0)
84.29 -+ return i;
84.30 -+
84.31 -+ if (foo1() > 1) {
84.32 -+ i = foo2();
84.33 -+ if (i < 0)
84.34 -+ return i;
84.35 -+ if (i) {
84.36 -+ if (foo3())
84.37 -+ return 1;
84.38 -+ return 0;
84.39 -+ }
84.40 -+ }
84.41 -+
84.42 -+}
85.1 --- a/patches/gcc/3.3.3/pr11608.patch Tue Aug 14 19:32:22 2007 +0000
85.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
85.3 @@ -1,26 +0,0 @@
85.4 -# See http://gcc.gnu.org/PR11608
85.5 -# Fixes following error when testing sh4 toolchain:
85.6 -#
85.7 -# Testing debug/20020327-1.c, -gstabs1
85.8 -# ...
85.9 -# FAIL: gcc.dg/debug/20020327-1.c (test for excess errors)
85.10 -# Excess errors:
85.11 -# /tmp/cc8dFF7Y.s: Assembler messages:
85.12 -# /tmp/cc8dFF7Y.s:66: Error: symbol `Letext' is already defined
85.13 -
85.14 -Index: elf.h
85.15 -===================================================================
85.16 -RCS file: /cvs/gcc/gcc/gcc/config/sh/elf.h,v
85.17 -retrieving revision 1.32
85.18 -diff -u -p -r1.32 elf.h
85.19 ---- gcc/gcc/config/sh/elf.h.old 27 Sep 2003 04:48:28 -0000 1.32
85.20 -+++ gcc/gcc/config/sh/elf.h 2 Jan 2004 07:23:23 -0000
85.21 -@@ -95,7 +95,7 @@ while (0)
85.22 - #define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
85.23 - do { \
85.24 - text_section (); \
85.25 -- fprintf ((FILE), "\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO); \
85.26 -+ asm_fprintf ((FILE), "\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO); \
85.27 - } while (0)
85.28 -
85.29 - #undef STARTFILE_SPEC
86.1 --- a/patches/gcc/3.3.3/pr11736-1-test.patch Tue Aug 14 19:32:22 2007 +0000
86.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
86.3 @@ -1,48 +0,0 @@
86.4 ---- /dev/null Sat Dec 14 13:56:51 2002
86.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c Sun Sep 14 14:26:33 2003
86.6 -@@ -0,0 +1,45 @@
86.7 -+/* PR optimization/11736
86.8 -+ * Reporter: marcus@mc.pp.se
86.9 -+ * Summary: Stackpointer messed up on SuperH
86.10 -+ * Keywords: wrong-code
86.11 -+ * Description:
86.12 -+ * When a function with 5 arguments is called in both branches of a
86.13 -+ * conditional, and only the last argument differs, the code to push that
86.14 -+ * last argument on the stack gets confused.
86.15 -+ * Space for the fifth argument is reserved on the stack by the
86.16 -+ * instruction I have marked as "A". However, if the else-branch is
86.17 -+ * taken the stackpointer is decremented _again_ at "B". This
86.18 -+ * decrementation is never restored, and it is only due to the
86.19 -+ * restoration of r15 from r14 that the function works at all. With
86.20 -+ * -fomit-frame-pointer it will crash.
86.21 -+ *
86.22 -+ * Testcase tweaked by dank@kegel.com
86.23 -+ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97
86.24 -+ * and dodes gcc-3.0.2
86.25 -+ */
86.26 -+
86.27 -+/* { dg-do run } */
86.28 -+/* { dg-options "-O1 -fomit-frame-pointer" } */
86.29 -+
86.30 -+int expected_e;
86.31 -+
86.32 -+void bar(int a, int b, int c, int d, int e)
86.33 -+{
86.34 -+ if (e != expected_e)
86.35 -+ abort();
86.36 -+}
86.37 -+
86.38 -+void foo(int a)
86.39 -+{
86.40 -+ if (a)
86.41 -+ bar(0, 0, 0, 0, 1);
86.42 -+ else
86.43 -+ bar(0, 0, 0, 0, 0); /* stack pointer decremented extra time here, causing segfault */
86.44 -+}
86.45 -+
86.46 -+int main(int argc, char **argv)
86.47 -+{
86.48 -+ for (expected_e = 0; expected_e < 2; expected_e++)
86.49 -+ foo(expected_e);
86.50 -+ return 0;
86.51 -+}
87.1 --- a/patches/gcc/3.3.3/pr11864-1-test.patch Tue Aug 14 19:32:22 2007 +0000
87.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
87.3 @@ -1,45 +0,0 @@
87.4 ---- /dev/null Sat Dec 14 13:56:51 2002
87.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11864-1.c Sun Sep 14 14:32:24 2003
87.6 -@@ -0,0 +1,42 @@
87.7 -+/* PR optimization/11864
87.8 -+ * Reporter: Kazumoto Kojima <kkojima@gcc.gnu.org>
87.9 -+ * Summary: [3.3/3.4 regression] miscompiles zero extension and test
87.10 -+ * Description:
87.11 -+ * gcc-3.3/3.4 -O2 for sh target may miscompile the combination of zero extension
87.12 -+ * and test if it's zero.
87.13 -+ *
87.14 -+ * Testcase tweaked by dank@kegel.com. Not marked as xfail because it's a regression.
87.15 -+ */
87.16 -+/* { dg-do run } */
87.17 -+/* { dg-options "-O2" } */
87.18 -+
87.19 -+extern void abort(void);
87.20 -+
87.21 -+int val = 0xff00;
87.22 -+
87.23 -+int f(void)
87.24 -+{
87.25 -+ return val;
87.26 -+}
87.27 -+
87.28 -+unsigned char a[1];
87.29 -+
87.30 -+void foo(void)
87.31 -+{
87.32 -+ a[0] = f() & 255;
87.33 -+
87.34 -+ if (!a[0])
87.35 -+ a[0] = f() & 255;
87.36 -+
87.37 -+ if (!a[0])
87.38 -+ a[0] = 1 + (f() & 127);
87.39 -+}
87.40 -+
87.41 -+int main(int argc, char **argv)
87.42 -+{
87.43 -+ foo();
87.44 -+ if (!a[0])
87.45 -+ abort();
87.46 -+
87.47 -+ return 0;
87.48 -+}
88.1 --- a/patches/gcc/3.3.3/pr12009.patch Tue Aug 14 19:32:22 2007 +0000
88.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
88.3 @@ -1,85 +0,0 @@
88.4 -See http://gcc.gnu.org/PR12009
88.5 -
88.6 -Fixes the following problems when testing a cross-compiler:
88.7 -
88.8 -============================================
88.9 -Testing g++.dg/compat/abi/bitfield1,
88.10 -...
88.11 -Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-gli
88.12 -bc-2.2.5/build-gcc/gcc/testsuite/../g++ ...
88.13 -/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/gcc/test
88.14 -suite/g++.dg/compat/abi/bitfield1_main.C
88.15 -pid is 16028 -16028
88.16 -compiler exited with status 1
88.17 -output is:
88.18 -sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gc
88.19 -c-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libdl.so.2: ELF file data encoding
88.20 - not little-endian
88.21 -/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/te
88.22 -stsuite/../g++: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-
88.23 -linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libc.so.6: ELF file da
88.24 -ta encoding not little-endian
88.25 -
88.26 -FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
88.27 -============================================
88.28 -
88.29 -and
88.30 -
88.31 -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
88.32 -
88.33 -
88.34 -
88.35 ---- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old Thu Oct 17 17:22:57 2002
88.36 -+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp Mon Jul 14 10:59:19 2003
88.37 -@@ -42,11 +42,13 @@
88.38 - proc compat-fix-library-path { } {
88.39 - global ld_library_path
88.40 -
88.41 -- # See comments in lib/g++.exp for why this is needed.
88.42 -- setenv LD_LIBRARY_PATH $ld_library_path
88.43 -- setenv SHLIB_PATH $ld_library_path
88.44 -- setenv LD_LIBRARYN32_PATH $ld_library_path
88.45 -- setenv LD_LIBRARY64_PATH $ld_library_path
88.46 -+ if {![is_remote target]} {
88.47 -+ # See comments in lib/g++.exp for why this is needed.
88.48 -+ setenv LD_LIBRARY_PATH $ld_library_path
88.49 -+ setenv SHLIB_PATH $ld_library_path
88.50 -+ setenv LD_LIBRARYN32_PATH $ld_library_path
88.51 -+ setenv LD_LIBRARY64_PATH $ld_library_path
88.52 -+ }
88.53 - }
88.54 -
88.55 - #
88.56 ---- gcc-3.4-20030813/gcc/testsuite/lib/g++.exp.orig Tue Jun 17 18:56:45 2003
88.57 -+++ gcc-3.4-20030813/gcc/testsuite/lib/g++.exp Sun Aug 17 18:35:38 2003
88.58 -@@ -166,16 +182,20 @@
88.59 - }
88.60 - }
88.61 -
88.62 -- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
88.63 -- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
88.64 -- # (for the 64-bit ABI). The right way to do this would be to modify
88.65 -- # unix.exp -- but that's not an option since it's part of DejaGNU
88.66 -- # proper, so we do it here. We really only need to do
88.67 -- # this on IRIX, but it shouldn't hurt to do it anywhere else.
88.68 -- setenv LD_LIBRARY_PATH $ld_library_path
88.69 -- setenv SHLIB_PATH $ld_library_path
88.70 -- setenv LD_LIBRARYN32_PATH $ld_library_path
88.71 -- setenv LD_LIBRARY64_PATH $ld_library_path
88.72 -+ if {![is_remote target]} {
88.73 -+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
88.74 -+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
88.75 -+ # (for the 64-bit ABI). The right way to do this would be to modify
88.76 -+ # unix.exp -- but that's not an option since it's part of DejaGNU
88.77 -+ # proper, so we do it here. We really only need to do
88.78 -+ # this on IRIX, but it shouldn't hurt to do it anywhere else.
88.79 -+
88.80 -+ # Doing this causes us to be unable to run cross-compilers.
88.81 -+ setenv LD_LIBRARY_PATH $ld_library_path
88.82 -+ setenv SHLIB_PATH $ld_library_path
88.83 -+ setenv LD_LIBRARYN32_PATH $ld_library_path
88.84 -+ setenv LD_LIBRARY64_PATH $ld_library_path
88.85 -+ }
88.86 -
88.87 - return "$flags"
88.88 - }
89.1 --- a/patches/gcc/3.3.3/pr12010.patch Tue Aug 14 19:32:22 2007 +0000
89.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
89.3 @@ -1,81 +0,0 @@
89.4 -Adjusted for gcc-3.3-20040119
89.5 -
89.6 -See http://gcc.gnu.org/PR12010
89.7 -
89.8 -Without this patch, one gets both compile and link time errors in
89.9 -'make check' when configured for cross-compiling.
89.10 -
89.11 -In particular, 'make check' on a cross-compiler fails with
89.12 -
89.13 -/testsuite_flags: /testsuite_flags: No such file or directory
89.14 - while executing
89.15 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
89.16 - (procedure "g++_include_flags" line 21)
89.17 - invoked from within
89.18 -"g++_include_flags [get_multilibs] "
89.19 - (procedure "g++_init" line 63)
89.20 - invoked from within
89.21 -"${tool}_init $test_file_name"
89.22 - (procedure "runtest" line 19)
89.23 -...
89.24 -make[1]: [check-g++] Error 1 (ignored)
89.25 -
89.26 ---- gcc-3.3-20040119/gcc/testsuite/lib/g++.exp.orig 2004-01-25 17:56:24.000000000 -0800
89.27 -+++ gcc-3.3-20040119/gcc/testsuite/lib/g++.exp 2004-01-25 18:29:44.000000000 -0800
89.28 -@@ -72,6 +72,8 @@ proc g++_version { } {
89.29 - #
89.30 - proc g++_include_flags { paths } {
89.31 - global srcdir
89.32 -+ global objdir
89.33 -+ global target_triplet
89.34 - global HAVE_LIBSTDCXX_V3
89.35 - global TESTING_IN_BUILD_TREE
89.36 -
89.37 -@@ -90,6 +92,20 @@ proc g++_include_flags { paths } {
89.38 -
89.39 - if { ${HAVE_LIBSTDCXX_V3} } {
89.40 - set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
89.41 -+ if { $odir_v3 == "" } {
89.42 -+ verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
89.43 -+ # first assume no multilibs
89.44 -+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
89.45 -+ }
89.46 -+ if { $odir_v3 == "" } {
89.47 -+ verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
89.48 -+ # assume multilib only one level deep
89.49 -+ set multisub [file tail $gccpath]
89.50 -+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
89.51 -+ }
89.52 -+ if { $odir_v3 == "" } {
89.53 -+ error "Can't find libstdc++-v3"
89.54 -+ }
89.55 - append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
89.56 - } else {
89.57 - set odir_v2 [lookfor_file ${gccpath} libstdc++]
89.58 -
89.59 ---- gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old Sun Jul 13 10:42:01 2003
89.60 -+++ gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Sun Jul 13 11:39:54 2003
89.61 -@@ -48,8 +48,23 @@
89.62 - global ld_library_path
89.63 - global original_ld_library_path
89.64 - global tool_root_dir
89.65 -+ global target_triplet
89.66 -
89.67 - set blddir [lookfor_file [get_multilibs] libstdc++-v3]
89.68 -+ if { $blddir == "" } {
89.69 -+ set multilibs [get_multilibs]
89.70 -+ # FIXME: assume multilib only one level deep
89.71 -+ set multisub [file tail $multilibs]
89.72 -+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
89.73 -+ set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
89.74 -+ }
89.75 -+ if { $blddir == "" } {
89.76 -+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
89.77 -+ set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
89.78 -+ }
89.79 -+ if { $blddir == "" } {
89.80 -+ error "Can't find libstdc++-v3"
89.81 -+ }
89.82 -
89.83 - # By default, we assume we want to run program images.
89.84 - global dg-do-what-default
90.1 --- a/patches/gcc/3.3.3/pr13250-fix.patch Tue Aug 14 19:32:22 2007 +0000
90.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
90.3 @@ -1,19 +0,0 @@
90.4 -See http://gcc.gnu.org/PR13250
90.5 -Fixes bad code generated when compiling SHA256 for SH processor
90.6 -
90.7 -===================================================================
90.8 -RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.md,v
90.9 -retrieving revision 1.171
90.10 -retrieving revision 1.172
90.11 -diff -u -r1.171 -r1.172
90.12 ---- gcc/gcc/config/sh/sh.md 2004/05/10 23:25:13 1.171
90.13 -+++ gcc/gcc/config/sh/sh.md 2004/05/28 05:47:36 1.172
90.14 -@@ -2194,7 +2194,7 @@
90.15 - parts[0] = gen_reg_rtx (SImode);
90.16 - parts[1] = gen_reg_rtx (SImode);
90.17 - emit_insn (gen_rotlsi3_16 (parts[2-choice], operands[1]));
90.18 -- parts[choice-1] = operands[1];
90.19 -+ emit_move_insn (parts[choice-1], operands[1]);
90.20 - emit_insn (gen_ashlsi3 (parts[0], parts[0], GEN_INT (8)));
90.21 - emit_insn (gen_lshrsi3 (parts[1], parts[1], GEN_INT (8)));
90.22 - emit_insn (gen_iorsi3 (operands[0], parts[0], parts[1]));
91.1 --- a/patches/gcc/3.3.3/pr13260-fix-3.3.3.patch Tue Aug 14 19:32:22 2007 +0000
91.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
91.3 @@ -1,246 +0,0 @@
91.4 -Date: Fri, 06 Feb 2004 12:35:58 +0900
91.5 -From: SUGIOKA Toshinobu <sugioka@itonet.co.jp>
91.6 -Subject: [linux-sh:03150] Re: gcc 3.3 optimisation problem
91.7 -To: linux-sh@m17n.org
91.8 -Message-Id: <4.2.0.58.J.20040206122503.04fe3058@router.itonet.co.jp>
91.9 -List-Help: <mailto:linux-sh-ctl@m17n.org?body=help>
91.10 -List-Id: linux-sh.m17n.org
91.11 -
91.12 -At 19:40 03/12/01 +0000, Stuart Menefy <stuart.menefy@st.com> wrote:
91.13 ->On Sat, 29 Nov 2003 20:19:08 +0900 kkojima@rr.iij4u.or.jp wrote:
91.14 ->
91.15 ->> Dan Kegel <dank@kegel.com> wrote:
91.16 ->> > Stuart Menefy wrote:
91.17 ->> >> I've just been trying to put together a gcc 3.3.2 based toolchain, and
91.18 ->> >> appear to be hitting a gcc optimisation bug. I was just wondering if
91.19 ->> >> anyone else had seen anything similar.
91.20 ->> >>
91.21 ->> >> The problem is seen when building the kernel, in the function
91.22 ->> >> root_nfs_parse_addr(). I've extracted this into a small stand alone
91.23 ->> >> program which demonstrates the problem.
91.24 ->> >
91.25 ->> > Excellent work. I haven't seen anything like this (doesn't mean much)
91.26 ->> > and the sh-specific optimization bugs in the gcc bug database don't look
91.27 ->> > similar. I think you should submit this as a bug report at
91.28 ->> > http://gcc.gnu.org/bugzilla/
91.29 ->> > It would be good if you could make your test case call abort() if
91.30 ->> > the problem is present, so the test case can be automated.
91.31 ->>
91.32 ->> Indeed. It'd be very nice to create a gcc PR for this issue.
91.33 ->
91.34 ->OK, I've done that. PR 13260.
91.35 -
91.36 -PR 13260 was fixed by amylaar@gcc.gnu.org at 2003-12-04 20:10:29 on mainline(gcc-3.4).
91.37 -I have back-ported that patch to gcc-3.3.3 and seems fine for me.
91.38 -
91.39 - * sh-protos.h (sh_expand_t_scc): Declare.
91.40 - * sh.h (PREDICATE_CODES): Add cmpsi_operand.
91.41 - * sh.c (cmpsi_operand, sh_expand_t_scc): New functions.
91.42 - * sh.md (cmpsi): Use cmpsi_operand. If T_REG is compared to
91.43 - something that is not a CONST_INT, copy it into a pseudo register.
91.44 - (subc): Fix description of new T value.
91.45 - (slt, sgt, sge, sgtu): Don't clobber T after rtl generation is over.
91.46 - (sltu, sleu, sgeu): Likewise.
91.47 - (seq, sne): Likewise. Use sh_expand_t_scc.
91.48 -
91.49 -diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh-protos.h gcc-3.3-20040126/gcc/config/sh/sh-protos.h
91.50 ---- gcc-3.3-20040126-1/gcc/config/sh/sh-protos.h Tue Jan 13 02:03:24 2004
91.51 -+++ gcc-3.3-20040126/gcc/config/sh/sh-protos.h Fri Jan 30 17:54:04 2004
91.52 -@@ -102,6 +102,7 @@
91.53 - extern int sh_can_redirect_branch PARAMS ((rtx, rtx));
91.54 - extern void sh_expand_unop_v2sf PARAMS ((enum rtx_code, rtx, rtx));
91.55 - extern void sh_expand_binop_v2sf PARAMS ((enum rtx_code, rtx, rtx, rtx));
91.56 -+extern int sh_expand_t_scc (enum rtx_code code, rtx target);
91.57 - #ifdef TREE_CODE
91.58 - extern void sh_va_start PARAMS ((tree, rtx));
91.59 - extern rtx sh_va_arg PARAMS ((tree, tree));
91.60 -diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.c gcc-3.3-20040126/gcc/config/sh/sh.c
91.61 ---- gcc-3.3-20040126-1/gcc/config/sh/sh.c Thu Jan 15 03:11:36 2004
91.62 -+++ gcc-3.3-20040126/gcc/config/sh/sh.c Fri Jan 30 17:53:58 2004
91.63 -@@ -7870,6 +7870,15 @@
91.64 - return register_operand (op, mode);
91.65 - }
91.66 -
91.67 -+int
91.68 -+cmpsi_operand (rtx op, enum machine_mode mode)
91.69 -+{
91.70 -+ if (GET_CODE (op) == REG && REGNO (op) == T_REG
91.71 -+ && GET_MODE (op) == SImode)
91.72 -+ return 1;
91.73 -+ return arith_operand (op, mode);
91.74 -+}
91.75 -+
91.76 - /* INSN is an sfunc; return the rtx that describes the address used. */
91.77 - static rtx
91.78 - extract_sfunc_addr (rtx insn)
91.79 -@@ -7917,4 +7926,33 @@
91.80 - abort ();
91.81 - }
91.82 -
91.83 -+int
91.84 -+sh_expand_t_scc (enum rtx_code code, rtx target)
91.85 -+{
91.86 -+ rtx result = target;
91.87 -+ HOST_WIDE_INT val;
91.88 -+
91.89 -+ if (GET_CODE (sh_compare_op0) != REG || REGNO (sh_compare_op0) != T_REG
91.90 -+ || GET_CODE (sh_compare_op1) != CONST_INT)
91.91 -+ return 0;
91.92 -+ if (GET_CODE (result) != REG)
91.93 -+ result = gen_reg_rtx (SImode);
91.94 -+ val = INTVAL (sh_compare_op1);
91.95 -+ if ((code == EQ && val == 1) || (code == NE && val == 0))
91.96 -+ emit_insn (gen_movt (result));
91.97 -+ else if ((code == EQ && val == 0) || (code == NE && val == 1))
91.98 -+ {
91.99 -+ emit_insn (gen_rtx_CLOBBER (VOIDmode, result));
91.100 -+ emit_insn (gen_subc (result, result, result));
91.101 -+ emit_insn (gen_addsi3 (result, result, GEN_INT (1)));
91.102 -+ }
91.103 -+ else if (code == EQ || code == NE)
91.104 -+ emit_insn (gen_move_insn (result, GEN_INT (code == NE)));
91.105 -+ else
91.106 -+ return 0;
91.107 -+ if (result != target)
91.108 -+ emit_move_insn (target, result);
91.109 -+ return 1;
91.110 -+}
91.111 -+
91.112 - #include "gt-sh.h"
91.113 -diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.h gcc-3.3-20040126/gcc/config/sh/sh.h
91.114 ---- gcc-3.3-20040126-1/gcc/config/sh/sh.h Wed Apr 16 02:06:09 2003
91.115 -+++ gcc-3.3-20040126/gcc/config/sh/sh.h Fri Jan 30 17:53:51 2004
91.116 -@@ -3231,6 +3231,7 @@
91.117 - {"arith_reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_VECTOR}}, \
91.118 - {"binary_float_operator", {PLUS, MINUS, MULT, DIV}}, \
91.119 - {"binary_logical_operator", {AND, IOR, XOR}}, \
91.120 -+ {"cmpsi_operand", {SUBREG, REG, CONST_INT}}, \
91.121 - {"commutative_float_operator", {PLUS, MULT}}, \
91.122 - {"equality_comparison_operator", {EQ,NE}}, \
91.123 - {"extend_reg_operand", {SUBREG, REG, TRUNCATE}}, \
91.124 -diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.md gcc-3.3-20040126/gcc/config/sh/sh.md
91.125 ---- gcc-3.3-20040126-1/gcc/config/sh/sh.md Tue Jan 13 02:03:25 2004
91.126 -+++ gcc-3.3-20040126/gcc/config/sh/sh.md Fri Jan 30 17:54:20 2004
91.127 -@@ -685,11 +685,14 @@
91.128 -
91.129 - (define_expand "cmpsi"
91.130 - [(set (reg:SI T_REG)
91.131 -- (compare (match_operand:SI 0 "arith_operand" "")
91.132 -+ (compare (match_operand:SI 0 "cmpsi_operand" "")
91.133 - (match_operand:SI 1 "arith_operand" "")))]
91.134 - "TARGET_SH1"
91.135 - "
91.136 - {
91.137 -+ if (GET_CODE (operands[0]) == REG && REGNO (operands[0]) == T_REG
91.138 -+ && GET_CODE (operands[1]) != CONST_INT)
91.139 -+ operands[0] = copy_to_mode_reg (SImode, operands[0]);
91.140 - sh_compare_op0 = operands[0];
91.141 - sh_compare_op1 = operands[1];
91.142 - DONE;
91.143 -@@ -1147,7 +1150,9 @@
91.144 - (match_operand:SI 2 "arith_reg_operand" "r"))
91.145 - (reg:SI T_REG)))
91.146 - (set (reg:SI T_REG)
91.147 -- (gtu:SI (minus:SI (match_dup 1) (match_dup 2)) (match_dup 1)))]
91.148 -+ (gtu:SI (minus:SI (minus:SI (match_dup 1) (match_dup 2))
91.149 -+ (reg:SI T_REG))
91.150 -+ (match_dup 1)))]
91.151 - "TARGET_SH1"
91.152 - "subc %2,%0"
91.153 - [(set_attr "type" "arith")])
91.154 -@@ -7223,6 +7228,10 @@
91.155 - }
91.156 - DONE;
91.157 - }
91.158 -+ if (sh_expand_t_scc (EQ, operands[0]))
91.159 -+ DONE;
91.160 -+ if (! rtx_equal_function_value_matters)
91.161 -+ FAIL;
91.162 - operands[1] = prepare_scc_operands (EQ);
91.163 - }")
91.164 -
91.165 -@@ -7269,6 +7278,8 @@
91.166 - }
91.167 - DONE;
91.168 - }
91.169 -+ if (! rtx_equal_function_value_matters)
91.170 -+ FAIL;
91.171 - operands[1] = prepare_scc_operands (LT);
91.172 - }")
91.173 -
91.174 -@@ -7371,6 +7382,8 @@
91.175 - }
91.176 - DONE;
91.177 - }
91.178 -+ if (! rtx_equal_function_value_matters)
91.179 -+ FAIL;
91.180 - operands[1] = prepare_scc_operands (GT);
91.181 - }")
91.182 -
91.183 -@@ -7423,6 +7436,8 @@
91.184 - DONE;
91.185 - }
91.186 -
91.187 -+ if (! rtx_equal_function_value_matters)
91.188 -+ FAIL;
91.189 - if (GET_MODE_CLASS (GET_MODE (sh_compare_op0)) == MODE_FLOAT)
91.190 - {
91.191 - if (TARGET_IEEE)
91.192 -@@ -7462,6 +7477,8 @@
91.193 - sh_compare_op0, sh_compare_op1));
91.194 - DONE;
91.195 - }
91.196 -+ if (! rtx_equal_function_value_matters)
91.197 -+ FAIL;
91.198 - operands[1] = prepare_scc_operands (GTU);
91.199 - }")
91.200 -
91.201 -@@ -7486,6 +7503,8 @@
91.202 - sh_compare_op1, sh_compare_op0));
91.203 - DONE;
91.204 - }
91.205 -+ if (! rtx_equal_function_value_matters)
91.206 -+ FAIL;
91.207 - operands[1] = prepare_scc_operands (LTU);
91.208 - }")
91.209 -
91.210 -@@ -7515,6 +7534,8 @@
91.211 -
91.212 - DONE;
91.213 - }
91.214 -+ if (! rtx_equal_function_value_matters)
91.215 -+ FAIL;
91.216 - operands[1] = prepare_scc_operands (LEU);
91.217 - }")
91.218 -
91.219 -@@ -7545,6 +7566,8 @@
91.220 - DONE;
91.221 - }
91.222 -
91.223 -+ if (! rtx_equal_function_value_matters)
91.224 -+ FAIL;
91.225 - operands[1] = prepare_scc_operands (GEU);
91.226 - }")
91.227 -
91.228 -@@ -7592,8 +7615,12 @@
91.229 - DONE;
91.230 - }
91.231 -
91.232 -- operands[1] = prepare_scc_operands (EQ);
91.233 -- operands[2] = gen_reg_rtx (SImode);
91.234 -+ if (sh_expand_t_scc (NE, operands[0]))
91.235 -+ DONE;
91.236 -+ if (! rtx_equal_function_value_matters)
91.237 -+ FAIL;
91.238 -+ operands[1] = prepare_scc_operands (EQ);
91.239 -+ operands[2] = gen_reg_rtx (SImode);
91.240 - }")
91.241 -
91.242 - (define_expand "sunordered"
91.243 -
91.244 -----
91.245 -SUGIOKA Toshinobu
91.246 -
91.247 -
91.248 -
91.249 -
92.1 --- a/patches/gcc/3.3.3/pr13260-test.patch Tue Aug 14 19:32:22 2007 +0000
92.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
92.3 @@ -1,56 +0,0 @@
92.4 -See http://gcc.gnu.org/PR13260
92.5 -
92.6 -/cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c,v --> standard output
92.7 -revision 1.1
92.8 ---- - 1970-01-01 00:00:00.000000000 +0000
92.9 -+++ gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
92.10 -@@ -0,0 +1,49 @@
92.11 -+/* PR optimization/13260 */
92.12 -+
92.13 -+#include <string.h>
92.14 -+
92.15 -+typedef unsigned long u32;
92.16 -+
92.17 -+u32 in_aton(const char* x)
92.18 -+{
92.19 -+ return 0x0a0b0c0d;
92.20 -+}
92.21 -+
92.22 -+u32 root_nfs_parse_addr(char *name)
92.23 -+{
92.24 -+ u32 addr;
92.25 -+ int octets = 0;
92.26 -+ char *cp, *cq;
92.27 -+
92.28 -+ cp = cq = name;
92.29 -+ while (octets < 4) {
92.30 -+ while (*cp >= '0' && *cp <= '9')
92.31 -+ cp++;
92.32 -+ if (cp == cq || cp - cq > 3)
92.33 -+ break;
92.34 -+ if (*cp == '.' || octets == 3)
92.35 -+ octets++;
92.36 -+ if (octets < 4)
92.37 -+ cp++;
92.38 -+ cq = cp;
92.39 -+ }
92.40 -+
92.41 -+ if (octets == 4 && (*cp == ':' || *cp == '\0')) {
92.42 -+ if (*cp == ':')
92.43 -+ *cp++ = '\0';
92.44 -+ addr = in_aton(name);
92.45 -+ strcpy(name, cp);
92.46 -+ } else
92.47 -+ addr = (-1);
92.48 -+
92.49 -+ return addr;
92.50 -+}
92.51 -+
92.52 -+int
92.53 -+main()
92.54 -+{
92.55 -+ static char addr[] = "10.11.12.13:/hello";
92.56 -+ u32 result = root_nfs_parse_addr(addr);
92.57 -+ if (result != 0x0a0b0c0d) { abort(); }
92.58 -+ return 0;
92.59 -+}
93.1 --- a/patches/gcc/3.3.3/pr15089-fix.patch Tue Aug 14 19:32:22 2007 +0000
93.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
93.3 @@ -1,25 +0,0 @@
93.4 -See http://gcc.gnu.org/PR15089
93.5 -"In some cases the specified register for a local variable meant to be
93.6 -used with inline assembly code is not respected. This breaks code
93.7 -relying on this feature to implement non-standard calling convension."
93.8 -
93.9 -This fix is probably needed to properly implement linux syscalls in some architectures.
93.10 -
93.11 -First added to crosstool by Jamie Hicks, see
93.12 -http://www.handhelds.org/hypermail/kernel-discuss/current/0066.html
93.13 -
93.14 -Index: gcc/loop.c
93.15 -===================================================================
93.16 -RCS file: /cvs/gcc/gcc/gcc/loop.c,v
93.17 -retrieving revision 1.488.2.3
93.18 -diff -u -r1.488.2.3 loop.c
93.19 ---- gcc-old/gcc/loop.c 14 Feb 2004 14:46:03 -0000 1.488.2.3
93.20 -+++ gcc-new/gcc/loop.c 28 Apr 2004 22:02:53 -0000
93.21 -@@ -929,6 +929,7 @@
93.22 - || (! (GET_CODE (SET_SRC (set)) == REG
93.23 - && (REGNO (SET_SRC (set))
93.24 - < FIRST_PSEUDO_REGISTER))))
93.25 -+ && regno >= FIRST_PSEUDO_REGISTER
93.26 - /* This test is not redundant; SET_SRC (set) might be
93.27 - a call-clobbered register and the life of REGNO
93.28 - might span a call. */
94.1 --- a/patches/gcc/3.3.3/pr9365-1-test.patch Tue Aug 14 19:32:22 2007 +0000
94.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
94.3 @@ -1,43 +0,0 @@
94.4 ---- /dev/null Sat Dec 14 13:56:51 2002
94.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr9365-1.c Sun Sep 14 09:34:37 2003
94.6 -@@ -0,0 +1,40 @@
94.7 -+/* PR target/9365
94.8 -+ * Origin: marcus@mc.pp.se
94.9 -+ * Testcase tweaked by dank@kegel.com
94.10 -+ * [3.3 regression] [SH] segfault in gen_far_branch (config/sh/sh.c)
94.11 -+ * ice-on-valid-code
94.12 -+ * Not marked as xfail since it's a regression
94.13 -+*/
94.14 -+/* { dg-do compile } */
94.15 -+/* { dg-options "-O2 -fomit-frame-pointer" } */
94.16 -+
94.17 -+
94.18 -+void foo(int n, int *p)
94.19 -+{
94.20 -+ switch(n) {
94.21 -+ case 100: case 110: case 120: case 130: case 140:
94.22 -+ case 200: case 210: case 220: case 230: case 240:
94.23 -+ case 300: case 310: case 320: case 330: case 340:
94.24 -+ case 400: case 410: case 420: case 430: case 440:
94.25 -+ case 500: case 510: case 520: case 530: case 540:
94.26 -+ case 600: case 610: case 620: case 630: case 640:
94.27 -+ case 700: case 710: case 720: case 730: case 740:
94.28 -+ case 800: case 810: case 820: case 830: case 840:
94.29 -+ case 900: case 910: case 920: case 930: case 940:
94.30 -+ break;
94.31 -+ default:
94.32 -+ *p = n;
94.33 -+ break;
94.34 -+ }
94.35 -+}
94.36 -+
94.37 -+int main(int argc, char **argv)
94.38 -+{
94.39 -+ int p;
94.40 -+
94.41 -+ (void) argv;
94.42 -+
94.43 -+ foo(argc, &p);
94.44 -+
94.45 -+ return p;
94.46 -+}
95.1 --- a/patches/gcc/3.3.3/sh-lib1funcs_sizeAndType.patch Tue Aug 14 19:32:22 2007 +0000
95.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
95.3 @@ -1,610 +0,0 @@
95.4 -Fixes the problem
95.5 - [ libdemo.so and main.o both use assignment on structures ]
95.6 - $ sh4-unknown-linux-gnu-gcc libdemo.so main.o
95.7 - sh4-unknown-linux-gnu/bin/ld: warning: type and size of dynamic symbol `__movstr_i4_even' are not defined
95.8 - [ resulting app links, but crashes at runtime ]
95.9 -See testcase at http://tsukuba.m17n.org/linux-sh/ml/linux-sh/2003-11/msg00016.html
95.10 -
95.11 -Patch was posted as http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01641.html
95.12 -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
95.13 -
95.14 -but see also sh-libgcc-hidden.patch (part of gcc-3.3.3 as of 20040119 or so)
95.15 -
95.16 -===================================================================
95.17 -
95.18 ---- gcc/gcc/config/sh/lib1funcs.asm 2002/09/20 01:29:21 1.29.4.1
95.19 -+++ gcc/gcc/config/sh/lib1funcs.asm 2003/11/18 12:27:31
95.20 -@@ -38,9 +38,14 @@
95.21 - amylaar@cygnus.com */
95.22 -
95.23 - #ifdef __ELF__
95.24 --#define LOCAL(X) .L_##X
95.25 --#else
95.26 --#define LOCAL(X) L_##X
95.27 -+#define LOCAL(X) .L_##X
95.28 -+#define FUNC(X) .type X,@function
95.29 -+#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
95.30 -+#define ENDFUNC(X) ENDFUNC0(X)
95.31 -+#else
95.32 -+#define LOCAL(X) L_##X
95.33 -+#define FUNC(X)
95.34 -+#define ENDFUNC(X)
95.35 - #endif
95.36 -
95.37 - #define CONCAT(A,B) A##B
95.38 -@@ -87,6 +92,40 @@
95.39 - .global GLOBAL(ashiftrt_r4_31)
95.40 - .global GLOBAL(ashiftrt_r4_32)
95.41 -
95.42 -+ FUNC(GLOBAL(ashiftrt_r4_0))
95.43 -+ FUNC(GLOBAL(ashiftrt_r4_1))
95.44 -+ FUNC(GLOBAL(ashiftrt_r4_2))
95.45 -+ FUNC(GLOBAL(ashiftrt_r4_3))
95.46 -+ FUNC(GLOBAL(ashiftrt_r4_4))
95.47 -+ FUNC(GLOBAL(ashiftrt_r4_5))
95.48 -+ FUNC(GLOBAL(ashiftrt_r4_6))
95.49 -+ FUNC(GLOBAL(ashiftrt_r4_7))
95.50 -+ FUNC(GLOBAL(ashiftrt_r4_8))
95.51 -+ FUNC(GLOBAL(ashiftrt_r4_9))
95.52 -+ FUNC(GLOBAL(ashiftrt_r4_10))
95.53 -+ FUNC(GLOBAL(ashiftrt_r4_11))
95.54 -+ FUNC(GLOBAL(ashiftrt_r4_12))
95.55 -+ FUNC(GLOBAL(ashiftrt_r4_13))
95.56 -+ FUNC(GLOBAL(ashiftrt_r4_14))
95.57 -+ FUNC(GLOBAL(ashiftrt_r4_15))
95.58 -+ FUNC(GLOBAL(ashiftrt_r4_16))
95.59 -+ FUNC(GLOBAL(ashiftrt_r4_17))
95.60 -+ FUNC(GLOBAL(ashiftrt_r4_18))
95.61 -+ FUNC(GLOBAL(ashiftrt_r4_19))
95.62 -+ FUNC(GLOBAL(ashiftrt_r4_20))
95.63 -+ FUNC(GLOBAL(ashiftrt_r4_21))
95.64 -+ FUNC(GLOBAL(ashiftrt_r4_22))
95.65 -+ FUNC(GLOBAL(ashiftrt_r4_23))
95.66 -+ FUNC(GLOBAL(ashiftrt_r4_24))
95.67 -+ FUNC(GLOBAL(ashiftrt_r4_25))
95.68 -+ FUNC(GLOBAL(ashiftrt_r4_26))
95.69 -+ FUNC(GLOBAL(ashiftrt_r4_27))
95.70 -+ FUNC(GLOBAL(ashiftrt_r4_28))
95.71 -+ FUNC(GLOBAL(ashiftrt_r4_29))
95.72 -+ FUNC(GLOBAL(ashiftrt_r4_30))
95.73 -+ FUNC(GLOBAL(ashiftrt_r4_31))
95.74 -+ FUNC(GLOBAL(ashiftrt_r4_32))
95.75 -+
95.76 - .align 1
95.77 - GLOBAL(ashiftrt_r4_32):
95.78 - GLOBAL(ashiftrt_r4_31):
95.79 -@@ -166,6 +205,40 @@
95.80 - GLOBAL(ashiftrt_r4_0):
95.81 - rts
95.82 - nop
95.83 -+
95.84 -+ ENDFUNC(GLOBAL(ashiftrt_r4_0))
95.85 -+ ENDFUNC(GLOBAL(ashiftrt_r4_1))
95.86 -+ ENDFUNC(GLOBAL(ashiftrt_r4_2))
95.87 -+ ENDFUNC(GLOBAL(ashiftrt_r4_3))
95.88 -+ ENDFUNC(GLOBAL(ashiftrt_r4_4))
95.89 -+ ENDFUNC(GLOBAL(ashiftrt_r4_5))
95.90 -+ ENDFUNC(GLOBAL(ashiftrt_r4_6))
95.91 -+ ENDFUNC(GLOBAL(ashiftrt_r4_7))
95.92 -+ ENDFUNC(GLOBAL(ashiftrt_r4_8))
95.93 -+ ENDFUNC(GLOBAL(ashiftrt_r4_9))
95.94 -+ ENDFUNC(GLOBAL(ashiftrt_r4_10))
95.95 -+ ENDFUNC(GLOBAL(ashiftrt_r4_11))
95.96 -+ ENDFUNC(GLOBAL(ashiftrt_r4_12))
95.97 -+ ENDFUNC(GLOBAL(ashiftrt_r4_13))
95.98 -+ ENDFUNC(GLOBAL(ashiftrt_r4_14))
95.99 -+ ENDFUNC(GLOBAL(ashiftrt_r4_15))
95.100 -+ ENDFUNC(GLOBAL(ashiftrt_r4_16))
95.101 -+ ENDFUNC(GLOBAL(ashiftrt_r4_17))
95.102 -+ ENDFUNC(GLOBAL(ashiftrt_r4_18))
95.103 -+ ENDFUNC(GLOBAL(ashiftrt_r4_19))
95.104 -+ ENDFUNC(GLOBAL(ashiftrt_r4_20))
95.105 -+ ENDFUNC(GLOBAL(ashiftrt_r4_21))
95.106 -+ ENDFUNC(GLOBAL(ashiftrt_r4_22))
95.107 -+ ENDFUNC(GLOBAL(ashiftrt_r4_23))
95.108 -+ ENDFUNC(GLOBAL(ashiftrt_r4_24))
95.109 -+ ENDFUNC(GLOBAL(ashiftrt_r4_25))
95.110 -+ ENDFUNC(GLOBAL(ashiftrt_r4_26))
95.111 -+ ENDFUNC(GLOBAL(ashiftrt_r4_27))
95.112 -+ ENDFUNC(GLOBAL(ashiftrt_r4_28))
95.113 -+ ENDFUNC(GLOBAL(ashiftrt_r4_29))
95.114 -+ ENDFUNC(GLOBAL(ashiftrt_r4_30))
95.115 -+ ENDFUNC(GLOBAL(ashiftrt_r4_31))
95.116 -+ ENDFUNC(GLOBAL(ashiftrt_r4_32))
95.117 - #endif
95.118 -
95.119 - #ifdef L_ashiftrt_n
95.120 -@@ -188,6 +261,7 @@
95.121 - !
95.122 -
95.123 - .global GLOBAL(ashrsi3)
95.124 -+ FUNC(GLOBAL(ashrsi3))
95.125 - .align 2
95.126 - GLOBAL(ashrsi3):
95.127 - mov #31,r0
95.128 -@@ -315,6 +389,7 @@
95.129 - rts
95.130 - nop
95.131 -
95.132 -+ ENDFUNC(GLOBAL(ashrsi3))
95.133 - #endif
95.134 -
95.135 - #ifdef L_ashiftlt
95.136 -@@ -336,6 +411,7 @@
95.137 - ! (none)
95.138 - !
95.139 - .global GLOBAL(ashlsi3)
95.140 -+ FUNC(GLOBAL(ashlsi3))
95.141 - .align 2
95.142 - GLOBAL(ashlsi3):
95.143 - mov #31,r0
95.144 -@@ -472,6 +548,7 @@
95.145 - rts
95.146 - nop
95.147 -
95.148 -+ ENDFUNC(GLOBAL(ashlsi3))
95.149 - #endif
95.150 -
95.151 - #ifdef L_lshiftrt
95.152 -@@ -493,6 +570,7 @@
95.153 - ! (none)
95.154 - !
95.155 - .global GLOBAL(lshrsi3)
95.156 -+ FUNC(GLOBAL(lshrsi3))
95.157 - .align 2
95.158 - GLOBAL(lshrsi3):
95.159 - mov #31,r0
95.160 -@@ -629,6 +707,7 @@
95.161 - rts
95.162 - nop
95.163 -
95.164 -+ ENDFUNC(GLOBAL(lshrsi3))
95.165 - #endif
95.166 -
95.167 - #ifdef L_movstr
95.168 -@@ -645,76 +724,113 @@
95.169 - add #64,r4
95.170 - .align 4
95.171 - .global GLOBAL(movstrSI64)
95.172 -+ FUNC(GLOBAL(movstrSI64))
95.173 - GLOBAL(movstrSI64):
95.174 - mov.l @(60,r5),r0
95.175 - mov.l r0,@(60,r4)
95.176 - .global GLOBAL(movstrSI60)
95.177 -+ FUNC(GLOBAL(movstrSI60))
95.178 - GLOBAL(movstrSI60):
95.179 - mov.l @(56,r5),r0
95.180 - mov.l r0,@(56,r4)
95.181 - .global GLOBAL(movstrSI56)
95.182 -+ FUNC(GLOBAL(movstrSI56))
95.183 - GLOBAL(movstrSI56):
95.184 - mov.l @(52,r5),r0
95.185 - mov.l r0,@(52,r4)
95.186 - .global GLOBAL(movstrSI52)
95.187 -+ FUNC(GLOBAL(movstrSI52))
95.188 - GLOBAL(movstrSI52):
95.189 - mov.l @(48,r5),r0
95.190 - mov.l r0,@(48,r4)
95.191 - .global GLOBAL(movstrSI48)
95.192 -+ FUNC(GLOBAL(movstrSI48))
95.193 - GLOBAL(movstrSI48):
95.194 - mov.l @(44,r5),r0
95.195 - mov.l r0,@(44,r4)
95.196 - .global GLOBAL(movstrSI44)
95.197 -+ FUNC(GLOBAL(movstrSI44))
95.198 - GLOBAL(movstrSI44):
95.199 - mov.l @(40,r5),r0
95.200 - mov.l r0,@(40,r4)
95.201 - .global GLOBAL(movstrSI40)
95.202 -+ FUNC(GLOBAL(movstrSI40))
95.203 - GLOBAL(movstrSI40):
95.204 - mov.l @(36,r5),r0
95.205 - mov.l r0,@(36,r4)
95.206 - .global GLOBAL(movstrSI36)
95.207 -+ FUNC(GLOBAL(movstrSI36))
95.208 - GLOBAL(movstrSI36):
95.209 - mov.l @(32,r5),r0
95.210 - mov.l r0,@(32,r4)
95.211 - .global GLOBAL(movstrSI32)
95.212 -+ FUNC(GLOBAL(movstrSI32))
95.213 - GLOBAL(movstrSI32):
95.214 - mov.l @(28,r5),r0
95.215 - mov.l r0,@(28,r4)
95.216 - .global GLOBAL(movstrSI28)
95.217 -+ FUNC(GLOBAL(movstrSI28))
95.218 - GLOBAL(movstrSI28):
95.219 - mov.l @(24,r5),r0
95.220 - mov.l r0,@(24,r4)
95.221 - .global GLOBAL(movstrSI24)
95.222 -+ FUNC(GLOBAL(movstrSI24))
95.223 - GLOBAL(movstrSI24):
95.224 - mov.l @(20,r5),r0
95.225 - mov.l r0,@(20,r4)
95.226 - .global GLOBAL(movstrSI20)
95.227 -+ FUNC(GLOBAL(movstrSI20))
95.228 - GLOBAL(movstrSI20):
95.229 - mov.l @(16,r5),r0
95.230 - mov.l r0,@(16,r4)
95.231 - .global GLOBAL(movstrSI16)
95.232 -+ FUNC(GLOBAL(movstrSI16))
95.233 - GLOBAL(movstrSI16):
95.234 - mov.l @(12,r5),r0
95.235 - mov.l r0,@(12,r4)
95.236 - .global GLOBAL(movstrSI12)
95.237 -+ FUNC(GLOBAL(movstrSI12))
95.238 - GLOBAL(movstrSI12):
95.239 - mov.l @(8,r5),r0
95.240 - mov.l r0,@(8,r4)
95.241 - .global GLOBAL(movstrSI8)
95.242 -+ FUNC(GLOBAL(movstrSI8))
95.243 - GLOBAL(movstrSI8):
95.244 - mov.l @(4,r5),r0
95.245 - mov.l r0,@(4,r4)
95.246 - .global GLOBAL(movstrSI4)
95.247 -+ FUNC(GLOBAL(movstrSI4))
95.248 - GLOBAL(movstrSI4):
95.249 - mov.l @(0,r5),r0
95.250 - mov.l r0,@(0,r4)
95.251 -+ .global GLOBAL(movstrSI0)
95.252 -+ FUNC(GLOBAL(movstrSI0))
95.253 - GLOBAL(movstrSI0):
95.254 - rts
95.255 - nop
95.256 -
95.257 -+ ENDFUNC(GLOBAL(movstrSI64))
95.258 -+ ENDFUNC(GLOBAL(movstrSI60))
95.259 -+ ENDFUNC(GLOBAL(movstrSI56))
95.260 -+ ENDFUNC(GLOBAL(movstrSI52))
95.261 -+ ENDFUNC(GLOBAL(movstrSI48))
95.262 -+ ENDFUNC(GLOBAL(movstrSI44))
95.263 -+ ENDFUNC(GLOBAL(movstrSI40))
95.264 -+ ENDFUNC(GLOBAL(movstrSI36))
95.265 -+ ENDFUNC(GLOBAL(movstrSI32))
95.266 -+ ENDFUNC(GLOBAL(movstrSI28))
95.267 -+ ENDFUNC(GLOBAL(movstrSI24))
95.268 -+ ENDFUNC(GLOBAL(movstrSI20))
95.269 -+ ENDFUNC(GLOBAL(movstrSI16))
95.270 -+ ENDFUNC(GLOBAL(movstrSI12))
95.271 -+ ENDFUNC(GLOBAL(movstrSI8))
95.272 -+ ENDFUNC(GLOBAL(movstrSI4))
95.273 -+ ENDFUNC(GLOBAL(movstrSI0))
95.274 -+
95.275 - .align 4
95.276 -
95.277 - .global GLOBAL(movstr)
95.278 -+ FUNC(GLOBAL(movstr))
95.279 - GLOBAL(movstr):
95.280 - mov.l @(60,r5),r0
95.281 - mov.l r0,@(60,r4)
95.282 -@@ -771,6 +887,8 @@
95.283 - add #64,r5
95.284 - bra GLOBAL(movstr)
95.285 - add #64,r4
95.286 -+
95.287 -+ FUNC(GLOBAL(movstr))
95.288 - #endif
95.289 -
95.290 - #ifdef L_movstr_i4
95.291 -@@ -779,6 +897,10 @@
95.292 - .global GLOBAL(movstr_i4_odd)
95.293 - .global GLOBAL(movstrSI12_i4)
95.294 -
95.295 -+ FUNC(GLOBAL(movstr_i4_even))
95.296 -+ FUNC(GLOBAL(movstr_i4_odd))
95.297 -+ FUNC(GLOBAL(movstrSI12_i4))
95.298 -+
95.299 - .p2align 5
95.300 - L_movstr_2mod4_end:
95.301 - mov.l r0,@(16,r4)
95.302 -@@ -787,6 +909,11 @@
95.303 -
95.304 - .p2align 2
95.305 -
95.306 -+GLOBAL(movstr_i4_even):
95.307 -+ mov.l @r5+,r0
95.308 -+ bra L_movstr_start_even
95.309 -+ mov.l @r5+,r1
95.310 -+
95.311 - GLOBAL(movstr_i4_odd):
95.312 - mov.l @r5+,r1
95.313 - add #-4,r4
95.314 -@@ -813,10 +940,8 @@
95.315 - rts
95.316 - mov.l r3,@(12,r4)
95.317 -
95.318 --GLOBAL(movstr_i4_even):
95.319 -- mov.l @r5+,r0
95.320 -- bra L_movstr_start_even
95.321 -- mov.l @r5+,r1
95.322 -+ ENDFUNC(GLOBAL(movstr_i4_even))
95.323 -+ ENDFUNC(GLOBAL(movstr_i4_odd))
95.324 -
95.325 - .p2align 4
95.326 - GLOBAL(movstrSI12_i4):
95.327 -@@ -827,12 +952,15 @@
95.328 - mov.l r1,@(4,r4)
95.329 - rts
95.330 - mov.l r2,@(8,r4)
95.331 -+
95.332 -+ ENDFUNC(GLOBAL(movstrSI12_i4))
95.333 - #endif
95.334 -
95.335 - #ifdef L_mulsi3
95.336 -
95.337 -
95.338 - .global GLOBAL(mulsi3)
95.339 -+ FUNC(GLOBAL(mulsi3))
95.340 -
95.341 - ! r4 = aabb
95.342 - ! r5 = ccdd
95.343 -@@ -865,7 +993,7 @@
95.344 - rts
95.345 - add r2,r0
95.346 -
95.347 --
95.348 -+ FUNC(GLOBAL(mulsi3))
95.349 - #endif
95.350 - #endif /* ! __SH5__ */
95.351 - #ifdef L_sdivsi3_i4
95.352 -@@ -875,6 +1003,7 @@
95.353 - !! args in r4 and r5, result in fpul, clobber dr0, dr2
95.354 -
95.355 - .global GLOBAL(sdivsi3_i4)
95.356 -+ FUNC(GLOBAL(sdivsi3_i4))
95.357 - GLOBAL(sdivsi3_i4):
95.358 - lds r4,fpul
95.359 - float fpul,dr0
95.360 -@@ -884,6 +1013,7 @@
95.361 - rts
95.362 - ftrc dr0,fpul
95.363 -
95.364 -+ ENDFUNC(GLOBAL(sdivsi3_i4))
95.365 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
95.366 - !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
95.367 -
95.368 -@@ -892,6 +1022,7 @@
95.369 - .mode SHcompact
95.370 - #endif
95.371 - .global GLOBAL(sdivsi3_i4)
95.372 -+ FUNC(GLOBAL(sdivsi3_i4))
95.373 - GLOBAL(sdivsi3_i4):
95.374 - sts.l fpscr,@-r15
95.375 - mov #8,r2
95.376 -@@ -906,6 +1037,7 @@
95.377 - rts
95.378 - lds.l @r15+,fpscr
95.379 -
95.380 -+ ENDFUNC(GLOBAL(sdivsi3_i4))
95.381 - #endif /* ! __SH5__ || __SH5__ == 32 */
95.382 - #endif /* ! __SH4__ */
95.383 - #endif
95.384 -@@ -920,9 +1052,10 @@
95.385 - !!
95.386 - !!
95.387 -
95.388 --!! args in r4 and r5, result in r0 clobber r1,r2,r3
95.389 -+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
95.390 -
95.391 - .global GLOBAL(sdivsi3)
95.392 -+ FUNC(GLOBAL(sdivsi3))
95.393 - #if __SHMEDIA__
95.394 - #if __SH5__ == 32
95.395 - .section .text..SHmedia32,"ax"
95.396 -@@ -1166,6 +1299,7 @@
95.397 - div0: rts
95.398 - mov #0,r0
95.399 -
95.400 -+ ENDFUNC(GLOBAL(sdivsi3))
95.401 - #endif /* ! __SHMEDIA__ */
95.402 - #endif /* ! __SH4__ */
95.403 - #endif
95.404 -@@ -1174,9 +1308,11 @@
95.405 - .title "SH DIVIDE"
95.406 - !! 4 byte integer Divide code for the Hitachi SH
95.407 - #ifdef __SH4__
95.408 --!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
95.409 -+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
95.410 -+!! and t bit
95.411 -
95.412 - .global GLOBAL(udivsi3_i4)
95.413 -+ FUNC(GLOBAL(udivsi3_i4))
95.414 - GLOBAL(udivsi3_i4):
95.415 - mov #1,r1
95.416 - cmp/hi r1,r5
95.417 -@@ -1217,11 +1353,13 @@
95.418 - L1:
95.419 - .double 2147483648
95.420 -
95.421 -+ ENDFUNC(GLOBAL(udivsi3_i4))
95.422 - #elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
95.423 - #if ! __SH5__ || __SH5__ == 32
95.424 - !! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
95.425 - .mode SHmedia
95.426 - .global GLOBAL(udivsi3_i4)
95.427 -+ FUNC(GLOBAL(udivsi3_i4))
95.428 - GLOBAL(udivsi3_i4):
95.429 - addz.l r4,r63,r20
95.430 - addz.l r5,r63,r21
95.431 -@@ -1234,6 +1372,8 @@
95.432 - ftrc.dq dr0,dr32
95.433 - fmov.s fr33,fr32
95.434 - blink tr0,r63
95.435 -+
95.436 -+ ENDFUNC(GLOBAL(udivsi3_i4))
95.437 - #endif /* ! __SH5__ || __SH5__ == 32 */
95.438 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
95.439 - !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
95.440 -@@ -1287,6 +1427,7 @@
95.441 - #endif
95.442 - .double 2147483648
95.443 -
95.444 -+ ENDFUNC(GLOBAL(udivsi3_i4))
95.445 - #endif /* ! __SH4__ */
95.446 - #endif
95.447 -
95.448 -@@ -1297,6 +1438,7 @@
95.449 -
95.450 - !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
95.451 - .global GLOBAL(udivsi3)
95.452 -+ FUNC(GLOBAL(udivsi3))
95.453 -
95.454 - #if __SHMEDIA__
95.455 - #if __SH5__ == 32
95.456 -@@ -1485,6 +1627,7 @@
95.457 - rts
95.458 - rotcl r0
95.459 -
95.460 -+ ENDFUNC(GLOBAL(udivsi3))
95.461 - #endif /* ! __SHMEDIA__ */
95.462 - #endif /* __SH4__ */
95.463 - #endif /* L_udivsi3 */
95.464 -@@ -1790,6 +1933,7 @@
95.465 - .mode SHcompact
95.466 - #endif
95.467 - .global GLOBAL(set_fpscr)
95.468 -+ FUNC(GLOBAL(set_fpscr))
95.469 - GLOBAL(set_fpscr):
95.470 - lds r4,fpscr
95.471 - mov.l LOCAL(set_fpscr_L1),r1
95.472 -@@ -1822,6 +1966,8 @@
95.473 - .align 2
95.474 - LOCAL(set_fpscr_L1):
95.475 - .long GLOBAL(fpscr_values)
95.476 -+
95.477 -+ ENDFUNC(GLOBAL(set_fpscr))
95.478 - #ifdef __ELF__
95.479 - .comm GLOBAL(fpscr_values),8,4
95.480 - #else
95.481 -@@ -1860,6 +2006,7 @@
95.482 - blink tr0, r63
95.483 - #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
95.484 - .global GLOBAL(ic_invalidate)
95.485 -+ FUNC(GLOBAL(ic_invalidate))
95.486 - GLOBAL(ic_invalidate):
95.487 - ocbwb @r4
95.488 - mova 0f,r0
95.489 -@@ -1882,6 +2029,8 @@
95.490 - nop
95.491 - .endr
95.492 - .endr
95.493 -+
95.494 -+ ENDFUNC(GLOBAL(ic_invalidate))
95.495 - #endif /* SH4 */
95.496 - #endif /* L_ic_invalidate */
95.497 -
95.498 -@@ -1940,6 +2089,7 @@
95.499 - will be expanded into r2/r3 upon return. */
95.500 -
95.501 - .global GLOBAL(GCC_shcompact_call_trampoline)
95.502 -+ FUNC(GLOBAL(GCC_shcompact_call_trampoline))
95.503 - GLOBAL(GCC_shcompact_call_trampoline):
95.504 - ptabs/l r0, tr0 /* Prepare to call the actual function. */
95.505 - movi ((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
95.506 -@@ -2290,6 +2440,8 @@
95.507 - shari r2, 32, r2
95.508 - #endif
95.509 - blink tr0, r63
95.510 -+
95.511 -+ ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
95.512 - #endif /* L_shcompact_call_trampoline */
95.513 -
95.514 - #ifdef L_shcompact_return_trampoline
95.515 -@@ -2302,6 +2454,7 @@
95.516 - .section .text..SHmedia32, "ax"
95.517 - .align 2
95.518 - .global GLOBAL(GCC_shcompact_return_trampoline)
95.519 -+ FUNC(GLOBAL(GCC_shcompact_return_trampoline))
95.520 - GLOBAL(GCC_shcompact_return_trampoline):
95.521 - ptabs/l r18, tr0
95.522 - #if __LITTLE_ENDIAN__
95.523 -@@ -2313,6 +2466,8 @@
95.524 - #endif
95.525 - or r3, r2, r2
95.526 - blink tr0, r63
95.527 -+
95.528 -+ ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
95.529 - #endif /* L_shcompact_return_trampoline */
95.530 -
95.531 - #ifdef L_shcompact_incoming_args
95.532 -@@ -2367,6 +2522,7 @@
95.533 - actual bit pattern. */
95.534 -
95.535 - .global GLOBAL(GCC_shcompact_incoming_args)
95.536 -+ FUNC(GLOBAL(GCC_shcompact_incoming_args))
95.537 - GLOBAL(GCC_shcompact_incoming_args):
95.538 - ptabs/l r18, tr0 /* Prepare to return. */
95.539 - shlri r17, 32, r0 /* Load the cookie. */
95.540 -@@ -2519,6 +2675,7 @@
95.541 - LOCAL(ia_return): /* Return. */
95.542 - blink tr0, r63
95.543 - LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction. */
95.544 -+ ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
95.545 - #endif /* L_shcompact_incoming_args */
95.546 - #endif
95.547 - #if __SH5__
95.548 -@@ -2530,6 +2687,7 @@
95.549 - #endif
95.550 - .align 3 /* It is copied in units of 8 bytes in SHmedia mode. */
95.551 - .global GLOBAL(GCC_nested_trampoline)
95.552 -+ FUNC(GLOBAL(GCC_nested_trampoline))
95.553 - GLOBAL(GCC_nested_trampoline):
95.554 - .mode SHmedia
95.555 - ptrel/u r63, tr0
95.556 -@@ -2546,6 +2704,8 @@
95.557 - ld.l r0, 28, r1
95.558 - #endif
95.559 - blink tr1, r63
95.560 -+
95.561 -+ ENDFUNC(GLOBAL(GCC_nested_trampoline))
95.562 - #endif /* L_nested_trampoline */
95.563 - #endif /* __SH5__ */
95.564 - #if __SH5__ == 32
95.565 -@@ -2555,6 +2715,7 @@
95.566 - .align 2
95.567 - #ifndef __SH4_NOFPU__
95.568 - .global GLOBAL(GCC_push_shmedia_regs)
95.569 -+ FUNC(GLOBAL(GCC_push_shmedia_regs))
95.570 - GLOBAL(GCC_push_shmedia_regs):
95.571 - addi.l r15, -14*8, r15
95.572 - fst.d r15, 13*8, dr62
95.573 -@@ -2573,6 +2734,7 @@
95.574 - fst.d r15, 0*8, dr36
95.575 - #endif
95.576 - .global GLOBAL(GCC_push_shmedia_regs_nofpu)
95.577 -+ FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
95.578 - GLOBAL(GCC_push_shmedia_regs_nofpu):
95.579 - ptabs/l r18, tr0
95.580 - addi.l r15, -27*8, r15
95.581 -@@ -2608,8 +2770,13 @@
95.582 - st.q r15, 0*8, r28
95.583 - blink tr0, r63
95.584 -
95.585 -+#ifndef __SH4_NOFPU__
95.586 -+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
95.587 -+#endif
95.588 -+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
95.589 - #ifndef __SH4_NOFPU__
95.590 - .global GLOBAL(GCC_pop_shmedia_regs)
95.591 -+ FUNC(GLOBAL(GCC_pop_shmedia_regs))
95.592 - GLOBAL(GCC_pop_shmedia_regs):
95.593 - pt .L0, tr1
95.594 - movi 41*8, r0
95.595 -@@ -2630,6 +2797,7 @@
95.596 - blink tr1, r63
95.597 - #endif
95.598 - .global GLOBAL(GCC_pop_shmedia_regs_nofpu)
95.599 -+ FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
95.600 - GLOBAL(GCC_pop_shmedia_regs_nofpu):
95.601 - movi 27*8, r0
95.602 - .L0:
95.603 -@@ -2666,5 +2834,10 @@
95.604 - ld.q r15, 0*8, r28
95.605 - add.l r15, r0, r15
95.606 - blink tr0, r63
95.607 -+
95.608 -+#ifndef __SH4_NOFPU__
95.609 -+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
95.610 -+#endif
95.611 -+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
95.612 - #endif /* __SH5__ == 32 */
95.613 - #endif /* L_push_pop_shmedia_regs */
96.1 --- a/patches/gcc/3.3.3/sh-pic-set_fpscr-gcc-3.3.2.patch Tue Aug 14 19:32:22 2007 +0000
96.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
96.3 @@ -1,67 +0,0 @@
96.4 -See http://gcc.gnu.org/PR11901
96.5 -Should fix
96.6 -make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
96.7 -in glibc's "make tests".
96.8 -
96.9 -Note: this patch is named
96.10 -sh-pic-set_fpscr-gcc-3.3.2.patch
96.11 -and must be applied after
96.12 -sh-lib1funcs_sizeAndType.patch
96.13 -but that'll happen naturally if you apply them in alphabetical order.
96.14 -
96.15 --------------
96.16 -
96.17 -Date: Wed, 30 Jul 2003 12:03:01 +0900
96.18 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
96.19 -Subject: [linux-sh:02916] Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
96.20 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
96.21 -To: dank@kegel.com
96.22 -Cc: linux-sh@m17n.org
96.23 -Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
96.24 -
96.25 -> I'll try to write the PIC version of it,
96.26 -
96.27 -Dan, does the attached patch work for you?
96.28 -
96.29 -Regards,
96.30 - kaz
96.31 ---
96.32 -diff -u3prN ORIG/gcc/gcc/config/sh/lib1funcs.asm LOCAL/gcc/gcc/config/sh/lib1funcs.asm
96.33 ---- ORIG/gcc/gcc/config/sh/lib1funcs.asm Thu Jun 19 07:38:59 2003
96.34 -+++ gcc-3.3.2/gcc/config/sh/lib1funcs.asm Wed Jul 30 11:08:49 2003
96.35 -@@ -1936,7 +1944,17 @@ GLOBAL(moddi3):
96.36 - FUNC(GLOBAL(set_fpscr))
96.37 - GLOBAL(set_fpscr):
96.38 - lds r4,fpscr
96.39 -+#ifdef __PIC__
96.40 -+ mov.l r12,@-r15
96.41 -+ mova LOCAL(set_fpscr_L0),r0
96.42 -+ mov.l LOCAL(set_fpscr_L0),r12
96.43 -+ add r0,r12
96.44 -+ mov.l LOCAL(set_fpscr_L1),r0
96.45 -+ mov.l @(r0,r12),r1
96.46 -+ mov.l @r15+,r12
96.47 -+#else
96.48 - mov.l LOCAL(set_fpscr_L1),r1
96.49 -+#endif
96.50 - swap.w r4,r0
96.51 - or #24,r0
96.52 - #ifndef FMOVD_WORKS
96.53 -@@ -1964,8 +1982,15 @@ GLOBAL(set_fpscr):
96.54 - mov.l r3,@(4,r1)
96.55 - #endif
96.56 - .align 2
96.57 -+#ifdef __PIC__
96.58 -+LOCAL(set_fpscr_L0):
96.59 -+ .long _GLOBAL_OFFSET_TABLE_
96.60 -+LOCAL(set_fpscr_L1):
96.61 -+ .long GLOBAL(fpscr_values@GOT)
96.62 -+#else
96.63 - LOCAL(set_fpscr_L1):
96.64 - .long GLOBAL(fpscr_values)
96.65 -+#endif
96.66 -
96.67 - ENDFUNC(GLOBAL(set_fpscr))
96.68 - #ifndef NO_FPSCR_VALUES
96.69 -
96.70 -
97.1 --- a/patches/gcc/3.3.3/thunk3.patch Tue Aug 14 19:32:22 2007 +0000
97.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
97.3 @@ -1,23 +0,0 @@
97.4 -Fixes
97.5 -FAIL: g++.jason/thunk3.C (test for excess errors)
97.6 -on sh4-unknown-linux-gnu.
97.7 -
97.8 -Does any sh variant *not* use the generic thunk support? If so, the patch should be
97.9 -more cautious. As it is, it excludes all sh processors from this test.
97.10 -
97.11 -Index: thunk3.C
97.12 -===================================================================
97.13 -RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
97.14 -retrieving revision 1.13
97.15 -diff -u -d -u -r1.13 thunk3.C
97.16 ---- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old 25 Mar 2002 17:57:03 -0000 1.13
97.17 -+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C 20 Jul 2003 16:57:38 -0000
97.18 -@@ -2,7 +2,7 @@
97.19 - // Note that this will break on any target that uses the generic thunk
97.20 - // support, because it doesn't support variadic functions.
97.21 -
97.22 --// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
97.23 -+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
97.24 -
97.25 - #include <stdarg.h>
97.26 -
98.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
98.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
98.3 @@ -1,62 +0,0 @@
98.4 -diff -urN gcc-3.3.4.orig/gcc/config/arm/linux-elf.h gcc-3.3.4/gcc/config/arm/linux-elf.h
98.5 ---- gcc-3.3.4.orig/gcc/config/arm/linux-elf.h 2004-03-30 22:43:45.000000000 +0200
98.6 -+++ gcc-3.3.4/gcc/config/arm/linux-elf.h 2004-08-20 02:13:02.969084177 +0200
98.7 -@@ -30,17 +30,31 @@
98.8 - /* Do not assume anything about header files. */
98.9 - #define NO_IMPLICIT_EXTERN_C
98.10 -
98.11 -+/*
98.12 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
98.13 -+ * (big endian) configurations.
98.14 -+ */
98.15 -+#if TARGET_BIG_ENDIAN_DEFAULT
98.16 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
98.17 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
98.18 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
98.19 -+#else
98.20 -+#define TARGET_ENDIAN_DEFAULT 0
98.21 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
98.22 -+#define TARGET_LINKER_EMULATION "armelf_linux"
98.23 -+#endif
98.24 -+
98.25 - /* Default is to use APCS-32 mode. */
98.26 - #undef TARGET_DEFAULT
98.27 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
98.28 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
98.29 -
98.30 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
98.31 -
98.32 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
98.33 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
98.34 -
98.35 - #undef MULTILIB_DEFAULTS
98.36 - #define MULTILIB_DEFAULTS \
98.37 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
98.38 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
98.39 -
98.40 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
98.41 -
98.42 -@@ -88,7 +102,7 @@
98.43 - %{rdynamic:-export-dynamic} \
98.44 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
98.45 - -X \
98.46 -- %{mbig-endian:-EB}" \
98.47 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
98.48 - SUBTARGET_EXTRA_LINK_SPEC
98.49 -
98.50 - #define TARGET_OS_CPP_BUILTINS() \
98.51 -diff -urN gcc-3.3.4.orig/gcc/config.gcc gcc-3.3.4/gcc/config.gcc
98.52 ---- gcc-3.3.4.orig/gcc/config.gcc 2004-04-29 06:42:47.000000000 +0200
98.53 -+++ gcc-3.3.4/gcc/config.gcc 2004-08-20 02:11:04.326143343 +0200
98.54 -@@ -699,6 +699,11 @@
98.55 - ;;
98.56 - arm*-*-linux*) # ARM GNU/Linux with ELF
98.57 - tm_file="dbxelf.h elfos.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
98.58 -+ case $machine in
98.59 -+ arm*b-*)
98.60 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
98.61 -+ ;;
98.62 -+ esac
98.63 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
98.64 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
98.65 - gnu_ld=yes
99.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-arm-pr22528.patch Tue Aug 14 19:32:22 2007 +0000
99.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
99.3 @@ -1,71 +0,0 @@
99.4 -From http://gcc.gnu.org/ml/gcc-patches/2003-11/msg00832.html, by
99.5 -Richard Earnshaw. Fixes http://gcc.gnu.org/PR22528
99.6 -
99.7 ---- gcc-3.3.4/gcc/config/arm/arm.md.orig 2004-03-30 22:43:44.000000000 +0200
99.8 -+++ gcc-3.3.4/gcc/config/arm/arm.md 2005-08-15 12:21:55.000000000 +0200
99.9 -@@ -4275,7 +4275,7 @@
99.10 - (set (match_dup 2)
99.11 - (ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
99.12 - ;; store the high byte
99.13 -- (set (match_dup 4) (subreg:QI (match_dup 2) 0))] ;explicit subreg safe
99.14 -+ (set (match_dup 4) (match_dup 5))]
99.15 - "TARGET_ARM"
99.16 - "
99.17 - {
99.18 -@@ -4291,7 +4291,8 @@
99.19 - operands[1] = adjust_address (operands[1], QImode, 0);
99.20 - operands[3] = gen_lowpart (QImode, operands[0]);
99.21 - operands[0] = gen_lowpart (SImode, operands[0]);
99.22 -- operands[2] = gen_reg_rtx (SImode);
99.23 -+ operands[2] = gen_reg_rtx (SImode);
99.24 -+ operands[5] = gen_lowpart (QImode, operands[2]);
99.25 - }"
99.26 - )
99.27 -
99.28 -@@ -4299,7 +4300,7 @@
99.29 - [(set (match_dup 4) (match_dup 3))
99.30 - (set (match_dup 2)
99.31 - (ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
99.32 -- (set (match_operand 1 "" "") (subreg:QI (match_dup 2) 3))]
99.33 -+ (set (match_operand 1 "" "") (match_dup 5))]
99.34 - "TARGET_ARM"
99.35 - "
99.36 - {
99.37 -@@ -4316,13 +4317,14 @@
99.38 - operands[3] = gen_lowpart (QImode, operands[0]);
99.39 - operands[0] = gen_lowpart (SImode, operands[0]);
99.40 - operands[2] = gen_reg_rtx (SImode);
99.41 -+ operands[5] = gen_lowpart (QImode, operands[2]);
99.42 - }"
99.43 - )
99.44 -
99.45 - ;; Subroutine to store a half word integer constant into memory.
99.46 - (define_expand "storeinthi"
99.47 - [(set (match_operand 0 "" "")
99.48 -- (subreg:QI (match_operand 1 "" "") 0))
99.49 -+ (match_operand 1 "" ""))
99.50 - (set (match_dup 3) (match_dup 2))]
99.51 - "TARGET_ARM"
99.52 - "
99.53 -@@ -4363,6 +4365,7 @@
99.54 - operands[3] = adjust_address (op0, QImode, 1);
99.55 - operands[0] = adjust_address (operands[0], QImode, 0);
99.56 - operands[2] = gen_lowpart (QImode, operands[2]);
99.57 -+ operands[1] = gen_lowpart (QImode, operands[1]);
99.58 - }"
99.59 - )
99.60 -
99.61 -@@ -4682,11 +4685,12 @@
99.62 - (set (match_dup 3)
99.63 - (ashiftrt:SI (match_dup 2) (const_int 16)))
99.64 - (set (match_operand:HI 0 "s_register_operand" "")
99.65 -- (subreg:HI (match_dup 3) 0))]
99.66 -+ (match_dup 4))]
99.67 - "TARGET_ARM"
99.68 - "
99.69 - operands[2] = gen_reg_rtx (SImode);
99.70 - operands[3] = gen_reg_rtx (SImode);
99.71 -+ operands[4] = gen_lowpart (HImode, operands[3]);
99.72 - "
99.73 - )
99.74 -
100.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-libstdcxx-sh.patch Tue Aug 14 19:32:22 2007 +0000
100.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
100.3 @@ -1,38 +0,0 @@
100.4 -Date: Tue, 06 Jul 2004 10:40:57 +0900 (JST)
100.5 -Message-Id: <20040706.104057.48529182.kkojima@rr.iij4u.or.jp>
100.6 -To: dank@kegel.com
100.7 -Cc: linux-sh@m17n.org, linuxsh-dev@lists.sourceforge.net
100.8 -Subject: gcc-3.4.1 (Was: The current kernel for a Jornada 680 SH3)
100.9 -From: Kaz Kojima <kkojima@rr.iij4u.or.jp>
100.10 -In-Reply-To: <20040529.175014.48668611.kkojima@rr.iij4u.or.jp>
100.11 -References: <20040528.125858.50336810.kkojima@rr.iij4u.or.jp>
100.12 - <40B8205D.8030200@kegel.com>
100.13 - <20040529.175014.48668611.kkojima@rr.iij4u.or.jp>
100.14 -
100.15 -Hi,
100.16 -
100.17 -...
100.18 -
100.19 -BTW, gcc-3.3.4 was also released and there is a bad news :-( Someone
100.20 -reverted wrongly a configury patch against libstdc++ for sh-linux at
100.21 -the last moment. We have to regenerate gcc-3.3.4/libstdc++-v3/configure
100.22 -with autoconf 2.13 or apply the one-line patch below manually:
100.23 -
100.24 ---- gcc-3.3.4-orig/libstdc++-v3/configure 2004-06-01 09:45:44.000000000 +0900
100.25 -+++ gcc-3.3.4/libstdc++-v3/configure 2004-06-29 22:38:05.000000000 +0900
100.26 -@@ -2009,7 +2009,7 @@ irix5* | irix6*)
100.27 - # This must be Linux ELF.
100.28 - linux-gnu*)
100.29 - case $host_cpu in
100.30 -- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
100.31 -+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
100.32 - lt_cv_deplibs_check_method=pass_all ;;
100.33 - *)
100.34 - # glibc up to 2.1.1 does not perform some relocations on ARM
100.35 -
100.36 -
100.37 -Regards,
100.38 - kaz
100.39 -
100.40 -
100.41 -
101.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-ppc-asm-spec.patch Tue Aug 14 19:32:22 2007 +0000
101.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
101.3 @@ -1,86 +0,0 @@
101.4 -Based on gcc-3.4.0/gcc-3.3.3h-ppc-asm-spec.patch
101.5 -
101.6 -Fixes the following errors when building gcc for ppc7450:
101.7 -
101.8 -/tmp/ccj38uQs.s: Assembler messages:
101.9 -/tmp/ccj38uQs.s:4370: Error: Unrecognized opcode: `mfvrsave'
101.10 -/tmp/ccj38uQs.s:4404: Error: Unrecognized opcode: `stvx'
101.11 -/tmp/ccj38uQs.s:4571: Error: Unrecognized opcode: `lvx'
101.12 -/tmp/ccj38uQs.s:4572: Error: Unrecognized opcode: `mtvrsave'
101.13 -make[2]: *** [libgcc/./unwind-dw2.o] Error 1
101.14 -make[2]: Leaving directory `/opt/crosstool-0.28-rc35/build/powerpc-7450-linux-gnu/gcc-3.3.4-glibc-2.3.2/build-gcc-core/gcc'
101.15 -make[1]: *** [stmp-multilib] Error 2
101.16 -make[1]: Leaving directory `/opt/crosstool-0.28-rc35/build/powerpc-7450-linux-gnu/gcc-3.3.4-glibc-2.3.2/build-gcc-core/gcc'
101.17 -make: *** [all-gcc] Error 2
101.18 -
101.19 -Note that the "-mcpu=7450" option must appear on the "gcc" command line in
101.20 -order for "-maltivec" to be passed to the assembler. Or, "-maltivec" itself
101.21 -may be passed to the "gcc" command.
101.22 -
101.23 -Contributed by Tom Warzeka <waz@quahog.npt.nuwc.navy.mil>
101.24 -
101.25 -===================================================================
101.26 ---- gcc-3.3.4/gcc/config/rs6000/rs6000.h~ 2004-02-01 23:40:49.000000000 -0500
101.27 -+++ gcc-3.3.4/gcc/config/rs6000/rs6000.h 2004-08-18 14:15:57.000000000 -0400
101.28 -@@ -52,23 +52,29 @@
101.29 - "%{!mcpu*: \
101.30 - %{mpower: %{!mpower2: -mpwr}} \
101.31 - %{mpower2: -mpwrx} \
101.32 -- %{mpowerpc*: -mppc} \
101.33 -+ %{mpowerpc64*: -mppc64} \
101.34 -+ %{!mpowerpc64*: %{mpowerpc*: -mppc}} \
101.35 - %{mno-power: %{!mpowerpc*: -mcom}} \
101.36 -- %{!mno-power: %{!mpower2: %(asm_default)}}} \
101.37 -+ %{!mno-power: %{!mpower*: %(asm_default)}}} \
101.38 - %{mcpu=common: -mcom} \
101.39 - %{mcpu=power: -mpwr} \
101.40 - %{mcpu=power2: -mpwrx} \
101.41 --%{mcpu=power3: -m604} \
101.42 -+%{mcpu=power3: -mppc64} \
101.43 - %{mcpu=power4: -mpower4} \
101.44 -+%{mcpu=power5: -mpower4} \
101.45 - %{mcpu=powerpc: -mppc} \
101.46 - %{mcpu=rios: -mpwr} \
101.47 - %{mcpu=rios1: -mpwr} \
101.48 - %{mcpu=rios2: -mpwrx} \
101.49 - %{mcpu=rsc: -mpwr} \
101.50 - %{mcpu=rsc1: -mpwr} \
101.51 -+%{mcpu=rs64a: -mppc64} \
101.52 - %{mcpu=401: -mppc} \
101.53 - %{mcpu=403: -m403} \
101.54 - %{mcpu=405: -m405} \
101.55 -+%{mcpu=405fp: -m405} \
101.56 -+%{mcpu=440: -m440} \
101.57 -+%{mcpu=440fp: -m440} \
101.58 - %{mcpu=505: -mppc} \
101.59 - %{mcpu=601: -m601} \
101.60 - %{mcpu=602: -mppc} \
101.61 -@@ -77,18 +83,23 @@
101.62 - %{mcpu=ec603e: -mppc} \
101.63 - %{mcpu=604: -mppc} \
101.64 - %{mcpu=604e: -mppc} \
101.65 --%{mcpu=620: -mppc} \
101.66 --%{mcpu=630: -m604} \
101.67 -+%{mcpu=620: -mppc64} \
101.68 -+%{mcpu=630: -mppc64} \
101.69 - %{mcpu=740: -mppc} \
101.70 --%{mcpu=7400: -mppc} \
101.71 --%{mcpu=7450: -mppc} \
101.72 - %{mcpu=750: -mppc} \
101.73 -+%{mcpu=G3: -mppc} \
101.74 -+%{mcpu=7400: -mppc -maltivec} \
101.75 -+%{mcpu=7450: -mppc -maltivec} \
101.76 -+%{mcpu=G4: -mppc -maltivec} \
101.77 - %{mcpu=801: -mppc} \
101.78 - %{mcpu=821: -mppc} \
101.79 - %{mcpu=823: -mppc} \
101.80 - %{mcpu=860: -mppc} \
101.81 -+%{mcpu=970: -mpower4 -maltivec} \
101.82 -+%{mcpu=G5: -mpower4 -maltivec} \
101.83 - %{mcpu=8540: -me500} \
101.84 --%{maltivec: -maltivec}"
101.85 -+%{maltivec: -maltivec} \
101.86 -+-many"
101.87 -
101.88 - #define CPP_DEFAULT_SPEC ""
101.89 -
102.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-trap-posix.patch Tue Aug 14 19:32:22 2007 +0000
102.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
102.3 @@ -1,44 +0,0 @@
102.4 -#
102.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
102.6 -#
102.7 -# Error:
102.8 -#
102.9 -# creating libintl.h
102.10 -# Configuring etc...
102.11 -# loading cache ../config.cache
102.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
102.13 -# creating ./config.status
102.14 -# creating Makefile
102.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
102.16 -#
102.17 -# Description:
102.18 -#
102.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
102.20 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
102.21 -#
102.22 -# Status:
102.23 -#
102.24 -# fixed in gcc >= 3.3.5
102.25 -# backport of gcc-3.3.5 fix
102.26 -#
102.27 -diff -ruN gcc-3.3.4-orig/configure gcc-3.3.4/configure
102.28 ---- gcc-3.3.4-orig/configure 2002-09-29 18:11:24.000000000 +0200
102.29 -+++ gcc-3.3.4/configure 2005-04-20 21:11:30.000000000 +0200
102.30 -@@ -697,7 +697,7 @@
102.31 - if test -f skip-this-dir; then
102.32 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
102.33 - # and reset the trap handler.
102.34 -- trap 0
102.35 -+ trap '' 0
102.36 - rm -rf Makefile* ${tmpdir}
102.37 - # Execute the final clean-up actions
102.38 - ${config_shell} skip-this-dir
102.39 -@@ -1596,7 +1596,7 @@
102.40 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
102.41 - # and reset the trap handler.
102.42 - rm -rf ${tmpdir}
102.43 --trap 0
102.44 -+trap '' 0
102.45 -
102.46 - exit 0
102.47 -
103.1 --- a/patches/gcc/3.3.5/gcc-3.3.4-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
103.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
103.3 @@ -1,62 +0,0 @@
103.4 -diff -urN gcc-3.3.4.orig/gcc/config/arm/linux-elf.h gcc-3.3.4/gcc/config/arm/linux-elf.h
103.5 ---- gcc-3.3.4.orig/gcc/config/arm/linux-elf.h 2004-03-30 22:43:45.000000000 +0200
103.6 -+++ gcc-3.3.4/gcc/config/arm/linux-elf.h 2004-08-20 02:13:02.969084177 +0200
103.7 -@@ -30,17 +30,31 @@
103.8 - /* Do not assume anything about header files. */
103.9 - #define NO_IMPLICIT_EXTERN_C
103.10 -
103.11 -+/*
103.12 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
103.13 -+ * (big endian) configurations.
103.14 -+ */
103.15 -+#if TARGET_BIG_ENDIAN_DEFAULT
103.16 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
103.17 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
103.18 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
103.19 -+#else
103.20 -+#define TARGET_ENDIAN_DEFAULT 0
103.21 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
103.22 -+#define TARGET_LINKER_EMULATION "armelf_linux"
103.23 -+#endif
103.24 -+
103.25 - /* Default is to use APCS-32 mode. */
103.26 - #undef TARGET_DEFAULT
103.27 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
103.28 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
103.29 -
103.30 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
103.31 -
103.32 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
103.33 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
103.34 -
103.35 - #undef MULTILIB_DEFAULTS
103.36 - #define MULTILIB_DEFAULTS \
103.37 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
103.38 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
103.39 -
103.40 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
103.41 -
103.42 -@@ -88,7 +102,7 @@
103.43 - %{rdynamic:-export-dynamic} \
103.44 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
103.45 - -X \
103.46 -- %{mbig-endian:-EB}" \
103.47 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
103.48 - SUBTARGET_EXTRA_LINK_SPEC
103.49 -
103.50 - #define TARGET_OS_CPP_BUILTINS() \
103.51 -diff -urN gcc-3.3.4.orig/gcc/config.gcc gcc-3.3.4/gcc/config.gcc
103.52 ---- gcc-3.3.4.orig/gcc/config.gcc 2004-04-29 06:42:47.000000000 +0200
103.53 -+++ gcc-3.3.4/gcc/config.gcc 2004-08-20 02:11:04.326143343 +0200
103.54 -@@ -699,6 +699,11 @@
103.55 - ;;
103.56 - arm*-*-linux*) # ARM GNU/Linux with ELF
103.57 - tm_file="dbxelf.h elfos.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
103.58 -+ case $machine in
103.59 -+ arm*b-*)
103.60 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
103.61 -+ ;;
103.62 -+ esac
103.63 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
103.64 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
103.65 - gnu_ld=yes
104.1 --- a/patches/gcc/3.3.5/gcc-3.3.4-arm-pr22528.patch Tue Aug 14 19:32:22 2007 +0000
104.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
104.3 @@ -1,71 +0,0 @@
104.4 -From http://gcc.gnu.org/ml/gcc-patches/2003-11/msg00832.html, by
104.5 -Richard Earnshaw. Fixes http://gcc.gnu.org/PR22528
104.6 -
104.7 ---- gcc-3.3.4/gcc/config/arm/arm.md.orig 2004-03-30 22:43:44.000000000 +0200
104.8 -+++ gcc-3.3.4/gcc/config/arm/arm.md 2005-08-15 12:21:55.000000000 +0200
104.9 -@@ -4275,7 +4275,7 @@
104.10 - (set (match_dup 2)
104.11 - (ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
104.12 - ;; store the high byte
104.13 -- (set (match_dup 4) (subreg:QI (match_dup 2) 0))] ;explicit subreg safe
104.14 -+ (set (match_dup 4) (match_dup 5))]
104.15 - "TARGET_ARM"
104.16 - "
104.17 - {
104.18 -@@ -4291,7 +4291,8 @@
104.19 - operands[1] = adjust_address (operands[1], QImode, 0);
104.20 - operands[3] = gen_lowpart (QImode, operands[0]);
104.21 - operands[0] = gen_lowpart (SImode, operands[0]);
104.22 -- operands[2] = gen_reg_rtx (SImode);
104.23 -+ operands[2] = gen_reg_rtx (SImode);
104.24 -+ operands[5] = gen_lowpart (QImode, operands[2]);
104.25 - }"
104.26 - )
104.27 -
104.28 -@@ -4299,7 +4300,7 @@
104.29 - [(set (match_dup 4) (match_dup 3))
104.30 - (set (match_dup 2)
104.31 - (ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
104.32 -- (set (match_operand 1 "" "") (subreg:QI (match_dup 2) 3))]
104.33 -+ (set (match_operand 1 "" "") (match_dup 5))]
104.34 - "TARGET_ARM"
104.35 - "
104.36 - {
104.37 -@@ -4316,13 +4317,14 @@
104.38 - operands[3] = gen_lowpart (QImode, operands[0]);
104.39 - operands[0] = gen_lowpart (SImode, operands[0]);
104.40 - operands[2] = gen_reg_rtx (SImode);
104.41 -+ operands[5] = gen_lowpart (QImode, operands[2]);
104.42 - }"
104.43 - )
104.44 -
104.45 - ;; Subroutine to store a half word integer constant into memory.
104.46 - (define_expand "storeinthi"
104.47 - [(set (match_operand 0 "" "")
104.48 -- (subreg:QI (match_operand 1 "" "") 0))
104.49 -+ (match_operand 1 "" ""))
104.50 - (set (match_dup 3) (match_dup 2))]
104.51 - "TARGET_ARM"
104.52 - "
104.53 -@@ -4363,6 +4365,7 @@
104.54 - operands[3] = adjust_address (op0, QImode, 1);
104.55 - operands[0] = adjust_address (operands[0], QImode, 0);
104.56 - operands[2] = gen_lowpart (QImode, operands[2]);
104.57 -+ operands[1] = gen_lowpart (QImode, operands[1]);
104.58 - }"
104.59 - )
104.60 -
104.61 -@@ -4682,11 +4685,12 @@
104.62 - (set (match_dup 3)
104.63 - (ashiftrt:SI (match_dup 2) (const_int 16)))
104.64 - (set (match_operand:HI 0 "s_register_operand" "")
104.65 -- (subreg:HI (match_dup 3) 0))]
104.66 -+ (match_dup 4))]
104.67 - "TARGET_ARM"
104.68 - "
104.69 - operands[2] = gen_reg_rtx (SImode);
104.70 - operands[3] = gen_reg_rtx (SImode);
104.71 -+ operands[4] = gen_lowpart (HImode, operands[3]);
104.72 - "
104.73 - )
104.74 -
105.1 --- a/patches/gcc/3.3/compat.exp.patch Tue Aug 14 19:32:22 2007 +0000
105.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
105.3 @@ -1,37 +0,0 @@
105.4 -Fixes the following problem when testing a cross-compiler:
105.5 -
105.6 -============================================
105.7 -Testing g++.dg/compat/abi/bitfield1,
105.8 -...
105.9 -Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/testsuite/../g++ ...
105.10 -/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
105.11 -pid is 16028 -16028
105.12 -compiler exited with status 1
105.13 -output is:
105.14 -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
105.15 -/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
105.16 -
105.17 -FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
105.18 -============================================
105.19 -
105.20 ---- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old Thu Oct 17 17:22:57 2002
105.21 -+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp Mon Jul 14 10:59:19 2003
105.22 -@@ -42,11 +42,13 @@
105.23 - proc compat-fix-library-path { } {
105.24 - global ld_library_path
105.25 -
105.26 -- # See comments in lib/g++.exp for why this is needed.
105.27 -- setenv LD_LIBRARY_PATH $ld_library_path
105.28 -- setenv SHLIB_PATH $ld_library_path
105.29 -- setenv LD_LIBRARYN32_PATH $ld_library_path
105.30 -- setenv LD_LIBRARY64_PATH $ld_library_path
105.31 -+ if {![is_remote target]} {
105.32 -+ # See comments in lib/g++.exp for why this is needed.
105.33 -+ setenv LD_LIBRARY_PATH $ld_library_path
105.34 -+ setenv SHLIB_PATH $ld_library_path
105.35 -+ setenv LD_LIBRARYN32_PATH $ld_library_path
105.36 -+ setenv LD_LIBRARY64_PATH $ld_library_path
105.37 -+ }
105.38 - }
105.39 -
105.40 - #
106.1 --- a/patches/gcc/3.3/config.sub.patch Tue Aug 14 19:32:22 2007 +0000
106.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
106.3 @@ -1,72 +0,0 @@
106.4 -When configuring a s390->s390 or cris->cris crosscompiler
106.5 -(ok, I haven't hit this yet, but one of these days I'll get me an account
106.6 -on an s390, and then I'll need this patch :-), you'll get the
106.7 -following error:
106.8 -
106.9 -+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
106.10 ---target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
106.11 ---prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
106.12 ---enable-languages=c
106.13 ---with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
106.14 -unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
106.15 ---disable-shared
106.16 -...
106.17 -*** --with-headers is only supported when cross compiling
106.18 -
106.19 -This error pops up only when you're using Daniel Jacobowitz's technique
106.20 -of slightly changing the target and host tuples to make them different
106.21 -enough to force gcc's build system to not try to pull in system libraries
106.22 -or headers. This technique is needed e.g. to build an x86 -> x86
106.23 -cross-compiler.
106.24 -(The LFS developers ran into the same bug that prompted me to use
106.25 -this technique; they point people who run into it to
106.26 -http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
106.27 -way of avoiding this problem. I think the tuple tweak is the way to go, though.)
106.28 -
106.29 -config-patches@gnu.org rejected this patch, on the grounds that there
106.30 -is only one vendor of each of those two architectures, so the
106.31 -canonicalization is by definition correct. When I pointed out the
106.32 -difficulty this causes for people building s390 -> s390 or
106.33 -cris -> cris compilers that are incompatible with the system
106.34 -libraries and thus must be built like cross-compilers, he grumped and said
106.35 -"autoconf should let you specify a cross-compiler in some other way than
106.36 -comparing tuple strings".
106.37 -
106.38 -
106.39 -
106.40 ---- gcc-3.3/config.sub.old Sun Jun 8 20:38:47 2003
106.41 -+++ gcc-3.3/config.sub Sun Jun 8 20:40:34 2003
106.42 -@@ -433,9 +433,12 @@
106.43 - crds | unos)
106.44 - basic_machine=m68k-crds
106.45 - ;;
106.46 -- cris | cris-* | etrax*)
106.47 -+ cris | etrax*)
106.48 - basic_machine=cris-axis
106.49 - ;;
106.50 -+ cris-*)
106.51 -+ basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
106.52 -+ ;;
106.53 - da30 | da30-*)
106.54 - basic_machine=m68k-da30
106.55 - ;;
106.56 -@@ -820,11 +823,17 @@
106.57 - rtpc | rtpc-*)
106.58 - basic_machine=romp-ibm
106.59 - ;;
106.60 -- s390 | s390-*)
106.61 -+ s390)
106.62 - basic_machine=s390-ibm
106.63 - ;;
106.64 -- s390x | s390x-*)
106.65 -+ s390-*)
106.66 -+ basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
106.67 -+ ;;
106.68 -+ s390x)
106.69 - basic_machine=s390x-ibm
106.70 -+ ;;
106.71 -+ s390x-*)
106.72 -+ basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
106.73 - ;;
106.74 - sa29200)
106.75 - basic_machine=a29k-amd
107.1 --- a/patches/gcc/3.3/gcc-3.2.3-g++.exp.patch Tue Aug 14 19:32:22 2007 +0000
107.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
107.3 @@ -1,98 +0,0 @@
107.4 -g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
107.5 -
107.6 -The first hunk fixes the error
107.7 -
107.8 -/testsuite_flags: /testsuite_flags: No such file or directory
107.9 - while executing
107.10 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
107.11 - (procedure "g++_include_flags" line 21)
107.12 - invoked from within
107.13 -"g++_include_flags [get_multilibs] "
107.14 - (procedure "g++_init" line 63)
107.15 - invoked from within
107.16 -"${tool}_init $test_file_name"
107.17 - (procedure "runtest" line 19)
107.18 - invoked from within
107.19 -"runtest $test_name"
107.20 - ("foreach" body line 42)
107.21 - invoked from within
107.22 -...
107.23 -make[1]: [check-g++] Error 1 (ignored)
107.24 -
107.25 -The fix isn't especially pretty, but it worked for me, and can't hurt the
107.26 -more common native compiler case. Maybe someone who knows the code better
107.27 -can come up with a better fix.
107.28 -
107.29 -The second hunk fixes the error
107.30 -
107.31 -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
107.32 -
107.33 -when trying to compile g++ testcases (!); setting up
107.34 -the shared library environment when running crosstests of g++
107.35 -should either be done by a special board file, or by
107.36 -setting up a remote chroot environment (see http://kegel.com/crosstool),
107.37 -not by blithely setting LD_LIBRARY_PATH on the local system.
107.38 -
107.39 ---- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old Fri Jul 11 15:42:47 2003
107.40 -+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp Sat Jul 12 12:57:07 2003
107.41 -@@ -72,6 +72,8 @@
107.42 - #
107.43 - proc g++_include_flags { paths } {
107.44 - global srcdir
107.45 -+ global objdir
107.46 -+ global target_triplet
107.47 - global HAVE_LIBSTDCXX_V3
107.48 - global TESTING_IN_BUILD_TREE
107.49 -
107.50 -@@ -90,6 +92,20 @@
107.51 -
107.52 - if { ${HAVE_LIBSTDCXX_V3} } {
107.53 - set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
107.54 -+ if { $odir_v3 == "" } {
107.55 -+ verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
107.56 -+ # first assume no multilibs
107.57 -+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
107.58 -+ }
107.59 -+ if { $odir_v3 == "" } {
107.60 -+ verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
107.61 -+ # assume multilib only one level deep
107.62 -+ set multisub [file tail $gccpath]
107.63 -+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
107.64 -+ }
107.65 -+ if { $odir_v3 == "" } {
107.66 -+ error "Can't find libstdc++-v3"
107.67 -+ }
107.68 - append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
107.69 - } else {
107.70 - set odir_v2 [lookfor_file ${gccpath} libstdc++]
107.71 -@@ -192,16 +192,20 @@
107.72 - }
107.73 - }
107.74 -
107.75 -- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
107.76 -- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
107.77 -- # (for the 64-bit ABI). The right way to do this would be to modify
107.78 -- # unix.exp -- but that's not an option since it's part of DejaGNU
107.79 -- # proper, so we do it here. We really only need to do
107.80 -- # this on IRIX, but it shouldn't hurt to do it anywhere else.
107.81 -- setenv LD_LIBRARY_PATH $ld_library_path
107.82 -- setenv SHLIB_PATH $ld_library_path
107.83 -- setenv LD_LIBRARYN32_PATH $ld_library_path
107.84 -- setenv LD_LIBRARY64_PATH $ld_library_path
107.85 -+ if {![is_remote target]} {
107.86 -+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
107.87 -+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
107.88 -+ # (for the 64-bit ABI). The right way to do this would be to modify
107.89 -+ # unix.exp -- but that's not an option since it's part of DejaGNU
107.90 -+ # proper, so we do it here. We really only need to do
107.91 -+ # this on IRIX, but it shouldn't hurt to do it anywhere else.
107.92 -+
107.93 -+ # Doing this causes us to be unable to run cross-compilers.
107.94 -+ setenv LD_LIBRARY_PATH $ld_library_path
107.95 -+ setenv SHLIB_PATH $ld_library_path
107.96 -+ setenv LD_LIBRARYN32_PATH $ld_library_path
107.97 -+ setenv LD_LIBRARY64_PATH $ld_library_path
107.98 -+ }
107.99 -
107.100 - return "$flags"
107.101 - }
108.1 --- a/patches/gcc/3.3/gcc-3.3-libstdc++-v3-dg.exp.patch Tue Aug 14 19:32:22 2007 +0000
108.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
108.3 @@ -1,54 +0,0 @@
108.4 -Without this patch, the command
108.5 -
108.6 -RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
108.7 -
108.8 -fails in two ways:
108.9 -1. the -L option meant to locate the testsuite directory is incorrect, and
108.10 -2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
108.11 -is the native compiler is invoked when we really wanted to invoke the cross-compiler
108.12 -we just built.
108.13 -
108.14 -Here's an example log of the problem in action. Every testcase fails, this shows just one:
108.15 --------------
108.16 -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
108.17 -compiler exited with status 1
108.18 -output is:
108.19 -/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
108.20 -/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
108.21 -/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
108.22 -/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
108.23 -/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
108.24 -...
108.25 -FAIL: 20_util/binders.cc (test for excess errors)
108.26 -WARNING: 20_util/binders.cc compilation failed to produce executable
108.27 --------------
108.28 -
108.29 -And here's the patch. I'm not happy with it, and it probably gets some cases wrong,
108.30 -but it seems to work for the common native case and for my cross-compiler case.
108.31 -
108.32 ---- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old Sun Jul 13 10:42:01 2003
108.33 -+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Sun Jul 13 11:39:54 2003
108.34 -@@ -46,8 +46,23 @@
108.35 - global gluefile wrap_flags
108.36 - global ld_library_path
108.37 - global tool_root_dir
108.38 -+ global target_triplet
108.39 -
108.40 - set blddir [lookfor_file [get_multilibs] libstdc++-v3]
108.41 -+ if { $blddir == "" } {
108.42 -+ set multilibs [get_multilibs]
108.43 -+ # FIXME: assume multilib only one level deep
108.44 -+ set multisub [file tail $multilibs]
108.45 -+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
108.46 -+ set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
108.47 -+ }
108.48 -+ if { $blddir == "" } {
108.49 -+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
108.50 -+ set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
108.51 -+ }
108.52 -+ if { $blddir == "" } {
108.53 -+ error "Can't find libstdc++-v3"
108.54 -+ }
108.55 -
108.56 - # By default, we assume we want to run program images.
108.57 - global dg-do-what-default
109.1 --- a/patches/gcc/3.3/sh-pic-set_fpscr.patch Tue Aug 14 19:32:22 2007 +0000
109.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
109.3 @@ -1,60 +0,0 @@
109.4 -Should fix
109.5 -make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
109.6 -in glibc's "make tests".
109.7 -
109.8 --------------
109.9 -
109.10 -Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
109.11 -To: dank@kegel.com
109.12 -Cc: linux-sh@m17n.org
109.13 -Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
109.14 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
109.15 -In-Reply-To: Your message of "Wed, 30 Jul 2003 11:20:49 +0900"
109.16 - <200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
109.17 -References: <200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
109.18 -Date: Wed, 30 Jul 2003 12:03:01 +0900
109.19 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
109.20 -
109.21 -> I'll try to write the PIC version of it,
109.22 -
109.23 -Dan, does the attached patch work for you?
109.24 -
109.25 -[dank: original patch deleted; here's same thing rediffed against gcc-3.3 instead of HEAD]
109.26 -
109.27 ---- gcc-3.3/gcc/config/sh/lib1funcs.asm.old Tue Jul 29 21:37:29 2003
109.28 -+++ gcc-3.3/gcc/config/sh/lib1funcs.asm Tue Jul 29 21:40:58 2003
109.29 -@@ -1792,7 +1792,17 @@
109.30 - .global GLOBAL(set_fpscr)
109.31 - GLOBAL(set_fpscr):
109.32 - lds r4,fpscr
109.33 -+#ifdef __PIC__
109.34 -+ mov.l r12,@-r15
109.35 -+ mova LOCAL(set_fpscr_L0),r0
109.36 -+ mov.l LOCAL(set_fpscr_L0),r12
109.37 -+ add r0,r12
109.38 -+ mov.l LOCAL(set_fpscr_L1),r0
109.39 -+ mov.l @(r0,r12),r1
109.40 -+ mov.l @r15+,r12
109.41 -+#else
109.42 - mov.l LOCAL(set_fpscr_L1),r1
109.43 -+#endif
109.44 - swap.w r4,r0
109.45 - or #24,r0
109.46 - #ifndef FMOVD_WORKS
109.47 -@@ -1820,8 +1830,16 @@
109.48 - mov.l r3,@(4,r1)
109.49 - #endif
109.50 - .align 2
109.51 -+#ifdef __PIC__
109.52 -+LOCAL(set_fpscr_L0):
109.53 -+ .long _GLOBAL_OFFSET_TABLE_
109.54 -+LOCAL(set_fpscr_L1):
109.55 -+ .long GLOBAL(fpscr_values@GOT)
109.56 -+#else
109.57 - LOCAL(set_fpscr_L1):
109.58 - .long GLOBAL(fpscr_values)
109.59 -+#endif
109.60 -+
109.61 - #ifdef __ELF__
109.62 - .comm GLOBAL(fpscr_values),8,4
109.63 - #else
110.1 --- a/patches/gcc/3.3/sh-predef-gnu_source.patch Tue Aug 14 19:32:22 2007 +0000
110.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
110.3 @@ -1,15 +0,0 @@
110.4 -See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11096
110.5 -and http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00424.html
110.6 -
110.7 ---- gcc-3.3/gcc/config/sh/linux.h.old Wed Jun 4 17:37:40 2003
110.8 -+++ gcc-3.3/gcc/config/sh/linux.h Wed Jun 4 17:38:16 2003
110.9 -@@ -53,5 +53,9 @@
110.10 - %{static:-static}"
110.11 -
110.12 -+/* The GNU C++ standard library requires that these macros be defined. */
110.13 -+#undef CPLUSPLUS_CPP_SPEC
110.14 -+#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
110.15 -+
110.16 - #undef LIB_SPEC
110.17 - #define LIB_SPEC \
110.18 - "%{shared: -lc} \
111.1 --- a/patches/gcc/3.3/sh-spec.patch Tue Aug 14 19:32:22 2007 +0000
111.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
111.3 @@ -1,45 +0,0 @@
111.4 -Message-Id: <200308020452.h724q0n01509@r-rr.iij4u.or.jp>
111.5 -To: dank@kegel.com
111.6 -Cc: kkojima@rr.iij4u.or.jp
111.7 -Subject: Re: Writing PIC version of __udivsi3_i4?
111.8 -In-Reply-To: Your message of "Fri, 01 Aug 2003 21:15:27 -0700"
111.9 - <3F2B3ADF.6030206@kegel.com>
111.10 -References: <3F2B3ADF.6030206@kegel.com>
111.11 -Date: Sat, 02 Aug 2003 13:58:05 +0900
111.12 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
111.13 -
111.14 -Dan Kegel <dank@kegel.com> wrote:
111.15 -> It seems it might be from gcc's spec file:
111.16 ->
111.17 -> *subtarget_link_spec:
111.18 -> %{shared:-shared} %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} %{!rpath:-rpath /lib}} %{static:-static}
111.19 ->
111.20 -> as the only place -rpath showed up was in the output of gcc -v as it
111.21 -> was linking libc.so.
111.22 ->
111.23 -> Well, that's a clue, anyway! Guess I'll dig through the spec files
111.24 -> tomorrow to see if I can figure it out some more.
111.25 -
111.26 -I've grepped gcc/config/*/*.h and found only SH and old libc1 stuffs
111.27 -of i386/alpha include %{!rpath:-rpath ... in 3.3 release and the
111.28 -current CVS. And my sh-gcc's specs doesn't have this :-(
111.29 -It would be the Right Thing to remove this stuff simply. How about
111.30 -the gcc patch below?
111.31 -
111.32 -Regards,
111.33 - kaz
111.34 ---
111.35 ---- gcc-3.3/gcc/config/sh/linux.h.orig Sat Aug 2 13:20:57 2003
111.36 -+++ gcc-3.3/gcc/config/sh/linux.h Sat Aug 2 13:22:42 2003
111.37 -@@ -48,8 +48,7 @@ do { \
111.38 - "%{shared:-shared} \
111.39 - %{!static: \
111.40 - %{rdynamic:-export-dynamic} \
111.41 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
111.42 -- %{!rpath:-rpath /lib}} \
111.43 -+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
111.44 - %{static:-static}"
111.45 -
111.46 - /* The GNU C++ standard library requires that these macros be defined. */
111.47 -
111.48 -
112.1 --- a/patches/gcc/3.3/sh4-kaz-workaround.patch Tue Aug 14 19:32:22 2007 +0000
112.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
112.3 @@ -1,145 +0,0 @@
112.4 -[lightly edited to fit my patch directory - dank]
112.5 -
112.6 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
112.7 -Date: Sat, 09 Aug 2003 09:46:21 +0900
112.8 -To: dank@kegel.com
112.9 -
112.10 -Hi Dan,
112.11 -
112.12 -I've come back from the vacation and looked glibc string test
112.13 -failures on sh4. This looks a gcc problem. gcc-3.3/3.4 doesn't
112.14 -compile these tests correctly. The attached testcase aborts on
112.15 -gcc-3.3/3.4 -O2 but exits normally gcc-3.2 and gcc-3.0.
112.16 -The option -O2 is not essential but it makes the testcase small.
112.17 -The failed string tests include the same pattern of the code with
112.18 -f=random to generate ramdom strings but they get strings with
112.19 -embedded NULL characters :-(
112.20 -
112.21 -...
112.22 -I've got a workaround below for this bug, though it might merely
112.23 -paper over the real bug. Anyway, I'd like to send a PR for this.
112.24 -
112.25 -Regards,
112.26 - kaz
112.27 ---
112.28 -int val = 0xff00;
112.29 -
112.30 -int f (void) { return val; }
112.31 -
112.32 -unsigned char a[1];
112.33 -
112.34 -void
112.35 -foo (void)
112.36 -{
112.37 - a[0] = f () & 255;
112.38 -
112.39 - if (!a[0])
112.40 - a[0] = f () & 255;
112.41 -
112.42 - if (!a[0])
112.43 - a[0] = 1 + (f () & 127);
112.44 -}
112.45 -
112.46 -int
112.47 -main (int argc, char **argv)
112.48 -{
112.49 - foo ();
112.50 - if (!a[0])
112.51 - abort ();
112.52 -
112.53 - return 0;
112.54 -}
112.55 -
112.56 ---
112.57 -
112.58 -diff -u3prN ORIG/gcc/gcc/config/sh/sh.c LOCAL/gcc/gcc/config/sh/sh.c
112.59 ---- gcc/gcc/config/sh/sh.c.old Fri Aug 8 18:39:02 2003
112.60 -+++ gcc/gcc/config/sh/sh.c Fri Aug 8 22:31:02 2003
112.61 -@@ -6657,6 +6657,19 @@ arith_reg_dest (op, mode)
112.62 - return arith_reg_operand (op, mode);
112.63 - }
112.64 -
112.65 -+/* Like above, but for SImode compare destinations: forbid paradoxical
112.66 -+ subregs, because it would get the combiner confused. */
112.67 -+int
112.68 -+arith_reg_cmp_dest (op, mode)
112.69 -+ rtx op;
112.70 -+ enum machine_mode mode;
112.71 -+{
112.72 -+ if (mode == SImode && GET_CODE (op) == SUBREG
112.73 -+ && GET_MODE_SIZE (GET_MODE (SUBREG_REG (op))) < 4)
112.74 -+ return 0;
112.75 -+ return arith_reg_operand (op, mode);
112.76 -+}
112.77 -+
112.78 - int
112.79 - int_gpr_dest (op, mode)
112.80 - rtx op;
112.81 -diff -u3prN ORIG/gcc/gcc/config/sh/sh.h LOCAL/gcc/gcc/config/sh/sh.h
112.82 ---- gcc/gcc/config/sh/sh.h.old Fri Aug 8 18:39:02 2003
112.83 -+++ gcc/gcc/config/sh/sh.h Fri Aug 8 22:31:02 2003
112.84 -@@ -3365,6 +3365,7 @@ extern int rtx_equal_function_value_matt
112.85 - {"and_operand", {SUBREG, REG, CONST_INT}}, \
112.86 - {"any_register_operand", {SUBREG, REG}}, \
112.87 - {"arith_operand", {SUBREG, REG, CONST_INT}}, \
112.88 -+ {"arith_reg_cmp_dest", {SUBREG, REG}}, \
112.89 - {"arith_reg_dest", {SUBREG, REG}}, \
112.90 - {"arith_reg_operand", {SUBREG, REG}}, \
112.91 - {"arith_reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_VECTOR}}, \
112.92 -
112.93 ---- gcc-3.3/gcc/config/sh/sh.md.orig Tue Apr 15 10:06:10 2003
112.94 -+++ gcc-3.3/gcc/config/sh/sh.md Sat Aug 9 22:31:13 2003
112.95 -@@ -616,7 +616,7 @@
112.96 -
112.97 - (define_insn ""
112.98 - [(set (reg:SI T_REG)
112.99 -- (eq:SI (and:SI (match_operand:SI 0 "arith_reg_operand" "z,r")
112.100 -+ (eq:SI (and:SI (match_operand:SI 0 "arith_reg_cmp_dest" "z,r")
112.101 - (match_operand:SI 1 "arith_operand" "L,r"))
112.102 - (const_int 0)))]
112.103 - "TARGET_SH1"
112.104 -@@ -631,7 +631,7 @@
112.105 -
112.106 - (define_insn "cmpeqsi_t"
112.107 - [(set (reg:SI T_REG)
112.108 -- (eq:SI (match_operand:SI 0 "arith_reg_operand" "r,z,r")
112.109 -+ (eq:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r,z,r")
112.110 - (match_operand:SI 1 "arith_operand" "N,rI,r")))]
112.111 - "TARGET_SH1"
112.112 - "@
112.113 -@@ -642,7 +642,7 @@
112.114 -
112.115 - (define_insn "cmpgtsi_t"
112.116 - [(set (reg:SI T_REG)
112.117 -- (gt:SI (match_operand:SI 0 "arith_reg_operand" "r,r")
112.118 -+ (gt:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r,r")
112.119 - (match_operand:SI 1 "arith_reg_or_0_operand" "r,N")))]
112.120 - "TARGET_SH1"
112.121 - "@
112.122 -@@ -652,7 +652,7 @@
112.123 -
112.124 - (define_insn "cmpgesi_t"
112.125 - [(set (reg:SI T_REG)
112.126 -- (ge:SI (match_operand:SI 0 "arith_reg_operand" "r,r")
112.127 -+ (ge:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r,r")
112.128 - (match_operand:SI 1 "arith_reg_or_0_operand" "r,N")))]
112.129 - "TARGET_SH1"
112.130 - "@
112.131 -@@ -666,7 +666,7 @@
112.132 -
112.133 - (define_insn "cmpgeusi_t"
112.134 - [(set (reg:SI T_REG)
112.135 -- (geu:SI (match_operand:SI 0 "arith_reg_operand" "r")
112.136 -+ (geu:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r")
112.137 - (match_operand:SI 1 "arith_reg_operand" "r")))]
112.138 - "TARGET_SH1"
112.139 - "cmp/hs %1,%0"
112.140 -@@ -674,7 +674,7 @@
112.141 -
112.142 - (define_insn "cmpgtusi_t"
112.143 - [(set (reg:SI T_REG)
112.144 -- (gtu:SI (match_operand:SI 0 "arith_reg_operand" "r")
112.145 -+ (gtu:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r")
112.146 - (match_operand:SI 1 "arith_reg_operand" "r")))]
112.147 - "TARGET_SH1"
112.148 - "cmp/hi %1,%0"
113.1 --- a/patches/gcc/3.3/sh4-no-fix-protos.patch Tue Aug 14 19:32:22 2007 +0000
113.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
113.3 @@ -1,12 +0,0 @@
113.4 -See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10331
113.5 -and http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00423.html
113.6 -
113.7 ---- gcc-3.3/gcc/config/sh/t-linux.old Wed Jun 4 13:01:39 2003
113.8 -+++ gcc-3.3/gcc/config/sh/t-linux Wed Jun 4 13:02:12 2003
113.9 -@@ -1,3 +1,6 @@
113.10 -+# Don't run fixproto
113.11 -+STMP_FIXPROTO =
113.12 -+
113.13 - TARGET_LIBGCC2_CFLAGS = -fpic
113.14 - LIB1ASMFUNCS_CACHE = _ic_invalidate
113.15 -
114.1 --- a/patches/gcc/3.3/sh4-pthread.patch Tue Aug 14 19:32:22 2007 +0000
114.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
114.3 @@ -1,42 +0,0 @@
114.4 -Patch to fix following test case failure:
114.5 -
114.6 - === libstdc++-v3 tests ===
114.7 -FAIL: thread/pthread1.cc (test for excess errors)
114.8 -Excess errors:
114.9 -/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
114.10 -collect2: ld returned 1 exit status
114.11 -
114.12 -Note that *any* program compiled with -pthread fails:
114.13 -
114.14 -/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
114.15 -/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
114.16 -collect2: ld returned 1 exit status
114.17 -
114.18 -Compiling with -lpthread on the other hand works fine:
114.19 -/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
114.20 -
114.21 -So -pthread is broken in some trivial way; it should invoke -lpthread, not -lthread,
114.22 -at least when targeting Linux.
114.23 -
114.24 -http://www.sh-linux.org/rpm-2003/SRPMS/gcc-3.2.3-3.src.rpm contains a jumbo patch,
114.25 -gcc-20030210-sh-linux-1.patch, that includes a fix for this. Here's the
114.26 -appropriate hunk (brings in a fix for the documented -mieee option).
114.27 -No idea if this fix is completely right, but it works for me...
114.28 -- dank@kegel.com 20 Jul 2003
114.29 -
114.30 -Index: linux.h
114.31 -===================================================================
114.32 -RCS file: /cvsroot/gcc/gcc/gcc/config/sh/linux.h,v
114.33 -retrieving revision 1.9.20.1
114.34 -diff -u -d -u -r1.9.20.1 linux.h
114.35 ---- gcc-ss-3_3-20030714/gcc/config/sh/linux.h.old 6 Jun 2003 02:30:59 -0000 1.9.20.1
114.36 -+++ gcc-ss-3_3-20030714/gcc/config/sh/linux.h 20 Jul 2003 23:36:50 -0000
114.37 -@@ -59,7 +59,7 @@
114.38 - #undef LIB_SPEC
114.39 - #define LIB_SPEC \
114.40 - "%{shared: -lc} \
114.41 -- %{!shared: %{pthread:-lthread} \
114.42 -+ %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \
114.43 - %{profile:-lc_p} %{!profile: -lc}}"
114.44 -
114.45 - #undef STARTFILE_SPEC
115.1 --- a/patches/gcc/3.4.0/gcc-3.3.3h-ppc-asm-spec.patch Tue Aug 14 19:32:22 2007 +0000
115.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
115.3 @@ -1,88 +0,0 @@
115.4 -Retrieved from http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?r1=1.234.2.28&r2=1.234.2.29
115.5 -
115.6 -Should fix following error building gcc for ppc7450:
115.7 -
115.8 -/tmp/ccmfQBT9.s:5197: Error: Unrecognized opcode: `lvx'
115.9 -make[2]: *** [libgcc/./unwind-dw2.o] Error 1
115.10 -make[2]: Leaving directory `build-gcc-core/gcc'
115.11 -make[1]: *** [stmp-multilib] Error 2
115.12 -make[1]: Leaving directory `build-gcc-core/gcc'
115.13 -make: *** [all-gcc] Error 2
115.14 -
115.15 -(I'm not so sure about the unconditional -many it sends to binutils;
115.16 -that seems redundant?)
115.17 -
115.18 -Revision 1.234.2.29, Tue May 25 06:08:57 2004 UTC (6 days, 11 hours ago) by amodra
115.19 -Branch: hammer-3_3-branch
115.20 -Changes since 1.234.2.28: +15 -11 lines
115.21 -
115.22 - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
115.23 - for power5 and rs64a. Correct condition for default. Correct power3,
115.24 - 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
115.25 -
115.26 -===================================================================
115.27 -RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.h,v
115.28 -retrieving revision 1.234.2.28
115.29 -retrieving revision 1.234.2.29
115.30 -diff -u -r1.234.2.28 -r1.234.2.29
115.31 ---- gcc/gcc/config/rs6000/rs6000.h 2004/05/18 14:26:57 1.234.2.28
115.32 -+++ gcc/gcc/config/rs6000/rs6000.h 2004/05/25 06:08:57 1.234.2.29
115.33 -@@ -51,20 +51,23 @@
115.34 - "%{!mcpu*: \
115.35 - %{mpower: %{!mpower2: -mpwr}} \
115.36 - %{mpower2: -mpwrx} \
115.37 -- %{mpowerpc*: -mppc} \
115.38 -+ %{mpowerpc64*: -mppc64} \
115.39 -+ %{!mpowerpc64*: %{mpowerpc*: -mppc}} \
115.40 - %{mno-power: %{!mpowerpc*: -mcom}} \
115.41 -- %{!mno-power: %{!mpower2: %(asm_default)}}} \
115.42 -+ %{!mno-power: %{!mpower*: %(asm_default)}}} \
115.43 - %{mcpu=common: -mcom} \
115.44 - %{mcpu=power: -mpwr} \
115.45 - %{mcpu=power2: -mpwrx} \
115.46 --%{mcpu=power3: -m604} \
115.47 -+%{mcpu=power3: -mppc64} \
115.48 - %{mcpu=power4: -mpower4} \
115.49 -+%{mcpu=power5: -mpower4} \
115.50 - %{mcpu=powerpc: -mppc} \
115.51 - %{mcpu=rios: -mpwr} \
115.52 - %{mcpu=rios1: -mpwr} \
115.53 - %{mcpu=rios2: -mpwrx} \
115.54 - %{mcpu=rsc: -mpwr} \
115.55 - %{mcpu=rsc1: -mpwr} \
115.56 -+%{mcpu=rs64a: -mppc64} \
115.57 - %{mcpu=401: -mppc} \
115.58 - %{mcpu=403: -m403} \
115.59 - %{mcpu=405: -m405} \
115.60 -@@ -79,22 +82,23 @@
115.61 - %{mcpu=ec603e: -mppc} \
115.62 - %{mcpu=604: -mppc} \
115.63 - %{mcpu=604e: -mppc} \
115.64 --%{mcpu=620: -mppc} \
115.65 --%{mcpu=630: -m604} \
115.66 -+%{mcpu=620: -mppc64} \
115.67 -+%{mcpu=630: -mppc64} \
115.68 - %{mcpu=740: -mppc} \
115.69 --%{mcpu=7400: -mppc} \
115.70 --%{mcpu=7450: -mppc} \
115.71 --%{mcpu=G4: -mppc} \
115.72 - %{mcpu=750: -mppc} \
115.73 - %{mcpu=G3: -mppc} \
115.74 -+%{mcpu=7400: -mppc -maltivec} \
115.75 -+%{mcpu=7450: -mppc -maltivec} \
115.76 -+%{mcpu=G4: -mppc -maltivec} \
115.77 - %{mcpu=801: -mppc} \
115.78 - %{mcpu=821: -mppc} \
115.79 - %{mcpu=823: -mppc} \
115.80 - %{mcpu=860: -mppc} \
115.81 --%{mcpu=970: -mpower4} \
115.82 --%{mcpu=G5: -mpower4} \
115.83 -+%{mcpu=970: -mpower4 -maltivec} \
115.84 -+%{mcpu=G5: -mpower4 -maltivec} \
115.85 - %{mcpu=8540: -me500} \
115.86 --%{maltivec: -maltivec}"
115.87 -+%{maltivec: -maltivec} \
115.88 -+-many"
115.89 -
115.90 - #define CPP_DEFAULT_SPEC ""
115.91 -
116.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
116.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
116.3 @@ -1,70 +0,0 @@
116.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
116.5 -Adds support for arm*b-linux* big-endian ARM targets
116.6 -
116.7 -See http://gcc.gnu.org/PR16350
116.8 -
116.9 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
116.10 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
116.11 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-07-02 14:46:29.225443757 +0200
116.12 -@@ -30,17 +30,34 @@
116.13 - /* Do not assume anything about header files. */
116.14 - #define NO_IMPLICIT_EXTERN_C
116.15 -
116.16 -+/*
116.17 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
116.18 -+ * (big endian) configurations.
116.19 -+ */
116.20 -+#if TARGET_BIG_ENDIAN_DEFAULT
116.21 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
116.22 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
116.23 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
116.24 -+#else
116.25 -+#define TARGET_ENDIAN_DEFAULT 0
116.26 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
116.27 -+#define TARGET_LINKER_EMULATION "armelf_linux"
116.28 -+#endif
116.29 -+
116.30 - /* Default is to use APCS-32 mode. */
116.31 - #undef TARGET_DEFAULT
116.32 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
116.33 -+#define TARGET_DEFAULT \
116.34 -+ ( ARM_FLAG_APCS_32 | \
116.35 -+ ARM_FLAG_MMU_TRAPS | \
116.36 -+ TARGET_ENDIAN_DEFAULT )
116.37 -
116.38 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
116.39 -
116.40 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
116.41 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
116.42 -
116.43 - #undef MULTILIB_DEFAULTS
116.44 - #define MULTILIB_DEFAULTS \
116.45 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
116.46 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
116.47 -
116.48 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
116.49 -
116.50 -@@ -89,7 +106,7 @@
116.51 - %{rdynamic:-export-dynamic} \
116.52 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
116.53 - -X \
116.54 -- %{mbig-endian:-EB}" \
116.55 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
116.56 - SUBTARGET_EXTRA_LINK_SPEC
116.57 -
116.58 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
116.59 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
116.60 ---- gcc-3.4.0.orig/gcc/config.gcc 2004-04-17 04:28:24.000000000 +0200
116.61 -+++ gcc-3.4.0/gcc/config.gcc 2004-07-02 14:44:40.045822542 +0200
116.62 -@@ -666,6 +666,11 @@
116.63 - ;;
116.64 - arm*-*-linux*) # ARM GNU/Linux with ELF
116.65 - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
116.66 -+ case $target in
116.67 -+ arm*b-*)
116.68 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
116.69 -+ ;;
116.70 -+ esac
116.71 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
116.72 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
116.73 - gnu_ld=yes
117.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-arm-lib1asm.patch Tue Aug 14 19:32:22 2007 +0000
117.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
117.3 @@ -1,27 +0,0 @@
117.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
117.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
117.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
117.7 -# Fixes errors like the following when building glibc (or any other executable
117.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
117.9 -#
117.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
117.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
117.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
117.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
117.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
117.15 -
117.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
117.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200
117.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux 2004-05-01 20:31:59.102846400 +0200
117.19 -@@ -4,7 +4,10 @@
117.20 - LIBGCC2_DEBUG_CFLAGS = -g0
117.21 -
117.22 - LIB1ASMSRC = arm/lib1funcs.asm
117.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
117.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
117.25 -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
117.26 -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
117.27 -+ _fixsfsi _fixunssfsi
117.28 -
117.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
117.30 - # MULTILIB_DIRNAMES = hard-float soft-float
118.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-arm-nolibfloat.patch Tue Aug 14 19:32:22 2007 +0000
118.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
118.3 @@ -1,24 +0,0 @@
118.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
118.5 -#
118.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
118.7 -# anymore. (The required functions are now in libgcc.)
118.8 -#
118.9 -# Fixes errors like
118.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
118.11 -# collect2: ld returned 1 exit status
118.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
118.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
118.14 -
118.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
118.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
118.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-05-01 19:19:06.935979200 +0200
118.18 -@@ -55,7 +73,7 @@
118.19 - %{shared:-lc} \
118.20 - %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
118.21 -
118.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
118.23 -+#define LIBGCC_SPEC "-lgcc"
118.24 -
118.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
118.26 - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
118.27 -
119.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-pr14808-refix.patch Tue Aug 14 19:32:22 2007 +0000
119.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
119.3 @@ -1,46 +0,0 @@
119.4 -See http://gcc.gnu.org/ml/gcc/2004-06/msg00394.html
119.5 -This might fix the error
119.6 -
119.7 -strstream.s: Assembler messages:
119.8 -strstream.s:8390: Error: junk `(%ecx)' after expression
119.9 -strstream.s:8402: Error: junk `(%ecx)' after expression
119.10 -strstream.s:8551: Error: junk `(%ecx)' after expression
119.11 -strstream.s:8563: Error: junk `(%ecx)' after expression
119.12 -make[3]: *** [strstream.lo] Error 1
119.13 -make[3]: Leaving directory `i686-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-gcc/i686-unknown-linux-gnu/libstdc++-v3/src'
119.14 -
119.15 -when building a cygwin->linux cross-compiler with gcc-3.4.0,
119.16 -probably caused by patch to fix http://gcc.gnu.org/PR14808
119.17 -
119.18 -
119.19 ---- gcc-3.4.0/gcc/cp/method.c.old Sun Jun 6 22:46:04 2004
119.20 -+++ gcc-3.4.0/gcc/cp/method.c Sun Jun 6 22:48:13 2004
119.21 -@@ -286,7 +286,7 @@
119.22 - tree alias;
119.23 - char buf[256];
119.24 -
119.25 --#if defined (__CYGWIN__) || defined (__MINGW32__)
119.26 -+#if defined (TARGET_IS_PE_COFF)
119.27 - if (DECL_ONE_ONLY (function))
119.28 - return function;
119.29 - #endif
119.30 -@@ -404,7 +404,7 @@
119.31 - push_to_top_level ();
119.32 -
119.33 - #if defined (ASM_OUTPUT_DEF) \
119.34 -- && !(defined (__CYGWIN__) || defined (__MINGW32__))
119.35 -+ && !defined (TARGET_IS_PE_COFF)
119.36 - if (targetm.have_named_sections)
119.37 - {
119.38 - resolve_unique_section (function, 0, flag_function_sections);
119.39 ---- gcc-3.4.0/gcc/config/i386/cygming.h.old Sun Jun 6 22:50:46 2004
119.40 -+++ gcc-3.4.0/gcc/config/i386/cygming.h Sun Jun 6 22:52:10 2004
119.41 -@@ -27,6 +27,8 @@
119.42 -
119.43 - #define TARGET_EXECUTABLE_SUFFIX ".exe"
119.44 -
119.45 -+#define TARGET_IS_PE_COFF 1
119.46 -+
119.47 - #include <stdio.h>
119.48 -
119.49 - /* Masks for subtarget switches used by other files. */
120.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-ultrasparc3-default64.patch Tue Aug 14 19:32:22 2007 +0000
120.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
120.3 @@ -1,52 +0,0 @@
120.4 -Date: Sat, 1 May 2004 21:08:10 +0200
120.5 -From: Jakub Jelinek <jakub@redhat.com>
120.6 -To: Dan Kegel <dank@kegel.com>, mark@codesourcery.com
120.7 -Cc: gcc-patches@gcc.gnu.org
120.8 -Subject: [PATCH] sparc64-linux --with-cpu=ultrasparc fix
120.9 -Message-ID: <20040501190810.GD5191@sunsite.ms.mff.cuni.cz>
120.10 -Reply-To: Jakub Jelinek <jakub@redhat.com>
120.11 -References: <40940B11.9080907@kegel.com>
120.12 -In-Reply-To: <40940B11.9080907@kegel.com>
120.13 -
120.14 -On Sat, May 01, 2004 at 01:39:45PM -0700, Dan Kegel wrote:
120.15 -> I'm having a bit of trouble configuring gcc-3.4.0 for sparc64-linux.
120.16 -> The resulting compiler defaults to sparc32, which is a problem
120.17 -> because it means having to figure out how to add
120.18 -> -mcpu=ultrasparc3 -Wa,-Av9a -m64 to CFLAGS for everything I build.
120.19 -> The worst part is that this even affects libgcc.a, which makes it
120.20 -> pretty hard to link any sparc64 executables. I could figure out
120.21 -> how mklibgcc and multilibbing work, and maybe thereby get a good 64 bit
120.22 -> libgcc.a,
120.23 -> but I'd kind of like to avoid that for the moment, and just really get
120.24 -> gcc to default to 64 bit output.
120.25 ->
120.26 -> What's the right way to get gcc to default to building 64 bit executables
120.27 -> when targeting sparc64-linux?
120.28 -
120.29 -There was TARGET_CPU_ultrasparc3 missing in linux64.h.
120.30 -I've commited the following fix to the trunk, but as it is not a regression,
120.31 -I'm not sure if Mark is ok with this for gcc-3_4-branch.
120.32 -
120.33 -2004-05-01 Jakub Jelinek <jakub@redhat.com>
120.34 -
120.35 - * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
120.36 - also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
120.37 -
120.38 ---- gcc-3.4.0/gcc/config/sparc/linux64.h.jj 2004-05-01 22:59:52.000000000 +0200
120.39 -+++ gcc-3.4.0/gcc/config/sparc/linux64.h 2004-05-01 23:00:41.126176529 +0200
120.40 -@@ -39,7 +39,9 @@ Boston, MA 02111-1307, USA. */
120.41 - #undef MD_EXEC_PREFIX
120.42 - #undef MD_STARTFILE_PREFIX
120.43 -
120.44 --#if TARGET_CPU_DEFAULT == TARGET_CPU_v9 || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc
120.45 -+#if TARGET_CPU_DEFAULT == TARGET_CPU_v9 \
120.46 -+ || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc \
120.47 -+ || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3
120.48 - /* A 64 bit v9 compiler with stack-bias,
120.49 - in a Medium/Low code model environment. */
120.50 -
120.51 -
120.52 - Jakub
120.53 -
120.54 -
120.55 -
121.1 --- a/patches/gcc/3.4.0/pr13250-fix.patch Tue Aug 14 19:32:22 2007 +0000
121.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
121.3 @@ -1,19 +0,0 @@
121.4 -See http://gcc.gnu.org/PR13250
121.5 -Fixes bad code generated when compiling SHA256 for SH processor
121.6 -
121.7 -===================================================================
121.8 -RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.md,v
121.9 -retrieving revision 1.171
121.10 -retrieving revision 1.172
121.11 -diff -u -r1.171 -r1.172
121.12 ---- gcc/gcc/config/sh/sh.md 2004/05/10 23:25:13 1.171
121.13 -+++ gcc/gcc/config/sh/sh.md 2004/05/28 05:47:36 1.172
121.14 -@@ -2194,7 +2194,7 @@
121.15 - parts[0] = gen_reg_rtx (SImode);
121.16 - parts[1] = gen_reg_rtx (SImode);
121.17 - emit_insn (gen_rotlsi3_16 (parts[2-choice], operands[1]));
121.18 -- parts[choice-1] = operands[1];
121.19 -+ emit_move_insn (parts[choice-1], operands[1]);
121.20 - emit_insn (gen_ashlsi3 (parts[0], parts[0], GEN_INT (8)));
121.21 - emit_insn (gen_lshrsi3 (parts[1], parts[1], GEN_INT (8)));
121.22 - emit_insn (gen_iorsi3 (operands[0], parts[0], parts[1]));
122.1 --- a/patches/gcc/3.4.0/pr15647-fix.patch Tue Aug 14 19:32:22 2007 +0000
122.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
122.3 @@ -1,288 +0,0 @@
122.4 -Received: (qmail 11693 invoked from network); 26 May 2004 03:17:41 -0000
122.5 -Received: from unknown (HELO r-rr.iij4u.or.jp) (210.130.0.76)
122.6 - by sourceware dot org with SMTP; 26 May 2004 03:17:41 -0000
122.7 -Received: from localhost (frgw.3in.ne.jp [210.251.121.226])
122.8 - by r-rr dot iij4u dot or dot jp (8 dot 11 dot 6+IIJ/8 dot 11 dot 6) with ESMTP id i4Q3HbJ21421;
122.9 - Wed, 26 May 2004 12:17:37 +0900 (JST)
122.10 -Date: Wed, 26 May 2004 12:13:58 +0900 (JST)
122.11 -Message-Id: <20040526.121358.39460214.kkojima@rr.iij4u.or.jp>
122.12 -To: gcc-patches at gcc dot gnu dot org
122.13 -Cc: Mark Mitchell <mark at codesourcery dot com>
122.14 -Subject: [PATCH] Fix PR target/15647 for sh-linux
122.15 -From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
122.16 -Mime-Version: 1.0
122.17 -Content-Type: Text/Plain; charset=us-ascii
122.18 -Content-Transfer-Encoding: 7bit
122.19 -
122.20 -Hi,
122.21 -
122.22 -The appended patch is to fix PR target/15647
122.23 - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15647
122.24 -for linux.
122.25 -__udivsi3 is exported from libgcc_s.so.1 and gcc generates the code
122.26 -which assumes r1 will be not clobbered when calling __udivsi3 in SH3
122.27 -case. This is bad because r1 is clobbered by PLT.
122.28 -The another functions listed in the standard libgcc-std.ver which
122.29 -possively have similar problem are __ashlsi3, __ashrsi3 and __lshrsi3,
122.30 -though these are used only by SH1/2.
122.31 -The patch below simply uses an SH specific libgcc-std.ver which drops
122.32 -these functions. SH linux uses a linker script libgcc_s.so having
122.33 -libgcc.a as a suppementary library, so these functions given by
122.34 -libgcc.a when needed in the link time.
122.35 -Although mainline has one failure in bulding zlib which can be avoided
122.36 -with -fno-reorder-blocks for sh3-unknown-linux-gnu target, x86 cross
122.37 -to sh3-unknown-linux-gnu can be build successfully on mainline with
122.38 -this patch except the above failure. 3.4-branch successfully bootstraps
122.39 -with it and there are no new failures on the native sh4-unknown-linux-gnu.
122.40 -The patch is highly sh-linux specific and seems to be safe. I'll check
122.41 -it into mainline.
122.42 -The original PR is also for sh3 netbsd. I'd like to leave it for the
122.43 -netbsd experts.
122.44 -
122.45 -I think that it's too late for 3.3.4. Mark, is it also late for
122.46 -3.4.1?
122.47 -
122.48 -Regards,
122.49 - kaz
122.50 ---
122.51 -2004-05-26 Kaz Kojima <kkojima@gcc.gnu.org>
122.52 -
122.53 - * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
122.54 - libgcc-std.ver.
122.55 - * config/sh/libgcc-std.ver: New file.
122.56 -
122.57 -diff -u3prN ORIG-gcc/gcc/config/sh/t-linux LOCAL-gcc/gcc/config/sh/t-linux
122.58 ---- ORIG-gcc/gcc/config/sh/t-linux Mon Feb 16 20:13:25 2004
122.59 -+++ LOCAL-gcc/gcc/config/sh/t-linux Tue May 25 18:25:48 2004
122.60 -@@ -11,8 +11,11 @@ MULTILIB_EXCEPTIONS=
122.61 - EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
122.62 -
122.63 - # Override t-slibgcc-elf-ver to export some libgcc symbols with
122.64 --# the symbol versions that glibc used.
122.65 --SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/sh/libgcc-glibc.ver
122.66 -+# the symbol versions that glibc used. Also use an sh specific
122.67 -+# libgcc-std.ver to avoid to export some lib1func routines which
122.68 -+# should not be called via PLT.
122.69 -+SHLIB_MAPFILES = $(srcdir)/config/sh/libgcc-std.ver \
122.70 -+ $(srcdir)/config/sh/libgcc-glibc.ver
122.71 -
122.72 - # Override SHLIB_LINK and SHLIB_INSTALL to use linker script
122.73 - # libgcc_s.so.
122.74 -diff -u3prN ORIG-gcc/gcc/config/sh/libgcc-std.ver LOCAL-gcc/gcc/config/sh/libgcc-std.ver
122.75 ---- ORIG-gcc/gcc/config/sh/libgcc-std.ver Thu Jan 1 09:00:00 1970
122.76 -+++ LOCAL-gcc/gcc/config/sh/libgcc-std.ver Tue May 25 18:50:54 2004
122.77 -@@ -0,0 +1,213 @@
122.78 -+GCC_3.0 {
122.79 -+ # libgcc1 integer symbols
122.80 -+ __absvsi2
122.81 -+ __addvsi3
122.82 -+ # __ashlsi3
122.83 -+ # __ashrsi3
122.84 -+ __divsi3
122.85 -+ # __lshrsi3
122.86 -+ __modsi3
122.87 -+ __mulsi3
122.88 -+ __mulvsi3
122.89 -+ __negvsi2
122.90 -+ __subvsi3
122.91 -+ # __udivsi3
122.92 -+ __umodsi3
122.93 -+
122.94 -+ # libgcc1 floating point symbols
122.95 -+ __addsf3
122.96 -+ __adddf3
122.97 -+ __addxf3
122.98 -+ __addtf3
122.99 -+ __divsf3
122.100 -+ __divdf3
122.101 -+ __divxf3
122.102 -+ __divtf3
122.103 -+ __eqsf2
122.104 -+ __eqdf2
122.105 -+ __eqxf2
122.106 -+ __eqtf2
122.107 -+ __extenddfxf2
122.108 -+ __extenddftf2
122.109 -+ __extendsfdf2
122.110 -+ __extendsfxf2
122.111 -+ __extendsftf2
122.112 -+ __fixsfsi
122.113 -+ __fixdfsi
122.114 -+ __fixxfsi
122.115 -+ __fixtfsi
122.116 -+ __floatsisf
122.117 -+ __floatsidf
122.118 -+ __floatsixf
122.119 -+ __floatsitf
122.120 -+ __gesf2
122.121 -+ __gedf2
122.122 -+ __gexf2
122.123 -+ __getf2
122.124 -+ __gtsf2
122.125 -+ __gtdf2
122.126 -+ __gtxf2
122.127 -+ __gttf2
122.128 -+ __lesf2
122.129 -+ __ledf2
122.130 -+ __lexf2
122.131 -+ __letf2
122.132 -+ __ltsf2
122.133 -+ __ltdf2
122.134 -+ __ltxf2
122.135 -+ __lttf2
122.136 -+ __mulsf3
122.137 -+ __muldf3
122.138 -+ __mulxf3
122.139 -+ __multf3
122.140 -+ __negsf2
122.141 -+ __negdf2
122.142 -+ __negxf2
122.143 -+ __negtf2
122.144 -+ __nesf2
122.145 -+ __nedf2
122.146 -+ __nexf2
122.147 -+ __netf2
122.148 -+ __subsf3
122.149 -+ __subdf3
122.150 -+ __subxf3
122.151 -+ __subtf3
122.152 -+ __truncdfsf2
122.153 -+ __truncxfsf2
122.154 -+ __trunctfsf2
122.155 -+ __truncxfdf2
122.156 -+ __trunctfdf2
122.157 -+
122.158 -+ # libgcc2 DImode arithmetic (for 32-bit targets).
122.159 -+ __absvdi2
122.160 -+ __addvdi3
122.161 -+ __ashldi3
122.162 -+ __ashrdi3
122.163 -+ __cmpdi2
122.164 -+ __divdi3
122.165 -+ __ffsdi2
122.166 -+ __fixdfdi
122.167 -+ __fixsfdi
122.168 -+ __fixtfdi
122.169 -+ __fixxfdi
122.170 -+ __fixunsdfdi
122.171 -+ __fixunsdfsi
122.172 -+ __fixunssfsi
122.173 -+ __fixunssfdi
122.174 -+ __fixunstfdi
122.175 -+ __fixunstfsi
122.176 -+ __fixunsxfdi
122.177 -+ __fixunsxfsi
122.178 -+ __floatdidf
122.179 -+ __floatdisf
122.180 -+ __floatdixf
122.181 -+ __floatditf
122.182 -+ __lshrdi3
122.183 -+ __moddi3
122.184 -+ __muldi3
122.185 -+ __mulvdi3
122.186 -+ __negdi2
122.187 -+ __negvdi2
122.188 -+ __subvdi3
122.189 -+ __ucmpdi2
122.190 -+ __udivdi3
122.191 -+ __udivmoddi4
122.192 -+ __umoddi3
122.193 -+
122.194 -+ # libgcc2 TImode arithmetic (for 64-bit targets).
122.195 -+ __ashlti3
122.196 -+ __ashrti3
122.197 -+ __cmpti2
122.198 -+ __divti3
122.199 -+ __ffsti2
122.200 -+ __fixdfti
122.201 -+ __fixsfti
122.202 -+ __fixtfti
122.203 -+ __fixxfti
122.204 -+ __lshrti3
122.205 -+ __modti3
122.206 -+ __multi3
122.207 -+ __negti2
122.208 -+ __ucmpti2
122.209 -+ __udivmodti4
122.210 -+ __udivti3
122.211 -+ __umodti3
122.212 -+ __fixunsdfti
122.213 -+ __fixunssfti
122.214 -+ __fixunstfti
122.215 -+ __fixunsxfti
122.216 -+ __floattidf
122.217 -+ __floattisf
122.218 -+ __floattixf
122.219 -+ __floattitf
122.220 -+
122.221 -+ # Used to deal with trampoline initialization on some platforms
122.222 -+ __clear_cache
122.223 -+
122.224 -+ # EH symbols
122.225 -+ _Unwind_DeleteException
122.226 -+ _Unwind_Find_FDE
122.227 -+ _Unwind_ForcedUnwind
122.228 -+ _Unwind_GetGR
122.229 -+ _Unwind_GetIP
122.230 -+ _Unwind_GetLanguageSpecificData
122.231 -+ _Unwind_GetRegionStart
122.232 -+ _Unwind_GetTextRelBase
122.233 -+ _Unwind_GetDataRelBase
122.234 -+ _Unwind_RaiseException
122.235 -+ _Unwind_Resume
122.236 -+ _Unwind_SetGR
122.237 -+ _Unwind_SetIP
122.238 -+ __deregister_frame
122.239 -+ __deregister_frame_info
122.240 -+ __deregister_frame_info_bases
122.241 -+ __register_frame
122.242 -+ __register_frame_info
122.243 -+ __register_frame_info_bases
122.244 -+ __register_frame_info_table
122.245 -+ __register_frame_info_table_bases
122.246 -+ __register_frame_table
122.247 -+
122.248 -+ # SjLj EH symbols
122.249 -+ _Unwind_SjLj_Register
122.250 -+ _Unwind_SjLj_Unregister
122.251 -+ _Unwind_SjLj_RaiseException
122.252 -+ _Unwind_SjLj_ForcedUnwind
122.253 -+ _Unwind_SjLj_Resume
122.254 -+}
122.255 -+
122.256 -+%inherit GCC_3.3 GCC_3.0
122.257 -+GCC_3.3 {
122.258 -+ _Unwind_FindEnclosingFunction
122.259 -+ _Unwind_GetCFA
122.260 -+ _Unwind_Backtrace
122.261 -+ _Unwind_Resume_or_Rethrow
122.262 -+ _Unwind_SjLj_Resume_or_Rethrow
122.263 -+}
122.264 -+
122.265 -+%inherit GCC_3.3.1 GCC_3.3
122.266 -+GCC_3.3.1 {
122.267 -+ __gcc_personality_sj0
122.268 -+ __gcc_personality_v0
122.269 -+}
122.270 -+
122.271 -+%inherit GCC_3.3.2 GCC_3.3.1
122.272 -+GCC_3.3.2 {
122.273 -+}
122.274 -+
122.275 -+%inherit GCC_3.4 GCC_3.3.2
122.276 -+GCC_3.4 {
122.277 -+ # bit scanning and counting built-ins
122.278 -+ __clzsi2
122.279 -+ __clzdi2
122.280 -+ __clzti2
122.281 -+ __ctzsi2
122.282 -+ __ctzdi2
122.283 -+ __ctzti2
122.284 -+ __popcountsi2
122.285 -+ __popcountdi2
122.286 -+ __popcountti2
122.287 -+ __paritysi2
122.288 -+ __paritydi2
122.289 -+ __parityti2
122.290 -+}
122.291 -
123.1 --- a/patches/gcc/3.4.1/fix-fixincl.patch Tue Aug 14 19:32:22 2007 +0000
123.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
123.3 @@ -1,70 +0,0 @@
123.4 -See http://gcc.gnu.org/PR22541
123.5 -
123.6 -From: Dan Kegel
123.7 -
123.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
123.9 -(the only two I've tried like this), the configure script happily copies
123.10 -the glibc include files from include to sys-include; here's the line
123.11 -from the log file (with $PREFIX instead of the real prefix):
123.12 -
123.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
123.14 -
123.15 -But later, when running fixincludes, it gives the error message
123.16 - The directory that should contain system headers does not exist:
123.17 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
123.18 -
123.19 -Nevertheless, it continues building; the header files it installs in
123.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
123.21 -do not include the boilerplate that would cause it to #include_next the
123.22 -glibc headers in the system header directory.
123.23 -Thus the resulting toolchain can't compile the following program:
123.24 -#include <limits.h>
123.25 -int x = PATH_MAX;
123.26 -because its limits.h doesn't include the glibc header.
123.27 -
123.28 -That's not nice. I suspect the problem is that gcc/Makefile.in assumes that
123.29 -it can refer to $PREFIX/i686-unknown-linux-gnu with the path
123.30 - $PREFIX/lib/../i686-unknown-linux-gnu, but
123.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
123.32 -it is only created later, during 'make install'. (Which makes this problem
123.33 -confusing, since one only notices the breakage well after 'make install',
123.34 -at which point the path configure complained about does exist, and has the
123.35 -right stuff in it.)
123.36 -
123.37 -A possible fix is to replace the line in gcc/Makefile.in that says
123.38 - SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
123.39 -with a version that gets rid of extra ..'s, e.g.
123.40 - SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
123.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
123.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
123.43 -
123.44 -
123.45 ---- gcc-3.4.3/gcc/Makefile.in.foo 2005-05-20 11:41:39.000000000 -0700
123.46 -+++ gcc-3.4.3/gcc/Makefile.in 2005-05-20 12:08:46.000000000 -0700
123.47 -@@ -350,7 +350,10 @@
123.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
123.49 -
123.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
123.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
123.52 -+# Purge it of unneccessary internal relative paths
123.53 -+# to directories that might not exist yet.
123.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
123.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
123.56 -
123.57 - # Control whether to run fixproto and fixincludes.
123.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
123.59 -@@ -2532,11 +2535,13 @@
123.60 - $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
123.61 -
123.62 - # Build fixed copies of system files.
123.63 -+# Abort if no system headers available, unless building a crosscompiler.
123.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
123.65 - stmp-fixinc: fixinc.sh gsyslimits.h
123.66 - @if test ! -d ${SYSTEM_HEADER_DIR}; then \
123.67 - echo The directory that should contain system headers does not exist: >&2 ; \
123.68 - echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
123.69 -- if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
123.70 -+ if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
123.71 - then sleep 1; else exit 1; fi; \
123.72 - fi
123.73 - rm -rf include; mkdir include
124.1 --- a/patches/gcc/3.4.1/gcc-3.4-sparc-pr16430-fix.patch Tue Aug 14 19:32:22 2007 +0000
124.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
124.3 @@ -1,42 +0,0 @@
124.4 -Message-ID: <33159.207.230.144.240.1093980498.squirrel@207.230.144.240>
124.5 -Date: Tue, 31 Aug 2004 14:28:18 -0500 (CDT)
124.6 -Subject: Crosstool 0.28-rc35
124.7 -From: "Jason Rothstein" <fdragon@fdragon.org>
124.8 -To: dank@kegel.com
124.9 -
124.10 -Could you please add the patches in GCC PR 16430 to GCC 3.4.1?
124.11 -
124.12 -http://gcc.gnu.org/PR16430
124.13 -
124.14 -These fix one of 2 current ICE conditions when building a sparc64 ada
124.15 -compilers.
124.16 -
124.17 -
124.18 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.271.4.16&r2=1.271.4.17
124.19 -
124.20 -===================================================================
124.21 -RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v
124.22 -retrieving revision 1.271.4.16
124.23 -retrieving revision 1.271.4.17
124.24 -diff -u -r1.271.4.16 -r1.271.4.17
124.25 ---- gcc/gcc/config/sparc/sparc.c 2004/07/08 13:00:56 1.271.4.16
124.26 -+++ gcc/gcc/config/sparc/sparc.c 2004/07/08 14:36:51 1.271.4.17
124.27 -@@ -5808,6 +5808,18 @@
124.28 - abort ();
124.29 -
124.30 - mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 0);
124.31 -+
124.32 -+ /* ??? We probably should have made the same ABI change in
124.33 -+ 3.4.0 as the one we made for unions. The latter was
124.34 -+ required by the SCD though, while the former is not
124.35 -+ specified, so we favored compatibility and efficiency.
124.36 -+
124.37 -+ Now we're stuck for aggregates larger than 16 bytes,
124.38 -+ because OImode vanished in the meantime. Let's not
124.39 -+ try to be unduly clever, and simply follow the ABI
124.40 -+ for unions in that case. */
124.41 -+ if (mode == BLKmode)
124.42 -+ return function_arg_union_value (bytes, mode, regbase);
124.43 - }
124.44 - else if (GET_MODE_CLASS (mode) == MODE_INT
124.45 - && GET_MODE_SIZE (mode) < UNITS_PER_WORD)
125.1 --- a/patches/gcc/3.4.1/gcc-3.4.0-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
125.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
125.3 @@ -1,70 +0,0 @@
125.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
125.5 -Adds support for arm*b-linux* big-endian ARM targets
125.6 -
125.7 -See http://gcc.gnu.org/PR16350
125.8 -
125.9 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
125.10 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
125.11 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-07-02 14:46:29.225443757 +0200
125.12 -@@ -30,17 +30,34 @@
125.13 - /* Do not assume anything about header files. */
125.14 - #define NO_IMPLICIT_EXTERN_C
125.15 -
125.16 -+/*
125.17 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
125.18 -+ * (big endian) configurations.
125.19 -+ */
125.20 -+#if TARGET_BIG_ENDIAN_DEFAULT
125.21 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
125.22 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
125.23 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
125.24 -+#else
125.25 -+#define TARGET_ENDIAN_DEFAULT 0
125.26 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
125.27 -+#define TARGET_LINKER_EMULATION "armelf_linux"
125.28 -+#endif
125.29 -+
125.30 - /* Default is to use APCS-32 mode. */
125.31 - #undef TARGET_DEFAULT
125.32 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
125.33 -+#define TARGET_DEFAULT \
125.34 -+ ( ARM_FLAG_APCS_32 | \
125.35 -+ ARM_FLAG_MMU_TRAPS | \
125.36 -+ TARGET_ENDIAN_DEFAULT )
125.37 -
125.38 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
125.39 -
125.40 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
125.41 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
125.42 -
125.43 - #undef MULTILIB_DEFAULTS
125.44 - #define MULTILIB_DEFAULTS \
125.45 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
125.46 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
125.47 -
125.48 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
125.49 -
125.50 -@@ -89,7 +106,7 @@
125.51 - %{rdynamic:-export-dynamic} \
125.52 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
125.53 - -X \
125.54 -- %{mbig-endian:-EB}" \
125.55 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
125.56 - SUBTARGET_EXTRA_LINK_SPEC
125.57 -
125.58 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
125.59 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
125.60 ---- gcc-3.4.0.orig/gcc/config.gcc 2004-04-17 04:28:24.000000000 +0200
125.61 -+++ gcc-3.4.0/gcc/config.gcc 2004-07-02 14:44:40.045822542 +0200
125.62 -@@ -666,6 +666,11 @@
125.63 - ;;
125.64 - arm*-*-linux*) # ARM GNU/Linux with ELF
125.65 - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
125.66 -+ case $target in
125.67 -+ arm*b-*)
125.68 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
125.69 -+ ;;
125.70 -+ esac
125.71 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
125.72 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
125.73 - gnu_ld=yes
126.1 --- a/patches/gcc/3.4.1/gcc-3.4.0-arm-lib1asm.patch Tue Aug 14 19:32:22 2007 +0000
126.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
126.3 @@ -1,27 +0,0 @@
126.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
126.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
126.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
126.7 -# Fixes errors like the following when building glibc (or any other executable
126.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
126.9 -#
126.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
126.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
126.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
126.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
126.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
126.15 -
126.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
126.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200
126.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux 2004-05-01 20:31:59.102846400 +0200
126.19 -@@ -4,7 +4,10 @@
126.20 - LIBGCC2_DEBUG_CFLAGS = -g0
126.21 -
126.22 - LIB1ASMSRC = arm/lib1funcs.asm
126.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
126.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
126.25 -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
126.26 -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
126.27 -+ _fixsfsi _fixunssfsi
126.28 -
126.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
126.30 - # MULTILIB_DIRNAMES = hard-float soft-float
127.1 --- a/patches/gcc/3.4.1/gcc-3.4.0-arm-nolibfloat.patch Tue Aug 14 19:32:22 2007 +0000
127.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
127.3 @@ -1,24 +0,0 @@
127.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
127.5 -#
127.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
127.7 -# anymore. (The required functions are now in libgcc.)
127.8 -#
127.9 -# Fixes errors like
127.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
127.11 -# collect2: ld returned 1 exit status
127.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
127.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
127.14 -
127.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
127.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
127.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-05-01 19:19:06.935979200 +0200
127.18 -@@ -55,7 +73,7 @@
127.19 - %{shared:-lc} \
127.20 - %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
127.21 -
127.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
127.23 -+#define LIBGCC_SPEC "-lgcc"
127.24 -
127.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
127.26 - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
127.27 -
128.1 --- a/patches/gcc/3.4.1/pr15068-fix.patch Tue Aug 14 19:32:22 2007 +0000
128.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
128.3 @@ -1,44 +0,0 @@
128.4 -See http://gcc.gnu.org/PR15068
128.5 -
128.6 -Fixes error
128.7 -
128.8 -../sysdeps/generic/s_fmax.c: In function `__fmax':
128.9 -../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
128.10 -Please submit a full bug report,
128.11 -with preprocessed source if appropriate.
128.12 -See <URL:http://gcc.gnu.org/bugs.html> for instructions.
128.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
128.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
128.15 -make[1]: *** [math/others] Error 2
128.16 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
128.17 -make: *** [all] Error 2
128.18 -
128.19 -[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
128.20 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
128.21 -
128.22 ---- gcc-3.4.1/gcc/flow.c.old 2004-02-27 19:39:19.000000000 -0800
128.23 -+++ gcc-3.4.1/gcc/flow.c 2004-08-26 07:29:46.000000000 -0700
128.24 -@@ -1878,6 +1878,7 @@
128.25 - rtx set_src = SET_SRC (pc_set (BB_END (bb)));
128.26 - rtx cond_true = XEXP (set_src, 0);
128.27 - rtx reg = XEXP (cond_true, 0);
128.28 -+ enum rtx_code inv_cond;
128.29 -
128.30 - if (GET_CODE (reg) == SUBREG)
128.31 - reg = SUBREG_REG (reg);
128.32 -@@ -1886,11 +1887,13 @@
128.33 - in the form of a comparison of a register against zero.
128.34 - If the condition is more complex than that, then it is safe
128.35 - not to record any information. */
128.36 -- if (GET_CODE (reg) == REG
128.37 -+ inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
128.38 -+ if (inv_cond != UNKNOWN
128.39 -+ && GET_CODE (reg) == REG
128.40 - && XEXP (cond_true, 1) == const0_rtx)
128.41 - {
128.42 - rtx cond_false
128.43 -- = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
128.44 -+ = gen_rtx_fmt_ee (inv_cond,
128.45 - GET_MODE (cond_true), XEXP (cond_true, 0),
128.46 - XEXP (cond_true, 1));
128.47 - if (GET_CODE (XEXP (set_src, 1)) == PC)
129.1 --- a/patches/gcc/3.4.2/gcc-3.4.0-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
129.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
129.3 @@ -1,82 +0,0 @@
129.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
129.5 -Adds support for arm*b-linux* big-endian ARM targets
129.6 -
129.7 -Fixes build error
129.8 -
129.9 -/opt/crosstool/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/armeb-unknown-linux-gnu/bin/ld: unrecognised emulation mode: armelf_linux
129.10 -Supported emulations: armelfb_linux armelfb
129.11 -collect2: ld returned 1 exit status
129.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/build-glibc/csu/crt1.o] Error 1
129.13 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3/csu'
129.14 -make[1]: *** [csu/subdir_lib] Error 2
129.15 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3'
129.16 -make: *** [all] Error 2
129.17 -
129.18 -
129.19 -See http://gcc.gnu.org/PR16350
129.20 -
129.21 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
129.22 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
129.23 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-07-02 14:46:29.225443757 +0200
129.24 -@@ -30,17 +30,34 @@
129.25 - /* Do not assume anything about header files. */
129.26 - #define NO_IMPLICIT_EXTERN_C
129.27 -
129.28 -+/*
129.29 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
129.30 -+ * (big endian) configurations.
129.31 -+ */
129.32 -+#if TARGET_BIG_ENDIAN_DEFAULT
129.33 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
129.34 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
129.35 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
129.36 -+#else
129.37 -+#define TARGET_ENDIAN_DEFAULT 0
129.38 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
129.39 -+#define TARGET_LINKER_EMULATION "armelf_linux"
129.40 -+#endif
129.41 -+
129.42 - /* Default is to use APCS-32 mode. */
129.43 - #undef TARGET_DEFAULT
129.44 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
129.45 -+#define TARGET_DEFAULT \
129.46 -+ ( ARM_FLAG_APCS_32 | \
129.47 -+ ARM_FLAG_MMU_TRAPS | \
129.48 -+ TARGET_ENDIAN_DEFAULT )
129.49 -
129.50 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
129.51 -
129.52 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
129.53 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
129.54 -
129.55 - #undef MULTILIB_DEFAULTS
129.56 - #define MULTILIB_DEFAULTS \
129.57 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
129.58 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
129.59 -
129.60 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
129.61 -
129.62 -@@ -89,7 +106,7 @@
129.63 - %{rdynamic:-export-dynamic} \
129.64 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
129.65 - -X \
129.66 -- %{mbig-endian:-EB}" \
129.67 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
129.68 - SUBTARGET_EXTRA_LINK_SPEC
129.69 -
129.70 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
129.71 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
129.72 ---- gcc-3.4.0.orig/gcc/config.gcc 2004-04-17 04:28:24.000000000 +0200
129.73 -+++ gcc-3.4.0/gcc/config.gcc 2004-07-02 14:44:40.045822542 +0200
129.74 -@@ -666,6 +666,11 @@
129.75 - ;;
129.76 - arm*-*-linux*) # ARM GNU/Linux with ELF
129.77 - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
129.78 -+ case $target in
129.79 -+ arm*b-*)
129.80 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
129.81 -+ ;;
129.82 -+ esac
129.83 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
129.84 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
129.85 - gnu_ld=yes
130.1 --- a/patches/gcc/3.4.2/gcc-3.4.0-arm-lib1asm.patch Tue Aug 14 19:32:22 2007 +0000
130.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
130.3 @@ -1,27 +0,0 @@
130.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
130.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
130.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
130.7 -# Fixes errors like the following when building glibc (or any other executable
130.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
130.9 -#
130.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
130.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
130.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
130.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
130.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
130.15 -
130.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
130.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200
130.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux 2004-05-01 20:31:59.102846400 +0200
130.19 -@@ -4,7 +4,10 @@
130.20 - LIBGCC2_DEBUG_CFLAGS = -g0
130.21 -
130.22 - LIB1ASMSRC = arm/lib1funcs.asm
130.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
130.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
130.25 -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
130.26 -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
130.27 -+ _fixsfsi _fixunssfsi
130.28 -
130.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
130.30 - # MULTILIB_DIRNAMES = hard-float soft-float
131.1 --- a/patches/gcc/3.4.2/gcc-3.4.0-arm-nolibfloat.patch Tue Aug 14 19:32:22 2007 +0000
131.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
131.3 @@ -1,24 +0,0 @@
131.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
131.5 -#
131.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
131.7 -# anymore. (The required functions are now in libgcc.)
131.8 -#
131.9 -# Fixes errors like
131.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
131.11 -# collect2: ld returned 1 exit status
131.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
131.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
131.14 -
131.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
131.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
131.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-05-01 19:19:06.935979200 +0200
131.18 -@@ -55,7 +73,7 @@
131.19 - %{shared:-lc} \
131.20 - %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
131.21 -
131.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
131.23 -+#define LIBGCC_SPEC "-lgcc"
131.24 -
131.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
131.26 - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
131.27 -
132.1 --- a/patches/gcc/3.4.3/fix-fixincl.patch Tue Aug 14 19:32:22 2007 +0000
132.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
132.3 @@ -1,70 +0,0 @@
132.4 -See http://gcc.gnu.org/PR22541
132.5 -
132.6 -From: Dan Kegel
132.7 -
132.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
132.9 -(the only two I've tried like this), the configure script happily copies
132.10 -the glibc include files from include to sys-include; here's the line
132.11 -from the log file (with $PREFIX instead of the real prefix):
132.12 -
132.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
132.14 -
132.15 -But later, when running fixincludes, it gives the error message
132.16 - The directory that should contain system headers does not exist:
132.17 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
132.18 -
132.19 -Nevertheless, it continues building; the header files it installs in
132.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
132.21 -do not include the boilerplate that would cause it to #include_next the
132.22 -glibc headers in the system header directory.
132.23 -Thus the resulting toolchain can't compile the following program:
132.24 -#include <limits.h>
132.25 -int x = PATH_MAX;
132.26 -because its limits.h doesn't include the glibc header.
132.27 -
132.28 -That's not nice. I suspect the problem is that gcc/Makefile.in assumes that
132.29 -it can refer to $PREFIX/i686-unknown-linux-gnu with the path
132.30 - $PREFIX/lib/../i686-unknown-linux-gnu, but
132.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
132.32 -it is only created later, during 'make install'. (Which makes this problem
132.33 -confusing, since one only notices the breakage well after 'make install',
132.34 -at which point the path configure complained about does exist, and has the
132.35 -right stuff in it.)
132.36 -
132.37 -A possible fix is to replace the line in gcc/Makefile.in that says
132.38 - SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
132.39 -with a version that gets rid of extra ..'s, e.g.
132.40 - SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
132.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
132.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
132.43 -
132.44 -
132.45 ---- gcc-3.4.3/gcc/Makefile.in.foo 2005-05-20 11:41:39.000000000 -0700
132.46 -+++ gcc-3.4.3/gcc/Makefile.in 2005-05-20 12:08:46.000000000 -0700
132.47 -@@ -350,7 +350,10 @@
132.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
132.49 -
132.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
132.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
132.52 -+# Purge it of unneccessary internal relative paths
132.53 -+# to directories that might not exist yet.
132.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
132.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
132.56 -
132.57 - # Control whether to run fixproto and fixincludes.
132.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
132.59 -@@ -2532,11 +2535,13 @@
132.60 - $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
132.61 -
132.62 - # Build fixed copies of system files.
132.63 -+# Abort if no system headers available, unless building a crosscompiler.
132.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
132.65 - stmp-fixinc: fixinc.sh gsyslimits.h
132.66 - @if test ! -d ${SYSTEM_HEADER_DIR}; then \
132.67 - echo The directory that should contain system headers does not exist: >&2 ; \
132.68 - echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
132.69 -- if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
132.70 -+ if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
132.71 - then sleep 1; else exit 1; fi; \
132.72 - fi
132.73 - rm -rf include; mkdir include
133.1 --- a/patches/gcc/3.4.3/gcc-3.4.0-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
133.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
133.3 @@ -1,82 +0,0 @@
133.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
133.5 -Adds support for arm*b-linux* big-endian ARM targets
133.6 -
133.7 -Fixes build error
133.8 -
133.9 -/opt/crosstool/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/armeb-unknown-linux-gnu/bin/ld: unrecognised emulation mode: armelf_linux
133.10 -Supported emulations: armelfb_linux armelfb
133.11 -collect2: ld returned 1 exit status
133.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/build-glibc/csu/crt1.o] Error 1
133.13 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3/csu'
133.14 -make[1]: *** [csu/subdir_lib] Error 2
133.15 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3'
133.16 -make: *** [all] Error 2
133.17 -
133.18 -
133.19 -See http://gcc.gnu.org/PR16350
133.20 -
133.21 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
133.22 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
133.23 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-07-02 14:46:29.225443757 +0200
133.24 -@@ -30,17 +30,34 @@
133.25 - /* Do not assume anything about header files. */
133.26 - #define NO_IMPLICIT_EXTERN_C
133.27 -
133.28 -+/*
133.29 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
133.30 -+ * (big endian) configurations.
133.31 -+ */
133.32 -+#if TARGET_BIG_ENDIAN_DEFAULT
133.33 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
133.34 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
133.35 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
133.36 -+#else
133.37 -+#define TARGET_ENDIAN_DEFAULT 0
133.38 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
133.39 -+#define TARGET_LINKER_EMULATION "armelf_linux"
133.40 -+#endif
133.41 -+
133.42 - /* Default is to use APCS-32 mode. */
133.43 - #undef TARGET_DEFAULT
133.44 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
133.45 -+#define TARGET_DEFAULT \
133.46 -+ ( ARM_FLAG_APCS_32 | \
133.47 -+ ARM_FLAG_MMU_TRAPS | \
133.48 -+ TARGET_ENDIAN_DEFAULT )
133.49 -
133.50 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
133.51 -
133.52 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
133.53 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
133.54 -
133.55 - #undef MULTILIB_DEFAULTS
133.56 - #define MULTILIB_DEFAULTS \
133.57 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
133.58 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
133.59 -
133.60 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
133.61 -
133.62 -@@ -89,7 +106,7 @@
133.63 - %{rdynamic:-export-dynamic} \
133.64 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
133.65 - -X \
133.66 -- %{mbig-endian:-EB}" \
133.67 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
133.68 - SUBTARGET_EXTRA_LINK_SPEC
133.69 -
133.70 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
133.71 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
133.72 ---- gcc-3.4.0.orig/gcc/config.gcc 2004-04-17 04:28:24.000000000 +0200
133.73 -+++ gcc-3.4.0/gcc/config.gcc 2004-07-02 14:44:40.045822542 +0200
133.74 -@@ -666,6 +666,11 @@
133.75 - ;;
133.76 - arm*-*-linux*) # ARM GNU/Linux with ELF
133.77 - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
133.78 -+ case $target in
133.79 -+ arm*b-*)
133.80 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
133.81 -+ ;;
133.82 -+ esac
133.83 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
133.84 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
133.85 - gnu_ld=yes
134.1 --- a/patches/gcc/3.4.3/gcc-3.4.0-arm-lib1asm.patch Tue Aug 14 19:32:22 2007 +0000
134.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
134.3 @@ -1,27 +0,0 @@
134.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
134.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
134.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
134.7 -# Fixes errors like the following when building glibc (or any other executable
134.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
134.9 -#
134.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
134.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
134.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
134.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
134.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
134.15 -
134.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
134.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200
134.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux 2004-05-01 20:31:59.102846400 +0200
134.19 -@@ -4,7 +4,10 @@
134.20 - LIBGCC2_DEBUG_CFLAGS = -g0
134.21 -
134.22 - LIB1ASMSRC = arm/lib1funcs.asm
134.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
134.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
134.25 -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
134.26 -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
134.27 -+ _fixsfsi _fixunssfsi
134.28 -
134.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
134.30 - # MULTILIB_DIRNAMES = hard-float soft-float
135.1 --- a/patches/gcc/3.4.3/gcc-3.4.0-arm-nolibfloat.patch Tue Aug 14 19:32:22 2007 +0000
135.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
135.3 @@ -1,24 +0,0 @@
135.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
135.5 -#
135.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
135.7 -# anymore. (The required functions are now in libgcc.)
135.8 -#
135.9 -# Fixes errors like
135.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
135.11 -# collect2: ld returned 1 exit status
135.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
135.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
135.14 -
135.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
135.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
135.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-05-01 19:19:06.935979200 +0200
135.18 -@@ -55,7 +73,7 @@
135.19 - %{shared:-lc} \
135.20 - %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
135.21 -
135.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
135.23 -+#define LIBGCC_SPEC "-lgcc"
135.24 -
135.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
135.26 - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
135.27 -
136.1 --- a/patches/gcc/3.4.3/pr15068-fix.patch Tue Aug 14 19:32:22 2007 +0000
136.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
136.3 @@ -1,44 +0,0 @@
136.4 -See http://gcc.gnu.org/PR15068
136.5 -
136.6 -Fixes error
136.7 -
136.8 -../sysdeps/generic/s_fmax.c: In function `__fmax':
136.9 -../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
136.10 -Please submit a full bug report,
136.11 -with preprocessed source if appropriate.
136.12 -See <URL:http://gcc.gnu.org/bugs.html> for instructions.
136.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
136.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
136.15 -make[1]: *** [math/others] Error 2
136.16 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
136.17 -make: *** [all] Error 2
136.18 -
136.19 -[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
136.20 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
136.21 -
136.22 ---- gcc-3.4.1/gcc/flow.c.old 2004-02-27 19:39:19.000000000 -0800
136.23 -+++ gcc-3.4.1/gcc/flow.c 2004-08-26 07:29:46.000000000 -0700
136.24 -@@ -1878,6 +1878,7 @@
136.25 - rtx set_src = SET_SRC (pc_set (BB_END (bb)));
136.26 - rtx cond_true = XEXP (set_src, 0);
136.27 - rtx reg = XEXP (cond_true, 0);
136.28 -+ enum rtx_code inv_cond;
136.29 -
136.30 - if (GET_CODE (reg) == SUBREG)
136.31 - reg = SUBREG_REG (reg);
136.32 -@@ -1886,11 +1887,13 @@
136.33 - in the form of a comparison of a register against zero.
136.34 - If the condition is more complex than that, then it is safe
136.35 - not to record any information. */
136.36 -- if (GET_CODE (reg) == REG
136.37 -+ inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
136.38 -+ if (inv_cond != UNKNOWN
136.39 -+ && GET_CODE (reg) == REG
136.40 - && XEXP (cond_true, 1) == const0_rtx)
136.41 - {
136.42 - rtx cond_false
136.43 -- = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
136.44 -+ = gen_rtx_fmt_ee (inv_cond,
136.45 - GET_MODE (cond_true), XEXP (cond_true, 0),
136.46 - XEXP (cond_true, 1));
136.47 - if (GET_CODE (XEXP (set_src, 1)) == PC)
137.1 --- a/patches/gcc/3.4.3/pr16201-fix.patch Tue Aug 14 19:32:22 2007 +0000
137.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
137.3 @@ -1,149 +0,0 @@
137.4 -See http://gcc.gnu.org/PR16201
137.5 -
137.6 -Should fix "bad immediate value for offset" errors for several flavors of arm, e.g.
137.7 -
137.8 -/tmp/ccmdoQyg.s: Assembler messages:
137.9 -/tmp/ccmdoQyg.s:6235: Error: bad immediate value for offset (4096)
137.10 -make[2]: *** [crosstool-0.32/build/arm-xscale-linux-gnu/gcc-3.4.3-glibc-2.3.3/build-glibc/locale/ld-collate.o] Error 1
137.11 -
137.12 -/tmp/cc0c7qop.s: Assembler messages:
137.13 -/tmp/cc0c7qop.s:6234: Error: bad immediate value for offset (4104)
137.14 -make[2]: *** [crosstool-0.32/build/armv5b-softfloat-linux/gcc-3.4.3-glibc-2.3.3/build-glibc/locale/ld-collate.o] Error 1
137.15 -
137.16 -
137.17 -CVSROOT: /cvs/gcc
137.18 -Module name: gcc
137.19 -Branch: gcc-3_4-branch
137.20 -Changes by: rearnsha@gcc.gnu.org 2005-02-01 15:07:05
137.21 -
137.22 -Modified files:
137.23 - gcc : ChangeLog
137.24 - gcc/config/arm : arm-protos.h arm.c
137.25 -
137.26 -Log message:
137.27 - PR target/16201
137.28 - * arm.c (arm_eliminable_register): New function.
137.29 - (adjacent_mem_locations): Don't allow eliminable registers. Use
137.30 - HOST_WIDE_INT for address offsets.
137.31 - * arm-protos.h (arm_eliminable_register): Add prototype.
137.32 -
137.33 -Patches:
137.34 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.790&r2=2.2326.2.791
137.35 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/arm-protos.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.61&r2=1.61.4.1
137.36 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/arm.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.317.4.8&r2=1.317.4.9
137.37 -
137.38 -===================================================================
137.39 -RCS file: /cvs/gcc/gcc/gcc/config/arm/arm-protos.h,v
137.40 -retrieving revision 1.61
137.41 -retrieving revision 1.61.4.1
137.42 -diff -u -r1.61 -r1.61.4.1
137.43 ---- gcc/gcc/config/arm/arm-protos.h 2003/11/20 11:44:18 1.61
137.44 -+++ gcc/gcc/config/arm/arm-protos.h 2005/02/01 15:07:02 1.61.4.1
137.45 -@@ -1,5 +1,6 @@
137.46 - /* Prototypes for exported functions defined in arm.c and pe.c
137.47 -- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
137.48 -+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005
137.49 -+ Free Software Foundation, Inc.
137.50 - Contributed by Richard Earnshaw (rearnsha@arm.com)
137.51 - Minor hacks by Nick Clifton (nickc@cygnus.com)
137.52 -
137.53 -@@ -138,6 +139,7 @@
137.54 - extern int arm_is_longcall_p (rtx, int, int);
137.55 - extern int arm_emit_vector_const (FILE *, rtx);
137.56 - extern const char * arm_output_load_gr (rtx *);
137.57 -+extern int arm_eliminable_register (rtx);
137.58 -
137.59 - #if defined TREE_CODE
137.60 - extern rtx arm_function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
137.61 -===================================================================
137.62 -RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v
137.63 -retrieving revision 1.317.4.8
137.64 -retrieving revision 1.317.4.9
137.65 -diff -u -r1.317.4.8 -r1.317.4.9
137.66 ---- gcc/gcc/config/arm/arm.c 2004/04/29 19:52:41 1.317.4.8
137.67 -+++ gcc/gcc/config/arm/arm.c 2005/02/01 15:07:02 1.317.4.9
137.68 -@@ -1,6 +1,6 @@
137.69 - /* Output routines for GCC for ARM.
137.70 - Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
137.71 -- 2002, 2003, 2004 Free Software Foundation, Inc.
137.72 -+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
137.73 - Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
137.74 - and Martin Simmons (@harleqn.co.uk).
137.75 - More major hacks by Richard Earnshaw (rearnsha@arm.com).
137.76 -@@ -4056,6 +4056,16 @@
137.77 - && INTVAL (op) < 64);
137.78 - }
137.79 -
137.80 -+/* Return true if X is a register that will be eliminated later on. */
137.81 -+int
137.82 -+arm_eliminable_register (rtx x)
137.83 -+{
137.84 -+ return REG_P (x) && (REGNO (x) == FRAME_POINTER_REGNUM
137.85 -+ || REGNO (x) == ARG_POINTER_REGNUM
137.86 -+ || (REGNO (x) >= FIRST_VIRTUAL_REGISTER
137.87 -+ && REGNO (x) <= LAST_VIRTUAL_REGISTER));
137.88 -+}
137.89 -+
137.90 - /* Returns TRUE if INSN is an "LDR REG, ADDR" instruction.
137.91 - Use by the Cirrus Maverick code which has to workaround
137.92 - a hardware bug triggered by such instructions. */
137.93 -@@ -4569,33 +4579,42 @@
137.94 - || (GET_CODE (XEXP (b, 0)) == PLUS
137.95 - && GET_CODE (XEXP (XEXP (b, 0), 1)) == CONST_INT)))
137.96 - {
137.97 -- int val0 = 0, val1 = 0;
137.98 -- int reg0, reg1;
137.99 --
137.100 -+ HOST_WIDE_INT val0 = 0, val1 = 0;
137.101 -+ rtx reg0, reg1;
137.102 -+ int val_diff;
137.103 -+
137.104 - if (GET_CODE (XEXP (a, 0)) == PLUS)
137.105 - {
137.106 -- reg0 = REGNO (XEXP (XEXP (a, 0), 0));
137.107 -+ reg0 = XEXP (XEXP (a, 0), 0);
137.108 - val0 = INTVAL (XEXP (XEXP (a, 0), 1));
137.109 - }
137.110 - else
137.111 -- reg0 = REGNO (XEXP (a, 0));
137.112 -+ reg0 = XEXP (a, 0);
137.113 -
137.114 - if (GET_CODE (XEXP (b, 0)) == PLUS)
137.115 - {
137.116 -- reg1 = REGNO (XEXP (XEXP (b, 0), 0));
137.117 -+ reg1 = XEXP (XEXP (b, 0), 0);
137.118 - val1 = INTVAL (XEXP (XEXP (b, 0), 1));
137.119 - }
137.120 - else
137.121 -- reg1 = REGNO (XEXP (b, 0));
137.122 -+ reg1 = XEXP (b, 0);
137.123 -
137.124 - /* Don't accept any offset that will require multiple
137.125 - instructions to handle, since this would cause the
137.126 - arith_adjacentmem pattern to output an overlong sequence. */
137.127 - if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1))
137.128 - return 0;
137.129 --
137.130 -- return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4);
137.131 -+
137.132 -+ /* Don't allow an eliminable register: register elimination can make
137.133 -+ the offset too large. */
137.134 -+ if (arm_eliminable_register (reg0))
137.135 -+ return 0;
137.136 -+
137.137 -+ val_diff = val1 - val0;
137.138 -+ return ((REGNO (reg0) == REGNO (reg1))
137.139 -+ && (val_diff == 4 || val_diff == -4));
137.140 - }
137.141 -+
137.142 - return 0;
137.143 - }
137.144 -
137.145 -@@ -7301,7 +7320,6 @@
137.146 - return "";
137.147 - }
137.148 -
137.149 --
137.150 - /* Output a move from arm registers to an fpa registers.
137.151 - OPERANDS[0] is an fpa register.
137.152 - OPERANDS[1] is the first registers of an arm register pair. */
138.1 --- a/patches/gcc/3.4.3/pr18508-fix.patch Tue Aug 14 19:32:22 2007 +0000
138.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
138.3 @@ -1,143 +0,0 @@
138.4 -See http://gcc.gnu.org/PR18508
138.5 -
138.6 -This should fix cygwin errors like:
138.7 -
138.8 -basename: missing operand
138.9 -Try `basename --help' for more information.
138.10 -mv: `libgcc_s_nof.so.1' and `libgcc_s_nof.so.1.' are the same file
138.11 -make[2]: *** [nof/libgcc_s_nof.so] Error 1
138.12 -make[2]: Leaving directory `/home/cvachoucek/crosstool-0.32/build/powerpc-750-linux-gnu/gcc-3.4.3-glibc-2.3.5/build-gcc/gcc'
138.13 -make[1]: *** [stmp-multilib] Error 2
138.14 -make[1]: Leaving directory `/home/cvachoucek/crosstool-0.32/build/powerpc-750-linux-gnu/gcc-3.4.3-glibc-2.3.5/build-gcc/gcc'
138.15 -make: *** [install-gcc] Error 2
138.16 -
138.17 -From gcc-patches-return-133821-listarch-gcc-patches=gcc dot gnu dot org at gcc dot gnu dot org Wed Nov 17 00:15:28 2004
138.18 -Return-Path: <gcc-patches-return-133821-listarch-gcc-patches=gcc dot gnu dot org at gcc dot gnu dot org>
138.19 -Delivered-To: listarch-gcc-patches at gcc dot gnu dot org
138.20 -Received: (qmail 12823 invoked by alias); 17 Nov 2004 00:15:19 -0000
138.21 -Mailing-List: contact gcc-patches-help at gcc dot gnu dot org; run by ezmlm
138.22 -List-Archive: <http://gcc.gnu.org/ml/gcc-patches/>
138.23 -List-Post: <mailto:gcc-patches at gcc dot gnu dot org>
138.24 -List-Help: <mailto:gcc-patches-help at gcc dot gnu dot org>
138.25 -Sender: gcc-patches-owner at gcc dot gnu dot org
138.26 -Date: Tue, 16 Nov 2004 16:14:57 -0800
138.27 -From: "H dot J dot Lu" <hjl at lucon dot org>
138.28 -To: gcc-patches at gcc dot gnu dot org
138.29 -Subject: PATCH: PR other/18508: "basename: too few arguments" when building without bootstrap
138.30 -Message-ID: <20041117001457.GA13610@lucon.org>
138.31 -
138.32 -I think it is safe to use `.backup' to backup the existing shared
138.33 -library. No processes should be using the old shared library when
138.34 -we get there.
138.35 -
138.36 -
138.37 -H.J.
138.38 ----
138.39 -2004-11-16 H.J. Lu <hongjiu.lu@intel.com>
138.40 -
138.41 - PR other/18508
138.42 - * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix
138.43 - to back up the existing shared library.
138.44 - * config/arm/t-netbsd (SHLIB_LINK): Likewise.
138.45 - * config/i386/t-nwld (SHLIB_LINK): Likewise. [deleted]
138.46 - * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. [deleted]
138.47 - * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
138.48 - * config/sh/t-linux (SHLIB_LINK): Likewise.
138.49 - * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
138.50 - * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
138.51 - * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
138.52 - * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
138.53 -
138.54 -[ paths adjusted for patch -p1, rediffed agaainst gcc-3.4.3.
138.55 - Looks like the t-iris5-6 hunk in cvs is missing here; this must
138.56 - have been the mainline patch. ]
138.57 -
138.58 ---- gcc-3.4.3/gcc/config/alpha/t-osf4.stage 2004-10-18 09:14:39.000000000 -0700
138.59 -+++ gcc-3.4.3/gcc/config/alpha/t-osf4 2004-11-16 16:06:41.686905479 -0800
138.60 -@@ -19,7 +19,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
138.61 - -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
138.62 - rm -f $(SHLIB_SONAME) && \
138.63 - if [ -f $(SHLIB_NAME) ]; then \
138.64 -- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
138.65 -+ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
138.66 - else true; fi && \
138.67 - mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
138.68 - $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
138.69 ---- gcc-3.4.3/gcc/config/arm/t-netbsd.stage 2004-10-18 09:14:40.000000000 -0700
138.70 -+++ gcc-3.4.3/gcc/config/arm/t-netbsd 2004-11-16 16:06:46.016348194 -0800
138.71 -@@ -14,7 +14,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
138.72 - -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
138.73 - rm -f $(SHLIB_SONAME) && \
138.74 - if [ -f $(SHLIB_NAME) ]; then \
138.75 -- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
138.76 -+ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
138.77 - else true; fi && \
138.78 - mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
138.79 - $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
138.80 ---- gcc-3.4.3/gcc/config/pa/t-hpux-shlib.stage 2004-10-18 09:14:46.000000000 -0700
138.81 -+++ gcc-3.4.3/gcc/config/pa/t-hpux-shlib 2004-11-16 16:06:57.982807875 -0800
138.82 -@@ -8,7 +8,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
138.83 - -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
138.84 - rm -f $(SHLIB_SONAME) && \
138.85 - if [ -f $(SHLIB_NAME) ]; then \
138.86 -- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
138.87 -+ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
138.88 - else true; fi && \
138.89 - mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
138.90 - $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
138.91 ---- gcc-3.4.3/gcc/config/sh/t-linux.stage 2004-10-18 09:14:48.000000000 -0700
138.92 -+++ gcc-3.4.3/gcc/config/sh/t-linux 2004-11-16 16:07:00.787446863 -0800
138.93 -@@ -24,7 +24,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
138.94 - -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
138.95 - rm -f $(SHLIB_SOLINK) && \
138.96 - if [ -f $(SHLIB_NAME) ]; then \
138.97 -- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
138.98 -+ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
138.99 - else true; fi && \
138.100 - mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
138.101 - (echo "/* GNU ld script"; \
138.102 ---- gcc-3.4.3/gcc/config/t-libunwind-elf.stage 2004-10-18 09:14:39.000000000 -0700
138.103 -+++ gcc-3.4.3/gcc/config/t-libunwind-elf 2004-11-16 16:07:08.133501281 -0800
138.104 -@@ -14,8 +14,7 @@ SHLIBUNWIND_LINK = $(GCC_FOR_TARGET) $(L
138.105 - @multilib_flags@ $(SHLIB_OBJS) -lc && \
138.106 - rm -f $(SHLIB_SOLINK) && \
138.107 - if [ -f $(SHLIBUNWIND_NAME) ]; then \
138.108 -- mv -f $(SHLIBUNWIND_NAME) \
138.109 -- $(SHLIBUNWIND_NAME).`basename $(STAGE_PREFIX)`; \
138.110 -+ mv -f $(SHLIBUNWIND_NAME) $(SHLIBUNWIND_NAME).backup; \
138.111 - else true; fi && \
138.112 - mv $(SHLIBUNWIND_NAME).tmp $(SHLIBUNWIND_NAME) && \
138.113 - $(LN_S) $(SHLIBUNWIND_NAME) $(SHLIB_SOLINK)
138.114 ---- gcc-3.4.3/gcc/config/t-slibgcc-darwin.stage 2004-10-18 09:14:39.000000000 -0700
138.115 -+++ gcc-3.4.3/gcc/config/t-slibgcc-darwin 2004-11-16 16:07:13.777774752 -0800
138.116 -@@ -17,7 +17,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
138.117 - @multilib_flags@ $(SHLIB_OBJS) -lc && \
138.118 - rm -f $(SHLIB_SOLINK) && \
138.119 - if [ -f $(SHLIB_NAME) ]; then \
138.120 -- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
138.121 -+ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
138.122 - else true; fi && \
138.123 - mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
138.124 - $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
138.125 ---- gcc-3.4.3/gcc/config/t-slibgcc-elf-ver.stage 2004-10-18 09:14:39.000000000 -0700
138.126 -+++ gcc-3.4.3/gcc/config/t-slibgcc-elf-ver 2004-11-16 16:04:40.961445223 -0800
138.127 -@@ -17,7 +17,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
138.128 - -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
138.129 - rm -f $(SHLIB_SOLINK) && \
138.130 - if [ -f $(SHLIB_NAME) ]; then \
138.131 -- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
138.132 -+ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
138.133 - else true; fi && \
138.134 - mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
138.135 - $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
138.136 ---- gcc-3.4.3/gcc/config/t-slibgcc-sld.old 2004-10-18 09:00:47.000000000 -0700
138.137 -+++ gcc-3.4.3/gcc/config/t-slibgcc-sld 2005-05-14 13:44:48.000000000 -0700
138.138 -@@ -14,7 +14,7 @@
138.139 - @multilib_flags@ $(SHLIB_OBJS) -lc && \
138.140 - rm -f $(SHLIB_SOLINK) && \
138.141 - if [ -f $(SHLIB_NAME) ]; then \
138.142 -- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
138.143 -+ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
138.144 - else true; fi && \
138.145 - mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
138.146 - $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
139.1 --- a/patches/gcc/3.4.4/100-uclibc-conf.patch Tue Aug 14 19:32:22 2007 +0000
139.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
139.3 @@ -1,470 +0,0 @@
139.4 ---- gcc-3.4.1/gcc/config/t-linux-uclibc
139.5 -+++ gcc-3.4.1/gcc/config/t-linux-uclibc
139.6 -@@ -0,0 +1,5 @@
139.7 -+# Remove glibc specific files added in t-linux
139.8 -+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
139.9 -+
139.10 -+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
139.11 -+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
139.12 ---- gcc-3.4.1/gcc/config.gcc
139.13 -+++ gcc-3.4.1/gcc/config.gcc
139.14 -@@ -2310,10 +2310,16 @@
139.15 - *)
139.16 - echo "*** Configuration ${target} not supported" 1>&2
139.17 - exit 1
139.18 - ;;
139.19 - esac
139.20 -+
139.21 -+# Rather than hook into each target, just do it after all the linux
139.22 -+# targets have been processed
139.23 -+case ${target} in
139.24 -+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
139.25 -+esac
139.26 -
139.27 - # Support for --with-cpu and related options (and a few unrelated options,
139.28 - # too).
139.29 - case ${with_cpu} in
139.30 - yes | no)
139.31 ---- gcc-3.4.4/gcc/config/alpha/linux-elf.h
139.32 -+++ gcc-3.4.4/gcc/config/alpha/linux-elf.h
139.33 -@@ -27,7 +27,11 @@
139.34 - #define SUBTARGET_EXTRA_SPECS \
139.35 - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
139.36 -
139.37 -+#ifdef USE_UCLIBC
139.38 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.39 -+#else
139.40 - #define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
139.41 -+#endif
139.42 -
139.43 - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
139.44 - %{O*:-O3} %{!O*:-O1} \
139.45 ---- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h 2004-01-31 00:18:11.000000000 -0600
139.46 -+++ gcc-3.4.1/gcc/config/arm/linux-elf.h 2004-08-12 15:54:42.000000000 -0500
139.47 -@@ -80,14 +80,19 @@
139.48 - #define ENDFILE_SPEC \
139.49 - "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
139.50 -
139.51 -+#ifdef USE_UCLIBC
139.52 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.53 -+#else
139.54 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
139.55 -+#endif
139.56 - #undef LINK_SPEC
139.57 - #define LINK_SPEC "%{h*} %{version:-v} \
139.58 - %{b} %{Wl,*:%*} \
139.59 - %{static:-Bstatic} \
139.60 - %{shared:-shared} \
139.61 - %{symbolic:-Bsymbolic} \
139.62 - %{rdynamic:-export-dynamic} \
139.63 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
139.64 -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
139.65 - -X \
139.66 - %{mbig-endian:-EB}" \
139.67 - SUBTARGET_EXTRA_LINK_SPEC
139.68 ---- gcc-3.4.1-dist/gcc/config/cris/linux.h 2003-11-28 21:08:09.000000000 -0600
139.69 -+++ gcc-3.4.1/gcc/config/cris/linux.h 2004-08-12 15:54:43.000000000 -0500
139.70 -@@ -79,6 +79,25 @@
139.71 - #undef CRIS_DEFAULT_CPU_VERSION
139.72 - #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
139.73 -
139.74 -+#ifdef USE_UCLIBC
139.75 -+
139.76 -+#undef CRIS_SUBTARGET_VERSION
139.77 -+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
139.78 -+
139.79 -+#undef CRIS_LINK_SUBTARGET_SPEC
139.80 -+#define CRIS_LINK_SUBTARGET_SPEC \
139.81 -+ "-mcrislinux\
139.82 -+ -rpath-link include/asm/../..%s\
139.83 -+ %{shared} %{static}\
139.84 -+ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
139.85 -+ %{!shared: \
139.86 -+ %{!static: \
139.87 -+ %{rdynamic:-export-dynamic} \
139.88 -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
139.89 -+ %{!r:%{O2|O3: --gc-sections}}"
139.90 -+
139.91 -+#else /* USE_UCLIBC */
139.92 -+
139.93 - #undef CRIS_SUBTARGET_VERSION
139.94 - #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
139.95 -
139.96 -@@ -93,6 +112,8 @@
139.97 - %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
139.98 - %{!r:%{O2|O3: --gc-sections}}"
139.99 -
139.100 -+#endif /* USE_UCLIBC */
139.101 -+
139.102 -
139.103 - /* Node: Run-time Target */
139.104 -
139.105 ---- gcc-3.4.1-dist/gcc/config/i386/linux.h 2003-11-28 21:08:10.000000000 -0600
139.106 -+++ gcc-3.4.1/gcc/config/i386/linux.h 2004-08-12 15:54:43.000000000 -0500
139.107 -@@ -110,22 +110,21 @@
139.108 -
139.109 - #undef LINK_SPEC
139.110 - #ifdef USE_GNULIBC_1
139.111 --#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
139.112 -- %{!shared: \
139.113 -- %{!ibcs: \
139.114 -- %{!static: \
139.115 -- %{rdynamic:-export-dynamic} \
139.116 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
139.117 -- %{static:-static}}}"
139.118 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.1"
139.119 -+#else
139.120 -+#ifdef USE_UCLIBC
139.121 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.122 - #else
139.123 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
139.124 -+#endif
139.125 -+#endif
139.126 - #define LINK_SPEC "-m elf_i386 %{shared:-shared} \
139.127 - %{!shared: \
139.128 - %{!ibcs: \
139.129 - %{!static: \
139.130 - %{rdynamic:-export-dynamic} \
139.131 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
139.132 -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
139.133 - %{static:-static}}}"
139.134 --#endif
139.135 -
139.136 - /* A C statement (sans semicolon) to output to the stdio stream
139.137 - FILE the assembler definition of uninitialized global DECL named
139.138 ---- gcc-3.4.4/gcc/config/i386/linux64.h
139.139 -+++ gcc-3.4.4/gcc/config/i386/linux64.h
139.140 -@@ -54,14 +54,21 @@
139.141 - When the -shared link option is used a final link is not being
139.142 - done. */
139.143 -
139.144 -+#ifdef USE_UCLIBC
139.145 -+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.146 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
139.147 -+#else
139.148 -+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
139.149 -+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
139.150 -+#endif
139.151 - #undef LINK_SPEC
139.152 - #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
139.153 - %{shared:-shared} \
139.154 - %{!shared: \
139.155 - %{!static: \
139.156 - %{rdynamic:-export-dynamic} \
139.157 -- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
139.158 -- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
139.159 -+ %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
139.160 -+ %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
139.161 - %{static:-static}}"
139.162 -
139.163 - #define MULTILIB_DEFAULTS { "m64" }
139.164 ---- gcc-3.4.4/gcc/config/ia64/linux.h
139.165 -+++ gcc-3.4.4/gcc/config/ia64/linux.h
139.166 -@@ -37,13 +37,18 @@
139.167 - /* Define this for shared library support because it isn't in the main
139.168 - linux.h file. */
139.169 -
139.170 -+#ifdef USE_UCLIBC
139.171 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.172 -+#else
139.173 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
139.174 -+#endif
139.175 - #undef LINK_SPEC
139.176 - #define LINK_SPEC "\
139.177 - %{shared:-shared} \
139.178 - %{!shared: \
139.179 - %{!static: \
139.180 - %{rdynamic:-export-dynamic} \
139.181 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
139.182 -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
139.183 - %{static:-static}}"
139.184 -
139.185 -
139.186 ---- gcc-3.4.4/gcc/config/m68k/linux.h
139.187 -+++ gcc-3.4.4/gcc/config/m68k/linux.h
139.188 -@@ -131,12 +131,17 @@
139.189 -
139.190 - /* If ELF is the default format, we should not use /lib/elf. */
139.191 -
139.192 -+#ifdef USE_UCLIBC
139.193 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.194 -+#else
139.195 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
139.196 -+#endif
139.197 - #undef LINK_SPEC
139.198 - #define LINK_SPEC "-m m68kelf %{shared} \
139.199 - %{!shared: \
139.200 - %{!static: \
139.201 - %{rdynamic:-export-dynamic} \
139.202 -- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
139.203 -+ %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
139.204 - %{static}}"
139.205 -
139.206 - /* For compatibility with linux/a.out */
139.207 ---- gcc-3.4.1-dist/gcc/config/mips/linux.h 2004-06-15 20:42:24.000000000 -0500
139.208 -+++ gcc-3.4.1/gcc/config/mips/linux.h 2004-08-12 15:54:43.000000000 -0500
139.209 -@@ -109,14 +109,19 @@
139.210 -
139.211 - /* Borrowed from sparc/linux.h */
139.212 - #undef LINK_SPEC
139.213 -+#ifdef USE_UCLIBC
139.214 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.215 -+#else
139.216 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
139.217 -+#endif
139.218 - #define LINK_SPEC \
139.219 - "%(endian_spec) \
139.220 - %{shared:-shared} \
139.221 - %{!shared: \
139.222 - %{!ibcs: \
139.223 - %{!static: \
139.224 - %{rdynamic:-export-dynamic} \
139.225 -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
139.226 -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
139.227 - %{static:-static}}}"
139.228 -
139.229 - #undef SUBTARGET_ASM_SPEC
139.230 ---- gcc-3.4.4/gcc/config/pa/pa-linux.h
139.231 -+++ gcc-3.4.4/gcc/config/pa/pa-linux.h
139.232 -@@ -77,13 +77,18 @@
139.233 - /* Define this for shared library support because it isn't in the main
139.234 - linux.h file. */
139.235 -
139.236 -+#ifdef USE_UCLIBC
139.237 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.238 -+#else
139.239 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
139.240 -+#endif
139.241 - #undef LINK_SPEC
139.242 - #define LINK_SPEC "\
139.243 - %{shared:-shared} \
139.244 - %{!shared: \
139.245 - %{!static: \
139.246 - %{rdynamic:-export-dynamic} \
139.247 -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
139.248 -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
139.249 - %{static:-static}}"
139.250 -
139.251 - /* glibc's profiling functions don't need gcc to allocate counters. */
139.252 ---- gcc-3.4.1-dist/gcc/config/rs6000/linux.h 2004-02-25 09:11:19.000000000 -0600
139.253 -+++ gcc-3.4.1/gcc/config/rs6000/linux.h 2004-08-12 15:54:43.000000000 -0500
139.254 -@@ -69,7 +69,11 @@
139.255 - #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
139.256 -
139.257 - #undef LINK_OS_DEFAULT_SPEC
139.258 -+#ifdef USE_UCLIBC
139.259 -+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
139.260 -+#else
139.261 - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
139.262 -+#endif
139.263 -
139.264 - #define LINK_GCC_C_SEQUENCE_SPEC \
139.265 - "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
139.266 ---- gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h 2004-06-10 01:39:50.000000000 -0500
139.267 -+++ gcc-3.4.1/gcc/config/rs6000/sysv4.h 2004-08-12 15:54:43.000000000 -0500
139.268 -@@ -947,6 +947,7 @@
139.269 - mcall-linux : %(link_os_linux) ; \
139.270 - mcall-gnu : %(link_os_gnu) ; \
139.271 - mcall-netbsd : %(link_os_netbsd) ; \
139.272 -+ mcall-linux-uclibc : %(link_os_linux_uclibc); \
139.273 - mcall-openbsd: %(link_os_openbsd) ; \
139.274 - : %(link_os_default) }"
139.275 -
139.276 -@@ -1125,6 +1126,10 @@
139.277 - %{rdynamic:-export-dynamic} \
139.278 - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
139.279 -
139.280 -+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
139.281 -+ %{rdynamic:-export-dynamic} \
139.282 -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
139.283 -+
139.284 - #if defined(HAVE_LD_EH_FRAME_HDR)
139.285 - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
139.286 - #endif
139.287 -@@ -1291,6 +1296,7 @@
139.288 - { "link_os_sim", LINK_OS_SIM_SPEC }, \
139.289 - { "link_os_freebsd", LINK_OS_FREEBSD_SPEC }, \
139.290 - { "link_os_linux", LINK_OS_LINUX_SPEC }, \
139.291 -+ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \
139.292 - { "link_os_gnu", LINK_OS_GNU_SPEC }, \
139.293 - { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \
139.294 - { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \
139.295 ---- gcc-3.4.4/gcc/config/s390/linux.h
139.296 -+++ gcc-3.4.4/gcc/config/s390/linux.h
139.297 -@@ -77,6 +77,13 @@
139.298 - #define MULTILIB_DEFAULTS { "m31" }
139.299 - #endif
139.300 -
139.301 -+#ifdef USE_UCLIBC
139.302 -+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.303 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
139.304 -+#else
139.305 -+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
139.306 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
139.307 -+#endif
139.308 - #undef LINK_SPEC
139.309 - #define LINK_SPEC \
139.310 - "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
139.311 -@@ -86,8 +93,8 @@
139.312 - %{!static: \
139.313 - %{rdynamic:-export-dynamic} \
139.314 - %{!dynamic-linker: \
139.315 -- %{m31:-dynamic-linker /lib/ld.so.1} \
139.316 -- %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
139.317 -+ %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
139.318 -+ %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
139.319 -
139.320 -
139.321 - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
139.322 ---- gcc-3.4.1-dist/gcc/config/sh/linux.h 2004-01-11 20:29:13.000000000 -0600
139.323 -+++ gcc-3.4.1/gcc/config/sh/linux.h 2004-08-12 15:54:43.000000000 -0500
139.324 -@@ -73,11 +73,16 @@
139.325 - #undef SUBTARGET_LINK_EMUL_SUFFIX
139.326 - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
139.327 - #undef SUBTARGET_LINK_SPEC
139.328 -+#ifdef USE_UCLIBC
139.329 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.330 -+#else
139.331 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
139.332 -+#endif
139.333 - #define SUBTARGET_LINK_SPEC \
139.334 - "%{shared:-shared} \
139.335 - %{!static: \
139.336 - %{rdynamic:-export-dynamic} \
139.337 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
139.338 -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
139.339 - %{static:-static}"
139.340 -
139.341 - #undef LIB_SPEC
139.342 ---- gcc-3.4.4/gcc/config/sparc/linux.h
139.343 -+++ gcc-3.4.4/gcc/config/sparc/linux.h
139.344 -@@ -162,13 +162,18 @@
139.345 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
139.346 - %{static:-static}}}"
139.347 - #else
139.348 -+#ifdef USE_UCLIBC
139.349 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.350 -+#else
139.351 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
139.352 -+#endif
139.353 - #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
139.354 - %{!mno-relax:%{!r:-relax}} \
139.355 - %{!shared: \
139.356 - %{!ibcs: \
139.357 - %{!static: \
139.358 - %{rdynamic:-export-dynamic} \
139.359 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
139.360 -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
139.361 - %{static:-static}}}"
139.362 - #endif
139.363 -
139.364 ---- gcc-3.4.4/gcc/config/sparc/linux64.h
139.365 -+++ gcc-3.4.4/gcc/config/sparc/linux64.h
139.366 -@@ -167,12 +166,17 @@
139.367 - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
139.368 - { "link_arch", LINK_ARCH_SPEC },
139.369 -
139.370 -+#ifdef USE_UCLIBC
139.371 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
139.372 -+#else
139.373 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
139.374 -+#endif
139.375 - #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
139.376 - %{!shared: \
139.377 - %{!ibcs: \
139.378 - %{!static: \
139.379 - %{rdynamic:-export-dynamic} \
139.380 -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
139.381 -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
139.382 - %{static:-static}}} \
139.383 - "
139.384 -
139.385 ---- gcc-3.4.1-dist/libtool.m4 2004-05-18 04:08:37.000000000 -0500
139.386 -+++ gcc-3.4.1/libtool.m4 2004-08-12 15:54:43.000000000 -0500
139.387 -@@ -689,6 +689,11 @@
139.388 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
139.389 - ;;
139.390 -
139.391 -+linux-uclibc*)
139.392 -+ lt_cv_deplibs_check_method=pass_all
139.393 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
139.394 -+ ;;
139.395 -+
139.396 - netbsd*)
139.397 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
139.398 - [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
139.399 ---- gcc-3.4.1-dist/ltconfig 2004-03-05 15:05:41.000000000 -0600
139.400 -+++ gcc-3.4.1/ltconfig 2004-08-12 15:55:48.000000000 -0500
139.401 -@@ -602,6 +602,7 @@
139.402 -
139.403 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
139.404 - case $host_os in
139.405 -+linux-uclibc*) ;;
139.406 - linux-gnu*) ;;
139.407 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
139.408 - esac
139.409 -@@ -1262,6 +1263,24 @@
139.410 - dynamic_linker='GNU/Linux ld.so'
139.411 - ;;
139.412 -
139.413 -+linux-uclibc*)
139.414 -+ version_type=linux
139.415 -+ need_lib_prefix=no
139.416 -+ need_version=no
139.417 -+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
139.418 -+ soname_spec='${libname}${release}.so$major'
139.419 -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
139.420 -+ shlibpath_var=LD_LIBRARY_PATH
139.421 -+ shlibpath_overrides_runpath=no
139.422 -+ # This implies no fast_install, which is unacceptable.
139.423 -+ # Some rework will be needed to allow for fast_install
139.424 -+ # before this can be enabled.
139.425 -+ # Note: copied from linux-gnu, and may not be appropriate.
139.426 -+ hardcode_into_libs=yes
139.427 -+ # Assume using the uClibc dynamic linker.
139.428 -+ dynamic_linker="uClibc ld.so"
139.429 -+ ;;
139.430 -+
139.431 - netbsd*)
139.432 - need_lib_prefix=no
139.433 - need_version=no
139.434 ---- gcc-3.4.1-dist/boehm-gc/configure 2004-07-01 14:14:03.000000000 -0500
139.435 -+++ gcc-3.4.1/boehm-gc/configure 2004-08-12 16:22:57.000000000 -0500
139.436 -@@ -1947,6 +1947,11 @@
139.437 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
139.438 - ;;
139.439 -
139.440 -+linux-uclibc*)
139.441 -+ lt_cv_deplibs_check_method=pass_all
139.442 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
139.443 -+ ;;
139.444 -+
139.445 - netbsd*)
139.446 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
139.447 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
139.448 ---- gcc-3.4.1-dist/boehm-gc/ltconfig 2002-11-20 09:59:06.000000000 -0600
139.449 -+++ gcc-3.4.1/boehm-gc/ltconfig 2004-08-12 15:54:42.000000000 -0500
139.450 -@@ -1981,6 +1981,23 @@
139.451 - fi
139.452 - ;;
139.453 -
139.454 -+linux-uclibc*)
139.455 -+ version_type=linux
139.456 -+ need_lib_prefix=no
139.457 -+ need_version=no
139.458 -+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
139.459 -+ soname_spec='${libname}${release}.so$major'
139.460 -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
139.461 -+ shlibpath_var=LD_LIBRARY_PATH
139.462 -+ shlibpath_overrides_runpath=no
139.463 -+ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
139.464 -+ file_magic_cmd=/usr/bin/file
139.465 -+ file_magic_test_file=`echo /lib/libuClibc-*.so`
139.466 -+
139.467 -+ # Assume using the uClibc dynamic linker.
139.468 -+ dynamic_linker="uClibc ld.so"
139.469 -+ ;;
139.470 -+
139.471 - netbsd*)
139.472 - version_type=sunos
139.473 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
140.1 --- a/patches/gcc/3.4.4/200-uclibc-locale.patch Tue Aug 14 19:32:22 2007 +0000
140.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
140.3 @@ -1,3255 +0,0 @@
140.4 -diff -urN gcc-3.4.2-dist/libstdc++-v3/acinclude.m4 gcc-3.4.2/libstdc++-v3/acinclude.m4
140.5 ---- gcc-3.4.2-dist/libstdc++-v3/acinclude.m4 2004-07-15 12:42:45.000000000 -0500
140.6 -+++ gcc-3.4.2/libstdc++-v3/acinclude.m4 2004-09-10 10:47:40.000000000 -0500
140.7 -@@ -996,7 +996,7 @@
140.8 - AC_MSG_CHECKING([for C locale to use])
140.9 - GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
140.10 - [use MODEL for target locale package],
140.11 -- [permit generic|gnu|ieee_1003.1-2001|yes|no|auto])
140.12 -+ [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto])
140.13 -
140.14 - # If they didn't use this option switch, or if they specified --enable
140.15 - # with no specific model, we'll have to look for one. If they
140.16 -@@ -1012,6 +1012,9 @@
140.17 - # Default to "generic".
140.18 - if test $enable_clocale_flag = auto; then
140.19 - case x${target_os} in
140.20 -+ x*-uclibc*)
140.21 -+ enable_clocale_flag=uclibc
140.22 -+ ;;
140.23 - xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu)
140.24 - AC_EGREP_CPP([_GLIBCXX_ok], [
140.25 - #include <features.h>
140.26 -@@ -1138,6 +1141,41 @@
140.27 - CTIME_CC=config/locale/generic/time_members.cc
140.28 - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
140.29 - ;;
140.30 -+ uclibc)
140.31 -+ AC_MSG_RESULT(uclibc)
140.32 -+
140.33 -+ # Declare intention to use gettext, and add support for specific
140.34 -+ # languages.
140.35 -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
140.36 -+ ALL_LINGUAS="de fr"
140.37 -+
140.38 -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
140.39 -+ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
140.40 -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
140.41 -+ USE_NLS=yes
140.42 -+ fi
140.43 -+ # Export the build objects.
140.44 -+ for ling in $ALL_LINGUAS; do \
140.45 -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
140.46 -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
140.47 -+ done
140.48 -+ AC_SUBST(glibcxx_MOFILES)
140.49 -+ AC_SUBST(glibcxx_POFILES)
140.50 -+
140.51 -+ CLOCALE_H=config/locale/uclibc/c_locale.h
140.52 -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc
140.53 -+ CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
140.54 -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
140.55 -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
140.56 -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
140.57 -+ CMESSAGES_H=config/locale/uclibc/messages_members.h
140.58 -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
140.59 -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc
140.60 -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
140.61 -+ CTIME_H=config/locale/uclibc/time_members.h
140.62 -+ CTIME_CC=config/locale/uclibc/time_members.cc
140.63 -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
140.64 -+ ;;
140.65 - esac
140.66 -
140.67 - # This is where the testsuite looks for locale catalogs, using the
140.68 -diff -urN gcc-3.4.2-dist/libstdc++-v3/aclocal.m4 gcc-3.4.2/libstdc++-v3/aclocal.m4
140.69 ---- gcc-3.4.2-dist/libstdc++-v3/aclocal.m4 2004-08-13 15:44:03.000000000 -0500
140.70 -+++ gcc-3.4.2/libstdc++-v3/aclocal.m4 2004-09-10 10:47:40.000000000 -0500
140.71 -@@ -1025,6 +1025,9 @@
140.72 - # Default to "generic".
140.73 - if test $enable_clocale_flag = auto; then
140.74 - case x${target_os} in
140.75 -+ x*-uclibc*)
140.76 -+ enable_clocale_flag=uclibc
140.77 -+ ;;
140.78 - xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu)
140.79 - AC_EGREP_CPP([_GLIBCXX_ok], [
140.80 - #include <features.h>
140.81 -@@ -1151,6 +1154,41 @@
140.82 - CTIME_CC=config/locale/generic/time_members.cc
140.83 - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
140.84 - ;;
140.85 -+ uclibc)
140.86 -+ AC_MSG_RESULT(uclibc)
140.87 -+
140.88 -+ # Declare intention to use gettext, and add support for specific
140.89 -+ # languages.
140.90 -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
140.91 -+ ALL_LINGUAS="de fr"
140.92 -+
140.93 -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
140.94 -+ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
140.95 -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
140.96 -+ USE_NLS=yes
140.97 -+ fi
140.98 -+ # Export the build objects.
140.99 -+ for ling in $ALL_LINGUAS; do \
140.100 -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
140.101 -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
140.102 -+ done
140.103 -+ AC_SUBST(glibcxx_MOFILES)
140.104 -+ AC_SUBST(glibcxx_POFILES)
140.105 -+
140.106 -+ CLOCALE_H=config/locale/uclibc/c_locale.h
140.107 -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc
140.108 -+ CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
140.109 -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
140.110 -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
140.111 -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
140.112 -+ CMESSAGES_H=config/locale/uclibc/messages_members.h
140.113 -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
140.114 -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc
140.115 -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
140.116 -+ CTIME_H=config/locale/uclibc/time_members.h
140.117 -+ CTIME_CC=config/locale/uclibc/time_members.cc
140.118 -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
140.119 -+ ;;
140.120 - esac
140.121 -
140.122 - # This is where the testsuite looks for locale catalogs, using the
140.123 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
140.124 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 1969-12-31 18:00:00.000000000 -0600
140.125 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2004-09-10 10:47:40.000000000 -0500
140.126 -@@ -0,0 +1,59 @@
140.127 -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
140.128 -+
140.129 -+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
140.130 -+//
140.131 -+// This file is part of the GNU ISO C++ Library. This library is free
140.132 -+// software; you can redistribute it and/or modify it under the
140.133 -+// terms of the GNU General Public License as published by the
140.134 -+// Free Software Foundation; either version 2, or (at your option)
140.135 -+// any later version.
140.136 -+
140.137 -+// This library is distributed in the hope that it will be useful,
140.138 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.139 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.140 -+// GNU General Public License for more details.
140.141 -+
140.142 -+// You should have received a copy of the GNU General Public License along
140.143 -+// with this library; see the file COPYING. If not, write to the Free
140.144 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.145 -+// USA.
140.146 -+
140.147 -+// As a special exception, you may use this file as part of a free software
140.148 -+// library without restriction. Specifically, if other files instantiate
140.149 -+// templates or use macros or inline functions from this file, or you compile
140.150 -+// this file and link it with other files to produce an executable, this
140.151 -+// file does not by itself cause the resulting executable to be covered by
140.152 -+// the GNU General Public License. This exception does not however
140.153 -+// invalidate any other reasons why the executable file might be covered by
140.154 -+// the GNU General Public License.
140.155 -+
140.156 -+// Written by Jakub Jelinek <jakub@redhat.com>
140.157 -+
140.158 -+#include <clocale>
140.159 -+
140.160 -+#ifdef __UCLIBC_MJN3_ONLY__
140.161 -+#warning clean this up
140.162 -+#endif
140.163 -+
140.164 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.165 -+
140.166 -+extern "C" __typeof(iswctype_l) __iswctype_l;
140.167 -+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
140.168 -+extern "C" __typeof(strcoll_l) __strcoll_l;
140.169 -+extern "C" __typeof(strftime_l) __strftime_l;
140.170 -+extern "C" __typeof(strtod_l) __strtod_l;
140.171 -+extern "C" __typeof(strtof_l) __strtof_l;
140.172 -+extern "C" __typeof(strtold_l) __strtold_l;
140.173 -+extern "C" __typeof(strxfrm_l) __strxfrm_l;
140.174 -+extern "C" __typeof(towlower_l) __towlower_l;
140.175 -+extern "C" __typeof(towupper_l) __towupper_l;
140.176 -+extern "C" __typeof(wcscoll_l) __wcscoll_l;
140.177 -+extern "C" __typeof(wcsftime_l) __wcsftime_l;
140.178 -+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
140.179 -+extern "C" __typeof(wctype_l) __wctype_l;
140.180 -+extern "C" __typeof(newlocale) __newlocale;
140.181 -+extern "C" __typeof(freelocale) __freelocale;
140.182 -+extern "C" __typeof(duplocale) __duplocale;
140.183 -+extern "C" __typeof(uselocale) __uselocale;
140.184 -+
140.185 -+#endif // GLIBC 2.3 and later
140.186 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c_locale.cc
140.187 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c_locale.cc 1969-12-31 18:00:00.000000000 -0600
140.188 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c_locale.cc 2004-09-10 10:47:40.000000000 -0500
140.189 -@@ -0,0 +1,160 @@
140.190 -+// Wrapper for underlying C-language localization -*- C++ -*-
140.191 -+
140.192 -+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
140.193 -+//
140.194 -+// This file is part of the GNU ISO C++ Library. This library is free
140.195 -+// software; you can redistribute it and/or modify it under the
140.196 -+// terms of the GNU General Public License as published by the
140.197 -+// Free Software Foundation; either version 2, or (at your option)
140.198 -+// any later version.
140.199 -+
140.200 -+// This library is distributed in the hope that it will be useful,
140.201 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.202 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.203 -+// GNU General Public License for more details.
140.204 -+
140.205 -+// You should have received a copy of the GNU General Public License along
140.206 -+// with this library; see the file COPYING. If not, write to the Free
140.207 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.208 -+// USA.
140.209 -+
140.210 -+// As a special exception, you may use this file as part of a free software
140.211 -+// library without restriction. Specifically, if other files instantiate
140.212 -+// templates or use macros or inline functions from this file, or you compile
140.213 -+// this file and link it with other files to produce an executable, this
140.214 -+// file does not by itself cause the resulting executable to be covered by
140.215 -+// the GNU General Public License. This exception does not however
140.216 -+// invalidate any other reasons why the executable file might be covered by
140.217 -+// the GNU General Public License.
140.218 -+
140.219 -+//
140.220 -+// ISO C++ 14882: 22.8 Standard locale categories.
140.221 -+//
140.222 -+
140.223 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.224 -+
140.225 -+#include <cerrno> // For errno
140.226 -+#include <locale>
140.227 -+#include <stdexcept>
140.228 -+#include <langinfo.h>
140.229 -+#include <bits/c++locale_internal.h>
140.230 -+
140.231 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.232 -+#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
140.233 -+#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
140.234 -+#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
140.235 -+#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
140.236 -+#define __strtof_l(S, E, L) strtof((S), (E))
140.237 -+#define __strtod_l(S, E, L) strtod((S), (E))
140.238 -+#define __strtold_l(S, E, L) strtold((S), (E))
140.239 -+#warning should dummy __newlocale check for C|POSIX ?
140.240 -+#define __newlocale(a, b, c) NULL
140.241 -+#define __freelocale(a) ((void)0)
140.242 -+#define __duplocale(a) __c_locale()
140.243 -+#endif
140.244 -+
140.245 -+namespace std
140.246 -+{
140.247 -+ template<>
140.248 -+ void
140.249 -+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
140.250 -+ const __c_locale& __cloc)
140.251 -+ {
140.252 -+ if (!(__err & ios_base::failbit))
140.253 -+ {
140.254 -+ char* __sanity;
140.255 -+ errno = 0;
140.256 -+ float __f = __strtof_l(__s, &__sanity, __cloc);
140.257 -+ if (__sanity != __s && errno != ERANGE)
140.258 -+ __v = __f;
140.259 -+ else
140.260 -+ __err |= ios_base::failbit;
140.261 -+ }
140.262 -+ }
140.263 -+
140.264 -+ template<>
140.265 -+ void
140.266 -+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
140.267 -+ const __c_locale& __cloc)
140.268 -+ {
140.269 -+ if (!(__err & ios_base::failbit))
140.270 -+ {
140.271 -+ char* __sanity;
140.272 -+ errno = 0;
140.273 -+ double __d = __strtod_l(__s, &__sanity, __cloc);
140.274 -+ if (__sanity != __s && errno != ERANGE)
140.275 -+ __v = __d;
140.276 -+ else
140.277 -+ __err |= ios_base::failbit;
140.278 -+ }
140.279 -+ }
140.280 -+
140.281 -+ template<>
140.282 -+ void
140.283 -+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
140.284 -+ const __c_locale& __cloc)
140.285 -+ {
140.286 -+ if (!(__err & ios_base::failbit))
140.287 -+ {
140.288 -+ char* __sanity;
140.289 -+ errno = 0;
140.290 -+ long double __ld = __strtold_l(__s, &__sanity, __cloc);
140.291 -+ if (__sanity != __s && errno != ERANGE)
140.292 -+ __v = __ld;
140.293 -+ else
140.294 -+ __err |= ios_base::failbit;
140.295 -+ }
140.296 -+ }
140.297 -+
140.298 -+ void
140.299 -+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
140.300 -+ __c_locale __old)
140.301 -+ {
140.302 -+ __cloc = __newlocale(1 << LC_ALL, __s, __old);
140.303 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.304 -+ if (!__cloc)
140.305 -+ {
140.306 -+ // This named locale is not supported by the underlying OS.
140.307 -+ __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
140.308 -+ "name not valid"));
140.309 -+ }
140.310 -+#endif
140.311 -+ }
140.312 -+
140.313 -+ void
140.314 -+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
140.315 -+ {
140.316 -+ if (_S_get_c_locale() != __cloc)
140.317 -+ __freelocale(__cloc);
140.318 -+ }
140.319 -+
140.320 -+ __c_locale
140.321 -+ locale::facet::_S_clone_c_locale(__c_locale& __cloc)
140.322 -+ { return __duplocale(__cloc); }
140.323 -+} // namespace std
140.324 -+
140.325 -+namespace __gnu_cxx
140.326 -+{
140.327 -+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
140.328 -+ {
140.329 -+ "LC_CTYPE",
140.330 -+ "LC_NUMERIC",
140.331 -+ "LC_TIME",
140.332 -+ "LC_COLLATE",
140.333 -+ "LC_MONETARY",
140.334 -+ "LC_MESSAGES",
140.335 -+#if _GLIBCXX_NUM_CATEGORIES != 0
140.336 -+ "LC_PAPER",
140.337 -+ "LC_NAME",
140.338 -+ "LC_ADDRESS",
140.339 -+ "LC_TELEPHONE",
140.340 -+ "LC_MEASUREMENT",
140.341 -+ "LC_IDENTIFICATION"
140.342 -+#endif
140.343 -+ };
140.344 -+}
140.345 -+
140.346 -+namespace std
140.347 -+{
140.348 -+ const char* const* const locale::_S_categories = __gnu_cxx::category_names;
140.349 -+} // namespace std
140.350 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c_locale.h
140.351 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600
140.352 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c_locale.h 2004-09-10 10:48:08.000000000 -0500
140.353 -@@ -0,0 +1,115 @@
140.354 -+// Wrapper for underlying C-language localization -*- C++ -*-
140.355 -+
140.356 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.357 -+//
140.358 -+// This file is part of the GNU ISO C++ Library. This library is free
140.359 -+// software; you can redistribute it and/or modify it under the
140.360 -+// terms of the GNU General Public License as published by the
140.361 -+// Free Software Foundation; either version 2, or (at your option)
140.362 -+// any later version.
140.363 -+
140.364 -+// This library is distributed in the hope that it will be useful,
140.365 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.366 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.367 -+// GNU General Public License for more details.
140.368 -+
140.369 -+// You should have received a copy of the GNU General Public License along
140.370 -+// with this library; see the file COPYING. If not, write to the Free
140.371 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.372 -+// USA.
140.373 -+
140.374 -+// As a special exception, you may use this file as part of a free software
140.375 -+// library without restriction. Specifically, if other files instantiate
140.376 -+// templates or use macros or inline functions from this file, or you compile
140.377 -+// this file and link it with other files to produce an executable, this
140.378 -+// file does not by itself cause the resulting executable to be covered by
140.379 -+// the GNU General Public License. This exception does not however
140.380 -+// invalidate any other reasons why the executable file might be covered by
140.381 -+// the GNU General Public License.
140.382 -+
140.383 -+//
140.384 -+// ISO C++ 14882: 22.8 Standard locale categories.
140.385 -+//
140.386 -+
140.387 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.388 -+
140.389 -+#ifndef _C_LOCALE_H
140.390 -+#define _C_LOCALE_H 1
140.391 -+
140.392 -+#pragma GCC system_header
140.393 -+
140.394 -+#include <cstring> // get std::strlen
140.395 -+#include <cstdio> // get std::snprintf or std::sprintf
140.396 -+#include <clocale>
140.397 -+#include <langinfo.h> // For codecvt
140.398 -+#ifdef __UCLIBC_MJN3_ONLY__
140.399 -+#warning fix this
140.400 -+#endif
140.401 -+#ifdef __UCLIBC_HAS_LOCALE__
140.402 -+#include <iconv.h> // For codecvt using iconv, iconv_t
140.403 -+#endif
140.404 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
140.405 -+#include <libintl.h> // For messages
140.406 -+#endif
140.407 -+
140.408 -+#ifdef __UCLIBC_MJN3_ONLY__
140.409 -+#warning what is _GLIBCXX_C_LOCALE_GNU for
140.410 -+#endif
140.411 -+#define _GLIBCXX_C_LOCALE_GNU 1
140.412 -+
140.413 -+#ifdef __UCLIBC_MJN3_ONLY__
140.414 -+#warning fix categories
140.415 -+#endif
140.416 -+// #define _GLIBCXX_NUM_CATEGORIES 6
140.417 -+#define _GLIBCXX_NUM_CATEGORIES 0
140.418 -+
140.419 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.420 -+namespace __gnu_cxx
140.421 -+{
140.422 -+ extern "C" __typeof(uselocale) __uselocale;
140.423 -+}
140.424 -+#endif
140.425 -+
140.426 -+namespace std
140.427 -+{
140.428 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.429 -+ typedef __locale_t __c_locale;
140.430 -+#else
140.431 -+ typedef int* __c_locale;
140.432 -+#endif
140.433 -+
140.434 -+ // Convert numeric value of type _Tv to string and return length of
140.435 -+ // string. If snprintf is available use it, otherwise fall back to
140.436 -+ // the unsafe sprintf which, in general, can be dangerous and should
140.437 -+ // be avoided.
140.438 -+ template<typename _Tv>
140.439 -+ int
140.440 -+ __convert_from_v(char* __out, const int __size, const char* __fmt,
140.441 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.442 -+ _Tv __v, const __c_locale& __cloc, int __prec)
140.443 -+ {
140.444 -+ __c_locale __old = __gnu_cxx::__uselocale(__cloc);
140.445 -+#else
140.446 -+ _Tv __v, const __c_locale&, int __prec)
140.447 -+ {
140.448 -+# ifdef __UCLIBC_HAS_LOCALE__
140.449 -+ char* __old = std::setlocale(LC_ALL, NULL);
140.450 -+ char* __sav = new char[std::strlen(__old) + 1];
140.451 -+ std::strcpy(__sav, __old);
140.452 -+ std::setlocale(LC_ALL, "C");
140.453 -+# endif
140.454 -+#endif
140.455 -+
140.456 -+ const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
140.457 -+
140.458 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.459 -+ __gnu_cxx::__uselocale(__old);
140.460 -+#elif defined __UCLIBC_HAS_LOCALE__
140.461 -+ std::setlocale(LC_ALL, __sav);
140.462 -+ delete [] __sav;
140.463 -+#endif
140.464 -+ return __ret;
140.465 -+ }
140.466 -+}
140.467 -+
140.468 -+#endif
140.469 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
140.470 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600
140.471 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2004-09-10 10:47:40.000000000 -0500
140.472 -@@ -0,0 +1,306 @@
140.473 -+// std::codecvt implementation details, GNU version -*- C++ -*-
140.474 -+
140.475 -+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
140.476 -+//
140.477 -+// This file is part of the GNU ISO C++ Library. This library is free
140.478 -+// software; you can redistribute it and/or modify it under the
140.479 -+// terms of the GNU General Public License as published by the
140.480 -+// Free Software Foundation; either version 2, or (at your option)
140.481 -+// any later version.
140.482 -+
140.483 -+// This library is distributed in the hope that it will be useful,
140.484 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.485 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.486 -+// GNU General Public License for more details.
140.487 -+
140.488 -+// You should have received a copy of the GNU General Public License along
140.489 -+// with this library; see the file COPYING. If not, write to the Free
140.490 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.491 -+// USA.
140.492 -+
140.493 -+// As a special exception, you may use this file as part of a free software
140.494 -+// library without restriction. Specifically, if other files instantiate
140.495 -+// templates or use macros or inline functions from this file, or you compile
140.496 -+// this file and link it with other files to produce an executable, this
140.497 -+// file does not by itself cause the resulting executable to be covered by
140.498 -+// the GNU General Public License. This exception does not however
140.499 -+// invalidate any other reasons why the executable file might be covered by
140.500 -+// the GNU General Public License.
140.501 -+
140.502 -+//
140.503 -+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
140.504 -+//
140.505 -+
140.506 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.507 -+
140.508 -+#include <locale>
140.509 -+#include <bits/c++locale_internal.h>
140.510 -+
140.511 -+namespace std
140.512 -+{
140.513 -+ // Specializations.
140.514 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.515 -+ codecvt_base::result
140.516 -+ codecvt<wchar_t, char, mbstate_t>::
140.517 -+ do_out(state_type& __state, const intern_type* __from,
140.518 -+ const intern_type* __from_end, const intern_type*& __from_next,
140.519 -+ extern_type* __to, extern_type* __to_end,
140.520 -+ extern_type*& __to_next) const
140.521 -+ {
140.522 -+ result __ret = ok;
140.523 -+ state_type __tmp_state(__state);
140.524 -+
140.525 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.526 -+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
140.527 -+#endif
140.528 -+
140.529 -+ // wcsnrtombs is *very* fast but stops if encounters NUL characters:
140.530 -+ // in case we fall back to wcrtomb and then continue, in a loop.
140.531 -+ // NB: wcsnrtombs is a GNU extension
140.532 -+ for (__from_next = __from, __to_next = __to;
140.533 -+ __from_next < __from_end && __to_next < __to_end
140.534 -+ && __ret == ok;)
140.535 -+ {
140.536 -+ const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
140.537 -+ __from_end - __from_next);
140.538 -+ if (!__from_chunk_end)
140.539 -+ __from_chunk_end = __from_end;
140.540 -+
140.541 -+ __from = __from_next;
140.542 -+ const size_t __conv = wcsnrtombs(__to_next, &__from_next,
140.543 -+ __from_chunk_end - __from_next,
140.544 -+ __to_end - __to_next, &__state);
140.545 -+ if (__conv == static_cast<size_t>(-1))
140.546 -+ {
140.547 -+ // In case of error, in order to stop at the exact place we
140.548 -+ // have to start again from the beginning with a series of
140.549 -+ // wcrtomb.
140.550 -+ for (; __from < __from_next; ++__from)
140.551 -+ __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
140.552 -+ __state = __tmp_state;
140.553 -+ __ret = error;
140.554 -+ }
140.555 -+ else if (__from_next && __from_next < __from_chunk_end)
140.556 -+ {
140.557 -+ __to_next += __conv;
140.558 -+ __ret = partial;
140.559 -+ }
140.560 -+ else
140.561 -+ {
140.562 -+ __from_next = __from_chunk_end;
140.563 -+ __to_next += __conv;
140.564 -+ }
140.565 -+
140.566 -+ if (__from_next < __from_end && __ret == ok)
140.567 -+ {
140.568 -+ extern_type __buf[MB_LEN_MAX];
140.569 -+ __tmp_state = __state;
140.570 -+ const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
140.571 -+ if (__conv > static_cast<size_t>(__to_end - __to_next))
140.572 -+ __ret = partial;
140.573 -+ else
140.574 -+ {
140.575 -+ memcpy(__to_next, __buf, __conv);
140.576 -+ __state = __tmp_state;
140.577 -+ __to_next += __conv;
140.578 -+ ++__from_next;
140.579 -+ }
140.580 -+ }
140.581 -+ }
140.582 -+
140.583 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.584 -+ __uselocale(__old);
140.585 -+#endif
140.586 -+
140.587 -+ return __ret;
140.588 -+ }
140.589 -+
140.590 -+ codecvt_base::result
140.591 -+ codecvt<wchar_t, char, mbstate_t>::
140.592 -+ do_in(state_type& __state, const extern_type* __from,
140.593 -+ const extern_type* __from_end, const extern_type*& __from_next,
140.594 -+ intern_type* __to, intern_type* __to_end,
140.595 -+ intern_type*& __to_next) const
140.596 -+ {
140.597 -+ result __ret = ok;
140.598 -+ state_type __tmp_state(__state);
140.599 -+
140.600 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.601 -+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
140.602 -+#endif
140.603 -+
140.604 -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
140.605 -+ // in case we store a L'\0' and then continue, in a loop.
140.606 -+ // NB: mbsnrtowcs is a GNU extension
140.607 -+ for (__from_next = __from, __to_next = __to;
140.608 -+ __from_next < __from_end && __to_next < __to_end
140.609 -+ && __ret == ok;)
140.610 -+ {
140.611 -+ const extern_type* __from_chunk_end;
140.612 -+ __from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
140.613 -+ __from_end
140.614 -+ - __from_next));
140.615 -+ if (!__from_chunk_end)
140.616 -+ __from_chunk_end = __from_end;
140.617 -+
140.618 -+ __from = __from_next;
140.619 -+ size_t __conv = mbsnrtowcs(__to_next, &__from_next,
140.620 -+ __from_chunk_end - __from_next,
140.621 -+ __to_end - __to_next, &__state);
140.622 -+ if (__conv == static_cast<size_t>(-1))
140.623 -+ {
140.624 -+ // In case of error, in order to stop at the exact place we
140.625 -+ // have to start again from the beginning with a series of
140.626 -+ // mbrtowc.
140.627 -+ for (;; ++__to_next, __from += __conv)
140.628 -+ {
140.629 -+ __conv = mbrtowc(__to_next, __from, __from_end - __from,
140.630 -+ &__tmp_state);
140.631 -+ if (__conv == static_cast<size_t>(-1)
140.632 -+ || __conv == static_cast<size_t>(-2))
140.633 -+ break;
140.634 -+ }
140.635 -+ __from_next = __from;
140.636 -+ __state = __tmp_state;
140.637 -+ __ret = error;
140.638 -+ }
140.639 -+ else if (__from_next && __from_next < __from_chunk_end)
140.640 -+ {
140.641 -+ // It is unclear what to return in this case (see DR 382).
140.642 -+ __to_next += __conv;
140.643 -+ __ret = partial;
140.644 -+ }
140.645 -+ else
140.646 -+ {
140.647 -+ __from_next = __from_chunk_end;
140.648 -+ __to_next += __conv;
140.649 -+ }
140.650 -+
140.651 -+ if (__from_next < __from_end && __ret == ok)
140.652 -+ {
140.653 -+ if (__to_next < __to_end)
140.654 -+ {
140.655 -+ // XXX Probably wrong for stateful encodings
140.656 -+ __tmp_state = __state;
140.657 -+ ++__from_next;
140.658 -+ *__to_next++ = L'\0';
140.659 -+ }
140.660 -+ else
140.661 -+ __ret = partial;
140.662 -+ }
140.663 -+ }
140.664 -+
140.665 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.666 -+ __uselocale(__old);
140.667 -+#endif
140.668 -+
140.669 -+ return __ret;
140.670 -+ }
140.671 -+
140.672 -+ int
140.673 -+ codecvt<wchar_t, char, mbstate_t>::
140.674 -+ do_encoding() const throw()
140.675 -+ {
140.676 -+ // XXX This implementation assumes that the encoding is
140.677 -+ // stateless and is either single-byte or variable-width.
140.678 -+ int __ret = 0;
140.679 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.680 -+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
140.681 -+#endif
140.682 -+ if (MB_CUR_MAX == 1)
140.683 -+ __ret = 1;
140.684 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.685 -+ __uselocale(__old);
140.686 -+#endif
140.687 -+ return __ret;
140.688 -+ }
140.689 -+
140.690 -+ int
140.691 -+ codecvt<wchar_t, char, mbstate_t>::
140.692 -+ do_max_length() const throw()
140.693 -+ {
140.694 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.695 -+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
140.696 -+#endif
140.697 -+ // XXX Probably wrong for stateful encodings.
140.698 -+ int __ret = MB_CUR_MAX;
140.699 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.700 -+ __uselocale(__old);
140.701 -+#endif
140.702 -+ return __ret;
140.703 -+ }
140.704 -+
140.705 -+ int
140.706 -+ codecvt<wchar_t, char, mbstate_t>::
140.707 -+ do_length(state_type& __state, const extern_type* __from,
140.708 -+ const extern_type* __end, size_t __max) const
140.709 -+ {
140.710 -+ int __ret = 0;
140.711 -+ state_type __tmp_state(__state);
140.712 -+
140.713 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.714 -+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
140.715 -+#endif
140.716 -+
140.717 -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
140.718 -+ // in case we advance past it and then continue, in a loop.
140.719 -+ // NB: mbsnrtowcs is a GNU extension
140.720 -+
140.721 -+ // A dummy internal buffer is needed in order for mbsnrtocws to consider
140.722 -+ // its fourth parameter (it wouldn't with NULL as first parameter).
140.723 -+ wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t)
140.724 -+ * __max));
140.725 -+ while (__from < __end && __max)
140.726 -+ {
140.727 -+ const extern_type* __from_chunk_end;
140.728 -+ __from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
140.729 -+ __end
140.730 -+ - __from));
140.731 -+ if (!__from_chunk_end)
140.732 -+ __from_chunk_end = __end;
140.733 -+
140.734 -+ const extern_type* __tmp_from = __from;
140.735 -+ size_t __conv = mbsnrtowcs(__to, &__from,
140.736 -+ __from_chunk_end - __from,
140.737 -+ __max, &__state);
140.738 -+ if (__conv == static_cast<size_t>(-1))
140.739 -+ {
140.740 -+ // In case of error, in order to stop at the exact place we
140.741 -+ // have to start again from the beginning with a series of
140.742 -+ // mbrtowc.
140.743 -+ for (__from = __tmp_from;; __from += __conv)
140.744 -+ {
140.745 -+ __conv = mbrtowc(NULL, __from, __end - __from,
140.746 -+ &__tmp_state);
140.747 -+ if (__conv == static_cast<size_t>(-1)
140.748 -+ || __conv == static_cast<size_t>(-2))
140.749 -+ break;
140.750 -+ }
140.751 -+ __state = __tmp_state;
140.752 -+ __ret += __from - __tmp_from;
140.753 -+ break;
140.754 -+ }
140.755 -+ if (!__from)
140.756 -+ __from = __from_chunk_end;
140.757 -+
140.758 -+ __ret += __from - __tmp_from;
140.759 -+ __max -= __conv;
140.760 -+
140.761 -+ if (__from < __end && __max)
140.762 -+ {
140.763 -+ // XXX Probably wrong for stateful encodings
140.764 -+ __tmp_state = __state;
140.765 -+ ++__from;
140.766 -+ ++__ret;
140.767 -+ --__max;
140.768 -+ }
140.769 -+ }
140.770 -+
140.771 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.772 -+ __uselocale(__old);
140.773 -+#endif
140.774 -+
140.775 -+ return __ret;
140.776 -+ }
140.777 -+#endif
140.778 -+}
140.779 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/collate_members.cc
140.780 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600
140.781 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/collate_members.cc 2004-09-10 10:47:40.000000000 -0500
140.782 -@@ -0,0 +1,80 @@
140.783 -+// std::collate implementation details, GNU version -*- C++ -*-
140.784 -+
140.785 -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
140.786 -+//
140.787 -+// This file is part of the GNU ISO C++ Library. This library is free
140.788 -+// software; you can redistribute it and/or modify it under the
140.789 -+// terms of the GNU General Public License as published by the
140.790 -+// Free Software Foundation; either version 2, or (at your option)
140.791 -+// any later version.
140.792 -+
140.793 -+// This library is distributed in the hope that it will be useful,
140.794 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.795 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.796 -+// GNU General Public License for more details.
140.797 -+
140.798 -+// You should have received a copy of the GNU General Public License along
140.799 -+// with this library; see the file COPYING. If not, write to the Free
140.800 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.801 -+// USA.
140.802 -+
140.803 -+// As a special exception, you may use this file as part of a free software
140.804 -+// library without restriction. Specifically, if other files instantiate
140.805 -+// templates or use macros or inline functions from this file, or you compile
140.806 -+// this file and link it with other files to produce an executable, this
140.807 -+// file does not by itself cause the resulting executable to be covered by
140.808 -+// the GNU General Public License. This exception does not however
140.809 -+// invalidate any other reasons why the executable file might be covered by
140.810 -+// the GNU General Public License.
140.811 -+
140.812 -+//
140.813 -+// ISO C++ 14882: 22.2.4.1.2 collate virtual functions
140.814 -+//
140.815 -+
140.816 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.817 -+
140.818 -+#include <locale>
140.819 -+#include <bits/c++locale_internal.h>
140.820 -+
140.821 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.822 -+#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
140.823 -+#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
140.824 -+#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
140.825 -+#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
140.826 -+#endif
140.827 -+
140.828 -+namespace std
140.829 -+{
140.830 -+ // These are basically extensions to char_traits, and perhaps should
140.831 -+ // be put there instead of here.
140.832 -+ template<>
140.833 -+ int
140.834 -+ collate<char>::_M_compare(const char* __one, const char* __two) const
140.835 -+ {
140.836 -+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
140.837 -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
140.838 -+ }
140.839 -+
140.840 -+ template<>
140.841 -+ size_t
140.842 -+ collate<char>::_M_transform(char* __to, const char* __from,
140.843 -+ size_t __n) const
140.844 -+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
140.845 -+
140.846 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.847 -+ template<>
140.848 -+ int
140.849 -+ collate<wchar_t>::_M_compare(const wchar_t* __one,
140.850 -+ const wchar_t* __two) const
140.851 -+ {
140.852 -+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
140.853 -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
140.854 -+ }
140.855 -+
140.856 -+ template<>
140.857 -+ size_t
140.858 -+ collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
140.859 -+ size_t __n) const
140.860 -+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
140.861 -+#endif
140.862 -+}
140.863 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc
140.864 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/ctype_members.cc 1969-12-31 18:00:00.000000000 -0600
140.865 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2004-09-10 10:47:40.000000000 -0500
140.866 -@@ -0,0 +1,300 @@
140.867 -+// std::ctype implementation details, GNU version -*- C++ -*-
140.868 -+
140.869 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.870 -+//
140.871 -+// This file is part of the GNU ISO C++ Library. This library is free
140.872 -+// software; you can redistribute it and/or modify it under the
140.873 -+// terms of the GNU General Public License as published by the
140.874 -+// Free Software Foundation; either version 2, or (at your option)
140.875 -+// any later version.
140.876 -+
140.877 -+// This library is distributed in the hope that it will be useful,
140.878 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.879 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.880 -+// GNU General Public License for more details.
140.881 -+
140.882 -+// You should have received a copy of the GNU General Public License along
140.883 -+// with this library; see the file COPYING. If not, write to the Free
140.884 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.885 -+// USA.
140.886 -+
140.887 -+// As a special exception, you may use this file as part of a free software
140.888 -+// library without restriction. Specifically, if other files instantiate
140.889 -+// templates or use macros or inline functions from this file, or you compile
140.890 -+// this file and link it with other files to produce an executable, this
140.891 -+// file does not by itself cause the resulting executable to be covered by
140.892 -+// the GNU General Public License. This exception does not however
140.893 -+// invalidate any other reasons why the executable file might be covered by
140.894 -+// the GNU General Public License.
140.895 -+
140.896 -+//
140.897 -+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions.
140.898 -+//
140.899 -+
140.900 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.901 -+
140.902 -+#define _LIBC
140.903 -+#include <locale>
140.904 -+#undef _LIBC
140.905 -+#include <bits/c++locale_internal.h>
140.906 -+
140.907 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.908 -+#define __wctype_l(S, L) wctype((S))
140.909 -+#define __towupper_l(C, L) towupper((C))
140.910 -+#define __towlower_l(C, L) towlower((C))
140.911 -+#define __iswctype_l(C, M, L) iswctype((C), (M))
140.912 -+#endif
140.913 -+
140.914 -+namespace std
140.915 -+{
140.916 -+ // NB: The other ctype<char> specializations are in src/locale.cc and
140.917 -+ // various /config/os/* files.
140.918 -+ template<>
140.919 -+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
140.920 -+ : ctype<char>(0, false, __refs)
140.921 -+ {
140.922 -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
140.923 -+ {
140.924 -+ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
140.925 -+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
140.926 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.927 -+ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
140.928 -+ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
140.929 -+ this->_M_table = this->_M_c_locale_ctype->__ctype_b;
140.930 -+#endif
140.931 -+ }
140.932 -+ }
140.933 -+
140.934 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.935 -+ ctype<wchar_t>::__wmask_type
140.936 -+ ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
140.937 -+ {
140.938 -+ __wmask_type __ret;
140.939 -+ switch (__m)
140.940 -+ {
140.941 -+ case space:
140.942 -+ __ret = __wctype_l("space", _M_c_locale_ctype);
140.943 -+ break;
140.944 -+ case print:
140.945 -+ __ret = __wctype_l("print", _M_c_locale_ctype);
140.946 -+ break;
140.947 -+ case cntrl:
140.948 -+ __ret = __wctype_l("cntrl", _M_c_locale_ctype);
140.949 -+ break;
140.950 -+ case upper:
140.951 -+ __ret = __wctype_l("upper", _M_c_locale_ctype);
140.952 -+ break;
140.953 -+ case lower:
140.954 -+ __ret = __wctype_l("lower", _M_c_locale_ctype);
140.955 -+ break;
140.956 -+ case alpha:
140.957 -+ __ret = __wctype_l("alpha", _M_c_locale_ctype);
140.958 -+ break;
140.959 -+ case digit:
140.960 -+ __ret = __wctype_l("digit", _M_c_locale_ctype);
140.961 -+ break;
140.962 -+ case punct:
140.963 -+ __ret = __wctype_l("punct", _M_c_locale_ctype);
140.964 -+ break;
140.965 -+ case xdigit:
140.966 -+ __ret = __wctype_l("xdigit", _M_c_locale_ctype);
140.967 -+ break;
140.968 -+ case alnum:
140.969 -+ __ret = __wctype_l("alnum", _M_c_locale_ctype);
140.970 -+ break;
140.971 -+ case graph:
140.972 -+ __ret = __wctype_l("graph", _M_c_locale_ctype);
140.973 -+ break;
140.974 -+ default:
140.975 -+ __ret = 0;
140.976 -+ }
140.977 -+ return __ret;
140.978 -+ }
140.979 -+
140.980 -+ wchar_t
140.981 -+ ctype<wchar_t>::do_toupper(wchar_t __c) const
140.982 -+ { return __towupper_l(__c, _M_c_locale_ctype); }
140.983 -+
140.984 -+ const wchar_t*
140.985 -+ ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
140.986 -+ {
140.987 -+ while (__lo < __hi)
140.988 -+ {
140.989 -+ *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
140.990 -+ ++__lo;
140.991 -+ }
140.992 -+ return __hi;
140.993 -+ }
140.994 -+
140.995 -+ wchar_t
140.996 -+ ctype<wchar_t>::do_tolower(wchar_t __c) const
140.997 -+ { return __towlower_l(__c, _M_c_locale_ctype); }
140.998 -+
140.999 -+ const wchar_t*
140.1000 -+ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
140.1001 -+ {
140.1002 -+ while (__lo < __hi)
140.1003 -+ {
140.1004 -+ *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
140.1005 -+ ++__lo;
140.1006 -+ }
140.1007 -+ return __hi;
140.1008 -+ }
140.1009 -+
140.1010 -+ bool
140.1011 -+ ctype<wchar_t>::
140.1012 -+ do_is(mask __m, wchar_t __c) const
140.1013 -+ {
140.1014 -+ // Highest bitmask in ctype_base == 10, but extra in "C"
140.1015 -+ // library for blank.
140.1016 -+ bool __ret = false;
140.1017 -+ const size_t __bitmasksize = 11;
140.1018 -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
140.1019 -+ if (__m & _M_bit[__bitcur]
140.1020 -+ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
140.1021 -+ {
140.1022 -+ __ret = true;
140.1023 -+ break;
140.1024 -+ }
140.1025 -+ return __ret;
140.1026 -+ }
140.1027 -+
140.1028 -+ const wchar_t*
140.1029 -+ ctype<wchar_t>::
140.1030 -+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
140.1031 -+ {
140.1032 -+ for (; __lo < __hi; ++__vec, ++__lo)
140.1033 -+ {
140.1034 -+ // Highest bitmask in ctype_base == 10, but extra in "C"
140.1035 -+ // library for blank.
140.1036 -+ const size_t __bitmasksize = 11;
140.1037 -+ mask __m = 0;
140.1038 -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
140.1039 -+ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
140.1040 -+ __m |= _M_bit[__bitcur];
140.1041 -+ *__vec = __m;
140.1042 -+ }
140.1043 -+ return __hi;
140.1044 -+ }
140.1045 -+
140.1046 -+ const wchar_t*
140.1047 -+ ctype<wchar_t>::
140.1048 -+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
140.1049 -+ {
140.1050 -+ while (__lo < __hi && !this->do_is(__m, *__lo))
140.1051 -+ ++__lo;
140.1052 -+ return __lo;
140.1053 -+ }
140.1054 -+
140.1055 -+ const wchar_t*
140.1056 -+ ctype<wchar_t>::
140.1057 -+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
140.1058 -+ {
140.1059 -+ while (__lo < __hi && this->do_is(__m, *__lo) != 0)
140.1060 -+ ++__lo;
140.1061 -+ return __lo;
140.1062 -+ }
140.1063 -+
140.1064 -+ wchar_t
140.1065 -+ ctype<wchar_t>::
140.1066 -+ do_widen(char __c) const
140.1067 -+ { return _M_widen[static_cast<unsigned char>(__c)]; }
140.1068 -+
140.1069 -+ const char*
140.1070 -+ ctype<wchar_t>::
140.1071 -+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
140.1072 -+ {
140.1073 -+ while (__lo < __hi)
140.1074 -+ {
140.1075 -+ *__dest = _M_widen[static_cast<unsigned char>(*__lo)];
140.1076 -+ ++__lo;
140.1077 -+ ++__dest;
140.1078 -+ }
140.1079 -+ return __hi;
140.1080 -+ }
140.1081 -+
140.1082 -+ char
140.1083 -+ ctype<wchar_t>::
140.1084 -+ do_narrow(wchar_t __wc, char __dfault) const
140.1085 -+ {
140.1086 -+ if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
140.1087 -+ return _M_narrow[__wc];
140.1088 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1089 -+ __c_locale __old = __uselocale(_M_c_locale_ctype);
140.1090 -+#endif
140.1091 -+ const int __c = wctob(__wc);
140.1092 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1093 -+ __uselocale(__old);
140.1094 -+#endif
140.1095 -+ return (__c == EOF ? __dfault : static_cast<char>(__c));
140.1096 -+ }
140.1097 -+
140.1098 -+ const wchar_t*
140.1099 -+ ctype<wchar_t>::
140.1100 -+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
140.1101 -+ char* __dest) const
140.1102 -+ {
140.1103 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1104 -+ __c_locale __old = __uselocale(_M_c_locale_ctype);
140.1105 -+#endif
140.1106 -+ if (_M_narrow_ok)
140.1107 -+ while (__lo < __hi)
140.1108 -+ {
140.1109 -+ if (*__lo >= 0 && *__lo < 128)
140.1110 -+ *__dest = _M_narrow[*__lo];
140.1111 -+ else
140.1112 -+ {
140.1113 -+ const int __c = wctob(*__lo);
140.1114 -+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
140.1115 -+ }
140.1116 -+ ++__lo;
140.1117 -+ ++__dest;
140.1118 -+ }
140.1119 -+ else
140.1120 -+ while (__lo < __hi)
140.1121 -+ {
140.1122 -+ const int __c = wctob(*__lo);
140.1123 -+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
140.1124 -+ ++__lo;
140.1125 -+ ++__dest;
140.1126 -+ }
140.1127 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1128 -+ __uselocale(__old);
140.1129 -+#endif
140.1130 -+ return __hi;
140.1131 -+ }
140.1132 -+
140.1133 -+ void
140.1134 -+ ctype<wchar_t>::_M_initialize_ctype()
140.1135 -+ {
140.1136 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1137 -+ __c_locale __old = __uselocale(_M_c_locale_ctype);
140.1138 -+#endif
140.1139 -+ wint_t __i;
140.1140 -+ for (__i = 0; __i < 128; ++__i)
140.1141 -+ {
140.1142 -+ const int __c = wctob(__i);
140.1143 -+ if (__c == EOF)
140.1144 -+ break;
140.1145 -+ else
140.1146 -+ _M_narrow[__i] = static_cast<char>(__c);
140.1147 -+ }
140.1148 -+ if (__i == 128)
140.1149 -+ _M_narrow_ok = true;
140.1150 -+ else
140.1151 -+ _M_narrow_ok = false;
140.1152 -+ for (size_t __j = 0;
140.1153 -+ __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
140.1154 -+ _M_widen[__j] = btowc(__j);
140.1155 -+
140.1156 -+ for (size_t __k = 0; __k <= 11; ++__k)
140.1157 -+ {
140.1158 -+ _M_bit[__k] = static_cast<mask>(_ISbit(__k));
140.1159 -+ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
140.1160 -+ }
140.1161 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1162 -+ __uselocale(__old);
140.1163 -+#endif
140.1164 -+ }
140.1165 -+#endif // _GLIBCXX_USE_WCHAR_T
140.1166 -+}
140.1167 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/messages_members.cc
140.1168 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/messages_members.cc 1969-12-31 18:00:00.000000000 -0600
140.1169 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/messages_members.cc 2004-09-10 10:47:40.000000000 -0500
140.1170 -@@ -0,0 +1,100 @@
140.1171 -+// std::messages implementation details, GNU version -*- C++ -*-
140.1172 -+
140.1173 -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
140.1174 -+//
140.1175 -+// This file is part of the GNU ISO C++ Library. This library is free
140.1176 -+// software; you can redistribute it and/or modify it under the
140.1177 -+// terms of the GNU General Public License as published by the
140.1178 -+// Free Software Foundation; either version 2, or (at your option)
140.1179 -+// any later version.
140.1180 -+
140.1181 -+// This library is distributed in the hope that it will be useful,
140.1182 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.1183 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.1184 -+// GNU General Public License for more details.
140.1185 -+
140.1186 -+// You should have received a copy of the GNU General Public License along
140.1187 -+// with this library; see the file COPYING. If not, write to the Free
140.1188 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.1189 -+// USA.
140.1190 -+
140.1191 -+// As a special exception, you may use this file as part of a free software
140.1192 -+// library without restriction. Specifically, if other files instantiate
140.1193 -+// templates or use macros or inline functions from this file, or you compile
140.1194 -+// this file and link it with other files to produce an executable, this
140.1195 -+// file does not by itself cause the resulting executable to be covered by
140.1196 -+// the GNU General Public License. This exception does not however
140.1197 -+// invalidate any other reasons why the executable file might be covered by
140.1198 -+// the GNU General Public License.
140.1199 -+
140.1200 -+//
140.1201 -+// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
140.1202 -+//
140.1203 -+
140.1204 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.1205 -+
140.1206 -+#include <locale>
140.1207 -+#include <bits/c++locale_internal.h>
140.1208 -+
140.1209 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1210 -+#warning fix gettext stuff
140.1211 -+#endif
140.1212 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
140.1213 -+extern "C" char *__dcgettext(const char *domainname,
140.1214 -+ const char *msgid, int category);
140.1215 -+#undef gettext
140.1216 -+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
140.1217 -+#else
140.1218 -+#undef gettext
140.1219 -+#define gettext(msgid) (msgid)
140.1220 -+#endif
140.1221 -+
140.1222 -+namespace std
140.1223 -+{
140.1224 -+ // Specializations.
140.1225 -+ template<>
140.1226 -+ string
140.1227 -+ messages<char>::do_get(catalog, int, int, const string& __dfault) const
140.1228 -+ {
140.1229 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1230 -+ __c_locale __old = __uselocale(_M_c_locale_messages);
140.1231 -+ const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
140.1232 -+ __uselocale(__old);
140.1233 -+ return string(__msg);
140.1234 -+#elif defined __UCLIBC_HAS_LOCALE__
140.1235 -+ char* __old = strdup(setlocale(LC_ALL, NULL));
140.1236 -+ setlocale(LC_ALL, _M_name_messages);
140.1237 -+ const char* __msg = gettext(__dfault.c_str());
140.1238 -+ setlocale(LC_ALL, __old);
140.1239 -+ free(__old);
140.1240 -+ return string(__msg);
140.1241 -+#else
140.1242 -+ const char* __msg = gettext(__dfault.c_str());
140.1243 -+ return string(__msg);
140.1244 -+#endif
140.1245 -+ }
140.1246 -+
140.1247 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.1248 -+ template<>
140.1249 -+ wstring
140.1250 -+ messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
140.1251 -+ {
140.1252 -+# ifdef __UCLIBC_HAS_XLOCALE__
140.1253 -+ __c_locale __old = __uselocale(_M_c_locale_messages);
140.1254 -+ char* __msg = gettext(_M_convert_to_char(__dfault));
140.1255 -+ __uselocale(__old);
140.1256 -+ return _M_convert_from_char(__msg);
140.1257 -+# elif defined __UCLIBC_HAS_LOCALE__
140.1258 -+ char* __old = strdup(setlocale(LC_ALL, NULL));
140.1259 -+ setlocale(LC_ALL, _M_name_messages);
140.1260 -+ char* __msg = gettext(_M_convert_to_char(__dfault));
140.1261 -+ setlocale(LC_ALL, __old);
140.1262 -+ free(__old);
140.1263 -+ return _M_convert_from_char(__msg);
140.1264 -+# else
140.1265 -+ char* __msg = gettext(_M_convert_to_char(__dfault));
140.1266 -+ return _M_convert_from_char(__msg);
140.1267 -+# endif
140.1268 -+ }
140.1269 -+#endif
140.1270 -+}
140.1271 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-3.4.2/libstdc++-v3/config/locale/uclibc/messages_members.h
140.1272 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600
140.1273 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/messages_members.h 2004-09-10 10:47:40.000000000 -0500
140.1274 -@@ -0,0 +1,118 @@
140.1275 -+// std::messages implementation details, GNU version -*- C++ -*-
140.1276 -+
140.1277 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.1278 -+//
140.1279 -+// This file is part of the GNU ISO C++ Library. This library is free
140.1280 -+// software; you can redistribute it and/or modify it under the
140.1281 -+// terms of the GNU General Public License as published by the
140.1282 -+// Free Software Foundation; either version 2, or (at your option)
140.1283 -+// any later version.
140.1284 -+
140.1285 -+// This library is distributed in the hope that it will be useful,
140.1286 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.1287 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.1288 -+// GNU General Public License for more details.
140.1289 -+
140.1290 -+// You should have received a copy of the GNU General Public License along
140.1291 -+// with this library; see the file COPYING. If not, write to the Free
140.1292 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.1293 -+// USA.
140.1294 -+
140.1295 -+// As a special exception, you may use this file as part of a free software
140.1296 -+// library without restriction. Specifically, if other files instantiate
140.1297 -+// templates or use macros or inline functions from this file, or you compile
140.1298 -+// this file and link it with other files to produce an executable, this
140.1299 -+// file does not by itself cause the resulting executable to be covered by
140.1300 -+// the GNU General Public License. This exception does not however
140.1301 -+// invalidate any other reasons why the executable file might be covered by
140.1302 -+// the GNU General Public License.
140.1303 -+
140.1304 -+//
140.1305 -+// ISO C++ 14882: 22.2.7.1.2 messages functions
140.1306 -+//
140.1307 -+
140.1308 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.1309 -+
140.1310 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1311 -+#warning fix prototypes for *textdomain funcs
140.1312 -+#endif
140.1313 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
140.1314 -+extern "C" char *__textdomain(const char *domainname);
140.1315 -+extern "C" char *__bindtextdomain(const char *domainname,
140.1316 -+ const char *dirname);
140.1317 -+#else
140.1318 -+#undef __textdomain
140.1319 -+#undef __bindtextdomain
140.1320 -+#define __textdomain(D) ((void)0)
140.1321 -+#define __bindtextdomain(D,P) ((void)0)
140.1322 -+#endif
140.1323 -+
140.1324 -+ // Non-virtual member functions.
140.1325 -+ template<typename _CharT>
140.1326 -+ messages<_CharT>::messages(size_t __refs)
140.1327 -+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
140.1328 -+ _M_name_messages(_S_get_c_name())
140.1329 -+ { }
140.1330 -+
140.1331 -+ template<typename _CharT>
140.1332 -+ messages<_CharT>::messages(__c_locale __cloc, const char* __s,
140.1333 -+ size_t __refs)
140.1334 -+ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
140.1335 -+ _M_name_messages(__s)
140.1336 -+ {
140.1337 -+ char* __tmp = new char[std::strlen(__s) + 1];
140.1338 -+ std::strcpy(__tmp, __s);
140.1339 -+ _M_name_messages = __tmp;
140.1340 -+ }
140.1341 -+
140.1342 -+ template<typename _CharT>
140.1343 -+ typename messages<_CharT>::catalog
140.1344 -+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
140.1345 -+ const char* __dir) const
140.1346 -+ {
140.1347 -+ __bindtextdomain(__s.c_str(), __dir);
140.1348 -+ return this->do_open(__s, __loc);
140.1349 -+ }
140.1350 -+
140.1351 -+ // Virtual member functions.
140.1352 -+ template<typename _CharT>
140.1353 -+ messages<_CharT>::~messages()
140.1354 -+ {
140.1355 -+ if (_M_name_messages != _S_get_c_name())
140.1356 -+ delete [] _M_name_messages;
140.1357 -+ _S_destroy_c_locale(_M_c_locale_messages);
140.1358 -+ }
140.1359 -+
140.1360 -+ template<typename _CharT>
140.1361 -+ typename messages<_CharT>::catalog
140.1362 -+ messages<_CharT>::do_open(const basic_string<char>& __s,
140.1363 -+ const locale&) const
140.1364 -+ {
140.1365 -+ // No error checking is done, assume the catalog exists and can
140.1366 -+ // be used.
140.1367 -+ __textdomain(__s.c_str());
140.1368 -+ return 0;
140.1369 -+ }
140.1370 -+
140.1371 -+ template<typename _CharT>
140.1372 -+ void
140.1373 -+ messages<_CharT>::do_close(catalog) const
140.1374 -+ { }
140.1375 -+
140.1376 -+ // messages_byname
140.1377 -+ template<typename _CharT>
140.1378 -+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
140.1379 -+ : messages<_CharT>(__refs)
140.1380 -+ {
140.1381 -+ if (this->_M_name_messages != locale::facet::_S_get_c_name())
140.1382 -+ delete [] this->_M_name_messages;
140.1383 -+ char* __tmp = new char[std::strlen(__s) + 1];
140.1384 -+ std::strcpy(__tmp, __s);
140.1385 -+ this->_M_name_messages = __tmp;
140.1386 -+
140.1387 -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
140.1388 -+ {
140.1389 -+ this->_S_destroy_c_locale(this->_M_c_locale_messages);
140.1390 -+ this->_S_create_c_locale(this->_M_c_locale_messages, __s);
140.1391 -+ }
140.1392 -+ }
140.1393 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc
140.1394 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1969-12-31 18:00:00.000000000 -0600
140.1395 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2004-09-10 10:47:40.000000000 -0500
140.1396 -@@ -0,0 +1,698 @@
140.1397 -+// std::moneypunct implementation details, GNU version -*- C++ -*-
140.1398 -+
140.1399 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.1400 -+//
140.1401 -+// This file is part of the GNU ISO C++ Library. This library is free
140.1402 -+// software; you can redistribute it and/or modify it under the
140.1403 -+// terms of the GNU General Public License as published by the
140.1404 -+// Free Software Foundation; either version 2, or (at your option)
140.1405 -+// any later version.
140.1406 -+
140.1407 -+// This library is distributed in the hope that it will be useful,
140.1408 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.1409 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.1410 -+// GNU General Public License for more details.
140.1411 -+
140.1412 -+// You should have received a copy of the GNU General Public License along
140.1413 -+// with this library; see the file COPYING. If not, write to the Free
140.1414 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.1415 -+// USA.
140.1416 -+
140.1417 -+// As a special exception, you may use this file as part of a free software
140.1418 -+// library without restriction. Specifically, if other files instantiate
140.1419 -+// templates or use macros or inline functions from this file, or you compile
140.1420 -+// this file and link it with other files to produce an executable, this
140.1421 -+// file does not by itself cause the resulting executable to be covered by
140.1422 -+// the GNU General Public License. This exception does not however
140.1423 -+// invalidate any other reasons why the executable file might be covered by
140.1424 -+// the GNU General Public License.
140.1425 -+
140.1426 -+//
140.1427 -+// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions
140.1428 -+//
140.1429 -+
140.1430 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.1431 -+
140.1432 -+#define _LIBC
140.1433 -+#include <locale>
140.1434 -+#undef _LIBC
140.1435 -+#include <bits/c++locale_internal.h>
140.1436 -+
140.1437 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1438 -+#warning optimize this for uclibc
140.1439 -+#warning tailor for stub locale support
140.1440 -+#endif
140.1441 -+
140.1442 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.1443 -+#define __nl_langinfo_l(N, L) nl_langinfo((N))
140.1444 -+#endif
140.1445 -+
140.1446 -+namespace std
140.1447 -+{
140.1448 -+ // Construct and return valid pattern consisting of some combination of:
140.1449 -+ // space none symbol sign value
140.1450 -+ money_base::pattern
140.1451 -+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
140.1452 -+ {
140.1453 -+ pattern __ret;
140.1454 -+
140.1455 -+ // This insanely complicated routine attempts to construct a valid
140.1456 -+ // pattern for use with monyepunct. A couple of invariants:
140.1457 -+
140.1458 -+ // if (__precedes) symbol -> value
140.1459 -+ // else value -> symbol
140.1460 -+
140.1461 -+ // if (__space) space
140.1462 -+ // else none
140.1463 -+
140.1464 -+ // none == never first
140.1465 -+ // space never first or last
140.1466 -+
140.1467 -+ // Any elegant implementations of this are welcome.
140.1468 -+ switch (__posn)
140.1469 -+ {
140.1470 -+ case 0:
140.1471 -+ case 1:
140.1472 -+ // 1 The sign precedes the value and symbol.
140.1473 -+ __ret.field[0] = sign;
140.1474 -+ if (__space)
140.1475 -+ {
140.1476 -+ // Pattern starts with sign.
140.1477 -+ if (__precedes)
140.1478 -+ {
140.1479 -+ __ret.field[1] = symbol;
140.1480 -+ __ret.field[3] = value;
140.1481 -+ }
140.1482 -+ else
140.1483 -+ {
140.1484 -+ __ret.field[1] = value;
140.1485 -+ __ret.field[3] = symbol;
140.1486 -+ }
140.1487 -+ __ret.field[2] = space;
140.1488 -+ }
140.1489 -+ else
140.1490 -+ {
140.1491 -+ // Pattern starts with sign and ends with none.
140.1492 -+ if (__precedes)
140.1493 -+ {
140.1494 -+ __ret.field[1] = symbol;
140.1495 -+ __ret.field[2] = value;
140.1496 -+ }
140.1497 -+ else
140.1498 -+ {
140.1499 -+ __ret.field[1] = value;
140.1500 -+ __ret.field[2] = symbol;
140.1501 -+ }
140.1502 -+ __ret.field[3] = none;
140.1503 -+ }
140.1504 -+ break;
140.1505 -+ case 2:
140.1506 -+ // 2 The sign follows the value and symbol.
140.1507 -+ if (__space)
140.1508 -+ {
140.1509 -+ // Pattern either ends with sign.
140.1510 -+ if (__precedes)
140.1511 -+ {
140.1512 -+ __ret.field[0] = symbol;
140.1513 -+ __ret.field[2] = value;
140.1514 -+ }
140.1515 -+ else
140.1516 -+ {
140.1517 -+ __ret.field[0] = value;
140.1518 -+ __ret.field[2] = symbol;
140.1519 -+ }
140.1520 -+ __ret.field[1] = space;
140.1521 -+ __ret.field[3] = sign;
140.1522 -+ }
140.1523 -+ else
140.1524 -+ {
140.1525 -+ // Pattern ends with sign then none.
140.1526 -+ if (__precedes)
140.1527 -+ {
140.1528 -+ __ret.field[0] = symbol;
140.1529 -+ __ret.field[1] = value;
140.1530 -+ }
140.1531 -+ else
140.1532 -+ {
140.1533 -+ __ret.field[0] = value;
140.1534 -+ __ret.field[1] = symbol;
140.1535 -+ }
140.1536 -+ __ret.field[2] = sign;
140.1537 -+ __ret.field[3] = none;
140.1538 -+ }
140.1539 -+ break;
140.1540 -+ case 3:
140.1541 -+ // 3 The sign immediately precedes the symbol.
140.1542 -+ if (__precedes)
140.1543 -+ {
140.1544 -+ __ret.field[0] = sign;
140.1545 -+ __ret.field[1] = symbol;
140.1546 -+ if (__space)
140.1547 -+ {
140.1548 -+ __ret.field[2] = space;
140.1549 -+ __ret.field[3] = value;
140.1550 -+ }
140.1551 -+ else
140.1552 -+ {
140.1553 -+ __ret.field[2] = value;
140.1554 -+ __ret.field[3] = none;
140.1555 -+ }
140.1556 -+ }
140.1557 -+ else
140.1558 -+ {
140.1559 -+ __ret.field[0] = value;
140.1560 -+ if (__space)
140.1561 -+ {
140.1562 -+ __ret.field[1] = space;
140.1563 -+ __ret.field[2] = sign;
140.1564 -+ __ret.field[3] = symbol;
140.1565 -+ }
140.1566 -+ else
140.1567 -+ {
140.1568 -+ __ret.field[1] = sign;
140.1569 -+ __ret.field[2] = symbol;
140.1570 -+ __ret.field[3] = none;
140.1571 -+ }
140.1572 -+ }
140.1573 -+ break;
140.1574 -+ case 4:
140.1575 -+ // 4 The sign immediately follows the symbol.
140.1576 -+ if (__precedes)
140.1577 -+ {
140.1578 -+ __ret.field[0] = symbol;
140.1579 -+ __ret.field[1] = sign;
140.1580 -+ if (__space)
140.1581 -+ {
140.1582 -+ __ret.field[2] = space;
140.1583 -+ __ret.field[3] = value;
140.1584 -+ }
140.1585 -+ else
140.1586 -+ {
140.1587 -+ __ret.field[2] = value;
140.1588 -+ __ret.field[3] = none;
140.1589 -+ }
140.1590 -+ }
140.1591 -+ else
140.1592 -+ {
140.1593 -+ __ret.field[0] = value;
140.1594 -+ if (__space)
140.1595 -+ {
140.1596 -+ __ret.field[1] = space;
140.1597 -+ __ret.field[2] = symbol;
140.1598 -+ __ret.field[3] = sign;
140.1599 -+ }
140.1600 -+ else
140.1601 -+ {
140.1602 -+ __ret.field[1] = symbol;
140.1603 -+ __ret.field[2] = sign;
140.1604 -+ __ret.field[3] = none;
140.1605 -+ }
140.1606 -+ }
140.1607 -+ break;
140.1608 -+ default:
140.1609 -+ ;
140.1610 -+ }
140.1611 -+ return __ret;
140.1612 -+ }
140.1613 -+
140.1614 -+ template<>
140.1615 -+ void
140.1616 -+ moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc,
140.1617 -+ const char*)
140.1618 -+ {
140.1619 -+ if (!_M_data)
140.1620 -+ _M_data = new __moneypunct_cache<char, true>;
140.1621 -+
140.1622 -+ if (!__cloc)
140.1623 -+ {
140.1624 -+ // "C" locale
140.1625 -+ _M_data->_M_decimal_point = '.';
140.1626 -+ _M_data->_M_thousands_sep = ',';
140.1627 -+ _M_data->_M_grouping = "";
140.1628 -+ _M_data->_M_grouping_size = 0;
140.1629 -+ _M_data->_M_curr_symbol = "";
140.1630 -+ _M_data->_M_curr_symbol_size = 0;
140.1631 -+ _M_data->_M_positive_sign = "";
140.1632 -+ _M_data->_M_positive_sign_size = 0;
140.1633 -+ _M_data->_M_negative_sign = "";
140.1634 -+ _M_data->_M_negative_sign_size = 0;
140.1635 -+ _M_data->_M_frac_digits = 0;
140.1636 -+ _M_data->_M_pos_format = money_base::_S_default_pattern;
140.1637 -+ _M_data->_M_neg_format = money_base::_S_default_pattern;
140.1638 -+
140.1639 -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
140.1640 -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
140.1641 -+ }
140.1642 -+ else
140.1643 -+ {
140.1644 -+ // Named locale.
140.1645 -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
140.1646 -+ __cloc));
140.1647 -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
140.1648 -+ __cloc));
140.1649 -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
140.1650 -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.1651 -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
140.1652 -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
140.1653 -+
140.1654 -+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
140.1655 -+ if (!__nposn)
140.1656 -+ _M_data->_M_negative_sign = "()";
140.1657 -+ else
140.1658 -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
140.1659 -+ __cloc);
140.1660 -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
140.1661 -+
140.1662 -+ // _Intl == true
140.1663 -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
140.1664 -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
140.1665 -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
140.1666 -+ __cloc));
140.1667 -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
140.1668 -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
140.1669 -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
140.1670 -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
140.1671 -+ __pposn);
140.1672 -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
140.1673 -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
140.1674 -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
140.1675 -+ __nposn);
140.1676 -+ }
140.1677 -+ }
140.1678 -+
140.1679 -+ template<>
140.1680 -+ void
140.1681 -+ moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc,
140.1682 -+ const char*)
140.1683 -+ {
140.1684 -+ if (!_M_data)
140.1685 -+ _M_data = new __moneypunct_cache<char, false>;
140.1686 -+
140.1687 -+ if (!__cloc)
140.1688 -+ {
140.1689 -+ // "C" locale
140.1690 -+ _M_data->_M_decimal_point = '.';
140.1691 -+ _M_data->_M_thousands_sep = ',';
140.1692 -+ _M_data->_M_grouping = "";
140.1693 -+ _M_data->_M_grouping_size = 0;
140.1694 -+ _M_data->_M_curr_symbol = "";
140.1695 -+ _M_data->_M_curr_symbol_size = 0;
140.1696 -+ _M_data->_M_positive_sign = "";
140.1697 -+ _M_data->_M_positive_sign_size = 0;
140.1698 -+ _M_data->_M_negative_sign = "";
140.1699 -+ _M_data->_M_negative_sign_size = 0;
140.1700 -+ _M_data->_M_frac_digits = 0;
140.1701 -+ _M_data->_M_pos_format = money_base::_S_default_pattern;
140.1702 -+ _M_data->_M_neg_format = money_base::_S_default_pattern;
140.1703 -+
140.1704 -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
140.1705 -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
140.1706 -+ }
140.1707 -+ else
140.1708 -+ {
140.1709 -+ // Named locale.
140.1710 -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
140.1711 -+ __cloc));
140.1712 -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
140.1713 -+ __cloc));
140.1714 -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
140.1715 -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.1716 -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
140.1717 -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
140.1718 -+
140.1719 -+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
140.1720 -+ if (!__nposn)
140.1721 -+ _M_data->_M_negative_sign = "()";
140.1722 -+ else
140.1723 -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
140.1724 -+ __cloc);
140.1725 -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
140.1726 -+
140.1727 -+ // _Intl == false
140.1728 -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
140.1729 -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
140.1730 -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
140.1731 -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
140.1732 -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
140.1733 -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
140.1734 -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
140.1735 -+ __pposn);
140.1736 -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
140.1737 -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
140.1738 -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
140.1739 -+ __nposn);
140.1740 -+ }
140.1741 -+ }
140.1742 -+
140.1743 -+ template<>
140.1744 -+ moneypunct<char, true>::~moneypunct()
140.1745 -+ { delete _M_data; }
140.1746 -+
140.1747 -+ template<>
140.1748 -+ moneypunct<char, false>::~moneypunct()
140.1749 -+ { delete _M_data; }
140.1750 -+
140.1751 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.1752 -+ template<>
140.1753 -+ void
140.1754 -+ moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
140.1755 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1756 -+ const char*)
140.1757 -+#else
140.1758 -+ const char* __name)
140.1759 -+#endif
140.1760 -+ {
140.1761 -+ if (!_M_data)
140.1762 -+ _M_data = new __moneypunct_cache<wchar_t, true>;
140.1763 -+
140.1764 -+ if (!__cloc)
140.1765 -+ {
140.1766 -+ // "C" locale
140.1767 -+ _M_data->_M_decimal_point = L'.';
140.1768 -+ _M_data->_M_thousands_sep = L',';
140.1769 -+ _M_data->_M_grouping = "";
140.1770 -+ _M_data->_M_grouping_size = 0;
140.1771 -+ _M_data->_M_curr_symbol = L"";
140.1772 -+ _M_data->_M_curr_symbol_size = 0;
140.1773 -+ _M_data->_M_positive_sign = L"";
140.1774 -+ _M_data->_M_positive_sign_size = 0;
140.1775 -+ _M_data->_M_negative_sign = L"";
140.1776 -+ _M_data->_M_negative_sign_size = 0;
140.1777 -+ _M_data->_M_frac_digits = 0;
140.1778 -+ _M_data->_M_pos_format = money_base::_S_default_pattern;
140.1779 -+ _M_data->_M_neg_format = money_base::_S_default_pattern;
140.1780 -+
140.1781 -+ // Use ctype::widen code without the facet...
140.1782 -+ unsigned char uc;
140.1783 -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
140.1784 -+ {
140.1785 -+ uc = static_cast<unsigned char>(money_base::_S_atoms[__i]);
140.1786 -+ _M_data->_M_atoms[__i] = btowc(uc);
140.1787 -+ }
140.1788 -+ }
140.1789 -+ else
140.1790 -+ {
140.1791 -+ // Named locale.
140.1792 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1793 -+ __c_locale __old = __uselocale(__cloc);
140.1794 -+#else
140.1795 -+ // Switch to named locale so that mbsrtowcs will work.
140.1796 -+ char* __old = strdup(setlocale(LC_ALL, NULL));
140.1797 -+ setlocale(LC_ALL, __name);
140.1798 -+#endif
140.1799 -+
140.1800 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1801 -+#warning fix this... should be monetary
140.1802 -+#endif
140.1803 -+#ifdef __UCLIBC__
140.1804 -+# ifdef __UCLIBC_HAS_XLOCALE__
140.1805 -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
140.1806 -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
140.1807 -+# else
140.1808 -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
140.1809 -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
140.1810 -+# endif
140.1811 -+#else
140.1812 -+ union __s_and_w { const char *__s; unsigned int __w; } __u;
140.1813 -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
140.1814 -+ _M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
140.1815 -+
140.1816 -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
140.1817 -+ _M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
140.1818 -+#endif
140.1819 -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
140.1820 -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.1821 -+
140.1822 -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
140.1823 -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
140.1824 -+ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
140.1825 -+
140.1826 -+ wchar_t* __wcs_ps = 0;
140.1827 -+ wchar_t* __wcs_ns = 0;
140.1828 -+ const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
140.1829 -+ try
140.1830 -+ {
140.1831 -+ mbstate_t __state;
140.1832 -+ size_t __len = strlen(__cpossign);
140.1833 -+ if (__len)
140.1834 -+ {
140.1835 -+ ++__len;
140.1836 -+ memset(&__state, 0, sizeof(mbstate_t));
140.1837 -+ __wcs_ps = new wchar_t[__len];
140.1838 -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
140.1839 -+ _M_data->_M_positive_sign = __wcs_ps;
140.1840 -+ }
140.1841 -+ else
140.1842 -+ _M_data->_M_positive_sign = L"";
140.1843 -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
140.1844 -+
140.1845 -+ __len = strlen(__cnegsign);
140.1846 -+ if (!__nposn)
140.1847 -+ _M_data->_M_negative_sign = L"()";
140.1848 -+ else if (__len)
140.1849 -+ {
140.1850 -+ ++__len;
140.1851 -+ memset(&__state, 0, sizeof(mbstate_t));
140.1852 -+ __wcs_ns = new wchar_t[__len];
140.1853 -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
140.1854 -+ _M_data->_M_negative_sign = __wcs_ns;
140.1855 -+ }
140.1856 -+ else
140.1857 -+ _M_data->_M_negative_sign = L"";
140.1858 -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
140.1859 -+
140.1860 -+ // _Intl == true.
140.1861 -+ __len = strlen(__ccurr);
140.1862 -+ if (__len)
140.1863 -+ {
140.1864 -+ ++__len;
140.1865 -+ memset(&__state, 0, sizeof(mbstate_t));
140.1866 -+ wchar_t* __wcs = new wchar_t[__len];
140.1867 -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
140.1868 -+ _M_data->_M_curr_symbol = __wcs;
140.1869 -+ }
140.1870 -+ else
140.1871 -+ _M_data->_M_curr_symbol = L"";
140.1872 -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
140.1873 -+ }
140.1874 -+ catch (...)
140.1875 -+ {
140.1876 -+ delete _M_data;
140.1877 -+ _M_data = 0;
140.1878 -+ delete __wcs_ps;
140.1879 -+ delete __wcs_ns;
140.1880 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1881 -+ __uselocale(__old);
140.1882 -+#else
140.1883 -+ setlocale(LC_ALL, __old);
140.1884 -+ free(__old);
140.1885 -+#endif
140.1886 -+ __throw_exception_again;
140.1887 -+ }
140.1888 -+
140.1889 -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
140.1890 -+ __cloc));
140.1891 -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
140.1892 -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
140.1893 -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
140.1894 -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
140.1895 -+ __pposn);
140.1896 -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
140.1897 -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
140.1898 -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
140.1899 -+ __nposn);
140.1900 -+
140.1901 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1902 -+ __uselocale(__old);
140.1903 -+#else
140.1904 -+ setlocale(LC_ALL, __old);
140.1905 -+ free(__old);
140.1906 -+#endif
140.1907 -+ }
140.1908 -+ }
140.1909 -+
140.1910 -+ template<>
140.1911 -+ void
140.1912 -+ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
140.1913 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1914 -+ const char*)
140.1915 -+#else
140.1916 -+ const char* __name)
140.1917 -+#endif
140.1918 -+ {
140.1919 -+ if (!_M_data)
140.1920 -+ _M_data = new __moneypunct_cache<wchar_t, false>;
140.1921 -+
140.1922 -+ if (!__cloc)
140.1923 -+ {
140.1924 -+ // "C" locale
140.1925 -+ _M_data->_M_decimal_point = L'.';
140.1926 -+ _M_data->_M_thousands_sep = L',';
140.1927 -+ _M_data->_M_grouping = "";
140.1928 -+ _M_data->_M_grouping_size = 0;
140.1929 -+ _M_data->_M_curr_symbol = L"";
140.1930 -+ _M_data->_M_curr_symbol_size = 0;
140.1931 -+ _M_data->_M_positive_sign = L"";
140.1932 -+ _M_data->_M_positive_sign_size = 0;
140.1933 -+ _M_data->_M_negative_sign = L"";
140.1934 -+ _M_data->_M_negative_sign_size = 0;
140.1935 -+ _M_data->_M_frac_digits = 0;
140.1936 -+ _M_data->_M_pos_format = money_base::_S_default_pattern;
140.1937 -+ _M_data->_M_neg_format = money_base::_S_default_pattern;
140.1938 -+
140.1939 -+ // Use ctype::widen code without the facet...
140.1940 -+ unsigned char uc;
140.1941 -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
140.1942 -+ {
140.1943 -+ uc = static_cast<unsigned char>(money_base::_S_atoms[__i]);
140.1944 -+ _M_data->_M_atoms[__i] = btowc(uc);
140.1945 -+ }
140.1946 -+ }
140.1947 -+ else
140.1948 -+ {
140.1949 -+ // Named locale.
140.1950 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1951 -+ __c_locale __old = __uselocale(__cloc);
140.1952 -+#else
140.1953 -+ // Switch to named locale so that mbsrtowcs will work.
140.1954 -+ char* __old = strdup(setlocale(LC_ALL, NULL));
140.1955 -+ setlocale(LC_ALL, __name);
140.1956 -+#endif
140.1957 -+
140.1958 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1959 -+#warning fix this... should be monetary
140.1960 -+#endif
140.1961 -+#ifdef __UCLIBC__
140.1962 -+# ifdef __UCLIBC_HAS_XLOCALE__
140.1963 -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
140.1964 -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
140.1965 -+# else
140.1966 -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
140.1967 -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
140.1968 -+# endif
140.1969 -+#else
140.1970 -+ union __s_and_w { const char *__s; unsigned int __w; } __u;
140.1971 -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
140.1972 -+ _M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
140.1973 -+
140.1974 -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
140.1975 -+ _M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
140.1976 -+#endif
140.1977 -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
140.1978 -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.1979 -+
140.1980 -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
140.1981 -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
140.1982 -+ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
140.1983 -+
140.1984 -+ wchar_t* __wcs_ps = 0;
140.1985 -+ wchar_t* __wcs_ns = 0;
140.1986 -+ const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
140.1987 -+ try
140.1988 -+ {
140.1989 -+ mbstate_t __state;
140.1990 -+ size_t __len;
140.1991 -+ __len = strlen(__cpossign);
140.1992 -+ if (__len)
140.1993 -+ {
140.1994 -+ ++__len;
140.1995 -+ memset(&__state, 0, sizeof(mbstate_t));
140.1996 -+ __wcs_ps = new wchar_t[__len];
140.1997 -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
140.1998 -+ _M_data->_M_positive_sign = __wcs_ps;
140.1999 -+ }
140.2000 -+ else
140.2001 -+ _M_data->_M_positive_sign = L"";
140.2002 -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
140.2003 -+
140.2004 -+ __len = strlen(__cnegsign);
140.2005 -+ if (!__nposn)
140.2006 -+ _M_data->_M_negative_sign = L"()";
140.2007 -+ else if (__len)
140.2008 -+ {
140.2009 -+ ++__len;
140.2010 -+ memset(&__state, 0, sizeof(mbstate_t));
140.2011 -+ __wcs_ns = new wchar_t[__len];
140.2012 -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
140.2013 -+ _M_data->_M_negative_sign = __wcs_ns;
140.2014 -+ }
140.2015 -+ else
140.2016 -+ _M_data->_M_negative_sign = L"";
140.2017 -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
140.2018 -+
140.2019 -+ // _Intl == true.
140.2020 -+ __len = strlen(__ccurr);
140.2021 -+ if (__len)
140.2022 -+ {
140.2023 -+ ++__len;
140.2024 -+ memset(&__state, 0, sizeof(mbstate_t));
140.2025 -+ wchar_t* __wcs = new wchar_t[__len];
140.2026 -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
140.2027 -+ _M_data->_M_curr_symbol = __wcs;
140.2028 -+ }
140.2029 -+ else
140.2030 -+ _M_data->_M_curr_symbol = L"";
140.2031 -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
140.2032 -+ }
140.2033 -+ catch (...)
140.2034 -+ {
140.2035 -+ delete _M_data;
140.2036 -+ _M_data = 0;
140.2037 -+ delete __wcs_ps;
140.2038 -+ delete __wcs_ns;
140.2039 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2040 -+ __uselocale(__old);
140.2041 -+#else
140.2042 -+ setlocale(LC_ALL, __old);
140.2043 -+ free(__old);
140.2044 -+#endif
140.2045 -+ __throw_exception_again;
140.2046 -+ }
140.2047 -+
140.2048 -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
140.2049 -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
140.2050 -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
140.2051 -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
140.2052 -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
140.2053 -+ __pposn);
140.2054 -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
140.2055 -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
140.2056 -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
140.2057 -+ __nposn);
140.2058 -+
140.2059 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2060 -+ __uselocale(__old);
140.2061 -+#else
140.2062 -+ setlocale(LC_ALL, __old);
140.2063 -+ free(__old);
140.2064 -+#endif
140.2065 -+ }
140.2066 -+ }
140.2067 -+
140.2068 -+ template<>
140.2069 -+ moneypunct<wchar_t, true>::~moneypunct()
140.2070 -+ {
140.2071 -+ if (_M_data->_M_positive_sign_size)
140.2072 -+ delete [] _M_data->_M_positive_sign;
140.2073 -+ if (_M_data->_M_negative_sign_size
140.2074 -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
140.2075 -+ delete [] _M_data->_M_negative_sign;
140.2076 -+ if (_M_data->_M_curr_symbol_size)
140.2077 -+ delete [] _M_data->_M_curr_symbol;
140.2078 -+ delete _M_data;
140.2079 -+ }
140.2080 -+
140.2081 -+ template<>
140.2082 -+ moneypunct<wchar_t, false>::~moneypunct()
140.2083 -+ {
140.2084 -+ if (_M_data->_M_positive_sign_size)
140.2085 -+ delete [] _M_data->_M_positive_sign;
140.2086 -+ if (_M_data->_M_negative_sign_size
140.2087 -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
140.2088 -+ delete [] _M_data->_M_negative_sign;
140.2089 -+ if (_M_data->_M_curr_symbol_size)
140.2090 -+ delete [] _M_data->_M_curr_symbol;
140.2091 -+ delete _M_data;
140.2092 -+ }
140.2093 -+#endif
140.2094 -+}
140.2095 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc
140.2096 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600
140.2097 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2004-09-10 10:47:40.000000000 -0500
140.2098 -@@ -0,0 +1,183 @@
140.2099 -+// std::numpunct implementation details, GNU version -*- C++ -*-
140.2100 -+
140.2101 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.2102 -+//
140.2103 -+// This file is part of the GNU ISO C++ Library. This library is free
140.2104 -+// software; you can redistribute it and/or modify it under the
140.2105 -+// terms of the GNU General Public License as published by the
140.2106 -+// Free Software Foundation; either version 2, or (at your option)
140.2107 -+// any later version.
140.2108 -+
140.2109 -+// This library is distributed in the hope that it will be useful,
140.2110 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2111 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.2112 -+// GNU General Public License for more details.
140.2113 -+
140.2114 -+// You should have received a copy of the GNU General Public License along
140.2115 -+// with this library; see the file COPYING. If not, write to the Free
140.2116 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2117 -+// USA.
140.2118 -+
140.2119 -+// As a special exception, you may use this file as part of a free software
140.2120 -+// library without restriction. Specifically, if other files instantiate
140.2121 -+// templates or use macros or inline functions from this file, or you compile
140.2122 -+// this file and link it with other files to produce an executable, this
140.2123 -+// file does not by itself cause the resulting executable to be covered by
140.2124 -+// the GNU General Public License. This exception does not however
140.2125 -+// invalidate any other reasons why the executable file might be covered by
140.2126 -+// the GNU General Public License.
140.2127 -+
140.2128 -+//
140.2129 -+// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions
140.2130 -+//
140.2131 -+
140.2132 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.2133 -+
140.2134 -+#define _LIBC
140.2135 -+#include <locale>
140.2136 -+#undef _LIBC
140.2137 -+#include <bits/c++locale_internal.h>
140.2138 -+
140.2139 -+#ifdef __UCLIBC_MJN3_ONLY__
140.2140 -+#warning tailor for stub locale support
140.2141 -+#endif
140.2142 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.2143 -+#define __nl_langinfo_l(N, L) nl_langinfo((N))
140.2144 -+#endif
140.2145 -+
140.2146 -+namespace std
140.2147 -+{
140.2148 -+ template<>
140.2149 -+ void
140.2150 -+ numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
140.2151 -+ {
140.2152 -+ if (!_M_data)
140.2153 -+ _M_data = new __numpunct_cache<char>;
140.2154 -+
140.2155 -+ if (!__cloc)
140.2156 -+ {
140.2157 -+ // "C" locale
140.2158 -+ _M_data->_M_grouping = "";
140.2159 -+ _M_data->_M_grouping_size = 0;
140.2160 -+ _M_data->_M_use_grouping = false;
140.2161 -+
140.2162 -+ _M_data->_M_decimal_point = '.';
140.2163 -+ _M_data->_M_thousands_sep = ',';
140.2164 -+
140.2165 -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
140.2166 -+ _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
140.2167 -+
140.2168 -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
140.2169 -+ _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
140.2170 -+ }
140.2171 -+ else
140.2172 -+ {
140.2173 -+ // Named locale.
140.2174 -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT,
140.2175 -+ __cloc));
140.2176 -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP,
140.2177 -+ __cloc));
140.2178 -+
140.2179 -+ // Check for NULL, which implies no grouping.
140.2180 -+ if (_M_data->_M_thousands_sep == '\0')
140.2181 -+ _M_data->_M_grouping = "";
140.2182 -+ else
140.2183 -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
140.2184 -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.2185 -+ }
140.2186 -+
140.2187 -+ // NB: There is no way to extact this info from posix locales.
140.2188 -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
140.2189 -+ _M_data->_M_truename = "true";
140.2190 -+ _M_data->_M_truename_size = strlen(_M_data->_M_truename);
140.2191 -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
140.2192 -+ _M_data->_M_falsename = "false";
140.2193 -+ _M_data->_M_falsename_size = strlen(_M_data->_M_falsename);
140.2194 -+ }
140.2195 -+
140.2196 -+ template<>
140.2197 -+ numpunct<char>::~numpunct()
140.2198 -+ { delete _M_data; }
140.2199 -+
140.2200 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.2201 -+ template<>
140.2202 -+ void
140.2203 -+ numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
140.2204 -+ {
140.2205 -+ if (!_M_data)
140.2206 -+ _M_data = new __numpunct_cache<wchar_t>;
140.2207 -+
140.2208 -+ if (!__cloc)
140.2209 -+ {
140.2210 -+ // "C" locale
140.2211 -+ _M_data->_M_grouping = "";
140.2212 -+ _M_data->_M_grouping_size = 0;
140.2213 -+ _M_data->_M_use_grouping = false;
140.2214 -+
140.2215 -+ _M_data->_M_decimal_point = L'.';
140.2216 -+ _M_data->_M_thousands_sep = L',';
140.2217 -+
140.2218 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2219 -+ __c_locale __old = __uselocale(_S_get_c_locale());
140.2220 -+#endif
140.2221 -+ // Use ctype::widen code without the facet...
140.2222 -+ unsigned char uc;
140.2223 -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
140.2224 -+ {
140.2225 -+ uc = static_cast<unsigned char>(__num_base::_S_atoms_out[__i]);
140.2226 -+ _M_data->_M_atoms_out[__i] = btowc(uc);
140.2227 -+ }
140.2228 -+
140.2229 -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
140.2230 -+ {
140.2231 -+ uc = static_cast<unsigned char>(__num_base::_S_atoms_in[__j]);
140.2232 -+ _M_data->_M_atoms_in[__j] = btowc(uc);
140.2233 -+ }
140.2234 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2235 -+ __uselocale(__old);
140.2236 -+#endif
140.2237 -+ }
140.2238 -+ else
140.2239 -+ {
140.2240 -+ // Named locale.
140.2241 -+#ifdef __UCLIBC_MJN3_ONLY__
140.2242 -+#warning fix this
140.2243 -+#endif
140.2244 -+#ifdef __UCLIBC__
140.2245 -+# ifdef __UCLIBC_HAS_XLOCALE__
140.2246 -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
140.2247 -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
140.2248 -+# else
140.2249 -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
140.2250 -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
140.2251 -+# endif
140.2252 -+#else
140.2253 -+ union __s_and_w { const char *__s; unsigned int __w; } __u;
140.2254 -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
140.2255 -+ _M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
140.2256 -+
140.2257 -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
140.2258 -+ _M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
140.2259 -+#endif
140.2260 -+
140.2261 -+ if (_M_data->_M_thousands_sep == L'\0')
140.2262 -+ _M_data->_M_grouping = "";
140.2263 -+ else
140.2264 -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
140.2265 -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.2266 -+ }
140.2267 -+
140.2268 -+ // NB: There is no way to extact this info from posix locales.
140.2269 -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
140.2270 -+ _M_data->_M_truename = L"true";
140.2271 -+ _M_data->_M_truename_size = wcslen(_M_data->_M_truename);
140.2272 -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
140.2273 -+ _M_data->_M_falsename = L"false";
140.2274 -+ _M_data->_M_falsename_size = wcslen(_M_data->_M_falsename);
140.2275 -+ }
140.2276 -+
140.2277 -+ template<>
140.2278 -+ numpunct<wchar_t>::~numpunct()
140.2279 -+ { delete _M_data; }
140.2280 -+ #endif
140.2281 -+}
140.2282 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/time_members.cc
140.2283 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/time_members.cc 1969-12-31 18:00:00.000000000 -0600
140.2284 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/time_members.cc 2004-09-10 10:48:00.000000000 -0500
140.2285 -@@ -0,0 +1,356 @@
140.2286 -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
140.2287 -+
140.2288 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.2289 -+//
140.2290 -+// This file is part of the GNU ISO C++ Library. This library is free
140.2291 -+// software; you can redistribute it and/or modify it under the
140.2292 -+// terms of the GNU General Public License as published by the
140.2293 -+// Free Software Foundation; either version 2, or (at your option)
140.2294 -+// any later version.
140.2295 -+
140.2296 -+// This library is distributed in the hope that it will be useful,
140.2297 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2298 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.2299 -+// GNU General Public License for more details.
140.2300 -+
140.2301 -+// You should have received a copy of the GNU General Public License along
140.2302 -+// with this library; see the file COPYING. If not, write to the Free
140.2303 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2304 -+// USA.
140.2305 -+
140.2306 -+// As a special exception, you may use this file as part of a free software
140.2307 -+// library without restriction. Specifically, if other files instantiate
140.2308 -+// templates or use macros or inline functions from this file, or you compile
140.2309 -+// this file and link it with other files to produce an executable, this
140.2310 -+// file does not by itself cause the resulting executable to be covered by
140.2311 -+// the GNU General Public License. This exception does not however
140.2312 -+// invalidate any other reasons why the executable file might be covered by
140.2313 -+// the GNU General Public License.
140.2314 -+
140.2315 -+//
140.2316 -+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
140.2317 -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
140.2318 -+//
140.2319 -+
140.2320 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.2321 -+
140.2322 -+#include <locale>
140.2323 -+#include <bits/c++locale_internal.h>
140.2324 -+
140.2325 -+#ifdef __UCLIBC_MJN3_ONLY__
140.2326 -+#warning tailor for stub locale support
140.2327 -+#endif
140.2328 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.2329 -+#define __nl_langinfo_l(N, L) nl_langinfo((N))
140.2330 -+#endif
140.2331 -+
140.2332 -+namespace std
140.2333 -+{
140.2334 -+ template<>
140.2335 -+ void
140.2336 -+ __timepunct<char>::
140.2337 -+ _M_put(char* __s, size_t __maxlen, const char* __format,
140.2338 -+ const tm* __tm) const
140.2339 -+ {
140.2340 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2341 -+ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
140.2342 -+ _M_c_locale_timepunct);
140.2343 -+#else
140.2344 -+ char* __old = strdup(setlocale(LC_ALL, NULL));
140.2345 -+ setlocale(LC_ALL, _M_name_timepunct);
140.2346 -+ const size_t __len = strftime(__s, __maxlen, __format, __tm);
140.2347 -+ setlocale(LC_ALL, __old);
140.2348 -+ free(__old);
140.2349 -+#endif
140.2350 -+ // Make sure __s is null terminated.
140.2351 -+ if (__len == 0)
140.2352 -+ __s[0] = '\0';
140.2353 -+ }
140.2354 -+
140.2355 -+ template<>
140.2356 -+ void
140.2357 -+ __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
140.2358 -+ {
140.2359 -+ if (!_M_data)
140.2360 -+ _M_data = new __timepunct_cache<char>;
140.2361 -+
140.2362 -+ if (!__cloc)
140.2363 -+ {
140.2364 -+ // "C" locale
140.2365 -+ _M_c_locale_timepunct = _S_get_c_locale();
140.2366 -+
140.2367 -+ _M_data->_M_date_format = "%m/%d/%y";
140.2368 -+ _M_data->_M_date_era_format = "%m/%d/%y";
140.2369 -+ _M_data->_M_time_format = "%H:%M:%S";
140.2370 -+ _M_data->_M_time_era_format = "%H:%M:%S";
140.2371 -+ _M_data->_M_date_time_format = "";
140.2372 -+ _M_data->_M_date_time_era_format = "";
140.2373 -+ _M_data->_M_am = "AM";
140.2374 -+ _M_data->_M_pm = "PM";
140.2375 -+ _M_data->_M_am_pm_format = "";
140.2376 -+
140.2377 -+ // Day names, starting with "C"'s Sunday.
140.2378 -+ _M_data->_M_day1 = "Sunday";
140.2379 -+ _M_data->_M_day2 = "Monday";
140.2380 -+ _M_data->_M_day3 = "Tuesday";
140.2381 -+ _M_data->_M_day4 = "Wednesday";
140.2382 -+ _M_data->_M_day5 = "Thursday";
140.2383 -+ _M_data->_M_day6 = "Friday";
140.2384 -+ _M_data->_M_day7 = "Saturday";
140.2385 -+
140.2386 -+ // Abbreviated day names, starting with "C"'s Sun.
140.2387 -+ _M_data->_M_aday1 = "Sun";
140.2388 -+ _M_data->_M_aday2 = "Mon";
140.2389 -+ _M_data->_M_aday3 = "Tue";
140.2390 -+ _M_data->_M_aday4 = "Wed";
140.2391 -+ _M_data->_M_aday5 = "Thu";
140.2392 -+ _M_data->_M_aday6 = "Fri";
140.2393 -+ _M_data->_M_aday7 = "Sat";
140.2394 -+
140.2395 -+ // Month names, starting with "C"'s January.
140.2396 -+ _M_data->_M_month01 = "January";
140.2397 -+ _M_data->_M_month02 = "February";
140.2398 -+ _M_data->_M_month03 = "March";
140.2399 -+ _M_data->_M_month04 = "April";
140.2400 -+ _M_data->_M_month05 = "May";
140.2401 -+ _M_data->_M_month06 = "June";
140.2402 -+ _M_data->_M_month07 = "July";
140.2403 -+ _M_data->_M_month08 = "August";
140.2404 -+ _M_data->_M_month09 = "September";
140.2405 -+ _M_data->_M_month10 = "October";
140.2406 -+ _M_data->_M_month11 = "November";
140.2407 -+ _M_data->_M_month12 = "December";
140.2408 -+
140.2409 -+ // Abbreviated month names, starting with "C"'s Jan.
140.2410 -+ _M_data->_M_amonth01 = "Jan";
140.2411 -+ _M_data->_M_amonth02 = "Feb";
140.2412 -+ _M_data->_M_amonth03 = "Mar";
140.2413 -+ _M_data->_M_amonth04 = "Apr";
140.2414 -+ _M_data->_M_amonth05 = "May";
140.2415 -+ _M_data->_M_amonth06 = "Jun";
140.2416 -+ _M_data->_M_amonth07 = "Jul";
140.2417 -+ _M_data->_M_amonth08 = "Aug";
140.2418 -+ _M_data->_M_amonth09 = "Sep";
140.2419 -+ _M_data->_M_amonth10 = "Oct";
140.2420 -+ _M_data->_M_amonth11 = "Nov";
140.2421 -+ _M_data->_M_amonth12 = "Dec";
140.2422 -+ }
140.2423 -+ else
140.2424 -+ {
140.2425 -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
140.2426 -+
140.2427 -+ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
140.2428 -+ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
140.2429 -+ _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
140.2430 -+ _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
140.2431 -+ _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
140.2432 -+ _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, __cloc);
140.2433 -+ _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
140.2434 -+ _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
140.2435 -+ _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
140.2436 -+
140.2437 -+ // Day names, starting with "C"'s Sunday.
140.2438 -+ _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
140.2439 -+ _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
140.2440 -+ _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
140.2441 -+ _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
140.2442 -+ _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
140.2443 -+ _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
140.2444 -+ _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
140.2445 -+
140.2446 -+ // Abbreviated day names, starting with "C"'s Sun.
140.2447 -+ _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
140.2448 -+ _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
140.2449 -+ _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
140.2450 -+ _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
140.2451 -+ _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
140.2452 -+ _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
140.2453 -+ _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
140.2454 -+
140.2455 -+ // Month names, starting with "C"'s January.
140.2456 -+ _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
140.2457 -+ _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
140.2458 -+ _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
140.2459 -+ _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
140.2460 -+ _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
140.2461 -+ _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
140.2462 -+ _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
140.2463 -+ _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
140.2464 -+ _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
140.2465 -+ _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
140.2466 -+ _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
140.2467 -+ _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
140.2468 -+
140.2469 -+ // Abbreviated month names, starting with "C"'s Jan.
140.2470 -+ _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
140.2471 -+ _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
140.2472 -+ _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
140.2473 -+ _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
140.2474 -+ _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
140.2475 -+ _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
140.2476 -+ _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
140.2477 -+ _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
140.2478 -+ _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
140.2479 -+ _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
140.2480 -+ _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
140.2481 -+ _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
140.2482 -+ }
140.2483 -+ }
140.2484 -+
140.2485 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.2486 -+ template<>
140.2487 -+ void
140.2488 -+ __timepunct<wchar_t>::
140.2489 -+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format,
140.2490 -+ const tm* __tm) const
140.2491 -+ {
140.2492 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2493 -+ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
140.2494 -+ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
140.2495 -+ _M_c_locale_timepunct);
140.2496 -+#else
140.2497 -+ char* __old = strdup(setlocale(LC_ALL, NULL));
140.2498 -+ setlocale(LC_ALL, _M_name_timepunct);
140.2499 -+ const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
140.2500 -+ setlocale(LC_ALL, __old);
140.2501 -+ free(__old);
140.2502 -+#endif
140.2503 -+ // Make sure __s is null terminated.
140.2504 -+ if (__len == 0)
140.2505 -+ __s[0] = L'\0';
140.2506 -+ }
140.2507 -+
140.2508 -+ template<>
140.2509 -+ void
140.2510 -+ __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
140.2511 -+ {
140.2512 -+ if (!_M_data)
140.2513 -+ _M_data = new __timepunct_cache<wchar_t>;
140.2514 -+
140.2515 -+#warning wide time stuff
140.2516 -+// if (!__cloc)
140.2517 -+ {
140.2518 -+ // "C" locale
140.2519 -+ _M_c_locale_timepunct = _S_get_c_locale();
140.2520 -+
140.2521 -+ _M_data->_M_date_format = L"%m/%d/%y";
140.2522 -+ _M_data->_M_date_era_format = L"%m/%d/%y";
140.2523 -+ _M_data->_M_time_format = L"%H:%M:%S";
140.2524 -+ _M_data->_M_time_era_format = L"%H:%M:%S";
140.2525 -+ _M_data->_M_date_time_format = L"";
140.2526 -+ _M_data->_M_date_time_era_format = L"";
140.2527 -+ _M_data->_M_am = L"AM";
140.2528 -+ _M_data->_M_pm = L"PM";
140.2529 -+ _M_data->_M_am_pm_format = L"";
140.2530 -+
140.2531 -+ // Day names, starting with "C"'s Sunday.
140.2532 -+ _M_data->_M_day1 = L"Sunday";
140.2533 -+ _M_data->_M_day2 = L"Monday";
140.2534 -+ _M_data->_M_day3 = L"Tuesday";
140.2535 -+ _M_data->_M_day4 = L"Wednesday";
140.2536 -+ _M_data->_M_day5 = L"Thursday";
140.2537 -+ _M_data->_M_day6 = L"Friday";
140.2538 -+ _M_data->_M_day7 = L"Saturday";
140.2539 -+
140.2540 -+ // Abbreviated day names, starting with "C"'s Sun.
140.2541 -+ _M_data->_M_aday1 = L"Sun";
140.2542 -+ _M_data->_M_aday2 = L"Mon";
140.2543 -+ _M_data->_M_aday3 = L"Tue";
140.2544 -+ _M_data->_M_aday4 = L"Wed";
140.2545 -+ _M_data->_M_aday5 = L"Thu";
140.2546 -+ _M_data->_M_aday6 = L"Fri";
140.2547 -+ _M_data->_M_aday7 = L"Sat";
140.2548 -+
140.2549 -+ // Month names, starting with "C"'s January.
140.2550 -+ _M_data->_M_month01 = L"January";
140.2551 -+ _M_data->_M_month02 = L"February";
140.2552 -+ _M_data->_M_month03 = L"March";
140.2553 -+ _M_data->_M_month04 = L"April";
140.2554 -+ _M_data->_M_month05 = L"May";
140.2555 -+ _M_data->_M_month06 = L"June";
140.2556 -+ _M_data->_M_month07 = L"July";
140.2557 -+ _M_data->_M_month08 = L"August";
140.2558 -+ _M_data->_M_month09 = L"September";
140.2559 -+ _M_data->_M_month10 = L"October";
140.2560 -+ _M_data->_M_month11 = L"November";
140.2561 -+ _M_data->_M_month12 = L"December";
140.2562 -+
140.2563 -+ // Abbreviated month names, starting with "C"'s Jan.
140.2564 -+ _M_data->_M_amonth01 = L"Jan";
140.2565 -+ _M_data->_M_amonth02 = L"Feb";
140.2566 -+ _M_data->_M_amonth03 = L"Mar";
140.2567 -+ _M_data->_M_amonth04 = L"Apr";
140.2568 -+ _M_data->_M_amonth05 = L"May";
140.2569 -+ _M_data->_M_amonth06 = L"Jun";
140.2570 -+ _M_data->_M_amonth07 = L"Jul";
140.2571 -+ _M_data->_M_amonth08 = L"Aug";
140.2572 -+ _M_data->_M_amonth09 = L"Sep";
140.2573 -+ _M_data->_M_amonth10 = L"Oct";
140.2574 -+ _M_data->_M_amonth11 = L"Nov";
140.2575 -+ _M_data->_M_amonth12 = L"Dec";
140.2576 -+ }
140.2577 -+#if 0
140.2578 -+ else
140.2579 -+ {
140.2580 -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
140.2581 -+
140.2582 -+ _M_data->_M_date_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_FMT, __cloc));
140.2583 -+ _M_data->_M_date_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_FMT, __cloc));
140.2584 -+ _M_data->_M_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT, __cloc));
140.2585 -+ _M_data->_M_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_T_FMT, __cloc));
140.2586 -+ _M_data->_M_date_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_T_FMT, __cloc));
140.2587 -+ _M_data->_M_date_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc));
140.2588 -+ _M_data->_M_am = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WAM_STR, __cloc));
140.2589 -+ _M_data->_M_pm = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WPM_STR, __cloc));
140.2590 -+ _M_data->_M_am_pm_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc));
140.2591 -+
140.2592 -+ // Day names, starting with "C"'s Sunday.
140.2593 -+ _M_data->_M_day1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_1, __cloc));
140.2594 -+ _M_data->_M_day2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_2, __cloc));
140.2595 -+ _M_data->_M_day3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_3, __cloc));
140.2596 -+ _M_data->_M_day4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_4, __cloc));
140.2597 -+ _M_data->_M_day5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_5, __cloc));
140.2598 -+ _M_data->_M_day6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_6, __cloc));
140.2599 -+ _M_data->_M_day7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_7, __cloc));
140.2600 -+
140.2601 -+ // Abbreviated day names, starting with "C"'s Sun.
140.2602 -+ _M_data->_M_aday1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_1, __cloc));
140.2603 -+ _M_data->_M_aday2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_2, __cloc));
140.2604 -+ _M_data->_M_aday3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_3, __cloc));
140.2605 -+ _M_data->_M_aday4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_4, __cloc));
140.2606 -+ _M_data->_M_aday5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_5, __cloc));
140.2607 -+ _M_data->_M_aday6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_6, __cloc));
140.2608 -+ _M_data->_M_aday7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_7, __cloc));
140.2609 -+
140.2610 -+ // Month names, starting with "C"'s January.
140.2611 -+ _M_data->_M_month01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_1, __cloc));
140.2612 -+ _M_data->_M_month02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_2, __cloc));
140.2613 -+ _M_data->_M_month03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_3, __cloc));
140.2614 -+ _M_data->_M_month04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_4, __cloc));
140.2615 -+ _M_data->_M_month05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_5, __cloc));
140.2616 -+ _M_data->_M_month06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_6, __cloc));
140.2617 -+ _M_data->_M_month07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_7, __cloc));
140.2618 -+ _M_data->_M_month08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_8, __cloc));
140.2619 -+ _M_data->_M_month09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_9, __cloc));
140.2620 -+ _M_data->_M_month10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_10, __cloc));
140.2621 -+ _M_data->_M_month11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_11, __cloc));
140.2622 -+ _M_data->_M_month12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_12, __cloc));
140.2623 -+
140.2624 -+ // Abbreviated month names, starting with "C"'s Jan.
140.2625 -+ _M_data->_M_amonth01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_1, __cloc));
140.2626 -+ _M_data->_M_amonth02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_2, __cloc));
140.2627 -+ _M_data->_M_amonth03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_3, __cloc));
140.2628 -+ _M_data->_M_amonth04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_4, __cloc));
140.2629 -+ _M_data->_M_amonth05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_5, __cloc));
140.2630 -+ _M_data->_M_amonth06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_6, __cloc));
140.2631 -+ _M_data->_M_amonth07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_7, __cloc));
140.2632 -+ _M_data->_M_amonth08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_8, __cloc));
140.2633 -+ _M_data->_M_amonth09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_9, __cloc));
140.2634 -+ _M_data->_M_amonth10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_10, __cloc));
140.2635 -+ _M_data->_M_amonth11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_11, __cloc));
140.2636 -+ _M_data->_M_amonth12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_12, __cloc));
140.2637 -+ }
140.2638 -+#endif // 0
140.2639 -+ }
140.2640 -+#endif
140.2641 -+}
140.2642 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/time_members.h gcc-3.4.2/libstdc++-v3/config/locale/uclibc/time_members.h
140.2643 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/time_members.h 1969-12-31 18:00:00.000000000 -0600
140.2644 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/time_members.h 2004-09-10 10:47:40.000000000 -0500
140.2645 -@@ -0,0 +1,68 @@
140.2646 -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
140.2647 -+
140.2648 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.2649 -+//
140.2650 -+// This file is part of the GNU ISO C++ Library. This library is free
140.2651 -+// software; you can redistribute it and/or modify it under the
140.2652 -+// terms of the GNU General Public License as published by the
140.2653 -+// Free Software Foundation; either version 2, or (at your option)
140.2654 -+// any later version.
140.2655 -+
140.2656 -+// This library is distributed in the hope that it will be useful,
140.2657 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2658 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.2659 -+// GNU General Public License for more details.
140.2660 -+
140.2661 -+// You should have received a copy of the GNU General Public License along
140.2662 -+// with this library; see the file COPYING. If not, write to the Free
140.2663 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2664 -+// USA.
140.2665 -+
140.2666 -+// As a special exception, you may use this file as part of a free software
140.2667 -+// library without restriction. Specifically, if other files instantiate
140.2668 -+// templates or use macros or inline functions from this file, or you compile
140.2669 -+// this file and link it with other files to produce an executable, this
140.2670 -+// file does not by itself cause the resulting executable to be covered by
140.2671 -+// the GNU General Public License. This exception does not however
140.2672 -+// invalidate any other reasons why the executable file might be covered by
140.2673 -+// the GNU General Public License.
140.2674 -+
140.2675 -+//
140.2676 -+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
140.2677 -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
140.2678 -+//
140.2679 -+
140.2680 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.2681 -+
140.2682 -+ template<typename _CharT>
140.2683 -+ __timepunct<_CharT>::__timepunct(size_t __refs)
140.2684 -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
140.2685 -+ _M_name_timepunct(_S_get_c_name())
140.2686 -+ { _M_initialize_timepunct(); }
140.2687 -+
140.2688 -+ template<typename _CharT>
140.2689 -+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
140.2690 -+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
140.2691 -+ _M_name_timepunct(_S_get_c_name())
140.2692 -+ { _M_initialize_timepunct(); }
140.2693 -+
140.2694 -+ template<typename _CharT>
140.2695 -+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
140.2696 -+ size_t __refs)
140.2697 -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
140.2698 -+ _M_name_timepunct(__s)
140.2699 -+ {
140.2700 -+ char* __tmp = new char[std::strlen(__s) + 1];
140.2701 -+ std::strcpy(__tmp, __s);
140.2702 -+ _M_name_timepunct = __tmp;
140.2703 -+ _M_initialize_timepunct(__cloc);
140.2704 -+ }
140.2705 -+
140.2706 -+ template<typename _CharT>
140.2707 -+ __timepunct<_CharT>::~__timepunct()
140.2708 -+ {
140.2709 -+ if (_M_name_timepunct != _S_get_c_name())
140.2710 -+ delete [] _M_name_timepunct;
140.2711 -+ delete _M_data;
140.2712 -+ _S_destroy_c_locale(_M_c_locale_timepunct);
140.2713 -+ }
140.2714 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_base.h
140.2715 ---- gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_base.h 1969-12-31 18:00:00.000000000 -0600
140.2716 -+++ gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_base.h 2004-09-10 10:47:40.000000000 -0500
140.2717 -@@ -0,0 +1,58 @@
140.2718 -+// Locale support -*- C++ -*-
140.2719 -+
140.2720 -+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003
140.2721 -+// Free Software Foundation, Inc.
140.2722 -+//
140.2723 -+// This file is part of the GNU ISO C++ Library. This library is free
140.2724 -+// software; you can redistribute it and/or modify it under the
140.2725 -+// terms of the GNU General Public License as published by the
140.2726 -+// Free Software Foundation; either version 2, or (at your option)
140.2727 -+// any later version.
140.2728 -+
140.2729 -+// This library is distributed in the hope that it will be useful,
140.2730 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2731 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.2732 -+// GNU General Public License for more details.
140.2733 -+
140.2734 -+// You should have received a copy of the GNU General Public License along
140.2735 -+// with this library; see the file COPYING. If not, write to the Free
140.2736 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2737 -+// USA.
140.2738 -+
140.2739 -+// As a special exception, you may use this file as part of a free software
140.2740 -+// library without restriction. Specifically, if other files instantiate
140.2741 -+// templates or use macros or inline functions from this file, or you compile
140.2742 -+// this file and link it with other files to produce an executable, this
140.2743 -+// file does not by itself cause the resulting executable to be covered by
140.2744 -+// the GNU General Public License. This exception does not however
140.2745 -+// invalidate any other reasons why the executable file might be covered by
140.2746 -+// the GNU General Public License.
140.2747 -+
140.2748 -+//
140.2749 -+// ISO C++ 14882: 22.1 Locales
140.2750 -+//
140.2751 -+
140.2752 -+// Information as gleaned from /usr/include/ctype.h
140.2753 -+
140.2754 -+ struct ctype_base
140.2755 -+ {
140.2756 -+ // Note: In uClibc, the following two types depend on configuration.
140.2757 -+
140.2758 -+ // Non-standard typedefs.
140.2759 -+ typedef const __ctype_touplow_t* __to_type;
140.2760 -+
140.2761 -+ // NB: Offsets into ctype<char>::_M_table force a particular size
140.2762 -+ // on the mask type. Because of this, we don't use an enum.
140.2763 -+ typedef __ctype_mask_t mask;
140.2764 -+ static const mask upper = _ISupper;
140.2765 -+ static const mask lower = _ISlower;
140.2766 -+ static const mask alpha = _ISalpha;
140.2767 -+ static const mask digit = _ISdigit;
140.2768 -+ static const mask xdigit = _ISxdigit;
140.2769 -+ static const mask space = _ISspace;
140.2770 -+ static const mask print = _ISprint;
140.2771 -+ static const mask graph = _ISalpha | _ISdigit | _ISpunct;
140.2772 -+ static const mask cntrl = _IScntrl;
140.2773 -+ static const mask punct = _ISpunct;
140.2774 -+ static const mask alnum = _ISalpha | _ISdigit;
140.2775 -+ };
140.2776 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_inline.h
140.2777 ---- gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600
140.2778 -+++ gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_inline.h 2004-09-10 10:47:40.000000000 -0500
140.2779 -@@ -0,0 +1,69 @@
140.2780 -+// Locale support -*- C++ -*-
140.2781 -+
140.2782 -+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
140.2783 -+//
140.2784 -+// This file is part of the GNU ISO C++ Library. This library is free
140.2785 -+// software; you can redistribute it and/or modify it under the
140.2786 -+// terms of the GNU General Public License as published by the
140.2787 -+// Free Software Foundation; either version 2, or (at your option)
140.2788 -+// any later version.
140.2789 -+
140.2790 -+// This library is distributed in the hope that it will be useful,
140.2791 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2792 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.2793 -+// GNU General Public License for more details.
140.2794 -+
140.2795 -+// You should have received a copy of the GNU General Public License along
140.2796 -+// with this library; see the file COPYING. If not, write to the Free
140.2797 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2798 -+// USA.
140.2799 -+
140.2800 -+// As a special exception, you may use this file as part of a free software
140.2801 -+// library without restriction. Specifically, if other files instantiate
140.2802 -+// templates or use macros or inline functions from this file, or you compile
140.2803 -+// this file and link it with other files to produce an executable, this
140.2804 -+// file does not by itself cause the resulting executable to be covered by
140.2805 -+// the GNU General Public License. This exception does not however
140.2806 -+// invalidate any other reasons why the executable file might be covered by
140.2807 -+// the GNU General Public License.
140.2808 -+
140.2809 -+//
140.2810 -+// ISO C++ 14882: 22.1 Locales
140.2811 -+//
140.2812 -+
140.2813 -+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
140.2814 -+// functions go in ctype.cc
140.2815 -+
140.2816 -+ bool
140.2817 -+ ctype<char>::
140.2818 -+ is(mask __m, char __c) const
140.2819 -+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
140.2820 -+
140.2821 -+ const char*
140.2822 -+ ctype<char>::
140.2823 -+ is(const char* __low, const char* __high, mask* __vec) const
140.2824 -+ {
140.2825 -+ while (__low < __high)
140.2826 -+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
140.2827 -+ return __high;
140.2828 -+ }
140.2829 -+
140.2830 -+ const char*
140.2831 -+ ctype<char>::
140.2832 -+ scan_is(mask __m, const char* __low, const char* __high) const
140.2833 -+ {
140.2834 -+ while (__low < __high
140.2835 -+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
140.2836 -+ ++__low;
140.2837 -+ return __low;
140.2838 -+ }
140.2839 -+
140.2840 -+ const char*
140.2841 -+ ctype<char>::
140.2842 -+ scan_not(mask __m, const char* __low, const char* __high) const
140.2843 -+ {
140.2844 -+ while (__low < __high
140.2845 -+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
140.2846 -+ ++__low;
140.2847 -+ return __low;
140.2848 -+ }
140.2849 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h
140.2850 ---- gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_noninline.h 1969-12-31 18:00:00.000000000 -0600
140.2851 -+++ gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h 2004-09-10 10:47:40.000000000 -0500
140.2852 -@@ -0,0 +1,92 @@
140.2853 -+// Locale support -*- C++ -*-
140.2854 -+
140.2855 -+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
140.2856 -+// Free Software Foundation, Inc.
140.2857 -+//
140.2858 -+// This file is part of the GNU ISO C++ Library. This library is free
140.2859 -+// software; you can redistribute it and/or modify it under the
140.2860 -+// terms of the GNU General Public License as published by the
140.2861 -+// Free Software Foundation; either version 2, or (at your option)
140.2862 -+// any later version.
140.2863 -+
140.2864 -+// This library is distributed in the hope that it will be useful,
140.2865 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2866 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.2867 -+// GNU General Public License for more details.
140.2868 -+
140.2869 -+// You should have received a copy of the GNU General Public License along
140.2870 -+// with this library; see the file COPYING. If not, write to the Free
140.2871 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2872 -+// USA.
140.2873 -+
140.2874 -+// As a special exception, you may use this file as part of a free software
140.2875 -+// library without restriction. Specifically, if other files instantiate
140.2876 -+// templates or use macros or inline functions from this file, or you compile
140.2877 -+// this file and link it with other files to produce an executable, this
140.2878 -+// file does not by itself cause the resulting executable to be covered by
140.2879 -+// the GNU General Public License. This exception does not however
140.2880 -+// invalidate any other reasons why the executable file might be covered by
140.2881 -+// the GNU General Public License.
140.2882 -+
140.2883 -+//
140.2884 -+// ISO C++ 14882: 22.1 Locales
140.2885 -+//
140.2886 -+
140.2887 -+// Information as gleaned from /usr/include/ctype.h
140.2888 -+
140.2889 -+ const ctype_base::mask*
140.2890 -+ ctype<char>::classic_table() throw()
140.2891 -+ { return __C_ctype_b; }
140.2892 -+
140.2893 -+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
140.2894 -+ size_t __refs)
140.2895 -+ : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()),
140.2896 -+ _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
140.2897 -+ {
140.2898 -+ _M_toupper = __C_ctype_toupper;
140.2899 -+ _M_tolower = __C_ctype_tolower;
140.2900 -+ _M_table = __table ? __table : __C_ctype_b;
140.2901 -+ memset(_M_widen, 0, sizeof(_M_widen));
140.2902 -+ memset(_M_narrow, 0, sizeof(_M_narrow));
140.2903 -+ }
140.2904 -+
140.2905 -+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
140.2906 -+ : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()),
140.2907 -+ _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
140.2908 -+ {
140.2909 -+ _M_toupper = __C_ctype_toupper;
140.2910 -+ _M_tolower = __C_ctype_tolower;
140.2911 -+ _M_table = __table ? __table : __C_ctype_b;
140.2912 -+ memset(_M_widen, 0, sizeof(_M_widen));
140.2913 -+ memset(_M_narrow, 0, sizeof(_M_narrow));
140.2914 -+ }
140.2915 -+
140.2916 -+ char
140.2917 -+ ctype<char>::do_toupper(char __c) const
140.2918 -+ { return _M_toupper[static_cast<unsigned char>(__c)]; }
140.2919 -+
140.2920 -+ const char*
140.2921 -+ ctype<char>::do_toupper(char* __low, const char* __high) const
140.2922 -+ {
140.2923 -+ while (__low < __high)
140.2924 -+ {
140.2925 -+ *__low = _M_toupper[static_cast<unsigned char>(*__low)];
140.2926 -+ ++__low;
140.2927 -+ }
140.2928 -+ return __high;
140.2929 -+ }
140.2930 -+
140.2931 -+ char
140.2932 -+ ctype<char>::do_tolower(char __c) const
140.2933 -+ { return _M_tolower[static_cast<unsigned char>(__c)]; }
140.2934 -+
140.2935 -+ const char*
140.2936 -+ ctype<char>::do_tolower(char* __low, const char* __high) const
140.2937 -+ {
140.2938 -+ while (__low < __high)
140.2939 -+ {
140.2940 -+ *__low = _M_tolower[static_cast<unsigned char>(*__low)];
140.2941 -+ ++__low;
140.2942 -+ }
140.2943 -+ return __high;
140.2944 -+ }
140.2945 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/os_defines.h gcc-3.4.2/libstdc++-v3/config/os/uclibc/os_defines.h
140.2946 ---- gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/os_defines.h 1969-12-31 18:00:00.000000000 -0600
140.2947 -+++ gcc-3.4.2/libstdc++-v3/config/os/uclibc/os_defines.h 2004-09-10 10:47:40.000000000 -0500
140.2948 -@@ -0,0 +1,44 @@
140.2949 -+// Specific definitions for GNU/Linux -*- C++ -*-
140.2950 -+
140.2951 -+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
140.2952 -+//
140.2953 -+// This file is part of the GNU ISO C++ Library. This library is free
140.2954 -+// software; you can redistribute it and/or modify it under the
140.2955 -+// terms of the GNU General Public License as published by the
140.2956 -+// Free Software Foundation; either version 2, or (at your option)
140.2957 -+// any later version.
140.2958 -+
140.2959 -+// This library is distributed in the hope that it will be useful,
140.2960 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2961 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
140.2962 -+// GNU General Public License for more details.
140.2963 -+
140.2964 -+// You should have received a copy of the GNU General Public License along
140.2965 -+// with this library; see the file COPYING. If not, write to the Free
140.2966 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2967 -+// USA.
140.2968 -+
140.2969 -+// As a special exception, you may use this file as part of a free software
140.2970 -+// library without restriction. Specifically, if other files instantiate
140.2971 -+// templates or use macros or inline functions from this file, or you compile
140.2972 -+// this file and link it with other files to produce an executable, this
140.2973 -+// file does not by itself cause the resulting executable to be covered by
140.2974 -+// the GNU General Public License. This exception does not however
140.2975 -+// invalidate any other reasons why the executable file might be covered by
140.2976 -+// the GNU General Public License.
140.2977 -+
140.2978 -+#ifndef _GLIBCXX_OS_DEFINES
140.2979 -+#define _GLIBCXX_OS_DEFINES 1
140.2980 -+
140.2981 -+// System-specific #define, typedefs, corrections, etc, go here. This
140.2982 -+// file will come before all others.
140.2983 -+
140.2984 -+// This keeps isanum, et al from being propagated as macros.
140.2985 -+#define __NO_CTYPE 1
140.2986 -+
140.2987 -+#include <features.h>
140.2988 -+
140.2989 -+// We must not see the optimized string functions GNU libc defines.
140.2990 -+#define __NO_STRING_INLINES
140.2991 -+
140.2992 -+#endif
140.2993 -diff -urN gcc-3.4.2-dist/libstdc++-v3/configure gcc-3.4.2/libstdc++-v3/configure
140.2994 ---- gcc-3.4.2-dist/libstdc++-v3/configure 2004-08-13 15:44:04.000000000 -0500
140.2995 -+++ gcc-3.4.2/libstdc++-v3/configure 2004-09-10 10:47:40.000000000 -0500
140.2996 -@@ -3878,6 +3878,11 @@
140.2997 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
140.2998 - ;;
140.2999 -
140.3000 -+linux-uclibc*)
140.3001 -+ lt_cv_deplibs_check_method=pass_all
140.3002 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
140.3003 -+ ;;
140.3004 -+
140.3005 - netbsd*)
140.3006 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
140.3007 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
140.3008 -@@ -5479,7 +5479,7 @@
140.3009 - enableval="$enable_clocale"
140.3010 -
140.3011 - case "$enableval" in
140.3012 -- generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
140.3013 -+ generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
140.3014 - *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
140.3015 - echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
140.3016 - { (exit 1); exit 1; }; } ;;
140.3017 -@@ -5545,6 +5550,9 @@
140.3018 - # Default to "generic".
140.3019 - if test $enable_clocale_flag = auto; then
140.3020 - case x${target_os} in
140.3021 -+ xlinux-uclibc*)
140.3022 -+ enable_clocale_flag=uclibc
140.3023 -+ ;;
140.3024 - xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu)
140.3025 - cat >conftest.$ac_ext <<_ACEOF
140.3026 - #line $LINENO "configure"
140.3027 -@@ -5759,6 +5767,77 @@
140.3028 - CTIME_CC=config/locale/generic/time_members.cc
140.3029 - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
140.3030 - ;;
140.3031 -+ uclibc)
140.3032 -+ echo "$as_me:$LINENO: result: uclibc" >&5
140.3033 -+echo "${ECHO_T}uclibc" >&6
140.3034 -+
140.3035 -+ # Declare intention to use gettext, and add support for specific
140.3036 -+ # languages.
140.3037 -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
140.3038 -+ ALL_LINGUAS="de fr"
140.3039 -+
140.3040 -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
140.3041 -+ # Extract the first word of "msgfmt", so it can be a program name with args.
140.3042 -+set dummy msgfmt; ac_word=$2
140.3043 -+echo "$as_me:$LINENO: checking for $ac_word" >&5
140.3044 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
140.3045 -+if test "${ac_cv_prog_check_msgfmt+set}" = set; then
140.3046 -+ echo $ECHO_N "(cached) $ECHO_C" >&6
140.3047 -+else
140.3048 -+ if test -n "$check_msgfmt"; then
140.3049 -+ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
140.3050 -+else
140.3051 -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
140.3052 -+for as_dir in $PATH
140.3053 -+do
140.3054 -+ IFS=$as_save_IFS
140.3055 -+ test -z "$as_dir" && as_dir=.
140.3056 -+ for ac_exec_ext in '' $ac_executable_extensions; do
140.3057 -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
140.3058 -+ ac_cv_prog_check_msgfmt="yes"
140.3059 -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
140.3060 -+ break 2
140.3061 -+ fi
140.3062 -+done
140.3063 -+done
140.3064 -+
140.3065 -+ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
140.3066 -+fi
140.3067 -+fi
140.3068 -+check_msgfmt=$ac_cv_prog_check_msgfmt
140.3069 -+if test -n "$check_msgfmt"; then
140.3070 -+ echo "$as_me:$LINENO: result: $check_msgfmt" >&5
140.3071 -+echo "${ECHO_T}$check_msgfmt" >&6
140.3072 -+else
140.3073 -+ echo "$as_me:$LINENO: result: no" >&5
140.3074 -+echo "${ECHO_T}no" >&6
140.3075 -+fi
140.3076 -+
140.3077 -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
140.3078 -+ USE_NLS=yes
140.3079 -+ fi
140.3080 -+ # Export the build objects.
140.3081 -+ for ling in $ALL_LINGUAS; do \
140.3082 -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
140.3083 -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
140.3084 -+ done
140.3085 -+
140.3086 -+
140.3087 -+
140.3088 -+ CLOCALE_H=config/locale/uclibc/c_locale.h
140.3089 -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc
140.3090 -+ CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
140.3091 -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
140.3092 -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
140.3093 -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
140.3094 -+ CMESSAGES_H=config/locale/uclibc/messages_members.h
140.3095 -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
140.3096 -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc
140.3097 -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
140.3098 -+ CTIME_H=config/locale/uclibc/time_members.h
140.3099 -+ CTIME_CC=config/locale/uclibc/time_members.cc
140.3100 -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
140.3101 -+ ;;
140.3102 - esac
140.3103 -
140.3104 - # This is where the testsuite looks for locale catalogs, using the
140.3105 -diff -urN gcc-3.4.2-dist/libstdc++-v3/configure.host gcc-3.4.2/libstdc++-v3/configure.host
140.3106 ---- gcc-3.4.2-dist/libstdc++-v3/configure.host 2004-08-27 14:52:30.000000000 -0500
140.3107 -+++ gcc-3.4.2/libstdc++-v3/configure.host 2004-09-10 10:47:40.000000000 -0500
140.3108 -@@ -217,6 +217,12 @@
140.3109 - ;;
140.3110 - esac
140.3111 -
140.3112 -+# Override for uClibc since linux-uclibc gets mishandled above.
140.3113 -+case "${host_os}" in
140.3114 -+ *-uclibc*)
140.3115 -+ os_include_dir="os/uclibc"
140.3116 -+ ;;
140.3117 -+esac
140.3118 -
140.3119 - # Set any OS-dependent and CPU-dependent bits.
140.3120 - # THIS TABLE IS SORTED. KEEP IT THAT WAY.
140.3121 -diff -urN gcc-3.4.2-dist/libstdc++-v3/crossconfig.m4 gcc-3.4.2/libstdc++-v3/crossconfig.m4
140.3122 ---- gcc-3.4.2-dist/libstdc++-v3/crossconfig.m4 2004-07-06 20:23:49.000000000 -0500
140.3123 -+++ gcc-3.4.2/libstdc++-v3/crossconfig.m4 2004-09-10 10:47:40.000000000 -0500
140.3124 -@@ -138,6 +138,99 @@
140.3125 - ;;
140.3126 - esac
140.3127 - ;;
140.3128 -+ *-uclibc*)
140.3129 -+# Temporary hack until we implement the float versions of the libm funcs
140.3130 -+ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
140.3131 -+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
140.3132 -+ fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
140.3133 -+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
140.3134 -+ AC_SUBST(SECTION_FLAGS)
140.3135 -+ GLIBCXX_CHECK_LINKER_FEATURES
140.3136 -+ GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
140.3137 -+ GLIBCXX_CHECK_WCHAR_T_SUPPORT
140.3138 -+
140.3139 -+ # For LFS.
140.3140 -+ AC_DEFINE(HAVE_INT64_T)
140.3141 -+ case "$target" in
140.3142 -+ *-uclinux*)
140.3143 -+ # Don't enable LFS with uClinux
140.3144 -+ ;;
140.3145 -+ *)
140.3146 -+ AC_DEFINE(_GLIBCXX_USE_LFS)
140.3147 -+ esac
140.3148 -+
140.3149 -+ # For showmanyc_helper().
140.3150 -+ AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
140.3151 -+ GLIBCXX_CHECK_POLL
140.3152 -+ GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
140.3153 -+
140.3154 -+ # For xsputn_2().
140.3155 -+ AC_CHECK_HEADERS(sys/uio.h)
140.3156 -+ GLIBCXX_CHECK_WRITEV
140.3157 -+
140.3158 -+# AC_DEFINE(HAVE_ACOSF)
140.3159 -+# AC_DEFINE(HAVE_ASINF)
140.3160 -+# AC_DEFINE(HAVE_ATANF)
140.3161 -+# AC_DEFINE(HAVE_ATAN2F)
140.3162 -+ AC_DEFINE(HAVE_CEILF)
140.3163 -+ AC_DEFINE(HAVE_COPYSIGN)
140.3164 -+# AC_DEFINE(HAVE_COPYSIGNF)
140.3165 -+# AC_DEFINE(HAVE_COSF)
140.3166 -+# AC_DEFINE(HAVE_COSHF)
140.3167 -+# AC_DEFINE(HAVE_EXPF)
140.3168 -+# AC_DEFINE(HAVE_FABSF)
140.3169 -+ AC_DEFINE(HAVE_FINITE)
140.3170 -+ AC_DEFINE(HAVE_FINITEF)
140.3171 -+ AC_DEFINE(HAVE_FLOORF)
140.3172 -+# AC_DEFINE(HAVE_FMODF)
140.3173 -+# AC_DEFINE(HAVE_FREXPF)
140.3174 -+ AC_DEFINE(HAVE_HYPOT)
140.3175 -+# AC_DEFINE(HAVE_HYPOTF)
140.3176 -+ AC_DEFINE(HAVE_ISINF)
140.3177 -+ AC_DEFINE(HAVE_ISINFF)
140.3178 -+ AC_DEFINE(HAVE_ISNAN)
140.3179 -+ AC_DEFINE(HAVE_ISNANF)
140.3180 -+# AC_DEFINE(HAVE_LOGF)
140.3181 -+# AC_DEFINE(HAVE_LOG10F)
140.3182 -+# AC_DEFINE(HAVE_MODFF)
140.3183 -+# AC_DEFINE(HAVE_SINF)
140.3184 -+# AC_DEFINE(HAVE_SINHF)
140.3185 -+# AC_DEFINE(HAVE_SINCOS)
140.3186 -+# AC_DEFINE(HAVE_SINCOSF)
140.3187 -+ AC_DEFINE(HAVE_SQRTF)
140.3188 -+# AC_DEFINE(HAVE_TANF)
140.3189 -+# AC_DEFINE(HAVE_TANHF)
140.3190 -+ if test x"long_double_math_on_this_cpu" = x"yes"; then
140.3191 -+ AC_MSG_ERROR([long_double_math_on_this_cpu is yes!])
140.3192 -+# AC_DEFINE(HAVE_ACOSL)
140.3193 -+# AC_DEFINE(HAVE_ASINL)
140.3194 -+# AC_DEFINE(HAVE_ATANL)
140.3195 -+# AC_DEFINE(HAVE_ATAN2L)
140.3196 -+# AC_DEFINE(HAVE_CEILL)
140.3197 -+# AC_DEFINE(HAVE_COPYSIGNL)
140.3198 -+# AC_DEFINE(HAVE_COSL)
140.3199 -+# AC_DEFINE(HAVE_COSHL)
140.3200 -+# AC_DEFINE(HAVE_EXPL)
140.3201 -+# AC_DEFINE(HAVE_FABSL)
140.3202 -+# AC_DEFINE(HAVE_FINITEL)
140.3203 -+# AC_DEFINE(HAVE_FLOORL)
140.3204 -+# AC_DEFINE(HAVE_FMODL)
140.3205 -+# AC_DEFINE(HAVE_FREXPL)
140.3206 -+# AC_DEFINE(HAVE_HYPOTL)
140.3207 -+# AC_DEFINE(HAVE_ISINFL)
140.3208 -+# AC_DEFINE(HAVE_ISNANL)
140.3209 -+# AC_DEFINE(HAVE_LOGL)
140.3210 -+# AC_DEFINE(HAVE_LOG10L)
140.3211 -+# AC_DEFINE(HAVE_MODFL)
140.3212 -+# AC_DEFINE(HAVE_POWL)
140.3213 -+# AC_DEFINE(HAVE_SINL)
140.3214 -+# AC_DEFINE(HAVE_SINHL)
140.3215 -+# AC_DEFINE(HAVE_SINCOSL)
140.3216 -+# AC_DEFINE(HAVE_SQRTL)
140.3217 -+# AC_DEFINE(HAVE_TANL)
140.3218 -+# AC_DEFINE(HAVE_TANHL)
140.3219 -+ fi
140.3220 -+ ;;
140.3221 - *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
140.3222 - AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
140.3223 - machine/endian.h machine/param.h sys/machine.h sys/types.h \
140.3224 -@@ -152,7 +245,7 @@
140.3225 - AC_DEFINE(HAVE_INT64_T)
140.3226 - case "$target" in
140.3227 - *-uclinux*)
140.3228 -- # Don't enable LFS with uClibc
140.3229 -+ # Don't enable LFS with uClinux
140.3230 - ;;
140.3231 - *)
140.3232 - AC_DEFINE(_GLIBCXX_USE_LFS)
140.3233 -diff -urN gcc-3.4.2-dist/libstdc++-v3/include/c_compatibility/wchar.h gcc-3.4.2/libstdc++-v3/include/c_compatibility/wchar.h
140.3234 ---- gcc-3.4.2-dist/libstdc++-v3/include/c_compatibility/wchar.h 2003-12-08 21:51:45.000000000 -0600
140.3235 -+++ gcc-3.4.2/libstdc++-v3/include/c_compatibility/wchar.h 2004-09-10 10:47:40.000000000 -0500
140.3236 -@@ -101,7 +101,9 @@
140.3237 - using std::wmemcpy;
140.3238 - using std::wmemmove;
140.3239 - using std::wmemset;
140.3240 -+#if _GLIBCXX_HAVE_WCSFTIME
140.3241 - using std::wcsftime;
140.3242 -+#endif
140.3243 -
140.3244 - #if _GLIBCXX_USE_C99
140.3245 - using std::wcstold;
140.3246 -diff -urN gcc-3.4.2-dist/libstdc++-v3/include/c_std/std_cwchar.h gcc-3.4.2/libstdc++-v3/include/c_std/std_cwchar.h
140.3247 ---- gcc-3.4.2-dist/libstdc++-v3/include/c_std/std_cwchar.h 2004-07-20 03:52:12.000000000 -0500
140.3248 -+++ gcc-3.4.2/libstdc++-v3/include/c_std/std_cwchar.h 2004-09-10 10:47:40.000000000 -0500
140.3249 -@@ -179,7 +179,9 @@
140.3250 - using ::wcscoll;
140.3251 - using ::wcscpy;
140.3252 - using ::wcscspn;
140.3253 -+#if _GLIBCXX_HAVE_WCSFTIME
140.3254 - using ::wcsftime;
140.3255 -+#endif
140.3256 - using ::wcslen;
140.3257 - using ::wcsncat;
140.3258 - using ::wcsncmp;
141.1 --- a/patches/gcc/3.4.4/300-libstdc++-pic.patch Tue Aug 14 19:32:22 2007 +0000
141.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
141.3 @@ -1,46 +0,0 @@
141.4 -diff -dur gcc-3.4.4.orig/libstdc++-v3/src/Makefile.am gcc-3.4.4/libstdc++-v3/src/Makefile.am
141.5 ---- gcc-3.4.4.orig/libstdc++-v3/src/Makefile.am 2004-04-16 21:08:35.000000000 +0200
141.6 -+++ gcc-3.4.4/libstdc++-v3/src/Makefile.am 2007-02-14 17:24:53.000000000 +0100
141.7 -@@ -209,6 +209,9 @@
141.8 - CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
141.9 - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
141.10 -
141.11 -+install-exec-local:
141.12 -+ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
141.13 -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
141.14 -
141.15 - # Added bits to build debug library.
141.16 - if GLIBCXX_BUILD_DEBUG
141.17 -diff -dur gcc-3.4.4.orig/libstdc++-v3/src/Makefile.in gcc-3.4.4/libstdc++-v3/src/Makefile.in
141.18 ---- gcc-3.4.4.orig/libstdc++-v3/src/Makefile.in 2004-04-16 21:08:35.000000000 +0200
141.19 -+++ gcc-3.4.4/libstdc++-v3/src/Makefile.in 2007-02-14 17:25:18.000000000 +0100
141.20 -@@ -592,7 +592,7 @@
141.21 -
141.22 - install-data-am: install-data-local
141.23 -
141.24 --install-exec-am: install-toolexeclibLTLIBRARIES
141.25 -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
141.26 -
141.27 - install-info: install-info-am
141.28 -
141.29 -@@ -625,6 +625,7 @@
141.30 - distclean-tags distdir dvi dvi-am info info-am install \
141.31 - install-am install-data install-data-am install-data-local \
141.32 - install-exec install-exec-am install-info install-info-am \
141.33 -+ install-exec-local \
141.34 - install-man install-strip install-toolexeclibLTLIBRARIES \
141.35 - installcheck installcheck-am installdirs maintainer-clean \
141.36 - maintainer-clean-generic mostlyclean mostlyclean-compile \
141.37 -@@ -709,6 +710,11 @@
141.38 - install_debug:
141.39 - (cd ${debugdir} && $(MAKE) \
141.40 - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
141.41 -+
141.42 -+install-exec-local:
141.43 -+ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
141.44 -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
141.45 -+
141.46 - # Tell versions [3.59,3.63) of GNU make to not export all variables.
141.47 - # Otherwise a system limit (for SysV at least) may be exceeded.
141.48 - .NOEXPORT:
141.49 -Only in gcc-3.4.4/libstdc++-v3/src: Makefile.in.orig
142.1 --- a/patches/gcc/3.4.4/600-gcc34-arm-ldm-peephole.patch Tue Aug 14 19:32:22 2007 +0000
142.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
142.3 @@ -1,65 +0,0 @@
142.4 ---- gcc-3.4.0/gcc/config/arm/arm.md.arm-ldm-peephole 2004-01-13 08:24:37.000000000 -0500
142.5 -+++ gcc-3.4.0/gcc/config/arm/arm.md 2004-04-24 18:18:04.000000000 -0400
142.6 -@@ -8810,13 +8810,16 @@
142.7 - (set_attr "length" "4,8,8")]
142.8 - )
142.9 -
142.10 -+; Try to convert LDR+LDR+arith into [add+]LDM+arith
142.11 -+; On XScale, LDM is always slower than two LDRs, so only do this if
142.12 -+; optimising for size.
142.13 - (define_insn "*arith_adjacentmem"
142.14 - [(set (match_operand:SI 0 "s_register_operand" "=r")
142.15 - (match_operator:SI 1 "shiftable_operator"
142.16 - [(match_operand:SI 2 "memory_operand" "m")
142.17 - (match_operand:SI 3 "memory_operand" "m")]))
142.18 - (clobber (match_scratch:SI 4 "=r"))]
142.19 -- "TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])"
142.20 -+ "TARGET_ARM && (!arm_tune_xscale || optimize_size) && adjacent_mem_locations (operands[2], operands[3])"
142.21 - "*
142.22 - {
142.23 - rtx ldm[3];
142.24 -@@ -8851,6 +8854,8 @@
142.25 - }
142.26 - if (val1 && val2)
142.27 - {
142.28 -+ /* This would be a loss on a Harvard core, but adjacent_mem_locations()
142.29 -+ will prevent it from happening. */
142.30 - rtx ops[3];
142.31 - ldm[0] = ops[0] = operands[4];
142.32 - ops[1] = XEXP (XEXP (operands[2], 0), 0);
142.33 ---- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm-peephole 2004-04-24 18:16:25.000000000 -0400
142.34 -+++ gcc-3.4.0/gcc/config/arm/arm.c 2004-04-24 18:18:04.000000000 -0400
142.35 -@@ -4838,6 +4841,11 @@
142.36 - *load_offset = unsorted_offsets[order[0]];
142.37 - }
142.38 -
142.39 -+ /* For XScale a two-word LDM is a performance loss, so only do this if
142.40 -+ size is more important. See comments in arm_gen_load_multiple. */
142.41 -+ if (nops == 2 && arm_tune_xscale && !optimize_size)
142.42 -+ return 0;
142.43 -+
142.44 - if (unsorted_offsets[order[0]] == 0)
142.45 - return 1; /* ldmia */
142.46 -
142.47 -@@ -5064,6 +5072,11 @@
142.48 - *load_offset = unsorted_offsets[order[0]];
142.49 - }
142.50 -
142.51 -+ /* For XScale a two-word LDM is a performance loss, so only do this if
142.52 -+ size is more important. See comments in arm_gen_load_multiple. */
142.53 -+ if (nops == 2 && arm_tune_xscale && !optimize_size)
142.54 -+ return 0;
142.55 -+
142.56 - if (unsorted_offsets[order[0]] == 0)
142.57 - return 1; /* stmia */
142.58 -
142.59 ---- gcc-3.4.0/gcc/genpeep.c.arm-ldm-peephole 2003-07-05 01:27:22.000000000 -0400
142.60 -+++ gcc-3.4.0/gcc/genpeep.c 2004-04-24 18:18:04.000000000 -0400
142.61 -@@ -381,6 +381,7 @@
142.62 - printf ("#include \"recog.h\"\n");
142.63 - printf ("#include \"except.h\"\n\n");
142.64 - printf ("#include \"function.h\"\n\n");
142.65 -+ printf ("#include \"flags.h\"\n\n");
142.66 -
142.67 - printf ("#ifdef HAVE_peephole\n");
142.68 - printf ("extern rtx peep_operand[];\n\n");
143.1 --- a/patches/gcc/3.4.4/601-gcc34-arm-ldm-peephole2.patch Tue Aug 14 19:32:22 2007 +0000
143.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
143.3 @@ -1,42 +0,0 @@
143.4 -The 30_all_gcc34-arm-ldm-peephole.patch from Debian was conflicting
143.5 -with the newer 36_all_pr16201-fix.patch, so i cut out the hunk from
143.6 -it that was causing problems and grabbed an updated version from
143.7 -upstream cvs.
143.8 -
143.9 -Index: gcc/config/arm/arm.c
143.10 -===================================================================
143.11 -RCS file: /cvsroot/gcc/gcc/gcc/config/arm/arm.c,v
143.12 -retrieving revision 1.432
143.13 -retrieving revision 1.433
143.14 -diff -u -r1.432 -r1.433
143.15 ---- gcc-3.4.4/gcc/config/arm/arm.c 29 Mar 2005 03:00:23 -0000 1.432
143.16 -+++ gcc-3.4.4/gcc/config/arm/arm.c 1 Apr 2005 11:02:22 -0000 1.433
143.17 -@@ -5139,6 +5139,10 @@
143.18 - int
143.19 - adjacent_mem_locations (rtx a, rtx b)
143.20 - {
143.21 -+ /* We don't guarantee to preserve the order of these memory refs. */
143.22 -+ if (volatile_refs_p (a) || volatile_refs_p (b))
143.23 -+ return 0;
143.24 -+
143.25 - if ((GET_CODE (XEXP (a, 0)) == REG
143.26 - || (GET_CODE (XEXP (a, 0)) == PLUS
143.27 - && GET_CODE (XEXP (XEXP (a, 0), 1)) == CONST_INT))
143.28 -@@ -5178,6 +5182,17 @@
143.29 - return 0;
143.30 -
143.31 - val_diff = val1 - val0;
143.32 -+
143.33 -+ if (arm_ld_sched)
143.34 -+ {
143.35 -+ /* If the target has load delay slots, then there's no benefit
143.36 -+ to using an ldm instruction unless the offset is zero and
143.37 -+ we are optimizing for size. */
143.38 -+ return (optimize_size && (REGNO (reg0) == REGNO (reg1))
143.39 -+ && (val0 == 0 || val1 == 0 || val0 == 4 || val1 == 4)
143.40 -+ && (val_diff == 4 || val_diff == -4));
143.41 -+ }
143.42 -+
143.43 - return ((REGNO (reg0) == REGNO (reg1))
143.44 - && (val_diff == 4 || val_diff == -4));
143.45 - }
144.1 --- a/patches/gcc/3.4.4/601-gcc34-arm-ldm.patch Tue Aug 14 19:32:22 2007 +0000
144.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
144.3 @@ -1,119 +0,0 @@
144.4 ---- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm 2004-02-27 09:51:05.000000000 -0500
144.5 -+++ gcc-3.4.0/gcc/config/arm/arm.c 2004-04-24 18:16:25.000000000 -0400
144.6 -@@ -8520,6 +8520,26 @@
144.7 - return_used_this_function = 0;
144.8 - }
144.9 -
144.10 -+/* Return the number (counting from 0) of
144.11 -+ the least significant set bit in MASK. */
144.12 -+
144.13 -+#ifdef __GNUC__
144.14 -+inline
144.15 -+#endif
144.16 -+static int
144.17 -+number_of_first_bit_set (mask)
144.18 -+ int mask;
144.19 -+{
144.20 -+ int bit;
144.21 -+
144.22 -+ for (bit = 0;
144.23 -+ (mask & (1 << bit)) == 0;
144.24 -+ ++bit)
144.25 -+ continue;
144.26 -+
144.27 -+ return bit;
144.28 -+}
144.29 -+
144.30 - const char *
144.31 - arm_output_epilogue (rtx sibling)
144.32 - {
144.33 -@@ -8753,27 +8773,47 @@
144.34 - saved_regs_mask |= (1 << PC_REGNUM);
144.35 - }
144.36 -
144.37 -- /* Load the registers off the stack. If we only have one register
144.38 -- to load use the LDR instruction - it is faster. */
144.39 -- if (saved_regs_mask == (1 << LR_REGNUM))
144.40 -- {
144.41 -- /* The exception handler ignores the LR, so we do
144.42 -- not really need to load it off the stack. */
144.43 -- if (eh_ofs)
144.44 -- asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
144.45 -- else
144.46 -- asm_fprintf (f, "\tldr\t%r, [%r], #4\n", LR_REGNUM, SP_REGNUM);
144.47 -- }
144.48 -- else if (saved_regs_mask)
144.49 -+ if (saved_regs_mask)
144.50 - {
144.51 -- if (saved_regs_mask & (1 << SP_REGNUM))
144.52 -- /* Note - write back to the stack register is not enabled
144.53 -- (ie "ldmfd sp!..."). We know that the stack pointer is
144.54 -- in the list of registers and if we add writeback the
144.55 -- instruction becomes UNPREDICTABLE. */
144.56 -- print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
144.57 -+ /* Load the registers off the stack. If we only have one register
144.58 -+ to load use the LDR instruction - it is faster. */
144.59 -+ if (bit_count (saved_regs_mask) == 1)
144.60 -+ {
144.61 -+ int reg = number_of_first_bit_set (saved_regs_mask);
144.62 -+
144.63 -+ switch (reg)
144.64 -+ {
144.65 -+ case SP_REGNUM:
144.66 -+ /* Mustn't use base writeback when loading SP. */
144.67 -+ asm_fprintf (f, "\tldr\t%r, [%r]\n", SP_REGNUM, SP_REGNUM);
144.68 -+ break;
144.69 -+
144.70 -+ case LR_REGNUM:
144.71 -+ if (eh_ofs)
144.72 -+ {
144.73 -+ /* The exception handler ignores the LR, so we do
144.74 -+ not really need to load it off the stack. */
144.75 -+ asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
144.76 -+ break;
144.77 -+ }
144.78 -+ /* else fall through */
144.79 -+
144.80 -+ default:
144.81 -+ asm_fprintf (f, "\tldr\t%r, [%r], #4\n", reg, SP_REGNUM);
144.82 -+ break;
144.83 -+ }
144.84 -+ }
144.85 - else
144.86 -- print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
144.87 -+ {
144.88 -+ if (saved_regs_mask & (1 << SP_REGNUM))
144.89 -+ /* Note - write back to the stack register is not enabled
144.90 -+ (ie "ldmfd sp!..."). We know that the stack pointer is
144.91 -+ in the list of registers and if we add writeback the
144.92 -+ instruction becomes UNPREDICTABLE. */
144.93 -+ print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
144.94 -+ else
144.95 -+ print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
144.96 -+ }
144.97 - }
144.98 -
144.99 - if (current_function_pretend_args_size)
144.100 -@@ -11401,22 +11441,6 @@
144.101 - }
144.102 - }
144.103 -
144.104 --/* Return the number (counting from 0) of
144.105 -- the least significant set bit in MASK. */
144.106 --
144.107 --inline static int
144.108 --number_of_first_bit_set (int mask)
144.109 --{
144.110 -- int bit;
144.111 --
144.112 -- for (bit = 0;
144.113 -- (mask & (1 << bit)) == 0;
144.114 -- ++bit)
144.115 -- continue;
144.116 --
144.117 -- return bit;
144.118 --}
144.119 --
144.120 - /* Generate code to return from a thumb function.
144.121 - If 'reg_containing_return_addr' is -1, then the return address is
144.122 - actually on the stack, at the stack pointer. */
145.1 --- a/patches/gcc/3.4.4/602-sdk-libstdc++-includes.patch Tue Aug 14 19:32:22 2007 +0000
145.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
145.3 @@ -1,22 +0,0 @@
145.4 ---- gcc-3.4.1/libstdc++-v3/libmath/Makefile.am~ 2003-08-27 22:29:42.000000000 +0100
145.5 -+++ gcc-3.4.1/libstdc++-v3/libmath/Makefile.am 2004-07-22 16:41:45.152130128 +0100
145.6 -@@ -32,7 +32,7 @@
145.7 -
145.8 - libmath_la_SOURCES = stubs.c
145.9 -
145.10 --AM_CPPFLAGS = $(CANADIAN_INCLUDES)
145.11 -+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
145.12 -
145.13 - # Only compiling "C" sources in this directory.
145.14 - LIBTOOL = @LIBTOOL@ --tag CC
145.15 ---- gcc-3.4.1/libstdc++-v3/fragment.am.old 2004-07-22 18:24:58.024083656 +0100
145.16 -+++ gcc-3.4.1/libstdc++-v3/fragment.am 2004-07-22 18:24:59.019932264 +0100
145.17 -@@ -18,7 +18,7 @@
145.18 - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
145.19 -
145.20 - # -I/-D flags to pass when compiling.
145.21 --AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
145.22 -+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
145.23 -
145.24 -
145.25 -
146.1 --- a/patches/gcc/3.4.4/700-pr15068-fix.patch Tue Aug 14 19:32:22 2007 +0000
146.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
146.3 @@ -1,44 +0,0 @@
146.4 -See http://gcc.gnu.org/PR15068
146.5 -
146.6 -Fixes error
146.7 -
146.8 -../sysdeps/generic/s_fmax.c: In function `__fmax':
146.9 -../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
146.10 -Please submit a full bug report,
146.11 -with preprocessed source if appropriate.
146.12 -See <URL:http://gcc.gnu.org/bugs.html> for instructions.
146.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
146.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
146.15 -make[1]: *** [math/others] Error 2
146.16 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
146.17 -make: *** [all] Error 2
146.18 -
146.19 -[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
146.20 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
146.21 -
146.22 ---- gcc-3.4.1/gcc/flow.c.old 2004-02-27 19:39:19.000000000 -0800
146.23 -+++ gcc-3.4.1/gcc/flow.c 2004-08-26 07:29:46.000000000 -0700
146.24 -@@ -1878,6 +1878,7 @@
146.25 - rtx set_src = SET_SRC (pc_set (BB_END (bb)));
146.26 - rtx cond_true = XEXP (set_src, 0);
146.27 - rtx reg = XEXP (cond_true, 0);
146.28 -+ enum rtx_code inv_cond;
146.29 -
146.30 - if (GET_CODE (reg) == SUBREG)
146.31 - reg = SUBREG_REG (reg);
146.32 -@@ -1886,11 +1887,13 @@
146.33 - in the form of a comparison of a register against zero.
146.34 - If the condition is more complex than that, then it is safe
146.35 - not to record any information. */
146.36 -- if (GET_CODE (reg) == REG
146.37 -+ inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
146.38 -+ if (inv_cond != UNKNOWN
146.39 -+ && GET_CODE (reg) == REG
146.40 - && XEXP (cond_true, 1) == const0_rtx)
146.41 - {
146.42 - rtx cond_false
146.43 -- = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
146.44 -+ = gen_rtx_fmt_ee (inv_cond,
146.45 - GET_MODE (cond_true), XEXP (cond_true, 0),
146.46 - XEXP (cond_true, 1));
146.47 - if (GET_CODE (XEXP (set_src, 1)) == PC)
147.1 --- a/patches/gcc/3.4.4/71_all_sh-pr16665-fix.patch Tue Aug 14 19:32:22 2007 +0000
147.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
147.3 @@ -1,43 +0,0 @@
147.4 ---- gcc/gcc/config/sh/sh.c
147.5 -+++ gcc/gcc/config/sh/sh.c
147.6 -@@ -9106,6 +9106,15 @@ sh_output_mi_thunk (FILE *file, tree thu
147.7 - }
147.8 - this = FUNCTION_ARG (cum, Pmode, ptr_type_node, 1);
147.9 -
147.10 -+ /* In PIC case, we set PIC register to compute the target address. We
147.11 -+ can use a scratch register to save and restore the original value
147.12 -+ except for SHcompact. For SHcompact, use stack. */
147.13 -+ if (flag_pic && TARGET_SHCOMPACT)
147.14 -+ {
147.15 -+ push (PIC_OFFSET_TABLE_REGNUM);
147.16 -+ emit_insn (gen_GOTaddr2picreg ());
147.17 -+ }
147.18 -+
147.19 - /* For SHcompact, we only have r0 for a scratch register: r1 is the
147.20 - static chain pointer (even if you can't have nested virtual functions
147.21 - right now, someone might implement them sometime), and the rest of the
147.22 -@@ -9188,8 +9197,24 @@ sh_output_mi_thunk (FILE *file, tree thu
147.23 - assemble_external (function);
147.24 - TREE_USED (function) = 1;
147.25 - }
147.26 -+ /* We can use scratch1 to save and restore the original value of
147.27 -+ PIC register except for SHcompact. */
147.28 -+ if (flag_pic && ! TARGET_SHCOMPACT)
147.29 -+ {
147.30 -+ emit_move_insn (scratch1,
147.31 -+ gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM));
147.32 -+ emit_insn (gen_GOTaddr2picreg ());
147.33 -+ }
147.34 - funexp = XEXP (DECL_RTL (function), 0);
147.35 - emit_move_insn (scratch2, funexp);
147.36 -+ if (flag_pic)
147.37 -+ {
147.38 -+ if (! TARGET_SHCOMPACT)
147.39 -+ emit_move_insn (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM),
147.40 -+ scratch1);
147.41 -+ else
147.42 -+ pop (PIC_OFFSET_TABLE_REGNUM);
147.43 -+ }
147.44 - funexp = gen_rtx_MEM (FUNCTION_MODE, scratch2);
147.45 - sibcall = emit_call_insn (gen_sibcall (funexp, const0_rtx, NULL_RTX));
147.46 - SIBLING_CALL_P (sibcall) = 1;
148.1 --- a/patches/gcc/3.4.4/72_all_sh-no-reorder-blocks.patch Tue Aug 14 19:32:22 2007 +0000
148.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
148.3 @@ -1,13 +0,0 @@
148.4 ---- g/gcc/config/sh/sh.h
148.5 -+++ g/gcc/config/sh/sh.h
148.6 -@@ -422,6 +422,10 @@
148.7 - do { \
148.8 - if (LEVEL) \
148.9 - flag_omit_frame_pointer = -1; \
148.10 -+ if (LEVEL <= 2) \
148.11 -+ { \
148.12 -+ flag_reorder_blocks = 0; \
148.13 -+ } \
148.14 - if (SIZE) \
148.15 - target_flags |= SPACE_BIT; \
148.16 - if (TARGET_SHMEDIA && LEVEL > 1) \
149.1 --- a/patches/gcc/3.4.4/73_all_sh-pr20617.patch Tue Aug 14 19:32:22 2007 +0000
149.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
149.3 @@ -1,28 +0,0 @@
149.4 -2005-03-24 J"orn Rennecke <joern.rennecke@st.com>
149.5 -
149.6 - Band aid for PR target/20617:
149.7 - * config/sh/lib1funcs.asm (FUNC, ALIAS): Add .hidden directive.
149.8 -
149.9 ---- g/gcc/config/sh/lib1funcs.asm
149.10 -+++ g/gcc/config/sh/lib1funcs.asm
149.11 -@@ -37,9 +37,19 @@ Boston, MA 02111-1307, USA. */
149.12 - ELF local label prefixes by J"orn Rennecke
149.13 - amylaar@cygnus.com */
149.14 -
149.15 -+#define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y)
149.16 -+
149.17 - #ifdef __ELF__
149.18 - #define LOCAL(X) .L_##X
149.19 --#define FUNC(X) .type X,@function
149.20 -+
149.21 -+#if 1 /* ??? The export list mechanism is broken, everything that is not
149.22 -+ hidden is exported. */
149.23 -+#undef FUNC
149.24 -+#define FUNC(X) .type X,@function; .hidden X
149.25 -+#undef ALIAS
149.26 -+#define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y); .hidden GLOBAL(X)
149.27 -+#endif
149.28 -+
149.29 - #define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
149.30 - #define ENDFUNC(X) ENDFUNC0(X)
149.31 - #else
150.1 --- a/patches/gcc/3.4.4/800-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
150.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
150.3 @@ -1,66 +0,0 @@
150.4 -diff -dur gcc-3.4.4.orig/gcc/config/arm/linux-elf.h gcc-3.4.4/gcc/config/arm/linux-elf.h
150.5 ---- gcc-3.4.4.orig/gcc/config/arm/linux-elf.h 2007-02-14 17:44:27.000000000 +0100
150.6 -+++ gcc-3.4.4/gcc/config/arm/linux-elf.h 2007-02-14 17:47:32.000000000 +0100
150.7 -@@ -30,17 +30,34 @@
150.8 - /* Do not assume anything about header files. */
150.9 - #define NO_IMPLICIT_EXTERN_C
150.10 -
150.11 -+/*
150.12 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
150.13 -+ * (big endian) configurations.
150.14 -+ */
150.15 -+#if TARGET_BIG_ENDIAN_DEFAULT
150.16 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
150.17 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
150.18 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
150.19 -+#else
150.20 -+#define TARGET_ENDIAN_DEFAULT 0
150.21 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
150.22 -+#define TARGET_LINKER_EMULATION "armelf_linux"
150.23 -+#endif
150.24 -+
150.25 - /* Default is to use APCS-32 mode. */
150.26 - #undef TARGET_DEFAULT
150.27 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
150.28 -+#define TARGET_DEFAULT \
150.29 -+ ( ARM_FLAG_APCS_32 | \
150.30 -+ ARM_FLAG_MMU_TRAPS | \
150.31 -+ TARGET_ENDIAN_DEFAULT )
150.32 -
150.33 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
150.34 -
150.35 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
150.36 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
150.37 -
150.38 - #undef MULTILIB_DEFAULTS
150.39 - #define MULTILIB_DEFAULTS \
150.40 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
150.41 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
150.42 -
150.43 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
150.44 -
150.45 -@@ -94,7 +111,7 @@
150.46 - %{rdynamic:-export-dynamic} \
150.47 - %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
150.48 - -X \
150.49 -- %{mbig-endian:-EB}" \
150.50 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
150.51 - SUBTARGET_EXTRA_LINK_SPEC
150.52 -
150.53 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
150.54 -Only in gcc-3.4.4/gcc/config/arm: linux-elf.h.orig
150.55 -diff -dur gcc-3.4.4.orig/gcc/config.gcc gcc-3.4.4/gcc/config.gcc
150.56 ---- gcc-3.4.4.orig/gcc/config.gcc 2007-02-14 17:44:27.000000000 +0100
150.57 -+++ gcc-3.4.4/gcc/config.gcc 2007-02-14 17:47:32.000000000 +0100
150.58 -@@ -672,6 +672,11 @@
150.59 - ;;
150.60 - arm*-*-linux*) # ARM GNU/Linux with ELF
150.61 - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
150.62 -+ case $target in
150.63 -+ arm*b-*)
150.64 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
150.65 -+ ;;
150.66 -+ esac
150.67 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
150.68 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
150.69 - gnu_ld=yes
151.1 --- a/patches/gcc/3.4.4/800-powerpc-libc_stack_end-uclibc.patch Tue Aug 14 19:32:22 2007 +0000
151.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
151.3 @@ -1,15 +0,0 @@
151.4 ---- gcc-3.4.4/gcc/config/rs6000/linux-unwind.h.org 2005-06-23 17:50:34.000000000 -0600
151.5 -+++ gcc-3.4.4/gcc/config/rs6000/linux-unwind.h 2005-06-23 17:52:02.000000000 -0600
151.6 -@@ -32,6 +32,7 @@
151.7 - these structs elsewhere; Many fields are missing, particularly
151.8 - from the end of the structures. */
151.9 -
151.10 -+#ifndef inhibit_libc
151.11 - struct gcc_vregs
151.12 - {
151.13 - __attribute__ ((vector_size (16))) int vr[32];
151.14 -@@ -320,3 +321,4 @@
151.15 - \
151.16 - goto SUCCESS; \
151.17 - } while (0)
151.18 -+#endif
152.1 --- a/patches/gcc/3.4.4/830-gcc-bug-num-22167.patch Tue Aug 14 19:32:22 2007 +0000
152.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
152.3 @@ -1,16 +0,0 @@
152.4 -Index: gcc/gcse.c
152.5 -===================================================================
152.6 -RCS file: /cvs/gcc/gcc/gcc/gcse.c,v
152.7 -retrieving revision 1.288.2.9
152.8 -diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.288.2.9 gcse.c
152.9 ---- gcc/gcc/gcse.c 30 Oct 2004 18:02:53 -0000 1.288.2.9
152.10 -+++ gcc/gcc/gcse.c 14 Jul 2005 13:19:57 -0000
152.11 -@@ -6445,7 +6445,7 @@ hoist_code (void)
152.12 - insn_inserted_p = 0;
152.13 -
152.14 - /* These tests should be the same as the tests above. */
152.15 -- if (TEST_BIT (hoist_vbeout[bb->index], i))
152.16 -+ if (TEST_BIT (hoist_exprs[bb->index], i))
152.17 - {
152.18 - /* We've found a potentially hoistable expression, now
152.19 - we look at every block BB dominates to see if it
153.1 --- a/patches/gcc/3.4.4/900-nios2.patch Tue Aug 14 19:32:22 2007 +0000
153.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
153.3 @@ -1,10211 +0,0 @@
153.4 ---- gcc-3.4.3/gcc/Makefile.in
153.5 -+++ gcc-3.4.3-nios2/gcc/Makefile.in
153.6 -@@ -3085,7 +3085,7 @@ install-mkheaders: stmp-int-hdrs $(STMP_
153.7 - $(INSTALL_DATA) $(srcdir)/README-fixinc \
153.8 - $(DESTDIR)$(itoolsdatadir)/include/README ; \
153.9 - $(INSTALL_SCRIPT) fixinc.sh $(DESTDIR)$(itoolsdir)/fixinc.sh ; \
153.10 -- $(INSTALL_PROGRAM) fixinc/fixincl $(DESTDIR)$(itoolsdir)/fixincl ; \
153.11 -+ $(INSTALL_PROGRAM) fixinc/fixincl$(build_exeext) $(DESTDIR)$(itoolsdir)/fixincl$(build_exeext) ; \
153.12 - $(INSTALL_DATA) $(srcdir)/gsyslimits.h \
153.13 - $(DESTDIR)$(itoolsdatadir)/gsyslimits.h ; \
153.14 - else :; fi
153.15 ---- gcc-3.4.3/gcc/combine.c
153.16 -+++ gcc-3.4.3-nios2/gcc/combine.c
153.17 -@@ -4380,6 +4380,14 @@ combine_simplify_rtx (rtx x, enum machin
153.18 - mode);
153.19 - }
153.20 -
153.21 -+#ifndef __nios2__
153.22 -+/* This screws up Nios II in this test case:
153.23 -+
153.24 -+if (x & 1)
153.25 -+ return 2;
153.26 -+else
153.27 -+ return 3;
153.28 -+*/
153.29 - else if (STORE_FLAG_VALUE == 1
153.30 - && new_code == EQ && GET_MODE_CLASS (mode) == MODE_INT
153.31 - && op1 == const0_rtx
153.32 -@@ -4391,6 +4399,7 @@ combine_simplify_rtx (rtx x, enum machin
153.33 - gen_lowpart_for_combine (mode, op0),
153.34 - const1_rtx);
153.35 - }
153.36 -+#endif
153.37 -
153.38 - else if (STORE_FLAG_VALUE == 1
153.39 - && new_code == EQ && GET_MODE_CLASS (mode) == MODE_INT
153.40 ---- gcc-3.4.3/gcc/config/nios2/crti.asm
153.41 -+++ gcc-3.4.3-nios2/gcc/config/nios2/crti.asm
153.42 -@@ -0,0 +1,88 @@
153.43 -+/*
153.44 -+ Copyright (C) 2003
153.45 -+ by Jonah Graham (jgraham@altera.com)
153.46 -+
153.47 -+This file is free software; you can redistribute it and/or modify it
153.48 -+under the terms of the GNU General Public License as published by the
153.49 -+Free Software Foundation; either version 2, or (at your option) any
153.50 -+later version.
153.51 -+
153.52 -+In addition to the permissions in the GNU General Public License, the
153.53 -+Free Software Foundation gives you unlimited permission to link the
153.54 -+compiled version of this file with other programs, and to distribute
153.55 -+those programs without any restriction coming from the use of this
153.56 -+file. (The General Public License restrictions do apply in other
153.57 -+respects; for example, they cover modification of the file, and
153.58 -+distribution when not linked into another program.)
153.59 -+
153.60 -+This file is distributed in the hope that it will be useful, but
153.61 -+WITHOUT ANY WARRANTY; without even the implied warranty of
153.62 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
153.63 -+General Public License for more details.
153.64 -+
153.65 -+You should have received a copy of the GNU General Public License
153.66 -+along with this program; see the file COPYING. If not, write to
153.67 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.68 -+Boston, MA 02111-1307, USA.
153.69 -+
153.70 -+ As a special exception, if you link this library with files
153.71 -+ compiled with GCC to produce an executable, this does not cause
153.72 -+ the resulting executable to be covered by the GNU General Public License.
153.73 -+ This exception does not however invalidate any other reasons why
153.74 -+ the executable file might be covered by the GNU General Public License.
153.75 -+
153.76 -+
153.77 -+This file just make a stack frame for the contents of the .fini and
153.78 -+.init sections. Users may put any desired instructions in those
153.79 -+sections.
153.80 -+
153.81 -+
153.82 -+While technically any code can be put in the init and fini sections
153.83 -+most stuff will not work other than stuff which obeys the call frame
153.84 -+and ABI. All the call-preserved registers are saved, the call clobbered
153.85 -+registers should have been saved by the code calling init and fini.
153.86 -+
153.87 -+See crtstuff.c for an example of code that inserts itself in the
153.88 -+init and fini sections.
153.89 -+
153.90 -+See crt0.s for the code that calls init and fini.
153.91 -+*/
153.92 -+
153.93 -+ .file "crti.asm"
153.94 -+
153.95 -+ .section ".init"
153.96 -+ .align 2
153.97 -+ .global _init
153.98 -+_init:
153.99 -+ addi sp, sp, -48
153.100 -+ stw ra, 44(sp)
153.101 -+ stw r23, 40(sp)
153.102 -+ stw r22, 36(sp)
153.103 -+ stw r21, 32(sp)
153.104 -+ stw r20, 28(sp)
153.105 -+ stw r19, 24(sp)
153.106 -+ stw r18, 20(sp)
153.107 -+ stw r17, 16(sp)
153.108 -+ stw r16, 12(sp)
153.109 -+ stw fp, 8(sp)
153.110 -+ mov fp, sp
153.111 -+
153.112 -+
153.113 -+ .section ".fini"
153.114 -+ .align 2
153.115 -+ .global _fini
153.116 -+_fini:
153.117 -+ addi sp, sp, -48
153.118 -+ stw ra, 44(sp)
153.119 -+ stw r23, 40(sp)
153.120 -+ stw r22, 36(sp)
153.121 -+ stw r21, 32(sp)
153.122 -+ stw r20, 28(sp)
153.123 -+ stw r19, 24(sp)
153.124 -+ stw r18, 20(sp)
153.125 -+ stw r17, 16(sp)
153.126 -+ stw r16, 12(sp)
153.127 -+ stw fp, 8(sp)
153.128 -+ mov fp, sp
153.129 -+
153.130 -+
153.131 ---- gcc-3.4.3/gcc/config/nios2/crtn.asm
153.132 -+++ gcc-3.4.3-nios2/gcc/config/nios2/crtn.asm
153.133 -@@ -0,0 +1,70 @@
153.134 -+/*
153.135 -+ Copyright (C) 2003
153.136 -+ by Jonah Graham (jgraham@altera.com)
153.137 -+
153.138 -+This file is free software; you can redistribute it and/or modify it
153.139 -+under the terms of the GNU General Public License as published by the
153.140 -+Free Software Foundation; either version 2, or (at your option) any
153.141 -+later version.
153.142 -+
153.143 -+In addition to the permissions in the GNU General Public License, the
153.144 -+Free Software Foundation gives you unlimited permission to link the
153.145 -+compiled version of this file with other programs, and to distribute
153.146 -+those programs without any restriction coming from the use of this
153.147 -+file. (The General Public License restrictions do apply in other
153.148 -+respects; for example, they cover modification of the file, and
153.149 -+distribution when not linked into another program.)
153.150 -+
153.151 -+This file is distributed in the hope that it will be useful, but
153.152 -+WITHOUT ANY WARRANTY; without even the implied warranty of
153.153 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
153.154 -+General Public License for more details.
153.155 -+
153.156 -+You should have received a copy of the GNU General Public License
153.157 -+along with this program; see the file COPYING. If not, write to
153.158 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.159 -+Boston, MA 02111-1307, USA.
153.160 -+
153.161 -+ As a special exception, if you link this library with files
153.162 -+ compiled with GCC to produce an executable, this does not cause
153.163 -+ the resulting executable to be covered by the GNU General Public License.
153.164 -+ This exception does not however invalidate any other reasons why
153.165 -+ the executable file might be covered by the GNU General Public License.
153.166 -+
153.167 -+
153.168 -+This file just makes sure that the .fini and .init sections do in
153.169 -+fact return. Users may put any desired instructions in those sections.
153.170 -+This file is the last thing linked into any executable.
153.171 -+*/
153.172 -+ .file "crtn.asm"
153.173 -+
153.174 -+
153.175 -+
153.176 -+ .section ".init"
153.177 -+ ldw ra, 44(sp)
153.178 -+ ldw r23, 40(sp)
153.179 -+ ldw r22, 36(sp)
153.180 -+ ldw r21, 32(sp)
153.181 -+ ldw r20, 28(sp)
153.182 -+ ldw r19, 24(sp)
153.183 -+ ldw r18, 20(sp)
153.184 -+ ldw r17, 16(sp)
153.185 -+ ldw r16, 12(sp)
153.186 -+ ldw fp, 8(sp)
153.187 -+ addi sp, sp, -48
153.188 -+ ret
153.189 -+
153.190 -+ .section ".fini"
153.191 -+ ldw ra, 44(sp)
153.192 -+ ldw r23, 40(sp)
153.193 -+ ldw r22, 36(sp)
153.194 -+ ldw r21, 32(sp)
153.195 -+ ldw r20, 28(sp)
153.196 -+ ldw r19, 24(sp)
153.197 -+ ldw r18, 20(sp)
153.198 -+ ldw r17, 16(sp)
153.199 -+ ldw r16, 12(sp)
153.200 -+ ldw fp, 8(sp)
153.201 -+ addi sp, sp, -48
153.202 -+ ret
153.203 -+
153.204 ---- gcc-3.4.3/gcc/config/nios2/lib2-divmod-hi.c
153.205 -+++ gcc-3.4.3-nios2/gcc/config/nios2/lib2-divmod-hi.c
153.206 -@@ -0,0 +1,123 @@
153.207 -+
153.208 -+/* We include auto-host.h here to get HAVE_GAS_HIDDEN. This is
153.209 -+ supposedly valid even though this is a "target" file. */
153.210 -+#include "auto-host.h"
153.211 -+
153.212 -+
153.213 -+#include "tconfig.h"
153.214 -+#include "tsystem.h"
153.215 -+#include "coretypes.h"
153.216 -+#include "tm.h"
153.217 -+
153.218 -+
153.219 -+/* Don't use `fancy_abort' here even if config.h says to use it. */
153.220 -+#ifdef abort
153.221 -+#undef abort
153.222 -+#endif
153.223 -+
153.224 -+
153.225 -+#ifdef HAVE_GAS_HIDDEN
153.226 -+#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
153.227 -+#else
153.228 -+#define ATTRIBUTE_HIDDEN
153.229 -+#endif
153.230 -+
153.231 -+#include "libgcc2.h"
153.232 -+
153.233 -+extern HItype __modhi3 (HItype, HItype);
153.234 -+extern HItype __divhi3 (HItype, HItype);
153.235 -+extern HItype __umodhi3 (HItype, HItype);
153.236 -+extern HItype __udivhi3 (HItype, HItype);
153.237 -+
153.238 -+static UHItype udivmodhi4(UHItype, UHItype, word_type);
153.239 -+
153.240 -+static UHItype
153.241 -+udivmodhi4(UHItype num, UHItype den, word_type modwanted)
153.242 -+{
153.243 -+ UHItype bit = 1;
153.244 -+ UHItype res = 0;
153.245 -+
153.246 -+ while (den < num && bit && !(den & (1L<<15)))
153.247 -+ {
153.248 -+ den <<=1;
153.249 -+ bit <<=1;
153.250 -+ }
153.251 -+ while (bit)
153.252 -+ {
153.253 -+ if (num >= den)
153.254 -+ {
153.255 -+ num -= den;
153.256 -+ res |= bit;
153.257 -+ }
153.258 -+ bit >>=1;
153.259 -+ den >>=1;
153.260 -+ }
153.261 -+ if (modwanted) return num;
153.262 -+ return res;
153.263 -+}
153.264 -+
153.265 -+
153.266 -+HItype
153.267 -+__divhi3 (HItype a, HItype b)
153.268 -+{
153.269 -+ word_type neg = 0;
153.270 -+ HItype res;
153.271 -+
153.272 -+ if (a < 0)
153.273 -+ {
153.274 -+ a = -a;
153.275 -+ neg = !neg;
153.276 -+ }
153.277 -+
153.278 -+ if (b < 0)
153.279 -+ {
153.280 -+ b = -b;
153.281 -+ neg = !neg;
153.282 -+ }
153.283 -+
153.284 -+ res = udivmodhi4 (a, b, 0);
153.285 -+
153.286 -+ if (neg)
153.287 -+ res = -res;
153.288 -+
153.289 -+ return res;
153.290 -+}
153.291 -+
153.292 -+
153.293 -+HItype
153.294 -+__modhi3 (HItype a, HItype b)
153.295 -+{
153.296 -+ word_type neg = 0;
153.297 -+ HItype res;
153.298 -+
153.299 -+ if (a < 0)
153.300 -+ {
153.301 -+ a = -a;
153.302 -+ neg = 1;
153.303 -+ }
153.304 -+
153.305 -+ if (b < 0)
153.306 -+ b = -b;
153.307 -+
153.308 -+ res = udivmodhi4 (a, b, 1);
153.309 -+
153.310 -+ if (neg)
153.311 -+ res = -res;
153.312 -+
153.313 -+ return res;
153.314 -+}
153.315 -+
153.316 -+
153.317 -+HItype
153.318 -+__udivhi3 (HItype a, HItype b)
153.319 -+{
153.320 -+ return udivmodhi4 (a, b, 0);
153.321 -+}
153.322 -+
153.323 -+
153.324 -+HItype
153.325 -+__umodhi3 (HItype a, HItype b)
153.326 -+{
153.327 -+ return udivmodhi4 (a, b, 1);
153.328 -+}
153.329 -+
153.330 ---- gcc-3.4.3/gcc/config/nios2/lib2-divmod.c
153.331 -+++ gcc-3.4.3-nios2/gcc/config/nios2/lib2-divmod.c
153.332 -@@ -0,0 +1,126 @@
153.333 -+
153.334 -+/* We include auto-host.h here to get HAVE_GAS_HIDDEN. This is
153.335 -+ supposedly valid even though this is a "target" file. */
153.336 -+#include "auto-host.h"
153.337 -+
153.338 -+
153.339 -+#include "tconfig.h"
153.340 -+#include "tsystem.h"
153.341 -+#include "coretypes.h"
153.342 -+#include "tm.h"
153.343 -+
153.344 -+
153.345 -+/* Don't use `fancy_abort' here even if config.h says to use it. */
153.346 -+#ifdef abort
153.347 -+#undef abort
153.348 -+#endif
153.349 -+
153.350 -+
153.351 -+#ifdef HAVE_GAS_HIDDEN
153.352 -+#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
153.353 -+#else
153.354 -+#define ATTRIBUTE_HIDDEN
153.355 -+#endif
153.356 -+
153.357 -+#include "libgcc2.h"
153.358 -+
153.359 -+extern SItype __modsi3 (SItype, SItype);
153.360 -+extern SItype __divsi3 (SItype, SItype);
153.361 -+extern SItype __umodsi3 (SItype, SItype);
153.362 -+extern SItype __udivsi3 (SItype, SItype);
153.363 -+
153.364 -+static USItype udivmodsi4(USItype, USItype, word_type);
153.365 -+
153.366 -+/* 16-bit SI divide and modulo as used in NIOS */
153.367 -+
153.368 -+
153.369 -+static USItype
153.370 -+udivmodsi4(USItype num, USItype den, word_type modwanted)
153.371 -+{
153.372 -+ USItype bit = 1;
153.373 -+ USItype res = 0;
153.374 -+
153.375 -+ while (den < num && bit && !(den & (1L<<31)))
153.376 -+ {
153.377 -+ den <<=1;
153.378 -+ bit <<=1;
153.379 -+ }
153.380 -+ while (bit)
153.381 -+ {
153.382 -+ if (num >= den)
153.383 -+ {
153.384 -+ num -= den;
153.385 -+ res |= bit;
153.386 -+ }
153.387 -+ bit >>=1;
153.388 -+ den >>=1;
153.389 -+ }
153.390 -+ if (modwanted) return num;
153.391 -+ return res;
153.392 -+}
153.393 -+
153.394 -+
153.395 -+SItype
153.396 -+__divsi3 (SItype a, SItype b)
153.397 -+{
153.398 -+ word_type neg = 0;
153.399 -+ SItype res;
153.400 -+
153.401 -+ if (a < 0)
153.402 -+ {
153.403 -+ a = -a;
153.404 -+ neg = !neg;
153.405 -+ }
153.406 -+
153.407 -+ if (b < 0)
153.408 -+ {
153.409 -+ b = -b;
153.410 -+ neg = !neg;
153.411 -+ }
153.412 -+
153.413 -+ res = udivmodsi4 (a, b, 0);
153.414 -+
153.415 -+ if (neg)
153.416 -+ res = -res;
153.417 -+
153.418 -+ return res;
153.419 -+}
153.420 -+
153.421 -+
153.422 -+SItype
153.423 -+__modsi3 (SItype a, SItype b)
153.424 -+{
153.425 -+ word_type neg = 0;
153.426 -+ SItype res;
153.427 -+
153.428 -+ if (a < 0)
153.429 -+ {
153.430 -+ a = -a;
153.431 -+ neg = 1;
153.432 -+ }
153.433 -+
153.434 -+ if (b < 0)
153.435 -+ b = -b;
153.436 -+
153.437 -+ res = udivmodsi4 (a, b, 1);
153.438 -+
153.439 -+ if (neg)
153.440 -+ res = -res;
153.441 -+
153.442 -+ return res;
153.443 -+}
153.444 -+
153.445 -+
153.446 -+SItype
153.447 -+__udivsi3 (SItype a, SItype b)
153.448 -+{
153.449 -+ return udivmodsi4 (a, b, 0);
153.450 -+}
153.451 -+
153.452 -+
153.453 -+SItype
153.454 -+__umodsi3 (SItype a, SItype b)
153.455 -+{
153.456 -+ return udivmodsi4 (a, b, 1);
153.457 -+}
153.458 -+
153.459 ---- gcc-3.4.3/gcc/config/nios2/lib2-divtable.c
153.460 -+++ gcc-3.4.3-nios2/gcc/config/nios2/lib2-divtable.c
153.461 -@@ -0,0 +1,46 @@
153.462 -+
153.463 -+/* We include auto-host.h here to get HAVE_GAS_HIDDEN. This is
153.464 -+ supposedly valid even though this is a "target" file. */
153.465 -+#include "auto-host.h"
153.466 -+
153.467 -+
153.468 -+#include "tconfig.h"
153.469 -+#include "tsystem.h"
153.470 -+#include "coretypes.h"
153.471 -+#include "tm.h"
153.472 -+
153.473 -+
153.474 -+/* Don't use `fancy_abort' here even if config.h says to use it. */
153.475 -+#ifdef abort
153.476 -+#undef abort
153.477 -+#endif
153.478 -+
153.479 -+
153.480 -+#ifdef HAVE_GAS_HIDDEN
153.481 -+#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
153.482 -+#else
153.483 -+#define ATTRIBUTE_HIDDEN
153.484 -+#endif
153.485 -+
153.486 -+#include "libgcc2.h"
153.487 -+
153.488 -+UQItype __divsi3_table[] =
153.489 -+{
153.490 -+ 0, 0/1, 0/2, 0/3, 0/4, 0/5, 0/6, 0/7, 0/8, 0/9, 0/10, 0/11, 0/12, 0/13, 0/14, 0/15,
153.491 -+ 0, 1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15,
153.492 -+ 0, 2/1, 2/2, 2/3, 2/4, 2/5, 2/6, 2/7, 2/8, 2/9, 2/10, 2/11, 2/12, 2/13, 2/14, 2/15,
153.493 -+ 0, 3/1, 3/2, 3/3, 3/4, 3/5, 3/6, 3/7, 3/8, 3/9, 3/10, 3/11, 3/12, 3/13, 3/14, 3/15,
153.494 -+ 0, 4/1, 4/2, 4/3, 4/4, 4/5, 4/6, 4/7, 4/8, 4/9, 4/10, 4/11, 4/12, 4/13, 4/14, 4/15,
153.495 -+ 0, 5/1, 5/2, 5/3, 5/4, 5/5, 5/6, 5/7, 5/8, 5/9, 5/10, 5/11, 5/12, 5/13, 5/14, 5/15,
153.496 -+ 0, 6/1, 6/2, 6/3, 6/4, 6/5, 6/6, 6/7, 6/8, 6/9, 6/10, 6/11, 6/12, 6/13, 6/14, 6/15,
153.497 -+ 0, 7/1, 7/2, 7/3, 7/4, 7/5, 7/6, 7/7, 7/8, 7/9, 7/10, 7/11, 7/12, 7/13, 7/14, 7/15,
153.498 -+ 0, 8/1, 8/2, 8/3, 8/4, 8/5, 8/6, 8/7, 8/8, 8/9, 8/10, 8/11, 8/12, 8/13, 8/14, 8/15,
153.499 -+ 0, 9/1, 9/2, 9/3, 9/4, 9/5, 9/6, 9/7, 9/8, 9/9, 9/10, 9/11, 9/12, 9/13, 9/14, 9/15,
153.500 -+ 0, 10/1, 10/2, 10/3, 10/4, 10/5, 10/6, 10/7, 10/8, 10/9, 10/10, 10/11, 10/12, 10/13, 10/14, 10/15,
153.501 -+ 0, 11/1, 11/2, 11/3, 11/4, 11/5, 11/6, 11/7, 11/8, 11/9, 11/10, 11/11, 11/12, 11/13, 11/14, 11/15,
153.502 -+ 0, 12/1, 12/2, 12/3, 12/4, 12/5, 12/6, 12/7, 12/8, 12/9, 12/10, 12/11, 12/12, 12/13, 12/14, 12/15,
153.503 -+ 0, 13/1, 13/2, 13/3, 13/4, 13/5, 13/6, 13/7, 13/8, 13/9, 13/10, 13/11, 13/12, 13/13, 13/14, 13/15,
153.504 -+ 0, 14/1, 14/2, 14/3, 14/4, 14/5, 14/6, 14/7, 14/8, 14/9, 14/10, 14/11, 14/12, 14/13, 14/14, 14/15,
153.505 -+ 0, 15/1, 15/2, 15/3, 15/4, 15/5, 15/6, 15/7, 15/8, 15/9, 15/10, 15/11, 15/12, 15/13, 15/14, 15/15,
153.506 -+};
153.507 -+
153.508 ---- gcc-3.4.3/gcc/config/nios2/lib2-mul.c
153.509 -+++ gcc-3.4.3-nios2/gcc/config/nios2/lib2-mul.c
153.510 -@@ -0,0 +1,103 @@
153.511 -+/* while we are debugging (ie compile outside of gcc build)
153.512 -+ disable gcc specific headers */
153.513 -+#ifndef DEBUG_MULSI3
153.514 -+
153.515 -+
153.516 -+/* We include auto-host.h here to get HAVE_GAS_HIDDEN. This is
153.517 -+ supposedly valid even though this is a "target" file. */
153.518 -+#include "auto-host.h"
153.519 -+
153.520 -+
153.521 -+#include "tconfig.h"
153.522 -+#include "tsystem.h"
153.523 -+#include "coretypes.h"
153.524 -+#include "tm.h"
153.525 -+
153.526 -+
153.527 -+/* Don't use `fancy_abort' here even if config.h says to use it. */
153.528 -+#ifdef abort
153.529 -+#undef abort
153.530 -+#endif
153.531 -+
153.532 -+
153.533 -+#ifdef HAVE_GAS_HIDDEN
153.534 -+#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
153.535 -+#else
153.536 -+#define ATTRIBUTE_HIDDEN
153.537 -+#endif
153.538 -+
153.539 -+#include "libgcc2.h"
153.540 -+
153.541 -+#else
153.542 -+#define SItype int
153.543 -+#define USItype unsigned int
153.544 -+#endif
153.545 -+
153.546 -+
153.547 -+extern SItype __mulsi3 (SItype, SItype);
153.548 -+
153.549 -+SItype
153.550 -+__mulsi3 (SItype a, SItype b)
153.551 -+{
153.552 -+ SItype res = 0;
153.553 -+ USItype cnt = a;
153.554 -+
153.555 -+ while (cnt)
153.556 -+ {
153.557 -+ if (cnt & 1)
153.558 -+ {
153.559 -+ res += b;
153.560 -+ }
153.561 -+ b <<= 1;
153.562 -+ cnt >>= 1;
153.563 -+ }
153.564 -+
153.565 -+ return res;
153.566 -+}
153.567 -+/*
153.568 -+TODO: Choose best alternative implementation.
153.569 -+
153.570 -+SItype
153.571 -+__divsi3 (SItype a, SItype b)
153.572 -+{
153.573 -+ SItype res = 0;
153.574 -+ USItype cnt = 0;
153.575 -+
153.576 -+ while (cnt < 32)
153.577 -+ {
153.578 -+ if (a & (1L << cnt))
153.579 -+ {
153.580 -+ res += b;
153.581 -+ }
153.582 -+ b <<= 1;
153.583 -+ cnt++;
153.584 -+ }
153.585 -+
153.586 -+ return res;
153.587 -+}
153.588 -+*/
153.589 -+
153.590 -+
153.591 -+#ifdef DEBUG_MULSI3
153.592 -+
153.593 -+int
153.594 -+main ()
153.595 -+{
153.596 -+ int i, j;
153.597 -+ int error = 0;
153.598 -+
153.599 -+ for (i = -1000; i < 1000; i++)
153.600 -+ for (j = -1000; j < 1000; j++)
153.601 -+ {
153.602 -+ int expect = i * j;
153.603 -+ int actual = A__divsi3 (i, j);
153.604 -+ if (expect != actual)
153.605 -+ {
153.606 -+ printf ("error: %d * %d = %d not %d\n", i, j, expect, actual);
153.607 -+ error = 1;
153.608 -+ }
153.609 -+ }
153.610 -+
153.611 -+ return error;
153.612 -+}
153.613 -+#endif
153.614 ---- gcc-3.4.3/gcc/config/nios2/nios2-dp-bit.c
153.615 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2-dp-bit.c
153.616 -@@ -0,0 +1,1652 @@
153.617 -+
153.618 -+/* This is a software floating point library which can be used
153.619 -+ for targets without hardware floating point.
153.620 -+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004
153.621 -+ Free Software Foundation, Inc.
153.622 -+
153.623 -+This file is free software; you can redistribute it and/or modify it
153.624 -+under the terms of the GNU General Public License as published by the
153.625 -+Free Software Foundation; either version 2, or (at your option) any
153.626 -+later version.
153.627 -+
153.628 -+In addition to the permissions in the GNU General Public License, the
153.629 -+Free Software Foundation gives you unlimited permission to link the
153.630 -+compiled version of this file with other programs, and to distribute
153.631 -+those programs without any restriction coming from the use of this
153.632 -+file. (The General Public License restrictions do apply in other
153.633 -+respects; for example, they cover modification of the file, and
153.634 -+distribution when not linked into another program.)
153.635 -+
153.636 -+This file is distributed in the hope that it will be useful, but
153.637 -+WITHOUT ANY WARRANTY; without even the implied warranty of
153.638 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
153.639 -+General Public License for more details.
153.640 -+
153.641 -+You should have received a copy of the GNU General Public License
153.642 -+along with this program; see the file COPYING. If not, write to
153.643 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.644 -+Boston, MA 02111-1307, USA. */
153.645 -+
153.646 -+/* As a special exception, if you link this library with other files,
153.647 -+ some of which are compiled with GCC, to produce an executable,
153.648 -+ this library does not by itself cause the resulting executable
153.649 -+ to be covered by the GNU General Public License.
153.650 -+ This exception does not however invalidate any other reasons why
153.651 -+ the executable file might be covered by the GNU General Public License. */
153.652 -+
153.653 -+/* This implements IEEE 754 format arithmetic, but does not provide a
153.654 -+ mechanism for setting the rounding mode, or for generating or handling
153.655 -+ exceptions.
153.656 -+
153.657 -+ The original code by Steve Chamberlain, hacked by Mark Eichin and Jim
153.658 -+ Wilson, all of Cygnus Support. */
153.659 -+
153.660 -+/* The intended way to use this file is to make two copies, add `#define FLOAT'
153.661 -+ to one copy, then compile both copies and add them to libgcc.a. */
153.662 -+
153.663 -+#include "tconfig.h"
153.664 -+#include "coretypes.h"
153.665 -+#include "tm.h"
153.666 -+#include "config/fp-bit.h"
153.667 -+
153.668 -+/* The following macros can be defined to change the behavior of this file:
153.669 -+ FLOAT: Implement a `float', aka SFmode, fp library. If this is not
153.670 -+ defined, then this file implements a `double', aka DFmode, fp library.
153.671 -+ FLOAT_ONLY: Used with FLOAT, to implement a `float' only library, i.e.
153.672 -+ don't include float->double conversion which requires the double library.
153.673 -+ This is useful only for machines which can't support doubles, e.g. some
153.674 -+ 8-bit processors.
153.675 -+ CMPtype: Specify the type that floating point compares should return.
153.676 -+ This defaults to SItype, aka int.
153.677 -+ US_SOFTWARE_GOFAST: This makes all entry points use the same names as the
153.678 -+ US Software goFast library.
153.679 -+ _DEBUG_BITFLOAT: This makes debugging the code a little easier, by adding
153.680 -+ two integers to the FLO_union_type.
153.681 -+ NO_DENORMALS: Disable handling of denormals.
153.682 -+ NO_NANS: Disable nan and infinity handling
153.683 -+ SMALL_MACHINE: Useful when operations on QIs and HIs are faster
153.684 -+ than on an SI */
153.685 -+
153.686 -+/* We don't currently support extended floats (long doubles) on machines
153.687 -+ without hardware to deal with them.
153.688 -+
153.689 -+ These stubs are just to keep the linker from complaining about unresolved
153.690 -+ references which can be pulled in from libio & libstdc++, even if the
153.691 -+ user isn't using long doubles. However, they may generate an unresolved
153.692 -+ external to abort if abort is not used by the function, and the stubs
153.693 -+ are referenced from within libc, since libgcc goes before and after the
153.694 -+ system library. */
153.695 -+
153.696 -+#ifdef DECLARE_LIBRARY_RENAMES
153.697 -+ DECLARE_LIBRARY_RENAMES
153.698 -+#endif
153.699 -+
153.700 -+#ifdef EXTENDED_FLOAT_STUBS
153.701 -+extern void abort (void);
153.702 -+void __extendsfxf2 (void) { abort(); }
153.703 -+void __extenddfxf2 (void) { abort(); }
153.704 -+void __truncxfdf2 (void) { abort(); }
153.705 -+void __truncxfsf2 (void) { abort(); }
153.706 -+void __fixxfsi (void) { abort(); }
153.707 -+void __floatsixf (void) { abort(); }
153.708 -+void __addxf3 (void) { abort(); }
153.709 -+void __subxf3 (void) { abort(); }
153.710 -+void __mulxf3 (void) { abort(); }
153.711 -+void __divxf3 (void) { abort(); }
153.712 -+void __negxf2 (void) { abort(); }
153.713 -+void __eqxf2 (void) { abort(); }
153.714 -+void __nexf2 (void) { abort(); }
153.715 -+void __gtxf2 (void) { abort(); }
153.716 -+void __gexf2 (void) { abort(); }
153.717 -+void __lexf2 (void) { abort(); }
153.718 -+void __ltxf2 (void) { abort(); }
153.719 -+
153.720 -+void __extendsftf2 (void) { abort(); }
153.721 -+void __extenddftf2 (void) { abort(); }
153.722 -+void __trunctfdf2 (void) { abort(); }
153.723 -+void __trunctfsf2 (void) { abort(); }
153.724 -+void __fixtfsi (void) { abort(); }
153.725 -+void __floatsitf (void) { abort(); }
153.726 -+void __addtf3 (void) { abort(); }
153.727 -+void __subtf3 (void) { abort(); }
153.728 -+void __multf3 (void) { abort(); }
153.729 -+void __divtf3 (void) { abort(); }
153.730 -+void __negtf2 (void) { abort(); }
153.731 -+void __eqtf2 (void) { abort(); }
153.732 -+void __netf2 (void) { abort(); }
153.733 -+void __gttf2 (void) { abort(); }
153.734 -+void __getf2 (void) { abort(); }
153.735 -+void __letf2 (void) { abort(); }
153.736 -+void __lttf2 (void) { abort(); }
153.737 -+#else /* !EXTENDED_FLOAT_STUBS, rest of file */
153.738 -+
153.739 -+/* IEEE "special" number predicates */
153.740 -+
153.741 -+#ifdef NO_NANS
153.742 -+
153.743 -+#define nan() 0
153.744 -+#define isnan(x) 0
153.745 -+#define isinf(x) 0
153.746 -+#else
153.747 -+
153.748 -+#if defined L_thenan_sf
153.749 -+const fp_number_type __thenan_sf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.750 -+#elif defined L_thenan_df
153.751 -+const fp_number_type __thenan_df = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.752 -+#elif defined L_thenan_tf
153.753 -+const fp_number_type __thenan_tf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.754 -+#elif defined TFLOAT
153.755 -+extern const fp_number_type __thenan_tf;
153.756 -+#elif defined FLOAT
153.757 -+extern const fp_number_type __thenan_sf;
153.758 -+#else
153.759 -+extern const fp_number_type __thenan_df;
153.760 -+#endif
153.761 -+
153.762 -+INLINE
153.763 -+static fp_number_type *
153.764 -+nan (void)
153.765 -+{
153.766 -+ /* Discard the const qualifier... */
153.767 -+#ifdef TFLOAT
153.768 -+ return (fp_number_type *) (& __thenan_tf);
153.769 -+#elif defined FLOAT
153.770 -+ return (fp_number_type *) (& __thenan_sf);
153.771 -+#else
153.772 -+ return (fp_number_type *) (& __thenan_df);
153.773 -+#endif
153.774 -+}
153.775 -+
153.776 -+INLINE
153.777 -+static int
153.778 -+isnan ( fp_number_type * x)
153.779 -+{
153.780 -+ return x->class == CLASS_SNAN || x->class == CLASS_QNAN;
153.781 -+}
153.782 -+
153.783 -+INLINE
153.784 -+static int
153.785 -+isinf ( fp_number_type * x)
153.786 -+{
153.787 -+ return x->class == CLASS_INFINITY;
153.788 -+}
153.789 -+
153.790 -+#endif /* NO_NANS */
153.791 -+
153.792 -+INLINE
153.793 -+static int
153.794 -+iszero ( fp_number_type * x)
153.795 -+{
153.796 -+ return x->class == CLASS_ZERO;
153.797 -+}
153.798 -+
153.799 -+INLINE
153.800 -+static void
153.801 -+flip_sign ( fp_number_type * x)
153.802 -+{
153.803 -+ x->sign = !x->sign;
153.804 -+}
153.805 -+
153.806 -+extern FLO_type pack_d ( fp_number_type * );
153.807 -+
153.808 -+#if defined(L_pack_df) || defined(L_pack_sf) || defined(L_pack_tf)
153.809 -+FLO_type
153.810 -+pack_d ( fp_number_type * src)
153.811 -+{
153.812 -+ FLO_union_type dst;
153.813 -+ fractype fraction = src->fraction.ll; /* wasn't unsigned before? */
153.814 -+ int sign = src->sign;
153.815 -+ int exp = 0;
153.816 -+
153.817 -+ if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && (isnan (src) || isinf (src)))
153.818 -+ {
153.819 -+ /* We can't represent these values accurately. By using the
153.820 -+ largest possible magnitude, we guarantee that the conversion
153.821 -+ of infinity is at least as big as any finite number. */
153.822 -+ exp = EXPMAX;
153.823 -+ fraction = ((fractype) 1 << FRACBITS) - 1;
153.824 -+ }
153.825 -+ else if (isnan (src))
153.826 -+ {
153.827 -+ exp = EXPMAX;
153.828 -+ if (src->class == CLASS_QNAN || 1)
153.829 -+ {
153.830 -+#ifdef QUIET_NAN_NEGATED
153.831 -+ fraction |= QUIET_NAN - 1;
153.832 -+#else
153.833 -+ fraction |= QUIET_NAN;
153.834 -+#endif
153.835 -+ }
153.836 -+ }
153.837 -+ else if (isinf (src))
153.838 -+ {
153.839 -+ exp = EXPMAX;
153.840 -+ fraction = 0;
153.841 -+ }
153.842 -+ else if (iszero (src))
153.843 -+ {
153.844 -+ exp = 0;
153.845 -+ fraction = 0;
153.846 -+ }
153.847 -+ else if (fraction == 0)
153.848 -+ {
153.849 -+ exp = 0;
153.850 -+ }
153.851 -+ else
153.852 -+ {
153.853 -+ if (src->normal_exp < NORMAL_EXPMIN)
153.854 -+ {
153.855 -+#ifdef NO_DENORMALS
153.856 -+ /* Go straight to a zero representation if denormals are not
153.857 -+ supported. The denormal handling would be harmless but
153.858 -+ isn't unnecessary. */
153.859 -+ exp = 0;
153.860 -+ fraction = 0;
153.861 -+#else /* NO_DENORMALS */
153.862 -+ /* This number's exponent is too low to fit into the bits
153.863 -+ available in the number, so we'll store 0 in the exponent and
153.864 -+ shift the fraction to the right to make up for it. */
153.865 -+
153.866 -+ int shift = NORMAL_EXPMIN - src->normal_exp;
153.867 -+
153.868 -+ exp = 0;
153.869 -+
153.870 -+ if (shift > FRAC_NBITS - NGARDS)
153.871 -+ {
153.872 -+ /* No point shifting, since it's more that 64 out. */
153.873 -+ fraction = 0;
153.874 -+ }
153.875 -+ else
153.876 -+ {
153.877 -+ int lowbit = (fraction & (((fractype)1 << shift) - 1)) ? 1 : 0;
153.878 -+ fraction = (fraction >> shift) | lowbit;
153.879 -+ }
153.880 -+ if ((fraction & GARDMASK) == GARDMSB)
153.881 -+ {
153.882 -+ if ((fraction & (1 << NGARDS)))
153.883 -+ fraction += GARDROUND + 1;
153.884 -+ }
153.885 -+ else
153.886 -+ {
153.887 -+ /* Add to the guards to round up. */
153.888 -+ fraction += GARDROUND;
153.889 -+ }
153.890 -+ /* Perhaps the rounding means we now need to change the
153.891 -+ exponent, because the fraction is no longer denormal. */
153.892 -+ if (fraction >= IMPLICIT_1)
153.893 -+ {
153.894 -+ exp += 1;
153.895 -+ }
153.896 -+ fraction >>= NGARDS;
153.897 -+#endif /* NO_DENORMALS */
153.898 -+ }
153.899 -+ else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS)
153.900 -+ && src->normal_exp > EXPBIAS)
153.901 -+ {
153.902 -+ exp = EXPMAX;
153.903 -+ fraction = 0;
153.904 -+ }
153.905 -+ else
153.906 -+ {
153.907 -+ exp = src->normal_exp + EXPBIAS;
153.908 -+ if (!ROUND_TOWARDS_ZERO)
153.909 -+ {
153.910 -+ /* IF the gard bits are the all zero, but the first, then we're
153.911 -+ half way between two numbers, choose the one which makes the
153.912 -+ lsb of the answer 0. */
153.913 -+ if ((fraction & GARDMASK) == GARDMSB)
153.914 -+ {
153.915 -+ if (fraction & (1 << NGARDS))
153.916 -+ fraction += GARDROUND + 1;
153.917 -+ }
153.918 -+ else
153.919 -+ {
153.920 -+ /* Add a one to the guards to round up */
153.921 -+ fraction += GARDROUND;
153.922 -+ }
153.923 -+ if (fraction >= IMPLICIT_2)
153.924 -+ {
153.925 -+ fraction >>= 1;
153.926 -+ exp += 1;
153.927 -+ }
153.928 -+ }
153.929 -+ fraction >>= NGARDS;
153.930 -+
153.931 -+ if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp > EXPMAX)
153.932 -+ {
153.933 -+ /* Saturate on overflow. */
153.934 -+ exp = EXPMAX;
153.935 -+ fraction = ((fractype) 1 << FRACBITS) - 1;
153.936 -+ }
153.937 -+ }
153.938 -+ }
153.939 -+
153.940 -+ /* We previously used bitfields to store the number, but this doesn't
153.941 -+ handle little/big endian systems conveniently, so use shifts and
153.942 -+ masks */
153.943 -+#ifdef FLOAT_BIT_ORDER_MISMATCH
153.944 -+ dst.bits.fraction = fraction;
153.945 -+ dst.bits.exp = exp;
153.946 -+ dst.bits.sign = sign;
153.947 -+#else
153.948 -+# if defined TFLOAT && defined HALFFRACBITS
153.949 -+ {
153.950 -+ halffractype high, low, unity;
153.951 -+ int lowsign, lowexp;
153.952 -+
153.953 -+ unity = (halffractype) 1 << HALFFRACBITS;
153.954 -+
153.955 -+ /* Set HIGH to the high double's significand, masking out the implicit 1.
153.956 -+ Set LOW to the low double's full significand. */
153.957 -+ high = (fraction >> (FRACBITS - HALFFRACBITS)) & (unity - 1);
153.958 -+ low = fraction & (unity * 2 - 1);
153.959 -+
153.960 -+ /* Get the initial sign and exponent of the low double. */
153.961 -+ lowexp = exp - HALFFRACBITS - 1;
153.962 -+ lowsign = sign;
153.963 -+
153.964 -+ /* HIGH should be rounded like a normal double, making |LOW| <=
153.965 -+ 0.5 ULP of HIGH. Assume round-to-nearest. */
153.966 -+ if (exp < EXPMAX)
153.967 -+ if (low > unity || (low == unity && (high & 1) == 1))
153.968 -+ {
153.969 -+ /* Round HIGH up and adjust LOW to match. */
153.970 -+ high++;
153.971 -+ if (high == unity)
153.972 -+ {
153.973 -+ /* May make it infinite, but that's OK. */
153.974 -+ high = 0;
153.975 -+ exp++;
153.976 -+ }
153.977 -+ low = unity * 2 - low;
153.978 -+ lowsign ^= 1;
153.979 -+ }
153.980 -+
153.981 -+ high |= (halffractype) exp << HALFFRACBITS;
153.982 -+ high |= (halffractype) sign << (HALFFRACBITS + EXPBITS);
153.983 -+
153.984 -+ if (exp == EXPMAX || exp == 0 || low == 0)
153.985 -+ low = 0;
153.986 -+ else
153.987 -+ {
153.988 -+ while (lowexp > 0 && low < unity)
153.989 -+ {
153.990 -+ low <<= 1;
153.991 -+ lowexp--;
153.992 -+ }
153.993 -+
153.994 -+ if (lowexp <= 0)
153.995 -+ {
153.996 -+ halffractype roundmsb, round;
153.997 -+ int shift;
153.998 -+
153.999 -+ shift = 1 - lowexp;
153.1000 -+ roundmsb = (1 << (shift - 1));
153.1001 -+ round = low & ((roundmsb << 1) - 1);
153.1002 -+
153.1003 -+ low >>= shift;
153.1004 -+ lowexp = 0;
153.1005 -+
153.1006 -+ if (round > roundmsb || (round == roundmsb && (low & 1) == 1))
153.1007 -+ {
153.1008 -+ low++;
153.1009 -+ if (low == unity)
153.1010 -+ /* LOW rounds up to the smallest normal number. */
153.1011 -+ lowexp++;
153.1012 -+ }
153.1013 -+ }
153.1014 -+
153.1015 -+ low &= unity - 1;
153.1016 -+ low |= (halffractype) lowexp << HALFFRACBITS;
153.1017 -+ low |= (halffractype) lowsign << (HALFFRACBITS + EXPBITS);
153.1018 -+ }
153.1019 -+ dst.value_raw = ((fractype) high << HALFSHIFT) | low;
153.1020 -+ }
153.1021 -+# else
153.1022 -+ dst.value_raw = fraction & ((((fractype)1) << FRACBITS) - (fractype)1);
153.1023 -+ dst.value_raw |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << FRACBITS;
153.1024 -+ dst.value_raw |= ((fractype) (sign & 1)) << (FRACBITS | EXPBITS);
153.1025 -+# endif
153.1026 -+#endif
153.1027 -+
153.1028 -+#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
153.1029 -+#ifdef TFLOAT
153.1030 -+ {
153.1031 -+ qrtrfractype tmp1 = dst.words[0];
153.1032 -+ qrtrfractype tmp2 = dst.words[1];
153.1033 -+ dst.words[0] = dst.words[3];
153.1034 -+ dst.words[1] = dst.words[2];
153.1035 -+ dst.words[2] = tmp2;
153.1036 -+ dst.words[3] = tmp1;
153.1037 -+ }
153.1038 -+#else
153.1039 -+ {
153.1040 -+ halffractype tmp = dst.words[0];
153.1041 -+ dst.words[0] = dst.words[1];
153.1042 -+ dst.words[1] = tmp;
153.1043 -+ }
153.1044 -+#endif
153.1045 -+#endif
153.1046 -+
153.1047 -+ return dst.value;
153.1048 -+}
153.1049 -+#endif
153.1050 -+
153.1051 -+#if defined(L_unpack_df) || defined(L_unpack_sf) || defined(L_unpack_tf)
153.1052 -+void
153.1053 -+unpack_d (FLO_union_type * src, fp_number_type * dst)
153.1054 -+{
153.1055 -+ /* We previously used bitfields to store the number, but this doesn't
153.1056 -+ handle little/big endian systems conveniently, so use shifts and
153.1057 -+ masks */
153.1058 -+ fractype fraction;
153.1059 -+ int exp;
153.1060 -+ int sign;
153.1061 -+
153.1062 -+#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
153.1063 -+ FLO_union_type swapped;
153.1064 -+
153.1065 -+#ifdef TFLOAT
153.1066 -+ swapped.words[0] = src->words[3];
153.1067 -+ swapped.words[1] = src->words[2];
153.1068 -+ swapped.words[2] = src->words[1];
153.1069 -+ swapped.words[3] = src->words[0];
153.1070 -+#else
153.1071 -+ swapped.words[0] = src->words[1];
153.1072 -+ swapped.words[1] = src->words[0];
153.1073 -+#endif
153.1074 -+ src = &swapped;
153.1075 -+#endif
153.1076 -+
153.1077 -+#ifdef FLOAT_BIT_ORDER_MISMATCH
153.1078 -+ fraction = src->bits.fraction;
153.1079 -+ exp = src->bits.exp;
153.1080 -+ sign = src->bits.sign;
153.1081 -+#else
153.1082 -+# if defined TFLOAT && defined HALFFRACBITS
153.1083 -+ {
153.1084 -+ halffractype high, low;
153.1085 -+
153.1086 -+ high = src->value_raw >> HALFSHIFT;
153.1087 -+ low = src->value_raw & (((fractype)1 << HALFSHIFT) - 1);
153.1088 -+
153.1089 -+ fraction = high & ((((fractype)1) << HALFFRACBITS) - 1);
153.1090 -+ fraction <<= FRACBITS - HALFFRACBITS;
153.1091 -+ exp = ((int)(high >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
153.1092 -+ sign = ((int)(high >> (((HALFFRACBITS + EXPBITS))))) & 1;
153.1093 -+
153.1094 -+ if (exp != EXPMAX && exp != 0 && low != 0)
153.1095 -+ {
153.1096 -+ int lowexp = ((int)(low >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
153.1097 -+ int lowsign = ((int)(low >> (((HALFFRACBITS + EXPBITS))))) & 1;
153.1098 -+ int shift;
153.1099 -+ fractype xlow;
153.1100 -+
153.1101 -+ xlow = low & ((((fractype)1) << HALFFRACBITS) - 1);
153.1102 -+ if (lowexp)
153.1103 -+ xlow |= (((halffractype)1) << HALFFRACBITS);
153.1104 -+ else
153.1105 -+ lowexp = 1;
153.1106 -+ shift = (FRACBITS - HALFFRACBITS) - (exp - lowexp);
153.1107 -+ if (shift > 0)
153.1108 -+ xlow <<= shift;
153.1109 -+ else if (shift < 0)
153.1110 -+ xlow >>= -shift;
153.1111 -+ if (sign == lowsign)
153.1112 -+ fraction += xlow;
153.1113 -+ else if (fraction >= xlow)
153.1114 -+ fraction -= xlow;
153.1115 -+ else
153.1116 -+ {
153.1117 -+ /* The high part is a power of two but the full number is lower.
153.1118 -+ This code will leave the implicit 1 in FRACTION, but we'd
153.1119 -+ have added that below anyway. */
153.1120 -+ fraction = (((fractype) 1 << FRACBITS) - xlow) << 1;
153.1121 -+ exp--;
153.1122 -+ }
153.1123 -+ }
153.1124 -+ }
153.1125 -+# else
153.1126 -+ fraction = src->value_raw & ((((fractype)1) << FRACBITS) - 1);
153.1127 -+ exp = ((int)(src->value_raw >> FRACBITS)) & ((1 << EXPBITS) - 1);
153.1128 -+ sign = ((int)(src->value_raw >> (FRACBITS + EXPBITS))) & 1;
153.1129 -+# endif
153.1130 -+#endif
153.1131 -+
153.1132 -+ dst->sign = sign;
153.1133 -+ if (exp == 0)
153.1134 -+ {
153.1135 -+ /* Hmm. Looks like 0 */
153.1136 -+ if (fraction == 0
153.1137 -+#ifdef NO_DENORMALS
153.1138 -+ || 1
153.1139 -+#endif
153.1140 -+ )
153.1141 -+ {
153.1142 -+ /* tastes like zero */
153.1143 -+ dst->class = CLASS_ZERO;
153.1144 -+ }
153.1145 -+ else
153.1146 -+ {
153.1147 -+ /* Zero exponent with nonzero fraction - it's denormalized,
153.1148 -+ so there isn't a leading implicit one - we'll shift it so
153.1149 -+ it gets one. */
153.1150 -+ dst->normal_exp = exp - EXPBIAS + 1;
153.1151 -+ fraction <<= NGARDS;
153.1152 -+
153.1153 -+ dst->class = CLASS_NUMBER;
153.1154 -+#if 1
153.1155 -+ while (fraction < IMPLICIT_1)
153.1156 -+ {
153.1157 -+ fraction <<= 1;
153.1158 -+ dst->normal_exp--;
153.1159 -+ }
153.1160 -+#endif
153.1161 -+ dst->fraction.ll = fraction;
153.1162 -+ }
153.1163 -+ }
153.1164 -+ else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp == EXPMAX)
153.1165 -+ {
153.1166 -+ /* Huge exponent*/
153.1167 -+ if (fraction == 0)
153.1168 -+ {
153.1169 -+ /* Attached to a zero fraction - means infinity */
153.1170 -+ dst->class = CLASS_INFINITY;
153.1171 -+ }
153.1172 -+ else
153.1173 -+ {
153.1174 -+ /* Nonzero fraction, means nan */
153.1175 -+#ifdef QUIET_NAN_NEGATED
153.1176 -+ if ((fraction & QUIET_NAN) == 0)
153.1177 -+#else
153.1178 -+ if (fraction & QUIET_NAN)
153.1179 -+#endif
153.1180 -+ {
153.1181 -+ dst->class = CLASS_QNAN;
153.1182 -+ }
153.1183 -+ else
153.1184 -+ {
153.1185 -+ dst->class = CLASS_SNAN;
153.1186 -+ }
153.1187 -+ /* Keep the fraction part as the nan number */
153.1188 -+ dst->fraction.ll = fraction;
153.1189 -+ }
153.1190 -+ }
153.1191 -+ else
153.1192 -+ {
153.1193 -+ /* Nothing strange about this number */
153.1194 -+ dst->normal_exp = exp - EXPBIAS;
153.1195 -+ dst->class = CLASS_NUMBER;
153.1196 -+ dst->fraction.ll = (fraction << NGARDS) | IMPLICIT_1;
153.1197 -+ }
153.1198 -+}
153.1199 -+#endif /* L_unpack_df || L_unpack_sf */
153.1200 -+
153.1201 -+#if defined(L_addsub_sf) || defined(L_addsub_df) || defined(L_addsub_tf)
153.1202 -+static fp_number_type *
153.1203 -+_fpadd_parts (fp_number_type * a,
153.1204 -+ fp_number_type * b,
153.1205 -+ fp_number_type * tmp)
153.1206 -+{
153.1207 -+ intfrac tfraction;
153.1208 -+
153.1209 -+ /* Put commonly used fields in local variables. */
153.1210 -+ int a_normal_exp;
153.1211 -+ int b_normal_exp;
153.1212 -+ fractype a_fraction;
153.1213 -+ fractype b_fraction;
153.1214 -+
153.1215 -+ if (isnan (a))
153.1216 -+ {
153.1217 -+ return a;
153.1218 -+ }
153.1219 -+ if (isnan (b))
153.1220 -+ {
153.1221 -+ return b;
153.1222 -+ }
153.1223 -+ if (isinf (a))
153.1224 -+ {
153.1225 -+ /* Adding infinities with opposite signs yields a NaN. */
153.1226 -+ if (isinf (b) && a->sign != b->sign)
153.1227 -+ return nan ();
153.1228 -+ return a;
153.1229 -+ }
153.1230 -+ if (isinf (b))
153.1231 -+ {
153.1232 -+ return b;
153.1233 -+ }
153.1234 -+ if (iszero (b))
153.1235 -+ {
153.1236 -+ if (iszero (a))
153.1237 -+ {
153.1238 -+ *tmp = *a;
153.1239 -+ tmp->sign = a->sign & b->sign;
153.1240 -+ return tmp;
153.1241 -+ }
153.1242 -+ return a;
153.1243 -+ }
153.1244 -+ if (iszero (a))
153.1245 -+ {
153.1246 -+ return b;
153.1247 -+ }
153.1248 -+
153.1249 -+ /* Got two numbers. shift the smaller and increment the exponent till
153.1250 -+ they're the same */
153.1251 -+ {
153.1252 -+ int diff;
153.1253 -+
153.1254 -+ a_normal_exp = a->normal_exp;
153.1255 -+ b_normal_exp = b->normal_exp;
153.1256 -+ a_fraction = a->fraction.ll;
153.1257 -+ b_fraction = b->fraction.ll;
153.1258 -+
153.1259 -+ diff = a_normal_exp - b_normal_exp;
153.1260 -+
153.1261 -+ if (diff < 0)
153.1262 -+ diff = -diff;
153.1263 -+ if (diff < FRAC_NBITS)
153.1264 -+ {
153.1265 -+ /* ??? This does shifts one bit at a time. Optimize. */
153.1266 -+ while (a_normal_exp > b_normal_exp)
153.1267 -+ {
153.1268 -+ b_normal_exp++;
153.1269 -+ LSHIFT (b_fraction);
153.1270 -+ }
153.1271 -+ while (b_normal_exp > a_normal_exp)
153.1272 -+ {
153.1273 -+ a_normal_exp++;
153.1274 -+ LSHIFT (a_fraction);
153.1275 -+ }
153.1276 -+ }
153.1277 -+ else
153.1278 -+ {
153.1279 -+ /* Somethings's up.. choose the biggest */
153.1280 -+ if (a_normal_exp > b_normal_exp)
153.1281 -+ {
153.1282 -+ b_normal_exp = a_normal_exp;
153.1283 -+ b_fraction = 0;
153.1284 -+ }
153.1285 -+ else
153.1286 -+ {
153.1287 -+ a_normal_exp = b_normal_exp;
153.1288 -+ a_fraction = 0;
153.1289 -+ }
153.1290 -+ }
153.1291 -+ }
153.1292 -+
153.1293 -+ if (a->sign != b->sign)
153.1294 -+ {
153.1295 -+ if (a->sign)
153.1296 -+ {
153.1297 -+ tfraction = -a_fraction + b_fraction;
153.1298 -+ }
153.1299 -+ else
153.1300 -+ {
153.1301 -+ tfraction = a_fraction - b_fraction;
153.1302 -+ }
153.1303 -+ if (tfraction >= 0)
153.1304 -+ {
153.1305 -+ tmp->sign = 0;
153.1306 -+ tmp->normal_exp = a_normal_exp;
153.1307 -+ tmp->fraction.ll = tfraction;
153.1308 -+ }
153.1309 -+ else
153.1310 -+ {
153.1311 -+ tmp->sign = 1;
153.1312 -+ tmp->normal_exp = a_normal_exp;
153.1313 -+ tmp->fraction.ll = -tfraction;
153.1314 -+ }
153.1315 -+ /* and renormalize it */
153.1316 -+
153.1317 -+ while (tmp->fraction.ll < IMPLICIT_1 && tmp->fraction.ll)
153.1318 -+ {
153.1319 -+ tmp->fraction.ll <<= 1;
153.1320 -+ tmp->normal_exp--;
153.1321 -+ }
153.1322 -+ }
153.1323 -+ else
153.1324 -+ {
153.1325 -+ tmp->sign = a->sign;
153.1326 -+ tmp->normal_exp = a_normal_exp;
153.1327 -+ tmp->fraction.ll = a_fraction + b_fraction;
153.1328 -+ }
153.1329 -+ tmp->class = CLASS_NUMBER;
153.1330 -+ /* Now the fraction is added, we have to shift down to renormalize the
153.1331 -+ number */
153.1332 -+
153.1333 -+ if (tmp->fraction.ll >= IMPLICIT_2)
153.1334 -+ {
153.1335 -+ LSHIFT (tmp->fraction.ll);
153.1336 -+ tmp->normal_exp++;
153.1337 -+ }
153.1338 -+ return tmp;
153.1339 -+
153.1340 -+}
153.1341 -+
153.1342 -+FLO_type
153.1343 -+add (FLO_type arg_a, FLO_type arg_b)
153.1344 -+{
153.1345 -+ fp_number_type a;
153.1346 -+ fp_number_type b;
153.1347 -+ fp_number_type tmp;
153.1348 -+ fp_number_type *res;
153.1349 -+ FLO_union_type au, bu;
153.1350 -+
153.1351 -+ au.value = arg_a;
153.1352 -+ bu.value = arg_b;
153.1353 -+
153.1354 -+ unpack_d (&au, &a);
153.1355 -+ unpack_d (&bu, &b);
153.1356 -+
153.1357 -+ res = _fpadd_parts (&a, &b, &tmp);
153.1358 -+
153.1359 -+ return pack_d (res);
153.1360 -+}
153.1361 -+
153.1362 -+FLO_type
153.1363 -+sub (FLO_type arg_a, FLO_type arg_b)
153.1364 -+{
153.1365 -+ fp_number_type a;
153.1366 -+ fp_number_type b;
153.1367 -+ fp_number_type tmp;
153.1368 -+ fp_number_type *res;
153.1369 -+ FLO_union_type au, bu;
153.1370 -+
153.1371 -+ au.value = arg_a;
153.1372 -+ bu.value = arg_b;
153.1373 -+
153.1374 -+ unpack_d (&au, &a);
153.1375 -+ unpack_d (&bu, &b);
153.1376 -+
153.1377 -+ b.sign ^= 1;
153.1378 -+
153.1379 -+ res = _fpadd_parts (&a, &b, &tmp);
153.1380 -+
153.1381 -+ return pack_d (res);
153.1382 -+}
153.1383 -+#endif /* L_addsub_sf || L_addsub_df */
153.1384 -+
153.1385 -+#if defined(L_mul_sf) || defined(L_mul_df) || defined(L_mul_tf)
153.1386 -+static inline __attribute__ ((__always_inline__)) fp_number_type *
153.1387 -+_fpmul_parts ( fp_number_type * a,
153.1388 -+ fp_number_type * b,
153.1389 -+ fp_number_type * tmp)
153.1390 -+{
153.1391 -+ fractype low = 0;
153.1392 -+ fractype high = 0;
153.1393 -+
153.1394 -+ if (isnan (a))
153.1395 -+ {
153.1396 -+ a->sign = a->sign != b->sign;
153.1397 -+ return a;
153.1398 -+ }
153.1399 -+ if (isnan (b))
153.1400 -+ {
153.1401 -+ b->sign = a->sign != b->sign;
153.1402 -+ return b;
153.1403 -+ }
153.1404 -+ if (isinf (a))
153.1405 -+ {
153.1406 -+ if (iszero (b))
153.1407 -+ return nan ();
153.1408 -+ a->sign = a->sign != b->sign;
153.1409 -+ return a;
153.1410 -+ }
153.1411 -+ if (isinf (b))
153.1412 -+ {
153.1413 -+ if (iszero (a))
153.1414 -+ {
153.1415 -+ return nan ();
153.1416 -+ }
153.1417 -+ b->sign = a->sign != b->sign;
153.1418 -+ return b;
153.1419 -+ }
153.1420 -+ if (iszero (a))
153.1421 -+ {
153.1422 -+ a->sign = a->sign != b->sign;
153.1423 -+ return a;
153.1424 -+ }
153.1425 -+ if (iszero (b))
153.1426 -+ {
153.1427 -+ b->sign = a->sign != b->sign;
153.1428 -+ return b;
153.1429 -+ }
153.1430 -+
153.1431 -+ /* Calculate the mantissa by multiplying both numbers to get a
153.1432 -+ twice-as-wide number. */
153.1433 -+ {
153.1434 -+#if defined(NO_DI_MODE) || defined(TFLOAT)
153.1435 -+ {
153.1436 -+ fractype x = a->fraction.ll;
153.1437 -+ fractype ylow = b->fraction.ll;
153.1438 -+ fractype yhigh = 0;
153.1439 -+ int bit;
153.1440 -+
153.1441 -+ /* ??? This does multiplies one bit at a time. Optimize. */
153.1442 -+ for (bit = 0; bit < FRAC_NBITS; bit++)
153.1443 -+ {
153.1444 -+ int carry;
153.1445 -+
153.1446 -+ if (x & 1)
153.1447 -+ {
153.1448 -+ carry = (low += ylow) < ylow;
153.1449 -+ high += yhigh + carry;
153.1450 -+ }
153.1451 -+ yhigh <<= 1;
153.1452 -+ if (ylow & FRACHIGH)
153.1453 -+ {
153.1454 -+ yhigh |= 1;
153.1455 -+ }
153.1456 -+ ylow <<= 1;
153.1457 -+ x >>= 1;
153.1458 -+ }
153.1459 -+ }
153.1460 -+#elif defined(FLOAT)
153.1461 -+ /* Multiplying two USIs to get a UDI, we're safe. */
153.1462 -+ {
153.1463 -+ UDItype answer = (UDItype)a->fraction.ll * (UDItype)b->fraction.ll;
153.1464 -+
153.1465 -+ high = answer >> BITS_PER_SI;
153.1466 -+ low = answer;
153.1467 -+ }
153.1468 -+#else
153.1469 -+ /* fractype is DImode, but we need the result to be twice as wide.
153.1470 -+ Assuming a widening multiply from DImode to TImode is not
153.1471 -+ available, build one by hand. */
153.1472 -+ {
153.1473 -+ USItype nl = a->fraction.ll;
153.1474 -+ USItype nh = a->fraction.ll >> BITS_PER_SI;
153.1475 -+ USItype ml = b->fraction.ll;
153.1476 -+ USItype mh = b->fraction.ll >> BITS_PER_SI;
153.1477 -+ UDItype pp_ll = (UDItype) ml * nl;
153.1478 -+ UDItype pp_hl = (UDItype) mh * nl;
153.1479 -+ UDItype pp_lh = (UDItype) ml * nh;
153.1480 -+ UDItype pp_hh = (UDItype) mh * nh;
153.1481 -+ UDItype res2 = 0;
153.1482 -+ UDItype res0 = 0;
153.1483 -+ UDItype ps_hh__ = pp_hl + pp_lh;
153.1484 -+ if (ps_hh__ < pp_hl)
153.1485 -+ res2 += (UDItype)1 << BITS_PER_SI;
153.1486 -+ pp_hl = (UDItype)(USItype)ps_hh__ << BITS_PER_SI;
153.1487 -+ res0 = pp_ll + pp_hl;
153.1488 -+ if (res0 < pp_ll)
153.1489 -+ res2++;
153.1490 -+ res2 += (ps_hh__ >> BITS_PER_SI) + pp_hh;
153.1491 -+ high = res2;
153.1492 -+ low = res0;
153.1493 -+ }
153.1494 -+#endif
153.1495 -+ }
153.1496 -+
153.1497 -+ tmp->normal_exp = a->normal_exp + b->normal_exp
153.1498 -+ + FRAC_NBITS - (FRACBITS + NGARDS);
153.1499 -+ tmp->sign = a->sign != b->sign;
153.1500 -+ while (high >= IMPLICIT_2)
153.1501 -+ {
153.1502 -+ tmp->normal_exp++;
153.1503 -+ if (high & 1)
153.1504 -+ {
153.1505 -+ low >>= 1;
153.1506 -+ low |= FRACHIGH;
153.1507 -+ }
153.1508 -+ high >>= 1;
153.1509 -+ }
153.1510 -+ while (high < IMPLICIT_1)
153.1511 -+ {
153.1512 -+ tmp->normal_exp--;
153.1513 -+
153.1514 -+ high <<= 1;
153.1515 -+ if (low & FRACHIGH)
153.1516 -+ high |= 1;
153.1517 -+ low <<= 1;
153.1518 -+ }
153.1519 -+ /* rounding is tricky. if we only round if it won't make us round later. */
153.1520 -+#if 0
153.1521 -+ if (low & FRACHIGH2)
153.1522 -+ {
153.1523 -+ if (((high & GARDMASK) != GARDMSB)
153.1524 -+ && (((high + 1) & GARDMASK) == GARDMSB))
153.1525 -+ {
153.1526 -+ /* don't round, it gets done again later. */
153.1527 -+ }
153.1528 -+ else
153.1529 -+ {
153.1530 -+ high++;
153.1531 -+ }
153.1532 -+ }
153.1533 -+#endif
153.1534 -+ if (!ROUND_TOWARDS_ZERO && (high & GARDMASK) == GARDMSB)
153.1535 -+ {
153.1536 -+ if (high & (1 << NGARDS))
153.1537 -+ {
153.1538 -+ /* half way, so round to even */
153.1539 -+ high += GARDROUND + 1;
153.1540 -+ }
153.1541 -+ else if (low)
153.1542 -+ {
153.1543 -+ /* but we really weren't half way */
153.1544 -+ high += GARDROUND + 1;
153.1545 -+ }
153.1546 -+ }
153.1547 -+ tmp->fraction.ll = high;
153.1548 -+ tmp->class = CLASS_NUMBER;
153.1549 -+ return tmp;
153.1550 -+}
153.1551 -+
153.1552 -+FLO_type
153.1553 -+multiply (FLO_type arg_a, FLO_type arg_b)
153.1554 -+{
153.1555 -+ fp_number_type a;
153.1556 -+ fp_number_type b;
153.1557 -+ fp_number_type tmp;
153.1558 -+ fp_number_type *res;
153.1559 -+ FLO_union_type au, bu;
153.1560 -+
153.1561 -+ au.value = arg_a;
153.1562 -+ bu.value = arg_b;
153.1563 -+
153.1564 -+ unpack_d (&au, &a);
153.1565 -+ unpack_d (&bu, &b);
153.1566 -+
153.1567 -+ res = _fpmul_parts (&a, &b, &tmp);
153.1568 -+
153.1569 -+ return pack_d (res);
153.1570 -+}
153.1571 -+#endif /* L_mul_sf || L_mul_df */
153.1572 -+
153.1573 -+#if defined(L_div_sf) || defined(L_div_df) || defined(L_div_tf)
153.1574 -+static inline __attribute__ ((__always_inline__)) fp_number_type *
153.1575 -+_fpdiv_parts (fp_number_type * a,
153.1576 -+ fp_number_type * b)
153.1577 -+{
153.1578 -+ fractype bit;
153.1579 -+ fractype numerator;
153.1580 -+ fractype denominator;
153.1581 -+ fractype quotient;
153.1582 -+
153.1583 -+ if (isnan (a))
153.1584 -+ {
153.1585 -+ return a;
153.1586 -+ }
153.1587 -+ if (isnan (b))
153.1588 -+ {
153.1589 -+ return b;
153.1590 -+ }
153.1591 -+
153.1592 -+ a->sign = a->sign ^ b->sign;
153.1593 -+
153.1594 -+ if (isinf (a) || iszero (a))
153.1595 -+ {
153.1596 -+ if (a->class == b->class)
153.1597 -+ return nan ();
153.1598 -+ return a;
153.1599 -+ }
153.1600 -+
153.1601 -+ if (isinf (b))
153.1602 -+ {
153.1603 -+ a->fraction.ll = 0;
153.1604 -+ a->normal_exp = 0;
153.1605 -+ return a;
153.1606 -+ }
153.1607 -+ if (iszero (b))
153.1608 -+ {
153.1609 -+ a->class = CLASS_INFINITY;
153.1610 -+ return a;
153.1611 -+ }
153.1612 -+
153.1613 -+ /* Calculate the mantissa by multiplying both 64bit numbers to get a
153.1614 -+ 128 bit number */
153.1615 -+ {
153.1616 -+ /* quotient =
153.1617 -+ ( numerator / denominator) * 2^(numerator exponent - denominator exponent)
153.1618 -+ */
153.1619 -+
153.1620 -+ a->normal_exp = a->normal_exp - b->normal_exp;
153.1621 -+ numerator = a->fraction.ll;
153.1622 -+ denominator = b->fraction.ll;
153.1623 -+
153.1624 -+ if (numerator < denominator)
153.1625 -+ {
153.1626 -+ /* Fraction will be less than 1.0 */
153.1627 -+ numerator *= 2;
153.1628 -+ a->normal_exp--;
153.1629 -+ }
153.1630 -+ bit = IMPLICIT_1;
153.1631 -+ quotient = 0;
153.1632 -+ /* ??? Does divide one bit at a time. Optimize. */
153.1633 -+ while (bit)
153.1634 -+ {
153.1635 -+ if (numerator >= denominator)
153.1636 -+ {
153.1637 -+ quotient |= bit;
153.1638 -+ numerator -= denominator;
153.1639 -+ }
153.1640 -+ bit >>= 1;
153.1641 -+ numerator *= 2;
153.1642 -+ }
153.1643 -+
153.1644 -+ if (!ROUND_TOWARDS_ZERO && (quotient & GARDMASK) == GARDMSB)
153.1645 -+ {
153.1646 -+ if (quotient & (1 << NGARDS))
153.1647 -+ {
153.1648 -+ /* half way, so round to even */
153.1649 -+ quotient += GARDROUND + 1;
153.1650 -+ }
153.1651 -+ else if (numerator)
153.1652 -+ {
153.1653 -+ /* but we really weren't half way, more bits exist */
153.1654 -+ quotient += GARDROUND + 1;
153.1655 -+ }
153.1656 -+ }
153.1657 -+
153.1658 -+ a->fraction.ll = quotient;
153.1659 -+ return (a);
153.1660 -+ }
153.1661 -+}
153.1662 -+
153.1663 -+FLO_type
153.1664 -+divide (FLO_type arg_a, FLO_type arg_b)
153.1665 -+{
153.1666 -+ fp_number_type a;
153.1667 -+ fp_number_type b;
153.1668 -+ fp_number_type *res;
153.1669 -+ FLO_union_type au, bu;
153.1670 -+
153.1671 -+ au.value = arg_a;
153.1672 -+ bu.value = arg_b;
153.1673 -+
153.1674 -+ unpack_d (&au, &a);
153.1675 -+ unpack_d (&bu, &b);
153.1676 -+
153.1677 -+ res = _fpdiv_parts (&a, &b);
153.1678 -+
153.1679 -+ return pack_d (res);
153.1680 -+}
153.1681 -+#endif /* L_div_sf || L_div_df */
153.1682 -+
153.1683 -+#if defined(L_fpcmp_parts_sf) || defined(L_fpcmp_parts_df) \
153.1684 -+ || defined(L_fpcmp_parts_tf)
153.1685 -+/* according to the demo, fpcmp returns a comparison with 0... thus
153.1686 -+ a<b -> -1
153.1687 -+ a==b -> 0
153.1688 -+ a>b -> +1
153.1689 -+ */
153.1690 -+
153.1691 -+int
153.1692 -+__fpcmp_parts (fp_number_type * a, fp_number_type * b)
153.1693 -+{
153.1694 -+#if 0
153.1695 -+ /* either nan -> unordered. Must be checked outside of this routine. */
153.1696 -+ if (isnan (a) && isnan (b))
153.1697 -+ {
153.1698 -+ return 1; /* still unordered! */
153.1699 -+ }
153.1700 -+#endif
153.1701 -+
153.1702 -+ if (isnan (a) || isnan (b))
153.1703 -+ {
153.1704 -+ return 1; /* how to indicate unordered compare? */
153.1705 -+ }
153.1706 -+ if (isinf (a) && isinf (b))
153.1707 -+ {
153.1708 -+ /* +inf > -inf, but +inf != +inf */
153.1709 -+ /* b \a| +inf(0)| -inf(1)
153.1710 -+ ______\+--------+--------
153.1711 -+ +inf(0)| a==b(0)| a<b(-1)
153.1712 -+ -------+--------+--------
153.1713 -+ -inf(1)| a>b(1) | a==b(0)
153.1714 -+ -------+--------+--------
153.1715 -+ So since unordered must be nonzero, just line up the columns...
153.1716 -+ */
153.1717 -+ return b->sign - a->sign;
153.1718 -+ }
153.1719 -+ /* but not both... */
153.1720 -+ if (isinf (a))
153.1721 -+ {
153.1722 -+ return a->sign ? -1 : 1;
153.1723 -+ }
153.1724 -+ if (isinf (b))
153.1725 -+ {
153.1726 -+ return b->sign ? 1 : -1;
153.1727 -+ }
153.1728 -+ if (iszero (a) && iszero (b))
153.1729 -+ {
153.1730 -+ return 0;
153.1731 -+ }
153.1732 -+ if (iszero (a))
153.1733 -+ {
153.1734 -+ return b->sign ? 1 : -1;
153.1735 -+ }
153.1736 -+ if (iszero (b))
153.1737 -+ {
153.1738 -+ return a->sign ? -1 : 1;
153.1739 -+ }
153.1740 -+ /* now both are "normal". */
153.1741 -+ if (a->sign != b->sign)
153.1742 -+ {
153.1743 -+ /* opposite signs */
153.1744 -+ return a->sign ? -1 : 1;
153.1745 -+ }
153.1746 -+ /* same sign; exponents? */
153.1747 -+ if (a->normal_exp > b->normal_exp)
153.1748 -+ {
153.1749 -+ return a->sign ? -1 : 1;
153.1750 -+ }
153.1751 -+ if (a->normal_exp < b->normal_exp)
153.1752 -+ {
153.1753 -+ return a->sign ? 1 : -1;
153.1754 -+ }
153.1755 -+ /* same exponents; check size. */
153.1756 -+ if (a->fraction.ll > b->fraction.ll)
153.1757 -+ {
153.1758 -+ return a->sign ? -1 : 1;
153.1759 -+ }
153.1760 -+ if (a->fraction.ll < b->fraction.ll)
153.1761 -+ {
153.1762 -+ return a->sign ? 1 : -1;
153.1763 -+ }
153.1764 -+ /* after all that, they're equal. */
153.1765 -+ return 0;
153.1766 -+}
153.1767 -+#endif
153.1768 -+
153.1769 -+#if defined(L_compare_sf) || defined(L_compare_df) || defined(L_compoare_tf)
153.1770 -+CMPtype
153.1771 -+compare (FLO_type arg_a, FLO_type arg_b)
153.1772 -+{
153.1773 -+ fp_number_type a;
153.1774 -+ fp_number_type b;
153.1775 -+ FLO_union_type au, bu;
153.1776 -+
153.1777 -+ au.value = arg_a;
153.1778 -+ bu.value = arg_b;
153.1779 -+
153.1780 -+ unpack_d (&au, &a);
153.1781 -+ unpack_d (&bu, &b);
153.1782 -+
153.1783 -+ return __fpcmp_parts (&a, &b);
153.1784 -+}
153.1785 -+#endif /* L_compare_sf || L_compare_df */
153.1786 -+
153.1787 -+#ifndef US_SOFTWARE_GOFAST
153.1788 -+
153.1789 -+/* These should be optimized for their specific tasks someday. */
153.1790 -+
153.1791 -+#if defined(L_eq_sf) || defined(L_eq_df) || defined(L_eq_tf)
153.1792 -+CMPtype
153.1793 -+_eq_f2 (FLO_type arg_a, FLO_type arg_b)
153.1794 -+{
153.1795 -+ fp_number_type a;
153.1796 -+ fp_number_type b;
153.1797 -+ FLO_union_type au, bu;
153.1798 -+
153.1799 -+ au.value = arg_a;
153.1800 -+ bu.value = arg_b;
153.1801 -+
153.1802 -+ unpack_d (&au, &a);
153.1803 -+ unpack_d (&bu, &b);
153.1804 -+
153.1805 -+ if (isnan (&a) || isnan (&b))
153.1806 -+ return 1; /* false, truth == 0 */
153.1807 -+
153.1808 -+ return __fpcmp_parts (&a, &b) ;
153.1809 -+}
153.1810 -+#endif /* L_eq_sf || L_eq_df */
153.1811 -+
153.1812 -+#if defined(L_ne_sf) || defined(L_ne_df) || defined(L_ne_tf)
153.1813 -+CMPtype
153.1814 -+_ne_f2 (FLO_type arg_a, FLO_type arg_b)
153.1815 -+{
153.1816 -+ fp_number_type a;
153.1817 -+ fp_number_type b;
153.1818 -+ FLO_union_type au, bu;
153.1819 -+
153.1820 -+ au.value = arg_a;
153.1821 -+ bu.value = arg_b;
153.1822 -+
153.1823 -+ unpack_d (&au, &a);
153.1824 -+ unpack_d (&bu, &b);
153.1825 -+
153.1826 -+ if (isnan (&a) || isnan (&b))
153.1827 -+ return 1; /* true, truth != 0 */
153.1828 -+
153.1829 -+ return __fpcmp_parts (&a, &b) ;
153.1830 -+}
153.1831 -+#endif /* L_ne_sf || L_ne_df */
153.1832 -+
153.1833 -+#if defined(L_gt_sf) || defined(L_gt_df) || defined(L_gt_tf)
153.1834 -+CMPtype
153.1835 -+_gt_f2 (FLO_type arg_a, FLO_type arg_b)
153.1836 -+{
153.1837 -+ fp_number_type a;
153.1838 -+ fp_number_type b;
153.1839 -+ FLO_union_type au, bu;
153.1840 -+
153.1841 -+ au.value = arg_a;
153.1842 -+ bu.value = arg_b;
153.1843 -+
153.1844 -+ unpack_d (&au, &a);
153.1845 -+ unpack_d (&bu, &b);
153.1846 -+
153.1847 -+ if (isnan (&a) || isnan (&b))
153.1848 -+ return -1; /* false, truth > 0 */
153.1849 -+
153.1850 -+ return __fpcmp_parts (&a, &b);
153.1851 -+}
153.1852 -+#endif /* L_gt_sf || L_gt_df */
153.1853 -+
153.1854 -+#if defined(L_ge_sf) || defined(L_ge_df) || defined(L_ge_tf)
153.1855 -+CMPtype
153.1856 -+_ge_f2 (FLO_type arg_a, FLO_type arg_b)
153.1857 -+{
153.1858 -+ fp_number_type a;
153.1859 -+ fp_number_type b;
153.1860 -+ FLO_union_type au, bu;
153.1861 -+
153.1862 -+ au.value = arg_a;
153.1863 -+ bu.value = arg_b;
153.1864 -+
153.1865 -+ unpack_d (&au, &a);
153.1866 -+ unpack_d (&bu, &b);
153.1867 -+
153.1868 -+ if (isnan (&a) || isnan (&b))
153.1869 -+ return -1; /* false, truth >= 0 */
153.1870 -+ return __fpcmp_parts (&a, &b) ;
153.1871 -+}
153.1872 -+#endif /* L_ge_sf || L_ge_df */
153.1873 -+
153.1874 -+#if defined(L_lt_sf) || defined(L_lt_df) || defined(L_lt_tf)
153.1875 -+CMPtype
153.1876 -+_lt_f2 (FLO_type arg_a, FLO_type arg_b)
153.1877 -+{
153.1878 -+ fp_number_type a;
153.1879 -+ fp_number_type b;
153.1880 -+ FLO_union_type au, bu;
153.1881 -+
153.1882 -+ au.value = arg_a;
153.1883 -+ bu.value = arg_b;
153.1884 -+
153.1885 -+ unpack_d (&au, &a);
153.1886 -+ unpack_d (&bu, &b);
153.1887 -+
153.1888 -+ if (isnan (&a) || isnan (&b))
153.1889 -+ return 1; /* false, truth < 0 */
153.1890 -+
153.1891 -+ return __fpcmp_parts (&a, &b);
153.1892 -+}
153.1893 -+#endif /* L_lt_sf || L_lt_df */
153.1894 -+
153.1895 -+#if defined(L_le_sf) || defined(L_le_df) || defined(L_le_tf)
153.1896 -+CMPtype
153.1897 -+_le_f2 (FLO_type arg_a, FLO_type arg_b)
153.1898 -+{
153.1899 -+ fp_number_type a;
153.1900 -+ fp_number_type b;
153.1901 -+ FLO_union_type au, bu;
153.1902 -+
153.1903 -+ au.value = arg_a;
153.1904 -+ bu.value = arg_b;
153.1905 -+
153.1906 -+ unpack_d (&au, &a);
153.1907 -+ unpack_d (&bu, &b);
153.1908 -+
153.1909 -+ if (isnan (&a) || isnan (&b))
153.1910 -+ return 1; /* false, truth <= 0 */
153.1911 -+
153.1912 -+ return __fpcmp_parts (&a, &b) ;
153.1913 -+}
153.1914 -+#endif /* L_le_sf || L_le_df */
153.1915 -+
153.1916 -+#endif /* ! US_SOFTWARE_GOFAST */
153.1917 -+
153.1918 -+#if defined(L_unord_sf) || defined(L_unord_df) || defined(L_unord_tf)
153.1919 -+CMPtype
153.1920 -+_unord_f2 (FLO_type arg_a, FLO_type arg_b)
153.1921 -+{
153.1922 -+ fp_number_type a;
153.1923 -+ fp_number_type b;
153.1924 -+ FLO_union_type au, bu;
153.1925 -+
153.1926 -+ au.value = arg_a;
153.1927 -+ bu.value = arg_b;
153.1928 -+
153.1929 -+ unpack_d (&au, &a);
153.1930 -+ unpack_d (&bu, &b);
153.1931 -+
153.1932 -+ return (isnan (&a) || isnan (&b));
153.1933 -+}
153.1934 -+#endif /* L_unord_sf || L_unord_df */
153.1935 -+
153.1936 -+#if defined(L_si_to_sf) || defined(L_si_to_df) || defined(L_si_to_tf)
153.1937 -+FLO_type
153.1938 -+si_to_float (SItype arg_a)
153.1939 -+{
153.1940 -+ fp_number_type in;
153.1941 -+
153.1942 -+ in.class = CLASS_NUMBER;
153.1943 -+ in.sign = arg_a < 0;
153.1944 -+ if (!arg_a)
153.1945 -+ {
153.1946 -+ in.class = CLASS_ZERO;
153.1947 -+ }
153.1948 -+ else
153.1949 -+ {
153.1950 -+ in.normal_exp = FRACBITS + NGARDS;
153.1951 -+ if (in.sign)
153.1952 -+ {
153.1953 -+ /* Special case for minint, since there is no +ve integer
153.1954 -+ representation for it */
153.1955 -+ if (arg_a == (- MAX_SI_INT - 1))
153.1956 -+ {
153.1957 -+ return (FLO_type)(- MAX_SI_INT - 1);
153.1958 -+ }
153.1959 -+ in.fraction.ll = (-arg_a);
153.1960 -+ }
153.1961 -+ else
153.1962 -+ in.fraction.ll = arg_a;
153.1963 -+
153.1964 -+ while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
153.1965 -+ {
153.1966 -+ in.fraction.ll <<= 1;
153.1967 -+ in.normal_exp -= 1;
153.1968 -+ }
153.1969 -+ }
153.1970 -+ return pack_d (&in);
153.1971 -+}
153.1972 -+#endif /* L_si_to_sf || L_si_to_df */
153.1973 -+
153.1974 -+#if defined(L_usi_to_sf) || defined(L_usi_to_df) || defined(L_usi_to_tf)
153.1975 -+FLO_type
153.1976 -+usi_to_float (USItype arg_a)
153.1977 -+{
153.1978 -+ fp_number_type in;
153.1979 -+
153.1980 -+ in.sign = 0;
153.1981 -+ if (!arg_a)
153.1982 -+ {
153.1983 -+ in.class = CLASS_ZERO;
153.1984 -+ }
153.1985 -+ else
153.1986 -+ {
153.1987 -+ in.class = CLASS_NUMBER;
153.1988 -+ in.normal_exp = FRACBITS + NGARDS;
153.1989 -+ in.fraction.ll = arg_a;
153.1990 -+
153.1991 -+ while (in.fraction.ll > ((fractype)1 << (FRACBITS + NGARDS)))
153.1992 -+ {
153.1993 -+ in.fraction.ll >>= 1;
153.1994 -+ in.normal_exp += 1;
153.1995 -+ }
153.1996 -+ while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
153.1997 -+ {
153.1998 -+ in.fraction.ll <<= 1;
153.1999 -+ in.normal_exp -= 1;
153.2000 -+ }
153.2001 -+ }
153.2002 -+ return pack_d (&in);
153.2003 -+}
153.2004 -+#endif
153.2005 -+
153.2006 -+#if defined(L_sf_to_si) || defined(L_df_to_si) || defined(L_tf_to_si)
153.2007 -+SItype
153.2008 -+float_to_si (FLO_type arg_a)
153.2009 -+{
153.2010 -+ fp_number_type a;
153.2011 -+ SItype tmp;
153.2012 -+ FLO_union_type au;
153.2013 -+
153.2014 -+ au.value = arg_a;
153.2015 -+ unpack_d (&au, &a);
153.2016 -+
153.2017 -+ if (iszero (&a))
153.2018 -+ return 0;
153.2019 -+ if (isnan (&a))
153.2020 -+ return 0;
153.2021 -+ /* get reasonable MAX_SI_INT... */
153.2022 -+ if (isinf (&a))
153.2023 -+ return a.sign ? (-MAX_SI_INT)-1 : MAX_SI_INT;
153.2024 -+ /* it is a number, but a small one */
153.2025 -+ if (a.normal_exp < 0)
153.2026 -+ return 0;
153.2027 -+ if (a.normal_exp > BITS_PER_SI - 2)
153.2028 -+ return a.sign ? (-MAX_SI_INT)-1 : MAX_SI_INT;
153.2029 -+ tmp = a.fraction.ll >> ((FRACBITS + NGARDS) - a.normal_exp);
153.2030 -+ return a.sign ? (-tmp) : (tmp);
153.2031 -+}
153.2032 -+#endif /* L_sf_to_si || L_df_to_si */
153.2033 -+
153.2034 -+#if defined(L_sf_to_usi) || defined(L_df_to_usi) || defined(L_tf_to_usi)
153.2035 -+#if defined US_SOFTWARE_GOFAST || defined(L_tf_to_usi)
153.2036 -+/* While libgcc2.c defines its own __fixunssfsi and __fixunsdfsi routines,
153.2037 -+ we also define them for GOFAST because the ones in libgcc2.c have the
153.2038 -+ wrong names and I'd rather define these here and keep GOFAST CYG-LOC's
153.2039 -+ out of libgcc2.c. We can't define these here if not GOFAST because then
153.2040 -+ there'd be duplicate copies. */
153.2041 -+
153.2042 -+USItype
153.2043 -+float_to_usi (FLO_type arg_a)
153.2044 -+{
153.2045 -+ fp_number_type a;
153.2046 -+ FLO_union_type au;
153.2047 -+
153.2048 -+ au.value = arg_a;
153.2049 -+ unpack_d (&au, &a);
153.2050 -+
153.2051 -+ if (iszero (&a))
153.2052 -+ return 0;
153.2053 -+ if (isnan (&a))
153.2054 -+ return 0;
153.2055 -+ /* it is a negative number */
153.2056 -+ if (a.sign)
153.2057 -+ return 0;
153.2058 -+ /* get reasonable MAX_USI_INT... */
153.2059 -+ if (isinf (&a))
153.2060 -+ return MAX_USI_INT;
153.2061 -+ /* it is a number, but a small one */
153.2062 -+ if (a.normal_exp < 0)
153.2063 -+ return 0;
153.2064 -+ if (a.normal_exp > BITS_PER_SI - 1)
153.2065 -+ return MAX_USI_INT;
153.2066 -+ else if (a.normal_exp > (FRACBITS + NGARDS))
153.2067 -+ return a.fraction.ll << (a.normal_exp - (FRACBITS + NGARDS));
153.2068 -+ else
153.2069 -+ return a.fraction.ll >> ((FRACBITS + NGARDS) - a.normal_exp);
153.2070 -+}
153.2071 -+#endif /* US_SOFTWARE_GOFAST */
153.2072 -+#endif /* L_sf_to_usi || L_df_to_usi */
153.2073 -+
153.2074 -+#if defined(L_negate_sf) || defined(L_negate_df) || defined(L_negate_tf)
153.2075 -+FLO_type
153.2076 -+negate (FLO_type arg_a)
153.2077 -+{
153.2078 -+ fp_number_type a;
153.2079 -+ FLO_union_type au;
153.2080 -+
153.2081 -+ au.value = arg_a;
153.2082 -+ unpack_d (&au, &a);
153.2083 -+
153.2084 -+ flip_sign (&a);
153.2085 -+ return pack_d (&a);
153.2086 -+}
153.2087 -+#endif /* L_negate_sf || L_negate_df */
153.2088 -+
153.2089 -+#ifdef FLOAT
153.2090 -+
153.2091 -+#if defined(L_make_sf)
153.2092 -+SFtype
153.2093 -+__make_fp(fp_class_type class,
153.2094 -+ unsigned int sign,
153.2095 -+ int exp,
153.2096 -+ USItype frac)
153.2097 -+{
153.2098 -+ fp_number_type in;
153.2099 -+
153.2100 -+ in.class = class;
153.2101 -+ in.sign = sign;
153.2102 -+ in.normal_exp = exp;
153.2103 -+ in.fraction.ll = frac;
153.2104 -+ return pack_d (&in);
153.2105 -+}
153.2106 -+#endif /* L_make_sf */
153.2107 -+
153.2108 -+#ifndef FLOAT_ONLY
153.2109 -+
153.2110 -+/* This enables one to build an fp library that supports float but not double.
153.2111 -+ Otherwise, we would get an undefined reference to __make_dp.
153.2112 -+ This is needed for some 8-bit ports that can't handle well values that
153.2113 -+ are 8-bytes in size, so we just don't support double for them at all. */
153.2114 -+
153.2115 -+#if defined(L_sf_to_df)
153.2116 -+DFtype
153.2117 -+sf_to_df (SFtype arg_a)
153.2118 -+{
153.2119 -+ fp_number_type in;
153.2120 -+ FLO_union_type au;
153.2121 -+
153.2122 -+ au.value = arg_a;
153.2123 -+ unpack_d (&au, &in);
153.2124 -+
153.2125 -+ return __make_dp (in.class, in.sign, in.normal_exp,
153.2126 -+ ((UDItype) in.fraction.ll) << F_D_BITOFF);
153.2127 -+}
153.2128 -+#endif /* L_sf_to_df */
153.2129 -+
153.2130 -+#if defined(L_sf_to_tf) && defined(TMODES)
153.2131 -+TFtype
153.2132 -+sf_to_tf (SFtype arg_a)
153.2133 -+{
153.2134 -+ fp_number_type in;
153.2135 -+ FLO_union_type au;
153.2136 -+
153.2137 -+ au.value = arg_a;
153.2138 -+ unpack_d (&au, &in);
153.2139 -+
153.2140 -+ return __make_tp (in.class, in.sign, in.normal_exp,
153.2141 -+ ((UTItype) in.fraction.ll) << F_T_BITOFF);
153.2142 -+}
153.2143 -+#endif /* L_sf_to_df */
153.2144 -+
153.2145 -+#endif /* ! FLOAT_ONLY */
153.2146 -+#endif /* FLOAT */
153.2147 -+
153.2148 -+#ifndef FLOAT
153.2149 -+
153.2150 -+extern SFtype __make_fp (fp_class_type, unsigned int, int, USItype);
153.2151 -+
153.2152 -+#if defined(L_make_df)
153.2153 -+DFtype
153.2154 -+__make_dp (fp_class_type class, unsigned int sign, int exp, UDItype frac)
153.2155 -+{
153.2156 -+ fp_number_type in;
153.2157 -+
153.2158 -+ in.class = class;
153.2159 -+ in.sign = sign;
153.2160 -+ in.normal_exp = exp;
153.2161 -+ in.fraction.ll = frac;
153.2162 -+ return pack_d (&in);
153.2163 -+}
153.2164 -+#endif /* L_make_df */
153.2165 -+
153.2166 -+#if defined(L_df_to_sf)
153.2167 -+SFtype
153.2168 -+df_to_sf (DFtype arg_a)
153.2169 -+{
153.2170 -+ fp_number_type in;
153.2171 -+ USItype sffrac;
153.2172 -+ FLO_union_type au;
153.2173 -+
153.2174 -+ au.value = arg_a;
153.2175 -+ unpack_d (&au, &in);
153.2176 -+
153.2177 -+ sffrac = in.fraction.ll >> F_D_BITOFF;
153.2178 -+
153.2179 -+ /* We set the lowest guard bit in SFFRAC if we discarded any non
153.2180 -+ zero bits. */
153.2181 -+ if ((in.fraction.ll & (((USItype) 1 << F_D_BITOFF) - 1)) != 0)
153.2182 -+ sffrac |= 1;
153.2183 -+
153.2184 -+ return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
153.2185 -+}
153.2186 -+#endif /* L_df_to_sf */
153.2187 -+
153.2188 -+#if defined(L_df_to_tf) && defined(TMODES) \
153.2189 -+ && !defined(FLOAT) && !defined(TFLOAT)
153.2190 -+TFtype
153.2191 -+df_to_tf (DFtype arg_a)
153.2192 -+{
153.2193 -+ fp_number_type in;
153.2194 -+ FLO_union_type au;
153.2195 -+
153.2196 -+ au.value = arg_a;
153.2197 -+ unpack_d (&au, &in);
153.2198 -+
153.2199 -+ return __make_tp (in.class, in.sign, in.normal_exp,
153.2200 -+ ((UTItype) in.fraction.ll) << D_T_BITOFF);
153.2201 -+}
153.2202 -+#endif /* L_sf_to_df */
153.2203 -+
153.2204 -+#ifdef TFLOAT
153.2205 -+#if defined(L_make_tf)
153.2206 -+TFtype
153.2207 -+__make_tp(fp_class_type class,
153.2208 -+ unsigned int sign,
153.2209 -+ int exp,
153.2210 -+ UTItype frac)
153.2211 -+{
153.2212 -+ fp_number_type in;
153.2213 -+
153.2214 -+ in.class = class;
153.2215 -+ in.sign = sign;
153.2216 -+ in.normal_exp = exp;
153.2217 -+ in.fraction.ll = frac;
153.2218 -+ return pack_d (&in);
153.2219 -+}
153.2220 -+#endif /* L_make_tf */
153.2221 -+
153.2222 -+#if defined(L_tf_to_df)
153.2223 -+DFtype
153.2224 -+tf_to_df (TFtype arg_a)
153.2225 -+{
153.2226 -+ fp_number_type in;
153.2227 -+ UDItype sffrac;
153.2228 -+ FLO_union_type au;
153.2229 -+
153.2230 -+ au.value = arg_a;
153.2231 -+ unpack_d (&au, &in);
153.2232 -+
153.2233 -+ sffrac = in.fraction.ll >> D_T_BITOFF;
153.2234 -+
153.2235 -+ /* We set the lowest guard bit in SFFRAC if we discarded any non
153.2236 -+ zero bits. */
153.2237 -+ if ((in.fraction.ll & (((UTItype) 1 << D_T_BITOFF) - 1)) != 0)
153.2238 -+ sffrac |= 1;
153.2239 -+
153.2240 -+ return __make_dp (in.class, in.sign, in.normal_exp, sffrac);
153.2241 -+}
153.2242 -+#endif /* L_tf_to_df */
153.2243 -+
153.2244 -+#if defined(L_tf_to_sf)
153.2245 -+SFtype
153.2246 -+tf_to_sf (TFtype arg_a)
153.2247 -+{
153.2248 -+ fp_number_type in;
153.2249 -+ USItype sffrac;
153.2250 -+ FLO_union_type au;
153.2251 -+
153.2252 -+ au.value = arg_a;
153.2253 -+ unpack_d (&au, &in);
153.2254 -+
153.2255 -+ sffrac = in.fraction.ll >> F_T_BITOFF;
153.2256 -+
153.2257 -+ /* We set the lowest guard bit in SFFRAC if we discarded any non
153.2258 -+ zero bits. */
153.2259 -+ if ((in.fraction.ll & (((UTItype) 1 << F_T_BITOFF) - 1)) != 0)
153.2260 -+ sffrac |= 1;
153.2261 -+
153.2262 -+ return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
153.2263 -+}
153.2264 -+#endif /* L_tf_to_sf */
153.2265 -+#endif /* TFLOAT */
153.2266 -+
153.2267 -+#endif /* ! FLOAT */
153.2268 -+#endif /* !EXTENDED_FLOAT_STUBS */
153.2269 ---- gcc-3.4.3/gcc/config/nios2/nios2-fp-bit.c
153.2270 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2-fp-bit.c
153.2271 -@@ -0,0 +1,1652 @@
153.2272 -+#define FLOAT
153.2273 -+/* This is a software floating point library which can be used
153.2274 -+ for targets without hardware floating point.
153.2275 -+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004
153.2276 -+ Free Software Foundation, Inc.
153.2277 -+
153.2278 -+This file is free software; you can redistribute it and/or modify it
153.2279 -+under the terms of the GNU General Public License as published by the
153.2280 -+Free Software Foundation; either version 2, or (at your option) any
153.2281 -+later version.
153.2282 -+
153.2283 -+In addition to the permissions in the GNU General Public License, the
153.2284 -+Free Software Foundation gives you unlimited permission to link the
153.2285 -+compiled version of this file with other programs, and to distribute
153.2286 -+those programs without any restriction coming from the use of this
153.2287 -+file. (The General Public License restrictions do apply in other
153.2288 -+respects; for example, they cover modification of the file, and
153.2289 -+distribution when not linked into another program.)
153.2290 -+
153.2291 -+This file is distributed in the hope that it will be useful, but
153.2292 -+WITHOUT ANY WARRANTY; without even the implied warranty of
153.2293 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
153.2294 -+General Public License for more details.
153.2295 -+
153.2296 -+You should have received a copy of the GNU General Public License
153.2297 -+along with this program; see the file COPYING. If not, write to
153.2298 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.2299 -+Boston, MA 02111-1307, USA. */
153.2300 -+
153.2301 -+/* As a special exception, if you link this library with other files,
153.2302 -+ some of which are compiled with GCC, to produce an executable,
153.2303 -+ this library does not by itself cause the resulting executable
153.2304 -+ to be covered by the GNU General Public License.
153.2305 -+ This exception does not however invalidate any other reasons why
153.2306 -+ the executable file might be covered by the GNU General Public License. */
153.2307 -+
153.2308 -+/* This implements IEEE 754 format arithmetic, but does not provide a
153.2309 -+ mechanism for setting the rounding mode, or for generating or handling
153.2310 -+ exceptions.
153.2311 -+
153.2312 -+ The original code by Steve Chamberlain, hacked by Mark Eichin and Jim
153.2313 -+ Wilson, all of Cygnus Support. */
153.2314 -+
153.2315 -+/* The intended way to use this file is to make two copies, add `#define FLOAT'
153.2316 -+ to one copy, then compile both copies and add them to libgcc.a. */
153.2317 -+
153.2318 -+#include "tconfig.h"
153.2319 -+#include "coretypes.h"
153.2320 -+#include "tm.h"
153.2321 -+#include "config/fp-bit.h"
153.2322 -+
153.2323 -+/* The following macros can be defined to change the behavior of this file:
153.2324 -+ FLOAT: Implement a `float', aka SFmode, fp library. If this is not
153.2325 -+ defined, then this file implements a `double', aka DFmode, fp library.
153.2326 -+ FLOAT_ONLY: Used with FLOAT, to implement a `float' only library, i.e.
153.2327 -+ don't include float->double conversion which requires the double library.
153.2328 -+ This is useful only for machines which can't support doubles, e.g. some
153.2329 -+ 8-bit processors.
153.2330 -+ CMPtype: Specify the type that floating point compares should return.
153.2331 -+ This defaults to SItype, aka int.
153.2332 -+ US_SOFTWARE_GOFAST: This makes all entry points use the same names as the
153.2333 -+ US Software goFast library.
153.2334 -+ _DEBUG_BITFLOAT: This makes debugging the code a little easier, by adding
153.2335 -+ two integers to the FLO_union_type.
153.2336 -+ NO_DENORMALS: Disable handling of denormals.
153.2337 -+ NO_NANS: Disable nan and infinity handling
153.2338 -+ SMALL_MACHINE: Useful when operations on QIs and HIs are faster
153.2339 -+ than on an SI */
153.2340 -+
153.2341 -+/* We don't currently support extended floats (long doubles) on machines
153.2342 -+ without hardware to deal with them.
153.2343 -+
153.2344 -+ These stubs are just to keep the linker from complaining about unresolved
153.2345 -+ references which can be pulled in from libio & libstdc++, even if the
153.2346 -+ user isn't using long doubles. However, they may generate an unresolved
153.2347 -+ external to abort if abort is not used by the function, and the stubs
153.2348 -+ are referenced from within libc, since libgcc goes before and after the
153.2349 -+ system library. */
153.2350 -+
153.2351 -+#ifdef DECLARE_LIBRARY_RENAMES
153.2352 -+ DECLARE_LIBRARY_RENAMES
153.2353 -+#endif
153.2354 -+
153.2355 -+#ifdef EXTENDED_FLOAT_STUBS
153.2356 -+extern void abort (void);
153.2357 -+void __extendsfxf2 (void) { abort(); }
153.2358 -+void __extenddfxf2 (void) { abort(); }
153.2359 -+void __truncxfdf2 (void) { abort(); }
153.2360 -+void __truncxfsf2 (void) { abort(); }
153.2361 -+void __fixxfsi (void) { abort(); }
153.2362 -+void __floatsixf (void) { abort(); }
153.2363 -+void __addxf3 (void) { abort(); }
153.2364 -+void __subxf3 (void) { abort(); }
153.2365 -+void __mulxf3 (void) { abort(); }
153.2366 -+void __divxf3 (void) { abort(); }
153.2367 -+void __negxf2 (void) { abort(); }
153.2368 -+void __eqxf2 (void) { abort(); }
153.2369 -+void __nexf2 (void) { abort(); }
153.2370 -+void __gtxf2 (void) { abort(); }
153.2371 -+void __gexf2 (void) { abort(); }
153.2372 -+void __lexf2 (void) { abort(); }
153.2373 -+void __ltxf2 (void) { abort(); }
153.2374 -+
153.2375 -+void __extendsftf2 (void) { abort(); }
153.2376 -+void __extenddftf2 (void) { abort(); }
153.2377 -+void __trunctfdf2 (void) { abort(); }
153.2378 -+void __trunctfsf2 (void) { abort(); }
153.2379 -+void __fixtfsi (void) { abort(); }
153.2380 -+void __floatsitf (void) { abort(); }
153.2381 -+void __addtf3 (void) { abort(); }
153.2382 -+void __subtf3 (void) { abort(); }
153.2383 -+void __multf3 (void) { abort(); }
153.2384 -+void __divtf3 (void) { abort(); }
153.2385 -+void __negtf2 (void) { abort(); }
153.2386 -+void __eqtf2 (void) { abort(); }
153.2387 -+void __netf2 (void) { abort(); }
153.2388 -+void __gttf2 (void) { abort(); }
153.2389 -+void __getf2 (void) { abort(); }
153.2390 -+void __letf2 (void) { abort(); }
153.2391 -+void __lttf2 (void) { abort(); }
153.2392 -+#else /* !EXTENDED_FLOAT_STUBS, rest of file */
153.2393 -+
153.2394 -+/* IEEE "special" number predicates */
153.2395 -+
153.2396 -+#ifdef NO_NANS
153.2397 -+
153.2398 -+#define nan() 0
153.2399 -+#define isnan(x) 0
153.2400 -+#define isinf(x) 0
153.2401 -+#else
153.2402 -+
153.2403 -+#if defined L_thenan_sf
153.2404 -+const fp_number_type __thenan_sf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.2405 -+#elif defined L_thenan_df
153.2406 -+const fp_number_type __thenan_df = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.2407 -+#elif defined L_thenan_tf
153.2408 -+const fp_number_type __thenan_tf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.2409 -+#elif defined TFLOAT
153.2410 -+extern const fp_number_type __thenan_tf;
153.2411 -+#elif defined FLOAT
153.2412 -+extern const fp_number_type __thenan_sf;
153.2413 -+#else
153.2414 -+extern const fp_number_type __thenan_df;
153.2415 -+#endif
153.2416 -+
153.2417 -+INLINE
153.2418 -+static fp_number_type *
153.2419 -+nan (void)
153.2420 -+{
153.2421 -+ /* Discard the const qualifier... */
153.2422 -+#ifdef TFLOAT
153.2423 -+ return (fp_number_type *) (& __thenan_tf);
153.2424 -+#elif defined FLOAT
153.2425 -+ return (fp_number_type *) (& __thenan_sf);
153.2426 -+#else
153.2427 -+ return (fp_number_type *) (& __thenan_df);
153.2428 -+#endif
153.2429 -+}
153.2430 -+
153.2431 -+INLINE
153.2432 -+static int
153.2433 -+isnan ( fp_number_type * x)
153.2434 -+{
153.2435 -+ return x->class == CLASS_SNAN || x->class == CLASS_QNAN;
153.2436 -+}
153.2437 -+
153.2438 -+INLINE
153.2439 -+static int
153.2440 -+isinf ( fp_number_type * x)
153.2441 -+{
153.2442 -+ return x->class == CLASS_INFINITY;
153.2443 -+}
153.2444 -+
153.2445 -+#endif /* NO_NANS */
153.2446 -+
153.2447 -+INLINE
153.2448 -+static int
153.2449 -+iszero ( fp_number_type * x)
153.2450 -+{
153.2451 -+ return x->class == CLASS_ZERO;
153.2452 -+}
153.2453 -+
153.2454 -+INLINE
153.2455 -+static void
153.2456 -+flip_sign ( fp_number_type * x)
153.2457 -+{
153.2458 -+ x->sign = !x->sign;
153.2459 -+}
153.2460 -+
153.2461 -+extern FLO_type pack_d ( fp_number_type * );
153.2462 -+
153.2463 -+#if defined(L_pack_df) || defined(L_pack_sf) || defined(L_pack_tf)
153.2464 -+FLO_type
153.2465 -+pack_d ( fp_number_type * src)
153.2466 -+{
153.2467 -+ FLO_union_type dst;
153.2468 -+ fractype fraction = src->fraction.ll; /* wasn't unsigned before? */
153.2469 -+ int sign = src->sign;
153.2470 -+ int exp = 0;
153.2471 -+
153.2472 -+ if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && (isnan (src) || isinf (src)))
153.2473 -+ {
153.2474 -+ /* We can't represent these values accurately. By using the
153.2475 -+ largest possible magnitude, we guarantee that the conversion
153.2476 -+ of infinity is at least as big as any finite number. */
153.2477 -+ exp = EXPMAX;
153.2478 -+ fraction = ((fractype) 1 << FRACBITS) - 1;
153.2479 -+ }
153.2480 -+ else if (isnan (src))
153.2481 -+ {
153.2482 -+ exp = EXPMAX;
153.2483 -+ if (src->class == CLASS_QNAN || 1)
153.2484 -+ {
153.2485 -+#ifdef QUIET_NAN_NEGATED
153.2486 -+ fraction |= QUIET_NAN - 1;
153.2487 -+#else
153.2488 -+ fraction |= QUIET_NAN;
153.2489 -+#endif
153.2490 -+ }
153.2491 -+ }
153.2492 -+ else if (isinf (src))
153.2493 -+ {
153.2494 -+ exp = EXPMAX;
153.2495 -+ fraction = 0;
153.2496 -+ }
153.2497 -+ else if (iszero (src))
153.2498 -+ {
153.2499 -+ exp = 0;
153.2500 -+ fraction = 0;
153.2501 -+ }
153.2502 -+ else if (fraction == 0)
153.2503 -+ {
153.2504 -+ exp = 0;
153.2505 -+ }
153.2506 -+ else
153.2507 -+ {
153.2508 -+ if (src->normal_exp < NORMAL_EXPMIN)
153.2509 -+ {
153.2510 -+#ifdef NO_DENORMALS
153.2511 -+ /* Go straight to a zero representation if denormals are not
153.2512 -+ supported. The denormal handling would be harmless but
153.2513 -+ isn't unnecessary. */
153.2514 -+ exp = 0;
153.2515 -+ fraction = 0;
153.2516 -+#else /* NO_DENORMALS */
153.2517 -+ /* This number's exponent is too low to fit into the bits
153.2518 -+ available in the number, so we'll store 0 in the exponent and
153.2519 -+ shift the fraction to the right to make up for it. */
153.2520 -+
153.2521 -+ int shift = NORMAL_EXPMIN - src->normal_exp;
153.2522 -+
153.2523 -+ exp = 0;
153.2524 -+
153.2525 -+ if (shift > FRAC_NBITS - NGARDS)
153.2526 -+ {
153.2527 -+ /* No point shifting, since it's more that 64 out. */
153.2528 -+ fraction = 0;
153.2529 -+ }
153.2530 -+ else
153.2531 -+ {
153.2532 -+ int lowbit = (fraction & (((fractype)1 << shift) - 1)) ? 1 : 0;
153.2533 -+ fraction = (fraction >> shift) | lowbit;
153.2534 -+ }
153.2535 -+ if ((fraction & GARDMASK) == GARDMSB)
153.2536 -+ {
153.2537 -+ if ((fraction & (1 << NGARDS)))
153.2538 -+ fraction += GARDROUND + 1;
153.2539 -+ }
153.2540 -+ else
153.2541 -+ {
153.2542 -+ /* Add to the guards to round up. */
153.2543 -+ fraction += GARDROUND;
153.2544 -+ }
153.2545 -+ /* Perhaps the rounding means we now need to change the
153.2546 -+ exponent, because the fraction is no longer denormal. */
153.2547 -+ if (fraction >= IMPLICIT_1)
153.2548 -+ {
153.2549 -+ exp += 1;
153.2550 -+ }
153.2551 -+ fraction >>= NGARDS;
153.2552 -+#endif /* NO_DENORMALS */
153.2553 -+ }
153.2554 -+ else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS)
153.2555 -+ && src->normal_exp > EXPBIAS)
153.2556 -+ {
153.2557 -+ exp = EXPMAX;
153.2558 -+ fraction = 0;
153.2559 -+ }
153.2560 -+ else
153.2561 -+ {
153.2562 -+ exp = src->normal_exp + EXPBIAS;
153.2563 -+ if (!ROUND_TOWARDS_ZERO)
153.2564 -+ {
153.2565 -+ /* IF the gard bits are the all zero, but the first, then we're
153.2566 -+ half way between two numbers, choose the one which makes the
153.2567 -+ lsb of the answer 0. */
153.2568 -+ if ((fraction & GARDMASK) == GARDMSB)
153.2569 -+ {
153.2570 -+ if (fraction & (1 << NGARDS))
153.2571 -+ fraction += GARDROUND + 1;
153.2572 -+ }
153.2573 -+ else
153.2574 -+ {
153.2575 -+ /* Add a one to the guards to round up */
153.2576 -+ fraction += GARDROUND;
153.2577 -+ }
153.2578 -+ if (fraction >= IMPLICIT_2)
153.2579 -+ {
153.2580 -+ fraction >>= 1;
153.2581 -+ exp += 1;
153.2582 -+ }
153.2583 -+ }
153.2584 -+ fraction >>= NGARDS;
153.2585 -+
153.2586 -+ if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp > EXPMAX)
153.2587 -+ {
153.2588 -+ /* Saturate on overflow. */
153.2589 -+ exp = EXPMAX;
153.2590 -+ fraction = ((fractype) 1 << FRACBITS) - 1;
153.2591 -+ }
153.2592 -+ }
153.2593 -+ }
153.2594 -+
153.2595 -+ /* We previously used bitfields to store the number, but this doesn't
153.2596 -+ handle little/big endian systems conveniently, so use shifts and
153.2597 -+ masks */
153.2598 -+#ifdef FLOAT_BIT_ORDER_MISMATCH
153.2599 -+ dst.bits.fraction = fraction;
153.2600 -+ dst.bits.exp = exp;
153.2601 -+ dst.bits.sign = sign;
153.2602 -+#else
153.2603 -+# if defined TFLOAT && defined HALFFRACBITS
153.2604 -+ {
153.2605 -+ halffractype high, low, unity;
153.2606 -+ int lowsign, lowexp;
153.2607 -+
153.2608 -+ unity = (halffractype) 1 << HALFFRACBITS;
153.2609 -+
153.2610 -+ /* Set HIGH to the high double's significand, masking out the implicit 1.
153.2611 -+ Set LOW to the low double's full significand. */
153.2612 -+ high = (fraction >> (FRACBITS - HALFFRACBITS)) & (unity - 1);
153.2613 -+ low = fraction & (unity * 2 - 1);
153.2614 -+
153.2615 -+ /* Get the initial sign and exponent of the low double. */
153.2616 -+ lowexp = exp - HALFFRACBITS - 1;
153.2617 -+ lowsign = sign;
153.2618 -+
153.2619 -+ /* HIGH should be rounded like a normal double, making |LOW| <=
153.2620 -+ 0.5 ULP of HIGH. Assume round-to-nearest. */
153.2621 -+ if (exp < EXPMAX)
153.2622 -+ if (low > unity || (low == unity && (high & 1) == 1))
153.2623 -+ {
153.2624 -+ /* Round HIGH up and adjust LOW to match. */
153.2625 -+ high++;
153.2626 -+ if (high == unity)
153.2627 -+ {
153.2628 -+ /* May make it infinite, but that's OK. */
153.2629 -+ high = 0;
153.2630 -+ exp++;
153.2631 -+ }
153.2632 -+ low = unity * 2 - low;
153.2633 -+ lowsign ^= 1;
153.2634 -+ }
153.2635 -+
153.2636 -+ high |= (halffractype) exp << HALFFRACBITS;
153.2637 -+ high |= (halffractype) sign << (HALFFRACBITS + EXPBITS);
153.2638 -+
153.2639 -+ if (exp == EXPMAX || exp == 0 || low == 0)
153.2640 -+ low = 0;
153.2641 -+ else
153.2642 -+ {
153.2643 -+ while (lowexp > 0 && low < unity)
153.2644 -+ {
153.2645 -+ low <<= 1;
153.2646 -+ lowexp--;
153.2647 -+ }
153.2648 -+
153.2649 -+ if (lowexp <= 0)
153.2650 -+ {
153.2651 -+ halffractype roundmsb, round;
153.2652 -+ int shift;
153.2653 -+
153.2654 -+ shift = 1 - lowexp;
153.2655 -+ roundmsb = (1 << (shift - 1));
153.2656 -+ round = low & ((roundmsb << 1) - 1);
153.2657 -+
153.2658 -+ low >>= shift;
153.2659 -+ lowexp = 0;
153.2660 -+
153.2661 -+ if (round > roundmsb || (round == roundmsb && (low & 1) == 1))
153.2662 -+ {
153.2663 -+ low++;
153.2664 -+ if (low == unity)
153.2665 -+ /* LOW rounds up to the smallest normal number. */
153.2666 -+ lowexp++;
153.2667 -+ }
153.2668 -+ }
153.2669 -+
153.2670 -+ low &= unity - 1;
153.2671 -+ low |= (halffractype) lowexp << HALFFRACBITS;
153.2672 -+ low |= (halffractype) lowsign << (HALFFRACBITS + EXPBITS);
153.2673 -+ }
153.2674 -+ dst.value_raw = ((fractype) high << HALFSHIFT) | low;
153.2675 -+ }
153.2676 -+# else
153.2677 -+ dst.value_raw = fraction & ((((fractype)1) << FRACBITS) - (fractype)1);
153.2678 -+ dst.value_raw |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << FRACBITS;
153.2679 -+ dst.value_raw |= ((fractype) (sign & 1)) << (FRACBITS | EXPBITS);
153.2680 -+# endif
153.2681 -+#endif
153.2682 -+
153.2683 -+#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
153.2684 -+#ifdef TFLOAT
153.2685 -+ {
153.2686 -+ qrtrfractype tmp1 = dst.words[0];
153.2687 -+ qrtrfractype tmp2 = dst.words[1];
153.2688 -+ dst.words[0] = dst.words[3];
153.2689 -+ dst.words[1] = dst.words[2];
153.2690 -+ dst.words[2] = tmp2;
153.2691 -+ dst.words[3] = tmp1;
153.2692 -+ }
153.2693 -+#else
153.2694 -+ {
153.2695 -+ halffractype tmp = dst.words[0];
153.2696 -+ dst.words[0] = dst.words[1];
153.2697 -+ dst.words[1] = tmp;
153.2698 -+ }
153.2699 -+#endif
153.2700 -+#endif
153.2701 -+
153.2702 -+ return dst.value;
153.2703 -+}
153.2704 -+#endif
153.2705 -+
153.2706 -+#if defined(L_unpack_df) || defined(L_unpack_sf) || defined(L_unpack_tf)
153.2707 -+void
153.2708 -+unpack_d (FLO_union_type * src, fp_number_type * dst)
153.2709 -+{
153.2710 -+ /* We previously used bitfields to store the number, but this doesn't
153.2711 -+ handle little/big endian systems conveniently, so use shifts and
153.2712 -+ masks */
153.2713 -+ fractype fraction;
153.2714 -+ int exp;
153.2715 -+ int sign;
153.2716 -+
153.2717 -+#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
153.2718 -+ FLO_union_type swapped;
153.2719 -+
153.2720 -+#ifdef TFLOAT
153.2721 -+ swapped.words[0] = src->words[3];
153.2722 -+ swapped.words[1] = src->words[2];
153.2723 -+ swapped.words[2] = src->words[1];
153.2724 -+ swapped.words[3] = src->words[0];
153.2725 -+#else
153.2726 -+ swapped.words[0] = src->words[1];
153.2727 -+ swapped.words[1] = src->words[0];
153.2728 -+#endif
153.2729 -+ src = &swapped;
153.2730 -+#endif
153.2731 -+
153.2732 -+#ifdef FLOAT_BIT_ORDER_MISMATCH
153.2733 -+ fraction = src->bits.fraction;
153.2734 -+ exp = src->bits.exp;
153.2735 -+ sign = src->bits.sign;
153.2736 -+#else
153.2737 -+# if defined TFLOAT && defined HALFFRACBITS
153.2738 -+ {
153.2739 -+ halffractype high, low;
153.2740 -+
153.2741 -+ high = src->value_raw >> HALFSHIFT;
153.2742 -+ low = src->value_raw & (((fractype)1 << HALFSHIFT) - 1);
153.2743 -+
153.2744 -+ fraction = high & ((((fractype)1) << HALFFRACBITS) - 1);
153.2745 -+ fraction <<= FRACBITS - HALFFRACBITS;
153.2746 -+ exp = ((int)(high >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
153.2747 -+ sign = ((int)(high >> (((HALFFRACBITS + EXPBITS))))) & 1;
153.2748 -+
153.2749 -+ if (exp != EXPMAX && exp != 0 && low != 0)
153.2750 -+ {
153.2751 -+ int lowexp = ((int)(low >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
153.2752 -+ int lowsign = ((int)(low >> (((HALFFRACBITS + EXPBITS))))) & 1;
153.2753 -+ int shift;
153.2754 -+ fractype xlow;
153.2755 -+
153.2756 -+ xlow = low & ((((fractype)1) << HALFFRACBITS) - 1);
153.2757 -+ if (lowexp)
153.2758 -+ xlow |= (((halffractype)1) << HALFFRACBITS);
153.2759 -+ else
153.2760 -+ lowexp = 1;
153.2761 -+ shift = (FRACBITS - HALFFRACBITS) - (exp - lowexp);
153.2762 -+ if (shift > 0)
153.2763 -+ xlow <<= shift;
153.2764 -+ else if (shift < 0)
153.2765 -+ xlow >>= -shift;
153.2766 -+ if (sign == lowsign)
153.2767 -+ fraction += xlow;
153.2768 -+ else if (fraction >= xlow)
153.2769 -+ fraction -= xlow;
153.2770 -+ else
153.2771 -+ {
153.2772 -+ /* The high part is a power of two but the full number is lower.
153.2773 -+ This code will leave the implicit 1 in FRACTION, but we'd
153.2774 -+ have added that below anyway. */
153.2775 -+ fraction = (((fractype) 1 << FRACBITS) - xlow) << 1;
153.2776 -+ exp--;
153.2777 -+ }
153.2778 -+ }
153.2779 -+ }
153.2780 -+# else
153.2781 -+ fraction = src->value_raw & ((((fractype)1) << FRACBITS) - 1);
153.2782 -+ exp = ((int)(src->value_raw >> FRACBITS)) & ((1 << EXPBITS) - 1);
153.2783 -+ sign = ((int)(src->value_raw >> (FRACBITS + EXPBITS))) & 1;
153.2784 -+# endif
153.2785 -+#endif
153.2786 -+
153.2787 -+ dst->sign = sign;
153.2788 -+ if (exp == 0)
153.2789 -+ {
153.2790 -+ /* Hmm. Looks like 0 */
153.2791 -+ if (fraction == 0
153.2792 -+#ifdef NO_DENORMALS
153.2793 -+ || 1
153.2794 -+#endif
153.2795 -+ )
153.2796 -+ {
153.2797 -+ /* tastes like zero */
153.2798 -+ dst->class = CLASS_ZERO;
153.2799 -+ }
153.2800 -+ else
153.2801 -+ {
153.2802 -+ /* Zero exponent with nonzero fraction - it's denormalized,
153.2803 -+ so there isn't a leading implicit one - we'll shift it so
153.2804 -+ it gets one. */
153.2805 -+ dst->normal_exp = exp - EXPBIAS + 1;
153.2806 -+ fraction <<= NGARDS;
153.2807 -+
153.2808 -+ dst->class = CLASS_NUMBER;
153.2809 -+#if 1
153.2810 -+ while (fraction < IMPLICIT_1)
153.2811 -+ {
153.2812 -+ fraction <<= 1;
153.2813 -+ dst->normal_exp--;
153.2814 -+ }
153.2815 -+#endif
153.2816 -+ dst->fraction.ll = fraction;
153.2817 -+ }
153.2818 -+ }
153.2819 -+ else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp == EXPMAX)
153.2820 -+ {
153.2821 -+ /* Huge exponent*/
153.2822 -+ if (fraction == 0)
153.2823 -+ {
153.2824 -+ /* Attached to a zero fraction - means infinity */
153.2825 -+ dst->class = CLASS_INFINITY;
153.2826 -+ }
153.2827 -+ else
153.2828 -+ {
153.2829 -+ /* Nonzero fraction, means nan */
153.2830 -+#ifdef QUIET_NAN_NEGATED
153.2831 -+ if ((fraction & QUIET_NAN) == 0)
153.2832 -+#else
153.2833 -+ if (fraction & QUIET_NAN)
153.2834 -+#endif
153.2835 -+ {
153.2836 -+ dst->class = CLASS_QNAN;
153.2837 -+ }
153.2838 -+ else
153.2839 -+ {
153.2840 -+ dst->class = CLASS_SNAN;
153.2841 -+ }
153.2842 -+ /* Keep the fraction part as the nan number */
153.2843 -+ dst->fraction.ll = fraction;
153.2844 -+ }
153.2845 -+ }
153.2846 -+ else
153.2847 -+ {
153.2848 -+ /* Nothing strange about this number */
153.2849 -+ dst->normal_exp = exp - EXPBIAS;
153.2850 -+ dst->class = CLASS_NUMBER;
153.2851 -+ dst->fraction.ll = (fraction << NGARDS) | IMPLICIT_1;
153.2852 -+ }
153.2853 -+}
153.2854 -+#endif /* L_unpack_df || L_unpack_sf */
153.2855 -+
153.2856 -+#if defined(L_addsub_sf) || defined(L_addsub_df) || defined(L_addsub_tf)
153.2857 -+static fp_number_type *
153.2858 -+_fpadd_parts (fp_number_type * a,
153.2859 -+ fp_number_type * b,
153.2860 -+ fp_number_type * tmp)
153.2861 -+{
153.2862 -+ intfrac tfraction;
153.2863 -+
153.2864 -+ /* Put commonly used fields in local variables. */
153.2865 -+ int a_normal_exp;
153.2866 -+ int b_normal_exp;
153.2867 -+ fractype a_fraction;
153.2868 -+ fractype b_fraction;
153.2869 -+
153.2870 -+ if (isnan (a))
153.2871 -+ {
153.2872 -+ return a;
153.2873 -+ }
153.2874 -+ if (isnan (b))
153.2875 -+ {
153.2876 -+ return b;
153.2877 -+ }
153.2878 -+ if (isinf (a))
153.2879 -+ {
153.2880 -+ /* Adding infinities with opposite signs yields a NaN. */
153.2881 -+ if (isinf (b) && a->sign != b->sign)
153.2882 -+ return nan ();
153.2883 -+ return a;
153.2884 -+ }
153.2885 -+ if (isinf (b))
153.2886 -+ {
153.2887 -+ return b;
153.2888 -+ }
153.2889 -+ if (iszero (b))
153.2890 -+ {
153.2891 -+ if (iszero (a))
153.2892 -+ {
153.2893 -+ *tmp = *a;
153.2894 -+ tmp->sign = a->sign & b->sign;
153.2895 -+ return tmp;
153.2896 -+ }
153.2897 -+ return a;
153.2898 -+ }
153.2899 -+ if (iszero (a))
153.2900 -+ {
153.2901 -+ return b;
153.2902 -+ }
153.2903 -+
153.2904 -+ /* Got two numbers. shift the smaller and increment the exponent till
153.2905 -+ they're the same */
153.2906 -+ {
153.2907 -+ int diff;
153.2908 -+
153.2909 -+ a_normal_exp = a->normal_exp;
153.2910 -+ b_normal_exp = b->normal_exp;
153.2911 -+ a_fraction = a->fraction.ll;
153.2912 -+ b_fraction = b->fraction.ll;
153.2913 -+
153.2914 -+ diff = a_normal_exp - b_normal_exp;
153.2915 -+
153.2916 -+ if (diff < 0)
153.2917 -+ diff = -diff;
153.2918 -+ if (diff < FRAC_NBITS)
153.2919 -+ {
153.2920 -+ /* ??? This does shifts one bit at a time. Optimize. */
153.2921 -+ while (a_normal_exp > b_normal_exp)
153.2922 -+ {
153.2923 -+ b_normal_exp++;
153.2924 -+ LSHIFT (b_fraction);
153.2925 -+ }
153.2926 -+ while (b_normal_exp > a_normal_exp)
153.2927 -+ {
153.2928 -+ a_normal_exp++;
153.2929 -+ LSHIFT (a_fraction);
153.2930 -+ }
153.2931 -+ }
153.2932 -+ else
153.2933 -+ {
153.2934 -+ /* Somethings's up.. choose the biggest */
153.2935 -+ if (a_normal_exp > b_normal_exp)
153.2936 -+ {
153.2937 -+ b_normal_exp = a_normal_exp;
153.2938 -+ b_fraction = 0;
153.2939 -+ }
153.2940 -+ else
153.2941 -+ {
153.2942 -+ a_normal_exp = b_normal_exp;
153.2943 -+ a_fraction = 0;
153.2944 -+ }
153.2945 -+ }
153.2946 -+ }
153.2947 -+
153.2948 -+ if (a->sign != b->sign)
153.2949 -+ {
153.2950 -+ if (a->sign)
153.2951 -+ {
153.2952 -+ tfraction = -a_fraction + b_fraction;
153.2953 -+ }
153.2954 -+ else
153.2955 -+ {
153.2956 -+ tfraction = a_fraction - b_fraction;
153.2957 -+ }
153.2958 -+ if (tfraction >= 0)
153.2959 -+ {
153.2960 -+ tmp->sign = 0;
153.2961 -+ tmp->normal_exp = a_normal_exp;
153.2962 -+ tmp->fraction.ll = tfraction;
153.2963 -+ }
153.2964 -+ else
153.2965 -+ {
153.2966 -+ tmp->sign = 1;
153.2967 -+ tmp->normal_exp = a_normal_exp;
153.2968 -+ tmp->fraction.ll = -tfraction;
153.2969 -+ }
153.2970 -+ /* and renormalize it */
153.2971 -+
153.2972 -+ while (tmp->fraction.ll < IMPLICIT_1 && tmp->fraction.ll)
153.2973 -+ {
153.2974 -+ tmp->fraction.ll <<= 1;
153.2975 -+ tmp->normal_exp--;
153.2976 -+ }
153.2977 -+ }
153.2978 -+ else
153.2979 -+ {
153.2980 -+ tmp->sign = a->sign;
153.2981 -+ tmp->normal_exp = a_normal_exp;
153.2982 -+ tmp->fraction.ll = a_fraction + b_fraction;
153.2983 -+ }
153.2984 -+ tmp->class = CLASS_NUMBER;
153.2985 -+ /* Now the fraction is added, we have to shift down to renormalize the
153.2986 -+ number */
153.2987 -+
153.2988 -+ if (tmp->fraction.ll >= IMPLICIT_2)
153.2989 -+ {
153.2990 -+ LSHIFT (tmp->fraction.ll);
153.2991 -+ tmp->normal_exp++;
153.2992 -+ }
153.2993 -+ return tmp;
153.2994 -+
153.2995 -+}
153.2996 -+
153.2997 -+FLO_type
153.2998 -+add (FLO_type arg_a, FLO_type arg_b)
153.2999 -+{
153.3000 -+ fp_number_type a;
153.3001 -+ fp_number_type b;
153.3002 -+ fp_number_type tmp;
153.3003 -+ fp_number_type *res;
153.3004 -+ FLO_union_type au, bu;
153.3005 -+
153.3006 -+ au.value = arg_a;
153.3007 -+ bu.value = arg_b;
153.3008 -+
153.3009 -+ unpack_d (&au, &a);
153.3010 -+ unpack_d (&bu, &b);
153.3011 -+
153.3012 -+ res = _fpadd_parts (&a, &b, &tmp);
153.3013 -+
153.3014 -+ return pack_d (res);
153.3015 -+}
153.3016 -+
153.3017 -+FLO_type
153.3018 -+sub (FLO_type arg_a, FLO_type arg_b)
153.3019 -+{
153.3020 -+ fp_number_type a;
153.3021 -+ fp_number_type b;
153.3022 -+ fp_number_type tmp;
153.3023 -+ fp_number_type *res;
153.3024 -+ FLO_union_type au, bu;
153.3025 -+
153.3026 -+ au.value = arg_a;
153.3027 -+ bu.value = arg_b;
153.3028 -+
153.3029 -+ unpack_d (&au, &a);
153.3030 -+ unpack_d (&bu, &b);
153.3031 -+
153.3032 -+ b.sign ^= 1;
153.3033 -+
153.3034 -+ res = _fpadd_parts (&a, &b, &tmp);
153.3035 -+
153.3036 -+ return pack_d (res);
153.3037 -+}
153.3038 -+#endif /* L_addsub_sf || L_addsub_df */
153.3039 -+
153.3040 -+#if defined(L_mul_sf) || defined(L_mul_df) || defined(L_mul_tf)
153.3041 -+static inline __attribute__ ((__always_inline__)) fp_number_type *
153.3042 -+_fpmul_parts ( fp_number_type * a,
153.3043 -+ fp_number_type * b,
153.3044 -+ fp_number_type * tmp)
153.3045 -+{
153.3046 -+ fractype low = 0;
153.3047 -+ fractype high = 0;
153.3048 -+
153.3049 -+ if (isnan (a))
153.3050 -+ {
153.3051 -+ a->sign = a->sign != b->sign;
153.3052 -+ return a;
153.3053 -+ }
153.3054 -+ if (isnan (b))
153.3055 -+ {
153.3056 -+ b->sign = a->sign != b->sign;
153.3057 -+ return b;
153.3058 -+ }
153.3059 -+ if (isinf (a))
153.3060 -+ {
153.3061 -+ if (iszero (b))
153.3062 -+ return nan ();
153.3063 -+ a->sign = a->sign != b->sign;
153.3064 -+ return a;
153.3065 -+ }
153.3066 -+ if (isinf (b))
153.3067 -+ {
153.3068 -+ if (iszero (a))
153.3069 -+ {
153.3070 -+ return nan ();
153.3071 -+ }
153.3072 -+ b->sign = a->sign != b->sign;
153.3073 -+ return b;
153.3074 -+ }
153.3075 -+ if (iszero (a))
153.3076 -+ {
153.3077 -+ a->sign = a->sign != b->sign;
153.3078 -+ return a;
153.3079 -+ }
153.3080 -+ if (iszero (b))
153.3081 -+ {
153.3082 -+ b->sign = a->sign != b->sign;
153.3083 -+ return b;
153.3084 -+ }
153.3085 -+
153.3086 -+ /* Calculate the mantissa by multiplying both numbers to get a
153.3087 -+ twice-as-wide number. */
153.3088 -+ {
153.3089 -+#if defined(NO_DI_MODE) || defined(TFLOAT)
153.3090 -+ {
153.3091 -+ fractype x = a->fraction.ll;
153.3092 -+ fractype ylow = b->fraction.ll;
153.3093 -+ fractype yhigh = 0;
153.3094 -+ int bit;
153.3095 -+
153.3096 -+ /* ??? This does multiplies one bit at a time. Optimize. */
153.3097 -+ for (bit = 0; bit < FRAC_NBITS; bit++)
153.3098 -+ {
153.3099 -+ int carry;
153.3100 -+
153.3101 -+ if (x & 1)
153.3102 -+ {
153.3103 -+ carry = (low += ylow) < ylow;
153.3104 -+ high += yhigh + carry;
153.3105 -+ }
153.3106 -+ yhigh <<= 1;
153.3107 -+ if (ylow & FRACHIGH)
153.3108 -+ {
153.3109 -+ yhigh |= 1;
153.3110 -+ }
153.3111 -+ ylow <<= 1;
153.3112 -+ x >>= 1;
153.3113 -+ }
153.3114 -+ }
153.3115 -+#elif defined(FLOAT)
153.3116 -+ /* Multiplying two USIs to get a UDI, we're safe. */
153.3117 -+ {
153.3118 -+ UDItype answer = (UDItype)a->fraction.ll * (UDItype)b->fraction.ll;
153.3119 -+
153.3120 -+ high = answer >> BITS_PER_SI;
153.3121 -+ low = answer;
153.3122 -+ }
153.3123 -+#else
153.3124 -+ /* fractype is DImode, but we need the result to be twice as wide.
153.3125 -+ Assuming a widening multiply from DImode to TImode is not
153.3126 -+ available, build one by hand. */
153.3127 -+ {
153.3128 -+ USItype nl = a->fraction.ll;
153.3129 -+ USItype nh = a->fraction.ll >> BITS_PER_SI;
153.3130 -+ USItype ml = b->fraction.ll;
153.3131 -+ USItype mh = b->fraction.ll >> BITS_PER_SI;
153.3132 -+ UDItype pp_ll = (UDItype) ml * nl;
153.3133 -+ UDItype pp_hl = (UDItype) mh * nl;
153.3134 -+ UDItype pp_lh = (UDItype) ml * nh;
153.3135 -+ UDItype pp_hh = (UDItype) mh * nh;
153.3136 -+ UDItype res2 = 0;
153.3137 -+ UDItype res0 = 0;
153.3138 -+ UDItype ps_hh__ = pp_hl + pp_lh;
153.3139 -+ if (ps_hh__ < pp_hl)
153.3140 -+ res2 += (UDItype)1 << BITS_PER_SI;
153.3141 -+ pp_hl = (UDItype)(USItype)ps_hh__ << BITS_PER_SI;
153.3142 -+ res0 = pp_ll + pp_hl;
153.3143 -+ if (res0 < pp_ll)
153.3144 -+ res2++;
153.3145 -+ res2 += (ps_hh__ >> BITS_PER_SI) + pp_hh;
153.3146 -+ high = res2;
153.3147 -+ low = res0;
153.3148 -+ }
153.3149 -+#endif
153.3150 -+ }
153.3151 -+
153.3152 -+ tmp->normal_exp = a->normal_exp + b->normal_exp
153.3153 -+ + FRAC_NBITS - (FRACBITS + NGARDS);
153.3154 -+ tmp->sign = a->sign != b->sign;
153.3155 -+ while (high >= IMPLICIT_2)
153.3156 -+ {
153.3157 -+ tmp->normal_exp++;
153.3158 -+ if (high & 1)
153.3159 -+ {
153.3160 -+ low >>= 1;
153.3161 -+ low |= FRACHIGH;
153.3162 -+ }
153.3163 -+ high >>= 1;
153.3164 -+ }
153.3165 -+ while (high < IMPLICIT_1)
153.3166 -+ {
153.3167 -+ tmp->normal_exp--;
153.3168 -+
153.3169 -+ high <<= 1;
153.3170 -+ if (low & FRACHIGH)
153.3171 -+ high |= 1;
153.3172 -+ low <<= 1;
153.3173 -+ }
153.3174 -+ /* rounding is tricky. if we only round if it won't make us round later. */
153.3175 -+#if 0
153.3176 -+ if (low & FRACHIGH2)
153.3177 -+ {
153.3178 -+ if (((high & GARDMASK) != GARDMSB)
153.3179 -+ && (((high + 1) & GARDMASK) == GARDMSB))
153.3180 -+ {
153.3181 -+ /* don't round, it gets done again later. */
153.3182 -+ }
153.3183 -+ else
153.3184 -+ {
153.3185 -+ high++;
153.3186 -+ }
153.3187 -+ }
153.3188 -+#endif
153.3189 -+ if (!ROUND_TOWARDS_ZERO && (high & GARDMASK) == GARDMSB)
153.3190 -+ {
153.3191 -+ if (high & (1 << NGARDS))
153.3192 -+ {
153.3193 -+ /* half way, so round to even */
153.3194 -+ high += GARDROUND + 1;
153.3195 -+ }
153.3196 -+ else if (low)
153.3197 -+ {
153.3198 -+ /* but we really weren't half way */
153.3199 -+ high += GARDROUND + 1;
153.3200 -+ }
153.3201 -+ }
153.3202 -+ tmp->fraction.ll = high;
153.3203 -+ tmp->class = CLASS_NUMBER;
153.3204 -+ return tmp;
153.3205 -+}
153.3206 -+
153.3207 -+FLO_type
153.3208 -+multiply (FLO_type arg_a, FLO_type arg_b)
153.3209 -+{
153.3210 -+ fp_number_type a;
153.3211 -+ fp_number_type b;
153.3212 -+ fp_number_type tmp;
153.3213 -+ fp_number_type *res;
153.3214 -+ FLO_union_type au, bu;
153.3215 -+
153.3216 -+ au.value = arg_a;
153.3217 -+ bu.value = arg_b;
153.3218 -+
153.3219 -+ unpack_d (&au, &a);
153.3220 -+ unpack_d (&bu, &b);
153.3221 -+
153.3222 -+ res = _fpmul_parts (&a, &b, &tmp);
153.3223 -+
153.3224 -+ return pack_d (res);
153.3225 -+}
153.3226 -+#endif /* L_mul_sf || L_mul_df */
153.3227 -+
153.3228 -+#if defined(L_div_sf) || defined(L_div_df) || defined(L_div_tf)
153.3229 -+static inline __attribute__ ((__always_inline__)) fp_number_type *
153.3230 -+_fpdiv_parts (fp_number_type * a,
153.3231 -+ fp_number_type * b)
153.3232 -+{
153.3233 -+ fractype bit;
153.3234 -+ fractype numerator;
153.3235 -+ fractype denominator;
153.3236 -+ fractype quotient;
153.3237 -+
153.3238 -+ if (isnan (a))
153.3239 -+ {
153.3240 -+ return a;
153.3241 -+ }
153.3242 -+ if (isnan (b))
153.3243 -+ {
153.3244 -+ return b;
153.3245 -+ }
153.3246 -+
153.3247 -+ a->sign = a->sign ^ b->sign;
153.3248 -+
153.3249 -+ if (isinf (a) || iszero (a))
153.3250 -+ {
153.3251 -+ if (a->class == b->class)
153.3252 -+ return nan ();
153.3253 -+ return a;
153.3254 -+ }
153.3255 -+
153.3256 -+ if (isinf (b))
153.3257 -+ {
153.3258 -+ a->fraction.ll = 0;
153.3259 -+ a->normal_exp = 0;
153.3260 -+ return a;
153.3261 -+ }
153.3262 -+ if (iszero (b))
153.3263 -+ {
153.3264 -+ a->class = CLASS_INFINITY;
153.3265 -+ return a;
153.3266 -+ }
153.3267 -+
153.3268 -+ /* Calculate the mantissa by multiplying both 64bit numbers to get a
153.3269 -+ 128 bit number */
153.3270 -+ {
153.3271 -+ /* quotient =
153.3272 -+ ( numerator / denominator) * 2^(numerator exponent - denominator exponent)
153.3273 -+ */
153.3274 -+
153.3275 -+ a->normal_exp = a->normal_exp - b->normal_exp;
153.3276 -+ numerator = a->fraction.ll;
153.3277 -+ denominator = b->fraction.ll;
153.3278 -+
153.3279 -+ if (numerator < denominator)
153.3280 -+ {
153.3281 -+ /* Fraction will be less than 1.0 */
153.3282 -+ numerator *= 2;
153.3283 -+ a->normal_exp--;
153.3284 -+ }
153.3285 -+ bit = IMPLICIT_1;
153.3286 -+ quotient = 0;
153.3287 -+ /* ??? Does divide one bit at a time. Optimize. */
153.3288 -+ while (bit)
153.3289 -+ {
153.3290 -+ if (numerator >= denominator)
153.3291 -+ {
153.3292 -+ quotient |= bit;
153.3293 -+ numerator -= denominator;
153.3294 -+ }
153.3295 -+ bit >>= 1;
153.3296 -+ numerator *= 2;
153.3297 -+ }
153.3298 -+
153.3299 -+ if (!ROUND_TOWARDS_ZERO && (quotient & GARDMASK) == GARDMSB)
153.3300 -+ {
153.3301 -+ if (quotient & (1 << NGARDS))
153.3302 -+ {
153.3303 -+ /* half way, so round to even */
153.3304 -+ quotient += GARDROUND + 1;
153.3305 -+ }
153.3306 -+ else if (numerator)
153.3307 -+ {
153.3308 -+ /* but we really weren't half way, more bits exist */
153.3309 -+ quotient += GARDROUND + 1;
153.3310 -+ }
153.3311 -+ }
153.3312 -+
153.3313 -+ a->fraction.ll = quotient;
153.3314 -+ return (a);
153.3315 -+ }
153.3316 -+}
153.3317 -+
153.3318 -+FLO_type
153.3319 -+divide (FLO_type arg_a, FLO_type arg_b)
153.3320 -+{
153.3321 -+ fp_number_type a;
153.3322 -+ fp_number_type b;
153.3323 -+ fp_number_type *res;
153.3324 -+ FLO_union_type au, bu;
153.3325 -+
153.3326 -+ au.value = arg_a;
153.3327 -+ bu.value = arg_b;
153.3328 -+
153.3329 -+ unpack_d (&au, &a);
153.3330 -+ unpack_d (&bu, &b);
153.3331 -+
153.3332 -+ res = _fpdiv_parts (&a, &b);
153.3333 -+
153.3334 -+ return pack_d (res);
153.3335 -+}
153.3336 -+#endif /* L_div_sf || L_div_df */
153.3337 -+
153.3338 -+#if defined(L_fpcmp_parts_sf) || defined(L_fpcmp_parts_df) \
153.3339 -+ || defined(L_fpcmp_parts_tf)
153.3340 -+/* according to the demo, fpcmp returns a comparison with 0... thus
153.3341 -+ a<b -> -1
153.3342 -+ a==b -> 0
153.3343 -+ a>b -> +1
153.3344 -+ */
153.3345 -+
153.3346 -+int
153.3347 -+__fpcmp_parts (fp_number_type * a, fp_number_type * b)
153.3348 -+{
153.3349 -+#if 0
153.3350 -+ /* either nan -> unordered. Must be checked outside of this routine. */
153.3351 -+ if (isnan (a) && isnan (b))
153.3352 -+ {
153.3353 -+ return 1; /* still unordered! */
153.3354 -+ }
153.3355 -+#endif
153.3356 -+
153.3357 -+ if (isnan (a) || isnan (b))
153.3358 -+ {
153.3359 -+ return 1; /* how to indicate unordered compare? */
153.3360 -+ }
153.3361 -+ if (isinf (a) && isinf (b))
153.3362 -+ {
153.3363 -+ /* +inf > -inf, but +inf != +inf */
153.3364 -+ /* b \a| +inf(0)| -inf(1)
153.3365 -+ ______\+--------+--------
153.3366 -+ +inf(0)| a==b(0)| a<b(-1)
153.3367 -+ -------+--------+--------
153.3368 -+ -inf(1)| a>b(1) | a==b(0)
153.3369 -+ -------+--------+--------
153.3370 -+ So since unordered must be nonzero, just line up the columns...
153.3371 -+ */
153.3372 -+ return b->sign - a->sign;
153.3373 -+ }
153.3374 -+ /* but not both... */
153.3375 -+ if (isinf (a))
153.3376 -+ {
153.3377 -+ return a->sign ? -1 : 1;
153.3378 -+ }
153.3379 -+ if (isinf (b))
153.3380 -+ {
153.3381 -+ return b->sign ? 1 : -1;
153.3382 -+ }
153.3383 -+ if (iszero (a) && iszero (b))
153.3384 -+ {
153.3385 -+ return 0;
153.3386 -+ }
153.3387 -+ if (iszero (a))
153.3388 -+ {
153.3389 -+ return b->sign ? 1 : -1;
153.3390 -+ }
153.3391 -+ if (iszero (b))
153.3392 -+ {
153.3393 -+ return a->sign ? -1 : 1;
153.3394 -+ }
153.3395 -+ /* now both are "normal". */
153.3396 -+ if (a->sign != b->sign)
153.3397 -+ {
153.3398 -+ /* opposite signs */
153.3399 -+ return a->sign ? -1 : 1;
153.3400 -+ }
153.3401 -+ /* same sign; exponents? */
153.3402 -+ if (a->normal_exp > b->normal_exp)
153.3403 -+ {
153.3404 -+ return a->sign ? -1 : 1;
153.3405 -+ }
153.3406 -+ if (a->normal_exp < b->normal_exp)
153.3407 -+ {
153.3408 -+ return a->sign ? 1 : -1;
153.3409 -+ }
153.3410 -+ /* same exponents; check size. */
153.3411 -+ if (a->fraction.ll > b->fraction.ll)
153.3412 -+ {
153.3413 -+ return a->sign ? -1 : 1;
153.3414 -+ }
153.3415 -+ if (a->fraction.ll < b->fraction.ll)
153.3416 -+ {
153.3417 -+ return a->sign ? 1 : -1;
153.3418 -+ }
153.3419 -+ /* after all that, they're equal. */
153.3420 -+ return 0;
153.3421 -+}
153.3422 -+#endif
153.3423 -+
153.3424 -+#if defined(L_compare_sf) || defined(L_compare_df) || defined(L_compoare_tf)
153.3425 -+CMPtype
153.3426 -+compare (FLO_type arg_a, FLO_type arg_b)
153.3427 -+{
153.3428 -+ fp_number_type a;
153.3429 -+ fp_number_type b;
153.3430 -+ FLO_union_type au, bu;
153.3431 -+
153.3432 -+ au.value = arg_a;
153.3433 -+ bu.value = arg_b;
153.3434 -+
153.3435 -+ unpack_d (&au, &a);
153.3436 -+ unpack_d (&bu, &b);
153.3437 -+
153.3438 -+ return __fpcmp_parts (&a, &b);
153.3439 -+}
153.3440 -+#endif /* L_compare_sf || L_compare_df */
153.3441 -+
153.3442 -+#ifndef US_SOFTWARE_GOFAST
153.3443 -+
153.3444 -+/* These should be optimized for their specific tasks someday. */
153.3445 -+
153.3446 -+#if defined(L_eq_sf) || defined(L_eq_df) || defined(L_eq_tf)
153.3447 -+CMPtype
153.3448 -+_eq_f2 (FLO_type arg_a, FLO_type arg_b)
153.3449 -+{
153.3450 -+ fp_number_type a;
153.3451 -+ fp_number_type b;
153.3452 -+ FLO_union_type au, bu;
153.3453 -+
153.3454 -+ au.value = arg_a;
153.3455 -+ bu.value = arg_b;
153.3456 -+
153.3457 -+ unpack_d (&au, &a);
153.3458 -+ unpack_d (&bu, &b);
153.3459 -+
153.3460 -+ if (isnan (&a) || isnan (&b))
153.3461 -+ return 1; /* false, truth == 0 */
153.3462 -+
153.3463 -+ return __fpcmp_parts (&a, &b) ;
153.3464 -+}
153.3465 -+#endif /* L_eq_sf || L_eq_df */
153.3466 -+
153.3467 -+#if defined(L_ne_sf) || defined(L_ne_df) || defined(L_ne_tf)
153.3468 -+CMPtype
153.3469 -+_ne_f2 (FLO_type arg_a, FLO_type arg_b)
153.3470 -+{
153.3471 -+ fp_number_type a;
153.3472 -+ fp_number_type b;
153.3473 -+ FLO_union_type au, bu;
153.3474 -+
153.3475 -+ au.value = arg_a;
153.3476 -+ bu.value = arg_b;
153.3477 -+
153.3478 -+ unpack_d (&au, &a);
153.3479 -+ unpack_d (&bu, &b);
153.3480 -+
153.3481 -+ if (isnan (&a) || isnan (&b))
153.3482 -+ return 1; /* true, truth != 0 */
153.3483 -+
153.3484 -+ return __fpcmp_parts (&a, &b) ;
153.3485 -+}
153.3486 -+#endif /* L_ne_sf || L_ne_df */
153.3487 -+
153.3488 -+#if defined(L_gt_sf) || defined(L_gt_df) || defined(L_gt_tf)
153.3489 -+CMPtype
153.3490 -+_gt_f2 (FLO_type arg_a, FLO_type arg_b)
153.3491 -+{
153.3492 -+ fp_number_type a;
153.3493 -+ fp_number_type b;
153.3494 -+ FLO_union_type au, bu;
153.3495 -+
153.3496 -+ au.value = arg_a;
153.3497 -+ bu.value = arg_b;
153.3498 -+
153.3499 -+ unpack_d (&au, &a);
153.3500 -+ unpack_d (&bu, &b);
153.3501 -+
153.3502 -+ if (isnan (&a) || isnan (&b))
153.3503 -+ return -1; /* false, truth > 0 */
153.3504 -+
153.3505 -+ return __fpcmp_parts (&a, &b);
153.3506 -+}
153.3507 -+#endif /* L_gt_sf || L_gt_df */
153.3508 -+
153.3509 -+#if defined(L_ge_sf) || defined(L_ge_df) || defined(L_ge_tf)
153.3510 -+CMPtype
153.3511 -+_ge_f2 (FLO_type arg_a, FLO_type arg_b)
153.3512 -+{
153.3513 -+ fp_number_type a;
153.3514 -+ fp_number_type b;
153.3515 -+ FLO_union_type au, bu;
153.3516 -+
153.3517 -+ au.value = arg_a;
153.3518 -+ bu.value = arg_b;
153.3519 -+
153.3520 -+ unpack_d (&au, &a);
153.3521 -+ unpack_d (&bu, &b);
153.3522 -+
153.3523 -+ if (isnan (&a) || isnan (&b))
153.3524 -+ return -1; /* false, truth >= 0 */
153.3525 -+ return __fpcmp_parts (&a, &b) ;
153.3526 -+}
153.3527 -+#endif /* L_ge_sf || L_ge_df */
153.3528 -+
153.3529 -+#if defined(L_lt_sf) || defined(L_lt_df) || defined(L_lt_tf)
153.3530 -+CMPtype
153.3531 -+_lt_f2 (FLO_type arg_a, FLO_type arg_b)
153.3532 -+{
153.3533 -+ fp_number_type a;
153.3534 -+ fp_number_type b;
153.3535 -+ FLO_union_type au, bu;
153.3536 -+
153.3537 -+ au.value = arg_a;
153.3538 -+ bu.value = arg_b;
153.3539 -+
153.3540 -+ unpack_d (&au, &a);
153.3541 -+ unpack_d (&bu, &b);
153.3542 -+
153.3543 -+ if (isnan (&a) || isnan (&b))
153.3544 -+ return 1; /* false, truth < 0 */
153.3545 -+
153.3546 -+ return __fpcmp_parts (&a, &b);
153.3547 -+}
153.3548 -+#endif /* L_lt_sf || L_lt_df */
153.3549 -+
153.3550 -+#if defined(L_le_sf) || defined(L_le_df) || defined(L_le_tf)
153.3551 -+CMPtype
153.3552 -+_le_f2 (FLO_type arg_a, FLO_type arg_b)
153.3553 -+{
153.3554 -+ fp_number_type a;
153.3555 -+ fp_number_type b;
153.3556 -+ FLO_union_type au, bu;
153.3557 -+
153.3558 -+ au.value = arg_a;
153.3559 -+ bu.value = arg_b;
153.3560 -+
153.3561 -+ unpack_d (&au, &a);
153.3562 -+ unpack_d (&bu, &b);
153.3563 -+
153.3564 -+ if (isnan (&a) || isnan (&b))
153.3565 -+ return 1; /* false, truth <= 0 */
153.3566 -+
153.3567 -+ return __fpcmp_parts (&a, &b) ;
153.3568 -+}
153.3569 -+#endif /* L_le_sf || L_le_df */
153.3570 -+
153.3571 -+#endif /* ! US_SOFTWARE_GOFAST */
153.3572 -+
153.3573 -+#if defined(L_unord_sf) || defined(L_unord_df) || defined(L_unord_tf)
153.3574 -+CMPtype
153.3575 -+_unord_f2 (FLO_type arg_a, FLO_type arg_b)
153.3576 -+{
153.3577 -+ fp_number_type a;
153.3578 -+ fp_number_type b;
153.3579 -+ FLO_union_type au, bu;
153.3580 -+
153.3581 -+ au.value = arg_a;
153.3582 -+ bu.value = arg_b;
153.3583 -+
153.3584 -+ unpack_d (&au, &a);
153.3585 -+ unpack_d (&bu, &b);
153.3586 -+
153.3587 -+ return (isnan (&a) || isnan (&b));
153.3588 -+}
153.3589 -+#endif /* L_unord_sf || L_unord_df */
153.3590 -+
153.3591 -+#if defined(L_si_to_sf) || defined(L_si_to_df) || defined(L_si_to_tf)
153.3592 -+FLO_type
153.3593 -+si_to_float (SItype arg_a)
153.3594 -+{
153.3595 -+ fp_number_type in;
153.3596 -+
153.3597 -+ in.class = CLASS_NUMBER;
153.3598 -+ in.sign = arg_a < 0;
153.3599 -+ if (!arg_a)
153.3600 -+ {
153.3601 -+ in.class = CLASS_ZERO;
153.3602 -+ }
153.3603 -+ else
153.3604 -+ {
153.3605 -+ in.normal_exp = FRACBITS + NGARDS;
153.3606 -+ if (in.sign)
153.3607 -+ {
153.3608 -+ /* Special case for minint, since there is no +ve integer
153.3609 -+ representation for it */
153.3610 -+ if (arg_a == (- MAX_SI_INT - 1))
153.3611 -+ {
153.3612 -+ return (FLO_type)(- MAX_SI_INT - 1);
153.3613 -+ }
153.3614 -+ in.fraction.ll = (-arg_a);
153.3615 -+ }
153.3616 -+ else
153.3617 -+ in.fraction.ll = arg_a;
153.3618 -+
153.3619 -+ while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
153.3620 -+ {
153.3621 -+ in.fraction.ll <<= 1;
153.3622 -+ in.normal_exp -= 1;
153.3623 -+ }
153.3624 -+ }
153.3625 -+ return pack_d (&in);
153.3626 -+}
153.3627 -+#endif /* L_si_to_sf || L_si_to_df */
153.3628 -+
153.3629 -+#if defined(L_usi_to_sf) || defined(L_usi_to_df) || defined(L_usi_to_tf)
153.3630 -+FLO_type
153.3631 -+usi_to_float (USItype arg_a)
153.3632 -+{
153.3633 -+ fp_number_type in;
153.3634 -+
153.3635 -+ in.sign = 0;
153.3636 -+ if (!arg_a)
153.3637 -+ {
153.3638 -+ in.class = CLASS_ZERO;
153.3639 -+ }
153.3640 -+ else
153.3641 -+ {
153.3642 -+ in.class = CLASS_NUMBER;
153.3643 -+ in.normal_exp = FRACBITS + NGARDS;
153.3644 -+ in.fraction.ll = arg_a;
153.3645 -+
153.3646 -+ while (in.fraction.ll > ((fractype)1 << (FRACBITS + NGARDS)))
153.3647 -+ {
153.3648 -+ in.fraction.ll >>= 1;
153.3649 -+ in.normal_exp += 1;
153.3650 -+ }
153.3651 -+ while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
153.3652 -+ {
153.3653 -+ in.fraction.ll <<= 1;
153.3654 -+ in.normal_exp -= 1;
153.3655 -+ }
153.3656 -+ }
153.3657 -+ return pack_d (&in);
153.3658 -+}
153.3659 -+#endif
153.3660 -+
153.3661 -+#if defined(L_sf_to_si) || defined(L_df_to_si) || defined(L_tf_to_si)
153.3662 -+SItype
153.3663 -+float_to_si (FLO_type arg_a)
153.3664 -+{
153.3665 -+ fp_number_type a;
153.3666 -+ SItype tmp;
153.3667 -+ FLO_union_type au;
153.3668 -+
153.3669 -+ au.value = arg_a;
153.3670 -+ unpack_d (&au, &a);
153.3671 -+
153.3672 -+ if (iszero (&a))
153.3673 -+ return 0;
153.3674 -+ if (isnan (&a))
153.3675 -+ return 0;
153.3676 -+ /* get reasonable MAX_SI_INT... */
153.3677 -+ if (isinf (&a))
153.3678 -+ return a.sign ? (-MAX_SI_INT)-1 : MAX_SI_INT;
153.3679 -+ /* it is a number, but a small one */
153.3680 -+ if (a.normal_exp < 0)
153.3681 -+ return 0;
153.3682 -+ if (a.normal_exp > BITS_PER_SI - 2)
153.3683 -+ return a.sign ? (-MAX_SI_INT)-1 : MAX_SI_INT;
153.3684 -+ tmp = a.fraction.ll >> ((FRACBITS + NGARDS) - a.normal_exp);
153.3685 -+ return a.sign ? (-tmp) : (tmp);
153.3686 -+}
153.3687 -+#endif /* L_sf_to_si || L_df_to_si */
153.3688 -+
153.3689 -+#if defined(L_sf_to_usi) || defined(L_df_to_usi) || defined(L_tf_to_usi)
153.3690 -+#if defined US_SOFTWARE_GOFAST || defined(L_tf_to_usi)
153.3691 -+/* While libgcc2.c defines its own __fixunssfsi and __fixunsdfsi routines,
153.3692 -+ we also define them for GOFAST because the ones in libgcc2.c have the
153.3693 -+ wrong names and I'd rather define these here and keep GOFAST CYG-LOC's
153.3694 -+ out of libgcc2.c. We can't define these here if not GOFAST because then
153.3695 -+ there'd be duplicate copies. */
153.3696 -+
153.3697 -+USItype
153.3698 -+float_to_usi (FLO_type arg_a)
153.3699 -+{
153.3700 -+ fp_number_type a;
153.3701 -+ FLO_union_type au;
153.3702 -+
153.3703 -+ au.value = arg_a;
153.3704 -+ unpack_d (&au, &a);
153.3705 -+
153.3706 -+ if (iszero (&a))
153.3707 -+ return 0;
153.3708 -+ if (isnan (&a))
153.3709 -+ return 0;
153.3710 -+ /* it is a negative number */
153.3711 -+ if (a.sign)
153.3712 -+ return 0;
153.3713 -+ /* get reasonable MAX_USI_INT... */
153.3714 -+ if (isinf (&a))
153.3715 -+ return MAX_USI_INT;
153.3716 -+ /* it is a number, but a small one */
153.3717 -+ if (a.normal_exp < 0)
153.3718 -+ return 0;
153.3719 -+ if (a.normal_exp > BITS_PER_SI - 1)
153.3720 -+ return MAX_USI_INT;
153.3721 -+ else if (a.normal_exp > (FRACBITS + NGARDS))
153.3722 -+ return a.fraction.ll << (a.normal_exp - (FRACBITS + NGARDS));
153.3723 -+ else
153.3724 -+ return a.fraction.ll >> ((FRACBITS + NGARDS) - a.normal_exp);
153.3725 -+}
153.3726 -+#endif /* US_SOFTWARE_GOFAST */
153.3727 -+#endif /* L_sf_to_usi || L_df_to_usi */
153.3728 -+
153.3729 -+#if defined(L_negate_sf) || defined(L_negate_df) || defined(L_negate_tf)
153.3730 -+FLO_type
153.3731 -+negate (FLO_type arg_a)
153.3732 -+{
153.3733 -+ fp_number_type a;
153.3734 -+ FLO_union_type au;
153.3735 -+
153.3736 -+ au.value = arg_a;
153.3737 -+ unpack_d (&au, &a);
153.3738 -+
153.3739 -+ flip_sign (&a);
153.3740 -+ return pack_d (&a);
153.3741 -+}
153.3742 -+#endif /* L_negate_sf || L_negate_df */
153.3743 -+
153.3744 -+#ifdef FLOAT
153.3745 -+
153.3746 -+#if defined(L_make_sf)
153.3747 -+SFtype
153.3748 -+__make_fp(fp_class_type class,
153.3749 -+ unsigned int sign,
153.3750 -+ int exp,
153.3751 -+ USItype frac)
153.3752 -+{
153.3753 -+ fp_number_type in;
153.3754 -+
153.3755 -+ in.class = class;
153.3756 -+ in.sign = sign;
153.3757 -+ in.normal_exp = exp;
153.3758 -+ in.fraction.ll = frac;
153.3759 -+ return pack_d (&in);
153.3760 -+}
153.3761 -+#endif /* L_make_sf */
153.3762 -+
153.3763 -+#ifndef FLOAT_ONLY
153.3764 -+
153.3765 -+/* This enables one to build an fp library that supports float but not double.
153.3766 -+ Otherwise, we would get an undefined reference to __make_dp.
153.3767 -+ This is needed for some 8-bit ports that can't handle well values that
153.3768 -+ are 8-bytes in size, so we just don't support double for them at all. */
153.3769 -+
153.3770 -+#if defined(L_sf_to_df)
153.3771 -+DFtype
153.3772 -+sf_to_df (SFtype arg_a)
153.3773 -+{
153.3774 -+ fp_number_type in;
153.3775 -+ FLO_union_type au;
153.3776 -+
153.3777 -+ au.value = arg_a;
153.3778 -+ unpack_d (&au, &in);
153.3779 -+
153.3780 -+ return __make_dp (in.class, in.sign, in.normal_exp,
153.3781 -+ ((UDItype) in.fraction.ll) << F_D_BITOFF);
153.3782 -+}
153.3783 -+#endif /* L_sf_to_df */
153.3784 -+
153.3785 -+#if defined(L_sf_to_tf) && defined(TMODES)
153.3786 -+TFtype
153.3787 -+sf_to_tf (SFtype arg_a)
153.3788 -+{
153.3789 -+ fp_number_type in;
153.3790 -+ FLO_union_type au;
153.3791 -+
153.3792 -+ au.value = arg_a;
153.3793 -+ unpack_d (&au, &in);
153.3794 -+
153.3795 -+ return __make_tp (in.class, in.sign, in.normal_exp,
153.3796 -+ ((UTItype) in.fraction.ll) << F_T_BITOFF);
153.3797 -+}
153.3798 -+#endif /* L_sf_to_df */
153.3799 -+
153.3800 -+#endif /* ! FLOAT_ONLY */
153.3801 -+#endif /* FLOAT */
153.3802 -+
153.3803 -+#ifndef FLOAT
153.3804 -+
153.3805 -+extern SFtype __make_fp (fp_class_type, unsigned int, int, USItype);
153.3806 -+
153.3807 -+#if defined(L_make_df)
153.3808 -+DFtype
153.3809 -+__make_dp (fp_class_type class, unsigned int sign, int exp, UDItype frac)
153.3810 -+{
153.3811 -+ fp_number_type in;
153.3812 -+
153.3813 -+ in.class = class;
153.3814 -+ in.sign = sign;
153.3815 -+ in.normal_exp = exp;
153.3816 -+ in.fraction.ll = frac;
153.3817 -+ return pack_d (&in);
153.3818 -+}
153.3819 -+#endif /* L_make_df */
153.3820 -+
153.3821 -+#if defined(L_df_to_sf)
153.3822 -+SFtype
153.3823 -+df_to_sf (DFtype arg_a)
153.3824 -+{
153.3825 -+ fp_number_type in;
153.3826 -+ USItype sffrac;
153.3827 -+ FLO_union_type au;
153.3828 -+
153.3829 -+ au.value = arg_a;
153.3830 -+ unpack_d (&au, &in);
153.3831 -+
153.3832 -+ sffrac = in.fraction.ll >> F_D_BITOFF;
153.3833 -+
153.3834 -+ /* We set the lowest guard bit in SFFRAC if we discarded any non
153.3835 -+ zero bits. */
153.3836 -+ if ((in.fraction.ll & (((USItype) 1 << F_D_BITOFF) - 1)) != 0)
153.3837 -+ sffrac |= 1;
153.3838 -+
153.3839 -+ return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
153.3840 -+}
153.3841 -+#endif /* L_df_to_sf */
153.3842 -+
153.3843 -+#if defined(L_df_to_tf) && defined(TMODES) \
153.3844 -+ && !defined(FLOAT) && !defined(TFLOAT)
153.3845 -+TFtype
153.3846 -+df_to_tf (DFtype arg_a)
153.3847 -+{
153.3848 -+ fp_number_type in;
153.3849 -+ FLO_union_type au;
153.3850 -+
153.3851 -+ au.value = arg_a;
153.3852 -+ unpack_d (&au, &in);
153.3853 -+
153.3854 -+ return __make_tp (in.class, in.sign, in.normal_exp,
153.3855 -+ ((UTItype) in.fraction.ll) << D_T_BITOFF);
153.3856 -+}
153.3857 -+#endif /* L_sf_to_df */
153.3858 -+
153.3859 -+#ifdef TFLOAT
153.3860 -+#if defined(L_make_tf)
153.3861 -+TFtype
153.3862 -+__make_tp(fp_class_type class,
153.3863 -+ unsigned int sign,
153.3864 -+ int exp,
153.3865 -+ UTItype frac)
153.3866 -+{
153.3867 -+ fp_number_type in;
153.3868 -+
153.3869 -+ in.class = class;
153.3870 -+ in.sign = sign;
153.3871 -+ in.normal_exp = exp;
153.3872 -+ in.fraction.ll = frac;
153.3873 -+ return pack_d (&in);
153.3874 -+}
153.3875 -+#endif /* L_make_tf */
153.3876 -+
153.3877 -+#if defined(L_tf_to_df)
153.3878 -+DFtype
153.3879 -+tf_to_df (TFtype arg_a)
153.3880 -+{
153.3881 -+ fp_number_type in;
153.3882 -+ UDItype sffrac;
153.3883 -+ FLO_union_type au;
153.3884 -+
153.3885 -+ au.value = arg_a;
153.3886 -+ unpack_d (&au, &in);
153.3887 -+
153.3888 -+ sffrac = in.fraction.ll >> D_T_BITOFF;
153.3889 -+
153.3890 -+ /* We set the lowest guard bit in SFFRAC if we discarded any non
153.3891 -+ zero bits. */
153.3892 -+ if ((in.fraction.ll & (((UTItype) 1 << D_T_BITOFF) - 1)) != 0)
153.3893 -+ sffrac |= 1;
153.3894 -+
153.3895 -+ return __make_dp (in.class, in.sign, in.normal_exp, sffrac);
153.3896 -+}
153.3897 -+#endif /* L_tf_to_df */
153.3898 -+
153.3899 -+#if defined(L_tf_to_sf)
153.3900 -+SFtype
153.3901 -+tf_to_sf (TFtype arg_a)
153.3902 -+{
153.3903 -+ fp_number_type in;
153.3904 -+ USItype sffrac;
153.3905 -+ FLO_union_type au;
153.3906 -+
153.3907 -+ au.value = arg_a;
153.3908 -+ unpack_d (&au, &in);
153.3909 -+
153.3910 -+ sffrac = in.fraction.ll >> F_T_BITOFF;
153.3911 -+
153.3912 -+ /* We set the lowest guard bit in SFFRAC if we discarded any non
153.3913 -+ zero bits. */
153.3914 -+ if ((in.fraction.ll & (((UTItype) 1 << F_T_BITOFF) - 1)) != 0)
153.3915 -+ sffrac |= 1;
153.3916 -+
153.3917 -+ return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
153.3918 -+}
153.3919 -+#endif /* L_tf_to_sf */
153.3920 -+#endif /* TFLOAT */
153.3921 -+
153.3922 -+#endif /* ! FLOAT */
153.3923 -+#endif /* !EXTENDED_FLOAT_STUBS */
153.3924 ---- gcc-3.4.3/gcc/config/nios2/nios2-protos.h
153.3925 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2-protos.h
153.3926 -@@ -0,0 +1,70 @@
153.3927 -+/* Subroutines for assembler code output for Altera NIOS 2G NIOS2 version.
153.3928 -+ Copyright (C) 2003 Altera
153.3929 -+ Contributed by Jonah Graham (jgraham@altera.com).
153.3930 -+
153.3931 -+This file is part of GNU CC.
153.3932 -+
153.3933 -+GNU CC is free software; you can redistribute it and/or modify
153.3934 -+it under the terms of the GNU General Public License as published by
153.3935 -+the Free Software Foundation; either version 2, or (at your option)
153.3936 -+any later version.
153.3937 -+
153.3938 -+GNU CC is distributed in the hope that it will be useful,
153.3939 -+but WITHOUT ANY WARRANTY; without even the implied warranty of
153.3940 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
153.3941 -+GNU General Public License for more details.
153.3942 -+
153.3943 -+You should have received a copy of the GNU General Public License
153.3944 -+along with GNU CC; see the file COPYING. If not, write to
153.3945 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.3946 -+Boston, MA 02111-1307, USA. */
153.3947 -+
153.3948 -+extern void dump_frame_size (FILE *);
153.3949 -+extern HOST_WIDE_INT compute_frame_size (void);
153.3950 -+extern int nios2_initial_elimination_offset (int, int);
153.3951 -+extern void override_options (void);
153.3952 -+extern void optimization_options (int, int);
153.3953 -+extern int nios2_can_use_return_insn (void);
153.3954 -+extern void expand_prologue (void);
153.3955 -+extern void expand_epilogue (bool);
153.3956 -+extern void function_profiler (FILE *, int);
153.3957 -+
153.3958 -+
153.3959 -+#ifdef RTX_CODE
153.3960 -+extern int nios2_legitimate_address (rtx, enum machine_mode, int);
153.3961 -+extern void nios2_print_operand (FILE *, rtx, int);
153.3962 -+extern void nios2_print_operand_address (FILE *, rtx);
153.3963 -+
153.3964 -+extern int nios2_emit_move_sequence (rtx *, enum machine_mode);
153.3965 -+extern int nios2_emit_expensive_div (rtx *, enum machine_mode);
153.3966 -+
153.3967 -+extern void gen_int_relational (enum rtx_code, rtx, rtx, rtx, rtx);
153.3968 -+extern void gen_conditional_move (rtx *, enum machine_mode);
153.3969 -+extern const char *asm_output_opcode (FILE *, const char *);
153.3970 -+
153.3971 -+/* predicates */
153.3972 -+extern int arith_operand (rtx, enum machine_mode);
153.3973 -+extern int uns_arith_operand (rtx, enum machine_mode);
153.3974 -+extern int logical_operand (rtx, enum machine_mode);
153.3975 -+extern int shift_operand (rtx, enum machine_mode);
153.3976 -+extern int reg_or_0_operand (rtx, enum machine_mode);
153.3977 -+extern int equality_op (rtx, enum machine_mode);
153.3978 -+extern int custom_insn_opcode (rtx, enum machine_mode);
153.3979 -+extern int rdwrctl_operand (rtx, enum machine_mode);
153.3980 -+
153.3981 -+# ifdef HAVE_MACHINE_MODES
153.3982 -+# if defined TREE_CODE
153.3983 -+extern void function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
153.3984 -+extern rtx function_arg (const CUMULATIVE_ARGS *, enum machine_mode, tree, int);
153.3985 -+extern int function_arg_partial_nregs (const CUMULATIVE_ARGS *, enum machine_mode, tree, int);
153.3986 -+extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
153.3987 -+extern int nios2_setup_incoming_varargs (const CUMULATIVE_ARGS *, enum machine_mode, tree, int);
153.3988 -+
153.3989 -+# endif /* TREE_CODE */
153.3990 -+# endif /* HAVE_MACHINE_MODES */
153.3991 -+#endif
153.3992 -+
153.3993 -+#ifdef TREE_CODE
153.3994 -+extern int nios2_return_in_memory (tree);
153.3995 -+
153.3996 -+#endif /* TREE_CODE */
153.3997 ---- gcc-3.4.3/gcc/config/nios2/nios2.c
153.3998 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2.c
153.3999 -@@ -0,0 +1,2853 @@
153.4000 -+/* Subroutines for assembler code output for Altera NIOS 2G NIOS2 version.
153.4001 -+ Copyright (C) 2003 Altera
153.4002 -+ Contributed by Jonah Graham (jgraham@altera.com).
153.4003 -+
153.4004 -+This file is part of GNU CC.
153.4005 -+
153.4006 -+GNU CC is free software; you can redistribute it and/or modify
153.4007 -+it under the terms of the GNU General Public License as published by
153.4008 -+the Free Software Foundation; either version 2, or (at your option)
153.4009 -+any later version.
153.4010 -+
153.4011 -+GNU CC is distributed in the hope that it will be useful,
153.4012 -+but WITHOUT ANY WARRANTY; without even the implied warranty of
153.4013 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
153.4014 -+GNU General Public License for more details.
153.4015 -+
153.4016 -+You should have received a copy of the GNU General Public License
153.4017 -+along with GNU CC; see the file COPYING. If not, write to
153.4018 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.4019 -+Boston, MA 02111-1307, USA. */
153.4020 -+
153.4021 -+
153.4022 -+#include <stdio.h>
153.4023 -+#include "config.h"
153.4024 -+#include "system.h"
153.4025 -+#include "coretypes.h"
153.4026 -+#include "tm.h"
153.4027 -+#include "rtl.h"
153.4028 -+#include "tree.h"
153.4029 -+#include "tm_p.h"
153.4030 -+#include "regs.h"
153.4031 -+#include "hard-reg-set.h"
153.4032 -+#include "real.h"
153.4033 -+#include "insn-config.h"
153.4034 -+#include "conditions.h"
153.4035 -+#include "output.h"
153.4036 -+#include "insn-attr.h"
153.4037 -+#include "flags.h"
153.4038 -+#include "recog.h"
153.4039 -+#include "expr.h"
153.4040 -+#include "toplev.h"
153.4041 -+#include "basic-block.h"
153.4042 -+#include "function.h"
153.4043 -+#include "ggc.h"
153.4044 -+#include "reload.h"
153.4045 -+#include "debug.h"
153.4046 -+#include "optabs.h"
153.4047 -+#include "target.h"
153.4048 -+#include "target-def.h"
153.4049 -+
153.4050 -+/* local prototypes */
153.4051 -+static bool nios2_rtx_costs (rtx, int, int, int *);
153.4052 -+
153.4053 -+static void nios2_asm_function_prologue (FILE *, HOST_WIDE_INT);
153.4054 -+static int nios2_use_dfa_pipeline_interface (void);
153.4055 -+static int nios2_issue_rate (void);
153.4056 -+static struct machine_function *nios2_init_machine_status (void);
153.4057 -+static bool nios2_in_small_data_p (tree);
153.4058 -+static rtx save_reg (int, HOST_WIDE_INT, rtx);
153.4059 -+static rtx restore_reg (int, HOST_WIDE_INT);
153.4060 -+static unsigned int nios2_section_type_flags (tree, const char *, int);
153.4061 -+static void nios2_init_builtins (void);
153.4062 -+static rtx nios2_expand_builtin (tree, rtx, rtx, enum machine_mode, int);
153.4063 -+static bool nios2_function_ok_for_sibcall (tree, tree);
153.4064 -+static void nios2_encode_section_info (tree, rtx, int);
153.4065 -+
153.4066 -+/* Initialize the GCC target structure. */
153.4067 -+#undef TARGET_ASM_FUNCTION_PROLOGUE
153.4068 -+#define TARGET_ASM_FUNCTION_PROLOGUE nios2_asm_function_prologue
153.4069 -+
153.4070 -+#undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE
153.4071 -+#define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE \
153.4072 -+ nios2_use_dfa_pipeline_interface
153.4073 -+#undef TARGET_SCHED_ISSUE_RATE
153.4074 -+#define TARGET_SCHED_ISSUE_RATE nios2_issue_rate
153.4075 -+#undef TARGET_IN_SMALL_DATA_P
153.4076 -+#define TARGET_IN_SMALL_DATA_P nios2_in_small_data_p
153.4077 -+#undef TARGET_ENCODE_SECTION_INFO
153.4078 -+#define TARGET_ENCODE_SECTION_INFO nios2_encode_section_info
153.4079 -+#undef TARGET_SECTION_TYPE_FLAGS
153.4080 -+#define TARGET_SECTION_TYPE_FLAGS nios2_section_type_flags
153.4081 -+
153.4082 -+#undef TARGET_INIT_BUILTINS
153.4083 -+#define TARGET_INIT_BUILTINS nios2_init_builtins
153.4084 -+#undef TARGET_EXPAND_BUILTIN
153.4085 -+#define TARGET_EXPAND_BUILTIN nios2_expand_builtin
153.4086 -+
153.4087 -+#undef TARGET_FUNCTION_OK_FOR_SIBCALL
153.4088 -+#define TARGET_FUNCTION_OK_FOR_SIBCALL nios2_function_ok_for_sibcall
153.4089 -+
153.4090 -+#undef TARGET_RTX_COSTS
153.4091 -+#define TARGET_RTX_COSTS nios2_rtx_costs
153.4092 -+
153.4093 -+
153.4094 -+struct gcc_target targetm = TARGET_INITIALIZER;
153.4095 -+
153.4096 -+
153.4097 -+
153.4098 -+/* Threshold for data being put into the small data/bss area, instead
153.4099 -+ of the normal data area (references to the small data/bss area take
153.4100 -+ 1 instruction, and use the global pointer, references to the normal
153.4101 -+ data area takes 2 instructions). */
153.4102 -+unsigned HOST_WIDE_INT nios2_section_threshold = NIOS2_DEFAULT_GVALUE;
153.4103 -+
153.4104 -+
153.4105 -+/* Structure to be filled in by compute_frame_size with register
153.4106 -+ save masks, and offsets for the current function. */
153.4107 -+
153.4108 -+struct nios2_frame_info
153.4109 -+GTY (())
153.4110 -+{
153.4111 -+ long total_size; /* # bytes that the entire frame takes up */
153.4112 -+ long var_size; /* # bytes that variables take up */
153.4113 -+ long args_size; /* # bytes that outgoing arguments take up */
153.4114 -+ int save_reg_size; /* # bytes needed to store gp regs */
153.4115 -+ int save_reg_rounded; /* # bytes needed to store gp regs */
153.4116 -+ long save_regs_offset; /* offset from new sp to store gp registers */
153.4117 -+ int initialized; /* != 0 if frame size already calculated */
153.4118 -+ int num_regs; /* number of gp registers saved */
153.4119 -+};
153.4120 -+
153.4121 -+struct machine_function
153.4122 -+GTY (())
153.4123 -+{
153.4124 -+
153.4125 -+ /* Current frame information, calculated by compute_frame_size. */
153.4126 -+ struct nios2_frame_info frame;
153.4127 -+};
153.4128 -+
153.4129 -+
153.4130 -+/***************************************
153.4131 -+ * Section encodings
153.4132 -+ ***************************************/
153.4133 -+
153.4134 -+
153.4135 -+
153.4136 -+
153.4137 -+
153.4138 -+/***************************************
153.4139 -+ * Stack Layout and Calling Conventions
153.4140 -+ ***************************************/
153.4141 -+
153.4142 -+
153.4143 -+#define TOO_BIG_OFFSET(X) ((X) > ((1 << 15) - 1))
153.4144 -+#define TEMP_REG_NUM 8
153.4145 -+
153.4146 -+static void
153.4147 -+nios2_asm_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
153.4148 -+{
153.4149 -+ if (flag_verbose_asm || flag_debug_asm)
153.4150 -+ {
153.4151 -+ compute_frame_size ();
153.4152 -+ dump_frame_size (file);
153.4153 -+ }
153.4154 -+}
153.4155 -+
153.4156 -+static rtx
153.4157 -+save_reg (int regno, HOST_WIDE_INT offset, rtx cfa_store_reg)
153.4158 -+{
153.4159 -+ rtx insn, stack_slot;
153.4160 -+
153.4161 -+ stack_slot = gen_rtx_PLUS (SImode,
153.4162 -+ cfa_store_reg,
153.4163 -+ GEN_INT (offset));
153.4164 -+
153.4165 -+ insn = emit_insn (gen_rtx_SET (SImode,
153.4166 -+ gen_rtx_MEM (SImode, stack_slot),
153.4167 -+ gen_rtx_REG (SImode, regno)));
153.4168 -+
153.4169 -+ RTX_FRAME_RELATED_P (insn) = 1;
153.4170 -+
153.4171 -+ return insn;
153.4172 -+}
153.4173 -+
153.4174 -+static rtx
153.4175 -+restore_reg (int regno, HOST_WIDE_INT offset)
153.4176 -+{
153.4177 -+ rtx insn, stack_slot;
153.4178 -+
153.4179 -+ if (TOO_BIG_OFFSET (offset))
153.4180 -+ {
153.4181 -+ stack_slot = gen_rtx_REG (SImode, TEMP_REG_NUM);
153.4182 -+ insn = emit_insn (gen_rtx_SET (SImode,
153.4183 -+ stack_slot,
153.4184 -+ GEN_INT (offset)));
153.4185 -+
153.4186 -+ insn = emit_insn (gen_rtx_SET (SImode,
153.4187 -+ stack_slot,
153.4188 -+ gen_rtx_PLUS (SImode,
153.4189 -+ stack_slot,
153.4190 -+ stack_pointer_rtx)));
153.4191 -+ }
153.4192 -+ else
153.4193 -+ {
153.4194 -+ stack_slot = gen_rtx_PLUS (SImode,
153.4195 -+ stack_pointer_rtx,
153.4196 -+ GEN_INT (offset));
153.4197 -+ }
153.4198 -+
153.4199 -+ stack_slot = gen_rtx_MEM (SImode, stack_slot);
153.4200 -+
153.4201 -+ insn = emit_move_insn (gen_rtx_REG (SImode, regno), stack_slot);
153.4202 -+
153.4203 -+ return insn;
153.4204 -+}
153.4205 -+
153.4206 -+
153.4207 -+/* There are two possible paths for prologue expansion,
153.4208 -+- the first is if the total frame size is < 2^15-1. In that
153.4209 -+case all the immediates will fit into the 16-bit immediate
153.4210 -+fields.
153.4211 -+- the second is when the frame size is too big, in that
153.4212 -+case an additional temporary register is used, first
153.4213 -+as a cfa_temp to offset the sp, second as the cfa_store
153.4214 -+register.
153.4215 -+
153.4216 -+See the comment above dwarf2out_frame_debug_expr in
153.4217 -+dwarf2out.c for more explanation of the "rules."
153.4218 -+
153.4219 -+
153.4220 -+Case 1:
153.4221 -+Rule # Example Insn Effect
153.4222 -+2 addi sp, sp, -total_frame_size cfa.reg=sp, cfa.offset=total_frame_size
153.4223 -+ cfa_store.reg=sp, cfa_store.offset=total_frame_size
153.4224 -+12 stw ra, offset(sp)
153.4225 -+12 stw r16, offset(sp)
153.4226 -+1 mov fp, sp
153.4227 -+
153.4228 -+Case 2:
153.4229 -+Rule # Example Insn Effect
153.4230 -+6 movi r8, total_frame_size cfa_temp.reg=r8, cfa_temp.offset=total_frame_size
153.4231 -+2 sub sp, sp, r8 cfa.reg=sp, cfa.offset=total_frame_size
153.4232 -+ cfa_store.reg=sp, cfa_store.offset=total_frame_size
153.4233 -+5 add r8, r8, sp cfa_store.reg=r8, cfa_store.offset=0
153.4234 -+12 stw ra, offset(r8)
153.4235 -+12 stw r16, offset(r8)
153.4236 -+1 mov fp, sp
153.4237 -+
153.4238 -+*/
153.4239 -+
153.4240 -+void
153.4241 -+expand_prologue ()
153.4242 -+{
153.4243 -+ int i;
153.4244 -+ HOST_WIDE_INT total_frame_size;
153.4245 -+ int cfa_store_offset;
153.4246 -+ rtx insn;
153.4247 -+ rtx cfa_store_reg = 0;
153.4248 -+
153.4249 -+ total_frame_size = compute_frame_size ();
153.4250 -+
153.4251 -+ if (total_frame_size)
153.4252 -+ {
153.4253 -+
153.4254 -+ if (TOO_BIG_OFFSET (total_frame_size))
153.4255 -+ {
153.4256 -+ /* cfa_temp and cfa_store_reg are the same register,
153.4257 -+ cfa_store_reg overwrites cfa_temp */
153.4258 -+ cfa_store_reg = gen_rtx_REG (SImode, TEMP_REG_NUM);
153.4259 -+ insn = emit_insn (gen_rtx_SET (SImode,
153.4260 -+ cfa_store_reg,
153.4261 -+ GEN_INT (total_frame_size)));
153.4262 -+
153.4263 -+ RTX_FRAME_RELATED_P (insn) = 1;
153.4264 -+
153.4265 -+
153.4266 -+ insn = gen_rtx_SET (SImode,
153.4267 -+ stack_pointer_rtx,
153.4268 -+ gen_rtx_MINUS (SImode,
153.4269 -+ stack_pointer_rtx,
153.4270 -+ cfa_store_reg));
153.4271 -+
153.4272 -+ insn = emit_insn (insn);
153.4273 -+ RTX_FRAME_RELATED_P (insn) = 1;
153.4274 -+
153.4275 -+
153.4276 -+ /* if there are no registers to save, I don't need to
153.4277 -+ create a cfa_store */
153.4278 -+ if (cfun->machine->frame.save_reg_size)
153.4279 -+ {
153.4280 -+ insn = gen_rtx_SET (SImode,
153.4281 -+ cfa_store_reg,
153.4282 -+ gen_rtx_PLUS (SImode,
153.4283 -+ cfa_store_reg,
153.4284 -+ stack_pointer_rtx));
153.4285 -+
153.4286 -+ insn = emit_insn (insn);
153.4287 -+ RTX_FRAME_RELATED_P (insn) = 1;
153.4288 -+ }
153.4289 -+
153.4290 -+ cfa_store_offset
153.4291 -+ = total_frame_size
153.4292 -+ - (cfun->machine->frame.save_regs_offset
153.4293 -+ + cfun->machine->frame.save_reg_rounded);
153.4294 -+ }
153.4295 -+ else
153.4296 -+ {
153.4297 -+ insn = gen_rtx_SET (SImode,
153.4298 -+ stack_pointer_rtx,
153.4299 -+ gen_rtx_PLUS (SImode,
153.4300 -+ stack_pointer_rtx,
153.4301 -+ GEN_INT (-total_frame_size)));
153.4302 -+ insn = emit_insn (insn);
153.4303 -+ RTX_FRAME_RELATED_P (insn) = 1;
153.4304 -+
153.4305 -+ cfa_store_reg = stack_pointer_rtx;
153.4306 -+ cfa_store_offset
153.4307 -+ = cfun->machine->frame.save_regs_offset
153.4308 -+ + cfun->machine->frame.save_reg_rounded;
153.4309 -+ }
153.4310 -+ }
153.4311 -+
153.4312 -+ if (MUST_SAVE_REGISTER (RA_REGNO))
153.4313 -+ {
153.4314 -+ cfa_store_offset -= 4;
153.4315 -+ save_reg (RA_REGNO, cfa_store_offset, cfa_store_reg);
153.4316 -+ }
153.4317 -+ if (MUST_SAVE_REGISTER (FP_REGNO))
153.4318 -+ {
153.4319 -+ cfa_store_offset -= 4;
153.4320 -+ save_reg (FP_REGNO, cfa_store_offset, cfa_store_reg);
153.4321 -+ }
153.4322 -+
153.4323 -+ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
153.4324 -+ {
153.4325 -+ if (MUST_SAVE_REGISTER (i) && i != FP_REGNO && i != RA_REGNO)
153.4326 -+ {
153.4327 -+ cfa_store_offset -= 4;
153.4328 -+ save_reg (i, cfa_store_offset, cfa_store_reg);
153.4329 -+ }
153.4330 -+ }
153.4331 -+
153.4332 -+ if (frame_pointer_needed)
153.4333 -+ {
153.4334 -+ insn = emit_insn (gen_rtx_SET (SImode,
153.4335 -+ gen_rtx_REG (SImode, FP_REGNO),
153.4336 -+ gen_rtx_REG (SImode, SP_REGNO)));
153.4337 -+
153.4338 -+ RTX_FRAME_RELATED_P (insn) = 1;
153.4339 -+ }
153.4340 -+
153.4341 -+ /* If we are profiling, make sure no instructions are scheduled before
153.4342 -+ the call to mcount. */
153.4343 -+ if (current_function_profile)
153.4344 -+ emit_insn (gen_blockage ());
153.4345 -+}
153.4346 -+
153.4347 -+void
153.4348 -+expand_epilogue (bool sibcall_p)
153.4349 -+{
153.4350 -+ rtx insn;
153.4351 -+ int i;
153.4352 -+ HOST_WIDE_INT total_frame_size;
153.4353 -+ int register_store_offset;
153.4354 -+
153.4355 -+ total_frame_size = compute_frame_size ();
153.4356 -+
153.4357 -+ if (!sibcall_p && nios2_can_use_return_insn ())
153.4358 -+ {
153.4359 -+ insn = emit_jump_insn (gen_return ());
153.4360 -+ return;
153.4361 -+ }
153.4362 -+
153.4363 -+ emit_insn (gen_blockage ());
153.4364 -+
153.4365 -+ register_store_offset =
153.4366 -+ cfun->machine->frame.save_regs_offset +
153.4367 -+ cfun->machine->frame.save_reg_rounded;
153.4368 -+
153.4369 -+ if (MUST_SAVE_REGISTER (RA_REGNO))
153.4370 -+ {
153.4371 -+ register_store_offset -= 4;
153.4372 -+ restore_reg (RA_REGNO, register_store_offset);
153.4373 -+ }
153.4374 -+
153.4375 -+ if (MUST_SAVE_REGISTER (FP_REGNO))
153.4376 -+ {
153.4377 -+ register_store_offset -= 4;
153.4378 -+ restore_reg (FP_REGNO, register_store_offset);
153.4379 -+ }
153.4380 -+
153.4381 -+ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
153.4382 -+ {
153.4383 -+ if (MUST_SAVE_REGISTER (i) && i != FP_REGNO && i != RA_REGNO)
153.4384 -+ {
153.4385 -+ register_store_offset -= 4;
153.4386 -+ restore_reg (i, register_store_offset);
153.4387 -+ }
153.4388 -+ }
153.4389 -+
153.4390 -+ if (total_frame_size)
153.4391 -+ {
153.4392 -+ rtx sp_adjust;
153.4393 -+
153.4394 -+ if (TOO_BIG_OFFSET (total_frame_size))
153.4395 -+ {
153.4396 -+ sp_adjust = gen_rtx_REG (SImode, TEMP_REG_NUM);
153.4397 -+ insn = emit_insn (gen_rtx_SET (SImode,
153.4398 -+ sp_adjust,
153.4399 -+ GEN_INT (total_frame_size)));
153.4400 -+
153.4401 -+ }
153.4402 -+ else
153.4403 -+ {
153.4404 -+ sp_adjust = GEN_INT (total_frame_size);
153.4405 -+ }
153.4406 -+
153.4407 -+ insn = gen_rtx_SET (SImode,
153.4408 -+ stack_pointer_rtx,
153.4409 -+ gen_rtx_PLUS (SImode,
153.4410 -+ stack_pointer_rtx,
153.4411 -+ sp_adjust));
153.4412 -+ insn = emit_insn (insn);
153.4413 -+ }
153.4414 -+
153.4415 -+
153.4416 -+ if (!sibcall_p)
153.4417 -+ {
153.4418 -+ insn = emit_jump_insn (gen_return_from_epilogue (gen_rtx (REG, Pmode,
153.4419 -+ RA_REGNO)));
153.4420 -+ }
153.4421 -+}
153.4422 -+
153.4423 -+
153.4424 -+bool
153.4425 -+nios2_function_ok_for_sibcall (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
153.4426 -+{
153.4427 -+ return true;
153.4428 -+}
153.4429 -+
153.4430 -+
153.4431 -+
153.4432 -+
153.4433 -+
153.4434 -+/* ----------------------- *
153.4435 -+ * Profiling
153.4436 -+ * ----------------------- */
153.4437 -+
153.4438 -+void
153.4439 -+function_profiler (FILE *file, int labelno)
153.4440 -+{
153.4441 -+ fprintf (file, "\t%s mcount begin, label: .LP%d\n",
153.4442 -+ ASM_COMMENT_START, labelno);
153.4443 -+ fprintf (file, "\tnextpc\tr8\n");
153.4444 -+ fprintf (file, "\tmov\tr9, ra\n");
153.4445 -+ fprintf (file, "\tmovhi\tr10, %%hiadj(.LP%d)\n", labelno);
153.4446 -+ fprintf (file, "\taddi\tr10, r10, %%lo(.LP%d)\n", labelno);
153.4447 -+ fprintf (file, "\tcall\tmcount\n");
153.4448 -+ fprintf (file, "\tmov\tra, r9\n");
153.4449 -+ fprintf (file, "\t%s mcount end\n", ASM_COMMENT_START);
153.4450 -+}
153.4451 -+
153.4452 -+
153.4453 -+/***************************************
153.4454 -+ * Stack Layout
153.4455 -+ ***************************************/
153.4456 -+
153.4457 -+
153.4458 -+void
153.4459 -+dump_frame_size (FILE *file)
153.4460 -+{
153.4461 -+ fprintf (file, "\t%s Current Frame Info\n", ASM_COMMENT_START);
153.4462 -+
153.4463 -+ fprintf (file, "\t%s total_size = %ld\n", ASM_COMMENT_START,
153.4464 -+ cfun->machine->frame.total_size);
153.4465 -+ fprintf (file, "\t%s var_size = %ld\n", ASM_COMMENT_START,
153.4466 -+ cfun->machine->frame.var_size);
153.4467 -+ fprintf (file, "\t%s args_size = %ld\n", ASM_COMMENT_START,
153.4468 -+ cfun->machine->frame.args_size);
153.4469 -+ fprintf (file, "\t%s save_reg_size = %d\n", ASM_COMMENT_START,
153.4470 -+ cfun->machine->frame.save_reg_size);
153.4471 -+ fprintf (file, "\t%s save_reg_rounded = %d\n", ASM_COMMENT_START,
153.4472 -+ cfun->machine->frame.save_reg_rounded);
153.4473 -+ fprintf (file, "\t%s initialized = %d\n", ASM_COMMENT_START,
153.4474 -+ cfun->machine->frame.initialized);
153.4475 -+ fprintf (file, "\t%s num_regs = %d\n", ASM_COMMENT_START,
153.4476 -+ cfun->machine->frame.num_regs);
153.4477 -+ fprintf (file, "\t%s save_regs_offset = %ld\n", ASM_COMMENT_START,
153.4478 -+ cfun->machine->frame.save_regs_offset);
153.4479 -+ fprintf (file, "\t%s current_function_is_leaf = %d\n", ASM_COMMENT_START,
153.4480 -+ current_function_is_leaf);
153.4481 -+ fprintf (file, "\t%s frame_pointer_needed = %d\n", ASM_COMMENT_START,
153.4482 -+ frame_pointer_needed);
153.4483 -+ fprintf (file, "\t%s pretend_args_size = %d\n", ASM_COMMENT_START,
153.4484 -+ current_function_pretend_args_size);
153.4485 -+
153.4486 -+}
153.4487 -+
153.4488 -+
153.4489 -+/* Return the bytes needed to compute the frame pointer from the current
153.4490 -+ stack pointer.
153.4491 -+*/
153.4492 -+
153.4493 -+HOST_WIDE_INT
153.4494 -+compute_frame_size ()
153.4495 -+{
153.4496 -+ unsigned int regno;
153.4497 -+ HOST_WIDE_INT var_size; /* # of var. bytes allocated */
153.4498 -+ HOST_WIDE_INT total_size; /* # bytes that the entire frame takes up */
153.4499 -+ HOST_WIDE_INT save_reg_size; /* # bytes needed to store callee save regs */
153.4500 -+ HOST_WIDE_INT save_reg_rounded;
153.4501 -+ /* # bytes needed to store callee save regs (rounded) */
153.4502 -+ HOST_WIDE_INT out_args_size; /* # bytes needed for outgoing args */
153.4503 -+
153.4504 -+ save_reg_size = 0;
153.4505 -+ var_size = STACK_ALIGN (get_frame_size ());
153.4506 -+ out_args_size = STACK_ALIGN (current_function_outgoing_args_size);
153.4507 -+
153.4508 -+ total_size = var_size + out_args_size;
153.4509 -+
153.4510 -+ /* Calculate space needed for gp registers. */
153.4511 -+ for (regno = 0; regno <= FIRST_PSEUDO_REGISTER; regno++)
153.4512 -+ {
153.4513 -+ if (MUST_SAVE_REGISTER (regno))
153.4514 -+ {
153.4515 -+ save_reg_size += 4;
153.4516 -+ }
153.4517 -+ }
153.4518 -+
153.4519 -+ save_reg_rounded = STACK_ALIGN (save_reg_size);
153.4520 -+ total_size += save_reg_rounded;
153.4521 -+
153.4522 -+ total_size += STACK_ALIGN (current_function_pretend_args_size);
153.4523 -+
153.4524 -+ /* Save other computed information. */
153.4525 -+ cfun->machine->frame.total_size = total_size;
153.4526 -+ cfun->machine->frame.var_size = var_size;
153.4527 -+ cfun->machine->frame.args_size = current_function_outgoing_args_size;
153.4528 -+ cfun->machine->frame.save_reg_size = save_reg_size;
153.4529 -+ cfun->machine->frame.save_reg_rounded = save_reg_rounded;
153.4530 -+ cfun->machine->frame.initialized = reload_completed;
153.4531 -+ cfun->machine->frame.num_regs = save_reg_size / UNITS_PER_WORD;
153.4532 -+
153.4533 -+ cfun->machine->frame.save_regs_offset
153.4534 -+ = save_reg_rounded ? current_function_outgoing_args_size + var_size : 0;
153.4535 -+
153.4536 -+ return total_size;
153.4537 -+}
153.4538 -+
153.4539 -+
153.4540 -+int
153.4541 -+nios2_initial_elimination_offset (int from, int to ATTRIBUTE_UNUSED)
153.4542 -+{
153.4543 -+ int offset;
153.4544 -+
153.4545 -+ /* Set OFFSET to the offset from the stack pointer. */
153.4546 -+ switch (from)
153.4547 -+ {
153.4548 -+ case FRAME_POINTER_REGNUM:
153.4549 -+ offset = 0;
153.4550 -+ break;
153.4551 -+
153.4552 -+ case ARG_POINTER_REGNUM:
153.4553 -+ compute_frame_size ();
153.4554 -+ offset = cfun->machine->frame.total_size;
153.4555 -+ offset -= current_function_pretend_args_size;
153.4556 -+ break;
153.4557 -+
153.4558 -+ case RETURN_ADDRESS_POINTER_REGNUM:
153.4559 -+ compute_frame_size ();
153.4560 -+ /* since the return address is always the first of the
153.4561 -+ saved registers, return the offset to the beginning
153.4562 -+ of the saved registers block */
153.4563 -+ offset = cfun->machine->frame.save_regs_offset;
153.4564 -+ break;
153.4565 -+
153.4566 -+ default:
153.4567 -+ abort ();
153.4568 -+ }
153.4569 -+
153.4570 -+ return offset;
153.4571 -+}
153.4572 -+
153.4573 -+/* Return nonzero if this function is known to have a null epilogue.
153.4574 -+ This allows the optimizer to omit jumps to jumps if no stack
153.4575 -+ was created. */
153.4576 -+int
153.4577 -+nios2_can_use_return_insn ()
153.4578 -+{
153.4579 -+ if (!reload_completed)
153.4580 -+ return 0;
153.4581 -+
153.4582 -+ if (regs_ever_live[RA_REGNO] || current_function_profile)
153.4583 -+ return 0;
153.4584 -+
153.4585 -+ if (cfun->machine->frame.initialized)
153.4586 -+ return cfun->machine->frame.total_size == 0;
153.4587 -+
153.4588 -+ return compute_frame_size () == 0;
153.4589 -+}
153.4590 -+
153.4591 -+
153.4592 -+
153.4593 -+
153.4594 -+
153.4595 -+/***************************************
153.4596 -+ *
153.4597 -+ ***************************************/
153.4598 -+
153.4599 -+const char *nios2_sys_nosys_string; /* for -msys=nosys */
153.4600 -+const char *nios2_sys_lib_string; /* for -msys-lib= */
153.4601 -+const char *nios2_sys_crt0_string; /* for -msys-crt0= */
153.4602 -+
153.4603 -+void
153.4604 -+override_options ()
153.4605 -+{
153.4606 -+ /* Function to allocate machine-dependent function status. */
153.4607 -+ init_machine_status = &nios2_init_machine_status;
153.4608 -+
153.4609 -+ nios2_section_threshold
153.4610 -+ = g_switch_set ? g_switch_value : NIOS2_DEFAULT_GVALUE;
153.4611 -+
153.4612 -+ if (nios2_sys_nosys_string && *nios2_sys_nosys_string)
153.4613 -+ {
153.4614 -+ error ("invalid option '-msys=nosys%s'", nios2_sys_nosys_string);
153.4615 -+ }
153.4616 -+
153.4617 -+ /* If we don't have mul, we don't have mulx either! */
153.4618 -+ if (!TARGET_HAS_MUL && TARGET_HAS_MULX)
153.4619 -+ {
153.4620 -+ target_flags &= ~HAS_MULX_FLAG;
153.4621 -+ }
153.4622 -+
153.4623 -+}
153.4624 -+
153.4625 -+void
153.4626 -+optimization_options (int level, int size)
153.4627 -+{
153.4628 -+ if (level || size)
153.4629 -+ {
153.4630 -+ target_flags |= INLINE_MEMCPY_FLAG;
153.4631 -+ }
153.4632 -+
153.4633 -+ if (level >= 3 && !size)
153.4634 -+ {
153.4635 -+ target_flags |= FAST_SW_DIV_FLAG;
153.4636 -+ }
153.4637 -+}
153.4638 -+
153.4639 -+/* Allocate a chunk of memory for per-function machine-dependent data. */
153.4640 -+static struct machine_function *
153.4641 -+nios2_init_machine_status ()
153.4642 -+{
153.4643 -+ return ((struct machine_function *)
153.4644 -+ ggc_alloc_cleared (sizeof (struct machine_function)));
153.4645 -+}
153.4646 -+
153.4647 -+
153.4648 -+
153.4649 -+/*****************
153.4650 -+ * Describing Relative Costs of Operations
153.4651 -+ *****************/
153.4652 -+
153.4653 -+/* Compute a (partial) cost for rtx X. Return true if the complete
153.4654 -+ cost has been computed, and false if subexpressions should be
153.4655 -+ scanned. In either case, *TOTAL contains the cost result. */
153.4656 -+
153.4657 -+
153.4658 -+
153.4659 -+static bool
153.4660 -+nios2_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED, int *total)
153.4661 -+{
153.4662 -+ switch (code)
153.4663 -+ {
153.4664 -+ case CONST_INT:
153.4665 -+ if (INTVAL (x) == 0)
153.4666 -+ {
153.4667 -+ *total = COSTS_N_INSNS (0);
153.4668 -+ return true;
153.4669 -+ }
153.4670 -+ else if (SMALL_INT (INTVAL (x))
153.4671 -+ || SMALL_INT_UNSIGNED (INTVAL (x))
153.4672 -+ || UPPER16_INT (INTVAL (x)))
153.4673 -+ {
153.4674 -+ *total = COSTS_N_INSNS (2);
153.4675 -+ return true;
153.4676 -+ }
153.4677 -+ else
153.4678 -+ {
153.4679 -+ *total = COSTS_N_INSNS (4);
153.4680 -+ return true;
153.4681 -+ }
153.4682 -+
153.4683 -+ case LABEL_REF:
153.4684 -+ case SYMBOL_REF:
153.4685 -+ /* ??? gp relative stuff will fit in here */
153.4686 -+ /* fall through */
153.4687 -+ case CONST:
153.4688 -+ case CONST_DOUBLE:
153.4689 -+ {
153.4690 -+ *total = COSTS_N_INSNS (4);
153.4691 -+ return true;
153.4692 -+ }
153.4693 -+
153.4694 -+ case MULT:
153.4695 -+ {
153.4696 -+ *total = COSTS_N_INSNS (1);
153.4697 -+ return false;
153.4698 -+ }
153.4699 -+ case SIGN_EXTEND:
153.4700 -+ {
153.4701 -+ *total = COSTS_N_INSNS (3);
153.4702 -+ return false;
153.4703 -+ }
153.4704 -+ case ZERO_EXTEND:
153.4705 -+ {
153.4706 -+ *total = COSTS_N_INSNS (1);
153.4707 -+ return false;
153.4708 -+ }
153.4709 -+
153.4710 -+ default:
153.4711 -+ return false;
153.4712 -+ }
153.4713 -+}
153.4714 -+
153.4715 -+
153.4716 -+/***************************************
153.4717 -+ * INSTRUCTION SUPPORT
153.4718 -+ *
153.4719 -+ * These functions are used within the Machine Description to
153.4720 -+ * handle common or complicated output and expansions from
153.4721 -+ * instructions.
153.4722 -+ ***************************************/
153.4723 -+
153.4724 -+int
153.4725 -+nios2_emit_move_sequence (rtx *operands, enum machine_mode mode)
153.4726 -+{
153.4727 -+ rtx to = operands[0];
153.4728 -+ rtx from = operands[1];
153.4729 -+
153.4730 -+ if (!register_operand (to, mode) && !reg_or_0_operand (from, mode))
153.4731 -+ {
153.4732 -+ if (no_new_pseudos)
153.4733 -+ internal_error ("Trying to force_reg no_new_pseudos == 1");
153.4734 -+ from = copy_to_mode_reg (mode, from);
153.4735 -+ }
153.4736 -+
153.4737 -+ operands[0] = to;
153.4738 -+ operands[1] = from;
153.4739 -+ return 0;
153.4740 -+}
153.4741 -+
153.4742 -+/* Divide Support */
153.4743 -+
153.4744 -+/*
153.4745 -+ If -O3 is used, we want to output a table lookup for
153.4746 -+ divides between small numbers (both num and den >= 0
153.4747 -+ and < 0x10). The overhead of this method in the worse
153.4748 -+ case is 40 bytes in the text section (10 insns) and
153.4749 -+ 256 bytes in the data section. Additional divides do
153.4750 -+ not incur additional penalties in the data section.
153.4751 -+
153.4752 -+ Code speed is improved for small divides by about 5x
153.4753 -+ when using this method in the worse case (~9 cycles
153.4754 -+ vs ~45). And in the worse case divides not within the
153.4755 -+ table are penalized by about 10% (~5 cycles vs ~45).
153.4756 -+ However in the typical case the penalty is not as bad
153.4757 -+ because doing the long divide in only 45 cycles is
153.4758 -+ quite optimistic.
153.4759 -+
153.4760 -+ ??? It would be nice to have some benchmarks other
153.4761 -+ than Dhrystone to back this up.
153.4762 -+
153.4763 -+ This bit of expansion is to create this instruction
153.4764 -+ sequence as rtl.
153.4765 -+ or $8, $4, $5
153.4766 -+ slli $9, $4, 4
153.4767 -+ cmpgeui $3, $8, 16
153.4768 -+ beq $3, $0, .L3
153.4769 -+ or $10, $9, $5
153.4770 -+ add $12, $11, divide_table
153.4771 -+ ldbu $2, 0($12)
153.4772 -+ br .L1
153.4773 -+.L3:
153.4774 -+ call slow_div
153.4775 -+.L1:
153.4776 -+# continue here with result in $2
153.4777 -+
153.4778 -+ ??? Ideally I would like the emit libcall block to contain
153.4779 -+ all of this code, but I don't know how to do that. What it
153.4780 -+ means is that if the divide can be eliminated, it may not
153.4781 -+ completely disappear.
153.4782 -+
153.4783 -+ ??? The __divsi3_table label should ideally be moved out
153.4784 -+ of this block and into a global. If it is placed into the
153.4785 -+ sdata section we can save even more cycles by doing things
153.4786 -+ gp relative.
153.4787 -+*/
153.4788 -+int
153.4789 -+nios2_emit_expensive_div (rtx *operands, enum machine_mode mode)
153.4790 -+{
153.4791 -+ rtx or_result, shift_left_result;
153.4792 -+ rtx lookup_value;
153.4793 -+ rtx lab1, lab3;
153.4794 -+ rtx insns;
153.4795 -+ rtx libfunc;
153.4796 -+ rtx final_result;
153.4797 -+ rtx tmp;
153.4798 -+
153.4799 -+ /* it may look a little generic, but only SImode
153.4800 -+ is supported for now */
153.4801 -+ if (mode != SImode)
153.4802 -+ abort ();
153.4803 -+
153.4804 -+ libfunc = sdiv_optab->handlers[(int) SImode].libfunc;
153.4805 -+
153.4806 -+
153.4807 -+
153.4808 -+ lab1 = gen_label_rtx ();
153.4809 -+ lab3 = gen_label_rtx ();
153.4810 -+
153.4811 -+ or_result = expand_simple_binop (SImode, IOR,
153.4812 -+ operands[1], operands[2],
153.4813 -+ 0, 0, OPTAB_LIB_WIDEN);
153.4814 -+
153.4815 -+ emit_cmp_and_jump_insns (or_result, GEN_INT (15), GTU, 0,
153.4816 -+ GET_MODE (or_result), 0, lab3);
153.4817 -+ JUMP_LABEL (get_last_insn ()) = lab3;
153.4818 -+
153.4819 -+ shift_left_result = expand_simple_binop (SImode, ASHIFT,
153.4820 -+ operands[1], GEN_INT (4),
153.4821 -+ 0, 0, OPTAB_LIB_WIDEN);
153.4822 -+
153.4823 -+ lookup_value = expand_simple_binop (SImode, IOR,
153.4824 -+ shift_left_result, operands[2],
153.4825 -+ 0, 0, OPTAB_LIB_WIDEN);
153.4826 -+
153.4827 -+ convert_move (operands[0],
153.4828 -+ gen_rtx (MEM, QImode,
153.4829 -+ gen_rtx (PLUS, SImode,
153.4830 -+ lookup_value,
153.4831 -+ gen_rtx_SYMBOL_REF (SImode, "__divsi3_table"))),
153.4832 -+ 1);
153.4833 -+
153.4834 -+
153.4835 -+ tmp = emit_jump_insn (gen_jump (lab1));
153.4836 -+ JUMP_LABEL (tmp) = lab1;
153.4837 -+ emit_barrier ();
153.4838 -+
153.4839 -+ emit_label (lab3);
153.4840 -+ LABEL_NUSES (lab3) = 1;
153.4841 -+
153.4842 -+ start_sequence ();
153.4843 -+ final_result = emit_library_call_value (libfunc, NULL_RTX,
153.4844 -+ LCT_CONST, SImode, 2,
153.4845 -+ operands[1], SImode,
153.4846 -+ operands[2], SImode);
153.4847 -+
153.4848 -+
153.4849 -+ insns = get_insns ();
153.4850 -+ end_sequence ();
153.4851 -+ emit_libcall_block (insns, operands[0], final_result,
153.4852 -+ gen_rtx (DIV, SImode, operands[1], operands[2]));
153.4853 -+
153.4854 -+ emit_label (lab1);
153.4855 -+ LABEL_NUSES (lab1) = 1;
153.4856 -+ return 1;
153.4857 -+}
153.4858 -+
153.4859 -+/* Branches/Compares */
153.4860 -+
153.4861 -+/* the way of handling branches/compares
153.4862 -+ in gcc is heavily borrowed from MIPS */
153.4863 -+
153.4864 -+enum internal_test
153.4865 -+{
153.4866 -+ ITEST_EQ,
153.4867 -+ ITEST_NE,
153.4868 -+ ITEST_GT,
153.4869 -+ ITEST_GE,
153.4870 -+ ITEST_LT,
153.4871 -+ ITEST_LE,
153.4872 -+ ITEST_GTU,
153.4873 -+ ITEST_GEU,
153.4874 -+ ITEST_LTU,
153.4875 -+ ITEST_LEU,
153.4876 -+ ITEST_MAX
153.4877 -+};
153.4878 -+
153.4879 -+static enum internal_test map_test_to_internal_test (enum rtx_code);
153.4880 -+
153.4881 -+/* Cached operands, and operator to compare for use in set/branch/trap
153.4882 -+ on condition codes. */
153.4883 -+rtx branch_cmp[2];
153.4884 -+enum cmp_type branch_type;
153.4885 -+
153.4886 -+/* Make normal rtx_code into something we can index from an array */
153.4887 -+
153.4888 -+static enum internal_test
153.4889 -+map_test_to_internal_test (enum rtx_code test_code)
153.4890 -+{
153.4891 -+ enum internal_test test = ITEST_MAX;
153.4892 -+
153.4893 -+ switch (test_code)
153.4894 -+ {
153.4895 -+ case EQ:
153.4896 -+ test = ITEST_EQ;
153.4897 -+ break;
153.4898 -+ case NE:
153.4899 -+ test = ITEST_NE;
153.4900 -+ break;
153.4901 -+ case GT:
153.4902 -+ test = ITEST_GT;
153.4903 -+ break;
153.4904 -+ case GE:
153.4905 -+ test = ITEST_GE;
153.4906 -+ break;
153.4907 -+ case LT:
153.4908 -+ test = ITEST_LT;
153.4909 -+ break;
153.4910 -+ case LE:
153.4911 -+ test = ITEST_LE;
153.4912 -+ break;
153.4913 -+ case GTU:
153.4914 -+ test = ITEST_GTU;
153.4915 -+ break;
153.4916 -+ case GEU:
153.4917 -+ test = ITEST_GEU;
153.4918 -+ break;
153.4919 -+ case LTU:
153.4920 -+ test = ITEST_LTU;
153.4921 -+ break;
153.4922 -+ case LEU:
153.4923 -+ test = ITEST_LEU;
153.4924 -+ break;
153.4925 -+ default:
153.4926 -+ break;
153.4927 -+ }
153.4928 -+
153.4929 -+ return test;
153.4930 -+}
153.4931 -+
153.4932 -+/* Generate the code to compare (and possibly branch) two integer values
153.4933 -+ TEST_CODE is the comparison code we are trying to emulate
153.4934 -+ (or implement directly)
153.4935 -+ RESULT is where to store the result of the comparison,
153.4936 -+ or null to emit a branch
153.4937 -+ CMP0 CMP1 are the two comparison operands
153.4938 -+ DESTINATION is the destination of the branch, or null to only compare
153.4939 -+ */
153.4940 -+
153.4941 -+void
153.4942 -+gen_int_relational (enum rtx_code test_code, /* relational test (EQ, etc) */
153.4943 -+ rtx result, /* result to store comp. or 0 if branch */
153.4944 -+ rtx cmp0, /* first operand to compare */
153.4945 -+ rtx cmp1, /* second operand to compare */
153.4946 -+ rtx destination) /* destination of the branch, or 0 if compare */
153.4947 -+{
153.4948 -+ struct cmp_info
153.4949 -+ {
153.4950 -+ /* for register (or 0) compares */
153.4951 -+ enum rtx_code test_code_reg; /* code to use in instruction (LT vs. LTU) */
153.4952 -+ int reverse_regs; /* reverse registers in test */
153.4953 -+
153.4954 -+ /* for immediate compares */
153.4955 -+ enum rtx_code test_code_const;
153.4956 -+ /* code to use in instruction (LT vs. LTU) */
153.4957 -+ int const_low; /* low bound of constant we can accept */
153.4958 -+ int const_high; /* high bound of constant we can accept */
153.4959 -+ int const_add; /* constant to add */
153.4960 -+
153.4961 -+ /* generic info */
153.4962 -+ int unsignedp; /* != 0 for unsigned comparisons. */
153.4963 -+ };
153.4964 -+
153.4965 -+ static const struct cmp_info info[(int) ITEST_MAX] = {
153.4966 -+
153.4967 -+ {EQ, 0, EQ, -32768, 32767, 0, 0}, /* EQ */
153.4968 -+ {NE, 0, NE, -32768, 32767, 0, 0}, /* NE */
153.4969 -+
153.4970 -+ {LT, 1, GE, -32769, 32766, 1, 0}, /* GT */
153.4971 -+ {GE, 0, GE, -32768, 32767, 0, 0}, /* GE */
153.4972 -+ {LT, 0, LT, -32768, 32767, 0, 0}, /* LT */
153.4973 -+ {GE, 1, LT, -32769, 32766, 1, 0}, /* LE */
153.4974 -+
153.4975 -+ {LTU, 1, GEU, 0, 65534, 1, 0}, /* GTU */
153.4976 -+ {GEU, 0, GEU, 0, 65535, 0, 0}, /* GEU */
153.4977 -+ {LTU, 0, LTU, 0, 65535, 0, 0}, /* LTU */
153.4978 -+ {GEU, 1, LTU, 0, 65534, 1, 0}, /* LEU */
153.4979 -+ };
153.4980 -+
153.4981 -+ enum internal_test test;
153.4982 -+ enum machine_mode mode;
153.4983 -+ const struct cmp_info *p_info;
153.4984 -+ int branch_p;
153.4985 -+
153.4986 -+
153.4987 -+
153.4988 -+
153.4989 -+ test = map_test_to_internal_test (test_code);
153.4990 -+ if (test == ITEST_MAX)
153.4991 -+ abort ();
153.4992 -+
153.4993 -+ p_info = &info[(int) test];
153.4994 -+
153.4995 -+ mode = GET_MODE (cmp0);
153.4996 -+ if (mode == VOIDmode)
153.4997 -+ mode = GET_MODE (cmp1);
153.4998 -+
153.4999 -+ branch_p = (destination != 0);
153.5000 -+
153.5001 -+ /* We can't, under any circumstances, have const_ints in cmp0
153.5002 -+ ??? Actually we could have const0 */
153.5003 -+ if (GET_CODE (cmp0) == CONST_INT)
153.5004 -+ cmp0 = force_reg (mode, cmp0);
153.5005 -+
153.5006 -+ /* if the comparison is against an int not in legal range
153.5007 -+ move it into a register */
153.5008 -+ if (GET_CODE (cmp1) == CONST_INT)
153.5009 -+ {
153.5010 -+ HOST_WIDE_INT value = INTVAL (cmp1);
153.5011 -+
153.5012 -+ if (value < p_info->const_low || value > p_info->const_high)
153.5013 -+ cmp1 = force_reg (mode, cmp1);
153.5014 -+ }
153.5015 -+
153.5016 -+ /* Comparison to constants, may involve adding 1 to change a GT into GE.
153.5017 -+ Comparison between two registers, may involve switching operands. */
153.5018 -+ if (GET_CODE (cmp1) == CONST_INT)
153.5019 -+ {
153.5020 -+ if (p_info->const_add != 0)
153.5021 -+ {
153.5022 -+ HOST_WIDE_INT new = INTVAL (cmp1) + p_info->const_add;
153.5023 -+
153.5024 -+ /* If modification of cmp1 caused overflow,
153.5025 -+ we would get the wrong answer if we follow the usual path;
153.5026 -+ thus, x > 0xffffffffU would turn into x > 0U. */
153.5027 -+ if ((p_info->unsignedp
153.5028 -+ ? (unsigned HOST_WIDE_INT) new >
153.5029 -+ (unsigned HOST_WIDE_INT) INTVAL (cmp1)
153.5030 -+ : new > INTVAL (cmp1)) != (p_info->const_add > 0))
153.5031 -+ {
153.5032 -+ /* ??? This case can never happen with the current numbers,
153.5033 -+ but I am paranoid and would rather an abort than
153.5034 -+ a bug I will never find */
153.5035 -+ abort ();
153.5036 -+ }
153.5037 -+ else
153.5038 -+ cmp1 = GEN_INT (new);
153.5039 -+ }
153.5040 -+ }
153.5041 -+
153.5042 -+ else if (p_info->reverse_regs)
153.5043 -+ {
153.5044 -+ rtx temp = cmp0;
153.5045 -+ cmp0 = cmp1;
153.5046 -+ cmp1 = temp;
153.5047 -+ }
153.5048 -+
153.5049 -+
153.5050 -+
153.5051 -+ if (branch_p)
153.5052 -+ {
153.5053 -+ if (register_operand (cmp0, mode) && register_operand (cmp1, mode))
153.5054 -+ {
153.5055 -+ rtx insn;
153.5056 -+ rtx cond = gen_rtx (p_info->test_code_reg, mode, cmp0, cmp1);
153.5057 -+ rtx label = gen_rtx_LABEL_REF (VOIDmode, destination);
153.5058 -+
153.5059 -+ insn = gen_rtx_SET (VOIDmode, pc_rtx,
153.5060 -+ gen_rtx_IF_THEN_ELSE (VOIDmode,
153.5061 -+ cond, label, pc_rtx));
153.5062 -+ emit_jump_insn (insn);
153.5063 -+ }
153.5064 -+ else
153.5065 -+ {
153.5066 -+ rtx cond, label;
153.5067 -+
153.5068 -+ result = gen_reg_rtx (mode);
153.5069 -+
153.5070 -+ emit_move_insn (result,
153.5071 -+ gen_rtx (p_info->test_code_const, mode, cmp0,
153.5072 -+ cmp1));
153.5073 -+
153.5074 -+ cond = gen_rtx (NE, mode, result, const0_rtx);
153.5075 -+ label = gen_rtx_LABEL_REF (VOIDmode, destination);
153.5076 -+
153.5077 -+ emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx,
153.5078 -+ gen_rtx_IF_THEN_ELSE (VOIDmode,
153.5079 -+ cond,
153.5080 -+ label, pc_rtx)));
153.5081 -+ }
153.5082 -+ }
153.5083 -+ else
153.5084 -+ {
153.5085 -+ if (register_operand (cmp0, mode) && register_operand (cmp1, mode))
153.5086 -+ {
153.5087 -+ emit_move_insn (result,
153.5088 -+ gen_rtx (p_info->test_code_reg, mode, cmp0, cmp1));
153.5089 -+ }
153.5090 -+ else
153.5091 -+ {
153.5092 -+ emit_move_insn (result,
153.5093 -+ gen_rtx (p_info->test_code_const, mode, cmp0,
153.5094 -+ cmp1));
153.5095 -+ }
153.5096 -+ }
153.5097 -+
153.5098 -+}
153.5099 -+
153.5100 -+
153.5101 -+/* ??? For now conditional moves are only supported
153.5102 -+ when the mode of the operands being compared are
153.5103 -+ the same as the ones being moved */
153.5104 -+
153.5105 -+void
153.5106 -+gen_conditional_move (rtx *operands, enum machine_mode mode)
153.5107 -+{
153.5108 -+ rtx insn, cond;
153.5109 -+ rtx cmp_reg = gen_reg_rtx (mode);
153.5110 -+ enum rtx_code cmp_code = GET_CODE (operands[1]);
153.5111 -+ enum rtx_code move_code = EQ;
153.5112 -+
153.5113 -+ /* emit a comparison if it is not "simple".
153.5114 -+ Simple comparisons are X eq 0 and X ne 0 */
153.5115 -+ if ((cmp_code == EQ || cmp_code == NE) && branch_cmp[1] == const0_rtx)
153.5116 -+ {
153.5117 -+ cmp_reg = branch_cmp[0];
153.5118 -+ move_code = cmp_code;
153.5119 -+ }
153.5120 -+ else if ((cmp_code == EQ || cmp_code == NE) && branch_cmp[0] == const0_rtx)
153.5121 -+ {
153.5122 -+ cmp_reg = branch_cmp[1];
153.5123 -+ move_code = cmp_code == EQ ? NE : EQ;
153.5124 -+ }
153.5125 -+ else
153.5126 -+ gen_int_relational (cmp_code, cmp_reg, branch_cmp[0], branch_cmp[1],
153.5127 -+ NULL_RTX);
153.5128 -+
153.5129 -+ cond = gen_rtx (move_code, VOIDmode, cmp_reg, CONST0_RTX (mode));
153.5130 -+ insn = gen_rtx_SET (mode, operands[0],
153.5131 -+ gen_rtx_IF_THEN_ELSE (mode,
153.5132 -+ cond, operands[2], operands[3]));
153.5133 -+ emit_insn (insn);
153.5134 -+}
153.5135 -+
153.5136 -+/*******************
153.5137 -+ * Addressing Modes
153.5138 -+ *******************/
153.5139 -+
153.5140 -+int
153.5141 -+nios2_legitimate_address (rtx operand, enum machine_mode mode ATTRIBUTE_UNUSED,
153.5142 -+ int strict)
153.5143 -+{
153.5144 -+ int ret_val = 0;
153.5145 -+
153.5146 -+ switch (GET_CODE (operand))
153.5147 -+ {
153.5148 -+ /* direct. */
153.5149 -+ case SYMBOL_REF:
153.5150 -+ if (SYMBOL_REF_IN_NIOS2_SMALL_DATA_P (operand))
153.5151 -+ {
153.5152 -+ ret_val = 1;
153.5153 -+ break;
153.5154 -+ }
153.5155 -+ /* else, fall through */
153.5156 -+ case LABEL_REF:
153.5157 -+ case CONST_INT:
153.5158 -+ case CONST:
153.5159 -+ case CONST_DOUBLE:
153.5160 -+ /* ??? In here I need to add gp addressing */
153.5161 -+ ret_val = 0;
153.5162 -+
153.5163 -+ break;
153.5164 -+
153.5165 -+ /* Register indirect. */
153.5166 -+ case REG:
153.5167 -+ ret_val = REG_OK_FOR_BASE_P2 (operand, strict);
153.5168 -+ break;
153.5169 -+
153.5170 -+ /* Register indirect with displacement */
153.5171 -+ case PLUS:
153.5172 -+ {
153.5173 -+ rtx op0 = XEXP (operand, 0);
153.5174 -+ rtx op1 = XEXP (operand, 1);
153.5175 -+
153.5176 -+ if (REG_P (op0) && REG_P (op1))
153.5177 -+ ret_val = 0;
153.5178 -+ else if (REG_P (op0) && CONSTANT_P (op1))
153.5179 -+ ret_val = REG_OK_FOR_BASE_P2 (op0, strict)
153.5180 -+ && SMALL_INT (INTVAL (op1));
153.5181 -+ else if (REG_P (op1) && CONSTANT_P (op0))
153.5182 -+ ret_val = REG_OK_FOR_BASE_P2 (op1, strict)
153.5183 -+ && SMALL_INT (INTVAL (op0));
153.5184 -+ else
153.5185 -+ ret_val = 0;
153.5186 -+ }
153.5187 -+ break;
153.5188 -+
153.5189 -+ default:
153.5190 -+ ret_val = 0;
153.5191 -+ break;
153.5192 -+ }
153.5193 -+
153.5194 -+ return ret_val;
153.5195 -+}
153.5196 -+
153.5197 -+/* Return true if EXP should be placed in the small data section. */
153.5198 -+
153.5199 -+static bool
153.5200 -+nios2_in_small_data_p (tree exp)
153.5201 -+{
153.5202 -+ /* We want to merge strings, so we never consider them small data. */
153.5203 -+ if (TREE_CODE (exp) == STRING_CST)
153.5204 -+ return false;
153.5205 -+
153.5206 -+ if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
153.5207 -+ {
153.5208 -+ const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (exp));
153.5209 -+ /* ??? these string names need moving into
153.5210 -+ an array in some header file */
153.5211 -+ if (nios2_section_threshold > 0
153.5212 -+ && (strcmp (section, ".sbss") == 0
153.5213 -+ || strncmp (section, ".sbss.", 6) == 0
153.5214 -+ || strcmp (section, ".sdata") == 0
153.5215 -+ || strncmp (section, ".sdata.", 7) == 0))
153.5216 -+ return true;
153.5217 -+ }
153.5218 -+ else if (TREE_CODE (exp) == VAR_DECL)
153.5219 -+ {
153.5220 -+ HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (exp));
153.5221 -+
153.5222 -+ /* If this is an incomplete type with size 0, then we can't put it
153.5223 -+ in sdata because it might be too big when completed. */
153.5224 -+ if (size > 0 && size <= nios2_section_threshold)
153.5225 -+ return true;
153.5226 -+ }
153.5227 -+
153.5228 -+ return false;
153.5229 -+}
153.5230 -+
153.5231 -+static void
153.5232 -+nios2_encode_section_info (tree decl, rtx rtl, int first)
153.5233 -+{
153.5234 -+
153.5235 -+ rtx symbol;
153.5236 -+ int flags;
153.5237 -+
153.5238 -+ default_encode_section_info (decl, rtl, first);
153.5239 -+
153.5240 -+ /* Careful not to prod global register variables. */
153.5241 -+ if (GET_CODE (rtl) != MEM)
153.5242 -+ return;
153.5243 -+ symbol = XEXP (rtl, 0);
153.5244 -+ if (GET_CODE (symbol) != SYMBOL_REF)
153.5245 -+ return;
153.5246 -+
153.5247 -+ flags = SYMBOL_REF_FLAGS (symbol);
153.5248 -+
153.5249 -+ /* We don't want weak variables to be addressed with gp in case they end up with
153.5250 -+ value 0 which is not within 2^15 of $gp */
153.5251 -+ if (DECL_P (decl) && DECL_WEAK (decl))
153.5252 -+ flags |= SYMBOL_FLAG_WEAK_DECL;
153.5253 -+
153.5254 -+ SYMBOL_REF_FLAGS (symbol) = flags;
153.5255 -+}
153.5256 -+
153.5257 -+
153.5258 -+static unsigned int
153.5259 -+nios2_section_type_flags (tree decl, const char *name, int reloc)
153.5260 -+{
153.5261 -+ unsigned int flags;
153.5262 -+
153.5263 -+ flags = default_section_type_flags (decl, name, reloc);
153.5264 -+
153.5265 -+ /* ??? these string names need moving into an array in some header file */
153.5266 -+ if (strcmp (name, ".sbss") == 0
153.5267 -+ || strncmp (name, ".sbss.", 6) == 0
153.5268 -+ || strcmp (name, ".sdata") == 0
153.5269 -+ || strncmp (name, ".sdata.", 7) == 0)
153.5270 -+ flags |= SECTION_SMALL;
153.5271 -+
153.5272 -+ return flags;
153.5273 -+}
153.5274 -+
153.5275 -+
153.5276 -+
153.5277 -+
153.5278 -+/*****************************************
153.5279 -+ * Defining the Output Assembler Language
153.5280 -+ *****************************************/
153.5281 -+
153.5282 -+/* -------------- *
153.5283 -+ * Output of Data
153.5284 -+ * -------------- */
153.5285 -+
153.5286 -+
153.5287 -+/* -------------------------------- *
153.5288 -+ * Output of Assembler Instructions
153.5289 -+ * -------------------------------- */
153.5290 -+
153.5291 -+
153.5292 -+/* print the operand OP to file stream
153.5293 -+ FILE modified by LETTER. LETTER
153.5294 -+ can be one of:
153.5295 -+ i: print "i" if OP is an immediate, except 0
153.5296 -+ o: print "io" if OP is volatile
153.5297 -+
153.5298 -+ z: for const0_rtx print $0 instead of 0
153.5299 -+ H: for %hiadj
153.5300 -+ L: for %lo
153.5301 -+ U: for upper half of 32 bit value
153.5302 -+ */
153.5303 -+
153.5304 -+void
153.5305 -+nios2_print_operand (FILE *file, rtx op, int letter)
153.5306 -+{
153.5307 -+
153.5308 -+ switch (letter)
153.5309 -+ {
153.5310 -+ case 'i':
153.5311 -+ if (CONSTANT_P (op) && (op != const0_rtx))
153.5312 -+ fprintf (file, "i");
153.5313 -+ return;
153.5314 -+
153.5315 -+ case 'o':
153.5316 -+ if (GET_CODE (op) == MEM
153.5317 -+ && ((MEM_VOLATILE_P (op) && !TARGET_CACHE_VOLATILE)
153.5318 -+ || TARGET_BYPASS_CACHE))
153.5319 -+ fprintf (file, "io");
153.5320 -+ return;
153.5321 -+
153.5322 -+ default:
153.5323 -+ break;
153.5324 -+ }
153.5325 -+
153.5326 -+ if (comparison_operator (op, VOIDmode))
153.5327 -+ {
153.5328 -+ if (letter == 0)
153.5329 -+ {
153.5330 -+ fprintf (file, "%s", GET_RTX_NAME (GET_CODE (op)));
153.5331 -+ return;
153.5332 -+ }
153.5333 -+ }
153.5334 -+
153.5335 -+
153.5336 -+ switch (GET_CODE (op))
153.5337 -+ {
153.5338 -+ case REG:
153.5339 -+ if (letter == 0 || letter == 'z')
153.5340 -+ {
153.5341 -+ fprintf (file, "%s", reg_names[REGNO (op)]);
153.5342 -+ return;
153.5343 -+ }
153.5344 -+
153.5345 -+ case CONST_INT:
153.5346 -+ if (INTVAL (op) == 0 && letter == 'z')
153.5347 -+ {
153.5348 -+ fprintf (file, "zero");
153.5349 -+ return;
153.5350 -+ }
153.5351 -+ else if (letter == 'U')
153.5352 -+ {
153.5353 -+ HOST_WIDE_INT val = INTVAL (op);
153.5354 -+ rtx new_op;
153.5355 -+ val = (val / 65536) & 0xFFFF;
153.5356 -+ new_op = GEN_INT (val);
153.5357 -+ output_addr_const (file, new_op);
153.5358 -+ return;
153.5359 -+ }
153.5360 -+
153.5361 -+ /* else, fall through */
153.5362 -+ case CONST:
153.5363 -+ case LABEL_REF:
153.5364 -+ case SYMBOL_REF:
153.5365 -+ case CONST_DOUBLE:
153.5366 -+ if (letter == 0 || letter == 'z')
153.5367 -+ {
153.5368 -+ output_addr_const (file, op);
153.5369 -+ return;
153.5370 -+ }
153.5371 -+ else if (letter == 'H')
153.5372 -+ {
153.5373 -+ fprintf (file, "%%hiadj(");
153.5374 -+ output_addr_const (file, op);
153.5375 -+ fprintf (file, ")");
153.5376 -+ return;
153.5377 -+ }
153.5378 -+ else if (letter == 'L')
153.5379 -+ {
153.5380 -+ fprintf (file, "%%lo(");
153.5381 -+ output_addr_const (file, op);
153.5382 -+ fprintf (file, ")");
153.5383 -+ return;
153.5384 -+ }
153.5385 -+
153.5386 -+
153.5387 -+ case SUBREG:
153.5388 -+ case MEM:
153.5389 -+ if (letter == 0)
153.5390 -+ {
153.5391 -+ output_address (op);
153.5392 -+ return;
153.5393 -+ }
153.5394 -+
153.5395 -+ case CODE_LABEL:
153.5396 -+ if (letter == 0)
153.5397 -+ {
153.5398 -+ output_addr_const (file, op);
153.5399 -+ return;
153.5400 -+ }
153.5401 -+
153.5402 -+ default:
153.5403 -+ break;
153.5404 -+ }
153.5405 -+
153.5406 -+ fprintf (stderr, "Missing way to print (%c) ", letter);
153.5407 -+ debug_rtx (op);
153.5408 -+ abort ();
153.5409 -+}
153.5410 -+
153.5411 -+static int gprel_constant (rtx);
153.5412 -+
153.5413 -+static int
153.5414 -+gprel_constant (rtx op)
153.5415 -+{
153.5416 -+ if (GET_CODE (op) == SYMBOL_REF
153.5417 -+ && SYMBOL_REF_IN_NIOS2_SMALL_DATA_P (op))
153.5418 -+ {
153.5419 -+ return 1;
153.5420 -+ }
153.5421 -+ else if (GET_CODE (op) == CONST
153.5422 -+ && GET_CODE (XEXP (op, 0)) == PLUS)
153.5423 -+ {
153.5424 -+ return gprel_constant (XEXP (XEXP (op, 0), 0));
153.5425 -+ }
153.5426 -+ else
153.5427 -+ {
153.5428 -+ return 0;
153.5429 -+ }
153.5430 -+}
153.5431 -+
153.5432 -+void
153.5433 -+nios2_print_operand_address (FILE *file, rtx op)
153.5434 -+{
153.5435 -+ switch (GET_CODE (op))
153.5436 -+ {
153.5437 -+ case CONST:
153.5438 -+ case CONST_INT:
153.5439 -+ case LABEL_REF:
153.5440 -+ case CONST_DOUBLE:
153.5441 -+ case SYMBOL_REF:
153.5442 -+ if (gprel_constant (op))
153.5443 -+ {
153.5444 -+ fprintf (file, "%%gprel(");
153.5445 -+ output_addr_const (file, op);
153.5446 -+ fprintf (file, ")(%s)", reg_names[GP_REGNO]);
153.5447 -+ return;
153.5448 -+ }
153.5449 -+
153.5450 -+ break;
153.5451 -+
153.5452 -+ case PLUS:
153.5453 -+ {
153.5454 -+ rtx op0 = XEXP (op, 0);
153.5455 -+ rtx op1 = XEXP (op, 1);
153.5456 -+
153.5457 -+ if (REG_P (op0) && CONSTANT_P (op1))
153.5458 -+ {
153.5459 -+ output_addr_const (file, op1);
153.5460 -+ fprintf (file, "(%s)", reg_names[REGNO (op0)]);
153.5461 -+ return;
153.5462 -+ }
153.5463 -+ else if (REG_P (op1) && CONSTANT_P (op0))
153.5464 -+ {
153.5465 -+ output_addr_const (file, op0);
153.5466 -+ fprintf (file, "(%s)", reg_names[REGNO (op1)]);
153.5467 -+ return;
153.5468 -+ }
153.5469 -+ }
153.5470 -+ break;
153.5471 -+
153.5472 -+ case REG:
153.5473 -+ fprintf (file, "0(%s)", reg_names[REGNO (op)]);
153.5474 -+ return;
153.5475 -+
153.5476 -+ case MEM:
153.5477 -+ {
153.5478 -+ rtx base = XEXP (op, 0);
153.5479 -+ PRINT_OPERAND_ADDRESS (file, base);
153.5480 -+ return;
153.5481 -+ }
153.5482 -+ default:
153.5483 -+ break;
153.5484 -+ }
153.5485 -+
153.5486 -+ fprintf (stderr, "Missing way to print address\n");
153.5487 -+ debug_rtx (op);
153.5488 -+ abort ();
153.5489 -+}
153.5490 -+
153.5491 -+
153.5492 -+
153.5493 -+
153.5494 -+
153.5495 -+/****************************
153.5496 -+ * Predicates
153.5497 -+ ****************************/
153.5498 -+
153.5499 -+int
153.5500 -+arith_operand (rtx op, enum machine_mode mode)
153.5501 -+{
153.5502 -+ if (GET_CODE (op) == CONST_INT && SMALL_INT (INTVAL (op)))
153.5503 -+ return 1;
153.5504 -+
153.5505 -+ return register_operand (op, mode);
153.5506 -+}
153.5507 -+
153.5508 -+int
153.5509 -+uns_arith_operand (rtx op, enum machine_mode mode)
153.5510 -+{
153.5511 -+ if (GET_CODE (op) == CONST_INT && SMALL_INT_UNSIGNED (INTVAL (op)))
153.5512 -+ return 1;
153.5513 -+
153.5514 -+ return register_operand (op, mode);
153.5515 -+}
153.5516 -+
153.5517 -+int
153.5518 -+logical_operand (rtx op, enum machine_mode mode)
153.5519 -+{
153.5520 -+ if (GET_CODE (op) == CONST_INT
153.5521 -+ && (SMALL_INT_UNSIGNED (INTVAL (op)) || UPPER16_INT (INTVAL (op))))
153.5522 -+ return 1;
153.5523 -+
153.5524 -+ return register_operand (op, mode);
153.5525 -+}
153.5526 -+
153.5527 -+int
153.5528 -+shift_operand (rtx op, enum machine_mode mode)
153.5529 -+{
153.5530 -+ if (GET_CODE (op) == CONST_INT && SHIFT_INT (INTVAL (op)))
153.5531 -+ return 1;
153.5532 -+
153.5533 -+ return register_operand (op, mode);
153.5534 -+}
153.5535 -+
153.5536 -+int
153.5537 -+rdwrctl_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
153.5538 -+{
153.5539 -+ return GET_CODE (op) == CONST_INT && RDWRCTL_INT (INTVAL (op));
153.5540 -+}
153.5541 -+
153.5542 -+/* Return truth value of whether OP is a register or the constant 0. */
153.5543 -+
153.5544 -+int
153.5545 -+reg_or_0_operand (rtx op, enum machine_mode mode)
153.5546 -+{
153.5547 -+ switch (GET_CODE (op))
153.5548 -+ {
153.5549 -+ case CONST_INT:
153.5550 -+ return INTVAL (op) == 0;
153.5551 -+
153.5552 -+ case CONST_DOUBLE:
153.5553 -+ return op == CONST0_RTX (mode);
153.5554 -+
153.5555 -+ default:
153.5556 -+ break;
153.5557 -+ }
153.5558 -+
153.5559 -+ return register_operand (op, mode);
153.5560 -+}
153.5561 -+
153.5562 -+
153.5563 -+int
153.5564 -+equality_op (rtx op, enum machine_mode mode)
153.5565 -+{
153.5566 -+ if (mode != GET_MODE (op))
153.5567 -+ return 0;
153.5568 -+
153.5569 -+ return GET_CODE (op) == EQ || GET_CODE (op) == NE;
153.5570 -+}
153.5571 -+
153.5572 -+int
153.5573 -+custom_insn_opcode (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
153.5574 -+{
153.5575 -+ return GET_CODE (op) == CONST_INT && CUSTOM_INSN_OPCODE (INTVAL (op));
153.5576 -+}
153.5577 -+
153.5578 -+
153.5579 -+
153.5580 -+
153.5581 -+
153.5582 -+
153.5583 -+
153.5584 -+/*****************************************************************************
153.5585 -+**
153.5586 -+** instruction scheduler
153.5587 -+**
153.5588 -+*****************************************************************************/
153.5589 -+static int
153.5590 -+nios2_use_dfa_pipeline_interface ()
153.5591 -+{
153.5592 -+ return 1;
153.5593 -+}
153.5594 -+
153.5595 -+
153.5596 -+static int
153.5597 -+nios2_issue_rate ()
153.5598 -+{
153.5599 -+#ifdef MAX_DFA_ISSUE_RATE
153.5600 -+ return MAX_DFA_ISSUE_RATE;
153.5601 -+#else
153.5602 -+ return 1;
153.5603 -+#endif
153.5604 -+}
153.5605 -+
153.5606 -+
153.5607 -+const char *
153.5608 -+asm_output_opcode (FILE *file ATTRIBUTE_UNUSED,
153.5609 -+ const char *ptr ATTRIBUTE_UNUSED)
153.5610 -+{
153.5611 -+ const char *p;
153.5612 -+
153.5613 -+ p = ptr;
153.5614 -+ return ptr;
153.5615 -+}
153.5616 -+
153.5617 -+
153.5618 -+
153.5619 -+/*****************************************************************************
153.5620 -+**
153.5621 -+** function arguments
153.5622 -+**
153.5623 -+*****************************************************************************/
153.5624 -+
153.5625 -+void
153.5626 -+init_cumulative_args (CUMULATIVE_ARGS *cum,
153.5627 -+ tree fntype ATTRIBUTE_UNUSED,
153.5628 -+ rtx libname ATTRIBUTE_UNUSED,
153.5629 -+ tree fndecl ATTRIBUTE_UNUSED,
153.5630 -+ int n_named_args ATTRIBUTE_UNUSED)
153.5631 -+{
153.5632 -+ cum->regs_used = 0;
153.5633 -+}
153.5634 -+
153.5635 -+
153.5636 -+/* Update the data in CUM to advance over an argument
153.5637 -+ of mode MODE and data type TYPE.
153.5638 -+ (TYPE is null for libcalls where that information may not be available.) */
153.5639 -+
153.5640 -+void
153.5641 -+function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
153.5642 -+ tree type ATTRIBUTE_UNUSED, int named ATTRIBUTE_UNUSED)
153.5643 -+{
153.5644 -+ HOST_WIDE_INT param_size;
153.5645 -+
153.5646 -+ if (mode == BLKmode)
153.5647 -+ {
153.5648 -+ param_size = int_size_in_bytes (type);
153.5649 -+ if (param_size < 0)
153.5650 -+ internal_error
153.5651 -+ ("Do not know how to handle large structs or variable length types");
153.5652 -+ }
153.5653 -+ else
153.5654 -+ {
153.5655 -+ param_size = GET_MODE_SIZE (mode);
153.5656 -+ }
153.5657 -+
153.5658 -+ /* convert to words (round up) */
153.5659 -+ param_size = (3 + param_size) / 4;
153.5660 -+
153.5661 -+ if (cum->regs_used + param_size > NUM_ARG_REGS)
153.5662 -+ {
153.5663 -+ cum->regs_used = NUM_ARG_REGS;
153.5664 -+ }
153.5665 -+ else
153.5666 -+ {
153.5667 -+ cum->regs_used += param_size;
153.5668 -+ }
153.5669 -+
153.5670 -+ return;
153.5671 -+}
153.5672 -+
153.5673 -+/* Define where to put the arguments to a function. Value is zero to
153.5674 -+ push the argument on the stack, or a hard register in which to
153.5675 -+ store the argument.
153.5676 -+
153.5677 -+ MODE is the argument's machine mode.
153.5678 -+ TYPE is the data type of the argument (as a tree).
153.5679 -+ This is null for libcalls where that information may
153.5680 -+ not be available.
153.5681 -+ CUM is a variable of type CUMULATIVE_ARGS which gives info about
153.5682 -+ the preceding args and about the function being called.
153.5683 -+ NAMED is nonzero if this argument is a named parameter
153.5684 -+ (otherwise it is an extra parameter matching an ellipsis). */
153.5685 -+rtx
153.5686 -+function_arg (const CUMULATIVE_ARGS *cum, enum machine_mode mode,
153.5687 -+ tree type ATTRIBUTE_UNUSED, int named ATTRIBUTE_UNUSED)
153.5688 -+{
153.5689 -+ rtx return_rtx = NULL_RTX;
153.5690 -+
153.5691 -+ if (cum->regs_used < NUM_ARG_REGS)
153.5692 -+ {
153.5693 -+ return_rtx = gen_rtx_REG (mode, FIRST_ARG_REGNO + cum->regs_used);
153.5694 -+ }
153.5695 -+
153.5696 -+ return return_rtx;
153.5697 -+}
153.5698 -+
153.5699 -+int
153.5700 -+function_arg_partial_nregs (const CUMULATIVE_ARGS *cum,
153.5701 -+ enum machine_mode mode, tree type,
153.5702 -+ int named ATTRIBUTE_UNUSED)
153.5703 -+{
153.5704 -+ HOST_WIDE_INT param_size;
153.5705 -+
153.5706 -+ if (mode == BLKmode)
153.5707 -+ {
153.5708 -+ param_size = int_size_in_bytes (type);
153.5709 -+ if (param_size < 0)
153.5710 -+ internal_error
153.5711 -+ ("Do not know how to handle large structs or variable length types");
153.5712 -+ }
153.5713 -+ else
153.5714 -+ {
153.5715 -+ param_size = GET_MODE_SIZE (mode);
153.5716 -+ }
153.5717 -+
153.5718 -+ /* convert to words (round up) */
153.5719 -+ param_size = (3 + param_size) / 4;
153.5720 -+
153.5721 -+ if (cum->regs_used < NUM_ARG_REGS
153.5722 -+ && cum->regs_used + param_size > NUM_ARG_REGS)
153.5723 -+ {
153.5724 -+ return NUM_ARG_REGS - cum->regs_used;
153.5725 -+ }
153.5726 -+ else
153.5727 -+ {
153.5728 -+ return 0;
153.5729 -+ }
153.5730 -+}
153.5731 -+
153.5732 -+
153.5733 -+int
153.5734 -+nios2_return_in_memory (tree type)
153.5735 -+{
153.5736 -+ int res = ((int_size_in_bytes (type) > (2 * UNITS_PER_WORD))
153.5737 -+ || (int_size_in_bytes (type) == -1));
153.5738 -+
153.5739 -+ return res;
153.5740 -+}
153.5741 -+
153.5742 -+/* ??? It may be possible to eliminate the copyback and implement
153.5743 -+ my own va_arg type, but that is more work for now. */
153.5744 -+int
153.5745 -+nios2_setup_incoming_varargs (const CUMULATIVE_ARGS *cum,
153.5746 -+ enum machine_mode mode, tree type,
153.5747 -+ int no_rtl)
153.5748 -+{
153.5749 -+ CUMULATIVE_ARGS local_cum;
153.5750 -+ int regs_to_push;
153.5751 -+
153.5752 -+ local_cum = *cum;
153.5753 -+ FUNCTION_ARG_ADVANCE (local_cum, mode, type, 1);
153.5754 -+
153.5755 -+ regs_to_push = NUM_ARG_REGS - local_cum.regs_used;
153.5756 -+
153.5757 -+ if (!no_rtl)
153.5758 -+ {
153.5759 -+ if (regs_to_push > 0)
153.5760 -+ {
153.5761 -+ rtx ptr, mem;
153.5762 -+
153.5763 -+ ptr = virtual_incoming_args_rtx;
153.5764 -+ mem = gen_rtx_MEM (BLKmode, ptr);
153.5765 -+
153.5766 -+ /* va_arg is an array access in this case, which causes
153.5767 -+ it to get MEM_IN_STRUCT_P set. We must set it here
153.5768 -+ so that the insn scheduler won't assume that these
153.5769 -+ stores can't possibly overlap with the va_arg loads. */
153.5770 -+ MEM_SET_IN_STRUCT_P (mem, 1);
153.5771 -+
153.5772 -+ emit_insn (gen_blockage ());
153.5773 -+ move_block_from_reg (local_cum.regs_used + FIRST_ARG_REGNO, mem,
153.5774 -+ regs_to_push);
153.5775 -+ emit_insn (gen_blockage ());
153.5776 -+ }
153.5777 -+ }
153.5778 -+
153.5779 -+ return regs_to_push * UNITS_PER_WORD;
153.5780 -+
153.5781 -+}
153.5782 -+
153.5783 -+
153.5784 -+
153.5785 -+/*****************************************************************************
153.5786 -+**
153.5787 -+** builtins
153.5788 -+**
153.5789 -+** This method for handling builtins is from CSP where _many_ more types of
153.5790 -+** expanders have already been written. Check there first before writing
153.5791 -+** new ones.
153.5792 -+**
153.5793 -+*****************************************************************************/
153.5794 -+
153.5795 -+enum nios2_builtins
153.5796 -+{
153.5797 -+ NIOS2_BUILTIN_LDBIO,
153.5798 -+ NIOS2_BUILTIN_LDBUIO,
153.5799 -+ NIOS2_BUILTIN_LDHIO,
153.5800 -+ NIOS2_BUILTIN_LDHUIO,
153.5801 -+ NIOS2_BUILTIN_LDWIO,
153.5802 -+ NIOS2_BUILTIN_STBIO,
153.5803 -+ NIOS2_BUILTIN_STHIO,
153.5804 -+ NIOS2_BUILTIN_STWIO,
153.5805 -+ NIOS2_BUILTIN_SYNC,
153.5806 -+ NIOS2_BUILTIN_RDCTL,
153.5807 -+ NIOS2_BUILTIN_WRCTL,
153.5808 -+
153.5809 -+ NIOS2_BUILTIN_CUSTOM_N,
153.5810 -+ NIOS2_BUILTIN_CUSTOM_NI,
153.5811 -+ NIOS2_BUILTIN_CUSTOM_NF,
153.5812 -+ NIOS2_BUILTIN_CUSTOM_NP,
153.5813 -+ NIOS2_BUILTIN_CUSTOM_NII,
153.5814 -+ NIOS2_BUILTIN_CUSTOM_NIF,
153.5815 -+ NIOS2_BUILTIN_CUSTOM_NIP,
153.5816 -+ NIOS2_BUILTIN_CUSTOM_NFI,
153.5817 -+ NIOS2_BUILTIN_CUSTOM_NFF,
153.5818 -+ NIOS2_BUILTIN_CUSTOM_NFP,
153.5819 -+ NIOS2_BUILTIN_CUSTOM_NPI,
153.5820 -+ NIOS2_BUILTIN_CUSTOM_NPF,
153.5821 -+ NIOS2_BUILTIN_CUSTOM_NPP,
153.5822 -+ NIOS2_BUILTIN_CUSTOM_IN,
153.5823 -+ NIOS2_BUILTIN_CUSTOM_INI,
153.5824 -+ NIOS2_BUILTIN_CUSTOM_INF,
153.5825 -+ NIOS2_BUILTIN_CUSTOM_INP,
153.5826 -+ NIOS2_BUILTIN_CUSTOM_INII,
153.5827 -+ NIOS2_BUILTIN_CUSTOM_INIF,
153.5828 -+ NIOS2_BUILTIN_CUSTOM_INIP,
153.5829 -+ NIOS2_BUILTIN_CUSTOM_INFI,
153.5830 -+ NIOS2_BUILTIN_CUSTOM_INFF,
153.5831 -+ NIOS2_BUILTIN_CUSTOM_INFP,
153.5832 -+ NIOS2_BUILTIN_CUSTOM_INPI,
153.5833 -+ NIOS2_BUILTIN_CUSTOM_INPF,
153.5834 -+ NIOS2_BUILTIN_CUSTOM_INPP,
153.5835 -+ NIOS2_BUILTIN_CUSTOM_FN,
153.5836 -+ NIOS2_BUILTIN_CUSTOM_FNI,
153.5837 -+ NIOS2_BUILTIN_CUSTOM_FNF,
153.5838 -+ NIOS2_BUILTIN_CUSTOM_FNP,
153.5839 -+ NIOS2_BUILTIN_CUSTOM_FNII,
153.5840 -+ NIOS2_BUILTIN_CUSTOM_FNIF,
153.5841 -+ NIOS2_BUILTIN_CUSTOM_FNIP,
153.5842 -+ NIOS2_BUILTIN_CUSTOM_FNFI,
153.5843 -+ NIOS2_BUILTIN_CUSTOM_FNFF,
153.5844 -+ NIOS2_BUILTIN_CUSTOM_FNFP,
153.5845 -+ NIOS2_BUILTIN_CUSTOM_FNPI,
153.5846 -+ NIOS2_BUILTIN_CUSTOM_FNPF,
153.5847 -+ NIOS2_BUILTIN_CUSTOM_FNPP,
153.5848 -+ NIOS2_BUILTIN_CUSTOM_PN,
153.5849 -+ NIOS2_BUILTIN_CUSTOM_PNI,
153.5850 -+ NIOS2_BUILTIN_CUSTOM_PNF,
153.5851 -+ NIOS2_BUILTIN_CUSTOM_PNP,
153.5852 -+ NIOS2_BUILTIN_CUSTOM_PNII,
153.5853 -+ NIOS2_BUILTIN_CUSTOM_PNIF,
153.5854 -+ NIOS2_BUILTIN_CUSTOM_PNIP,
153.5855 -+ NIOS2_BUILTIN_CUSTOM_PNFI,
153.5856 -+ NIOS2_BUILTIN_CUSTOM_PNFF,
153.5857 -+ NIOS2_BUILTIN_CUSTOM_PNFP,
153.5858 -+ NIOS2_BUILTIN_CUSTOM_PNPI,
153.5859 -+ NIOS2_BUILTIN_CUSTOM_PNPF,
153.5860 -+ NIOS2_BUILTIN_CUSTOM_PNPP,
153.5861 -+
153.5862 -+
153.5863 -+ LIM_NIOS2_BUILTINS
153.5864 -+};
153.5865 -+
153.5866 -+struct builtin_description
153.5867 -+{
153.5868 -+ const enum insn_code icode;
153.5869 -+ const char *const name;
153.5870 -+ const enum nios2_builtins code;
153.5871 -+ const tree *type;
153.5872 -+ rtx (* expander) PARAMS ((const struct builtin_description *,
153.5873 -+ tree, rtx, rtx, enum machine_mode, int));
153.5874 -+};
153.5875 -+
153.5876 -+static rtx nios2_expand_STXIO (const struct builtin_description *,
153.5877 -+ tree, rtx, rtx, enum machine_mode, int);
153.5878 -+static rtx nios2_expand_LDXIO (const struct builtin_description *,
153.5879 -+ tree, rtx, rtx, enum machine_mode, int);
153.5880 -+static rtx nios2_expand_sync (const struct builtin_description *,
153.5881 -+ tree, rtx, rtx, enum machine_mode, int);
153.5882 -+static rtx nios2_expand_rdctl (const struct builtin_description *,
153.5883 -+ tree, rtx, rtx, enum machine_mode, int);
153.5884 -+static rtx nios2_expand_wrctl (const struct builtin_description *,
153.5885 -+ tree, rtx, rtx, enum machine_mode, int);
153.5886 -+
153.5887 -+static rtx nios2_expand_custom_n (const struct builtin_description *,
153.5888 -+ tree, rtx, rtx, enum machine_mode, int);
153.5889 -+static rtx nios2_expand_custom_Xn (const struct builtin_description *,
153.5890 -+ tree, rtx, rtx, enum machine_mode, int);
153.5891 -+static rtx nios2_expand_custom_nX (const struct builtin_description *,
153.5892 -+ tree, rtx, rtx, enum machine_mode, int);
153.5893 -+static rtx nios2_expand_custom_XnX (const struct builtin_description *,
153.5894 -+ tree, rtx, rtx, enum machine_mode, int);
153.5895 -+static rtx nios2_expand_custom_nXX (const struct builtin_description *,
153.5896 -+ tree, rtx, rtx, enum machine_mode, int);
153.5897 -+static rtx nios2_expand_custom_XnXX (const struct builtin_description *,
153.5898 -+ tree, rtx, rtx, enum machine_mode, int);
153.5899 -+
153.5900 -+static tree endlink;
153.5901 -+
153.5902 -+/* int fn (volatile const void *)
153.5903 -+ */
153.5904 -+static tree int_ftype_volatile_const_void_p;
153.5905 -+
153.5906 -+/* int fn (int)
153.5907 -+ */
153.5908 -+static tree int_ftype_int;
153.5909 -+
153.5910 -+/* void fn (int, int)
153.5911 -+ */
153.5912 -+static tree void_ftype_int_int;
153.5913 -+
153.5914 -+/* void fn (volatile void *, int)
153.5915 -+ */
153.5916 -+static tree void_ftype_volatile_void_p_int;
153.5917 -+
153.5918 -+/* void fn (void)
153.5919 -+ */
153.5920 -+static tree void_ftype_void;
153.5921 -+
153.5922 -+static tree custom_n;
153.5923 -+static tree custom_ni;
153.5924 -+static tree custom_nf;
153.5925 -+static tree custom_np;
153.5926 -+static tree custom_nii;
153.5927 -+static tree custom_nif;
153.5928 -+static tree custom_nip;
153.5929 -+static tree custom_nfi;
153.5930 -+static tree custom_nff;
153.5931 -+static tree custom_nfp;
153.5932 -+static tree custom_npi;
153.5933 -+static tree custom_npf;
153.5934 -+static tree custom_npp;
153.5935 -+static tree custom_in;
153.5936 -+static tree custom_ini;
153.5937 -+static tree custom_inf;
153.5938 -+static tree custom_inp;
153.5939 -+static tree custom_inii;
153.5940 -+static tree custom_inif;
153.5941 -+static tree custom_inip;
153.5942 -+static tree custom_infi;
153.5943 -+static tree custom_inff;
153.5944 -+static tree custom_infp;
153.5945 -+static tree custom_inpi;
153.5946 -+static tree custom_inpf;
153.5947 -+static tree custom_inpp;
153.5948 -+static tree custom_fn;
153.5949 -+static tree custom_fni;
153.5950 -+static tree custom_fnf;
153.5951 -+static tree custom_fnp;
153.5952 -+static tree custom_fnii;
153.5953 -+static tree custom_fnif;
153.5954 -+static tree custom_fnip;
153.5955 -+static tree custom_fnfi;
153.5956 -+static tree custom_fnff;
153.5957 -+static tree custom_fnfp;
153.5958 -+static tree custom_fnpi;
153.5959 -+static tree custom_fnpf;
153.5960 -+static tree custom_fnpp;
153.5961 -+static tree custom_pn;
153.5962 -+static tree custom_pni;
153.5963 -+static tree custom_pnf;
153.5964 -+static tree custom_pnp;
153.5965 -+static tree custom_pnii;
153.5966 -+static tree custom_pnif;
153.5967 -+static tree custom_pnip;
153.5968 -+static tree custom_pnfi;
153.5969 -+static tree custom_pnff;
153.5970 -+static tree custom_pnfp;
153.5971 -+static tree custom_pnpi;
153.5972 -+static tree custom_pnpf;
153.5973 -+static tree custom_pnpp;
153.5974 -+
153.5975 -+
153.5976 -+static const struct builtin_description bdesc[] = {
153.5977 -+ {CODE_FOR_ldbio, "__builtin_ldbio", NIOS2_BUILTIN_LDBIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5978 -+ {CODE_FOR_ldbuio, "__builtin_ldbuio", NIOS2_BUILTIN_LDBUIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5979 -+ {CODE_FOR_ldhio, "__builtin_ldhio", NIOS2_BUILTIN_LDHIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5980 -+ {CODE_FOR_ldhuio, "__builtin_ldhuio", NIOS2_BUILTIN_LDHUIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5981 -+ {CODE_FOR_ldwio, "__builtin_ldwio", NIOS2_BUILTIN_LDWIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5982 -+
153.5983 -+ {CODE_FOR_stbio, "__builtin_stbio", NIOS2_BUILTIN_STBIO, &void_ftype_volatile_void_p_int, nios2_expand_STXIO},
153.5984 -+ {CODE_FOR_sthio, "__builtin_sthio", NIOS2_BUILTIN_STHIO, &void_ftype_volatile_void_p_int, nios2_expand_STXIO},
153.5985 -+ {CODE_FOR_stwio, "__builtin_stwio", NIOS2_BUILTIN_STWIO, &void_ftype_volatile_void_p_int, nios2_expand_STXIO},
153.5986 -+
153.5987 -+ {CODE_FOR_sync, "__builtin_sync", NIOS2_BUILTIN_SYNC, &void_ftype_void, nios2_expand_sync},
153.5988 -+ {CODE_FOR_rdctl, "__builtin_rdctl", NIOS2_BUILTIN_RDCTL, &int_ftype_int, nios2_expand_rdctl},
153.5989 -+ {CODE_FOR_wrctl, "__builtin_wrctl", NIOS2_BUILTIN_WRCTL, &void_ftype_int_int, nios2_expand_wrctl},
153.5990 -+
153.5991 -+ {CODE_FOR_custom_n, "__builtin_custom_n", NIOS2_BUILTIN_CUSTOM_N, &custom_n, nios2_expand_custom_n},
153.5992 -+ {CODE_FOR_custom_ni, "__builtin_custom_ni", NIOS2_BUILTIN_CUSTOM_NI, &custom_ni, nios2_expand_custom_nX},
153.5993 -+ {CODE_FOR_custom_nf, "__builtin_custom_nf", NIOS2_BUILTIN_CUSTOM_NF, &custom_nf, nios2_expand_custom_nX},
153.5994 -+ {CODE_FOR_custom_np, "__builtin_custom_np", NIOS2_BUILTIN_CUSTOM_NP, &custom_np, nios2_expand_custom_nX},
153.5995 -+ {CODE_FOR_custom_nii, "__builtin_custom_nii", NIOS2_BUILTIN_CUSTOM_NII, &custom_nii, nios2_expand_custom_nXX},
153.5996 -+ {CODE_FOR_custom_nif, "__builtin_custom_nif", NIOS2_BUILTIN_CUSTOM_NIF, &custom_nif, nios2_expand_custom_nXX},
153.5997 -+ {CODE_FOR_custom_nip, "__builtin_custom_nip", NIOS2_BUILTIN_CUSTOM_NIP, &custom_nip, nios2_expand_custom_nXX},
153.5998 -+ {CODE_FOR_custom_nfi, "__builtin_custom_nfi", NIOS2_BUILTIN_CUSTOM_NFI, &custom_nfi, nios2_expand_custom_nXX},
153.5999 -+ {CODE_FOR_custom_nff, "__builtin_custom_nff", NIOS2_BUILTIN_CUSTOM_NFF, &custom_nff, nios2_expand_custom_nXX},
153.6000 -+ {CODE_FOR_custom_nfp, "__builtin_custom_nfp", NIOS2_BUILTIN_CUSTOM_NFP, &custom_nfp, nios2_expand_custom_nXX},
153.6001 -+ {CODE_FOR_custom_npi, "__builtin_custom_npi", NIOS2_BUILTIN_CUSTOM_NPI, &custom_npi, nios2_expand_custom_nXX},
153.6002 -+ {CODE_FOR_custom_npf, "__builtin_custom_npf", NIOS2_BUILTIN_CUSTOM_NPF, &custom_npf, nios2_expand_custom_nXX},
153.6003 -+ {CODE_FOR_custom_npp, "__builtin_custom_npp", NIOS2_BUILTIN_CUSTOM_NPP, &custom_npp, nios2_expand_custom_nXX},
153.6004 -+ {CODE_FOR_custom_in, "__builtin_custom_in", NIOS2_BUILTIN_CUSTOM_IN, &custom_in, nios2_expand_custom_Xn},
153.6005 -+ {CODE_FOR_custom_ini, "__builtin_custom_ini", NIOS2_BUILTIN_CUSTOM_INI, &custom_ini, nios2_expand_custom_XnX},
153.6006 -+ {CODE_FOR_custom_inf, "__builtin_custom_inf", NIOS2_BUILTIN_CUSTOM_INF, &custom_inf, nios2_expand_custom_XnX},
153.6007 -+ {CODE_FOR_custom_inp, "__builtin_custom_inp", NIOS2_BUILTIN_CUSTOM_INP, &custom_inp, nios2_expand_custom_XnX},
153.6008 -+ {CODE_FOR_custom_inii, "__builtin_custom_inii", NIOS2_BUILTIN_CUSTOM_INII, &custom_inii, nios2_expand_custom_XnXX},
153.6009 -+ {CODE_FOR_custom_inif, "__builtin_custom_inif", NIOS2_BUILTIN_CUSTOM_INIF, &custom_inif, nios2_expand_custom_XnXX},
153.6010 -+ {CODE_FOR_custom_inip, "__builtin_custom_inip", NIOS2_BUILTIN_CUSTOM_INIP, &custom_inip, nios2_expand_custom_XnXX},
153.6011 -+ {CODE_FOR_custom_infi, "__builtin_custom_infi", NIOS2_BUILTIN_CUSTOM_INFI, &custom_infi, nios2_expand_custom_XnXX},
153.6012 -+ {CODE_FOR_custom_inff, "__builtin_custom_inff", NIOS2_BUILTIN_CUSTOM_INFF, &custom_inff, nios2_expand_custom_XnXX},
153.6013 -+ {CODE_FOR_custom_infp, "__builtin_custom_infp", NIOS2_BUILTIN_CUSTOM_INFP, &custom_infp, nios2_expand_custom_XnXX},
153.6014 -+ {CODE_FOR_custom_inpi, "__builtin_custom_inpi", NIOS2_BUILTIN_CUSTOM_INPI, &custom_inpi, nios2_expand_custom_XnXX},
153.6015 -+ {CODE_FOR_custom_inpf, "__builtin_custom_inpf", NIOS2_BUILTIN_CUSTOM_INPF, &custom_inpf, nios2_expand_custom_XnXX},
153.6016 -+ {CODE_FOR_custom_inpp, "__builtin_custom_inpp", NIOS2_BUILTIN_CUSTOM_INPP, &custom_inpp, nios2_expand_custom_XnXX},
153.6017 -+ {CODE_FOR_custom_fn, "__builtin_custom_fn", NIOS2_BUILTIN_CUSTOM_FN, &custom_fn, nios2_expand_custom_Xn},
153.6018 -+ {CODE_FOR_custom_fni, "__builtin_custom_fni", NIOS2_BUILTIN_CUSTOM_FNI, &custom_fni, nios2_expand_custom_XnX},
153.6019 -+ {CODE_FOR_custom_fnf, "__builtin_custom_fnf", NIOS2_BUILTIN_CUSTOM_FNF, &custom_fnf, nios2_expand_custom_XnX},
153.6020 -+ {CODE_FOR_custom_fnp, "__builtin_custom_fnp", NIOS2_BUILTIN_CUSTOM_FNP, &custom_fnp, nios2_expand_custom_XnX},
153.6021 -+ {CODE_FOR_custom_fnii, "__builtin_custom_fnii", NIOS2_BUILTIN_CUSTOM_FNII, &custom_fnii, nios2_expand_custom_XnXX},
153.6022 -+ {CODE_FOR_custom_fnif, "__builtin_custom_fnif", NIOS2_BUILTIN_CUSTOM_FNIF, &custom_fnif, nios2_expand_custom_XnXX},
153.6023 -+ {CODE_FOR_custom_fnip, "__builtin_custom_fnip", NIOS2_BUILTIN_CUSTOM_FNIP, &custom_fnip, nios2_expand_custom_XnXX},
153.6024 -+ {CODE_FOR_custom_fnfi, "__builtin_custom_fnfi", NIOS2_BUILTIN_CUSTOM_FNFI, &custom_fnfi, nios2_expand_custom_XnXX},
153.6025 -+ {CODE_FOR_custom_fnff, "__builtin_custom_fnff", NIOS2_BUILTIN_CUSTOM_FNFF, &custom_fnff, nios2_expand_custom_XnXX},
153.6026 -+ {CODE_FOR_custom_fnfp, "__builtin_custom_fnfp", NIOS2_BUILTIN_CUSTOM_FNFP, &custom_fnfp, nios2_expand_custom_XnXX},
153.6027 -+ {CODE_FOR_custom_fnpi, "__builtin_custom_fnpi", NIOS2_BUILTIN_CUSTOM_FNPI, &custom_fnpi, nios2_expand_custom_XnXX},
153.6028 -+ {CODE_FOR_custom_fnpf, "__builtin_custom_fnpf", NIOS2_BUILTIN_CUSTOM_FNPF, &custom_fnpf, nios2_expand_custom_XnXX},
153.6029 -+ {CODE_FOR_custom_fnpp, "__builtin_custom_fnpp", NIOS2_BUILTIN_CUSTOM_FNPP, &custom_fnpp, nios2_expand_custom_XnXX},
153.6030 -+ {CODE_FOR_custom_pn, "__builtin_custom_pn", NIOS2_BUILTIN_CUSTOM_PN, &custom_pn, nios2_expand_custom_Xn},
153.6031 -+ {CODE_FOR_custom_pni, "__builtin_custom_pni", NIOS2_BUILTIN_CUSTOM_PNI, &custom_pni, nios2_expand_custom_XnX},
153.6032 -+ {CODE_FOR_custom_pnf, "__builtin_custom_pnf", NIOS2_BUILTIN_CUSTOM_PNF, &custom_pnf, nios2_expand_custom_XnX},
153.6033 -+ {CODE_FOR_custom_pnp, "__builtin_custom_pnp", NIOS2_BUILTIN_CUSTOM_PNP, &custom_pnp, nios2_expand_custom_XnX},
153.6034 -+ {CODE_FOR_custom_pnii, "__builtin_custom_pnii", NIOS2_BUILTIN_CUSTOM_PNII, &custom_pnii, nios2_expand_custom_XnXX},
153.6035 -+ {CODE_FOR_custom_pnif, "__builtin_custom_pnif", NIOS2_BUILTIN_CUSTOM_PNIF, &custom_pnif, nios2_expand_custom_XnXX},
153.6036 -+ {CODE_FOR_custom_pnip, "__builtin_custom_pnip", NIOS2_BUILTIN_CUSTOM_PNIP, &custom_pnip, nios2_expand_custom_XnXX},
153.6037 -+ {CODE_FOR_custom_pnfi, "__builtin_custom_pnfi", NIOS2_BUILTIN_CUSTOM_PNFI, &custom_pnfi, nios2_expand_custom_XnXX},
153.6038 -+ {CODE_FOR_custom_pnff, "__builtin_custom_pnff", NIOS2_BUILTIN_CUSTOM_PNFF, &custom_pnff, nios2_expand_custom_XnXX},
153.6039 -+ {CODE_FOR_custom_pnfp, "__builtin_custom_pnfp", NIOS2_BUILTIN_CUSTOM_PNFP, &custom_pnfp, nios2_expand_custom_XnXX},
153.6040 -+ {CODE_FOR_custom_pnpi, "__builtin_custom_pnpi", NIOS2_BUILTIN_CUSTOM_PNPI, &custom_pnpi, nios2_expand_custom_XnXX},
153.6041 -+ {CODE_FOR_custom_pnpf, "__builtin_custom_pnpf", NIOS2_BUILTIN_CUSTOM_PNPF, &custom_pnpf, nios2_expand_custom_XnXX},
153.6042 -+ {CODE_FOR_custom_pnpp, "__builtin_custom_pnpp", NIOS2_BUILTIN_CUSTOM_PNPP, &custom_pnpp, nios2_expand_custom_XnXX},
153.6043 -+
153.6044 -+
153.6045 -+ {0, 0, 0, 0, 0},
153.6046 -+};
153.6047 -+
153.6048 -+/* This does not have a closing bracket on purpose (see use) */
153.6049 -+#define def_param(TYPE) \
153.6050 -+ tree_cons (NULL_TREE, TYPE,
153.6051 -+
153.6052 -+static void
153.6053 -+nios2_init_builtins ()
153.6054 -+{
153.6055 -+ const struct builtin_description *d;
153.6056 -+
153.6057 -+
153.6058 -+ endlink = void_list_node;
153.6059 -+
153.6060 -+ /* Special indenting here because one of the brackets is in def_param */
153.6061 -+ /* *INDENT-OFF* */
153.6062 -+
153.6063 -+ /* int fn (volatile const void *)
153.6064 -+ */
153.6065 -+ int_ftype_volatile_const_void_p
153.6066 -+ = build_function_type (integer_type_node,
153.6067 -+ def_param (build_qualified_type (ptr_type_node,
153.6068 -+ TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE))
153.6069 -+ endlink));
153.6070 -+
153.6071 -+
153.6072 -+ /* void fn (volatile void *, int)
153.6073 -+ */
153.6074 -+ void_ftype_volatile_void_p_int
153.6075 -+ = build_function_type (void_type_node,
153.6076 -+ def_param (build_qualified_type (ptr_type_node,
153.6077 -+ TYPE_QUAL_VOLATILE))
153.6078 -+ def_param (integer_type_node)
153.6079 -+ endlink)));
153.6080 -+
153.6081 -+ /* void fn (void)
153.6082 -+ */
153.6083 -+ void_ftype_void
153.6084 -+ = build_function_type (void_type_node,
153.6085 -+ endlink);
153.6086 -+
153.6087 -+ /* int fn (int)
153.6088 -+ */
153.6089 -+ int_ftype_int
153.6090 -+ = build_function_type (integer_type_node,
153.6091 -+ def_param (integer_type_node)
153.6092 -+ endlink));
153.6093 -+
153.6094 -+ /* void fn (int, int)
153.6095 -+ */
153.6096 -+ void_ftype_int_int
153.6097 -+ = build_function_type (void_type_node,
153.6098 -+ def_param (integer_type_node)
153.6099 -+ def_param (integer_type_node)
153.6100 -+ endlink)));
153.6101 -+
153.6102 -+
153.6103 -+#define CUSTOM_NUM def_param (integer_type_node)
153.6104 -+
153.6105 -+ custom_n
153.6106 -+ = build_function_type (void_type_node,
153.6107 -+ CUSTOM_NUM
153.6108 -+ endlink));
153.6109 -+ custom_ni
153.6110 -+ = build_function_type (void_type_node,
153.6111 -+ CUSTOM_NUM
153.6112 -+ def_param (integer_type_node)
153.6113 -+ endlink)));
153.6114 -+ custom_nf
153.6115 -+ = build_function_type (void_type_node,
153.6116 -+ CUSTOM_NUM
153.6117 -+ def_param (float_type_node)
153.6118 -+ endlink)));
153.6119 -+ custom_np
153.6120 -+ = build_function_type (void_type_node,
153.6121 -+ CUSTOM_NUM
153.6122 -+ def_param (ptr_type_node)
153.6123 -+ endlink)));
153.6124 -+ custom_nii
153.6125 -+ = build_function_type (void_type_node,
153.6126 -+ CUSTOM_NUM
153.6127 -+ def_param (integer_type_node)
153.6128 -+ def_param (integer_type_node)
153.6129 -+ endlink))));
153.6130 -+ custom_nif
153.6131 -+ = build_function_type (void_type_node,
153.6132 -+ CUSTOM_NUM
153.6133 -+ def_param (integer_type_node)
153.6134 -+ def_param (float_type_node)
153.6135 -+ endlink))));
153.6136 -+ custom_nip
153.6137 -+ = build_function_type (void_type_node,
153.6138 -+ CUSTOM_NUM
153.6139 -+ def_param (integer_type_node)
153.6140 -+ def_param (ptr_type_node)
153.6141 -+ endlink))));
153.6142 -+ custom_nfi
153.6143 -+ = build_function_type (void_type_node,
153.6144 -+ CUSTOM_NUM
153.6145 -+ def_param (float_type_node)
153.6146 -+ def_param (integer_type_node)
153.6147 -+ endlink))));
153.6148 -+ custom_nff
153.6149 -+ = build_function_type (void_type_node,
153.6150 -+ CUSTOM_NUM
153.6151 -+ def_param (float_type_node)
153.6152 -+ def_param (float_type_node)
153.6153 -+ endlink))));
153.6154 -+ custom_nfp
153.6155 -+ = build_function_type (void_type_node,
153.6156 -+ CUSTOM_NUM
153.6157 -+ def_param (float_type_node)
153.6158 -+ def_param (ptr_type_node)
153.6159 -+ endlink))));
153.6160 -+ custom_npi
153.6161 -+ = build_function_type (void_type_node,
153.6162 -+ CUSTOM_NUM
153.6163 -+ def_param (ptr_type_node)
153.6164 -+ def_param (integer_type_node)
153.6165 -+ endlink))));
153.6166 -+ custom_npf
153.6167 -+ = build_function_type (void_type_node,
153.6168 -+ CUSTOM_NUM
153.6169 -+ def_param (ptr_type_node)
153.6170 -+ def_param (float_type_node)
153.6171 -+ endlink))));
153.6172 -+ custom_npp
153.6173 -+ = build_function_type (void_type_node,
153.6174 -+ CUSTOM_NUM
153.6175 -+ def_param (ptr_type_node)
153.6176 -+ def_param (ptr_type_node)
153.6177 -+ endlink))));
153.6178 -+
153.6179 -+ custom_in
153.6180 -+ = build_function_type (integer_type_node,
153.6181 -+ CUSTOM_NUM
153.6182 -+ endlink));
153.6183 -+ custom_ini
153.6184 -+ = build_function_type (integer_type_node,
153.6185 -+ CUSTOM_NUM
153.6186 -+ def_param (integer_type_node)
153.6187 -+ endlink)));
153.6188 -+ custom_inf
153.6189 -+ = build_function_type (integer_type_node,
153.6190 -+ CUSTOM_NUM
153.6191 -+ def_param (float_type_node)
153.6192 -+ endlink)));
153.6193 -+ custom_inp
153.6194 -+ = build_function_type (integer_type_node,
153.6195 -+ CUSTOM_NUM
153.6196 -+ def_param (ptr_type_node)
153.6197 -+ endlink)));
153.6198 -+ custom_inii
153.6199 -+ = build_function_type (integer_type_node,
153.6200 -+ CUSTOM_NUM
153.6201 -+ def_param (integer_type_node)
153.6202 -+ def_param (integer_type_node)
153.6203 -+ endlink))));
153.6204 -+ custom_inif
153.6205 -+ = build_function_type (integer_type_node,
153.6206 -+ CUSTOM_NUM
153.6207 -+ def_param (integer_type_node)
153.6208 -+ def_param (float_type_node)
153.6209 -+ endlink))));
153.6210 -+ custom_inip
153.6211 -+ = build_function_type (integer_type_node,
153.6212 -+ CUSTOM_NUM
153.6213 -+ def_param (integer_type_node)
153.6214 -+ def_param (ptr_type_node)
153.6215 -+ endlink))));
153.6216 -+ custom_infi
153.6217 -+ = build_function_type (integer_type_node,
153.6218 -+ CUSTOM_NUM
153.6219 -+ def_param (float_type_node)
153.6220 -+ def_param (integer_type_node)
153.6221 -+ endlink))));
153.6222 -+ custom_inff
153.6223 -+ = build_function_type (integer_type_node,
153.6224 -+ CUSTOM_NUM
153.6225 -+ def_param (float_type_node)
153.6226 -+ def_param (float_type_node)
153.6227 -+ endlink))));
153.6228 -+ custom_infp
153.6229 -+ = build_function_type (integer_type_node,
153.6230 -+ CUSTOM_NUM
153.6231 -+ def_param (float_type_node)
153.6232 -+ def_param (ptr_type_node)
153.6233 -+ endlink))));
153.6234 -+ custom_inpi
153.6235 -+ = build_function_type (integer_type_node,
153.6236 -+ CUSTOM_NUM
153.6237 -+ def_param (ptr_type_node)
153.6238 -+ def_param (integer_type_node)
153.6239 -+ endlink))));
153.6240 -+ custom_inpf
153.6241 -+ = build_function_type (integer_type_node,
153.6242 -+ CUSTOM_NUM
153.6243 -+ def_param (ptr_type_node)
153.6244 -+ def_param (float_type_node)
153.6245 -+ endlink))));
153.6246 -+ custom_inpp
153.6247 -+ = build_function_type (integer_type_node,
153.6248 -+ CUSTOM_NUM
153.6249 -+ def_param (ptr_type_node)
153.6250 -+ def_param (ptr_type_node)
153.6251 -+ endlink))));
153.6252 -+
153.6253 -+ custom_fn
153.6254 -+ = build_function_type (float_type_node,
153.6255 -+ CUSTOM_NUM
153.6256 -+ endlink));
153.6257 -+ custom_fni
153.6258 -+ = build_function_type (float_type_node,
153.6259 -+ CUSTOM_NUM
153.6260 -+ def_param (integer_type_node)
153.6261 -+ endlink)));
153.6262 -+ custom_fnf
153.6263 -+ = build_function_type (float_type_node,
153.6264 -+ CUSTOM_NUM
153.6265 -+ def_param (float_type_node)
153.6266 -+ endlink)));
153.6267 -+ custom_fnp
153.6268 -+ = build_function_type (float_type_node,
153.6269 -+ CUSTOM_NUM
153.6270 -+ def_param (ptr_type_node)
153.6271 -+ endlink)));
153.6272 -+ custom_fnii
153.6273 -+ = build_function_type (float_type_node,
153.6274 -+ CUSTOM_NUM
153.6275 -+ def_param (integer_type_node)
153.6276 -+ def_param (integer_type_node)
153.6277 -+ endlink))));
153.6278 -+ custom_fnif
153.6279 -+ = build_function_type (float_type_node,
153.6280 -+ CUSTOM_NUM
153.6281 -+ def_param (integer_type_node)
153.6282 -+ def_param (float_type_node)
153.6283 -+ endlink))));
153.6284 -+ custom_fnip
153.6285 -+ = build_function_type (float_type_node,
153.6286 -+ CUSTOM_NUM
153.6287 -+ def_param (integer_type_node)
153.6288 -+ def_param (ptr_type_node)
153.6289 -+ endlink))));
153.6290 -+ custom_fnfi
153.6291 -+ = build_function_type (float_type_node,
153.6292 -+ CUSTOM_NUM
153.6293 -+ def_param (float_type_node)
153.6294 -+ def_param (integer_type_node)
153.6295 -+ endlink))));
153.6296 -+ custom_fnff
153.6297 -+ = build_function_type (float_type_node,
153.6298 -+ CUSTOM_NUM
153.6299 -+ def_param (float_type_node)
153.6300 -+ def_param (float_type_node)
153.6301 -+ endlink))));
153.6302 -+ custom_fnfp
153.6303 -+ = build_function_type (float_type_node,
153.6304 -+ CUSTOM_NUM
153.6305 -+ def_param (float_type_node)
153.6306 -+ def_param (ptr_type_node)
153.6307 -+ endlink))));
153.6308 -+ custom_fnpi
153.6309 -+ = build_function_type (float_type_node,
153.6310 -+ CUSTOM_NUM
153.6311 -+ def_param (ptr_type_node)
153.6312 -+ def_param (integer_type_node)
153.6313 -+ endlink))));
153.6314 -+ custom_fnpf
153.6315 -+ = build_function_type (float_type_node,
153.6316 -+ CUSTOM_NUM
153.6317 -+ def_param (ptr_type_node)
153.6318 -+ def_param (float_type_node)
153.6319 -+ endlink))));
153.6320 -+ custom_fnpp
153.6321 -+ = build_function_type (float_type_node,
153.6322 -+ CUSTOM_NUM
153.6323 -+ def_param (ptr_type_node)
153.6324 -+ def_param (ptr_type_node)
153.6325 -+ endlink))));
153.6326 -+
153.6327 -+
153.6328 -+ custom_pn
153.6329 -+ = build_function_type (ptr_type_node,
153.6330 -+ CUSTOM_NUM
153.6331 -+ endlink));
153.6332 -+ custom_pni
153.6333 -+ = build_function_type (ptr_type_node,
153.6334 -+ CUSTOM_NUM
153.6335 -+ def_param (integer_type_node)
153.6336 -+ endlink)));
153.6337 -+ custom_pnf
153.6338 -+ = build_function_type (ptr_type_node,
153.6339 -+ CUSTOM_NUM
153.6340 -+ def_param (float_type_node)
153.6341 -+ endlink)));
153.6342 -+ custom_pnp
153.6343 -+ = build_function_type (ptr_type_node,
153.6344 -+ CUSTOM_NUM
153.6345 -+ def_param (ptr_type_node)
153.6346 -+ endlink)));
153.6347 -+ custom_pnii
153.6348 -+ = build_function_type (ptr_type_node,
153.6349 -+ CUSTOM_NUM
153.6350 -+ def_param (integer_type_node)
153.6351 -+ def_param (integer_type_node)
153.6352 -+ endlink))));
153.6353 -+ custom_pnif
153.6354 -+ = build_function_type (ptr_type_node,
153.6355 -+ CUSTOM_NUM
153.6356 -+ def_param (integer_type_node)
153.6357 -+ def_param (float_type_node)
153.6358 -+ endlink))));
153.6359 -+ custom_pnip
153.6360 -+ = build_function_type (ptr_type_node,
153.6361 -+ CUSTOM_NUM
153.6362 -+ def_param (integer_type_node)
153.6363 -+ def_param (ptr_type_node)
153.6364 -+ endlink))));
153.6365 -+ custom_pnfi
153.6366 -+ = build_function_type (ptr_type_node,
153.6367 -+ CUSTOM_NUM
153.6368 -+ def_param (float_type_node)
153.6369 -+ def_param (integer_type_node)
153.6370 -+ endlink))));
153.6371 -+ custom_pnff
153.6372 -+ = build_function_type (ptr_type_node,
153.6373 -+ CUSTOM_NUM
153.6374 -+ def_param (float_type_node)
153.6375 -+ def_param (float_type_node)
153.6376 -+ endlink))));
153.6377 -+ custom_pnfp
153.6378 -+ = build_function_type (ptr_type_node,
153.6379 -+ CUSTOM_NUM
153.6380 -+ def_param (float_type_node)
153.6381 -+ def_param (ptr_type_node)
153.6382 -+ endlink))));
153.6383 -+ custom_pnpi
153.6384 -+ = build_function_type (ptr_type_node,
153.6385 -+ CUSTOM_NUM
153.6386 -+ def_param (ptr_type_node)
153.6387 -+ def_param (integer_type_node)
153.6388 -+ endlink))));
153.6389 -+ custom_pnpf
153.6390 -+ = build_function_type (ptr_type_node,
153.6391 -+ CUSTOM_NUM
153.6392 -+ def_param (ptr_type_node)
153.6393 -+ def_param (float_type_node)
153.6394 -+ endlink))));
153.6395 -+ custom_pnpp
153.6396 -+ = build_function_type (ptr_type_node,
153.6397 -+ CUSTOM_NUM
153.6398 -+ def_param (ptr_type_node)
153.6399 -+ def_param (ptr_type_node)
153.6400 -+ endlink))));
153.6401 -+
153.6402 -+
153.6403 -+
153.6404 -+ /* *INDENT-ON* */
153.6405 -+
153.6406 -+
153.6407 -+ for (d = bdesc; d->name; d++)
153.6408 -+ {
153.6409 -+ builtin_function (d->name, *d->type, d->code,
153.6410 -+ BUILT_IN_MD, NULL, NULL);
153.6411 -+ }
153.6412 -+}
153.6413 -+
153.6414 -+/* Expand an expression EXP that calls a built-in function,
153.6415 -+ with result going to TARGET if that's convenient
153.6416 -+ (and in mode MODE if that's convenient).
153.6417 -+ SUBTARGET may be used as the target for computing one of EXP's operands.
153.6418 -+ IGNORE is nonzero if the value is to be ignored. */
153.6419 -+
153.6420 -+static rtx
153.6421 -+nios2_expand_builtin (tree exp, rtx target, rtx subtarget,
153.6422 -+ enum machine_mode mode, int ignore)
153.6423 -+{
153.6424 -+ const struct builtin_description *d;
153.6425 -+ tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
153.6426 -+ unsigned int fcode = DECL_FUNCTION_CODE (fndecl);
153.6427 -+
153.6428 -+ for (d = bdesc; d->name; d++)
153.6429 -+ if (d->code == fcode)
153.6430 -+ return (d->expander) (d, exp, target, subtarget, mode, ignore);
153.6431 -+
153.6432 -+ /* we should have seen one of the functins we registered */
153.6433 -+ abort ();
153.6434 -+}
153.6435 -+
153.6436 -+static rtx nios2_create_target (const struct builtin_description *, rtx);
153.6437 -+
153.6438 -+
153.6439 -+static rtx
153.6440 -+nios2_create_target (const struct builtin_description *d, rtx target)
153.6441 -+{
153.6442 -+ if (!target
153.6443 -+ || !(*insn_data[d->icode].operand[0].predicate) (target,
153.6444 -+ insn_data[d->icode].operand[0].mode))
153.6445 -+ {
153.6446 -+ target = gen_reg_rtx (insn_data[d->icode].operand[0].mode);
153.6447 -+ }
153.6448 -+
153.6449 -+ return target;
153.6450 -+}
153.6451 -+
153.6452 -+
153.6453 -+static rtx nios2_extract_opcode (const struct builtin_description *, int, tree);
153.6454 -+static rtx nios2_extract_operand (const struct builtin_description *, int, int, tree);
153.6455 -+
153.6456 -+static rtx
153.6457 -+nios2_extract_opcode (const struct builtin_description *d, int op, tree arglist)
153.6458 -+{
153.6459 -+ enum machine_mode mode = insn_data[d->icode].operand[op].mode;
153.6460 -+ tree arg = TREE_VALUE (arglist);
153.6461 -+ rtx opcode = expand_expr (arg, NULL_RTX, mode, 0);
153.6462 -+ opcode = protect_from_queue (opcode, 0);
153.6463 -+
153.6464 -+ if (!(*insn_data[d->icode].operand[op].predicate) (opcode, mode))
153.6465 -+ error ("Custom instruction opcode must be compile time constant in the range 0-255 for %s", d->name);
153.6466 -+
153.6467 -+ return opcode;
153.6468 -+}
153.6469 -+
153.6470 -+static rtx
153.6471 -+nios2_extract_operand (const struct builtin_description *d, int op, int argnum, tree arglist)
153.6472 -+{
153.6473 -+ enum machine_mode mode = insn_data[d->icode].operand[op].mode;
153.6474 -+ tree arg = TREE_VALUE (arglist);
153.6475 -+ rtx operand = expand_expr (arg, NULL_RTX, mode, 0);
153.6476 -+ operand = protect_from_queue (operand, 0);
153.6477 -+
153.6478 -+ if (!(*insn_data[d->icode].operand[op].predicate) (operand, mode))
153.6479 -+ operand = copy_to_mode_reg (mode, operand);
153.6480 -+
153.6481 -+ /* ??? Better errors would be nice */
153.6482 -+ if (!(*insn_data[d->icode].operand[op].predicate) (operand, mode))
153.6483 -+ error ("Invalid argument %d to %s", argnum, d->name);
153.6484 -+
153.6485 -+ return operand;
153.6486 -+}
153.6487 -+
153.6488 -+
153.6489 -+static rtx
153.6490 -+nios2_expand_custom_n (const struct builtin_description *d, tree exp,
153.6491 -+ rtx target ATTRIBUTE_UNUSED, rtx subtarget ATTRIBUTE_UNUSED,
153.6492 -+ enum machine_mode mode ATTRIBUTE_UNUSED, int ignore ATTRIBUTE_UNUSED)
153.6493 -+{
153.6494 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6495 -+ rtx pat;
153.6496 -+ rtx opcode;
153.6497 -+
153.6498 -+ /* custom_n should have exactly one operand */
153.6499 -+ if (insn_data[d->icode].n_operands != 1)
153.6500 -+ abort ();
153.6501 -+
153.6502 -+ opcode = nios2_extract_opcode (d, 0, arglist);
153.6503 -+
153.6504 -+ pat = GEN_FCN (d->icode) (opcode);
153.6505 -+ if (!pat)
153.6506 -+ return 0;
153.6507 -+ emit_insn (pat);
153.6508 -+ return 0;
153.6509 -+}
153.6510 -+
153.6511 -+static rtx
153.6512 -+nios2_expand_custom_Xn (const struct builtin_description *d, tree exp,
153.6513 -+ rtx target, rtx subtarget ATTRIBUTE_UNUSED,
153.6514 -+ enum machine_mode mode ATTRIBUTE_UNUSED,
153.6515 -+ int ignore ATTRIBUTE_UNUSED)
153.6516 -+{
153.6517 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6518 -+ rtx pat;
153.6519 -+ rtx opcode;
153.6520 -+
153.6521 -+ /* custom_Xn should have exactly two operands */
153.6522 -+ if (insn_data[d->icode].n_operands != 2)
153.6523 -+ abort ();
153.6524 -+
153.6525 -+ target = nios2_create_target (d, target);
153.6526 -+ opcode = nios2_extract_opcode (d, 1, arglist);
153.6527 -+
153.6528 -+ pat = GEN_FCN (d->icode) (target, opcode);
153.6529 -+ if (!pat)
153.6530 -+ return 0;
153.6531 -+ emit_insn (pat);
153.6532 -+ return target;
153.6533 -+}
153.6534 -+
153.6535 -+static rtx
153.6536 -+nios2_expand_custom_nX (const struct builtin_description *d, tree exp,
153.6537 -+ rtx target ATTRIBUTE_UNUSED, rtx subtarget ATTRIBUTE_UNUSED,
153.6538 -+ enum machine_mode mode ATTRIBUTE_UNUSED, int ignore ATTRIBUTE_UNUSED)
153.6539 -+{
153.6540 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6541 -+ rtx pat;
153.6542 -+ rtx opcode;
153.6543 -+ rtx operands[1];
153.6544 -+ int i;
153.6545 -+
153.6546 -+
153.6547 -+ /* custom_nX should have exactly two operands */
153.6548 -+ if (insn_data[d->icode].n_operands != 2)
153.6549 -+ abort ();
153.6550 -+
153.6551 -+ opcode = nios2_extract_opcode (d, 0, arglist);
153.6552 -+ for (i = 0; i < 1; i++)
153.6553 -+ {
153.6554 -+ arglist = TREE_CHAIN (arglist);
153.6555 -+ operands[i] = nios2_extract_operand (d, i + 1, i + 1, arglist);
153.6556 -+ }
153.6557 -+
153.6558 -+ pat = GEN_FCN (d->icode) (opcode, operands[0]);
153.6559 -+ if (!pat)
153.6560 -+ return 0;
153.6561 -+ emit_insn (pat);
153.6562 -+ return 0;
153.6563 -+}
153.6564 -+
153.6565 -+static rtx
153.6566 -+nios2_expand_custom_XnX (const struct builtin_description *d, tree exp, rtx target,
153.6567 -+ rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED,
153.6568 -+ int ignore ATTRIBUTE_UNUSED)
153.6569 -+{
153.6570 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6571 -+ rtx pat;
153.6572 -+ rtx opcode;
153.6573 -+ rtx operands[1];
153.6574 -+ int i;
153.6575 -+
153.6576 -+ /* custom_Xn should have exactly three operands */
153.6577 -+ if (insn_data[d->icode].n_operands != 3)
153.6578 -+ abort ();
153.6579 -+
153.6580 -+ target = nios2_create_target (d, target);
153.6581 -+ opcode = nios2_extract_opcode (d, 1, arglist);
153.6582 -+
153.6583 -+ for (i = 0; i < 1; i++)
153.6584 -+ {
153.6585 -+ arglist = TREE_CHAIN (arglist);
153.6586 -+ operands[i] = nios2_extract_operand (d, i + 2, i + 1, arglist);
153.6587 -+ }
153.6588 -+
153.6589 -+ pat = GEN_FCN (d->icode) (target, opcode, operands[0]);
153.6590 -+
153.6591 -+ if (!pat)
153.6592 -+ return 0;
153.6593 -+ emit_insn (pat);
153.6594 -+ return target;
153.6595 -+}
153.6596 -+
153.6597 -+static rtx
153.6598 -+nios2_expand_custom_nXX (const struct builtin_description *d, tree exp, rtx target ATTRIBUTE_UNUSED,
153.6599 -+ rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED,
153.6600 -+ int ignore ATTRIBUTE_UNUSED)
153.6601 -+{
153.6602 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6603 -+ rtx pat;
153.6604 -+ rtx opcode;
153.6605 -+ rtx operands[2];
153.6606 -+ int i;
153.6607 -+
153.6608 -+
153.6609 -+ /* custom_nX should have exactly three operands */
153.6610 -+ if (insn_data[d->icode].n_operands != 3)
153.6611 -+ abort ();
153.6612 -+
153.6613 -+ opcode = nios2_extract_opcode (d, 0, arglist);
153.6614 -+ for (i = 0; i < 2; i++)
153.6615 -+ {
153.6616 -+ arglist = TREE_CHAIN (arglist);
153.6617 -+ operands[i] = nios2_extract_operand (d, i + 1, i + 1, arglist);
153.6618 -+ }
153.6619 -+
153.6620 -+ pat = GEN_FCN (d->icode) (opcode, operands[0], operands[1]);
153.6621 -+ if (!pat)
153.6622 -+ return 0;
153.6623 -+ emit_insn (pat);
153.6624 -+ return 0;
153.6625 -+}
153.6626 -+
153.6627 -+static rtx
153.6628 -+nios2_expand_custom_XnXX (const struct builtin_description *d, tree exp, rtx target,
153.6629 -+ rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED,
153.6630 -+ int ignore ATTRIBUTE_UNUSED)
153.6631 -+{
153.6632 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6633 -+ rtx pat;
153.6634 -+ rtx opcode;
153.6635 -+ rtx operands[2];
153.6636 -+ int i;
153.6637 -+
153.6638 -+
153.6639 -+ /* custom_XnX should have exactly four operands */
153.6640 -+ if (insn_data[d->icode].n_operands != 4)
153.6641 -+ abort ();
153.6642 -+
153.6643 -+ target = nios2_create_target (d, target);
153.6644 -+ opcode = nios2_extract_opcode (d, 1, arglist);
153.6645 -+ for (i = 0; i < 2; i++)
153.6646 -+ {
153.6647 -+ arglist = TREE_CHAIN (arglist);
153.6648 -+ operands[i] = nios2_extract_operand (d, i + 2, i + 1, arglist);
153.6649 -+ }
153.6650 -+
153.6651 -+ pat = GEN_FCN (d->icode) (target, opcode, operands[0], operands[1]);
153.6652 -+
153.6653 -+ if (!pat)
153.6654 -+ return 0;
153.6655 -+ emit_insn (pat);
153.6656 -+ return target;
153.6657 -+}
153.6658 -+
153.6659 -+
153.6660 -+
153.6661 -+static rtx
153.6662 -+nios2_expand_STXIO (const struct builtin_description *d, tree exp, rtx target ATTRIBUTE_UNUSED,
153.6663 -+ rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED,
153.6664 -+ int ignore ATTRIBUTE_UNUSED)
153.6665 -+{
153.6666 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6667 -+ rtx pat;
153.6668 -+ rtx store_dest, store_val;
153.6669 -+ enum insn_code icode = d->icode;
153.6670 -+
153.6671 -+ /* stores should have exactly two operands */
153.6672 -+ if (insn_data[icode].n_operands != 2)
153.6673 -+ abort ();
153.6674 -+
153.6675 -+ /* process the destination of the store */
153.6676 -+ {
153.6677 -+ enum machine_mode mode = insn_data[icode].operand[0].mode;
153.6678 -+ tree arg = TREE_VALUE (arglist);
153.6679 -+ store_dest = expand_expr (arg, NULL_RTX, VOIDmode, 0);
153.6680 -+ store_dest = protect_from_queue (store_dest, 0);
153.6681 -+
153.6682 -+ store_dest = gen_rtx_MEM (mode, copy_to_mode_reg (Pmode, store_dest));
153.6683 -+
153.6684 -+ /* ??? Better errors would be nice */
153.6685 -+ if (!(*insn_data[icode].operand[0].predicate) (store_dest, mode))
153.6686 -+ error ("Invalid argument 1 to %s", d->name);
153.6687 -+ }
153.6688 -+
153.6689 -+
153.6690 -+ /* process the value to store */
153.6691 -+ {
153.6692 -+ enum machine_mode mode = insn_data[icode].operand[1].mode;
153.6693 -+ tree arg = TREE_VALUE (TREE_CHAIN (arglist));
153.6694 -+ store_val = expand_expr (arg, NULL_RTX, mode, 0);
153.6695 -+ store_val = protect_from_queue (store_val, 0);
153.6696 -+
153.6697 -+ if (!(*insn_data[icode].operand[1].predicate) (store_val, mode))
153.6698 -+ store_val = copy_to_mode_reg (mode, store_val);
153.6699 -+
153.6700 -+ /* ??? Better errors would be nice */
153.6701 -+ if (!(*insn_data[icode].operand[1].predicate) (store_val, mode))
153.6702 -+ error ("Invalid argument 2 to %s", d->name);
153.6703 -+ }
153.6704 -+
153.6705 -+ pat = GEN_FCN (d->icode) (store_dest, store_val);
153.6706 -+ if (!pat)
153.6707 -+ return 0;
153.6708 -+ emit_insn (pat);
153.6709 -+ return 0;
153.6710 -+}
153.6711 -+
153.6712 -+
153.6713 -+static rtx
153.6714 -+nios2_expand_LDXIO (const struct builtin_description * d, tree exp, rtx target,
153.6715 -+ rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED,
153.6716 -+ int ignore ATTRIBUTE_UNUSED)
153.6717 -+{
153.6718 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6719 -+ rtx pat;
153.6720 -+ rtx ld_src;
153.6721 -+ enum insn_code icode = d->icode;
153.6722 -+
153.6723 -+ /* loads should have exactly two operands */
153.6724 -+ if (insn_data[icode].n_operands != 2)
153.6725 -+ abort ();
153.6726 -+
153.6727 -+ target = nios2_create_target (d, target);
153.6728 -+
153.6729 -+ {
153.6730 -+ enum machine_mode mode = insn_data[icode].operand[1].mode;
153.6731 -+ tree arg = TREE_VALUE (arglist);
153.6732 -+ ld_src = expand_expr (arg, NULL_RTX, VOIDmode, 0);
153.6733 -+ ld_src = protect_from_queue (ld_src, 0);
153.6734 -+
153.6735 -+ ld_src = gen_rtx_MEM (mode, copy_to_mode_reg (Pmode, ld_src));
153.6736 -+
153.6737 -+ /* ??? Better errors would be nice */
153.6738 -+ if (!(*insn_data[icode].operand[1].predicate) (ld_src, mode))
153.6739 -+ {
153.6740 -+ error ("Invalid argument 1 to %s", d->name);
153.6741 -+ }
153.6742 -+ }
153.6743 -+
153.6744 -+ pat = GEN_FCN (d->icode) (target, ld_src);
153.6745 -+ if (!pat)
153.6746 -+ return 0;
153.6747 -+ emit_insn (pat);
153.6748 -+ return target;
153.6749 -+}
153.6750 -+
153.6751 -+
153.6752 -+static rtx
153.6753 -+nios2_expand_sync (const struct builtin_description * d ATTRIBUTE_UNUSED,
153.6754 -+ tree exp ATTRIBUTE_UNUSED, rtx target ATTRIBUTE_UNUSED,
153.6755 -+ rtx subtarget ATTRIBUTE_UNUSED,
153.6756 -+ enum machine_mode mode ATTRIBUTE_UNUSED,
153.6757 -+ int ignore ATTRIBUTE_UNUSED)
153.6758 -+{
153.6759 -+ emit_insn (gen_sync ());
153.6760 -+ return 0;
153.6761 -+}
153.6762 -+
153.6763 -+static rtx
153.6764 -+nios2_expand_rdctl (const struct builtin_description * d ATTRIBUTE_UNUSED,
153.6765 -+ tree exp ATTRIBUTE_UNUSED, rtx target ATTRIBUTE_UNUSED,
153.6766 -+ rtx subtarget ATTRIBUTE_UNUSED,
153.6767 -+ enum machine_mode mode ATTRIBUTE_UNUSED,
153.6768 -+ int ignore ATTRIBUTE_UNUSED)
153.6769 -+{
153.6770 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6771 -+ rtx pat;
153.6772 -+ rtx rdctl_reg;
153.6773 -+ enum insn_code icode = d->icode;
153.6774 -+
153.6775 -+ /* rdctl should have exactly two operands */
153.6776 -+ if (insn_data[icode].n_operands != 2)
153.6777 -+ abort ();
153.6778 -+
153.6779 -+ target = nios2_create_target (d, target);
153.6780 -+
153.6781 -+ {
153.6782 -+ enum machine_mode mode = insn_data[icode].operand[1].mode;
153.6783 -+ tree arg = TREE_VALUE (arglist);
153.6784 -+ rdctl_reg = expand_expr (arg, NULL_RTX, VOIDmode, 0);
153.6785 -+ rdctl_reg = protect_from_queue (rdctl_reg, 0);
153.6786 -+
153.6787 -+ if (!(*insn_data[icode].operand[1].predicate) (rdctl_reg, mode))
153.6788 -+ {
153.6789 -+ error ("Control register number must be in range 0-31 for %s", d->name);
153.6790 -+ }
153.6791 -+ }
153.6792 -+
153.6793 -+ pat = GEN_FCN (d->icode) (target, rdctl_reg);
153.6794 -+ if (!pat)
153.6795 -+ return 0;
153.6796 -+ emit_insn (pat);
153.6797 -+ return target;
153.6798 -+}
153.6799 -+
153.6800 -+static rtx
153.6801 -+nios2_expand_wrctl (const struct builtin_description * d ATTRIBUTE_UNUSED,
153.6802 -+ tree exp ATTRIBUTE_UNUSED, rtx target ATTRIBUTE_UNUSED,
153.6803 -+ rtx subtarget ATTRIBUTE_UNUSED,
153.6804 -+ enum machine_mode mode ATTRIBUTE_UNUSED,
153.6805 -+ int ignore ATTRIBUTE_UNUSED)
153.6806 -+{
153.6807 -+ tree arglist = TREE_OPERAND (exp, 1);
153.6808 -+ rtx pat;
153.6809 -+ rtx wrctl_reg, store_val;
153.6810 -+ enum insn_code icode = d->icode;
153.6811 -+
153.6812 -+ /* stores should have exactly two operands */
153.6813 -+ if (insn_data[icode].n_operands != 2)
153.6814 -+ abort ();
153.6815 -+
153.6816 -+ /* process the destination of the store */
153.6817 -+ {
153.6818 -+ enum machine_mode mode = insn_data[icode].operand[0].mode;
153.6819 -+ tree arg = TREE_VALUE (arglist);
153.6820 -+ wrctl_reg = expand_expr (arg, NULL_RTX, VOIDmode, 0);
153.6821 -+ wrctl_reg = protect_from_queue (wrctl_reg, 0);
153.6822 -+
153.6823 -+ if (!(*insn_data[icode].operand[0].predicate) (wrctl_reg, mode))
153.6824 -+ error ("Control register number must be in range 0-31 for %s", d->name);
153.6825 -+ }
153.6826 -+
153.6827 -+
153.6828 -+ /* process the value to store */
153.6829 -+ {
153.6830 -+ enum machine_mode mode = insn_data[icode].operand[1].mode;
153.6831 -+ tree arg = TREE_VALUE (TREE_CHAIN (arglist));
153.6832 -+ store_val = expand_expr (arg, NULL_RTX, mode, 0);
153.6833 -+ store_val = protect_from_queue (store_val, 0);
153.6834 -+
153.6835 -+ if (!(*insn_data[icode].operand[1].predicate) (store_val, mode))
153.6836 -+ store_val = copy_to_mode_reg (mode, store_val);
153.6837 -+
153.6838 -+ /* ??? Better errors would be nice */
153.6839 -+ if (!(*insn_data[icode].operand[1].predicate) (store_val, mode))
153.6840 -+ error ("Invalid argument 2 to %s", d->name);
153.6841 -+ }
153.6842 -+
153.6843 -+ pat = GEN_FCN (d->icode) (wrctl_reg, store_val);
153.6844 -+ if (!pat)
153.6845 -+ return 0;
153.6846 -+ emit_insn (pat);
153.6847 -+ return 0;
153.6848 -+}
153.6849 -+
153.6850 -+
153.6851 -+#include "gt-nios2.h"
153.6852 -+
153.6853 ---- gcc-3.4.3/gcc/config/nios2/nios2.h
153.6854 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2.h
153.6855 -@@ -0,0 +1,824 @@
153.6856 -+/* Definitions of target machine for Altera NIOS 2G NIOS2 version.
153.6857 -+ Copyright (C) 2003 Altera
153.6858 -+ Contributed by Jonah Graham (jgraham@altera.com).
153.6859 -+
153.6860 -+This file is part of GNU CC.
153.6861 -+
153.6862 -+GNU CC is free software; you can redistribute it and/or modify
153.6863 -+it under the terms of the GNU General Public License as published by
153.6864 -+the Free Software Foundation; either version 2, or (at your option)
153.6865 -+any later version.
153.6866 -+
153.6867 -+GNU CC is distributed in the hope that it will be useful,
153.6868 -+but WITHOUT ANY WARRANTY; without even the implied warranty of
153.6869 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
153.6870 -+GNU General Public License for more details.
153.6871 -+
153.6872 -+You should have received a copy of the GNU General Public License
153.6873 -+along with GNU CC; see the file COPYING. If not, write to
153.6874 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.6875 -+Boston, MA 02111-1307, USA. */
153.6876 -+
153.6877 -+
153.6878 -+
153.6879 -+#define TARGET_CPU_CPP_BUILTINS() \
153.6880 -+ do \
153.6881 -+ { \
153.6882 -+ builtin_define_std ("NIOS2"); \
153.6883 -+ builtin_define_std ("nios2"); \
153.6884 -+ builtin_define ("_GNU_SOURCE"); \
153.6885 -+ } \
153.6886 -+ while (0)
153.6887 -+#define TARGET_VERSION fprintf (stderr, " (Altera Nios II)")
153.6888 -+
153.6889 -+
153.6890 -+
153.6891 -+
153.6892 -+
153.6893 -+/*********************************
153.6894 -+ * Run-time Target Specification
153.6895 -+ *********************************/
153.6896 -+
153.6897 -+#define HAS_DIV_FLAG 0x0001
153.6898 -+#define HAS_MUL_FLAG 0x0002
153.6899 -+#define HAS_MULX_FLAG 0x0004
153.6900 -+#define FAST_SW_DIV_FLAG 0x0008
153.6901 -+#define INLINE_MEMCPY_FLAG 0x00010
153.6902 -+#define CACHE_VOLATILE_FLAG 0x0020
153.6903 -+#define BYPASS_CACHE_FLAG 0x0040
153.6904 -+
153.6905 -+extern int target_flags;
153.6906 -+#define TARGET_HAS_DIV (target_flags & HAS_DIV_FLAG)
153.6907 -+#define TARGET_HAS_MUL (target_flags & HAS_MUL_FLAG)
153.6908 -+#define TARGET_HAS_MULX (target_flags & HAS_MULX_FLAG)
153.6909 -+#define TARGET_FAST_SW_DIV (target_flags & FAST_SW_DIV_FLAG)
153.6910 -+#define TARGET_INLINE_MEMCPY (target_flags & INLINE_MEMCPY_FLAG)
153.6911 -+#define TARGET_CACHE_VOLATILE (target_flags & CACHE_VOLATILE_FLAG)
153.6912 -+#define TARGET_BYPASS_CACHE (target_flags & BYPASS_CACHE_FLAG)
153.6913 -+
153.6914 -+#define TARGET_SWITCHES \
153.6915 -+{ \
153.6916 -+ { "hw-div", HAS_DIV_FLAG, \
153.6917 -+ N_("Enable DIV, DIVU") }, \
153.6918 -+ { "no-hw-div", -HAS_DIV_FLAG, \
153.6919 -+ N_("Disable DIV, DIVU (default)") }, \
153.6920 -+ { "hw-mul", HAS_MUL_FLAG, \
153.6921 -+ N_("Enable MUL instructions (default)") }, \
153.6922 -+ { "hw-mulx", HAS_MULX_FLAG, \
153.6923 -+ N_("Enable MULX instructions, assume fast shifter") }, \
153.6924 -+ { "no-hw-mul", -HAS_MUL_FLAG, \
153.6925 -+ N_("Disable MUL instructions") }, \
153.6926 -+ { "no-hw-mulx", -HAS_MULX_FLAG, \
153.6927 -+ N_("Disable MULX instructions, assume slow shifter (default and implied by -mno-hw-mul)") }, \
153.6928 -+ { "fast-sw-div", FAST_SW_DIV_FLAG, \
153.6929 -+ N_("Use table based fast divide (default at -O3)") }, \
153.6930 -+ { "no-fast-sw-div", -FAST_SW_DIV_FLAG, \
153.6931 -+ N_("Don't use table based fast divide ever") }, \
153.6932 -+ { "inline-memcpy", INLINE_MEMCPY_FLAG, \
153.6933 -+ N_("Inline small memcpy (default when optimizing)") }, \
153.6934 -+ { "no-inline-memcpy", -INLINE_MEMCPY_FLAG, \
153.6935 -+ N_("Don't Inline small memcpy") }, \
153.6936 -+ { "cache-volatile", CACHE_VOLATILE_FLAG, \
153.6937 -+ N_("Volatile accesses use non-io variants of instructions (default)") }, \
153.6938 -+ { "no-cache-volatile", -CACHE_VOLATILE_FLAG, \
153.6939 -+ N_("Volatile accesses use io variants of instructions") }, \
153.6940 -+ { "bypass-cache", BYPASS_CACHE_FLAG, \
153.6941 -+ N_("All ld/st instructins use io variants") }, \
153.6942 -+ { "no-bypass-cache", -BYPASS_CACHE_FLAG, \
153.6943 -+ N_("All ld/st instructins do not use io variants (default)") }, \
153.6944 -+ { "smallc", 0, \
153.6945 -+ N_("Link with a limited version of the C library") }, \
153.6946 -+ { "ctors-in-init", 0, \
153.6947 -+ "" /* undocumented: N_("Link with static constructors and destructors in init") */ }, \
153.6948 -+ { "", TARGET_DEFAULT, 0 } \
153.6949 -+}
153.6950 -+
153.6951 -+
153.6952 -+extern const char *nios2_sys_nosys_string; /* for -msys=nosys */
153.6953 -+extern const char *nios2_sys_lib_string; /* for -msys-lib= */
153.6954 -+extern const char *nios2_sys_crt0_string; /* for -msys-crt0= */
153.6955 -+
153.6956 -+#define TARGET_OPTIONS \
153.6957 -+{ \
153.6958 -+ { "sys=nosys", &nios2_sys_nosys_string, \
153.6959 -+ N_("Use stub versions of OS library calls (default)"), 0}, \
153.6960 -+ { "sys-lib=", &nios2_sys_lib_string, \
153.6961 -+ N_("Name of System Library to link against. (Converted to a -l option)"), 0}, \
153.6962 -+ { "sys-crt0=", &nios2_sys_crt0_string, \
153.6963 -+ N_("Name of the startfile. (default is a crt0 for the ISS only)"), 0}, \
153.6964 -+}
153.6965 -+
153.6966 -+
153.6967 -+/* Default target_flags if no switches specified. */
153.6968 -+#ifndef TARGET_DEFAULT
153.6969 -+# define TARGET_DEFAULT (HAS_MUL_FLAG | CACHE_VOLATILE_FLAG)
153.6970 -+#endif
153.6971 -+
153.6972 -+/* Switch Recognition by gcc.c. Add -G xx support */
153.6973 -+#undef SWITCH_TAKES_ARG
153.6974 -+#define SWITCH_TAKES_ARG(CHAR) \
153.6975 -+ (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G')
153.6976 -+
153.6977 -+#define OVERRIDE_OPTIONS override_options ()
153.6978 -+#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) optimization_options (LEVEL, SIZE)
153.6979 -+#define CAN_DEBUG_WITHOUT_FP
153.6980 -+
153.6981 -+#define CC1_SPEC "\
153.6982 -+%{G*}"
153.6983 -+
153.6984 -+#undef LIB_SPEC
153.6985 -+#define LIB_SPEC \
153.6986 -+"--start-group %{msmallc: -lsmallc} %{!msmallc: -lc} -lgcc \
153.6987 -+ %{msys-lib=*: -l%*} \
153.6988 -+ %{!msys-lib=*: -lc } \
153.6989 -+ --end-group \
153.6990 -+ %{msys-lib=: %eYou need a library name for -msys-lib=} \
153.6991 -+"
153.6992 -+
153.6993 -+
153.6994 -+#undef STARTFILE_SPEC
153.6995 -+#define STARTFILE_SPEC \
153.6996 -+"%{msys-crt0=*: %*} %{!msys-crt0=*: crt1%O%s} \
153.6997 -+ %{msys-crt0=: %eYou need a C startup file for -msys-crt0=} \
153.6998 -+ %{mctors-in-init: crti%O%s crtbegin%O%s} \
153.6999 -+"
153.7000 -+
153.7001 -+#undef ENDFILE_SPEC
153.7002 -+#define ENDFILE_SPEC \
153.7003 -+ "%{mctors-in-init: crtend%O%s crtn%O%s}"
153.7004 -+
153.7005 -+
153.7006 -+/***********************
153.7007 -+ * Storage Layout
153.7008 -+ ***********************/
153.7009 -+
153.7010 -+#define DEFAULT_SIGNED_CHAR 1
153.7011 -+#define BITS_BIG_ENDIAN 0
153.7012 -+#define BYTES_BIG_ENDIAN 0
153.7013 -+#define WORDS_BIG_ENDIAN 0
153.7014 -+#define BITS_PER_UNIT 8
153.7015 -+#define BITS_PER_WORD 32
153.7016 -+#define UNITS_PER_WORD 4
153.7017 -+#define POINTER_SIZE 32
153.7018 -+#define BIGGEST_ALIGNMENT 32
153.7019 -+#define STRICT_ALIGNMENT 1
153.7020 -+#define FUNCTION_BOUNDARY 32
153.7021 -+#define PARM_BOUNDARY 32
153.7022 -+#define STACK_BOUNDARY 32
153.7023 -+#define PREFERRED_STACK_BOUNDARY 32
153.7024 -+#define MAX_FIXED_MODE_SIZE 64
153.7025 -+
153.7026 -+#define CONSTANT_ALIGNMENT(EXP, ALIGN) \
153.7027 -+ ((TREE_CODE (EXP) == STRING_CST) \
153.7028 -+ && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
153.7029 -+
153.7030 -+
153.7031 -+/**********************
153.7032 -+ * Layout of Source Language Data Types
153.7033 -+ **********************/
153.7034 -+
153.7035 -+#define INT_TYPE_SIZE 32
153.7036 -+#define SHORT_TYPE_SIZE 16
153.7037 -+#define LONG_TYPE_SIZE 32
153.7038 -+#define LONG_LONG_TYPE_SIZE 64
153.7039 -+#define FLOAT_TYPE_SIZE 32
153.7040 -+#define DOUBLE_TYPE_SIZE 64
153.7041 -+#define LONG_DOUBLE_TYPE_SIZE DOUBLE_TYPE_SIZE
153.7042 -+
153.7043 -+
153.7044 -+/*************************
153.7045 -+ * Condition Code Status
153.7046 -+ ************************/
153.7047 -+
153.7048 -+/* comparison type */
153.7049 -+/* ??? currently only CMP_SI is used */
153.7050 -+enum cmp_type {
153.7051 -+ CMP_SI, /* compare four byte integers */
153.7052 -+ CMP_DI, /* compare eight byte integers */
153.7053 -+ CMP_SF, /* compare single precision floats */
153.7054 -+ CMP_DF, /* compare double precision floats */
153.7055 -+ CMP_MAX /* max comparison type */
153.7056 -+};
153.7057 -+
153.7058 -+extern GTY(()) rtx branch_cmp[2]; /* operands for compare */
153.7059 -+extern enum cmp_type branch_type; /* what type of branch to use */
153.7060 -+
153.7061 -+/**********************
153.7062 -+ * Register Usage
153.7063 -+ **********************/
153.7064 -+
153.7065 -+/* ---------------------------------- *
153.7066 -+ * Basic Characteristics of Registers
153.7067 -+ * ---------------------------------- */
153.7068 -+
153.7069 -+/*
153.7070 -+Register Number
153.7071 -+ Register Name
153.7072 -+ Alternate Name
153.7073 -+ Purpose
153.7074 -+0 r0 zero always zero
153.7075 -+1 r1 at Assembler Temporary
153.7076 -+2-3 r2-r3 Return Location
153.7077 -+4-7 r4-r7 Register Arguments
153.7078 -+8-15 r8-r15 Caller Saved Registers
153.7079 -+16-22 r16-r22 Callee Saved Registers
153.7080 -+23 r23 sc Static Chain (Callee Saved)
153.7081 -+ ??? Does $sc want to be caller or callee
153.7082 -+ saved. If caller, 15, else 23.
153.7083 -+24 r24 Exception Temporary
153.7084 -+25 r25 Breakpoint Temporary
153.7085 -+26 r26 gp Global Pointer
153.7086 -+27 r27 sp Stack Pointer
153.7087 -+28 r28 fp Frame Pointer
153.7088 -+29 r29 ea Exception Return Address
153.7089 -+30 r30 ba Breakpoint Return Address
153.7090 -+31 r31 ra Return Address
153.7091 -+
153.7092 -+32 ctl0 status
153.7093 -+33 ctl1 estatus STATUS saved by exception ?
153.7094 -+34 ctl2 bstatus STATUS saved by break ?
153.7095 -+35 ctl3 ipri Interrupt Priority Mask ?
153.7096 -+36 ctl4 ecause Exception Cause ?
153.7097 -+
153.7098 -+37 pc Not an actual register
153.7099 -+
153.7100 -+38 rap Return address pointer, this does not
153.7101 -+ actually exist and will be eliminated
153.7102 -+
153.7103 -+39 fake_fp Fake Frame Pointer which will always be eliminated.
153.7104 -+40 fake_ap Fake Argument Pointer which will always be eliminated.
153.7105 -+
153.7106 -+41 First Pseudo Register
153.7107 -+
153.7108 -+
153.7109 -+The definitions for all the hard register numbers
153.7110 -+are located in nios2.md.
153.7111 -+*/
153.7112 -+
153.7113 -+#define FIRST_PSEUDO_REGISTER 41
153.7114 -+#define NUM_ARG_REGS (LAST_ARG_REGNO - FIRST_ARG_REGNO + 1)
153.7115 -+
153.7116 -+
153.7117 -+
153.7118 -+/* also see CONDITIONAL_REGISTER_USAGE */
153.7119 -+#define FIXED_REGISTERS \
153.7120 -+ { \
153.7121 -+/* +0 1 2 3 4 5 6 7 8 9 */ \
153.7122 -+/* 0 */ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
153.7123 -+/* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
153.7124 -+/* 20 */ 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, \
153.7125 -+/* 30 */ 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, \
153.7126 -+/* 40 */ 1, \
153.7127 -+ }
153.7128 -+
153.7129 -+/* call used is the same as caller saved
153.7130 -+ + fixed regs + args + ret vals */
153.7131 -+#define CALL_USED_REGISTERS \
153.7132 -+ { \
153.7133 -+/* +0 1 2 3 4 5 6 7 8 9 */ \
153.7134 -+/* 0 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
153.7135 -+/* 10 */ 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
153.7136 -+/* 20 */ 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, \
153.7137 -+/* 30 */ 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, \
153.7138 -+/* 40 */ 1, \
153.7139 -+ }
153.7140 -+
153.7141 -+#define HARD_REGNO_NREGS(REGNO, MODE) \
153.7142 -+ ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) \
153.7143 -+ / UNITS_PER_WORD)
153.7144 -+
153.7145 -+/* --------------------------- *
153.7146 -+ * How Values Fit in Registers
153.7147 -+ * --------------------------- */
153.7148 -+
153.7149 -+#define HARD_REGNO_MODE_OK(REGNO, MODE) 1
153.7150 -+
153.7151 -+#define MODES_TIEABLE_P(MODE1, MODE2) 1
153.7152 -+
153.7153 -+
153.7154 -+/*************************
153.7155 -+ * Register Classes
153.7156 -+ *************************/
153.7157 -+
153.7158 -+enum reg_class
153.7159 -+{
153.7160 -+ NO_REGS,
153.7161 -+ ALL_REGS,
153.7162 -+ LIM_REG_CLASSES
153.7163 -+};
153.7164 -+
153.7165 -+#define N_REG_CLASSES (int) LIM_REG_CLASSES
153.7166 -+
153.7167 -+#define REG_CLASS_NAMES \
153.7168 -+ {"NO_REGS", \
153.7169 -+ "ALL_REGS"}
153.7170 -+
153.7171 -+#define GENERAL_REGS ALL_REGS
153.7172 -+
153.7173 -+#define REG_CLASS_CONTENTS \
153.7174 -+/* NO_REGS */ {{ 0, 0}, \
153.7175 -+/* ALL_REGS */ {~0,~0}} \
153.7176 -+
153.7177 -+#define REGNO_REG_CLASS(REGNO) ALL_REGS
153.7178 -+
153.7179 -+#define BASE_REG_CLASS ALL_REGS
153.7180 -+#define INDEX_REG_CLASS ALL_REGS
153.7181 -+
153.7182 -+/* only one reg class, 'r', is handled automatically */
153.7183 -+#define REG_CLASS_FROM_LETTER(CHAR) NO_REGS
153.7184 -+
153.7185 -+#define REGNO_OK_FOR_BASE_P2(REGNO, STRICT) \
153.7186 -+ ((STRICT) \
153.7187 -+ ? (REGNO) < FIRST_PSEUDO_REGISTER \
153.7188 -+ : (REGNO) < FIRST_PSEUDO_REGISTER || (reg_renumber && reg_renumber[REGNO] < FIRST_PSEUDO_REGISTER))
153.7189 -+
153.7190 -+#define REGNO_OK_FOR_INDEX_P2(REGNO, STRICT) \
153.7191 -+ (REGNO_OK_FOR_BASE_P2 (REGNO, STRICT))
153.7192 -+
153.7193 -+#define REGNO_OK_FOR_BASE_P(REGNO) \
153.7194 -+ (REGNO_OK_FOR_BASE_P2 (REGNO, 1))
153.7195 -+
153.7196 -+#define REGNO_OK_FOR_INDEX_P(REGNO) \
153.7197 -+ (REGNO_OK_FOR_INDEX_P2 (REGNO, 1))
153.7198 -+
153.7199 -+#define REG_OK_FOR_BASE_P2(X, STRICT) \
153.7200 -+ (STRICT \
153.7201 -+ ? REGNO_OK_FOR_BASE_P2 (REGNO (X), 1) \
153.7202 -+ : REGNO_OK_FOR_BASE_P2 (REGNO (X), 1) || REGNO(X) >= FIRST_PSEUDO_REGISTER)
153.7203 -+
153.7204 -+#define REG_OK_FOR_INDEX_P2(X, STRICT) \
153.7205 -+ (STRICT \
153.7206 -+ ? REGNO_OK_FOR_INDEX_P2 (REGNO (X), 1) \
153.7207 -+ : REGNO_OK_FOR_INDEX_P2 (REGNO (X), 1) || REGNO(X) >= FIRST_PSEUDO_REGISTER)
153.7208 -+
153.7209 -+#define CLASS_MAX_NREGS(CLASS, MODE) \
153.7210 -+ ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) \
153.7211 -+ / UNITS_PER_WORD)
153.7212 -+
153.7213 -+
153.7214 -+#define SMALL_INT(X) ((unsigned HOST_WIDE_INT) ((X) + 0x8000) < 0x10000)
153.7215 -+#define SMALL_INT_UNSIGNED(X) ((unsigned HOST_WIDE_INT) (X) < 0x10000)
153.7216 -+#define UPPER16_INT(X) (((X) & 0xffff) == 0)
153.7217 -+#define SHIFT_INT(X) ((X) >= 0 && (X) <= 31)
153.7218 -+#define RDWRCTL_INT(X) ((X) >= 0 && (X) <= 31)
153.7219 -+#define CUSTOM_INSN_OPCODE(X) ((X) >= 0 && (X) <= 255)
153.7220 -+
153.7221 -+#define CONST_OK_FOR_LETTER_P(VALUE, C) \
153.7222 -+ ( \
153.7223 -+ (C) == 'I' ? SMALL_INT (VALUE) : \
153.7224 -+ (C) == 'J' ? SMALL_INT_UNSIGNED (VALUE) : \
153.7225 -+ (C) == 'K' ? UPPER16_INT (VALUE) : \
153.7226 -+ (C) == 'L' ? SHIFT_INT (VALUE) : \
153.7227 -+ (C) == 'M' ? (VALUE) == 0 : \
153.7228 -+ (C) == 'N' ? CUSTOM_INSN_OPCODE (VALUE) : \
153.7229 -+ (C) == 'O' ? RDWRCTL_INT (VALUE) : \
153.7230 -+ 0)
153.7231 -+
153.7232 -+#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) 0
153.7233 -+
153.7234 -+#define PREFERRED_RELOAD_CLASS(X, CLASS) \
153.7235 -+ ((CLASS) == NO_REGS ? GENERAL_REGS : (CLASS))
153.7236 -+
153.7237 -+/* 'S' matches immediates which are in small data
153.7238 -+ and therefore can be added to gp to create a
153.7239 -+ 32-bit value. */
153.7240 -+#define EXTRA_CONSTRAINT(VALUE, C) \
153.7241 -+ ((C) == 'S' \
153.7242 -+ && (GET_CODE (VALUE) == SYMBOL_REF) \
153.7243 -+ && SYMBOL_REF_IN_NIOS2_SMALL_DATA_P (VALUE))
153.7244 -+
153.7245 -+
153.7246 -+
153.7247 -+
153.7248 -+/* Say that the epilogue uses the return address register. Note that
153.7249 -+ in the case of sibcalls, the values "used by the epilogue" are
153.7250 -+ considered live at the start of the called function. */
153.7251 -+#define EPILOGUE_USES(REGNO) ((REGNO) == RA_REGNO)
153.7252 -+
153.7253 -+
153.7254 -+#define DEFAULT_MAIN_RETURN c_expand_return (integer_zero_node)
153.7255 -+
153.7256 -+/**********************************
153.7257 -+ * Trampolines for Nested Functions
153.7258 -+ ***********************************/
153.7259 -+
153.7260 -+#define TRAMPOLINE_TEMPLATE(FILE) \
153.7261 -+ error ("trampolines not yet implemented")
153.7262 -+#define TRAMPOLINE_SIZE 20
153.7263 -+#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
153.7264 -+ error ("trampolines not yet implemented")
153.7265 -+
153.7266 -+/***************************
153.7267 -+ * Stack Layout and Calling Conventions
153.7268 -+ ***************************/
153.7269 -+
153.7270 -+/* ------------------ *
153.7271 -+ * Basic Stack Layout
153.7272 -+ * ------------------ */
153.7273 -+
153.7274 -+/* The downward variants are used by the compiler,
153.7275 -+ the upward ones serve as documentation */
153.7276 -+#define STACK_GROWS_DOWNWARD
153.7277 -+#define FRAME_GROWS_UPWARD
153.7278 -+#define ARGS_GROW_UPWARD
153.7279 -+
153.7280 -+#define STARTING_FRAME_OFFSET current_function_outgoing_args_size
153.7281 -+#define FIRST_PARM_OFFSET(FUNDECL) 0
153.7282 -+
153.7283 -+/* Before the prologue, RA lives in r31. */
153.7284 -+#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (VOIDmode, RA_REGNO)
153.7285 -+
153.7286 -+/* -------------------------------------- *
153.7287 -+ * Registers That Address the Stack Frame
153.7288 -+ * -------------------------------------- */
153.7289 -+
153.7290 -+#define STACK_POINTER_REGNUM SP_REGNO
153.7291 -+#define STATIC_CHAIN_REGNUM SC_REGNO
153.7292 -+#define PC_REGNUM PC_REGNO
153.7293 -+#define DWARF_FRAME_RETURN_COLUMN RA_REGNO
153.7294 -+
153.7295 -+/* Base register for access to local variables of the function. We
153.7296 -+ pretend that the frame pointer is a non-existent hard register, and
153.7297 -+ then eliminate it to HARD_FRAME_POINTER_REGNUM. */
153.7298 -+#define FRAME_POINTER_REGNUM FAKE_FP_REGNO
153.7299 -+
153.7300 -+#define HARD_FRAME_POINTER_REGNUM FP_REGNO
153.7301 -+#define RETURN_ADDRESS_POINTER_REGNUM RAP_REGNO
153.7302 -+/* the argumnet pointer needs to always be eliminated
153.7303 -+ so it is set to a fake hard register. */
153.7304 -+#define ARG_POINTER_REGNUM FAKE_AP_REGNO
153.7305 -+
153.7306 -+/* ----------------------------------------- *
153.7307 -+ * Eliminating Frame Pointer and Arg Pointer
153.7308 -+ * ----------------------------------------- */
153.7309 -+
153.7310 -+#define FRAME_POINTER_REQUIRED 0
153.7311 -+
153.7312 -+#define ELIMINABLE_REGS \
153.7313 -+{{ ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
153.7314 -+ { ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \
153.7315 -+ { RETURN_ADDRESS_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
153.7316 -+ { RETURN_ADDRESS_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \
153.7317 -+ { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
153.7318 -+ { FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}}
153.7319 -+
153.7320 -+#define CAN_ELIMINATE(FROM, TO) 1
153.7321 -+
153.7322 -+#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
153.7323 -+ (OFFSET) = nios2_initial_elimination_offset ((FROM), (TO))
153.7324 -+
153.7325 -+#define MUST_SAVE_REGISTER(regno) \
153.7326 -+ ((regs_ever_live[regno] && !call_used_regs[regno]) \
153.7327 -+ || (regno == HARD_FRAME_POINTER_REGNUM && frame_pointer_needed) \
153.7328 -+ || (regno == RA_REGNO && regs_ever_live[RA_REGNO]))
153.7329 -+
153.7330 -+/* Treat LOC as a byte offset from the stack pointer and round it up
153.7331 -+ to the next fully-aligned offset. */
153.7332 -+#define STACK_ALIGN(LOC) \
153.7333 -+ (((LOC) + ((PREFERRED_STACK_BOUNDARY / 8) - 1)) & ~((PREFERRED_STACK_BOUNDARY / 8) - 1))
153.7334 -+
153.7335 -+
153.7336 -+/* ------------------------------ *
153.7337 -+ * Passing Arguments in Registers
153.7338 -+ * ------------------------------ */
153.7339 -+
153.7340 -+/* see nios2.c */
153.7341 -+#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
153.7342 -+ (function_arg (&CUM, MODE, TYPE, NAMED))
153.7343 -+
153.7344 -+#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) \
153.7345 -+ (function_arg_partial_nregs (&CUM, MODE, TYPE, NAMED))
153.7346 -+
153.7347 -+#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) 0
153.7348 -+
153.7349 -+#define FUNCTION_ARG_CALLEE_COPIES(CUM, MODE, TYPE, NAMED) 0
153.7350 -+
153.7351 -+typedef struct nios2_args
153.7352 -+{
153.7353 -+ int regs_used;
153.7354 -+} CUMULATIVE_ARGS;
153.7355 -+
153.7356 -+/* This is to initialize the above unused CUM data type */
153.7357 -+#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \
153.7358 -+ (init_cumulative_args (&CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS))
153.7359 -+
153.7360 -+#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
153.7361 -+ (function_arg_advance (&CUM, MODE, TYPE, NAMED))
153.7362 -+
153.7363 -+#define FUNCTION_ARG_REGNO_P(REGNO) \
153.7364 -+ ((REGNO) >= FIRST_ARG_REGNO && (REGNO) <= LAST_ARG_REGNO)
153.7365 -+
153.7366 -+#define SETUP_INCOMING_VARARGS(CUM,MODE,TYPE,PRETEND_SIZE,NO_RTL) \
153.7367 -+ { \
153.7368 -+ int pret_size = nios2_setup_incoming_varargs (&(CUM), (MODE), \
153.7369 -+ (TYPE), (NO_RTL)); \
153.7370 -+ if (pret_size) \
153.7371 -+ (PRETEND_SIZE) = pret_size; \
153.7372 -+ }
153.7373 -+
153.7374 -+/* ----------------------------- *
153.7375 -+ * Generating Code for Profiling
153.7376 -+ * ----------------------------- */
153.7377 -+
153.7378 -+#define PROFILE_BEFORE_PROLOGUE
153.7379 -+
153.7380 -+#define FUNCTION_PROFILER(FILE, LABELNO) \
153.7381 -+ function_profiler ((FILE), (LABELNO))
153.7382 -+
153.7383 -+/* --------------------------------------- *
153.7384 -+ * Passing Function Arguments on the Stack
153.7385 -+ * --------------------------------------- */
153.7386 -+
153.7387 -+#define PROMOTE_PROTOTYPES 1
153.7388 -+
153.7389 -+#define PUSH_ARGS 0
153.7390 -+#define ACCUMULATE_OUTGOING_ARGS 1
153.7391 -+
153.7392 -+#define RETURN_POPS_ARGS(FUNDECL, FUNTYPE, STACKSIZE) 0
153.7393 -+
153.7394 -+/* --------------------------------------- *
153.7395 -+ * How Scalar Function Values Are Returned
153.7396 -+ * --------------------------------------- */
153.7397 -+
153.7398 -+#define FUNCTION_VALUE(VALTYPE, FUNC) \
153.7399 -+ gen_rtx(REG, TYPE_MODE(VALTYPE), FIRST_RETVAL_REGNO)
153.7400 -+
153.7401 -+#define LIBCALL_VALUE(MODE) \
153.7402 -+ gen_rtx(REG, MODE, FIRST_RETVAL_REGNO)
153.7403 -+
153.7404 -+#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == FIRST_RETVAL_REGNO)
153.7405 -+
153.7406 -+/* ----------------------------- *
153.7407 -+ * How Large Values Are Returned
153.7408 -+ * ----------------------------- */
153.7409 -+
153.7410 -+
153.7411 -+#define RETURN_IN_MEMORY(TYPE) \
153.7412 -+ nios2_return_in_memory (TYPE)
153.7413 -+
153.7414 -+
153.7415 -+#define STRUCT_VALUE 0
153.7416 -+
153.7417 -+#define DEFAULT_PCC_STRUCT_RETURN 0
153.7418 -+
153.7419 -+/*******************
153.7420 -+ * Addressing Modes
153.7421 -+ *******************/
153.7422 -+
153.7423 -+
153.7424 -+#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
153.7425 -+
153.7426 -+#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X))
153.7427 -+
153.7428 -+#define MAX_REGS_PER_ADDRESS 1
153.7429 -+
153.7430 -+/* Go to ADDR if X is a valid address. */
153.7431 -+#ifndef REG_OK_STRICT
153.7432 -+#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \
153.7433 -+ { \
153.7434 -+ if (nios2_legitimate_address ((X), (MODE), 0)) \
153.7435 -+ goto ADDR; \
153.7436 -+ }
153.7437 -+#else
153.7438 -+#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \
153.7439 -+ { \
153.7440 -+ if (nios2_legitimate_address ((X), (MODE), 1)) \
153.7441 -+ goto ADDR; \
153.7442 -+ }
153.7443 -+#endif
153.7444 -+
153.7445 -+#ifndef REG_OK_STRICT
153.7446 -+#define REG_OK_FOR_BASE_P(X) REGNO_OK_FOR_BASE_P2 (REGNO (X), 0)
153.7447 -+#define REG_OK_FOR_INDEX_P(X) REGNO_OK_FOR_INDEX_P2 (REGNO (X), 0)
153.7448 -+#else
153.7449 -+#define REG_OK_FOR_BASE_P(X) REGNO_OK_FOR_BASE_P2 (REGNO (X), 1)
153.7450 -+#define REG_OK_FOR_INDEX_P(X) REGNO_OK_FOR_INDEX_P2 (REGNO (X), 1)
153.7451 -+#endif
153.7452 -+
153.7453 -+#define LEGITIMATE_CONSTANT_P(X) 1
153.7454 -+
153.7455 -+/* Nios II has no mode dependent addresses. */
153.7456 -+#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)
153.7457 -+
153.7458 -+/* Set if this has a weak declaration */
153.7459 -+#define SYMBOL_FLAG_WEAK_DECL (1 << SYMBOL_FLAG_MACH_DEP_SHIFT)
153.7460 -+#define SYMBOL_REF_WEAK_DECL_P(RTX) \
153.7461 -+ ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_WEAK_DECL) != 0)
153.7462 -+
153.7463 -+
153.7464 -+/* true if a symbol is both small and not weak. In this case, gp
153.7465 -+ relative access can be used */
153.7466 -+#define SYMBOL_REF_IN_NIOS2_SMALL_DATA_P(RTX) \
153.7467 -+ (SYMBOL_REF_SMALL_P(RTX) && !SYMBOL_REF_WEAK_DECL_P(RTX))
153.7468 -+
153.7469 -+/*****************
153.7470 -+ * Describing Relative Costs of Operations
153.7471 -+ *****************/
153.7472 -+
153.7473 -+#define SLOW_BYTE_ACCESS 1
153.7474 -+
153.7475 -+/* It is as good to call a constant function address as to call an address
153.7476 -+ kept in a register.
153.7477 -+ ??? Not true anymore really. Now that call cannot address full range
153.7478 -+ of memory callr may need to be used */
153.7479 -+
153.7480 -+#define NO_FUNCTION_CSE
153.7481 -+#define NO_RECURSIVE_FUNCTION_CSE
153.7482 -+
153.7483 -+
153.7484 -+
153.7485 -+/*****************************************
153.7486 -+ * Defining the Output Assembler Language
153.7487 -+ *****************************************/
153.7488 -+
153.7489 -+/* ------------------------------------------ *
153.7490 -+ * The Overall Framework of an Assembler File
153.7491 -+ * ------------------------------------------ */
153.7492 -+
153.7493 -+#define ASM_APP_ON "#APP\n"
153.7494 -+#define ASM_APP_OFF "#NO_APP\n"
153.7495 -+
153.7496 -+#define ASM_COMMENT_START "# "
153.7497 -+
153.7498 -+/* ------------------------------- *
153.7499 -+ * Output and Generation of Labels
153.7500 -+ * ------------------------------- */
153.7501 -+
153.7502 -+#define GLOBAL_ASM_OP "\t.global\t"
153.7503 -+
153.7504 -+
153.7505 -+/* -------------- *
153.7506 -+ * Output of Data
153.7507 -+ * -------------- */
153.7508 -+
153.7509 -+#define DWARF2_UNWIND_INFO 0
153.7510 -+
153.7511 -+
153.7512 -+/* -------------------------------- *
153.7513 -+ * Assembler Commands for Alignment
153.7514 -+ * -------------------------------- */
153.7515 -+
153.7516 -+#define ASM_OUTPUT_ALIGN(FILE, LOG) \
153.7517 -+ do { \
153.7518 -+ fprintf ((FILE), "%s%d\n", ALIGN_ASM_OP, (LOG)); \
153.7519 -+ } while (0)
153.7520 -+
153.7521 -+
153.7522 -+/* -------------------------------- *
153.7523 -+ * Output of Assembler Instructions
153.7524 -+ * -------------------------------- */
153.7525 -+
153.7526 -+#define REGISTER_NAMES \
153.7527 -+{ \
153.7528 -+ "zero", \
153.7529 -+ "at", \
153.7530 -+ "r2", \
153.7531 -+ "r3", \
153.7532 -+ "r4", \
153.7533 -+ "r5", \
153.7534 -+ "r6", \
153.7535 -+ "r7", \
153.7536 -+ "r8", \
153.7537 -+ "r9", \
153.7538 -+ "r10", \
153.7539 -+ "r11", \
153.7540 -+ "r12", \
153.7541 -+ "r13", \
153.7542 -+ "r14", \
153.7543 -+ "r15", \
153.7544 -+ "r16", \
153.7545 -+ "r17", \
153.7546 -+ "r18", \
153.7547 -+ "r19", \
153.7548 -+ "r20", \
153.7549 -+ "r21", \
153.7550 -+ "r22", \
153.7551 -+ "r23", \
153.7552 -+ "r24", \
153.7553 -+ "r25", \
153.7554 -+ "gp", \
153.7555 -+ "sp", \
153.7556 -+ "fp", \
153.7557 -+ "ta", \
153.7558 -+ "ba", \
153.7559 -+ "ra", \
153.7560 -+ "status", \
153.7561 -+ "estatus", \
153.7562 -+ "bstatus", \
153.7563 -+ "ipri", \
153.7564 -+ "ecause", \
153.7565 -+ "pc", \
153.7566 -+ "rap", \
153.7567 -+ "fake_fp", \
153.7568 -+ "fake_ap", \
153.7569 -+}
153.7570 -+
153.7571 -+#define ASM_OUTPUT_OPCODE(STREAM, PTR)\
153.7572 -+ (PTR) = asm_output_opcode (STREAM, PTR)
153.7573 -+
153.7574 -+#define PRINT_OPERAND(STREAM, X, CODE) \
153.7575 -+ nios2_print_operand (STREAM, X, CODE)
153.7576 -+
153.7577 -+#define PRINT_OPERAND_ADDRESS(STREAM, X) \
153.7578 -+ nios2_print_operand_address (STREAM, X)
153.7579 -+
153.7580 -+#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
153.7581 -+do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \
153.7582 -+ fprintf (FILE, ".L%u\n", (unsigned) (VALUE)); \
153.7583 -+ } while (0)
153.7584 -+
153.7585 -+
153.7586 -+/* ------------ *
153.7587 -+ * Label Output
153.7588 -+ * ------------ */
153.7589 -+
153.7590 -+
153.7591 -+/* ---------------------------------------------------- *
153.7592 -+ * Dividing the Output into Sections (Texts, Data, ...)
153.7593 -+ * ---------------------------------------------------- */
153.7594 -+
153.7595 -+/* Output before read-only data. */
153.7596 -+#define TEXT_SECTION_ASM_OP ("\t.section\t.text")
153.7597 -+
153.7598 -+/* Output before writable data. */
153.7599 -+#define DATA_SECTION_ASM_OP ("\t.section\t.data")
153.7600 -+
153.7601 -+
153.7602 -+/* Default the definition of "small data" to 8 bytes. */
153.7603 -+/* ??? How come I can't use HOST_WIDE_INT here? */
153.7604 -+extern unsigned long nios2_section_threshold;
153.7605 -+#define NIOS2_DEFAULT_GVALUE 8
153.7606 -+
153.7607 -+
153.7608 -+
153.7609 -+/* This says how to output assembler code to declare an
153.7610 -+ uninitialized external linkage data object. Under SVR4,
153.7611 -+ the linker seems to want the alignment of data objects
153.7612 -+ to depend on their types. We do exactly that here. */
153.7613 -+
153.7614 -+#undef COMMON_ASM_OP
153.7615 -+#define COMMON_ASM_OP "\t.comm\t"
153.7616 -+
153.7617 -+#undef ASM_OUTPUT_ALIGNED_COMMON
153.7618 -+#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
153.7619 -+do \
153.7620 -+{ \
153.7621 -+ if ((SIZE) <= nios2_section_threshold) \
153.7622 -+ { \
153.7623 -+ named_section (0, ".sbss", 0); \
153.7624 -+ (*targetm.asm_out.globalize_label) (FILE, NAME); \
153.7625 -+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
153.7626 -+ if (!flag_inhibit_size_directive) \
153.7627 -+ ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, SIZE); \
153.7628 -+ ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT)); \
153.7629 -+ ASM_OUTPUT_LABEL(FILE, NAME); \
153.7630 -+ ASM_OUTPUT_SKIP((FILE), (SIZE) ? (SIZE) : 1); \
153.7631 -+ } \
153.7632 -+ else \
153.7633 -+ { \
153.7634 -+ fprintf ((FILE), "%s", COMMON_ASM_OP); \
153.7635 -+ assemble_name ((FILE), (NAME)); \
153.7636 -+ fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
153.7637 -+ } \
153.7638 -+} \
153.7639 -+while (0)
153.7640 -+
153.7641 -+
153.7642 -+/* This says how to output assembler code to declare an
153.7643 -+ uninitialized internal linkage data object. Under SVR4,
153.7644 -+ the linker seems to want the alignment of data objects
153.7645 -+ to depend on their types. We do exactly that here. */
153.7646 -+
153.7647 -+#undef ASM_OUTPUT_ALIGNED_LOCAL
153.7648 -+#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
153.7649 -+do { \
153.7650 -+ if ((SIZE) <= nios2_section_threshold) \
153.7651 -+ named_section (0, ".sbss", 0); \
153.7652 -+ else \
153.7653 -+ named_section (0, ".bss", 0); \
153.7654 -+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
153.7655 -+ if (!flag_inhibit_size_directive) \
153.7656 -+ ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, SIZE); \
153.7657 -+ ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT)); \
153.7658 -+ ASM_OUTPUT_LABEL(FILE, NAME); \
153.7659 -+ ASM_OUTPUT_SKIP((FILE), (SIZE) ? (SIZE) : 1); \
153.7660 -+} while (0)
153.7661 -+
153.7662 -+
153.7663 -+
153.7664 -+/***************************
153.7665 -+ * Miscellaneous Parameters
153.7666 -+ ***************************/
153.7667 -+
153.7668 -+#define MOVE_MAX 4
153.7669 -+
153.7670 -+#define Pmode SImode
153.7671 -+#define FUNCTION_MODE QImode
153.7672 -+
153.7673 -+#define CASE_VECTOR_MODE Pmode
153.7674 -+
153.7675 -+#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
153.7676 -+
153.7677 -+#define LOAD_EXTEND_OP(MODE) (ZERO_EXTEND)
153.7678 -+
153.7679 -+#define WORD_REGISTER_OPERATIONS
153.7680 ---- gcc-3.4.3/gcc/config/nios2/nios2.md
153.7681 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2.md
153.7682 -@@ -0,0 +1,2078 @@
153.7683 -+;; Machine Description for Altera NIOS 2G NIOS2 version.
153.7684 -+;; Copyright (C) 2003 Altera
153.7685 -+;; Contributed by Jonah Graham (jgraham@altera.com).
153.7686 -+;;
153.7687 -+;; This file is part of GNU CC.
153.7688 -+;;
153.7689 -+;; GNU CC is free software; you can redistribute it and/or modify
153.7690 -+;; it under the terms of the GNU General Public License as published by
153.7691 -+;; the Free Software Foundation; either version 2, or (at your option)
153.7692 -+;; any later version.
153.7693 -+;;
153.7694 -+;; GNU CC is distributed in the hope that it will be useful,
153.7695 -+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
153.7696 -+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
153.7697 -+;; GNU General Public License for more details.
153.7698 -+;;
153.7699 -+;; You should have received a copy of the GNU General Public License
153.7700 -+;; along with GNU CC; see the file COPYING. If not, write to
153.7701 -+;; the Free Software Foundation, 59 Temple Place - Suite 330,
153.7702 -+;; Boston, MA 02111-1307, USA. */
153.7703 -+
153.7704 -+
153.7705 -+
153.7706 -+;*****************************************************************************
153.7707 -+;*
153.7708 -+;* constants
153.7709 -+;*
153.7710 -+;*****************************************************************************
153.7711 -+(define_constants [
153.7712 -+ (GP_REGNO 26)
153.7713 -+ (SP_REGNO 27)
153.7714 -+ (FP_REGNO 28)
153.7715 -+ (RA_REGNO 31)
153.7716 -+ (RAP_REGNO 38)
153.7717 -+ (FIRST_RETVAL_REGNO 2)
153.7718 -+ (LAST_RETVAL_REGNO 3)
153.7719 -+ (FIRST_ARG_REGNO 4)
153.7720 -+ (LAST_ARG_REGNO 7)
153.7721 -+ (SC_REGNO 23)
153.7722 -+ (PC_REGNO 37)
153.7723 -+ (FAKE_FP_REGNO 39)
153.7724 -+ (FAKE_AP_REGNO 40)
153.7725 -+
153.7726 -+
153.7727 -+ (UNSPEC_BLOCKAGE 0)
153.7728 -+ (UNSPEC_LDBIO 1)
153.7729 -+ (UNSPEC_LDBUIO 2)
153.7730 -+ (UNSPEC_LDHIO 3)
153.7731 -+ (UNSPEC_LDHUIO 4)
153.7732 -+ (UNSPEC_LDWIO 5)
153.7733 -+ (UNSPEC_STBIO 6)
153.7734 -+ (UNSPEC_STHIO 7)
153.7735 -+ (UNSPEC_STWIO 8)
153.7736 -+ (UNSPEC_SYNC 9)
153.7737 -+ (UNSPEC_WRCTL 10)
153.7738 -+ (UNSPEC_RDCTL 11)
153.7739 -+
153.7740 -+])
153.7741 -+
153.7742 -+
153.7743 -+
153.7744 -+;*****************************************************************************
153.7745 -+;*
153.7746 -+;* instruction scheduler
153.7747 -+;*
153.7748 -+;*****************************************************************************
153.7749 -+
153.7750 -+; No schedule info is currently available, using an assumption that no
153.7751 -+; instruction can use the results of the previous instruction without
153.7752 -+; incuring a stall.
153.7753 -+
153.7754 -+; length of an instruction (in bytes)
153.7755 -+(define_attr "length" "" (const_int 4))
153.7756 -+(define_attr "type" "unknown,complex,control,alu,cond_alu,st,ld,shift,mul,div,custom" (const_string "complex"))
153.7757 -+
153.7758 -+(define_asm_attributes
153.7759 -+ [(set_attr "length" "4")
153.7760 -+ (set_attr "type" "complex")])
153.7761 -+
153.7762 -+(define_automaton "nios2")
153.7763 -+(automata_option "v")
153.7764 -+;(automata_option "no-minimization")
153.7765 -+(automata_option "ndfa")
153.7766 -+
153.7767 -+; The nios2 pipeline is fairly straightforward for the fast model.
153.7768 -+; Every alu operation is pipelined so that an instruction can
153.7769 -+; be issued every cycle. However, there are still potential
153.7770 -+; stalls which this description tries to deal with.
153.7771 -+
153.7772 -+(define_cpu_unit "cpu" "nios2")
153.7773 -+
153.7774 -+(define_insn_reservation "complex" 1
153.7775 -+ (eq_attr "type" "complex")
153.7776 -+ "cpu")
153.7777 -+
153.7778 -+(define_insn_reservation "control" 1
153.7779 -+ (eq_attr "type" "control")
153.7780 -+ "cpu")
153.7781 -+
153.7782 -+(define_insn_reservation "alu" 1
153.7783 -+ (eq_attr "type" "alu")
153.7784 -+ "cpu")
153.7785 -+
153.7786 -+(define_insn_reservation "cond_alu" 1
153.7787 -+ (eq_attr "type" "cond_alu")
153.7788 -+ "cpu")
153.7789 -+
153.7790 -+(define_insn_reservation "st" 1
153.7791 -+ (eq_attr "type" "st")
153.7792 -+ "cpu")
153.7793 -+
153.7794 -+(define_insn_reservation "custom" 1
153.7795 -+ (eq_attr "type" "custom")
153.7796 -+ "cpu")
153.7797 -+
153.7798 -+; shifts, muls and lds have three cycle latency
153.7799 -+(define_insn_reservation "ld" 3
153.7800 -+ (eq_attr "type" "ld")
153.7801 -+ "cpu")
153.7802 -+
153.7803 -+(define_insn_reservation "shift" 3
153.7804 -+ (eq_attr "type" "shift")
153.7805 -+ "cpu")
153.7806 -+
153.7807 -+(define_insn_reservation "mul" 3
153.7808 -+ (eq_attr "type" "mul")
153.7809 -+ "cpu")
153.7810 -+
153.7811 -+(define_insn_reservation "div" 1
153.7812 -+ (eq_attr "type" "div")
153.7813 -+ "cpu")
153.7814 -+
153.7815 -+
153.7816 -+;*****************************************************************************
153.7817 -+;*
153.7818 -+;* MOV Instructions
153.7819 -+;*
153.7820 -+;*****************************************************************************
153.7821 -+
153.7822 -+(define_expand "movqi"
153.7823 -+ [(set (match_operand:QI 0 "nonimmediate_operand" "")
153.7824 -+ (match_operand:QI 1 "general_operand" ""))]
153.7825 -+ ""
153.7826 -+{
153.7827 -+ if (nios2_emit_move_sequence (operands, QImode))
153.7828 -+ DONE;
153.7829 -+})
153.7830 -+
153.7831 -+(define_insn "movqi_internal"
153.7832 -+ [(set (match_operand:QI 0 "nonimmediate_operand" "=m, r,r, r")
153.7833 -+ (match_operand:QI 1 "general_operand" "rM,m,rM,I"))]
153.7834 -+ "(register_operand (operands[0], QImode)
153.7835 -+ || register_operand (operands[1], QImode)
153.7836 -+ || (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) == 0))"
153.7837 -+ "@
153.7838 -+ stb%o0\\t%z1, %0
153.7839 -+ ldbu%o1\\t%0, %1
153.7840 -+ mov\\t%0, %z1
153.7841 -+ movi\\t%0, %1"
153.7842 -+ [(set_attr "type" "st,ld,alu,alu")])
153.7843 -+
153.7844 -+(define_insn "ldbio"
153.7845 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.7846 -+ (unspec_volatile:SI [(const_int 0)] UNSPEC_LDBIO))
153.7847 -+ (use (match_operand:SI 1 "memory_operand" "m"))]
153.7848 -+ ""
153.7849 -+ "ldbio\\t%0, %1"
153.7850 -+ [(set_attr "type" "ld")])
153.7851 -+
153.7852 -+(define_insn "ldbuio"
153.7853 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.7854 -+ (unspec_volatile:SI [(const_int 0)] UNSPEC_LDBUIO))
153.7855 -+ (use (match_operand:SI 1 "memory_operand" "m"))]
153.7856 -+ ""
153.7857 -+ "ldbuio\\t%0, %1"
153.7858 -+ [(set_attr "type" "ld")])
153.7859 -+
153.7860 -+(define_insn "stbio"
153.7861 -+ [(set (match_operand:SI 0 "memory_operand" "=m")
153.7862 -+ (match_operand:SI 1 "register_operand" "r"))
153.7863 -+ (unspec_volatile:SI [(const_int 0)] UNSPEC_STBIO)]
153.7864 -+ ""
153.7865 -+ "stbio\\t%z1, %0"
153.7866 -+ [(set_attr "type" "st")])
153.7867 -+
153.7868 -+
153.7869 -+(define_expand "movhi"
153.7870 -+ [(set (match_operand:HI 0 "nonimmediate_operand" "")
153.7871 -+ (match_operand:HI 1 "general_operand" ""))]
153.7872 -+ ""
153.7873 -+{
153.7874 -+ if (nios2_emit_move_sequence (operands, HImode))
153.7875 -+ DONE;
153.7876 -+})
153.7877 -+
153.7878 -+(define_insn "movhi_internal"
153.7879 -+ [(set (match_operand:HI 0 "nonimmediate_operand" "=m, r,r, r,r")
153.7880 -+ (match_operand:HI 1 "general_operand" "rM,m,rM,I,J"))]
153.7881 -+ "(register_operand (operands[0], HImode)
153.7882 -+ || register_operand (operands[1], HImode)
153.7883 -+ || (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) == 0))"
153.7884 -+ "@
153.7885 -+ sth%o0\\t%z1, %0
153.7886 -+ ldhu%o1\\t%0, %1
153.7887 -+ mov\\t%0, %z1
153.7888 -+ movi\\t%0, %1
153.7889 -+ movui\\t%0, %1"
153.7890 -+ [(set_attr "type" "st,ld,alu,alu,alu")])
153.7891 -+
153.7892 -+(define_insn "ldhio"
153.7893 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.7894 -+ (unspec_volatile:SI [(const_int 0)] UNSPEC_LDHIO))
153.7895 -+ (use (match_operand:SI 1 "memory_operand" "m"))]
153.7896 -+ ""
153.7897 -+ "ldhio\\t%0, %1"
153.7898 -+ [(set_attr "type" "ld")])
153.7899 -+
153.7900 -+(define_insn "ldhuio"
153.7901 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.7902 -+ (unspec_volatile:SI [(const_int 0)] UNSPEC_LDHUIO))
153.7903 -+ (use (match_operand:SI 1 "memory_operand" "m"))]
153.7904 -+ ""
153.7905 -+ "ldhuio\\t%0, %1"
153.7906 -+ [(set_attr "type" "ld")])
153.7907 -+
153.7908 -+(define_insn "sthio"
153.7909 -+ [(set (match_operand:SI 0 "memory_operand" "=m")
153.7910 -+ (match_operand:SI 1 "register_operand" "r"))
153.7911 -+ (unspec_volatile:SI [(const_int 0)] UNSPEC_STHIO)]
153.7912 -+ ""
153.7913 -+ "sthio\\t%z1, %0"
153.7914 -+ [(set_attr "type" "st")])
153.7915 -+
153.7916 -+(define_expand "movsi"
153.7917 -+ [(set (match_operand:SI 0 "nonimmediate_operand" "")
153.7918 -+ (match_operand:SI 1 "general_operand" ""))]
153.7919 -+ ""
153.7920 -+{
153.7921 -+ if (nios2_emit_move_sequence (operands, SImode))
153.7922 -+ DONE;
153.7923 -+})
153.7924 -+
153.7925 -+(define_insn "movsi_internal"
153.7926 -+ [(set (match_operand:SI 0 "nonimmediate_operand" "=m, r,r, r,r,r,r")
153.7927 -+ (match_operand:SI 1 "general_operand" "rM,m,rM,I,J,S,i"))]
153.7928 -+ "(register_operand (operands[0], SImode)
153.7929 -+ || register_operand (operands[1], SImode)
153.7930 -+ || (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) == 0))"
153.7931 -+ "@
153.7932 -+ stw%o0\\t%z1, %0
153.7933 -+ ldw%o1\\t%0, %1
153.7934 -+ mov\\t%0, %z1
153.7935 -+ movi\\t%0, %1
153.7936 -+ movui\\t%0, %1
153.7937 -+ addi\\t%0, gp, %%gprel(%1)
153.7938 -+ movhi\\t%0, %H1\;addi\\t%0, %0, %L1"
153.7939 -+ [(set_attr "type" "st,ld,alu,alu,alu,alu,alu")])
153.7940 -+
153.7941 -+(define_insn "ldwio"
153.7942 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.7943 -+ (unspec_volatile:SI [(const_int 0)] UNSPEC_LDWIO))
153.7944 -+ (use (match_operand:SI 1 "memory_operand" "m"))]
153.7945 -+ ""
153.7946 -+ "ldwio\\t%0, %1"
153.7947 -+ [(set_attr "type" "ld")])
153.7948 -+
153.7949 -+(define_insn "stwio"
153.7950 -+ [(set (match_operand:SI 0 "memory_operand" "=m")
153.7951 -+ (match_operand:SI 1 "register_operand" "r"))
153.7952 -+ (unspec_volatile:SI [(const_int 0)] UNSPEC_STWIO)]
153.7953 -+ ""
153.7954 -+ "stwio\\t%z1, %0"
153.7955 -+ [(set_attr "type" "st")])
153.7956 -+
153.7957 -+
153.7958 -+
153.7959 -+;*****************************************************************************
153.7960 -+;*
153.7961 -+;* zero extension
153.7962 -+;*
153.7963 -+;*****************************************************************************
153.7964 -+
153.7965 -+
153.7966 -+(define_insn "zero_extendhisi2"
153.7967 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.7968 -+ (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "r,m")))]
153.7969 -+ ""
153.7970 -+ "@
153.7971 -+ andi\\t%0, %1, 0xffff
153.7972 -+ ldhu%o1\\t%0, %1"
153.7973 -+ [(set_attr "type" "alu,ld")])
153.7974 -+
153.7975 -+(define_insn "zero_extendqihi2"
153.7976 -+ [(set (match_operand:HI 0 "register_operand" "=r,r")
153.7977 -+ (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "r,m")))]
153.7978 -+ ""
153.7979 -+ "@
153.7980 -+ andi\\t%0, %1, 0xff
153.7981 -+ ldbu%o1\\t%0, %1"
153.7982 -+ [(set_attr "type" "alu,ld")])
153.7983 -+
153.7984 -+(define_insn "zero_extendqisi2"
153.7985 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.7986 -+ (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,m")))]
153.7987 -+ ""
153.7988 -+ "@
153.7989 -+ andi\\t%0, %1, 0xff
153.7990 -+ ldbu%o1\\t%0, %1"
153.7991 -+ [(set_attr "type" "alu,ld")])
153.7992 -+
153.7993 -+
153.7994 -+
153.7995 -+;*****************************************************************************
153.7996 -+;*
153.7997 -+;* sign extension
153.7998 -+;*
153.7999 -+;*****************************************************************************
153.8000 -+
153.8001 -+(define_expand "extendhisi2"
153.8002 -+ [(set (match_operand:SI 0 "register_operand" "")
153.8003 -+ (sign_extend:SI (match_operand:HI 1 "nonimmediate_operand" "")))]
153.8004 -+ ""
153.8005 -+{
153.8006 -+ if (optimize && GET_CODE (operands[1]) == MEM)
153.8007 -+ operands[1] = force_not_mem (operands[1]);
153.8008 -+
153.8009 -+ if (GET_CODE (operands[1]) != MEM)
153.8010 -+ {
153.8011 -+ rtx op1 = gen_lowpart (SImode, operands[1]);
153.8012 -+ rtx temp = gen_reg_rtx (SImode);
153.8013 -+ rtx shift = GEN_INT (16);
153.8014 -+
153.8015 -+ emit_insn (gen_ashlsi3 (temp, op1, shift));
153.8016 -+ emit_insn (gen_ashrsi3 (operands[0], temp, shift));
153.8017 -+ DONE;
153.8018 -+ }
153.8019 -+})
153.8020 -+
153.8021 -+(define_insn "extendhisi2_internal"
153.8022 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8023 -+ (sign_extend:SI (match_operand:HI 1 "memory_operand" "m")))]
153.8024 -+ ""
153.8025 -+ "ldh%o1\\t%0, %1"
153.8026 -+ [(set_attr "type" "ld")])
153.8027 -+
153.8028 -+(define_expand "extendqihi2"
153.8029 -+ [(set (match_operand:HI 0 "register_operand" "")
153.8030 -+ (sign_extend:HI (match_operand:QI 1 "nonimmediate_operand" "")))]
153.8031 -+ ""
153.8032 -+{
153.8033 -+ if (optimize && GET_CODE (operands[1]) == MEM)
153.8034 -+ operands[1] = force_not_mem (operands[1]);
153.8035 -+
153.8036 -+ if (GET_CODE (operands[1]) != MEM)
153.8037 -+ {
153.8038 -+ rtx op0 = gen_lowpart (SImode, operands[0]);
153.8039 -+ rtx op1 = gen_lowpart (SImode, operands[1]);
153.8040 -+ rtx temp = gen_reg_rtx (SImode);
153.8041 -+ rtx shift = GEN_INT (24);
153.8042 -+
153.8043 -+ emit_insn (gen_ashlsi3 (temp, op1, shift));
153.8044 -+ emit_insn (gen_ashrsi3 (op0, temp, shift));
153.8045 -+ DONE;
153.8046 -+ }
153.8047 -+})
153.8048 -+
153.8049 -+(define_insn "extendqihi2_internal"
153.8050 -+ [(set (match_operand:HI 0 "register_operand" "=r")
153.8051 -+ (sign_extend:HI (match_operand:QI 1 "memory_operand" "m")))]
153.8052 -+ ""
153.8053 -+ "ldb%o1\\t%0, %1"
153.8054 -+ [(set_attr "type" "ld")])
153.8055 -+
153.8056 -+
153.8057 -+(define_expand "extendqisi2"
153.8058 -+ [(set (match_operand:SI 0 "register_operand" "")
153.8059 -+ (sign_extend:SI (match_operand:QI 1 "nonimmediate_operand" "")))]
153.8060 -+ ""
153.8061 -+{
153.8062 -+ if (optimize && GET_CODE (operands[1]) == MEM)
153.8063 -+ operands[1] = force_not_mem (operands[1]);
153.8064 -+
153.8065 -+ if (GET_CODE (operands[1]) != MEM)
153.8066 -+ {
153.8067 -+ rtx op1 = gen_lowpart (SImode, operands[1]);
153.8068 -+ rtx temp = gen_reg_rtx (SImode);
153.8069 -+ rtx shift = GEN_INT (24);
153.8070 -+
153.8071 -+ emit_insn (gen_ashlsi3 (temp, op1, shift));
153.8072 -+ emit_insn (gen_ashrsi3 (operands[0], temp, shift));
153.8073 -+ DONE;
153.8074 -+ }
153.8075 -+})
153.8076 -+
153.8077 -+(define_insn "extendqisi2_insn"
153.8078 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8079 -+ (sign_extend:SI (match_operand:QI 1 "memory_operand" "m")))]
153.8080 -+ ""
153.8081 -+ "ldb%o1\\t%0, %1"
153.8082 -+ [(set_attr "type" "ld")])
153.8083 -+
153.8084 -+
153.8085 -+
153.8086 -+;*****************************************************************************
153.8087 -+;*
153.8088 -+;* Arithmetic Operations
153.8089 -+;*
153.8090 -+;*****************************************************************************
153.8091 -+
153.8092 -+(define_insn "addsi3"
153.8093 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.8094 -+ (plus:SI (match_operand:SI 1 "register_operand" "%r,r")
153.8095 -+ (match_operand:SI 2 "arith_operand" "r,I")))]
153.8096 -+ ""
153.8097 -+ "add%i2\\t%0, %1, %z2"
153.8098 -+ [(set_attr "type" "alu")])
153.8099 -+
153.8100 -+(define_insn "subsi3"
153.8101 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8102 -+ (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8103 -+ (match_operand:SI 2 "register_operand" "r")))]
153.8104 -+ ""
153.8105 -+ "sub\\t%0, %z1, %2"
153.8106 -+ [(set_attr "type" "alu")])
153.8107 -+
153.8108 -+(define_insn "mulsi3"
153.8109 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.8110 -+ (mult:SI (match_operand:SI 1 "register_operand" "r,r")
153.8111 -+ (match_operand:SI 2 "arith_operand" "r,I")))]
153.8112 -+ "TARGET_HAS_MUL"
153.8113 -+ "mul%i2\\t%0, %1, %z2"
153.8114 -+ [(set_attr "type" "mul")])
153.8115 -+
153.8116 -+(define_expand "divsi3"
153.8117 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8118 -+ (div:SI (match_operand:SI 1 "register_operand" "r")
153.8119 -+ (match_operand:SI 2 "register_operand" "r")))]
153.8120 -+ ""
153.8121 -+{
153.8122 -+ if (!TARGET_HAS_DIV)
153.8123 -+ {
153.8124 -+ if (!TARGET_FAST_SW_DIV)
153.8125 -+ FAIL;
153.8126 -+ else
153.8127 -+ {
153.8128 -+ if (nios2_emit_expensive_div (operands, SImode))
153.8129 -+ DONE;
153.8130 -+ }
153.8131 -+ }
153.8132 -+})
153.8133 -+
153.8134 -+(define_insn "divsi3_insn"
153.8135 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8136 -+ (div:SI (match_operand:SI 1 "register_operand" "r")
153.8137 -+ (match_operand:SI 2 "register_operand" "r")))]
153.8138 -+ "TARGET_HAS_DIV"
153.8139 -+ "div\\t%0, %1, %2"
153.8140 -+ [(set_attr "type" "div")])
153.8141 -+
153.8142 -+(define_insn "udivsi3"
153.8143 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8144 -+ (udiv:SI (match_operand:SI 1 "register_operand" "r")
153.8145 -+ (match_operand:SI 2 "register_operand" "r")))]
153.8146 -+ "TARGET_HAS_DIV"
153.8147 -+ "divu\\t%0, %1, %2"
153.8148 -+ [(set_attr "type" "div")])
153.8149 -+
153.8150 -+(define_insn "smulsi3_highpart"
153.8151 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8152 -+ (truncate:SI
153.8153 -+ (lshiftrt:DI
153.8154 -+ (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r"))
153.8155 -+ (sign_extend:DI (match_operand:SI 2 "register_operand" "r")))
153.8156 -+ (const_int 32))))]
153.8157 -+ "TARGET_HAS_MULX"
153.8158 -+ "mulxss\\t%0, %1, %2"
153.8159 -+ [(set_attr "type" "mul")])
153.8160 -+
153.8161 -+(define_insn "umulsi3_highpart"
153.8162 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8163 -+ (truncate:SI
153.8164 -+ (lshiftrt:DI
153.8165 -+ (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "r"))
153.8166 -+ (zero_extend:DI (match_operand:SI 2 "register_operand" "r")))
153.8167 -+ (const_int 32))))]
153.8168 -+ "TARGET_HAS_MULX"
153.8169 -+ "mulxuu\\t%0, %1, %2"
153.8170 -+ [(set_attr "type" "mul")])
153.8171 -+
153.8172 -+
153.8173 -+(define_expand "mulsidi3"
153.8174 -+ [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 0)
153.8175 -+ (mult:SI (match_operand:SI 1 "register_operand" "")
153.8176 -+ (match_operand:SI 2 "register_operand" "")))
153.8177 -+ (set (subreg:SI (match_dup 0) 4)
153.8178 -+ (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
153.8179 -+ (sign_extend:DI (match_dup 2)))
153.8180 -+ (const_int 32))))]
153.8181 -+ "TARGET_HAS_MULX"
153.8182 -+ "")
153.8183 -+
153.8184 -+(define_expand "umulsidi3"
153.8185 -+ [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 0)
153.8186 -+ (mult:SI (match_operand:SI 1 "register_operand" "")
153.8187 -+ (match_operand:SI 2 "register_operand" "")))
153.8188 -+ (set (subreg:SI (match_dup 0) 4)
153.8189 -+ (truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
153.8190 -+ (zero_extend:DI (match_dup 2)))
153.8191 -+ (const_int 32))))]
153.8192 -+ "TARGET_HAS_MULX"
153.8193 -+ "")
153.8194 -+
153.8195 -+
153.8196 -+
153.8197 -+;*****************************************************************************
153.8198 -+;*
153.8199 -+;* Negate and ones complement
153.8200 -+;*
153.8201 -+;*****************************************************************************
153.8202 -+
153.8203 -+(define_insn "negsi2"
153.8204 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8205 -+ (neg:SI (match_operand:SI 1 "register_operand" "r")))]
153.8206 -+ ""
153.8207 -+{
153.8208 -+ operands[2] = const0_rtx;
153.8209 -+ return "sub\\t%0, %z2, %1";
153.8210 -+}
153.8211 -+ [(set_attr "type" "alu")])
153.8212 -+
153.8213 -+(define_insn "one_cmplsi2"
153.8214 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8215 -+ (not:SI (match_operand:SI 1 "register_operand" "r")))]
153.8216 -+ ""
153.8217 -+{
153.8218 -+ operands[2] = const0_rtx;
153.8219 -+ return "nor\\t%0, %z2, %1";
153.8220 -+}
153.8221 -+ [(set_attr "type" "alu")])
153.8222 -+
153.8223 -+
153.8224 -+
153.8225 -+; Logical Operantions
153.8226 -+
153.8227 -+(define_insn "andsi3"
153.8228 -+ [(set (match_operand:SI 0 "register_operand" "=r, r,r")
153.8229 -+ (and:SI (match_operand:SI 1 "register_operand" "%r, r,r")
153.8230 -+ (match_operand:SI 2 "logical_operand" "rM,J,K")))]
153.8231 -+ ""
153.8232 -+ "@
153.8233 -+ and\\t%0, %1, %z2
153.8234 -+ and%i2\\t%0, %1, %2
153.8235 -+ andh%i2\\t%0, %1, %U2"
153.8236 -+ [(set_attr "type" "alu")])
153.8237 -+
153.8238 -+(define_insn "iorsi3"
153.8239 -+ [(set (match_operand:SI 0 "register_operand" "=r, r,r")
153.8240 -+ (ior:SI (match_operand:SI 1 "register_operand" "%r, r,r")
153.8241 -+ (match_operand:SI 2 "logical_operand" "rM,J,K")))]
153.8242 -+ ""
153.8243 -+ "@
153.8244 -+ or\\t%0, %1, %z2
153.8245 -+ or%i2\\t%0, %1, %2
153.8246 -+ orh%i2\\t%0, %1, %U2"
153.8247 -+ [(set_attr "type" "alu")])
153.8248 -+
153.8249 -+(define_insn "*norsi3"
153.8250 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8251 -+ (and:SI (not:SI (match_operand:SI 1 "register_operand" "%r"))
153.8252 -+ (not:SI (match_operand:SI 2 "reg_or_0_operand" "rM"))))]
153.8253 -+ ""
153.8254 -+ "nor\\t%0, %1, %z2"
153.8255 -+ [(set_attr "type" "alu")])
153.8256 -+
153.8257 -+(define_insn "xorsi3"
153.8258 -+ [(set (match_operand:SI 0 "register_operand" "=r, r,r")
153.8259 -+ (xor:SI (match_operand:SI 1 "register_operand" "%r, r,r")
153.8260 -+ (match_operand:SI 2 "logical_operand" "rM,J,K")))]
153.8261 -+ ""
153.8262 -+ "@
153.8263 -+ xor\\t%0, %1, %z2
153.8264 -+ xor%i2\\t%0, %1, %2
153.8265 -+ xorh%i2\\t%0, %1, %U2"
153.8266 -+ [(set_attr "type" "alu")])
153.8267 -+
153.8268 -+
153.8269 -+
153.8270 -+;*****************************************************************************
153.8271 -+;*
153.8272 -+;* Shifts
153.8273 -+;*
153.8274 -+;*****************************************************************************
153.8275 -+
153.8276 -+(define_insn "ashlsi3"
153.8277 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.8278 -+ (ashift:SI (match_operand:SI 1 "register_operand" "r,r")
153.8279 -+ (match_operand:SI 2 "shift_operand" "r,L")))]
153.8280 -+ ""
153.8281 -+ "sll%i2\\t%0, %1, %z2"
153.8282 -+ [(set_attr "type" "shift")])
153.8283 -+
153.8284 -+(define_insn "ashrsi3"
153.8285 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.8286 -+ (ashiftrt:SI (match_operand:SI 1 "register_operand" "r,r")
153.8287 -+ (match_operand:SI 2 "shift_operand" "r,L")))]
153.8288 -+ ""
153.8289 -+ "sra%i2\\t%0, %1, %z2"
153.8290 -+ [(set_attr "type" "shift")])
153.8291 -+
153.8292 -+(define_insn "lshrsi3"
153.8293 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.8294 -+ (lshiftrt:SI (match_operand:SI 1 "register_operand" "r,r")
153.8295 -+ (match_operand:SI 2 "shift_operand" "r,L")))]
153.8296 -+ ""
153.8297 -+ "srl%i2\\t%0, %1, %z2"
153.8298 -+ [(set_attr "type" "shift")])
153.8299 -+
153.8300 -+(define_insn "rotlsi3"
153.8301 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.8302 -+ (rotate:SI (match_operand:SI 1 "register_operand" "r,r")
153.8303 -+ (match_operand:SI 2 "shift_operand" "r,L")))]
153.8304 -+ ""
153.8305 -+ "rol%i2\\t%0, %1, %z2"
153.8306 -+ [(set_attr "type" "shift")])
153.8307 -+
153.8308 -+(define_insn "rotrsi3"
153.8309 -+ [(set (match_operand:SI 0 "register_operand" "=r,r")
153.8310 -+ (rotatert:SI (match_operand:SI 1 "register_operand" "r,r")
153.8311 -+ (match_operand:SI 2 "register_operand" "r,r")))]
153.8312 -+ ""
153.8313 -+ "ror\\t%0, %1, %2"
153.8314 -+ [(set_attr "type" "shift")])
153.8315 -+
153.8316 -+(define_insn "*shift_mul_constants"
153.8317 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8318 -+ (ashift:SI (mult:SI (match_operand:SI 1 "register_operand" "r")
153.8319 -+ (match_operand:SI 2 "const_int_operand" "I"))
153.8320 -+ (match_operand:SI 3 "const_int_operand" "I")))]
153.8321 -+ "TARGET_HAS_MUL && SMALL_INT (INTVAL (operands[2]) << INTVAL (operands[3]))"
153.8322 -+{
153.8323 -+ HOST_WIDE_INT mul = INTVAL (operands[2]) << INTVAL (operands[3]);
153.8324 -+ rtx ops[3];
153.8325 -+
153.8326 -+ ops[0] = operands[0];
153.8327 -+ ops[1] = operands[1];
153.8328 -+ ops[2] = GEN_INT (mul);
153.8329 -+
153.8330 -+ output_asm_insn ("muli\t%0, %1, %2", ops);
153.8331 -+ return "";
153.8332 -+}
153.8333 -+ [(set_attr "type" "mul")])
153.8334 -+
153.8335 -+
153.8336 -+
153.8337 -+
153.8338 -+;*****************************************************************************
153.8339 -+;*
153.8340 -+;* Prologue, Epilogue and Return
153.8341 -+;*
153.8342 -+;*****************************************************************************
153.8343 -+
153.8344 -+(define_expand "prologue"
153.8345 -+ [(const_int 1)]
153.8346 -+ ""
153.8347 -+{
153.8348 -+ expand_prologue ();
153.8349 -+ DONE;
153.8350 -+})
153.8351 -+
153.8352 -+(define_expand "epilogue"
153.8353 -+ [(return)]
153.8354 -+ ""
153.8355 -+{
153.8356 -+ expand_epilogue (false);
153.8357 -+ DONE;
153.8358 -+})
153.8359 -+
153.8360 -+(define_expand "sibcall_epilogue"
153.8361 -+ [(return)]
153.8362 -+ ""
153.8363 -+{
153.8364 -+ expand_epilogue (true);
153.8365 -+ DONE;
153.8366 -+})
153.8367 -+
153.8368 -+(define_insn "return"
153.8369 -+ [(return)]
153.8370 -+ "reload_completed && nios2_can_use_return_insn ()"
153.8371 -+ "ret\\t"
153.8372 -+)
153.8373 -+
153.8374 -+(define_insn "return_from_epilogue"
153.8375 -+ [(use (match_operand 0 "pmode_register_operand" ""))
153.8376 -+ (return)]
153.8377 -+ "reload_completed"
153.8378 -+ "ret\\t"
153.8379 -+)
153.8380 -+
153.8381 -+;; Block any insns from being moved before this point, since the
153.8382 -+;; profiling call to mcount can use various registers that aren't
153.8383 -+;; saved or used to pass arguments.
153.8384 -+
153.8385 -+(define_insn "blockage"
153.8386 -+ [(unspec_volatile [(const_int 0)] UNSPEC_BLOCKAGE)]
153.8387 -+ ""
153.8388 -+ ""
153.8389 -+ [(set_attr "type" "unknown")
153.8390 -+ (set_attr "length" "0")])
153.8391 -+
153.8392 -+
153.8393 -+
153.8394 -+;*****************************************************************************
153.8395 -+;*
153.8396 -+;* Jumps and Calls
153.8397 -+;*
153.8398 -+;*****************************************************************************
153.8399 -+
153.8400 -+(define_insn "indirect_jump"
153.8401 -+ [(set (pc) (match_operand:SI 0 "register_operand" "r"))]
153.8402 -+ ""
153.8403 -+ "jmp\\t%0"
153.8404 -+ [(set_attr "type" "control")])
153.8405 -+
153.8406 -+(define_insn "jump"
153.8407 -+ [(set (pc)
153.8408 -+ (label_ref (match_operand 0 "" "")))]
153.8409 -+ ""
153.8410 -+ "br\\t%0"
153.8411 -+ [(set_attr "type" "control")])
153.8412 -+
153.8413 -+
153.8414 -+(define_insn "indirect_call"
153.8415 -+ [(call (mem:QI (match_operand:SI 0 "register_operand" "r"))
153.8416 -+ (match_operand 1 "" ""))
153.8417 -+ (clobber (reg:SI RA_REGNO))]
153.8418 -+ ""
153.8419 -+ "callr\\t%0"
153.8420 -+ [(set_attr "type" "control")])
153.8421 -+
153.8422 -+(define_insn "indirect_call_value"
153.8423 -+ [(set (match_operand 0 "" "")
153.8424 -+ (call (mem:QI (match_operand:SI 1 "register_operand" "r"))
153.8425 -+ (match_operand 2 "" "")))
153.8426 -+ (clobber (reg:SI RA_REGNO))]
153.8427 -+ ""
153.8428 -+ "callr\\t%1"
153.8429 -+)
153.8430 -+
153.8431 -+(define_expand "call"
153.8432 -+ [(parallel [(call (match_operand 0 "" "")
153.8433 -+ (match_operand 1 "" ""))
153.8434 -+ (clobber (reg:SI RA_REGNO))])]
153.8435 -+ ""
153.8436 -+ "")
153.8437 -+
153.8438 -+(define_expand "call_value"
153.8439 -+ [(parallel [(set (match_operand 0 "" "")
153.8440 -+ (call (match_operand 1 "" "")
153.8441 -+ (match_operand 2 "" "")))
153.8442 -+ (clobber (reg:SI RA_REGNO))])]
153.8443 -+ ""
153.8444 -+ "")
153.8445 -+
153.8446 -+(define_insn "*call"
153.8447 -+ [(call (mem:QI (match_operand:SI 0 "immediate_operand" "i"))
153.8448 -+ (match_operand 1 "" ""))
153.8449 -+ (clobber (match_operand:SI 2 "register_operand" "=r"))]
153.8450 -+ ""
153.8451 -+ "call\\t%0"
153.8452 -+ [(set_attr "type" "control")])
153.8453 -+
153.8454 -+(define_insn "*call_value"
153.8455 -+ [(set (match_operand 0 "" "")
153.8456 -+ (call (mem:QI (match_operand:SI 1 "immediate_operand" "i"))
153.8457 -+ (match_operand 2 "" "")))
153.8458 -+ (clobber (match_operand:SI 3 "register_operand" "=r"))]
153.8459 -+ ""
153.8460 -+ "call\\t%1"
153.8461 -+ [(set_attr "type" "control")])
153.8462 -+
153.8463 -+(define_expand "sibcall"
153.8464 -+ [(parallel [(call (match_operand 0 "" "")
153.8465 -+ (match_operand 1 "" ""))
153.8466 -+ (return)
153.8467 -+ (use (match_operand 2 "" ""))])]
153.8468 -+ ""
153.8469 -+ {
153.8470 -+ XEXP (operands[0], 0) = copy_to_mode_reg (SImode, XEXP (operands[0], 0));
153.8471 -+
153.8472 -+ if (operands[2] == NULL_RTX)
153.8473 -+ operands[2] = const0_rtx;
153.8474 -+ }
153.8475 -+)
153.8476 -+
153.8477 -+(define_expand "sibcall_value"
153.8478 -+ [(parallel [(set (match_operand 0 "" "")
153.8479 -+ (call (match_operand 1 "" "")
153.8480 -+ (match_operand 2 "" "")))
153.8481 -+ (return)
153.8482 -+ (use (match_operand 3 "" ""))])]
153.8483 -+ ""
153.8484 -+ {
153.8485 -+ XEXP (operands[1], 0) = copy_to_mode_reg (SImode, XEXP (operands[1], 0));
153.8486 -+
153.8487 -+ if (operands[3] == NULL_RTX)
153.8488 -+ operands[3] = const0_rtx;
153.8489 -+ }
153.8490 -+)
153.8491 -+
153.8492 -+(define_insn "sibcall_insn"
153.8493 -+ [(call (mem:QI (match_operand:SI 0 "register_operand" "r"))
153.8494 -+ (match_operand 1 "" ""))
153.8495 -+ (return)
153.8496 -+ (use (match_operand 2 "" ""))]
153.8497 -+ ""
153.8498 -+ "jmp\\t%0"
153.8499 -+)
153.8500 -+
153.8501 -+(define_insn "sibcall_value_insn"
153.8502 -+ [(set (match_operand 0 "register_operand" "")
153.8503 -+ (call (mem:QI (match_operand:SI 1 "register_operand" "r"))
153.8504 -+ (match_operand 2 "" "")))
153.8505 -+ (return)
153.8506 -+ (use (match_operand 3 "" ""))]
153.8507 -+ ""
153.8508 -+ "jmp\\t%1"
153.8509 -+)
153.8510 -+
153.8511 -+
153.8512 -+
153.8513 -+
153.8514 -+(define_expand "tablejump"
153.8515 -+ [(parallel [(set (pc) (match_operand 0 "register_operand" "r"))
153.8516 -+ (use (label_ref (match_operand 1 "" "")))])]
153.8517 -+ ""
153.8518 -+ ""
153.8519 -+)
153.8520 -+
153.8521 -+(define_insn "*tablejump"
153.8522 -+ [(set (pc)
153.8523 -+ (match_operand:SI 0 "register_operand" "r"))
153.8524 -+ (use (label_ref (match_operand 1 "" "")))]
153.8525 -+ ""
153.8526 -+ "jmp\\t%0"
153.8527 -+ [(set_attr "type" "control")])
153.8528 -+
153.8529 -+
153.8530 -+
153.8531 -+;*****************************************************************************
153.8532 -+;*
153.8533 -+;* Comparisons
153.8534 -+;*
153.8535 -+;*****************************************************************************
153.8536 -+;; Flow here is rather complex (based on MIPS):
153.8537 -+;;
153.8538 -+;; 1) The cmp{si,di,sf,df} routine is called. It deposits the
153.8539 -+;; arguments into the branch_cmp array, and the type into
153.8540 -+;; branch_type. No RTL is generated.
153.8541 -+;;
153.8542 -+;; 2) The appropriate branch define_expand is called, which then
153.8543 -+;; creates the appropriate RTL for the comparison and branch.
153.8544 -+;; Different CC modes are used, based on what type of branch is
153.8545 -+;; done, so that we can constrain things appropriately. There
153.8546 -+;; are assumptions in the rest of GCC that break if we fold the
153.8547 -+;; operands into the branchs for integer operations, and use cc0
153.8548 -+;; for floating point, so we use the fp status register instead.
153.8549 -+;; If needed, an appropriate temporary is created to hold the
153.8550 -+;; of the integer compare.
153.8551 -+
153.8552 -+(define_expand "cmpsi"
153.8553 -+ [(set (cc0)
153.8554 -+ (compare:CC (match_operand:SI 0 "register_operand" "")
153.8555 -+ (match_operand:SI 1 "arith_operand" "")))]
153.8556 -+ ""
153.8557 -+{
153.8558 -+ branch_cmp[0] = operands[0];
153.8559 -+ branch_cmp[1] = operands[1];
153.8560 -+ branch_type = CMP_SI;
153.8561 -+ DONE;
153.8562 -+})
153.8563 -+
153.8564 -+(define_expand "tstsi"
153.8565 -+ [(set (cc0)
153.8566 -+ (match_operand:SI 0 "register_operand" ""))]
153.8567 -+ ""
153.8568 -+{
153.8569 -+ branch_cmp[0] = operands[0];
153.8570 -+ branch_cmp[1] = const0_rtx;
153.8571 -+ branch_type = CMP_SI;
153.8572 -+ DONE;
153.8573 -+})
153.8574 -+
153.8575 -+
153.8576 -+;*****************************************************************************
153.8577 -+;*
153.8578 -+;* setting a register from a comparison
153.8579 -+;*
153.8580 -+;*****************************************************************************
153.8581 -+
153.8582 -+(define_expand "seq"
153.8583 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8584 -+ (eq:SI (match_dup 1)
153.8585 -+ (match_dup 2)))]
153.8586 -+ ""
153.8587 -+{
153.8588 -+ if (branch_type != CMP_SI)
153.8589 -+ FAIL;
153.8590 -+
153.8591 -+ /* set up operands from compare. */
153.8592 -+ operands[1] = branch_cmp[0];
153.8593 -+ operands[2] = branch_cmp[1];
153.8594 -+
153.8595 -+ gen_int_relational (EQ, operands[0], operands[1], operands[2], NULL_RTX);
153.8596 -+ DONE;
153.8597 -+})
153.8598 -+
153.8599 -+
153.8600 -+(define_insn "*seq"
153.8601 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8602 -+ (eq:SI (match_operand:SI 1 "reg_or_0_operand" "%rM")
153.8603 -+ (match_operand:SI 2 "arith_operand" "rI")))]
153.8604 -+ ""
153.8605 -+ "cmpeq%i2\\t%0, %z1, %z2"
153.8606 -+ [(set_attr "type" "alu")])
153.8607 -+
153.8608 -+
153.8609 -+(define_expand "sne"
153.8610 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8611 -+ (ne:SI (match_dup 1)
153.8612 -+ (match_dup 2)))]
153.8613 -+ ""
153.8614 -+{
153.8615 -+ if (branch_type != CMP_SI)
153.8616 -+ FAIL;
153.8617 -+
153.8618 -+ /* set up operands from compare. */
153.8619 -+ operands[1] = branch_cmp[0];
153.8620 -+ operands[2] = branch_cmp[1];
153.8621 -+
153.8622 -+ gen_int_relational (NE, operands[0], operands[1], operands[2], NULL_RTX);
153.8623 -+ DONE;
153.8624 -+})
153.8625 -+
153.8626 -+
153.8627 -+(define_insn "*sne"
153.8628 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8629 -+ (ne:SI (match_operand:SI 1 "reg_or_0_operand" "%rM")
153.8630 -+ (match_operand:SI 2 "arith_operand" "rI")))]
153.8631 -+ ""
153.8632 -+ "cmpne%i2\\t%0, %z1, %z2"
153.8633 -+ [(set_attr "type" "alu")])
153.8634 -+
153.8635 -+
153.8636 -+(define_expand "sgt"
153.8637 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8638 -+ (gt:SI (match_dup 1)
153.8639 -+ (match_dup 2)))]
153.8640 -+ ""
153.8641 -+{
153.8642 -+ if (branch_type != CMP_SI)
153.8643 -+ FAIL;
153.8644 -+
153.8645 -+ /* set up operands from compare. */
153.8646 -+ operands[1] = branch_cmp[0];
153.8647 -+ operands[2] = branch_cmp[1];
153.8648 -+
153.8649 -+ gen_int_relational (GT, operands[0], operands[1], operands[2], NULL_RTX);
153.8650 -+ DONE;
153.8651 -+})
153.8652 -+
153.8653 -+
153.8654 -+(define_insn "*sgt"
153.8655 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8656 -+ (gt:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8657 -+ (match_operand:SI 2 "reg_or_0_operand" "rM")))]
153.8658 -+ ""
153.8659 -+ "cmplt\\t%0, %z2, %z1"
153.8660 -+ [(set_attr "type" "alu")])
153.8661 -+
153.8662 -+
153.8663 -+(define_expand "sge"
153.8664 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8665 -+ (ge:SI (match_dup 1)
153.8666 -+ (match_dup 2)))]
153.8667 -+ ""
153.8668 -+{
153.8669 -+ if (branch_type != CMP_SI)
153.8670 -+ FAIL;
153.8671 -+
153.8672 -+ /* set up operands from compare. */
153.8673 -+ operands[1] = branch_cmp[0];
153.8674 -+ operands[2] = branch_cmp[1];
153.8675 -+
153.8676 -+ gen_int_relational (GE, operands[0], operands[1], operands[2], NULL_RTX);
153.8677 -+ DONE;
153.8678 -+})
153.8679 -+
153.8680 -+
153.8681 -+(define_insn "*sge"
153.8682 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8683 -+ (ge:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8684 -+ (match_operand:SI 2 "arith_operand" "rI")))]
153.8685 -+ ""
153.8686 -+ "cmpge%i2\\t%0, %z1, %z2"
153.8687 -+ [(set_attr "type" "alu")])
153.8688 -+
153.8689 -+(define_expand "sle"
153.8690 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8691 -+ (le:SI (match_dup 1)
153.8692 -+ (match_dup 2)))]
153.8693 -+ ""
153.8694 -+{
153.8695 -+ if (branch_type != CMP_SI)
153.8696 -+ FAIL;
153.8697 -+
153.8698 -+ /* set up operands from compare. */
153.8699 -+ operands[1] = branch_cmp[0];
153.8700 -+ operands[2] = branch_cmp[1];
153.8701 -+
153.8702 -+ gen_int_relational (LE, operands[0], operands[1], operands[2], NULL_RTX);
153.8703 -+ DONE;
153.8704 -+})
153.8705 -+
153.8706 -+
153.8707 -+(define_insn "*sle"
153.8708 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8709 -+ (le:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8710 -+ (match_operand:SI 2 "reg_or_0_operand" "rM")))]
153.8711 -+ ""
153.8712 -+ "cmpge\\t%0, %z2, %z1"
153.8713 -+ [(set_attr "type" "alu")])
153.8714 -+
153.8715 -+
153.8716 -+(define_expand "slt"
153.8717 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8718 -+ (lt:SI (match_dup 1)
153.8719 -+ (match_dup 2)))]
153.8720 -+ ""
153.8721 -+{
153.8722 -+ if (branch_type != CMP_SI)
153.8723 -+ FAIL;
153.8724 -+
153.8725 -+ /* set up operands from compare. */
153.8726 -+ operands[1] = branch_cmp[0];
153.8727 -+ operands[2] = branch_cmp[1];
153.8728 -+
153.8729 -+ gen_int_relational (LT, operands[0], operands[1], operands[2], NULL_RTX);
153.8730 -+ DONE;
153.8731 -+})
153.8732 -+
153.8733 -+
153.8734 -+(define_insn "*slt"
153.8735 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8736 -+ (lt:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8737 -+ (match_operand:SI 2 "arith_operand" "rI")))]
153.8738 -+ ""
153.8739 -+ "cmplt%i2\\t%0, %z1, %z2"
153.8740 -+ [(set_attr "type" "alu")])
153.8741 -+
153.8742 -+
153.8743 -+(define_expand "sgtu"
153.8744 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8745 -+ (gtu:SI (match_dup 1)
153.8746 -+ (match_dup 2)))]
153.8747 -+ ""
153.8748 -+{
153.8749 -+ if (branch_type != CMP_SI)
153.8750 -+ FAIL;
153.8751 -+
153.8752 -+ /* set up operands from compare. */
153.8753 -+ operands[1] = branch_cmp[0];
153.8754 -+ operands[2] = branch_cmp[1];
153.8755 -+
153.8756 -+ gen_int_relational (GTU, operands[0], operands[1], operands[2], NULL_RTX);
153.8757 -+ DONE;
153.8758 -+})
153.8759 -+
153.8760 -+
153.8761 -+(define_insn "*sgtu"
153.8762 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8763 -+ (gtu:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8764 -+ (match_operand:SI 2 "reg_or_0_operand" "rM")))]
153.8765 -+ ""
153.8766 -+ "cmpltu\\t%0, %z2, %z1"
153.8767 -+ [(set_attr "type" "alu")])
153.8768 -+
153.8769 -+
153.8770 -+(define_expand "sgeu"
153.8771 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8772 -+ (geu:SI (match_dup 1)
153.8773 -+ (match_dup 2)))]
153.8774 -+ ""
153.8775 -+{
153.8776 -+ if (branch_type != CMP_SI)
153.8777 -+ FAIL;
153.8778 -+
153.8779 -+ /* set up operands from compare. */
153.8780 -+ operands[1] = branch_cmp[0];
153.8781 -+ operands[2] = branch_cmp[1];
153.8782 -+
153.8783 -+ gen_int_relational (GEU, operands[0], operands[1], operands[2], NULL_RTX);
153.8784 -+ DONE;
153.8785 -+})
153.8786 -+
153.8787 -+
153.8788 -+(define_insn "*sgeu"
153.8789 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8790 -+ (geu:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8791 -+ (match_operand:SI 2 "uns_arith_operand" "rJ")))]
153.8792 -+ ""
153.8793 -+ "cmpgeu%i2\\t%0, %z1, %z2"
153.8794 -+ [(set_attr "type" "alu")])
153.8795 -+
153.8796 -+(define_expand "sleu"
153.8797 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8798 -+ (leu:SI (match_dup 1)
153.8799 -+ (match_dup 2)))]
153.8800 -+ ""
153.8801 -+{
153.8802 -+ if (branch_type != CMP_SI)
153.8803 -+ FAIL;
153.8804 -+
153.8805 -+ /* set up operands from compare. */
153.8806 -+ operands[1] = branch_cmp[0];
153.8807 -+ operands[2] = branch_cmp[1];
153.8808 -+
153.8809 -+ gen_int_relational (LEU, operands[0], operands[1], operands[2], NULL_RTX);
153.8810 -+ DONE;
153.8811 -+})
153.8812 -+
153.8813 -+
153.8814 -+(define_insn "*sleu"
153.8815 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8816 -+ (leu:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8817 -+ (match_operand:SI 2 "reg_or_0_operand" "rM")))]
153.8818 -+ ""
153.8819 -+ "cmpgeu\\t%0, %z2, %z1"
153.8820 -+ [(set_attr "type" "alu")])
153.8821 -+
153.8822 -+
153.8823 -+(define_expand "sltu"
153.8824 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8825 -+ (ltu:SI (match_dup 1)
153.8826 -+ (match_dup 2)))]
153.8827 -+ ""
153.8828 -+{
153.8829 -+ if (branch_type != CMP_SI)
153.8830 -+ FAIL;
153.8831 -+
153.8832 -+ /* set up operands from compare. */
153.8833 -+ operands[1] = branch_cmp[0];
153.8834 -+ operands[2] = branch_cmp[1];
153.8835 -+
153.8836 -+ gen_int_relational (LTU, operands[0], operands[1], operands[2], NULL_RTX);
153.8837 -+ DONE;
153.8838 -+})
153.8839 -+
153.8840 -+
153.8841 -+(define_insn "*sltu"
153.8842 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.8843 -+ (ltu:SI (match_operand:SI 1 "reg_or_0_operand" "rM")
153.8844 -+ (match_operand:SI 2 "uns_arith_operand" "rJ")))]
153.8845 -+ ""
153.8846 -+ "cmpltu%i2\\t%0, %z1, %z2"
153.8847 -+ [(set_attr "type" "alu")])
153.8848 -+
153.8849 -+
153.8850 -+
153.8851 -+
153.8852 -+;*****************************************************************************
153.8853 -+;*
153.8854 -+;* branches
153.8855 -+;*
153.8856 -+;*****************************************************************************
153.8857 -+
153.8858 -+(define_insn "*cbranch"
153.8859 -+ [(set (pc)
153.8860 -+ (if_then_else
153.8861 -+ (match_operator:SI 0 "comparison_operator"
153.8862 -+ [(match_operand:SI 2 "reg_or_0_operand" "rM")
153.8863 -+ (match_operand:SI 3 "reg_or_0_operand" "rM")])
153.8864 -+ (label_ref (match_operand 1 "" ""))
153.8865 -+ (pc)))]
153.8866 -+ ""
153.8867 -+ "b%0\\t%z2, %z3, %l1"
153.8868 -+ [(set_attr "type" "control")])
153.8869 -+
153.8870 -+
153.8871 -+(define_expand "beq"
153.8872 -+ [(set (pc)
153.8873 -+ (if_then_else (eq:CC (cc0)
153.8874 -+ (const_int 0))
153.8875 -+ (label_ref (match_operand 0 "" ""))
153.8876 -+ (pc)))]
153.8877 -+ ""
153.8878 -+{
153.8879 -+ gen_int_relational (EQ, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8880 -+ DONE;
153.8881 -+})
153.8882 -+
153.8883 -+
153.8884 -+(define_expand "bne"
153.8885 -+ [(set (pc)
153.8886 -+ (if_then_else (ne:CC (cc0)
153.8887 -+ (const_int 0))
153.8888 -+ (label_ref (match_operand 0 "" ""))
153.8889 -+ (pc)))]
153.8890 -+ ""
153.8891 -+{
153.8892 -+ gen_int_relational (NE, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8893 -+ DONE;
153.8894 -+})
153.8895 -+
153.8896 -+
153.8897 -+(define_expand "bgt"
153.8898 -+ [(set (pc)
153.8899 -+ (if_then_else (gt:CC (cc0)
153.8900 -+ (const_int 0))
153.8901 -+ (label_ref (match_operand 0 "" ""))
153.8902 -+ (pc)))]
153.8903 -+ ""
153.8904 -+{
153.8905 -+ gen_int_relational (GT, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8906 -+ DONE;
153.8907 -+})
153.8908 -+
153.8909 -+(define_expand "bge"
153.8910 -+ [(set (pc)
153.8911 -+ (if_then_else (ge:CC (cc0)
153.8912 -+ (const_int 0))
153.8913 -+ (label_ref (match_operand 0 "" ""))
153.8914 -+ (pc)))]
153.8915 -+ ""
153.8916 -+{
153.8917 -+ gen_int_relational (GE, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8918 -+ DONE;
153.8919 -+})
153.8920 -+
153.8921 -+(define_expand "ble"
153.8922 -+ [(set (pc)
153.8923 -+ (if_then_else (le:CC (cc0)
153.8924 -+ (const_int 0))
153.8925 -+ (label_ref (match_operand 0 "" ""))
153.8926 -+ (pc)))]
153.8927 -+ ""
153.8928 -+{
153.8929 -+ gen_int_relational (LE, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8930 -+ DONE;
153.8931 -+})
153.8932 -+
153.8933 -+(define_expand "blt"
153.8934 -+ [(set (pc)
153.8935 -+ (if_then_else (lt:CC (cc0)
153.8936 -+ (const_int 0))
153.8937 -+ (label_ref (match_operand 0 "" ""))
153.8938 -+ (pc)))]
153.8939 -+ ""
153.8940 -+{
153.8941 -+ gen_int_relational (LT, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8942 -+ DONE;
153.8943 -+})
153.8944 -+
153.8945 -+
153.8946 -+(define_expand "bgtu"
153.8947 -+ [(set (pc)
153.8948 -+ (if_then_else (gtu:CC (cc0)
153.8949 -+ (const_int 0))
153.8950 -+ (label_ref (match_operand 0 "" ""))
153.8951 -+ (pc)))]
153.8952 -+ ""
153.8953 -+{
153.8954 -+ gen_int_relational (GTU, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8955 -+ DONE;
153.8956 -+})
153.8957 -+
153.8958 -+(define_expand "bgeu"
153.8959 -+ [(set (pc)
153.8960 -+ (if_then_else (geu:CC (cc0)
153.8961 -+ (const_int 0))
153.8962 -+ (label_ref (match_operand 0 "" ""))
153.8963 -+ (pc)))]
153.8964 -+ ""
153.8965 -+{
153.8966 -+ gen_int_relational (GEU, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8967 -+ DONE;
153.8968 -+})
153.8969 -+
153.8970 -+(define_expand "bleu"
153.8971 -+ [(set (pc)
153.8972 -+ (if_then_else (leu:CC (cc0)
153.8973 -+ (const_int 0))
153.8974 -+ (label_ref (match_operand 0 "" ""))
153.8975 -+ (pc)))]
153.8976 -+ ""
153.8977 -+{
153.8978 -+ gen_int_relational (LEU, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8979 -+ DONE;
153.8980 -+})
153.8981 -+
153.8982 -+(define_expand "bltu"
153.8983 -+ [(set (pc)
153.8984 -+ (if_then_else (ltu:CC (cc0)
153.8985 -+ (const_int 0))
153.8986 -+ (label_ref (match_operand 0 "" ""))
153.8987 -+ (pc)))]
153.8988 -+ ""
153.8989 -+{
153.8990 -+ gen_int_relational (LTU, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8991 -+ DONE;
153.8992 -+})
153.8993 -+
153.8994 -+
153.8995 -+;*****************************************************************************
153.8996 -+;*
153.8997 -+;* String and Block Operations
153.8998 -+;*
153.8999 -+;*****************************************************************************
153.9000 -+
153.9001 -+; ??? This is all really a hack to get Dhrystone to work as fast as possible
153.9002 -+; things to be fixed:
153.9003 -+; * let the compiler core handle all of this, for that to work the extra
153.9004 -+; aliasing needs to be addressed.
153.9005 -+; * we use three temporary registers for loading and storing to ensure no
153.9006 -+; ld use stalls, this is excessive, because after the first ld/st only
153.9007 -+; two are needed. Only two would be needed all the way through if
153.9008 -+; we could schedule with other code. Consider:
153.9009 -+; 1 ld $1, 0($src)
153.9010 -+; 2 ld $2, 4($src)
153.9011 -+; 3 ld $3, 8($src)
153.9012 -+; 4 st $1, 0($dest)
153.9013 -+; 5 ld $1, 12($src)
153.9014 -+; 6 st $2, 4($src)
153.9015 -+; 7 etc.
153.9016 -+; The first store has to wait until 4. If it does not there will be one
153.9017 -+; cycle of stalling. However, if any other instruction could be placed
153.9018 -+; between 1 and 4, $3 would not be needed.
153.9019 -+; * In small we probably don't want to ever do this ourself because there
153.9020 -+; is no ld use stall.
153.9021 -+
153.9022 -+(define_expand "movstrsi"
153.9023 -+ [(parallel [(set (match_operand:BLK 0 "general_operand" "")
153.9024 -+ (match_operand:BLK 1 "general_operand" ""))
153.9025 -+ (use (match_operand:SI 2 "const_int_operand" ""))
153.9026 -+ (use (match_operand:SI 3 "const_int_operand" ""))
153.9027 -+ (clobber (match_scratch:SI 4 "=&r"))
153.9028 -+ (clobber (match_scratch:SI 5 "=&r"))
153.9029 -+ (clobber (match_scratch:SI 6 "=&r"))])]
153.9030 -+ "TARGET_INLINE_MEMCPY"
153.9031 -+{
153.9032 -+ rtx ld_addr_reg, st_addr_reg;
153.9033 -+
153.9034 -+ /* If the predicate for op2 fails in expr.c:emit_block_move_via_movstr
153.9035 -+ it trys to copy to a register, but does not re-try the predicate.
153.9036 -+ ??? Intead of fixing expr.c, I fix it here. */
153.9037 -+ if (!const_int_operand (operands[2], SImode))
153.9038 -+ FAIL;
153.9039 -+
153.9040 -+ /* ??? there are some magic numbers which need to be sorted out here.
153.9041 -+ the basis for them is not increasing code size hugely or going
153.9042 -+ out of range of offset addressing */
153.9043 -+ if (INTVAL (operands[3]) < 4)
153.9044 -+ FAIL;
153.9045 -+ if (!optimize
153.9046 -+ || (optimize_size && INTVAL (operands[2]) > 12)
153.9047 -+ || (optimize < 3 && INTVAL (operands[2]) > 100)
153.9048 -+ || INTVAL (operands[2]) > 200)
153.9049 -+ FAIL;
153.9050 -+
153.9051 -+ st_addr_reg
153.9052 -+ = replace_equiv_address (operands[0],
153.9053 -+ copy_to_mode_reg (Pmode, XEXP (operands[0], 0)));
153.9054 -+ ld_addr_reg
153.9055 -+ = replace_equiv_address (operands[1],
153.9056 -+ copy_to_mode_reg (Pmode, XEXP (operands[1], 0)));
153.9057 -+ emit_insn (gen_movstrsi_internal (st_addr_reg, ld_addr_reg,
153.9058 -+ operands[2], operands[3]));
153.9059 -+
153.9060 -+ DONE;
153.9061 -+})
153.9062 -+
153.9063 -+
153.9064 -+(define_insn "movstrsi_internal"
153.9065 -+ [(set (match_operand:BLK 0 "memory_operand" "=o")
153.9066 -+ (match_operand:BLK 1 "memory_operand" "o"))
153.9067 -+ (use (match_operand:SI 2 "const_int_operand" "i"))
153.9068 -+ (use (match_operand:SI 3 "const_int_operand" "i"))
153.9069 -+ (clobber (match_scratch:SI 4 "=&r"))
153.9070 -+ (clobber (match_scratch:SI 5 "=&r"))
153.9071 -+ (clobber (match_scratch:SI 6 "=&r"))]
153.9072 -+ "TARGET_INLINE_MEMCPY"
153.9073 -+{
153.9074 -+ int ld_offset = INTVAL (operands[2]);
153.9075 -+ int ld_len = INTVAL (operands[2]);
153.9076 -+ int ld_reg = 0;
153.9077 -+ rtx ld_addr_reg = XEXP (operands[1], 0);
153.9078 -+ int st_offset = INTVAL (operands[2]);
153.9079 -+ int st_len = INTVAL (operands[2]);
153.9080 -+ int st_reg = 0;
153.9081 -+ rtx st_addr_reg = XEXP (operands[0], 0);
153.9082 -+ int delay_count = 0;
153.9083 -+
153.9084 -+ /* ops[0] is the address used by the insn
153.9085 -+ ops[1] is the register being loaded or stored */
153.9086 -+ rtx ops[2];
153.9087 -+
153.9088 -+ if (INTVAL (operands[3]) < 4)
153.9089 -+ abort ();
153.9090 -+
153.9091 -+ while (ld_offset >= 4)
153.9092 -+ {
153.9093 -+ /* if the load use delay has been met, I can start
153.9094 -+ storing */
153.9095 -+ if (delay_count >= 3)
153.9096 -+ {
153.9097 -+ ops[0] = gen_rtx (MEM, SImode,
153.9098 -+ plus_constant (st_addr_reg, st_len - st_offset));
153.9099 -+ ops[1] = operands[st_reg + 4];
153.9100 -+ output_asm_insn ("stw\t%1, %0", ops);
153.9101 -+
153.9102 -+ st_reg = (st_reg + 1) % 3;
153.9103 -+ st_offset -= 4;
153.9104 -+ }
153.9105 -+
153.9106 -+ ops[0] = gen_rtx (MEM, SImode,
153.9107 -+ plus_constant (ld_addr_reg, ld_len - ld_offset));
153.9108 -+ ops[1] = operands[ld_reg + 4];
153.9109 -+ output_asm_insn ("ldw\t%1, %0", ops);
153.9110 -+
153.9111 -+ ld_reg = (ld_reg + 1) % 3;
153.9112 -+ ld_offset -= 4;
153.9113 -+ delay_count++;
153.9114 -+ }
153.9115 -+
153.9116 -+ if (ld_offset >= 2)
153.9117 -+ {
153.9118 -+ /* if the load use delay has been met, I can start
153.9119 -+ storing */
153.9120 -+ if (delay_count >= 3)
153.9121 -+ {
153.9122 -+ ops[0] = gen_rtx (MEM, SImode,
153.9123 -+ plus_constant (st_addr_reg, st_len - st_offset));
153.9124 -+ ops[1] = operands[st_reg + 4];
153.9125 -+ output_asm_insn ("stw\t%1, %0", ops);
153.9126 -+
153.9127 -+ st_reg = (st_reg + 1) % 3;
153.9128 -+ st_offset -= 4;
153.9129 -+ }
153.9130 -+
153.9131 -+ ops[0] = gen_rtx (MEM, HImode,
153.9132 -+ plus_constant (ld_addr_reg, ld_len - ld_offset));
153.9133 -+ ops[1] = operands[ld_reg + 4];
153.9134 -+ output_asm_insn ("ldh\t%1, %0", ops);
153.9135 -+
153.9136 -+ ld_reg = (ld_reg + 1) % 3;
153.9137 -+ ld_offset -= 2;
153.9138 -+ delay_count++;
153.9139 -+ }
153.9140 -+
153.9141 -+ if (ld_offset >= 1)
153.9142 -+ {
153.9143 -+ /* if the load use delay has been met, I can start
153.9144 -+ storing */
153.9145 -+ if (delay_count >= 3)
153.9146 -+ {
153.9147 -+ ops[0] = gen_rtx (MEM, SImode,
153.9148 -+ plus_constant (st_addr_reg, st_len - st_offset));
153.9149 -+ ops[1] = operands[st_reg + 4];
153.9150 -+ output_asm_insn ("stw\t%1, %0", ops);
153.9151 -+
153.9152 -+ st_reg = (st_reg + 1) % 3;
153.9153 -+ st_offset -= 4;
153.9154 -+ }
153.9155 -+
153.9156 -+ ops[0] = gen_rtx (MEM, QImode,
153.9157 -+ plus_constant (ld_addr_reg, ld_len - ld_offset));
153.9158 -+ ops[1] = operands[ld_reg + 4];
153.9159 -+ output_asm_insn ("ldb\t%1, %0", ops);
153.9160 -+
153.9161 -+ ld_reg = (ld_reg + 1) % 3;
153.9162 -+ ld_offset -= 1;
153.9163 -+ delay_count++;
153.9164 -+ }
153.9165 -+
153.9166 -+ while (st_offset >= 4)
153.9167 -+ {
153.9168 -+ ops[0] = gen_rtx (MEM, SImode,
153.9169 -+ plus_constant (st_addr_reg, st_len - st_offset));
153.9170 -+ ops[1] = operands[st_reg + 4];
153.9171 -+ output_asm_insn ("stw\t%1, %0", ops);
153.9172 -+
153.9173 -+ st_reg = (st_reg + 1) % 3;
153.9174 -+ st_offset -= 4;
153.9175 -+ }
153.9176 -+
153.9177 -+ while (st_offset >= 2)
153.9178 -+ {
153.9179 -+ ops[0] = gen_rtx (MEM, HImode,
153.9180 -+ plus_constant (st_addr_reg, st_len - st_offset));
153.9181 -+ ops[1] = operands[st_reg + 4];
153.9182 -+ output_asm_insn ("sth\t%1, %0", ops);
153.9183 -+
153.9184 -+ st_reg = (st_reg + 1) % 3;
153.9185 -+ st_offset -= 2;
153.9186 -+ }
153.9187 -+
153.9188 -+ while (st_offset >= 1)
153.9189 -+ {
153.9190 -+ ops[0] = gen_rtx (MEM, QImode,
153.9191 -+ plus_constant (st_addr_reg, st_len - st_offset));
153.9192 -+ ops[1] = operands[st_reg + 4];
153.9193 -+ output_asm_insn ("stb\t%1, %0", ops);
153.9194 -+
153.9195 -+ st_reg = (st_reg + 1) % 3;
153.9196 -+ st_offset -= 1;
153.9197 -+ }
153.9198 -+
153.9199 -+ return "";
153.9200 -+}
153.9201 -+; ??? lengths are not being used yet, but I will probably forget
153.9202 -+; to update this once I am using lengths, so set it to something
153.9203 -+; definetely big enough to cover it. 400 allows for 200 bytes
153.9204 -+; of motion.
153.9205 -+ [(set_attr "length" "400")])
153.9206 -+
153.9207 -+
153.9208 -+
153.9209 -+;*****************************************************************************
153.9210 -+;*
153.9211 -+;* Custom instructions
153.9212 -+;*
153.9213 -+;*****************************************************************************
153.9214 -+
153.9215 -+(define_constants [
153.9216 -+ (CUSTOM_N 100)
153.9217 -+ (CUSTOM_NI 101)
153.9218 -+ (CUSTOM_NF 102)
153.9219 -+ (CUSTOM_NP 103)
153.9220 -+ (CUSTOM_NII 104)
153.9221 -+ (CUSTOM_NIF 105)
153.9222 -+ (CUSTOM_NIP 106)
153.9223 -+ (CUSTOM_NFI 107)
153.9224 -+ (CUSTOM_NFF 108)
153.9225 -+ (CUSTOM_NFP 109)
153.9226 -+ (CUSTOM_NPI 110)
153.9227 -+ (CUSTOM_NPF 111)
153.9228 -+ (CUSTOM_NPP 112)
153.9229 -+ (CUSTOM_IN 113)
153.9230 -+ (CUSTOM_INI 114)
153.9231 -+ (CUSTOM_INF 115)
153.9232 -+ (CUSTOM_INP 116)
153.9233 -+ (CUSTOM_INII 117)
153.9234 -+ (CUSTOM_INIF 118)
153.9235 -+ (CUSTOM_INIP 119)
153.9236 -+ (CUSTOM_INFI 120)
153.9237 -+ (CUSTOM_INFF 121)
153.9238 -+ (CUSTOM_INFP 122)
153.9239 -+ (CUSTOM_INPI 123)
153.9240 -+ (CUSTOM_INPF 124)
153.9241 -+ (CUSTOM_INPP 125)
153.9242 -+ (CUSTOM_FN 126)
153.9243 -+ (CUSTOM_FNI 127)
153.9244 -+ (CUSTOM_FNF 128)
153.9245 -+ (CUSTOM_FNP 129)
153.9246 -+ (CUSTOM_FNII 130)
153.9247 -+ (CUSTOM_FNIF 131)
153.9248 -+ (CUSTOM_FNIP 132)
153.9249 -+ (CUSTOM_FNFI 133)
153.9250 -+ (CUSTOM_FNFF 134)
153.9251 -+ (CUSTOM_FNFP 135)
153.9252 -+ (CUSTOM_FNPI 136)
153.9253 -+ (CUSTOM_FNPF 137)
153.9254 -+ (CUSTOM_FNPP 138)
153.9255 -+ (CUSTOM_PN 139)
153.9256 -+ (CUSTOM_PNI 140)
153.9257 -+ (CUSTOM_PNF 141)
153.9258 -+ (CUSTOM_PNP 142)
153.9259 -+ (CUSTOM_PNII 143)
153.9260 -+ (CUSTOM_PNIF 144)
153.9261 -+ (CUSTOM_PNIP 145)
153.9262 -+ (CUSTOM_PNFI 146)
153.9263 -+ (CUSTOM_PNFF 147)
153.9264 -+ (CUSTOM_PNFP 148)
153.9265 -+ (CUSTOM_PNPI 149)
153.9266 -+ (CUSTOM_PNPF 150)
153.9267 -+ (CUSTOM_PNPP 151)
153.9268 -+])
153.9269 -+
153.9270 -+
153.9271 -+(define_insn "custom_n"
153.9272 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")] CUSTOM_N)]
153.9273 -+ ""
153.9274 -+ "custom\\t%0, zero, zero, zero"
153.9275 -+ [(set_attr "type" "custom")])
153.9276 -+
153.9277 -+(define_insn "custom_ni"
153.9278 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9279 -+ (match_operand:SI 1 "register_operand" "r")] CUSTOM_NI)]
153.9280 -+ ""
153.9281 -+ "custom\\t%0, zero, %1, zero"
153.9282 -+ [(set_attr "type" "custom")])
153.9283 -+
153.9284 -+(define_insn "custom_nf"
153.9285 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9286 -+ (match_operand:SF 1 "register_operand" "r")] CUSTOM_NF)]
153.9287 -+ ""
153.9288 -+ "custom\\t%0, zero, %1, zero"
153.9289 -+ [(set_attr "type" "custom")])
153.9290 -+
153.9291 -+(define_insn "custom_np"
153.9292 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9293 -+ (match_operand:SI 1 "register_operand" "r")] CUSTOM_NP)]
153.9294 -+ ""
153.9295 -+ "custom\\t%0, zero, %1, zero"
153.9296 -+ [(set_attr "type" "custom")])
153.9297 -+
153.9298 -+(define_insn "custom_nii"
153.9299 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9300 -+ (match_operand:SI 1 "register_operand" "r")
153.9301 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_NII)]
153.9302 -+ ""
153.9303 -+ "custom\\t%0, zero, %1, %2"
153.9304 -+ [(set_attr "type" "custom")])
153.9305 -+
153.9306 -+(define_insn "custom_nif"
153.9307 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9308 -+ (match_operand:SI 1 "register_operand" "r")
153.9309 -+ (match_operand:SF 2 "register_operand" "r")] CUSTOM_NIF)]
153.9310 -+ ""
153.9311 -+ "custom\\t%0, zero, %1, %2"
153.9312 -+ [(set_attr "type" "custom")])
153.9313 -+
153.9314 -+(define_insn "custom_nip"
153.9315 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9316 -+ (match_operand:SI 1 "register_operand" "r")
153.9317 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_NIP)]
153.9318 -+ ""
153.9319 -+ "custom\\t%0, zero, %1, %2"
153.9320 -+ [(set_attr "type" "custom")])
153.9321 -+
153.9322 -+(define_insn "custom_nfi"
153.9323 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9324 -+ (match_operand:SF 1 "register_operand" "r")
153.9325 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_NFI)]
153.9326 -+ ""
153.9327 -+ "custom\\t%0, zero, %1, %2"
153.9328 -+ [(set_attr "type" "custom")])
153.9329 -+
153.9330 -+(define_insn "custom_nff"
153.9331 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9332 -+ (match_operand:SF 1 "register_operand" "r")
153.9333 -+ (match_operand:SF 2 "register_operand" "r")] CUSTOM_NFF)]
153.9334 -+ ""
153.9335 -+ "custom\\t%0, zero, %1, %2"
153.9336 -+ [(set_attr "type" "custom")])
153.9337 -+
153.9338 -+(define_insn "custom_nfp"
153.9339 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9340 -+ (match_operand:SF 1 "register_operand" "r")
153.9341 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_NFP)]
153.9342 -+ ""
153.9343 -+ "custom\\t%0, zero, %1, %2"
153.9344 -+ [(set_attr "type" "custom")])
153.9345 -+
153.9346 -+(define_insn "custom_npi"
153.9347 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9348 -+ (match_operand:SI 1 "register_operand" "r")
153.9349 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_NPI)]
153.9350 -+ ""
153.9351 -+ "custom\\t%0, zero, %1, %2"
153.9352 -+ [(set_attr "type" "custom")])
153.9353 -+
153.9354 -+(define_insn "custom_npf"
153.9355 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9356 -+ (match_operand:SI 1 "register_operand" "r")
153.9357 -+ (match_operand:SF 2 "register_operand" "r")] CUSTOM_NPF)]
153.9358 -+ ""
153.9359 -+ "custom\\t%0, zero, %1, %2"
153.9360 -+ [(set_attr "type" "custom")])
153.9361 -+
153.9362 -+(define_insn "custom_npp"
153.9363 -+ [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9364 -+ (match_operand:SI 1 "register_operand" "r")
153.9365 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_NPP)]
153.9366 -+ ""
153.9367 -+ "custom\\t%0, zero, %1, %2"
153.9368 -+ [(set_attr "type" "custom")])
153.9369 -+
153.9370 -+
153.9371 -+
153.9372 -+(define_insn "custom_in"
153.9373 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9374 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")] CUSTOM_IN))]
153.9375 -+ ""
153.9376 -+ "custom\\t%1, %0, zero, zero"
153.9377 -+ [(set_attr "type" "custom")])
153.9378 -+
153.9379 -+(define_insn "custom_ini"
153.9380 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9381 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9382 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_INI))]
153.9383 -+ ""
153.9384 -+ "custom\\t%1, %0, %2, zero"
153.9385 -+ [(set_attr "type" "custom")])
153.9386 -+
153.9387 -+(define_insn "custom_inf"
153.9388 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9389 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9390 -+ (match_operand:SF 2 "register_operand" "r")] CUSTOM_INF))]
153.9391 -+ ""
153.9392 -+ "custom\\t%1, %0, %2, zero"
153.9393 -+ [(set_attr "type" "custom")])
153.9394 -+
153.9395 -+(define_insn "custom_inp"
153.9396 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9397 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9398 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_INP))]
153.9399 -+ ""
153.9400 -+ "custom\\t%1, %0, %2, zero"
153.9401 -+ [(set_attr "type" "custom")])
153.9402 -+
153.9403 -+(define_insn "custom_inii"
153.9404 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9405 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9406 -+ (match_operand:SI 2 "register_operand" "r")
153.9407 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_INII))]
153.9408 -+ ""
153.9409 -+ "custom\\t%1, %0, %2, %3"
153.9410 -+ [(set_attr "type" "custom")])
153.9411 -+
153.9412 -+(define_insn "custom_inif"
153.9413 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9414 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9415 -+ (match_operand:SI 2 "register_operand" "r")
153.9416 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_INIF))]
153.9417 -+ ""
153.9418 -+ "custom\\t%1, %0, %2, %3"
153.9419 -+ [(set_attr "type" "custom")])
153.9420 -+
153.9421 -+(define_insn "custom_inip"
153.9422 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9423 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9424 -+ (match_operand:SI 2 "register_operand" "r")
153.9425 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_INIP))]
153.9426 -+ ""
153.9427 -+ "custom\\t%1, %0, %2, %3"
153.9428 -+ [(set_attr "type" "custom")])
153.9429 -+
153.9430 -+(define_insn "custom_infi"
153.9431 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9432 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9433 -+ (match_operand:SF 2 "register_operand" "r")
153.9434 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_INFI))]
153.9435 -+ ""
153.9436 -+ "custom\\t%1, %0, %2, %3"
153.9437 -+ [(set_attr "type" "custom")])
153.9438 -+
153.9439 -+(define_insn "custom_inff"
153.9440 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9441 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9442 -+ (match_operand:SF 2 "register_operand" "r")
153.9443 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_INFF))]
153.9444 -+ ""
153.9445 -+ "custom\\t%1, %0, %2, %3"
153.9446 -+ [(set_attr "type" "custom")])
153.9447 -+
153.9448 -+(define_insn "custom_infp"
153.9449 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9450 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9451 -+ (match_operand:SF 2 "register_operand" "r")
153.9452 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_INFP))]
153.9453 -+ ""
153.9454 -+ "custom\\t%1, %0, %2, %3"
153.9455 -+ [(set_attr "type" "custom")])
153.9456 -+
153.9457 -+(define_insn "custom_inpi"
153.9458 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9459 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9460 -+ (match_operand:SI 2 "register_operand" "r")
153.9461 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_INPI))]
153.9462 -+ ""
153.9463 -+ "custom\\t%1, %0, %2, %3"
153.9464 -+ [(set_attr "type" "custom")])
153.9465 -+
153.9466 -+(define_insn "custom_inpf"
153.9467 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9468 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9469 -+ (match_operand:SI 2 "register_operand" "r")
153.9470 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_INPF))]
153.9471 -+ ""
153.9472 -+ "custom\\t%1, %0, %2, %3"
153.9473 -+ [(set_attr "type" "custom")])
153.9474 -+
153.9475 -+(define_insn "custom_inpp"
153.9476 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9477 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9478 -+ (match_operand:SI 2 "register_operand" "r")
153.9479 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_INPP))]
153.9480 -+ ""
153.9481 -+ "custom\\t%1, %0, %2, %3"
153.9482 -+ [(set_attr "type" "custom")])
153.9483 -+
153.9484 -+
153.9485 -+
153.9486 -+
153.9487 -+
153.9488 -+(define_insn "custom_fn"
153.9489 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9490 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")] CUSTOM_FN))]
153.9491 -+ ""
153.9492 -+ "custom\\t%1, %0, zero, zero"
153.9493 -+ [(set_attr "type" "custom")])
153.9494 -+
153.9495 -+(define_insn "custom_fni"
153.9496 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9497 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9498 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_FNI))]
153.9499 -+ ""
153.9500 -+ "custom\\t%1, %0, %2, zero"
153.9501 -+ [(set_attr "type" "custom")])
153.9502 -+
153.9503 -+(define_insn "custom_fnf"
153.9504 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9505 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9506 -+ (match_operand:SF 2 "register_operand" "r")] CUSTOM_FNF))]
153.9507 -+ ""
153.9508 -+ "custom\\t%1, %0, %2, zero"
153.9509 -+ [(set_attr "type" "custom")])
153.9510 -+
153.9511 -+(define_insn "custom_fnp"
153.9512 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9513 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9514 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_FNP))]
153.9515 -+ ""
153.9516 -+ "custom\\t%1, %0, %2, zero"
153.9517 -+ [(set_attr "type" "custom")])
153.9518 -+
153.9519 -+(define_insn "custom_fnii"
153.9520 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9521 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9522 -+ (match_operand:SI 2 "register_operand" "r")
153.9523 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_FNII))]
153.9524 -+ ""
153.9525 -+ "custom\\t%1, %0, %2, %3"
153.9526 -+ [(set_attr "type" "custom")])
153.9527 -+
153.9528 -+(define_insn "custom_fnif"
153.9529 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9530 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9531 -+ (match_operand:SI 2 "register_operand" "r")
153.9532 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_FNIF))]
153.9533 -+ ""
153.9534 -+ "custom\\t%1, %0, %2, %3"
153.9535 -+ [(set_attr "type" "custom")])
153.9536 -+
153.9537 -+(define_insn "custom_fnip"
153.9538 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9539 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9540 -+ (match_operand:SI 2 "register_operand" "r")
153.9541 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_FNIP))]
153.9542 -+ ""
153.9543 -+ "custom\\t%1, %0, %2, %3"
153.9544 -+ [(set_attr "type" "custom")])
153.9545 -+
153.9546 -+(define_insn "custom_fnfi"
153.9547 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9548 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9549 -+ (match_operand:SF 2 "register_operand" "r")
153.9550 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_FNFI))]
153.9551 -+ ""
153.9552 -+ "custom\\t%1, %0, %2, %3"
153.9553 -+ [(set_attr "type" "custom")])
153.9554 -+
153.9555 -+(define_insn "custom_fnff"
153.9556 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9557 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9558 -+ (match_operand:SF 2 "register_operand" "r")
153.9559 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_FNFF))]
153.9560 -+ ""
153.9561 -+ "custom\\t%1, %0, %2, %3"
153.9562 -+ [(set_attr "type" "custom")])
153.9563 -+
153.9564 -+(define_insn "custom_fnfp"
153.9565 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9566 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9567 -+ (match_operand:SF 2 "register_operand" "r")
153.9568 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_FNFP))]
153.9569 -+ ""
153.9570 -+ "custom\\t%1, %0, %2, %3"
153.9571 -+ [(set_attr "type" "custom")])
153.9572 -+
153.9573 -+(define_insn "custom_fnpi"
153.9574 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9575 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9576 -+ (match_operand:SI 2 "register_operand" "r")
153.9577 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_FNPI))]
153.9578 -+ ""
153.9579 -+ "custom\\t%1, %0, %2, %3"
153.9580 -+ [(set_attr "type" "custom")])
153.9581 -+
153.9582 -+(define_insn "custom_fnpf"
153.9583 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9584 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9585 -+ (match_operand:SI 2 "register_operand" "r")
153.9586 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_FNPF))]
153.9587 -+ ""
153.9588 -+ "custom\\t%1, %0, %2, %3"
153.9589 -+ [(set_attr "type" "custom")])
153.9590 -+
153.9591 -+(define_insn "custom_fnpp"
153.9592 -+ [(set (match_operand:SF 0 "register_operand" "=r")
153.9593 -+ (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9594 -+ (match_operand:SI 2 "register_operand" "r")
153.9595 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_FNPP))]
153.9596 -+ ""
153.9597 -+ "custom\\t%1, %0, %2, %3"
153.9598 -+ [(set_attr "type" "custom")])
153.9599 -+
153.9600 -+
153.9601 -+
153.9602 -+(define_insn "custom_pn"
153.9603 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9604 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")] CUSTOM_PN))]
153.9605 -+ ""
153.9606 -+ "custom\\t%1, %0, zero, zero"
153.9607 -+ [(set_attr "type" "custom")])
153.9608 -+
153.9609 -+(define_insn "custom_pni"
153.9610 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9611 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9612 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_PNI))]
153.9613 -+ ""
153.9614 -+ "custom\\t%1, %0, %2, zero"
153.9615 -+ [(set_attr "type" "custom")])
153.9616 -+
153.9617 -+(define_insn "custom_pnf"
153.9618 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9619 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9620 -+ (match_operand:SF 2 "register_operand" "r")] CUSTOM_PNF))]
153.9621 -+ ""
153.9622 -+ "custom\\t%1, %0, %2, zero"
153.9623 -+ [(set_attr "type" "custom")])
153.9624 -+
153.9625 -+(define_insn "custom_pnp"
153.9626 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9627 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9628 -+ (match_operand:SI 2 "register_operand" "r")] CUSTOM_PNP))]
153.9629 -+ ""
153.9630 -+ "custom\\t%1, %0, %2, zero"
153.9631 -+ [(set_attr "type" "custom")])
153.9632 -+
153.9633 -+(define_insn "custom_pnii"
153.9634 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9635 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9636 -+ (match_operand:SI 2 "register_operand" "r")
153.9637 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_PNII))]
153.9638 -+ ""
153.9639 -+ "custom\\t%1, %0, %2, %3"
153.9640 -+ [(set_attr "type" "custom")])
153.9641 -+
153.9642 -+(define_insn "custom_pnif"
153.9643 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9644 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9645 -+ (match_operand:SI 2 "register_operand" "r")
153.9646 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_PNIF))]
153.9647 -+ ""
153.9648 -+ "custom\\t%1, %0, %2, %3"
153.9649 -+ [(set_attr "type" "custom")])
153.9650 -+
153.9651 -+(define_insn "custom_pnip"
153.9652 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9653 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9654 -+ (match_operand:SI 2 "register_operand" "r")
153.9655 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_PNIP))]
153.9656 -+ ""
153.9657 -+ "custom\\t%1, %0, %2, %3"
153.9658 -+ [(set_attr "type" "custom")])
153.9659 -+
153.9660 -+(define_insn "custom_pnfi"
153.9661 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9662 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9663 -+ (match_operand:SF 2 "register_operand" "r")
153.9664 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_PNFI))]
153.9665 -+ ""
153.9666 -+ "custom\\t%1, %0, %2, %3"
153.9667 -+ [(set_attr "type" "custom")])
153.9668 -+
153.9669 -+(define_insn "custom_pnff"
153.9670 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9671 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9672 -+ (match_operand:SF 2 "register_operand" "r")
153.9673 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_PNFF))]
153.9674 -+ ""
153.9675 -+ "custom\\t%1, %0, %2, %3"
153.9676 -+ [(set_attr "type" "custom")])
153.9677 -+
153.9678 -+(define_insn "custom_pnfp"
153.9679 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9680 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9681 -+ (match_operand:SF 2 "register_operand" "r")
153.9682 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_PNFP))]
153.9683 -+ ""
153.9684 -+ "custom\\t%1, %0, %2, %3"
153.9685 -+ [(set_attr "type" "custom")])
153.9686 -+
153.9687 -+(define_insn "custom_pnpi"
153.9688 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9689 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9690 -+ (match_operand:SI 2 "register_operand" "r")
153.9691 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_PNPI))]
153.9692 -+ ""
153.9693 -+ "custom\\t%1, %0, %2, %3"
153.9694 -+ [(set_attr "type" "custom")])
153.9695 -+
153.9696 -+(define_insn "custom_pnpf"
153.9697 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9698 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9699 -+ (match_operand:SI 2 "register_operand" "r")
153.9700 -+ (match_operand:SF 3 "register_operand" "r")] CUSTOM_PNPF))]
153.9701 -+ ""
153.9702 -+ "custom\\t%1, %0, %2, %3"
153.9703 -+ [(set_attr "type" "custom")])
153.9704 -+
153.9705 -+(define_insn "custom_pnpp"
153.9706 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9707 -+ (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9708 -+ (match_operand:SI 2 "register_operand" "r")
153.9709 -+ (match_operand:SI 3 "register_operand" "r")] CUSTOM_PNPP))]
153.9710 -+ ""
153.9711 -+ "custom\\t%1, %0, %2, %3"
153.9712 -+ [(set_attr "type" "custom")])
153.9713 -+
153.9714 -+
153.9715 -+
153.9716 -+
153.9717 -+
153.9718 -+
153.9719 -+;*****************************************************************************
153.9720 -+;*
153.9721 -+;* Misc
153.9722 -+;*
153.9723 -+;*****************************************************************************
153.9724 -+
153.9725 -+(define_insn "nop"
153.9726 -+ [(const_int 0)]
153.9727 -+ ""
153.9728 -+ "nop\\t"
153.9729 -+ [(set_attr "type" "alu")])
153.9730 -+
153.9731 -+(define_insn "sync"
153.9732 -+ [(unspec_volatile [(const_int 0)] UNSPEC_SYNC)]
153.9733 -+ ""
153.9734 -+ "sync\\t"
153.9735 -+ [(set_attr "type" "control")])
153.9736 -+
153.9737 -+
153.9738 -+(define_insn "rdctl"
153.9739 -+ [(set (match_operand:SI 0 "register_operand" "=r")
153.9740 -+ (unspec_volatile:SI [(match_operand:SI 1 "rdwrctl_operand" "O")] UNSPEC_RDCTL))]
153.9741 -+ ""
153.9742 -+ "rdctl\\t%0, ctl%1"
153.9743 -+ [(set_attr "type" "control")])
153.9744 -+
153.9745 -+(define_insn "wrctl"
153.9746 -+ [(unspec_volatile:SI [(match_operand:SI 0 "rdwrctl_operand" "O")
153.9747 -+ (match_operand:SI 1 "register_operand" "r")] UNSPEC_WRCTL)]
153.9748 -+ ""
153.9749 -+ "wrctl\\tctl%0, %1"
153.9750 -+ [(set_attr "type" "control")])
153.9751 -+
153.9752 -+
153.9753 -+
153.9754 -+;*****************************************************************************
153.9755 -+;*
153.9756 -+;* Peepholes
153.9757 -+;*
153.9758 -+;*****************************************************************************
153.9759 -+
153.9760 -+
153.9761 ---- gcc-3.4.3/gcc/config/nios2/t-nios2
153.9762 -+++ gcc-3.4.3-nios2/gcc/config/nios2/t-nios2
153.9763 -@@ -0,0 +1,123 @@
153.9764 -+##
153.9765 -+## Compiler flags to use when compiling libgcc2.c.
153.9766 -+##
153.9767 -+## LIB2FUNCS_EXTRA
153.9768 -+## A list of source file names to be compiled or assembled and inserted into libgcc.a.
153.9769 -+
153.9770 -+LIB2FUNCS_EXTRA=$(srcdir)/config/nios2/lib2-divmod.c \
153.9771 -+ $(srcdir)/config/nios2/lib2-divmod-hi.c \
153.9772 -+ $(srcdir)/config/nios2/lib2-divtable.c \
153.9773 -+ $(srcdir)/config/nios2/lib2-mul.c
153.9774 -+
153.9775 -+##
153.9776 -+## Floating Point Emulation
153.9777 -+## To have GCC include software floating point libraries in libgcc.a define FPBIT
153.9778 -+## and DPBIT along with a few rules as follows:
153.9779 -+##
153.9780 -+## # We want fine grained libraries, so use the new code
153.9781 -+## # to build the floating point emulation libraries.
153.9782 -+FPBIT=$(srcdir)/config/nios2/nios2-fp-bit.c
153.9783 -+DPBIT=$(srcdir)/config/nios2/nios2-dp-bit.c
153.9784 -+
153.9785 -+TARGET_LIBGCC2_CFLAGS = -O2
153.9786 -+
153.9787 -+# FLOAT_ONLY - no doubles
153.9788 -+# SMALL_MACHINE - QI/HI is faster than SI
153.9789 -+# Actually SMALL_MACHINE uses chars and shorts instead of ints
153.9790 -+# since ints (16-bit ones as they are today) are at least as fast
153.9791 -+# as chars and shorts, don't define SMALL_MACHINE
153.9792 -+# CMPtype - type returned by FP compare, i.e. INT (hard coded in fp-bit - see code )
153.9793 -+
153.9794 -+$(FPBIT): $(srcdir)/config/fp-bit.c Makefile
153.9795 -+ echo '#define FLOAT' > ${FPBIT}
153.9796 -+ cat $(srcdir)/config/fp-bit.c >> ${FPBIT}
153.9797 -+
153.9798 -+$(DPBIT): $(srcdir)/config/fp-bit.c Makefile
153.9799 -+ echo '' > ${DPBIT}
153.9800 -+ cat $(srcdir)/config/fp-bit.c >> ${DPBIT}
153.9801 -+
153.9802 -+EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
153.9803 -+
153.9804 -+# Assemble startup files.
153.9805 -+$(T)crti.o: $(srcdir)/config/nios2/crti.asm $(GCC_PASSES)
153.9806 -+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
153.9807 -+ -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/nios2/crti.asm
153.9808 -+
153.9809 -+$(T)crtn.o: $(srcdir)/config/nios2/crtn.asm $(GCC_PASSES)
153.9810 -+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
153.9811 -+ -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/nios2/crtn.asm
153.9812 -+
153.9813 -+
153.9814 -+## You may need to provide additional #defines at the beginning of
153.9815 -+## fp-bit.c and dp-bit.c to control target endianness and other options
153.9816 -+##
153.9817 -+## CRTSTUFF_T_CFLAGS
153.9818 -+## Special flags used when compiling crtstuff.c. See Initialization.
153.9819 -+##
153.9820 -+## CRTSTUFF_T_CFLAGS_S
153.9821 -+## Special flags used when compiling crtstuff.c for shared linking. Used
153.9822 -+## if you use crtbeginS.o and crtendS.o in EXTRA-PARTS. See Initialization.
153.9823 -+##
153.9824 -+## MULTILIB_OPTIONS
153.9825 -+## For some targets, invoking GCC in different ways produces objects that
153.9826 -+## can not be linked together. For example, for some targets GCC produces
153.9827 -+## both big and little endian code. For these targets, you must arrange
153.9828 -+## for multiple versions of libgcc.a to be compiled, one for each set of
153.9829 -+## incompatible options. When GCC invokes the linker, it arranges to link
153.9830 -+## in the right version of libgcc.a, based on the command line options
153.9831 -+## used.
153.9832 -+## The MULTILIB_OPTIONS macro lists the set of options for which special
153.9833 -+## versions of libgcc.a must be built. Write options that are mutually
153.9834 -+## incompatible side by side, separated by a slash. Write options that may
153.9835 -+## be used together separated by a space. The build procedure will build
153.9836 -+## all combinations of compatible options.
153.9837 -+##
153.9838 -+## For example, if you set MULTILIB_OPTIONS to m68000/m68020 msoft-float,
153.9839 -+## Makefile will build special versions of libgcc.a using the following
153.9840 -+## sets of options: -m68000, -m68020, -msoft-float, -m68000 -msoft-float,
153.9841 -+## and -m68020 -msoft-float.
153.9842 -+
153.9843 -+MULTILIB_OPTIONS = mno-hw-mul mhw-mulx
153.9844 -+
153.9845 -+## MULTILIB_DIRNAMES
153.9846 -+## If MULTILIB_OPTIONS is used, this variable specifies the directory names
153.9847 -+## that should be used to hold the various libraries. Write one element in
153.9848 -+## MULTILIB_DIRNAMES for each element in MULTILIB_OPTIONS. If
153.9849 -+## MULTILIB_DIRNAMES is not used, the default value will be
153.9850 -+## MULTILIB_OPTIONS, with all slashes treated as spaces.
153.9851 -+## For example, if MULTILIB_OPTIONS is set to m68000/m68020 msoft-float,
153.9852 -+## then the default value of MULTILIB_DIRNAMES is m68000 m68020
153.9853 -+## msoft-float. You may specify a different value if you desire a
153.9854 -+## different set of directory names.
153.9855 -+
153.9856 -+# MULTILIB_DIRNAMES =
153.9857 -+
153.9858 -+## MULTILIB_MATCHES
153.9859 -+## Sometimes the same option may be written in two different ways. If an
153.9860 -+## option is listed in MULTILIB_OPTIONS, GCC needs to know about any
153.9861 -+## synonyms. In that case, set MULTILIB_MATCHES to a list of items of the
153.9862 -+## form option=option to describe all relevant synonyms. For example,
153.9863 -+## m68000=mc68000 m68020=mc68020.
153.9864 -+##
153.9865 -+## MULTILIB_EXCEPTIONS
153.9866 -+## Sometimes when there are multiple sets of MULTILIB_OPTIONS being
153.9867 -+## specified, there are combinations that should not be built. In that
153.9868 -+## case, set MULTILIB_EXCEPTIONS to be all of the switch exceptions in
153.9869 -+## shell case syntax that should not be built.
153.9870 -+## For example, in the PowerPC embedded ABI support, it is not desirable to
153.9871 -+## build libraries compiled with the -mcall-aix option and either of the
153.9872 -+## -fleading-underscore or -mlittle options at the same time. Therefore
153.9873 -+## MULTILIB_EXCEPTIONS is set to
153.9874 -+##
153.9875 -+## *mcall-aix/*fleading-underscore* *mlittle/*mcall-aix*
153.9876 -+##
153.9877 -+
153.9878 -+MULTILIB_EXCEPTIONS = *mno-hw-mul/*mhw-mulx*
153.9879 -+
153.9880 -+##
153.9881 -+## MULTILIB_EXTRA_OPTS Sometimes it is desirable that when building
153.9882 -+## multiple versions of libgcc.a certain options should always be passed on
153.9883 -+## to the compiler. In that case, set MULTILIB_EXTRA_OPTS to be the list
153.9884 -+## of options to be used for all builds.
153.9885 -+##
153.9886 -+
153.9887 ---- gcc-3.4.3/gcc/config.gcc
153.9888 -+++ gcc-3.4.3-nios2/gcc/config.gcc
153.9889 -@@ -1321,6 +1321,10 @@ m32rle-*-linux*)
153.9890 - thread_file='posix'
153.9891 - fi
153.9892 - ;;
153.9893 -+# JBG
153.9894 -+nios2-*-* | nios2-*-*)
153.9895 -+ tm_file="elfos.h ${tm_file}"
153.9896 -+ ;;
153.9897 - # m68hc11 and m68hc12 share the same machine description.
153.9898 - m68hc11-*-*|m6811-*-*)
153.9899 - tm_file="dbxelf.h elfos.h m68hc11/m68hc11.h"
153.9900 ---- gcc-3.4.3/gcc/cse.c
153.9901 -+++ gcc-3.4.3-nios2/gcc/cse.c
153.9902 -@@ -3134,6 +3134,10 @@ find_comparison_args (enum rtx_code code
153.9903 - #ifdef FLOAT_STORE_FLAG_VALUE
153.9904 - REAL_VALUE_TYPE fsfv;
153.9905 - #endif
153.9906 -+#ifdef __nios2__
153.9907 -+ if (p->is_const)
153.9908 -+ break;
153.9909 -+#endif
153.9910 -
153.9911 - /* If the entry isn't valid, skip it. */
153.9912 - if (! exp_equiv_p (p->exp, p->exp, 1, 0))
153.9913 ---- gcc-3.4.3/gcc/doc/extend.texi
153.9914 -+++ gcc-3.4.3-nios2/gcc/doc/extend.texi
153.9915 -@@ -5636,12 +5636,118 @@ to those machines. Generally these gene
153.9916 - instructions, but allow the compiler to schedule those calls.
153.9917 -
153.9918 - @menu
153.9919 -+* Altera Nios II Built-in Functions::
153.9920 - * Alpha Built-in Functions::
153.9921 - * ARM Built-in Functions::
153.9922 - * X86 Built-in Functions::
153.9923 - * PowerPC AltiVec Built-in Functions::
153.9924 - @end menu
153.9925 -
153.9926 -+@node Altera Nios II Built-in Functions
153.9927 -+@subsection Altera Nios II Built-in Functions
153.9928 -+
153.9929 -+These built-in functions are available for the Altera Nios II
153.9930 -+family of processors.
153.9931 -+
153.9932 -+The following built-in functions are always available. They
153.9933 -+all generate the machine instruction that is part of the name.
153.9934 -+
153.9935 -+@example
153.9936 -+int __builtin_ldbio (volatile const void *)
153.9937 -+int __builtin_ldbuio (volatile const void *)
153.9938 -+int __builtin_ldhio (volatile const void *)
153.9939 -+int __builtin_ldhuio (volatile const void *)
153.9940 -+int __builtin_ldwio (volatile const void *)
153.9941 -+void __builtin_stbio (volatile void *, int)
153.9942 -+void __builtin_sthio (volatile void *, int)
153.9943 -+void __builtin_stwio (volatile void *, int)
153.9944 -+void __builtin_sync (void)
153.9945 -+int __builtin_rdctl (int)
153.9946 -+void __builtin_wrctl (int, int)
153.9947 -+@end example
153.9948 -+
153.9949 -+The following built-in functions are always available. They
153.9950 -+all generate a Nios II Custom Instruction. The name of the
153.9951 -+function represents the types that the function takes and
153.9952 -+returns. The letter before the @code{n} is the return type
153.9953 -+or void if absent. The @code{n} represnts the first parameter
153.9954 -+to all the custom instructions, the custom instruction number.
153.9955 -+The two letters after the @code{n} represent the up to two
153.9956 -+parameters to the function.
153.9957 -+
153.9958 -+The letters reprsent the following data types:
153.9959 -+@table @code
153.9960 -+@item <no letter>
153.9961 -+@code{void} for return type and no parameter for parameter types.
153.9962 -+
153.9963 -+@item i
153.9964 -+@code{int} for return type and parameter type
153.9965 -+
153.9966 -+@item f
153.9967 -+@code{float} for return type and parameter type
153.9968 -+
153.9969 -+@item p
153.9970 -+@code{void *} for return type and parameter type
153.9971 -+
153.9972 -+@end table
153.9973 -+
153.9974 -+And the function names are:
153.9975 -+@example
153.9976 -+void __builtin_custom_n (void)
153.9977 -+void __builtin_custom_ni (int)
153.9978 -+void __builtin_custom_nf (float)
153.9979 -+void __builtin_custom_np (void *)
153.9980 -+void __builtin_custom_nii (int, int)
153.9981 -+void __builtin_custom_nif (int, float)
153.9982 -+void __builtin_custom_nip (int, void *)
153.9983 -+void __builtin_custom_nfi (float, int)
153.9984 -+void __builtin_custom_nff (float, float)
153.9985 -+void __builtin_custom_nfp (float, void *)
153.9986 -+void __builtin_custom_npi (void *, int)
153.9987 -+void __builtin_custom_npf (void *, float)
153.9988 -+void __builtin_custom_npp (void *, void *)
153.9989 -+int __builtin_custom_in (void)
153.9990 -+int __builtin_custom_ini (int)
153.9991 -+int __builtin_custom_inf (float)
153.9992 -+int __builtin_custom_inp (void *)
153.9993 -+int __builtin_custom_inii (int, int)
153.9994 -+int __builtin_custom_inif (int, float)
153.9995 -+int __builtin_custom_inip (int, void *)
153.9996 -+int __builtin_custom_infi (float, int)
153.9997 -+int __builtin_custom_inff (float, float)
153.9998 -+int __builtin_custom_infp (float, void *)
153.9999 -+int __builtin_custom_inpi (void *, int)
153.10000 -+int __builtin_custom_inpf (void *, float)
153.10001 -+int __builtin_custom_inpp (void *, void *)
153.10002 -+float __builtin_custom_fn (void)
153.10003 -+float __builtin_custom_fni (int)
153.10004 -+float __builtin_custom_fnf (float)
153.10005 -+float __builtin_custom_fnp (void *)
153.10006 -+float __builtin_custom_fnii (int, int)
153.10007 -+float __builtin_custom_fnif (int, float)
153.10008 -+float __builtin_custom_fnip (int, void *)
153.10009 -+float __builtin_custom_fnfi (float, int)
153.10010 -+float __builtin_custom_fnff (float, float)
153.10011 -+float __builtin_custom_fnfp (float, void *)
153.10012 -+float __builtin_custom_fnpi (void *, int)
153.10013 -+float __builtin_custom_fnpf (void *, float)
153.10014 -+float __builtin_custom_fnpp (void *, void *)
153.10015 -+void * __builtin_custom_pn (void)
153.10016 -+void * __builtin_custom_pni (int)
153.10017 -+void * __builtin_custom_pnf (float)
153.10018 -+void * __builtin_custom_pnp (void *)
153.10019 -+void * __builtin_custom_pnii (int, int)
153.10020 -+void * __builtin_custom_pnif (int, float)
153.10021 -+void * __builtin_custom_pnip (int, void *)
153.10022 -+void * __builtin_custom_pnfi (float, int)
153.10023 -+void * __builtin_custom_pnff (float, float)
153.10024 -+void * __builtin_custom_pnfp (float, void *)
153.10025 -+void * __builtin_custom_pnpi (void *, int)
153.10026 -+void * __builtin_custom_pnpf (void *, float)
153.10027 -+void * __builtin_custom_pnpp (void *, void *)
153.10028 -+@end example
153.10029 -+
153.10030 -+
153.10031 - @node Alpha Built-in Functions
153.10032 - @subsection Alpha Built-in Functions
153.10033 -
153.10034 ---- gcc-3.4.3/gcc/doc/invoke.texi
153.10035 -+++ gcc-3.4.3-nios2/gcc/doc/invoke.texi
153.10036 -@@ -337,6 +337,14 @@ in the following sections.
153.10037 - @item Machine Dependent Options
153.10038 - @xref{Submodel Options,,Hardware Models and Configurations}.
153.10039 -
153.10040 -+@emph{Altera Nios II Options}
153.10041 -+@gccoptlist{-msmallc -mno-bypass-cache -mbypass-cache @gol
153.10042 -+-mno-cache-volatile -mcache-volatile -mno-inline-memcpy @gol
153.10043 -+-minline-memcpy -mno-fast-sw-div -mfast-sw-div @gol
153.10044 -+-mhw-mul -mno-hw-mul -mhw-mulx -mno-hw-mulx @gol
153.10045 -+-mno-hw-div -mhw-div @gol
153.10046 -+-msys-crt0= -msys-lib= -msys=nosys }
153.10047 -+
153.10048 - @emph{M680x0 Options}
153.10049 - @gccoptlist{-m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 @gol
153.10050 - -m68060 -mcpu32 -m5200 -m68881 -mbitfield -mc68000 -mc68020 @gol
153.10051 -@@ -5836,6 +5844,7 @@ machine description. The default for th
153.10052 - that macro, which enables you to change the defaults.
153.10053 -
153.10054 - @menu
153.10055 -+* Altera Nios II Options::
153.10056 - * M680x0 Options::
153.10057 - * M68hc1x Options::
153.10058 - * VAX Options::
153.10059 -@@ -5871,6 +5880,103 @@ that macro, which enables you to change
153.10060 - * FRV Options::
153.10061 - @end menu
153.10062 -
153.10063 -+
153.10064 -+@node Altera Nios II Options
153.10065 -+@subsection Altera Nios II Options
153.10066 -+@cindex Altera Nios II options
153.10067 -+
153.10068 -+These are the @samp{-m} options defined for the Altera Nios II
153.10069 -+processor.
153.10070 -+
153.10071 -+@table @gcctabopt
153.10072 -+
153.10073 -+@item -msmallc
153.10074 -+@opindex msmallc
153.10075 -+
153.10076 -+Link with a limited version of the C library, -lsmallc. For more
153.10077 -+information see the C Library Documentation.
153.10078 -+
153.10079 -+
153.10080 -+@item -mbypass-cache
153.10081 -+@itemx -mno-bypass-cache
153.10082 -+@opindex mno-bypass-cache
153.10083 -+@opindex mbypass-cache
153.10084 -+
153.10085 -+Force all load and store instructions to always bypass cache by
153.10086 -+using io variants of the instructions. The default is to not
153.10087 -+bypass the cache.
153.10088 -+
153.10089 -+@item -mno-cache-volatile
153.10090 -+@itemx -mcache-volatile
153.10091 -+@opindex mcache-volatile
153.10092 -+@opindex mno-cache-volatile
153.10093 -+
153.10094 -+Volatile memory access bypass the cache using the io variants of
153.10095 -+the ld and st instructions. The default is to cache volatile
153.10096 -+accesses.
153.10097 -+
153.10098 -+-mno-cache-volatile is deprecated and will be deleted in a
153.10099 -+future GCC release.
153.10100 -+
153.10101 -+
153.10102 -+@item -mno-inline-memcpy
153.10103 -+@itemx -minline-memcpy
153.10104 -+@opindex mno-inline-memcpy
153.10105 -+@opindex minline-memcpy
153.10106 -+
153.10107 -+Do not inline memcpy. The default is to inline when -O is on.
153.10108 -+
153.10109 -+
153.10110 -+@item -mno-fast-sw-div
153.10111 -+@itemx -mfast-sw-div
153.10112 -+@opindex mno-fast-sw-div
153.10113 -+@opindex mfast-sw-div
153.10114 -+
153.10115 -+Do no use table based fast divide for small numbers. The default
153.10116 -+is to use the fast divide at -O3 and above.
153.10117 -+
153.10118 -+
153.10119 -+@item -mno-hw-mul
153.10120 -+@itemx -mhw-mul
153.10121 -+@itemx -mno-hw-mulx
153.10122 -+@itemx -mhw-mulx
153.10123 -+@itemx -mno-hw-div
153.10124 -+@itemx -mhw-div
153.10125 -+@opindex mno-hw-mul
153.10126 -+@opindex mhw-mul
153.10127 -+@opindex mno-hw-mulx
153.10128 -+@opindex mhw-mulx
153.10129 -+@opindex mno-hw-div
153.10130 -+@opindex mhw-div
153.10131 -+
153.10132 -+Enable or disable emitting @code{mul}, @code{mulx} and @code{div} family of
153.10133 -+instructions by the compiler. The default is to emit @code{mul}
153.10134 -+and not emit @code{div} and @code{mulx}.
153.10135 -+
153.10136 -+The different combinations of @code{mul} and @code{mulx} instructions
153.10137 -+generate a different multilib options.
153.10138 -+
153.10139 -+
153.10140 -+@item -msys-crt0=@var{startfile}
153.10141 -+@opindex msys-crt0
153.10142 -+
153.10143 -+@var{startfile} is the file name of the startfile (crt0) to use
153.10144 -+when linking. The default is crt0.o that comes with libgloss
153.10145 -+and is only suitable for use with the instruction set
153.10146 -+simulator.
153.10147 -+
153.10148 -+@item -msys-lib=@var{systemlib}
153.10149 -+@itemx -msys-lib=nosys
153.10150 -+@opindex msys-lib
153.10151 -+
153.10152 -+@var{systemlib} is the library name of the library which provides
153.10153 -+the system calls required by the C library, e.g. @code{read}, @code{write}
153.10154 -+etc. The default is to use nosys, this library provides
153.10155 -+stub implementations of the calls and is part of libgloss.
153.10156 -+
153.10157 -+@end table
153.10158 -+
153.10159 -+
153.10160 - @node M680x0 Options
153.10161 - @subsection M680x0 Options
153.10162 - @cindex M680x0 options
153.10163 ---- gcc-3.4.3/gcc/doc/md.texi
153.10164 -+++ gcc-3.4.3-nios2/gcc/doc/md.texi
153.10165 -@@ -1335,6 +1335,49 @@ However, here is a summary of the machin
153.10166 - available on some particular machines.
153.10167 -
153.10168 - @table @emph
153.10169 -+
153.10170 -+@item Altera Nios II family---@file{nios2.h}
153.10171 -+@table @code
153.10172 -+
153.10173 -+@item I
153.10174 -+Integer that is valid as an immediate operand in an
153.10175 -+instruction taking a signed 16-bit number. Range
153.10176 -+@minus{}32768 to 32767.
153.10177 -+
153.10178 -+@item J
153.10179 -+Integer that is valid as an immediate operand in an
153.10180 -+instruction taking an unsigned 16-bit number. Range
153.10181 -+0 to 65535.
153.10182 -+
153.10183 -+@item K
153.10184 -+Integer that is valid as an immediate operand in an
153.10185 -+instruction taking only the upper 16-bits of a
153.10186 -+32-bit number. Range 32-bit numbers with the lower
153.10187 -+16-bits being 0.
153.10188 -+
153.10189 -+@item L
153.10190 -+Integer that is valid as an immediate operand for a
153.10191 -+shift instruction. Range 0 to 31.
153.10192 -+
153.10193 -+
153.10194 -+@item M
153.10195 -+Integer that is valid as an immediate operand for
153.10196 -+only the value 0. Can be used in conjunction with
153.10197 -+the format modifier @code{z} to use @code{r0}
153.10198 -+instead of @code{0} in the assembly output.
153.10199 -+
153.10200 -+@item N
153.10201 -+Integer that is valid as an immediate operand for
153.10202 -+a custom instruction opcode. Range 0 to 255.
153.10203 -+
153.10204 -+@item S
153.10205 -+Matches immediates which are addresses in the small
153.10206 -+data section and therefore can be added to @code{gp}
153.10207 -+as a 16-bit immediate to re-create their 32-bit value.
153.10208 -+
153.10209 -+@end table
153.10210 -+
153.10211 -+
153.10212 - @item ARM family---@file{arm.h}
153.10213 - @table @code
153.10214 - @item f
154.1 --- a/patches/gcc/3.4.4/arm-softfloat.patch Tue Aug 14 19:32:22 2007 +0000
154.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
154.3 @@ -1,270 +0,0 @@
154.4 -Note... modified my mjn3 to not conflict with the big endian arm patch.
154.5 -Warning!!! Only the linux target is aware of TARGET_ENDIAN_DEFAULT.
154.6 -Also changed
154.7 - #define SUBTARGET_EXTRA_ASM_SPEC "\
154.8 - %{!mcpu=*:-mcpu=xscale} \
154.9 - %{mhard-float:-mfpu=fpa} \
154.10 - %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
154.11 -to
154.12 - #define SUBTARGET_EXTRA_ASM_SPEC "\
154.13 - %{mhard-float:-mfpu=fpa} \
154.14 - %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
154.15 -in gcc/config/arm/linux-elf.h.
154.16 -#
154.17 -# Submitted:
154.18 -#
154.19 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
154.20 -#
154.21 -# Description:
154.22 -#
154.23 -# Nicholas Pitre released this patch for gcc soft-float support here:
154.24 -# http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-October/006436.html
154.25 -#
154.26 -# This version has been adapted to work with gcc 3.4.0.
154.27 -#
154.28 -# The original patch doesn't distinguish between softfpa and softvfp modes
154.29 -# in the way Nicholas Pitre probably meant. His description is:
154.30 -#
154.31 -# "Default is to use APCS-32 mode with soft-vfp. The old Linux default for
154.32 -# floats can be achieved with -mhard-float or with the configure
154.33 -# --with-float=hard option. If -msoft-float or --with-float=soft is used then
154.34 -# software float support will be used just like the default but with the legacy
154.35 -# big endian word ordering for double float representation instead."
154.36 -#
154.37 -# Which means the following:
154.38 -#
154.39 -# * If you compile without -mhard-float or -msoft-float, you should get
154.40 -# software floating point, using the VFP format. The produced object file
154.41 -# should have these flags in its header:
154.42 -#
154.43 -# private flags = 600: [APCS-32] [VFP float format] [software FP]
154.44 -#
154.45 -# * If you compile with -mhard-float, you should get hardware floating point,
154.46 -# which always uses the FPA format. Object file header flags should be:
154.47 -#
154.48 -# private flags = 0: [APCS-32] [FPA float format]
154.49 -#
154.50 -# * If you compile with -msoft-float, you should get software floating point,
154.51 -# using the FPA format. This is done for compatibility reasons with many
154.52 -# existing distributions. Object file header flags should be:
154.53 -#
154.54 -# private flags = 200: [APCS-32] [FPA float format] [software FP]
154.55 -#
154.56 -# The original patch from Nicholas Pitre contained the following constructs:
154.57 -#
154.58 -# #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
154.59 -# %{mhard-float:-mfpu=fpa} \
154.60 -# %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
154.61 -#
154.62 -# However, gcc doesn't accept this ";:" notation, used in the 3rd line. This
154.63 -# is probably the reason Robert Schwebel modified it to:
154.64 -#
154.65 -# #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
154.66 -# %{mhard-float:-mfpu=fpa} \
154.67 -# %{!mhard-float: %{msoft-float:-mfpu=softfpa -mfpu=softvfp}}"
154.68 -#
154.69 -# But this causes the following behaviour:
154.70 -#
154.71 -# * If you compile without -mhard-float or -msoft-float, the compiler generates
154.72 -# software floating point instructions, but *nothing* is passed to the
154.73 -# assembler, which results in an object file which has flags:
154.74 -#
154.75 -# private flags = 0: [APCS-32] [FPA float format]
154.76 -#
154.77 -# This is not correct!
154.78 -#
154.79 -# * If you compile with -mhard-float, the compiler generates hardware floating
154.80 -# point instructions, and passes "-mfpu=fpa" to the assembler, which results
154.81 -# in an object file which has the same flags as in the previous item, but now
154.82 -# those *are* correct.
154.83 -#
154.84 -# * If you compile with -msoft-float, the compiler generates software floating
154.85 -# point instructions, and passes "-mfpu=softfpa -mfpu=softvfp" (in that
154.86 -# order) to the assembler, which results in an object file with flags:
154.87 -#
154.88 -# private flags = 600: [APCS-32] [VFP float format] [software FP]
154.89 -#
154.90 -# This is not correct, because the last "-mfpu=" option on the assembler
154.91 -# command line determines the actual FPU convention used (which should be FPA
154.92 -# in this case).
154.93 -#
154.94 -# Therefore, I modified this patch to get the desired behaviour. Every
154.95 -# instance of the notation:
154.96 -#
154.97 -# %{msoft-float:-mfpu=softfpa -mfpu=softvfp}
154.98 -#
154.99 -# was changed to:
154.100 -#
154.101 -# %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}
154.102 -#
154.103 -# I also did the following:
154.104 -#
154.105 -# * Modified all TARGET_DEFAULT macros I could find to include ARM_FLAG_VFP, to
154.106 -# be consistent with Nicholas' original patch.
154.107 -# * Removed any "msoft-float" or "mhard-float" from all MULTILIB_DEFAULTS
154.108 -# macros I could find. I think that if you compile without any options, you
154.109 -# would like to get the defaults. :)
154.110 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
154.111 -# anymore. (The required functions are now in libgcc.)
154.112 -
154.113 -diff -urN gcc-3.4.1-old/gcc/config/arm/coff.h gcc-3.4.1/gcc/config/arm/coff.h
154.114 ---- gcc-3.4.1-old/gcc/config/arm/coff.h 2004-02-24 08:25:22.000000000 -0600
154.115 -+++ gcc-3.4.1/gcc/config/arm/coff.h 2004-09-02 21:51:15.000000000 -0500
154.116 -@@ -31,11 +31,16 @@
154.117 - #define TARGET_VERSION fputs (" (ARM/coff)", stderr)
154.118 -
154.119 - #undef TARGET_DEFAULT
154.120 --#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
154.121 -+#define TARGET_DEFAULT \
154.122 -+ ( ARM_FLAG_SOFT_FLOAT \
154.123 -+ | ARM_FLAG_VFP \
154.124 -+ | ARM_FLAG_APCS_32 \
154.125 -+ | ARM_FLAG_APCS_FRAME \
154.126 -+ | ARM_FLAG_MMU_TRAPS )
154.127 -
154.128 - #ifndef MULTILIB_DEFAULTS
154.129 - #define MULTILIB_DEFAULTS \
154.130 -- { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" }
154.131 -+ { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork" }
154.132 - #endif
154.133 -
154.134 - /* This is COFF, but prefer stabs. */
154.135 -diff -urN gcc-3.4.1-old/gcc/config/arm/elf.h gcc-3.4.1/gcc/config/arm/elf.h
154.136 ---- gcc-3.4.1-old/gcc/config/arm/elf.h 2004-02-24 08:25:22.000000000 -0600
154.137 -+++ gcc-3.4.1/gcc/config/arm/elf.h 2004-09-02 21:51:15.000000000 -0500
154.138 -@@ -46,7 +46,9 @@
154.139 -
154.140 - #ifndef SUBTARGET_ASM_FLOAT_SPEC
154.141 - #define SUBTARGET_ASM_FLOAT_SPEC "\
154.142 --%{mapcs-float:-mfloat} %{msoft-float:-mfpu=softfpa}"
154.143 -+%{mapcs-float:-mfloat} \
154.144 -+%{mhard-float:-mfpu=fpa} \
154.145 -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
154.146 - #endif
154.147 -
154.148 - #ifndef ASM_SPEC
154.149 -@@ -106,12 +108,17 @@
154.150 - #endif
154.151 -
154.152 - #ifndef TARGET_DEFAULT
154.153 --#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
154.154 -+#define TARGET_DEFAULT \
154.155 -+ ( ARM_FLAG_SOFT_FLOAT \
154.156 -+ | ARM_FLAG_VFP \
154.157 -+ | ARM_FLAG_APCS_32 \
154.158 -+ | ARM_FLAG_APCS_FRAME \
154.159 -+ | ARM_FLAG_MMU_TRAPS )
154.160 - #endif
154.161 -
154.162 - #ifndef MULTILIB_DEFAULTS
154.163 - #define MULTILIB_DEFAULTS \
154.164 -- { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
154.165 -+ { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
154.166 - #endif
154.167 -
154.168 - #define TARGET_ASM_FILE_START_APP_OFF true
154.169 -diff -urN gcc-3.4.1-old/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
154.170 ---- gcc-3.4.1-old/gcc/config/arm/linux-elf.h 2004-09-02 21:50:52.000000000 -0500
154.171 -+++ gcc-3.4.1/gcc/config/arm/linux-elf.h 2004-09-02 22:00:49.000000000 -0500
154.172 -@@ -44,12 +44,26 @@
154.173 - #define TARGET_LINKER_EMULATION "armelf_linux"
154.174 - #endif
154.175 -
154.176 --/* Default is to use APCS-32 mode. */
154.177 -+/*
154.178 -+ * Default is to use APCS-32 mode with soft-vfp.
154.179 -+ * The old Linux default for floats can be achieved with -mhard-float
154.180 -+ * or with the configure --with-float=hard option.
154.181 -+ * If -msoft-float or --with-float=soft is used then software float
154.182 -+ * support will be used just like the default but with the legacy
154.183 -+ * big endian word ordering for double float representation instead.
154.184 -+ */
154.185 - #undef TARGET_DEFAULT
154.186 --#define TARGET_DEFAULT \
154.187 -- ( ARM_FLAG_APCS_32 | \
154.188 -- ARM_FLAG_MMU_TRAPS | \
154.189 -- TARGET_ENDIAN_DEFAULT )
154.190 -+#define TARGET_DEFAULT \
154.191 -+ ( ARM_FLAG_APCS_32 \
154.192 -+ | ARM_FLAG_SOFT_FLOAT \
154.193 -+ | TARGET_ENDIAN_DEFAULT \
154.194 -+ | ARM_FLAG_VFP \
154.195 -+ | ARM_FLAG_MMU_TRAPS )
154.196 -+
154.197 -+#undef SUBTARGET_EXTRA_ASM_SPEC
154.198 -+#define SUBTARGET_EXTRA_ASM_SPEC "\
154.199 -+%{mhard-float:-mfpu=fpa} \
154.200 -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
154.201 -
154.202 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
154.203 -
154.204 -@@ -57,7 +71,7 @@
154.205 -
154.206 - #undef MULTILIB_DEFAULTS
154.207 - #define MULTILIB_DEFAULTS \
154.208 -- { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
154.209 -+ { "marm", TARGET_ENDIAN_OPTION, "mapcs-32", "mno-thumb-interwork" }
154.210 -
154.211 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
154.212 -
154.213 -@@ -72,7 +86,7 @@
154.214 - %{shared:-lc} \
154.215 - %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
154.216 -
154.217 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
154.218 -+#define LIBGCC_SPEC "-lgcc"
154.219 -
154.220 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
154.221 - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
154.222 -diff -urN gcc-3.4.1-old/gcc/config/arm/t-linux gcc-3.4.1/gcc/config/arm/t-linux
154.223 ---- gcc-3.4.1-old/gcc/config/arm/t-linux 2003-09-20 16:09:07.000000000 -0500
154.224 -+++ gcc-3.4.1/gcc/config/arm/t-linux 2004-09-02 21:51:15.000000000 -0500
154.225 -@@ -4,7 +4,10 @@
154.226 - LIBGCC2_DEBUG_CFLAGS = -g0
154.227 -
154.228 - LIB1ASMSRC = arm/lib1funcs.asm
154.229 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
154.230 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
154.231 -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
154.232 -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
154.233 -+ _fixsfsi _fixunssfsi
154.234 -
154.235 - # MULTILIB_OPTIONS = mhard-float/msoft-float
154.236 - # MULTILIB_DIRNAMES = hard-float soft-float
154.237 -diff -urN gcc-3.4.1-old/gcc/config/arm/unknown-elf.h gcc-3.4.1/gcc/config/arm/unknown-elf.h
154.238 ---- gcc-3.4.1-old/gcc/config/arm/unknown-elf.h 2004-02-24 08:25:22.000000000 -0600
154.239 -+++ gcc-3.4.1/gcc/config/arm/unknown-elf.h 2004-09-02 21:51:15.000000000 -0500
154.240 -@@ -30,7 +30,12 @@
154.241 -
154.242 - /* Default to using APCS-32 and software floating point. */
154.243 - #ifndef TARGET_DEFAULT
154.244 --#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
154.245 -+#define TARGET_DEFAULT \
154.246 -+ ( ARM_FLAG_SOFT_FLOAT \
154.247 -+ | ARM_FLAG_VFP \
154.248 -+ | ARM_FLAG_APCS_32 \
154.249 -+ | ARM_FLAG_APCS_FRAME \
154.250 -+ | ARM_FLAG_MMU_TRAPS )
154.251 - #endif
154.252 -
154.253 - /* Now we define the strings used to build the spec file. */
154.254 -diff -urN gcc-3.4.1-old/gcc/config/arm/xscale-elf.h gcc-3.4.1/gcc/config/arm/xscale-elf.h
154.255 ---- gcc-3.4.1-old/gcc/config/arm/xscale-elf.h 2003-07-01 18:26:43.000000000 -0500
154.256 -+++ gcc-3.4.1/gcc/config/arm/xscale-elf.h 2004-09-02 21:51:15.000000000 -0500
154.257 -@@ -49,11 +49,12 @@
154.258 - endian, regardless of the endian-ness of the memory
154.259 - system. */
154.260 -
154.261 --#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
154.262 -- %{mhard-float:-mfpu=fpa} \
154.263 -- %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
154.264 -+#define SUBTARGET_EXTRA_ASM_SPEC "\
154.265 -+%{!mcpu=*:-mcpu=xscale} \
154.266 -+%{mhard-float:-mfpu=fpa} \
154.267 -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
154.268 -
154.269 - #ifndef MULTILIB_DEFAULTS
154.270 - #define MULTILIB_DEFAULTS \
154.271 -- { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }
154.272 -+ { "mlittle-endian", "mno-thumb-interwork", "marm" }
154.273 - #endif
155.1 --- a/patches/gcc/3.4.4/fix-fixincl.patch Tue Aug 14 19:32:22 2007 +0000
155.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
155.3 @@ -1,70 +0,0 @@
155.4 -See http://gcc.gnu.org/PR22541
155.5 -
155.6 -From: Dan Kegel
155.7 -
155.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
155.9 -(the only two I've tried like this), the configure script happily copies
155.10 -the glibc include files from include to sys-include; here's the line
155.11 -from the log file (with $PREFIX instead of the real prefix):
155.12 -
155.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
155.14 -
155.15 -But later, when running fixincludes, it gives the error message
155.16 - The directory that should contain system headers does not exist:
155.17 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
155.18 -
155.19 -Nevertheless, it continues building; the header files it installs in
155.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
155.21 -do not include the boilerplate that would cause it to #include_next the
155.22 -glibc headers in the system header directory.
155.23 -Thus the resulting toolchain can't compile the following program:
155.24 -#include <limits.h>
155.25 -int x = PATH_MAX;
155.26 -because its limits.h doesn't include the glibc header.
155.27 -
155.28 -That's not nice. I suspect the problem is that gcc/Makefile.in assumes that
155.29 -it can refer to $PREFIX/i686-unknown-linux-gnu with the path
155.30 - $PREFIX/lib/../i686-unknown-linux-gnu, but
155.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
155.32 -it is only created later, during 'make install'. (Which makes this problem
155.33 -confusing, since one only notices the breakage well after 'make install',
155.34 -at which point the path configure complained about does exist, and has the
155.35 -right stuff in it.)
155.36 -
155.37 -A possible fix is to replace the line in gcc/Makefile.in that says
155.38 - SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
155.39 -with a version that gets rid of extra ..'s, e.g.
155.40 - SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
155.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
155.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
155.43 -
155.44 -
155.45 ---- gcc-3.4.3/gcc/Makefile.in.foo 2005-05-20 11:41:39.000000000 -0700
155.46 -+++ gcc-3.4.3/gcc/Makefile.in 2005-05-20 12:08:46.000000000 -0700
155.47 -@@ -350,7 +350,10 @@
155.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
155.49 -
155.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
155.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
155.52 -+# Purge it of unneccessary internal relative paths
155.53 -+# to directories that might not exist yet.
155.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
155.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
155.56 -
155.57 - # Control whether to run fixproto and fixincludes.
155.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
155.59 -@@ -2532,11 +2535,13 @@
155.60 - $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
155.61 -
155.62 - # Build fixed copies of system files.
155.63 -+# Abort if no system headers available, unless building a crosscompiler.
155.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
155.65 - stmp-fixinc: fixinc.sh gsyslimits.h
155.66 - @if test ! -d ${SYSTEM_HEADER_DIR}; then \
155.67 - echo The directory that should contain system headers does not exist: >&2 ; \
155.68 - echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
155.69 -- if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
155.70 -+ if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
155.71 - then sleep 1; else exit 1; fi; \
155.72 - fi
155.73 - rm -rf include; mkdir include
156.1 --- a/patches/gcc/3.4.5/fix-fixincl.patch Tue Aug 14 19:32:22 2007 +0000
156.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
156.3 @@ -1,70 +0,0 @@
156.4 -See http://gcc.gnu.org/PR22541
156.5 -
156.6 -From: Dan Kegel
156.7 -
156.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
156.9 -(the only two I've tried like this), the configure script happily copies
156.10 -the glibc include files from include to sys-include; here's the line
156.11 -from the log file (with $PREFIX instead of the real prefix):
156.12 -
156.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
156.14 -
156.15 -But later, when running fixincludes, it gives the error message
156.16 - The directory that should contain system headers does not exist:
156.17 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
156.18 -
156.19 -Nevertheless, it continues building; the header files it installs in
156.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
156.21 -do not include the boilerplate that would cause it to #include_next the
156.22 -glibc headers in the system header directory.
156.23 -Thus the resulting toolchain can't compile the following program:
156.24 -#include <limits.h>
156.25 -int x = PATH_MAX;
156.26 -because its limits.h doesn't include the glibc header.
156.27 -
156.28 -That's not nice. I suspect the problem is that gcc/Makefile.in assumes that
156.29 -it can refer to $PREFIX/i686-unknown-linux-gnu with the path
156.30 - $PREFIX/lib/../i686-unknown-linux-gnu, but
156.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
156.32 -it is only created later, during 'make install'. (Which makes this problem
156.33 -confusing, since one only notices the breakage well after 'make install',
156.34 -at which point the path configure complained about does exist, and has the
156.35 -right stuff in it.)
156.36 -
156.37 -A possible fix is to replace the line in gcc/Makefile.in that says
156.38 - SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
156.39 -with a version that gets rid of extra ..'s, e.g.
156.40 - SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
156.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
156.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
156.43 -
156.44 -
156.45 ---- gcc-3.4.3/gcc/Makefile.in.foo 2005-05-20 11:41:39.000000000 -0700
156.46 -+++ gcc-3.4.3/gcc/Makefile.in 2005-05-20 12:08:46.000000000 -0700
156.47 -@@ -350,7 +350,10 @@
156.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
156.49 -
156.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
156.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
156.52 -+# Purge it of unneccessary internal relative paths
156.53 -+# to directories that might not exist yet.
156.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
156.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
156.56 -
156.57 - # Control whether to run fixproto and fixincludes.
156.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
156.59 -@@ -2532,11 +2535,13 @@
156.60 - $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
156.61 -
156.62 - # Build fixed copies of system files.
156.63 -+# Abort if no system headers available, unless building a crosscompiler.
156.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
156.65 - stmp-fixinc: fixinc.sh gsyslimits.h
156.66 - @if test ! -d ${SYSTEM_HEADER_DIR}; then \
156.67 - echo The directory that should contain system headers does not exist: >&2 ; \
156.68 - echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
156.69 -- if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
156.70 -+ if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
156.71 - then sleep 1; else exit 1; fi; \
156.72 - fi
156.73 - rm -rf include; mkdir include
157.1 --- a/patches/gcc/3.4.5/gcc-3.4.0-arm-bigendian.patch Tue Aug 14 19:32:22 2007 +0000
157.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
157.3 @@ -1,82 +0,0 @@
157.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
157.5 -Adds support for arm*b-linux* big-endian ARM targets
157.6 -
157.7 -Fixes build error
157.8 -
157.9 -/opt/crosstool/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/armeb-unknown-linux-gnu/bin/ld: unrecognised emulation mode: armelf_linux
157.10 -Supported emulations: armelfb_linux armelfb
157.11 -collect2: ld returned 1 exit status
157.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/build-glibc/csu/crt1.o] Error 1
157.13 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3/csu'
157.14 -make[1]: *** [csu/subdir_lib] Error 2
157.15 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3'
157.16 -make: *** [all] Error 2
157.17 -
157.18 -
157.19 -See http://gcc.gnu.org/PR16350
157.20 -
157.21 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
157.22 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
157.23 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-07-02 14:46:29.225443757 +0200
157.24 -@@ -30,17 +30,34 @@
157.25 - /* Do not assume anything about header files. */
157.26 - #define NO_IMPLICIT_EXTERN_C
157.27 -
157.28 -+/*
157.29 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
157.30 -+ * (big endian) configurations.
157.31 -+ */
157.32 -+#if TARGET_BIG_ENDIAN_DEFAULT
157.33 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
157.34 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
157.35 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
157.36 -+#else
157.37 -+#define TARGET_ENDIAN_DEFAULT 0
157.38 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
157.39 -+#define TARGET_LINKER_EMULATION "armelf_linux"
157.40 -+#endif
157.41 -+
157.42 - /* Default is to use APCS-32 mode. */
157.43 - #undef TARGET_DEFAULT
157.44 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
157.45 -+#define TARGET_DEFAULT \
157.46 -+ ( ARM_FLAG_APCS_32 | \
157.47 -+ ARM_FLAG_MMU_TRAPS | \
157.48 -+ TARGET_ENDIAN_DEFAULT )
157.49 -
157.50 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
157.51 -
157.52 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
157.53 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
157.54 -
157.55 - #undef MULTILIB_DEFAULTS
157.56 - #define MULTILIB_DEFAULTS \
157.57 -- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
157.58 -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
157.59 -
157.60 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
157.61 -
157.62 -@@ -89,7 +106,7 @@
157.63 - %{rdynamic:-export-dynamic} \
157.64 - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
157.65 - -X \
157.66 -- %{mbig-endian:-EB}" \
157.67 -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
157.68 - SUBTARGET_EXTRA_LINK_SPEC
157.69 -
157.70 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
157.71 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
157.72 ---- gcc-3.4.0.orig/gcc/config.gcc 2004-04-17 04:28:24.000000000 +0200
157.73 -+++ gcc-3.4.0/gcc/config.gcc 2004-07-02 14:44:40.045822542 +0200
157.74 -@@ -666,6 +666,11 @@
157.75 - ;;
157.76 - arm*-*-linux*) # ARM GNU/Linux with ELF
157.77 - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
157.78 -+ case $target in
157.79 -+ arm*b-*)
157.80 -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
157.81 -+ ;;
157.82 -+ esac
157.83 - tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
157.84 - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
157.85 - gnu_ld=yes
158.1 --- a/patches/gcc/3.4.5/gcc-3.4.0-arm-lib1asm.patch Tue Aug 14 19:32:22 2007 +0000
158.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
158.3 @@ -1,27 +0,0 @@
158.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
158.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
158.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
158.7 -# Fixes errors like the following when building glibc (or any other executable
158.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
158.9 -#
158.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
158.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
158.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
158.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
158.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
158.15 -
158.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
158.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200
158.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux 2004-05-01 20:31:59.102846400 +0200
158.19 -@@ -4,7 +4,10 @@
158.20 - LIBGCC2_DEBUG_CFLAGS = -g0
158.21 -
158.22 - LIB1ASMSRC = arm/lib1funcs.asm
158.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
158.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
158.25 -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
158.26 -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
158.27 -+ _fixsfsi _fixunssfsi
158.28 -
158.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
158.30 - # MULTILIB_DIRNAMES = hard-float soft-float
159.1 --- a/patches/gcc/3.4.5/gcc-3.4.0-arm-nolibfloat.patch Tue Aug 14 19:32:22 2007 +0000
159.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
159.3 @@ -1,24 +0,0 @@
159.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
159.5 -#
159.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
159.7 -# anymore. (The required functions are now in libgcc.)
159.8 -#
159.9 -# Fixes errors like
159.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
159.11 -# collect2: ld returned 1 exit status
159.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
159.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
159.14 -
159.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
159.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
159.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-05-01 19:19:06.935979200 +0200
159.18 -@@ -55,7 +73,7 @@
159.19 - %{shared:-lc} \
159.20 - %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
159.21 -
159.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
159.23 -+#define LIBGCC_SPEC "-lgcc"
159.24 -
159.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
159.26 - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
159.27 -
160.1 --- a/patches/gcc/3.4.5/pr15068-fix.patch Tue Aug 14 19:32:22 2007 +0000
160.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
160.3 @@ -1,44 +0,0 @@
160.4 -See http://gcc.gnu.org/PR15068
160.5 -
160.6 -Fixes error
160.7 -
160.8 -../sysdeps/generic/s_fmax.c: In function `__fmax':
160.9 -../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
160.10 -Please submit a full bug report,
160.11 -with preprocessed source if appropriate.
160.12 -See <URL:http://gcc.gnu.org/bugs.html> for instructions.
160.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
160.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
160.15 -make[1]: *** [math/others] Error 2
160.16 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
160.17 -make: *** [all] Error 2
160.18 -
160.19 -[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
160.20 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
160.21 -
160.22 ---- gcc-3.4.1/gcc/flow.c.old 2004-02-27 19:39:19.000000000 -0800
160.23 -+++ gcc-3.4.1/gcc/flow.c 2004-08-26 07:29:46.000000000 -0700
160.24 -@@ -1878,6 +1878,7 @@
160.25 - rtx set_src = SET_SRC (pc_set (BB_END (bb)));
160.26 - rtx cond_true = XEXP (set_src, 0);
160.27 - rtx reg = XEXP (cond_true, 0);
160.28 -+ enum rtx_code inv_cond;
160.29 -
160.30 - if (GET_CODE (reg) == SUBREG)
160.31 - reg = SUBREG_REG (reg);
160.32 -@@ -1886,11 +1887,13 @@
160.33 - in the form of a comparison of a register against zero.
160.34 - If the condition is more complex than that, then it is safe
160.35 - not to record any information. */
160.36 -- if (GET_CODE (reg) == REG
160.37 -+ inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
160.38 -+ if (inv_cond != UNKNOWN
160.39 -+ && GET_CODE (reg) == REG
160.40 - && XEXP (cond_true, 1) == const0_rtx)
160.41 - {
160.42 - rtx cond_false
160.43 -- = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
160.44 -+ = gen_rtx_fmt_ee (inv_cond,
160.45 - GET_MODE (cond_true), XEXP (cond_true, 0),
160.46 - XEXP (cond_true, 1));
160.47 - if (GET_CODE (XEXP (set_src, 1)) == PC)
161.1 --- a/patches/gdb/6.2.1/100-uclibc-conf.patch Tue Aug 14 19:32:22 2007 +0000
161.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
161.3 @@ -1,290 +0,0 @@
161.4 -diff -urN gdb-6.2-dist/bfd/config.bfd gdb-6.2/bfd/config.bfd
161.5 ---- gdb-6.2-dist/bfd/config.bfd 2004-07-09 07:32:35.000000000 -0500
161.6 -+++ gdb-6.2/bfd/config.bfd 2004-08-08 04:23:19.000000000 -0500
161.7 -@@ -129,7 +129,7 @@
161.8 - targ_defvec=ecoffalpha_little_vec
161.9 - targ_selvecs=bfd_elf64_alpha_vec
161.10 - ;;
161.11 -- alpha*-*-linux-gnu* | alpha*-*-elf*)
161.12 -+ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*)
161.13 - targ_defvec=bfd_elf64_alpha_vec
161.14 - targ_selvecs=ecoffalpha_little_vec
161.15 - ;;
161.16 -@@ -139,7 +139,7 @@
161.17 - alpha*-*-*)
161.18 - targ_defvec=ecoffalpha_little_vec
161.19 - ;;
161.20 -- ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
161.21 -+ ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu | ia64*-*-linux-uclibc*)
161.22 - targ_defvec=bfd_elf64_ia64_little_vec
161.23 - targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
161.24 - ;;
161.25 -@@ -216,7 +216,7 @@
161.26 - targ_defvec=bfd_elf32_littlearm_vec
161.27 - targ_selvecs=bfd_elf32_bigarm_vec
161.28 - ;;
161.29 -- armeb-*-elf | arm*b-*-linux-gnu*)
161.30 -+ armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*)
161.31 - targ_defvec=bfd_elf32_bigarm_vec
161.32 - targ_selvecs=bfd_elf32_littlearm_vec
161.33 - ;;
161.34 -@@ -224,7 +224,7 @@
161.35 - targ_defvec=bfd_elf32_littlearm_vec
161.36 - targ_selvecs=bfd_elf32_bigarm_vec
161.37 - ;;
161.38 -- arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
161.39 -+ arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | arm*-*-conix* | \
161.40 - arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks)
161.41 - targ_defvec=bfd_elf32_littlearm_vec
161.42 - targ_selvecs=bfd_elf32_bigarm_vec
161.43 -@@ -373,7 +373,7 @@
161.44 - ;;
161.45 -
161.46 - #ifdef BFD64
161.47 -- hppa*64*-*-linux-gnu*)
161.48 -+ hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)
161.49 - targ_defvec=bfd_elf64_hppa_linux_vec
161.50 - targ_selvecs=bfd_elf64_hppa_vec
161.51 - ;;
161.52 -@@ -384,7 +384,7 @@
161.53 - ;;
161.54 - #endif
161.55 -
161.56 -- hppa*-*-linux-gnu* | hppa*-*-netbsd*)
161.57 -+ hppa*-*-linux-gnu* | hppa*-*-netbsd* | hppa*-*-linux-uclibc*)
161.58 - targ_defvec=bfd_elf32_hppa_linux_vec
161.59 - targ_selvecs=bfd_elf32_hppa_vec
161.60 - ;;
161.61 -@@ -507,7 +507,7 @@
161.62 - targ_selvecs=bfd_elf32_i386_vec
161.63 - targ_underscore=yes
161.64 - ;;
161.65 -- i[3-7]86-*-linux-gnu*)
161.66 -+ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
161.67 - targ_defvec=bfd_elf32_i386_vec
161.68 - targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
161.69 - targ64_selvecs=bfd_elf64_x86_64_vec
161.70 -@@ -521,7 +521,7 @@
161.71 - targ_defvec=bfd_elf64_x86_64_vec
161.72 - targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
161.73 - ;;
161.74 -- x86_64-*-linux-gnu*)
161.75 -+ x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*)
161.76 - targ_defvec=bfd_elf64_x86_64_vec
161.77 - targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
161.78 - ;;
161.79 -@@ -691,7 +691,7 @@
161.80 - targ_defvec=hp300hpux_vec
161.81 - targ_underscore=yes
161.82 - ;;
161.83 -- m68*-*-linux*aout*)
161.84 -+ m68*-*-linux*aout* | m68*-*-linux-uclibc*)
161.85 - targ_defvec=m68klinux_vec
161.86 - targ_selvecs=bfd_elf32_m68k_vec
161.87 - targ_underscore=yes
161.88 -@@ -972,8 +972,8 @@
161.89 - ;;
161.90 - #endif
161.91 - powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
161.92 -- powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
161.93 -- powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
161.94 -+ powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | powerpc-*-rtems* | \
161.95 -+ powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss* )
161.96 - targ_defvec=bfd_elf32_powerpc_vec
161.97 - targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
161.98 - targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
161.99 -@@ -1009,8 +1009,8 @@
161.100 - targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
161.101 - ;;
161.102 - powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
161.103 -- powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
161.104 -- powerpcle-*-rtems*)
161.105 -+ powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* | \
161.106 -+ powerpcle-*-vxworks* | powerpcle-*-rtems*)
161.107 - targ_defvec=bfd_elf32_powerpcle_vec
161.108 - targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
161.109 - targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
161.110 -@@ -1177,7 +1177,7 @@
161.111 - targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
161.112 - targ_underscore=yes
161.113 - ;;
161.114 -- sparc-*-linux-gnu*)
161.115 -+ sparc-*-linux-gnu* | sparc-*-linux-uclibc*)
161.116 - targ_defvec=bfd_elf32_sparc_vec
161.117 - targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
161.118 - ;;
161.119 -@@ -1224,7 +1224,7 @@
161.120 - targ_defvec=sunos_big_vec
161.121 - targ_underscore=yes
161.122 - ;;
161.123 -- sparc64-*-linux-gnu*)
161.124 -+ sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)
161.125 - targ_defvec=bfd_elf64_sparc_vec
161.126 - targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
161.127 - ;;
161.128 -@@ -1293,7 +1293,7 @@
161.129 - targ_underscore=yes
161.130 - ;;
161.131 -
161.132 -- vax-*-linux-gnu*)
161.133 -+ vax-*-linux-gnu* | vax-*-linux-uclibc*)
161.134 - targ_defvec=bfd_elf32_vax_vec
161.135 - ;;
161.136 -
161.137 -diff -urN gdb-6.2-dist/bfd/configure gdb-6.2/bfd/configure
161.138 ---- gdb-6.2-dist/bfd/configure 2004-07-07 12:28:45.000000000 -0500
161.139 -+++ gdb-6.2/bfd/configure 2004-08-08 04:27:01.000000000 -0500
161.140 -@@ -1698,6 +1698,11 @@
161.141 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
161.142 - ;;
161.143 -
161.144 -+linux-uclibc*)
161.145 -+ lt_cv_deplibs_check_method=pass_all
161.146 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
161.147 -+ ;;
161.148 -+
161.149 - netbsd*)
161.150 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
161.151 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
161.152 -@@ -5264,7 +5269,7 @@
161.153 - alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
161.154 - COREFILE=''
161.155 - ;;
161.156 -- alpha*-*-linux-gnu*)
161.157 -+ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
161.158 - COREFILE=trad-core.lo
161.159 - TRAD_HEADER='"hosts/alphalinux.h"'
161.160 - ;;
161.161 -@@ -5328,7 +5333,7 @@
161.162 - COREFILE=trad-core.lo
161.163 - TRAD_HEADER='"hosts/i386mach3.h"'
161.164 - ;;
161.165 -- i[3-7]86-*-linux-gnu*)
161.166 -+ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
161.167 - COREFILE=trad-core.lo
161.168 - TRAD_HEADER='"hosts/i386linux.h"'
161.169 - ;;
161.170 -@@ -5366,7 +5371,7 @@
161.171 - COREFILE=trad-core.lo
161.172 - TRAD_HEADER='"hosts/hp300bsd.h"'
161.173 - ;;
161.174 -- m68*-*-linux-gnu*)
161.175 -+ m68*-*-linux-gnu* | m68*-*-linux-uclibc)
161.176 - COREFILE=trad-core.lo
161.177 - TRAD_HEADER='"hosts/m68klinux.h"'
161.178 - ;;
161.179 -@@ -5470,7 +5475,7 @@
161.180 - COREFILE=trad-core.lo
161.181 - TRAD_HEADER='"hosts/vaxult2.h"'
161.182 - ;;
161.183 -- vax-*-linux-gnu*)
161.184 -+ vax-*-linux-gnu* | vax-*-linux-uclibc*)
161.185 - COREFILE=trad-core.lo
161.186 - TRAD_HEADER='"hosts/vaxlinux.h"'
161.187 - ;;
161.188 -diff -urN gdb-6.2-dist/bfd/configure.in gdb-6.2/bfd/configure.in
161.189 ---- gdb-6.2-dist/bfd/configure.in 2004-07-07 12:28:45.000000000 -0500
161.190 -+++ gdb-6.2/bfd/configure.in 2004-08-08 04:28:07.000000000 -0500
161.191 -@@ -164,7 +164,7 @@
161.192 - alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
161.193 - COREFILE=''
161.194 - ;;
161.195 -- alpha*-*-linux-gnu*)
161.196 -+ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
161.197 - COREFILE=trad-core.lo
161.198 - TRAD_HEADER='"hosts/alphalinux.h"'
161.199 - ;;
161.200 -@@ -249,7 +249,7 @@
161.201 - TRAD_HEADER='"hosts/i386mach3.h"'
161.202 - ;;
161.203 - changequote(,)dnl
161.204 -- i[3-7]86-*-linux-gnu*)
161.205 -+ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
161.206 - changequote([,])dnl
161.207 - COREFILE=trad-core.lo
161.208 - TRAD_HEADER='"hosts/i386linux.h"'
161.209 -@@ -290,7 +290,7 @@
161.210 - COREFILE=trad-core.lo
161.211 - TRAD_HEADER='"hosts/hp300bsd.h"'
161.212 - ;;
161.213 -- m68*-*-linux-gnu*)
161.214 -+ m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
161.215 - COREFILE=trad-core.lo
161.216 - TRAD_HEADER='"hosts/m68klinux.h"'
161.217 - ;;
161.218 -@@ -378,7 +378,7 @@
161.219 - COREFILE=trad-core.lo
161.220 - TRAD_HEADER='"hosts/vaxult2.h"'
161.221 - ;;
161.222 -- vax-*-linux-gnu*)
161.223 -+ vax-*-linux-gnu* | vax-*-linux-uclibc*)
161.224 - COREFILE=trad-core.lo
161.225 - TRAD_HEADER='"hosts/vaxlinux.h"'
161.226 - ;;
161.227 -diff -urN gdb-6.2-dist/libtool.m4 gdb-6.2/libtool.m4
161.228 ---- gdb-6.2-dist/libtool.m4 2003-04-10 22:58:39.000000000 -0500
161.229 -+++ gdb-6.2/libtool.m4 2004-08-08 03:48:33.000000000 -0500
161.230 -@@ -645,6 +645,11 @@
161.231 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
161.232 - ;;
161.233 -
161.234 -+linux-uclibc*)
161.235 -+ lt_cv_deplibs_check_method=pass_all
161.236 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
161.237 -+ ;;
161.238 -+
161.239 - netbsd*)
161.240 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
161.241 - [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
161.242 -diff -urN gdb-6.2-dist/ltconfig gdb-6.2/ltconfig
161.243 ---- gdb-6.2-dist/ltconfig 2003-10-03 23:54:47.000000000 -0500
161.244 -+++ gdb-6.2/ltconfig 2004-08-08 03:48:33.000000000 -0500
161.245 -@@ -602,7 +602,7 @@
161.246 -
161.247 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
161.248 - case $host_os in
161.249 --linux-gnu*) ;;
161.250 -+linux-gnu*|linux-uclibc*) ;;
161.251 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
161.252 - esac
161.253 -
161.254 -@@ -1259,6 +1259,24 @@
161.255 - dynamic_linker='GNU/Linux ld.so'
161.256 - ;;
161.257 -
161.258 -+linux-uclibc*)
161.259 -+ version_type=linux
161.260 -+ need_lib_prefix=no
161.261 -+ need_version=no
161.262 -+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
161.263 -+ soname_spec='${libname}${release}.so$major'
161.264 -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
161.265 -+ shlibpath_var=LD_LIBRARY_PATH
161.266 -+ shlibpath_overrides_runpath=no
161.267 -+ # This implies no fast_install, which is unacceptable.
161.268 -+ # Some rework will be needed to allow for fast_install
161.269 -+ # before this can be enabled.
161.270 -+ # Note: copied from linux-gnu, and may not be appropriate.
161.271 -+ hardcode_into_libs=yes
161.272 -+ # Assume using the uClibc dynamic linker.
161.273 -+ dynamic_linker="uClibc ld.so"
161.274 -+ ;;
161.275 -+
161.276 - netbsd*)
161.277 - need_lib_prefix=no
161.278 - need_version=no
161.279 -diff -urN gdb-6.2-dist/opcodes/configure gdb-6.2/opcodes/configure
161.280 ---- gdb-6.2-dist/opcodes/configure 2004-07-07 12:28:53.000000000 -0500
161.281 -+++ gdb-6.2/opcodes/configure 2004-08-08 04:53:55.000000000 -0500
161.282 -@@ -1701,6 +1701,11 @@
161.283 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
161.284 - ;;
161.285 -
161.286 -+linux-uclibc*)
161.287 -+ lt_cv_deplibs_check_method=pass_all
161.288 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
161.289 -+ ;;
161.290 -+
161.291 - netbsd*)
161.292 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
161.293 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
162.1 --- a/patches/gdb/6.2.1/200-uclibc-readline-conf.patch Tue Aug 14 19:32:22 2007 +0000
162.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
162.3 @@ -1,15 +0,0 @@
162.4 ---- gdb-6.1.1-dist/readline/configure 2003-05-27 18:29:47.000000000 -0500
162.5 -+++ gdb-6.1.1/readline/configure 2004-08-09 14:20:23.000000000 -0500
162.6 -@@ -6249,7 +6249,12 @@
162.7 -
162.8 -
162.9 - echo "$as_me:$LINENO: checking for mbstate_t" >&5
162.10 -+echo $ECHO_N "bash_cv_have_mbstate_t=$bash_cv_have_mbstate_t" >&6
162.11 - echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
162.12 -+if test "${bash_cv_have_mbstate_t+set}" != set; then
162.13 -+ bash_cv_have_mbstate_t=yes
162.14 -+ echo $ECHO_N "WARNING!! forcing to yes!!! $ECHO_C" >&6
162.15 -+fi
162.16 - if test "${bash_cv_have_mbstate_t+set}" = set; then
162.17 - echo $ECHO_N "(cached) $ECHO_C" >&6
162.18 - else
163.1 --- a/patches/gdb/6.2.1/400-mips-coredump.patch-2.4.23-29 Tue Aug 14 19:32:22 2007 +0000
163.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
163.3 @@ -1,28 +0,0 @@
163.4 -Sometime around 2.4.22-23, the mips pt_regs.h fields were reordered, breaking
163.5 -coredump handling by gdb for current kernels. Update the hardcoded constants
163.6 -to reflect the change.
163.7 ---- gdb-6.2.1/gdb/mips-linux-tdep.c-orig 2004-10-29 14:23:55.000000000 -0500
163.8 -+++ gdb-6.2.1/gdb/mips-linux-tdep.c 2004-10-29 14:26:44.000000000 -0500
163.9 -@@ -53,12 +53,22 @@
163.10 -
163.11 - #define EF_REG0 6
163.12 - #define EF_REG31 37
163.13 -+
163.14 -+#if 0
163.15 - #define EF_LO 38
163.16 - #define EF_HI 39
163.17 - #define EF_CP0_EPC 40
163.18 - #define EF_CP0_BADVADDR 41
163.19 - #define EF_CP0_STATUS 42
163.20 - #define EF_CP0_CAUSE 43
163.21 -+#else
163.22 -+#define EF_CP0_STATUS 38
163.23 -+#define EF_LO 39
163.24 -+#define EF_HI 40
163.25 -+#define EF_CP0_BADVADDR 41
163.26 -+#define EF_CP0_CAUSE 42
163.27 -+#define EF_CP0_EPC 43
163.28 -+#endif
163.29 -
163.30 - #define EF_SIZE 180
163.31 -
164.1 --- a/patches/gdb/6.2.1/500-thread-timeout.patch Tue Aug 14 19:32:22 2007 +0000
164.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
164.3 @@ -1,34 +0,0 @@
164.4 ---- gdb-6.3.org/gdb/gdbserver/thread-db.c 2004-10-17 02:42:00.000000000 +0900
164.5 -+++ gdb-6.3/gdb/gdbserver/thread-db.c 2005-01-27 12:19:29.000000000 +0900
164.6 -@@ -21,6 +21,7 @@
164.7 - Foundation, Inc., 59 Temple Place - Suite 330,
164.8 - Boston, MA 02111-1307, USA. */
164.9 -
164.10 -+#include <unistd.h>
164.11 - #include "server.h"
164.12 -
164.13 - #include "linux-low.h"
164.14 -@@ -142,6 +143,7 @@
164.15 - td_event_msg_t msg;
164.16 - td_err_e err;
164.17 - struct inferior_linux_data *tdata;
164.18 -+ int timeout;
164.19 -
164.20 - if (debug_threads)
164.21 - fprintf (stderr, "Thread creation event.\n");
164.22 -@@ -152,7 +154,13 @@
164.23 - In the LinuxThreads implementation, this is safe,
164.24 - because all events come from the manager thread
164.25 - (except for its own creation, of course). */
164.26 -- err = td_ta_event_getmsg (thread_agent, &msg);
164.27 -+ for (timeout = 0; timeout < 50000; timeout++)
164.28 -+ {
164.29 -+ err = td_ta_event_getmsg (thread_agent, &msg);
164.30 -+ if (err != TD_NOMSG)
164.31 -+ break;
164.32 -+ usleep(1000);
164.33 -+ }
164.34 - if (err != TD_OK)
164.35 - fprintf (stderr, "thread getmsg err: %s\n",
164.36 - thread_db_err_str (err));
164.37 -
165.1 --- a/patches/gdb/6.3/100-uclibc-conf.patch Tue Aug 14 19:32:22 2007 +0000
165.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
165.3 @@ -1,280 +0,0 @@
165.4 ---- gdb-6.3/bfd/config.bfd.orig Fri Oct 15 07:47:11 2004
165.5 -+++ gdb-6.3/bfd/config.bfd Mon Feb 28 00:04:43 2005
165.6 -@@ -129,7 +129,7 @@
165.7 - targ_defvec=ecoffalpha_little_vec
165.8 - targ_selvecs=bfd_elf64_alpha_vec
165.9 - ;;
165.10 -- alpha*-*-linux-gnu* | alpha*-*-elf*)
165.11 -+ alpha*-*-linux-* | alpha*-*-elf*)
165.12 - targ_defvec=bfd_elf64_alpha_vec
165.13 - targ_selvecs=ecoffalpha_little_vec
165.14 - ;;
165.15 -@@ -139,7 +139,7 @@
165.16 - alpha*-*-*)
165.17 - targ_defvec=ecoffalpha_little_vec
165.18 - ;;
165.19 -- ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
165.20 -+ ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
165.21 - targ_defvec=bfd_elf64_ia64_little_vec
165.22 - targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
165.23 - ;;
165.24 -@@ -216,7 +216,7 @@
165.25 - targ_defvec=bfd_elf32_littlearm_vec
165.26 - targ_selvecs=bfd_elf32_bigarm_vec
165.27 - ;;
165.28 -- armeb-*-elf | arm*b-*-linux-gnu*)
165.29 -+ armeb-*-elf | arm*b-*-linux-*)
165.30 - targ_defvec=bfd_elf32_bigarm_vec
165.31 - targ_selvecs=bfd_elf32_littlearm_vec
165.32 - ;;
165.33 -@@ -224,7 +224,7 @@
165.34 - targ_defvec=bfd_elf32_littlearm_vec
165.35 - targ_selvecs=bfd_elf32_bigarm_vec
165.36 - ;;
165.37 -- arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
165.38 -+ arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
165.39 - arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks | \
165.40 - arm*-*-eabi* )
165.41 - targ_defvec=bfd_elf32_littlearm_vec
165.42 -@@ -378,7 +378,7 @@
165.43 - ;;
165.44 -
165.45 - #ifdef BFD64
165.46 -- hppa*64*-*-linux-gnu*)
165.47 -+ hppa*64*-*-linux-*)
165.48 - targ_defvec=bfd_elf64_hppa_linux_vec
165.49 - targ_selvecs=bfd_elf64_hppa_vec
165.50 - ;;
165.51 -@@ -389,7 +389,7 @@
165.52 - ;;
165.53 - #endif
165.54 -
165.55 -- hppa*-*-linux-gnu*)
165.56 -+ hppa*-*-linux-*)
165.57 - targ_defvec=bfd_elf32_hppa_linux_vec
165.58 - targ_selvecs=bfd_elf32_hppa_vec
165.59 - ;;
165.60 -@@ -522,7 +522,7 @@
165.61 - targ_selvecs=bfd_elf32_i386_vec
165.62 - targ_underscore=yes
165.63 - ;;
165.64 -- i[3-7]86-*-linux-gnu*)
165.65 -+ i[3-7]86-*-linux-*)
165.66 - targ_defvec=bfd_elf32_i386_vec
165.67 - targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
165.68 - targ64_selvecs=bfd_elf64_x86_64_vec
165.69 -@@ -536,7 +536,7 @@
165.70 - targ_defvec=bfd_elf64_x86_64_vec
165.71 - targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
165.72 - ;;
165.73 -- x86_64-*-linux-gnu*)
165.74 -+ x86_64-*-linux-*)
165.75 - targ_defvec=bfd_elf64_x86_64_vec
165.76 - targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
165.77 - ;;
165.78 -@@ -706,7 +706,7 @@
165.79 - targ_defvec=hp300hpux_vec
165.80 - targ_underscore=yes
165.81 - ;;
165.82 -- m68*-*-linux*aout*)
165.83 -+ m68*-*-linux*aout* | m68*-*-linux-uclibc*)
165.84 - targ_defvec=m68klinux_vec
165.85 - targ_selvecs=bfd_elf32_m68k_vec
165.86 - targ_underscore=yes
165.87 -@@ -987,7 +987,7 @@
165.88 - ;;
165.89 - #endif
165.90 - powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
165.91 -- powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
165.92 -+ powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
165.93 - powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
165.94 - targ_defvec=bfd_elf32_powerpc_vec
165.95 - targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
165.96 -@@ -1024,7 +1024,7 @@
165.97 - targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
165.98 - ;;
165.99 - powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
165.100 -- powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
165.101 -+ powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks* |\
165.102 - powerpcle-*-rtems*)
165.103 - targ_defvec=bfd_elf32_powerpcle_vec
165.104 - targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
165.105 -@@ -1192,7 +1192,7 @@
165.106 - targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
165.107 - targ_underscore=yes
165.108 - ;;
165.109 -- sparc-*-linux-gnu*)
165.110 -+ sparc-*-linux-*)
165.111 - targ_defvec=bfd_elf32_sparc_vec
165.112 - targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
165.113 - ;;
165.114 -@@ -1239,7 +1239,7 @@
165.115 - targ_defvec=sunos_big_vec
165.116 - targ_underscore=yes
165.117 - ;;
165.118 -- sparc64-*-linux-gnu*)
165.119 -+ sparc64-*-linux-*)
165.120 - targ_defvec=bfd_elf64_sparc_vec
165.121 - targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
165.122 - ;;
165.123 -@@ -1308,7 +1308,7 @@
165.124 - targ_underscore=yes
165.125 - ;;
165.126 -
165.127 -- vax-*-linux-gnu*)
165.128 -+ vax-*-linux-*)
165.129 - targ_defvec=bfd_elf32_vax_vec
165.130 - ;;
165.131 -
165.132 ---- gdb-6.3/bfd/configure.orig Fri Oct 8 16:53:56 2004
165.133 -+++ gdb-6.3/bfd/configure Sun Feb 27 18:32:58 2005
165.134 -@@ -3583,6 +3583,11 @@
165.135 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
165.136 - ;;
165.137 -
165.138 -+linux-uclibc*)
165.139 -+ lt_cv_deplibs_check_method=pass_all
165.140 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
165.141 -+ ;;
165.142 -+
165.143 - netbsd* | knetbsd*-gnu)
165.144 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
165.145 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
165.146 -@@ -9914,7 +9919,7 @@
165.147 - alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
165.148 - COREFILE=''
165.149 - ;;
165.150 -- alpha*-*-linux-gnu*)
165.151 -+ alpha*-*-linux-*)
165.152 - COREFILE=trad-core.lo
165.153 - TRAD_HEADER='"hosts/alphalinux.h"'
165.154 - ;;
165.155 -@@ -9978,7 +9983,7 @@
165.156 - COREFILE=trad-core.lo
165.157 - TRAD_HEADER='"hosts/i386mach3.h"'
165.158 - ;;
165.159 -- i[3-7]86-*-linux-gnu*)
165.160 -+ i[3-7]86-*-linux-*)
165.161 - COREFILE=trad-core.lo
165.162 - TRAD_HEADER='"hosts/i386linux.h"'
165.163 - ;;
165.164 -@@ -10016,7 +10021,7 @@
165.165 - COREFILE=trad-core.lo
165.166 - TRAD_HEADER='"hosts/hp300bsd.h"'
165.167 - ;;
165.168 -- m68*-*-linux-gnu*)
165.169 -+ m68*-*-linux-*)
165.170 - COREFILE=trad-core.lo
165.171 - TRAD_HEADER='"hosts/m68klinux.h"'
165.172 - ;;
165.173 -@@ -10150,7 +10155,7 @@
165.174 - COREFILE=trad-core.lo
165.175 - TRAD_HEADER='"hosts/vaxult2.h"'
165.176 - ;;
165.177 -- vax-*-linux-gnu*)
165.178 -+ vax-*-linux-*)
165.179 - COREFILE=trad-core.lo
165.180 - TRAD_HEADER='"hosts/vaxlinux.h"'
165.181 - ;;
165.182 ---- gdb-6.3/bfd/configure.in.orig Fri Oct 8 16:53:59 2004
165.183 -+++ gdb-6.3/bfd/configure.in Sun Feb 27 18:14:41 2005
165.184 -@@ -163,7 +163,7 @@
165.185 - alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
165.186 - COREFILE=''
165.187 - ;;
165.188 -- alpha*-*-linux-gnu*)
165.189 -+ alpha*-*-linux-*)
165.190 - COREFILE=trad-core.lo
165.191 - TRAD_HEADER='"hosts/alphalinux.h"'
165.192 - ;;
165.193 -@@ -248,7 +248,7 @@
165.194 - TRAD_HEADER='"hosts/i386mach3.h"'
165.195 - ;;
165.196 - changequote(,)dnl
165.197 -- i[3-7]86-*-linux-gnu*)
165.198 -+ i[3-7]86-*-linux-*)
165.199 - changequote([,])dnl
165.200 - COREFILE=trad-core.lo
165.201 - TRAD_HEADER='"hosts/i386linux.h"'
165.202 -@@ -289,7 +289,7 @@
165.203 - COREFILE=trad-core.lo
165.204 - TRAD_HEADER='"hosts/hp300bsd.h"'
165.205 - ;;
165.206 -- m68*-*-linux-gnu*)
165.207 -+ m68*-*-linux-*)
165.208 - COREFILE=trad-core.lo
165.209 - TRAD_HEADER='"hosts/m68klinux.h"'
165.210 - ;;
165.211 -@@ -375,7 +375,7 @@
165.212 - COREFILE=trad-core.lo
165.213 - TRAD_HEADER='"hosts/vaxult2.h"'
165.214 - ;;
165.215 -- vax-*-linux-gnu*)
165.216 -+ vax-*-linux-*)
165.217 - COREFILE=trad-core.lo
165.218 - TRAD_HEADER='"hosts/vaxlinux.h"'
165.219 - ;;
165.220 ---- gdb-6.3/libtool.m4.orig Wed Jul 21 21:21:41 2004
165.221 -+++ gdb-6.3/libtool.m4 Mon Feb 28 00:08:11 2005
165.222 -@@ -653,6 +653,11 @@
165.223 - fi
165.224 - ;;
165.225 -
165.226 -+linux-uclibc*)
165.227 -+ lt_cv_deplibs_check_method=pass_all
165.228 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
165.229 -+ ;;
165.230 -+
165.231 - newsos6)
165.232 - [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
165.233 - lt_cv_file_magic_cmd=/usr/bin/file
165.234 ---- gdb-6.3/ltconfig.orig Tue Oct 5 15:34:42 2004
165.235 -+++ gdb-6.3/ltconfig Sun Feb 27 18:14:41 2005
165.236 -@@ -602,7 +602,7 @@
165.237 -
165.238 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
165.239 - case $host_os in
165.240 --linux-gnu*) ;;
165.241 -+linux-gnu*|linux-uclibc*) ;;
165.242 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
165.243 - esac
165.244 -
165.245 -@@ -1270,6 +1270,24 @@
165.246 - dynamic_linker='GNU/Linux ld.so'
165.247 - ;;
165.248 -
165.249 -+linux-uclibc*)
165.250 -+ version_type=linux
165.251 -+ need_lib_prefix=no
165.252 -+ need_version=no
165.253 -+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
165.254 -+ soname_spec='${libname}${release}.so$major'
165.255 -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
165.256 -+ shlibpath_var=LD_LIBRARY_PATH
165.257 -+ shlibpath_overrides_runpath=no
165.258 -+ # This implies no fast_install, which is unacceptable.
165.259 -+ # Some rework will be needed to allow for fast_install
165.260 -+ # before this can be enabled.
165.261 -+ # Note: copied from linux-gnu, and may not be appropriate.
165.262 -+ hardcode_into_libs=yes
165.263 -+ # Assume using the uClibc dynamic linker.
165.264 -+ dynamic_linker="uClibc ld.so"
165.265 -+ ;;
165.266 -+
165.267 - netbsd*)
165.268 - need_lib_prefix=no
165.269 - need_version=no
165.270 ---- gdb-6.3/opcodes/configure.orig Fri Sep 17 08:13:38 2004
165.271 -+++ gdb-6.3/opcodes/configure Mon Feb 28 00:09:42 2005
165.272 -@@ -3595,6 +3595,11 @@
165.273 - fi
165.274 - ;;
165.275 -
165.276 -+linux-uclibc*)
165.277 -+ lt_cv_deplibs_check_method=pass_all
165.278 -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
165.279 -+ ;;
165.280 -+
165.281 - newsos6)
165.282 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
165.283 - lt_cv_file_magic_cmd=/usr/bin/file
166.1 --- a/patches/gdb/6.3/200-uclibc-readline-conf.patch Tue Aug 14 19:32:22 2007 +0000
166.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
166.3 @@ -1,15 +0,0 @@
166.4 ---- gdb-6.1.1-dist/readline/configure 2003-05-27 18:29:47.000000000 -0500
166.5 -+++ gdb-6.1.1/readline/configure 2004-08-09 14:20:23.000000000 -0500
166.6 -@@ -6249,7 +6249,12 @@
166.7 -
166.8 -
166.9 - echo "$as_me:$LINENO: checking for mbstate_t" >&5
166.10 -+echo $ECHO_N "bash_cv_have_mbstate_t=$bash_cv_have_mbstate_t" >&6
166.11 - echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
166.12 -+if test "${bash_cv_have_mbstate_t+set}" != set; then
166.13 -+ bash_cv_have_mbstate_t=yes
166.14 -+ echo $ECHO_N "WARNING!! forcing to yes!!! $ECHO_C" >&6
166.15 -+fi
166.16 - if test "${bash_cv_have_mbstate_t+set}" = set; then
166.17 - echo $ECHO_N "(cached) $ECHO_C" >&6
166.18 - else
167.1 --- a/patches/gdb/6.3/400-mips-coredump.patch-2.4.23-29 Tue Aug 14 19:32:22 2007 +0000
167.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
167.3 @@ -1,28 +0,0 @@
167.4 -Sometime around 2.4.22-23, the mips pt_regs.h fields were reordered, breaking
167.5 -coredump handling by gdb for current kernels. Update the hardcoded constants
167.6 -to reflect the change.
167.7 ---- gdb-6.2.1/gdb/mips-linux-tdep.c-orig 2004-10-29 14:23:55.000000000 -0500
167.8 -+++ gdb-6.2.1/gdb/mips-linux-tdep.c 2004-10-29 14:26:44.000000000 -0500
167.9 -@@ -53,12 +53,22 @@
167.10 -
167.11 - #define EF_REG0 6
167.12 - #define EF_REG31 37
167.13 -+
167.14 -+#if 0
167.15 - #define EF_LO 38
167.16 - #define EF_HI 39
167.17 - #define EF_CP0_EPC 40
167.18 - #define EF_CP0_BADVADDR 41
167.19 - #define EF_CP0_STATUS 42
167.20 - #define EF_CP0_CAUSE 43
167.21 -+#else
167.22 -+#define EF_CP0_STATUS 38
167.23 -+#define EF_LO 39
167.24 -+#define EF_HI 40
167.25 -+#define EF_CP0_BADVADDR 41
167.26 -+#define EF_CP0_CAUSE 42
167.27 -+#define EF_CP0_EPC 43
167.28 -+#endif
167.29 -
167.30 - #define EF_SIZE 180
167.31 -
168.1 --- a/patches/gdb/6.3/500-thread-timeout.patch Tue Aug 14 19:32:22 2007 +0000
168.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
168.3 @@ -1,34 +0,0 @@
168.4 ---- gdb-6.3.org/gdb/gdbserver/thread-db.c 2004-10-17 02:42:00.000000000 +0900
168.5 -+++ gdb-6.3/gdb/gdbserver/thread-db.c 2005-01-27 12:19:29.000000000 +0900
168.6 -@@ -21,6 +21,7 @@
168.7 - Foundation, Inc., 59 Temple Place - Suite 330,
168.8 - Boston, MA 02111-1307, USA. */
168.9 -
168.10 -+#include <unistd.h>
168.11 - #include "server.h"
168.12 -
168.13 - #include "linux-low.h"
168.14 -@@ -142,6 +143,7 @@
168.15 - td_event_msg_t msg;
168.16 - td_err_e err;
168.17 - struct inferior_linux_data *tdata;
168.18 -+ int timeout;
168.19 -
168.20 - if (debug_threads)
168.21 - fprintf (stderr, "Thread creation event.\n");
168.22 -@@ -152,7 +154,13 @@
168.23 - In the LinuxThreads implementation, this is safe,
168.24 - because all events come from the manager thread
168.25 - (except for its own creation, of course). */
168.26 -- err = td_ta_event_getmsg (thread_agent, &msg);
168.27 -+ for (timeout = 0; timeout < 50000; timeout++)
168.28 -+ {
168.29 -+ err = td_ta_event_getmsg (thread_agent, &msg);
168.30 -+ if (err != TD_NOMSG)
168.31 -+ break;
168.32 -+ usleep(1000);
168.33 -+ }
168.34 - if (err != TD_OK)
168.35 - fprintf (stderr, "thread getmsg err: %s\n",
168.36 - thread_db_err_str (err));
168.37 -
169.1 --- a/patches/gdb/6.3/600-debian_10.selected-frame.patch Tue Aug 14 19:32:22 2007 +0000
169.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
169.3 @@ -1,552 +0,0 @@
169.4 -2004-10-11
169.5 -
169.6 -This patch is not submitted. Many of these functions should be passing
169.7 -a frame around rather than calling get_selected_frame, but at least it
169.8 -is an improvement over deprecated_selected_frame.
169.9 -
169.10 -Index: gdb-6.3/gdb/breakpoint.c
169.11 -===================================================================
169.12 ---- gdb-6.3.orig/gdb/breakpoint.c 2004-10-08 13:30:46.000000000 -0400
169.13 -+++ gdb-6.3/gdb/breakpoint.c 2004-11-09 22:55:11.231620957 -0500
169.14 -@@ -922,7 +922,7 @@ insert_bp_location (struct bp_location *
169.15 - /* FIXME drow/2003-09-09: It would be nice if evaluate_expression
169.16 - took a frame parameter, so that we didn't have to change the
169.17 - selected frame. */
169.18 -- saved_frame_id = get_frame_id (deprecated_selected_frame);
169.19 -+ saved_frame_id = get_frame_id (get_selected_frame ());
169.20 -
169.21 - /* Determine if the watchpoint is within scope. */
169.22 - if (bpt->owner->exp_valid_block == NULL)
169.23 -@@ -5464,14 +5464,9 @@ break_at_finish_at_depth_command_1 (char
169.24 -
169.25 - if (default_breakpoint_valid)
169.26 - {
169.27 -- if (deprecated_selected_frame)
169.28 -- {
169.29 -- selected_pc = get_frame_pc (deprecated_selected_frame);
169.30 -- if (arg)
169.31 -- if_arg = 1;
169.32 -- }
169.33 -- else
169.34 -- error ("No selected frame.");
169.35 -+ selected_pc = get_frame_pc (get_selected_frame ());
169.36 -+ if (arg)
169.37 -+ if_arg = 1;
169.38 - }
169.39 - else
169.40 - error ("No default breakpoint address now.");
169.41 -@@ -5542,15 +5537,10 @@ break_at_finish_command_1 (char *arg, in
169.42 - {
169.43 - if (default_breakpoint_valid)
169.44 - {
169.45 -- if (deprecated_selected_frame)
169.46 -- {
169.47 -- addr_string = xstrprintf ("*0x%s",
169.48 -- paddr_nz (get_frame_pc (deprecated_selected_frame)));
169.49 -- if (arg)
169.50 -- if_arg = 1;
169.51 -- }
169.52 -- else
169.53 -- error ("No selected frame.");
169.54 -+ addr_string = xstrprintf ("*0x%s",
169.55 -+ paddr_nz (get_frame_pc (get_selected_frame ())));
169.56 -+ if (arg)
169.57 -+ if_arg = 1;
169.58 - }
169.59 - else
169.60 - error ("No default breakpoint address now.");
169.61 -@@ -6082,7 +6072,7 @@ until_break_command (char *arg, int from
169.62 - {
169.63 - struct symtabs_and_lines sals;
169.64 - struct symtab_and_line sal;
169.65 -- struct frame_info *prev_frame = get_prev_frame (deprecated_selected_frame);
169.66 -+ struct frame_info *prev_frame = get_prev_frame (get_selected_frame ());
169.67 - struct breakpoint *breakpoint;
169.68 - struct cleanup *old_chain;
169.69 - struct continuation_arg *arg1;
169.70 -@@ -6119,7 +6109,7 @@ until_break_command (char *arg, int from
169.71 - /* Otherwise, specify the current frame, because we want to stop only
169.72 - at the very same frame. */
169.73 - breakpoint = set_momentary_breakpoint (sal,
169.74 -- get_frame_id (deprecated_selected_frame),
169.75 -+ get_frame_id (get_selected_frame ()),
169.76 - bp_until);
169.77 -
169.78 - if (!target_can_async_p ())
169.79 -Index: gdb-6.3/gdb/cli/cli-cmds.c
169.80 -===================================================================
169.81 ---- gdb-6.3.orig/gdb/cli/cli-cmds.c 2004-09-11 06:24:53.000000000 -0400
169.82 -+++ gdb-6.3/gdb/cli/cli-cmds.c 2004-11-09 22:51:07.323246218 -0500
169.83 -@@ -845,10 +845,7 @@ disassemble_command (char *arg, int from
169.84 - name = NULL;
169.85 - if (!arg)
169.86 - {
169.87 -- if (!deprecated_selected_frame)
169.88 -- error ("No frame selected.\n");
169.89 --
169.90 -- pc = get_frame_pc (deprecated_selected_frame);
169.91 -+ pc = get_frame_pc (get_selected_frame ());
169.92 - if (find_pc_partial_function (pc, &name, &low, &high) == 0)
169.93 - error ("No function contains program counter for selected frame.\n");
169.94 - #if defined(TUI)
169.95 -Index: gdb-6.3/gdb/f-valprint.c
169.96 -===================================================================
169.97 ---- gdb-6.3.orig/gdb/f-valprint.c 2003-10-14 02:51:14.000000000 -0400
169.98 -+++ gdb-6.3/gdb/f-valprint.c 2004-11-09 22:51:07.326245632 -0500
169.99 -@@ -76,7 +76,7 @@ f77_get_dynamic_lowerbound (struct type
169.100 - switch (TYPE_ARRAY_LOWER_BOUND_TYPE (type))
169.101 - {
169.102 - case BOUND_BY_VALUE_ON_STACK:
169.103 -- current_frame_addr = get_frame_base (deprecated_selected_frame);
169.104 -+ current_frame_addr = get_frame_base (get_selected_frame ());
169.105 - if (current_frame_addr > 0)
169.106 - {
169.107 - *lower_bound =
169.108 -@@ -100,7 +100,7 @@ f77_get_dynamic_lowerbound (struct type
169.109 - break;
169.110 -
169.111 - case BOUND_BY_REF_ON_STACK:
169.112 -- current_frame_addr = get_frame_base (deprecated_selected_frame);
169.113 -+ current_frame_addr = get_frame_base (get_selected_frame ());
169.114 - if (current_frame_addr > 0)
169.115 - {
169.116 - ptr_to_lower_bound =
169.117 -@@ -134,7 +134,7 @@ f77_get_dynamic_upperbound (struct type
169.118 - switch (TYPE_ARRAY_UPPER_BOUND_TYPE (type))
169.119 - {
169.120 - case BOUND_BY_VALUE_ON_STACK:
169.121 -- current_frame_addr = get_frame_base (deprecated_selected_frame);
169.122 -+ current_frame_addr = get_frame_base (get_selected_frame ());
169.123 - if (current_frame_addr > 0)
169.124 - {
169.125 - *upper_bound =
169.126 -@@ -163,7 +163,7 @@ f77_get_dynamic_upperbound (struct type
169.127 - break;
169.128 -
169.129 - case BOUND_BY_REF_ON_STACK:
169.130 -- current_frame_addr = get_frame_base (deprecated_selected_frame);
169.131 -+ current_frame_addr = get_frame_base (get_selected_frame ());
169.132 - if (current_frame_addr > 0)
169.133 - {
169.134 - ptr_to_upper_bound =
169.135 -@@ -630,10 +630,7 @@ info_common_command (char *comname, int
169.136 - first make sure that it is visible and if so, let
169.137 - us display its contents */
169.138 -
169.139 -- fi = deprecated_selected_frame;
169.140 --
169.141 -- if (fi == NULL)
169.142 -- error ("No frame selected");
169.143 -+ fi = get_selected_frame ();
169.144 -
169.145 - /* The following is generally ripped off from stack.c's routine
169.146 - print_frame_info() */
169.147 -@@ -722,10 +719,7 @@ there_is_a_visible_common_named (char *c
169.148 - if (comname == NULL)
169.149 - error ("Cannot deal with NULL common name!");
169.150 -
169.151 -- fi = deprecated_selected_frame;
169.152 --
169.153 -- if (fi == NULL)
169.154 -- error ("No frame selected");
169.155 -+ fi = get_selected_frame ();
169.156 -
169.157 - /* The following is generally ripped off from stack.c's routine
169.158 - print_frame_info() */
169.159 -Index: gdb-6.3/gdb/infcmd.c
169.160 -===================================================================
169.161 ---- gdb-6.3.orig/gdb/infcmd.c 2004-09-13 14:26:28.000000000 -0400
169.162 -+++ gdb-6.3/gdb/infcmd.c 2004-11-09 22:57:37.274099559 -0500
169.163 -@@ -1214,10 +1214,8 @@ finish_command (char *arg, int from_tty)
169.164 - error ("The \"finish\" command does not take any arguments.");
169.165 - if (!target_has_execution)
169.166 - error ("The program is not running.");
169.167 -- if (deprecated_selected_frame == NULL)
169.168 -- error ("No selected frame.");
169.169 -
169.170 -- frame = get_prev_frame (deprecated_selected_frame);
169.171 -+ frame = get_prev_frame (get_selected_frame ());
169.172 - if (frame == 0)
169.173 - error ("\"finish\" not meaningful in the outermost frame.");
169.174 -
169.175 -@@ -1235,7 +1233,7 @@ finish_command (char *arg, int from_tty)
169.176 -
169.177 - /* Find the function we will return from. */
169.178 -
169.179 -- function = find_pc_function (get_frame_pc (deprecated_selected_frame));
169.180 -+ function = find_pc_function (get_frame_pc (get_selected_frame ()));
169.181 -
169.182 - /* Print info on the selected frame, including level number but not
169.183 - source. */
169.184 -@@ -1600,13 +1598,11 @@ registers_info (char *addr_exp, int fpre
169.185 -
169.186 - if (!target_has_registers)
169.187 - error ("The program has no registers now.");
169.188 -- if (deprecated_selected_frame == NULL)
169.189 -- error ("No selected frame.");
169.190 -
169.191 - if (!addr_exp)
169.192 - {
169.193 - gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
169.194 -- deprecated_selected_frame, -1, fpregs);
169.195 -+ get_selected_frame (), -1, fpregs);
169.196 - return;
169.197 - }
169.198 -
169.199 -@@ -1644,7 +1640,7 @@ registers_info (char *addr_exp, int fpre
169.200 - if (regnum >= 0)
169.201 - {
169.202 - gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
169.203 -- deprecated_selected_frame, regnum, fpregs);
169.204 -+ get_selected_frame (), regnum, fpregs);
169.205 - continue;
169.206 - }
169.207 - }
169.208 -@@ -1658,7 +1654,7 @@ registers_info (char *addr_exp, int fpre
169.209 - && regnum < NUM_REGS + NUM_PSEUDO_REGS)
169.210 - {
169.211 - gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
169.212 -- deprecated_selected_frame, regnum, fpregs);
169.213 -+ get_selected_frame (), regnum, fpregs);
169.214 - continue;
169.215 - }
169.216 - }
169.217 -@@ -1684,7 +1680,7 @@ registers_info (char *addr_exp, int fpre
169.218 - if (gdbarch_register_reggroup_p (current_gdbarch, regnum,
169.219 - group))
169.220 - gdbarch_print_registers_info (current_gdbarch,
169.221 -- gdb_stdout, deprecated_selected_frame,
169.222 -+ gdb_stdout, get_selected_frame (),
169.223 - regnum, fpregs);
169.224 - }
169.225 - continue;
169.226 -@@ -1714,8 +1710,6 @@ print_vector_info (struct gdbarch *gdbar
169.227 - {
169.228 - if (!target_has_registers)
169.229 - error ("The program has no registers now.");
169.230 -- if (deprecated_selected_frame == NULL)
169.231 -- error ("No selected frame.");
169.232 -
169.233 - if (gdbarch_print_vector_info_p (gdbarch))
169.234 - gdbarch_print_vector_info (gdbarch, file, frame, args);
169.235 -@@ -1740,7 +1734,7 @@ print_vector_info (struct gdbarch *gdbar
169.236 - static void
169.237 - vector_info (char *args, int from_tty)
169.238 - {
169.239 -- print_vector_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
169.240 -+ print_vector_info (current_gdbarch, gdb_stdout, get_selected_frame (), args);
169.241 - }
169.242 -
169.243 -
169.244 -@@ -1910,8 +1904,6 @@ print_float_info (struct gdbarch *gdbarc
169.245 - {
169.246 - if (!target_has_registers)
169.247 - error ("The program has no registers now.");
169.248 -- if (deprecated_selected_frame == NULL)
169.249 -- error ("No selected frame.");
169.250 -
169.251 - if (gdbarch_print_float_info_p (gdbarch))
169.252 - gdbarch_print_float_info (gdbarch, file, frame, args);
169.253 -@@ -1937,7 +1929,7 @@ No floating-point info available for thi
169.254 - static void
169.255 - float_info (char *args, int from_tty)
169.256 - {
169.257 -- print_float_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
169.258 -+ print_float_info (current_gdbarch, gdb_stdout, get_selected_frame (), args);
169.259 - }
169.260 -
169.261 - static void
169.262 -Index: gdb-6.3/gdb/inflow.c
169.263 -===================================================================
169.264 ---- gdb-6.3.orig/gdb/inflow.c 2004-08-11 05:00:57.000000000 -0400
169.265 -+++ gdb-6.3/gdb/inflow.c 2004-11-09 22:58:37.488338883 -0500
169.266 -@@ -591,10 +591,7 @@ kill_command (char *arg, int from_tty)
169.267 - if (target_has_stack)
169.268 - {
169.269 - printf_filtered ("In %s,\n", target_longname);
169.270 -- if (deprecated_selected_frame == NULL)
169.271 -- fputs_filtered ("No selected stack frame.\n", gdb_stdout);
169.272 -- else
169.273 -- print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
169.274 -+ print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
169.275 - }
169.276 - bfd_cache_close_all ();
169.277 - }
169.278 -Index: gdb-6.3/gdb/infrun.c
169.279 -===================================================================
169.280 ---- gdb-6.3.orig/gdb/infrun.c 2004-09-27 13:58:08.000000000 -0400
169.281 -+++ gdb-6.3/gdb/infrun.c 2004-11-09 22:51:07.351240752 -0500
169.282 -@@ -3485,7 +3485,7 @@ save_inferior_status (int restore_stack_
169.283 -
169.284 - inf_status->registers = regcache_dup (current_regcache);
169.285 -
169.286 -- inf_status->selected_frame_id = get_frame_id (deprecated_selected_frame);
169.287 -+ inf_status->selected_frame_id = get_frame_id (get_selected_frame ());
169.288 - return inf_status;
169.289 - }
169.290 -
169.291 -Index: gdb-6.3/gdb/mi/mi-main.c
169.292 -===================================================================
169.293 ---- gdb-6.3.orig/gdb/mi/mi-main.c 2004-09-12 11:00:42.000000000 -0400
169.294 -+++ gdb-6.3/gdb/mi/mi-main.c 2004-11-09 22:53:29.998389013 -0500
169.295 -@@ -388,7 +388,7 @@ register_changed_p (int regnum)
169.296 - {
169.297 - char raw_buffer[MAX_REGISTER_SIZE];
169.298 -
169.299 -- if (! frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
169.300 -+ if (! frame_register_read (get_selected_frame (), regnum, raw_buffer))
169.301 - return -1;
169.302 -
169.303 - if (memcmp (&old_regs[DEPRECATED_REGISTER_BYTE (regnum)], raw_buffer,
169.304 -@@ -509,7 +509,7 @@ get_register (int regnum, int format)
169.305 - if (format == 'N')
169.306 - format = 0;
169.307 -
169.308 -- frame_register (deprecated_selected_frame, regnum, &optim, &lval, &addr,
169.309 -+ frame_register (get_selected_frame (), regnum, &optim, &lval, &addr,
169.310 - &realnum, buffer);
169.311 -
169.312 - if (optim)
169.313 -Index: gdb-6.3/gdb/mn10300-tdep.c
169.314 -===================================================================
169.315 ---- gdb-6.3.orig/gdb/mn10300-tdep.c 2004-08-02 22:02:22.000000000 -0400
169.316 -+++ gdb-6.3/gdb/mn10300-tdep.c 2004-11-09 22:51:07.356239776 -0500
169.317 -@@ -1154,7 +1154,7 @@ mn10300_print_register (const char *name
169.318 - printf_filtered ("%s: ", name);
169.319 -
169.320 - /* Get the data */
169.321 -- if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
169.322 -+ if (!frame_register_read (get_selected_frame (), regnum, raw_buffer))
169.323 - {
169.324 - printf_filtered ("[invalid]");
169.325 - return;
169.326 -Index: gdb-6.3/gdb/stack.c
169.327 -===================================================================
169.328 ---- gdb-6.3.orig/gdb/stack.c 2004-08-02 20:57:26.000000000 -0400
169.329 -+++ gdb-6.3/gdb/stack.c 2004-11-09 22:51:07.361238800 -0500
169.330 -@@ -758,9 +758,7 @@ parse_frame_specification (char *frame_e
169.331 - switch (numargs)
169.332 - {
169.333 - case 0:
169.334 -- if (deprecated_selected_frame == NULL)
169.335 -- error ("No selected frame.");
169.336 -- return deprecated_selected_frame;
169.337 -+ return get_selected_frame ();
169.338 - /* NOTREACHED */
169.339 - case 1:
169.340 - {
169.341 -@@ -902,10 +900,10 @@ frame_info (char *addr_exp, int from_tty
169.342 - }
169.343 - calling_frame_info = get_prev_frame (fi);
169.344 -
169.345 -- if (!addr_exp && frame_relative_level (deprecated_selected_frame) >= 0)
169.346 -+ if (!addr_exp && frame_relative_level (get_selected_frame ()) >= 0)
169.347 - {
169.348 - printf_filtered ("Stack level %d, frame at ",
169.349 -- frame_relative_level (deprecated_selected_frame));
169.350 -+ frame_relative_level (get_selected_frame ()));
169.351 - print_address_numeric (get_frame_base (fi), 1, gdb_stdout);
169.352 - printf_filtered (":\n");
169.353 - }
169.354 -@@ -1445,9 +1443,7 @@ print_frame_label_vars (struct frame_inf
169.355 - void
169.356 - locals_info (char *args, int from_tty)
169.357 - {
169.358 -- if (!deprecated_selected_frame)
169.359 -- error ("No frame selected.");
169.360 -- print_frame_local_vars (deprecated_selected_frame, 0, gdb_stdout);
169.361 -+ print_frame_local_vars (get_selected_frame (), 0, gdb_stdout);
169.362 - }
169.363 -
169.364 - static void
169.365 -@@ -1470,7 +1466,7 @@ catch_info (char *ignore, int from_tty)
169.366 - if (!deprecated_selected_frame)
169.367 - error ("No frame selected.");
169.368 -
169.369 -- print_frame_label_vars (deprecated_selected_frame, 0, gdb_stdout);
169.370 -+ print_frame_label_vars (get_selected_frame (), 0, gdb_stdout);
169.371 - }
169.372 - }
169.373 -
169.374 -@@ -1537,9 +1533,7 @@ print_frame_arg_vars (struct frame_info
169.375 - void
169.376 - args_info (char *ignore, int from_tty)
169.377 - {
169.378 -- if (!deprecated_selected_frame)
169.379 -- error ("No frame selected.");
169.380 -- print_frame_arg_vars (deprecated_selected_frame, gdb_stdout);
169.381 -+ print_frame_arg_vars (get_selected_frame (), gdb_stdout);
169.382 - }
169.383 -
169.384 -
169.385 -@@ -1724,7 +1718,7 @@ down_silently_base (char *count_exp)
169.386 - if (target_has_stack == 0 || deprecated_selected_frame == 0)
169.387 - error ("No stack.");
169.388 -
169.389 -- frame = find_relative_frame (deprecated_selected_frame, &count1);
169.390 -+ frame = find_relative_frame (get_selected_frame (), &count1);
169.391 - if (count1 != 0 && count_exp == 0)
169.392 - {
169.393 -
169.394 -@@ -1944,7 +1938,7 @@ func_command (char *arg, int from_tty)
169.395 -
169.396 - if (!found)
169.397 - printf_filtered ("'%s' not within current stack frame.\n", arg);
169.398 -- else if (fp != deprecated_selected_frame)
169.399 -+ else if (fp != get_selected_frame ())
169.400 - select_and_print_frame (fp);
169.401 - }
169.402 -
169.403 -@@ -1965,7 +1959,7 @@ get_frame_language (void)
169.404 - instruction of another function. So we rely on
169.405 - get_frame_address_in_block(), it provides us with a PC which is
169.406 - guaranteed to be inside the frame's code block. */
169.407 -- s = find_pc_symtab (get_frame_address_in_block (deprecated_selected_frame));
169.408 -+ s = find_pc_symtab (get_frame_address_in_block (get_selected_frame ()));
169.409 - if (s)
169.410 - flang = s->language;
169.411 - else
169.412 -Index: gdb-6.3/gdb/tui/tui-disasm.c
169.413 -===================================================================
169.414 ---- gdb-6.3.orig/gdb/tui/tui-disasm.c 2004-02-24 20:10:01.000000000 -0500
169.415 -+++ gdb-6.3/gdb/tui/tui-disasm.c 2004-11-09 22:51:07.370237044 -0500
169.416 -@@ -382,7 +382,7 @@ tui_vertical_disassem_scroll (enum tui_s
169.417 -
169.418 - content = (tui_win_content) TUI_DISASM_WIN->generic.content;
169.419 - if (cursal.symtab == (struct symtab *) NULL)
169.420 -- s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
169.421 -+ s = find_pc_symtab (get_frame_pc (get_selected_frame ()));
169.422 - else
169.423 - s = cursal.symtab;
169.424 -
169.425 -Index: gdb-6.3/gdb/tui/tui-source.c
169.426 -===================================================================
169.427 ---- gdb-6.3.orig/gdb/tui/tui-source.c 2004-02-16 16:05:09.000000000 -0500
169.428 -+++ gdb-6.3/gdb/tui/tui-source.c 2004-11-09 22:51:07.370237044 -0500
169.429 -@@ -326,7 +326,7 @@ tui_vertical_source_scroll (enum tui_scr
169.430 - struct symtab_and_line cursal = get_current_source_symtab_and_line ();
169.431 -
169.432 - if (cursal.symtab == (struct symtab *) NULL)
169.433 -- s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
169.434 -+ s = find_pc_symtab (get_frame_pc (get_selected_frame ()));
169.435 - else
169.436 - s = cursal.symtab;
169.437 -
169.438 -Index: gdb-6.3/gdb/tui/tui-winsource.c
169.439 -===================================================================
169.440 ---- gdb-6.3.orig/gdb/tui/tui-winsource.c 2004-02-16 16:05:09.000000000 -0500
169.441 -+++ gdb-6.3/gdb/tui/tui-winsource.c 2004-11-09 22:51:07.371236848 -0500
169.442 -@@ -311,7 +311,7 @@ tui_horizontal_source_scroll (struct tui
169.443 - struct symtab_and_line cursal = get_current_source_symtab_and_line ();
169.444 -
169.445 - if (cursal.symtab == (struct symtab *) NULL)
169.446 -- s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
169.447 -+ s = find_pc_symtab (get_frame_pc (get_selected_frame ()));
169.448 - else
169.449 - s = cursal.symtab;
169.450 -
169.451 -Index: gdb-6.3/gdb/valops.c
169.452 -===================================================================
169.453 ---- gdb-6.3.orig/gdb/valops.c 2004-09-13 23:01:48.000000000 -0400
169.454 -+++ gdb-6.3/gdb/valops.c 2004-11-09 22:51:07.374236263 -0500
169.455 -@@ -2663,15 +2663,10 @@ value_of_local (const char *name, int co
169.456 - struct block *b;
169.457 - struct value * ret;
169.458 -
169.459 -- if (deprecated_selected_frame == 0)
169.460 -- {
169.461 -- if (complain)
169.462 -- error ("no frame selected");
169.463 -- else
169.464 -- return 0;
169.465 -- }
169.466 -+ if (!complain && deprecated_selected_frame == 0)
169.467 -+ return 0;
169.468 -
169.469 -- func = get_frame_function (deprecated_selected_frame);
169.470 -+ func = get_frame_function (get_selected_frame ());
169.471 - if (!func)
169.472 - {
169.473 - if (complain)
169.474 -@@ -2700,7 +2695,7 @@ value_of_local (const char *name, int co
169.475 - return NULL;
169.476 - }
169.477 -
169.478 -- ret = read_var_value (sym, deprecated_selected_frame);
169.479 -+ ret = read_var_value (sym, get_selected_frame ());
169.480 - if (ret == 0 && complain)
169.481 - error ("`%s' argument unreadable", name);
169.482 - return ret;
169.483 -Index: gdb-6.3/gdb/varobj.c
169.484 -===================================================================
169.485 ---- gdb-6.3.orig/gdb/varobj.c 2004-07-26 10:53:06.000000000 -0400
169.486 -+++ gdb-6.3/gdb/varobj.c 2004-11-09 22:51:07.377235677 -0500
169.487 -@@ -488,7 +488,7 @@ varobj_create (char *objname,
169.488 - if (fi != NULL)
169.489 - {
169.490 - var->root->frame = get_frame_id (fi);
169.491 -- old_fi = deprecated_selected_frame;
169.492 -+ old_fi = get_selected_frame ();
169.493 - select_frame (fi);
169.494 - }
169.495 -
169.496 -Index: gdb-6.3/gdb/testsuite/gdb.base/default.exp
169.497 -===================================================================
169.498 ---- gdb-6.3.orig/gdb/testsuite/gdb.base/default.exp 2003-03-20 09:45:50.000000000 -0500
169.499 -+++ gdb-6.3/gdb/testsuite/gdb.base/default.exp 2004-11-09 22:51:07.379235287 -0500
169.500 -@@ -167,7 +167,7 @@ gdb_test "disable breakpoints" "" "disab
169.501 - #test disable display
169.502 - gdb_test "disable display" "" "disable display"
169.503 - #test disassemble
169.504 --gdb_test "disassemble" "No frame selected." "disassemble"
169.505 -+gdb_test "disassemble" "No (frame selected|registers)." "disassemble"
169.506 - #test display
169.507 - gdb_test "display" "" "display"
169.508 - #test do
169.509 -@@ -229,9 +229,9 @@ gdb_expect {
169.510 - }
169.511 -
169.512 - #test frame "f" abbreviation
169.513 --gdb_test "f" "No stack." "frame \"f\" abbreviation"
169.514 -+gdb_test "f" "No (stack|registers)." "frame \"f\" abbreviation"
169.515 - #test frame
169.516 --gdb_test "frame" "No stack." "frame"
169.517 -+gdb_test "frame" "No (stack|registers)." "frame"
169.518 - #test fg
169.519 - gdb_test "fg" "The program is not being run." "fg"
169.520 - # FIXME: fg kills the udi connection
169.521 -@@ -294,9 +294,9 @@ gdb_test "ignore" "Argument required .a
169.522 - #test info address
169.523 - gdb_test "info address" "Argument required." "info address"
169.524 - #test info all-registers
169.525 --gdb_test "info all-registers" "The program has no registers now." "info all-registers"
169.526 -+gdb_test "info all-registers" "(The program has no registers now|No registers)." "info all-registers"
169.527 - #test info args
169.528 --gdb_test "info args" "No frame selected." "info args"
169.529 -+gdb_test "info args" "No (frame selected|registers)." "info args"
169.530 - #test info bogus-gdb-command
169.531 - gdb_test "info bogus-gdb-command" "Undefined info command: \"bogus-gdb-command\". Try \"help info\".*" "info bogus-gdb-command"
169.532 - #test info breakpoints
169.533 -@@ -320,11 +320,11 @@ gdb_test "info frame" "No stack.|No sele
169.534 - #test info files
169.535 - gdb_test "info files" "" "info files"
169.536 - #test info float
169.537 --gdb_test "info float" "The program has no registers now." "info float"
169.538 -+gdb_test "info float" "(The program has no registers now|No registers)." "info float"
169.539 - #test info functions
169.540 - gdb_test "info functions" "All defined functions:" "info functions"
169.541 - #test info locals
169.542 --gdb_test "info locals" "No frame selected." "info locals"
169.543 -+gdb_test "info locals" "(No frame selected|No registers)." "info locals"
169.544 - #test info program
169.545 - gdb_test "info program" "The program being debugged is not being run." "info program"
169.546 - #test info registers
169.547 -@@ -352,7 +352,7 @@ gdb_test "info types" "All defined types
169.548 - #test info variables
169.549 - gdb_test "info variables" "All defined variables:" "info variables"
169.550 - #test info vector
169.551 --gdb_test "info vector" "The program has no registers now." "info vector"
169.552 -+gdb_test "info vector" "(The program has no registers now|No registers)." "info vector"
169.553 - #test info warranty
169.554 - gdb_test "info warranty" "NO WARRANTY(\[^\r\n\]*\[\r\n\])+ *11. *BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY(\[^\r\n\]*\[\r\n\])+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN(\[^\r\n\]*\[\r\n\])+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES(\[^\r\n\]*\[\r\n\])+PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED(\[^\r\n\]*\[\r\n\])+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF(\[^\r\n\]*\[\r\n\])+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS(\[^\r\n\]*\[\r\n\])+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE(\[^\r\n\]*\[\r\n\])+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,(\[^\r\n\]*\[\r\n\])+REPAIR OR CORRECTION.(\[^\r\n\]*\[\r\n\])+ *12. *IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING(\[^\r\n\]*\[\r\n\])+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR(\[^\r\n\]*\[\r\n\])+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,(\[^\r\n\]*\[\r\n\])+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING(\[^\r\n\]*\[\r\n\])+OUT OF THE USE OR INABILITY TO USE THE PROGRAM .INCLUDING BUT NOT LIMITED(\[^\r\n\]*\[\r\n\])+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY(\[^\r\n\]*\[\r\n\])+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER(\[^\r\n\]*\[\r\n\])+PROGRAMS., EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE(\[^\r\n\]*\[\r\n\])+POSSIBILITY OF SUCH DAMAGES.*" "info warranty"
169.555 - #test info watchpoints
170.1 --- a/patches/gdb/6.3/620-debian_static-thread-db.patch Tue Aug 14 19:32:22 2007 +0000
170.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
170.3 @@ -1,156 +0,0 @@
170.4 -Status: submitted similar patch 2004-12-08
170.5 -
170.6 -This patch cleans up the initialization of thread_db. It works for static
170.7 -binaries now. The vsyscall patches hide this problem, since new static
170.8 -binaries will load the vsyscall DSO and then trigger thread_db; but
170.9 -this is still a good cleanup.
170.10 -
170.11 -Index: gdb-6.3/gdb/thread-db.c
170.12 -===================================================================
170.13 ---- gdb-6.3.orig/gdb/thread-db.c 2004-10-08 16:29:56.000000000 -0400
170.14 -+++ gdb-6.3/gdb/thread-db.c 2004-11-10 00:19:30.626530413 -0500
170.15 -@@ -34,6 +34,7 @@
170.16 - #include "target.h"
170.17 - #include "regcache.h"
170.18 - #include "solib-svr4.h"
170.19 -+#include "observer.h"
170.20 -
170.21 - #ifdef HAVE_GNU_LIBC_VERSION_H
170.22 - #include <gnu/libc-version.h>
170.23 -@@ -627,59 +628,49 @@ check_thread_signals (void)
170.24 - #endif
170.25 - }
170.26 -
170.27 -+/* Check whether thread_db is usable. This function is called when
170.28 -+ an inferior is created (or otherwise acquired, e.g. attached to)
170.29 -+ and when new shared libraries are loaded into a running process. */
170.30 -+
170.31 - static void
170.32 --thread_db_new_objfile (struct objfile *objfile)
170.33 -+check_for_thread_db (void)
170.34 - {
170.35 - td_err_e err;
170.36 -+ static int already_loaded;
170.37 -
170.38 - /* First time through, report that libthread_db was successfuly
170.39 - loaded. Can't print this in in thread_db_load as, at that stage,
170.40 -- the interpreter and it's console haven't started. The real
170.41 -- problem here is that libthread_db is loaded too early - it should
170.42 -- only be loaded when there is a program to debug. */
170.43 -- {
170.44 -- static int dejavu;
170.45 -- if (!dejavu)
170.46 -- {
170.47 -- Dl_info info;
170.48 -- const char *library = NULL;
170.49 -- /* Try dladdr. */
170.50 -- if (dladdr ((*td_ta_new_p), &info) != 0)
170.51 -- library = info.dli_fname;
170.52 -- /* Try dlinfo? */
170.53 -- if (library == NULL)
170.54 -- /* Paranoid - don't let a NULL path slip through. */
170.55 -- library = LIBTHREAD_DB_SO;
170.56 -- printf_unfiltered ("Using host libthread_db library \"%s\".\n",
170.57 -- library);
170.58 -- dejavu = 1;
170.59 -- }
170.60 -- }
170.61 -+ the interpreter and it's console haven't started. */
170.62 -
170.63 -- /* Don't attempt to use thread_db on targets which can not run
170.64 -- (core files). */
170.65 -- if (objfile == NULL || !target_has_execution)
170.66 -+ if (!already_loaded)
170.67 - {
170.68 -- /* All symbols have been discarded. If the thread_db target is
170.69 -- active, deactivate it now. */
170.70 -- if (using_thread_db)
170.71 -- {
170.72 -- gdb_assert (proc_handle.pid == 0);
170.73 -- unpush_target (&thread_db_ops);
170.74 -- using_thread_db = 0;
170.75 -- }
170.76 -+ Dl_info info;
170.77 -+ const char *library = NULL;
170.78 -+ if (dladdr ((*td_ta_new_p), &info) != 0)
170.79 -+ library = info.dli_fname;
170.80 -+
170.81 -+ /* Try dlinfo? */
170.82 -
170.83 -- goto quit;
170.84 -+ if (library == NULL)
170.85 -+ /* Paranoid - don't let a NULL path slip through. */
170.86 -+ library = LIBTHREAD_DB_SO;
170.87 -+
170.88 -+ printf_unfiltered ("Using host libthread_db library \"%s\".\n",
170.89 -+ library);
170.90 -+ already_loaded = 1;
170.91 - }
170.92 -
170.93 - if (using_thread_db)
170.94 - /* Nothing to do. The thread library was already detected and the
170.95 - target vector was already activated. */
170.96 -- goto quit;
170.97 -+ return;
170.98 -+
170.99 -+ /* Don't attempt to use thread_db on targets which can not run
170.100 -+ (executables not running yet, core files) for now. */
170.101 -+ if (!target_has_execution)
170.102 -+ return;
170.103 -
170.104 -- /* Initialize the structure that identifies the child process. Note
170.105 -- that at this point there is no guarantee that we actually have a
170.106 -- child process. */
170.107 -+ /* Initialize the structure that identifies the child process. */
170.108 - proc_handle.pid = GET_PID (inferior_ptid);
170.109 -
170.110 - /* Now attempt to open a connection to the thread library. */
170.111 -@@ -706,12 +697,24 @@ thread_db_new_objfile (struct objfile *o
170.112 - thread_db_err_str (err));
170.113 - break;
170.114 - }
170.115 -+}
170.116 -+
170.117 -+static void
170.118 -+thread_db_new_objfile (struct objfile *objfile)
170.119 -+{
170.120 -+ if (objfile != NULL)
170.121 -+ check_for_thread_db ();
170.122 -
170.123 --quit:
170.124 - if (target_new_objfile_chain)
170.125 - target_new_objfile_chain (objfile);
170.126 - }
170.127 -
170.128 -+static void
170.129 -+check_for_thread_db_observer (struct target_ops *target, int from_tty)
170.130 -+{
170.131 -+ check_for_thread_db ();
170.132 -+}
170.133 -+
170.134 - /* Attach to a new thread. This function is called when we receive a
170.135 - TD_CREATE event or when we iterate over all threads and find one
170.136 - that wasn't already in our list. */
170.137 -@@ -1366,5 +1369,8 @@ _initialize_thread_db (void)
170.138 - /* Add ourselves to objfile event chain. */
170.139 - target_new_objfile_chain = deprecated_target_new_objfile_hook;
170.140 - deprecated_target_new_objfile_hook = thread_db_new_objfile;
170.141 -+
170.142 -+ /* Register ourselves for the new inferior observer. */
170.143 -+ observer_attach_inferior_created (check_for_thread_db_observer);
170.144 - }
170.145 - }
170.146 -Index: gdb-6.3/gdb/Makefile.in
170.147 -===================================================================
170.148 ---- gdb-6.3.orig/gdb/Makefile.in 2004-11-09 23:04:57.000000000 -0500
170.149 -+++ gdb-6.3/gdb/Makefile.in 2004-11-10 00:19:26.440347022 -0500
170.150 -@@ -2626,7 +2626,8 @@ thread.o: thread.c $(defs_h) $(symtab_h)
170.151 - $(gdbcmd_h) $(regcache_h) $(gdb_h) $(gdb_string_h) $(ui_out_h)
170.152 - thread-db.o: thread-db.c $(defs_h) $(gdb_assert_h) $(gdb_proc_service_h) \
170.153 - $(gdb_thread_db_h) $(bfd_h) $(gdbthread_h) $(inferior_h) \
170.154 -- $(symfile_h) $(objfiles_h) $(target_h) $(regcache_h) $(solib_svr4_h)
170.155 -+ $(symfile_h) $(objfiles_h) $(target_h) $(regcache_h) $(solib_svr4_h) \
170.156 -+ $(observer_h)
170.157 - top.o: top.c $(defs_h) $(gdbcmd_h) $(call_cmds_h) $(cli_cmds_h) \
170.158 - $(cli_script_h) $(cli_setshow_h) $(cli_decode_h) $(symtab_h) \
170.159 - $(inferior_h) $(target_h) $(breakpoint_h) $(gdbtypes_h) \
171.1 --- a/patches/gdb/6.3/630-debian_24.tracepoint-segv.patch Tue Aug 14 19:32:22 2007 +0000
171.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
171.3 @@ -1,15 +0,0 @@
171.4 -Trivial. Still need to submit this.
171.5 -
171.6 -Index: gdb-6.1/gdb/tracepoint.c
171.7 -===================================================================
171.8 ---- gdb-6.1.orig/gdb/tracepoint.c 2004-04-05 13:26:43.000000000 -0400
171.9 -+++ gdb-6.1/gdb/tracepoint.c 2004-04-05 13:26:45.000000000 -0400
171.10 -@@ -853,6 +853,8 @@ read_actions (struct tracepoint *t)
171.11 - else
171.12 - line = gdb_readline (0);
171.13 -
171.14 -+ if (line == NULL || *line == EOF)
171.15 -+ break;
171.16 - linetype = validate_actionline (&line, t);
171.17 - if (linetype == BADLINE)
171.18 - continue; /* already warned -- collect another line */
172.1 --- a/patches/gdb/6.3/640-debian_dwarf2-frame-signal-unwinder.patch Tue Aug 14 19:32:22 2007 +0000
172.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
172.3 @@ -1,120 +0,0 @@
172.4 -Status: Checked in to HEAD after 6.3.
172.5 -
172.6 -2004-11-07 Daniel Jacobowitz <dan@debian.org>
172.7 -
172.8 - * dwarf2-frame.c (struct dwarf2_frame_ops): Add signal_frame_p.
172.9 - (dwarf2_frame_set_signal_frame_p, dwarf2_frame_signal_frame_p)
172.10 - (dwarf2_signal_frame_unwind): New.
172.11 - (dwarf2_frame_sniffer): Use dwarf2_frame_signal_frame_p.
172.12 - * dwarf2-frame.h (dwarf2_frame_set_signal_frame_p): New prototype.
172.13 -
172.14 -Index: src/gdb/dwarf2-frame.c
172.15 -===================================================================
172.16 -RCS file: /big/fsf/rsync/src-cvs/src/gdb/dwarf2-frame.c,v
172.17 -retrieving revision 1.41
172.18 -diff -u -p -r1.41 dwarf2-frame.c
172.19 ---- src/gdb/dwarf2-frame.c 4 Nov 2004 21:15:15 -0000 1.41
172.20 -+++ src/gdb/dwarf2-frame.c 7 Nov 2004 17:41:58 -0000
172.21 -@@ -471,6 +471,10 @@ struct dwarf2_frame_ops
172.22 - {
172.23 - /* Pre-initialize the register state REG for register REGNUM. */
172.24 - void (*init_reg) (struct gdbarch *, int, struct dwarf2_frame_state_reg *);
172.25 -+
172.26 -+ /* Check whether the frame preceding NEXT_FRAME will be a signal
172.27 -+ trampoline. */
172.28 -+ int (*signal_frame_p) (struct gdbarch *, struct frame_info *);
172.29 - };
172.30 -
172.31 - /* Default architecture-specific register state initialization
172.32 -@@ -547,6 +551,33 @@ dwarf2_frame_init_reg (struct gdbarch *g
172.33 -
172.34 - ops->init_reg (gdbarch, regnum, reg);
172.35 - }
172.36 -+
172.37 -+/* Set the architecture-specific signal trampoline recognition
172.38 -+ function for GDBARCH to SIGNAL_FRAME_P. */
172.39 -+
172.40 -+void
172.41 -+dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch,
172.42 -+ int (*signal_frame_p) (struct gdbarch *,
172.43 -+ struct frame_info *))
172.44 -+{
172.45 -+ struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data);
172.46 -+
172.47 -+ ops->signal_frame_p = signal_frame_p;
172.48 -+}
172.49 -+
172.50 -+/* Query the architecture-specific signal frame recognizer for
172.51 -+ NEXT_FRAME. */
172.52 -+
172.53 -+static int
172.54 -+dwarf2_frame_signal_frame_p (struct gdbarch *gdbarch,
172.55 -+ struct frame_info *next_frame)
172.56 -+{
172.57 -+ struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data);
172.58 -+
172.59 -+ if (ops->signal_frame_p == NULL)
172.60 -+ return 0;
172.61 -+ return ops->signal_frame_p (gdbarch, next_frame);
172.62 -+}
172.63 -
172.64 -
172.65 - struct dwarf2_frame_cache
172.66 -@@ -841,6 +872,13 @@ static const struct frame_unwind dwarf2_
172.67 - dwarf2_frame_prev_register
172.68 - };
172.69 -
172.70 -+static const struct frame_unwind dwarf2_signal_frame_unwind =
172.71 -+{
172.72 -+ SIGTRAMP_FRAME,
172.73 -+ dwarf2_frame_this_id,
172.74 -+ dwarf2_frame_prev_register
172.75 -+};
172.76 -+
172.77 - const struct frame_unwind *
172.78 - dwarf2_frame_sniffer (struct frame_info *next_frame)
172.79 - {
172.80 -@@ -848,10 +886,18 @@ dwarf2_frame_sniffer (struct frame_info
172.81 - function. frame_pc_unwind(), for a no-return next function, can
172.82 - end up returning something past the end of this function's body. */
172.83 - CORE_ADDR block_addr = frame_unwind_address_in_block (next_frame);
172.84 -- if (dwarf2_frame_find_fde (&block_addr))
172.85 -- return &dwarf2_frame_unwind;
172.86 -+ if (!dwarf2_frame_find_fde (&block_addr))
172.87 -+ return NULL;
172.88 -
172.89 -- return NULL;
172.90 -+ /* On some targets, signal trampolines may have unwind information.
172.91 -+ We need to recognize them so that we set the frame type
172.92 -+ correctly. */
172.93 -+
172.94 -+ if (dwarf2_frame_signal_frame_p (get_frame_arch (next_frame),
172.95 -+ next_frame))
172.96 -+ return &dwarf2_signal_frame_unwind;
172.97 -+
172.98 -+ return &dwarf2_frame_unwind;
172.99 - }
172.100 -
172.101 -
172.102 -Index: src/gdb/dwarf2-frame.h
172.103 -===================================================================
172.104 -RCS file: /big/fsf/rsync/src-cvs/src/gdb/dwarf2-frame.h,v
172.105 -retrieving revision 1.6
172.106 -diff -u -p -r1.6 dwarf2-frame.h
172.107 ---- src/gdb/dwarf2-frame.h 28 Feb 2004 16:59:32 -0000 1.6
172.108 -+++ src/gdb/dwarf2-frame.h 7 Nov 2004 17:40:41 -0000
172.109 -@@ -79,6 +79,14 @@ extern void dwarf2_frame_set_init_reg (s
172.110 - void (*init_reg) (struct gdbarch *, int,
172.111 - struct dwarf2_frame_state_reg *));
172.112 -
172.113 -+/* Set the architecture-specific signal trampoline recognition
172.114 -+ function for GDBARCH to SIGNAL_FRAME_P. */
172.115 -+
172.116 -+extern void
172.117 -+ dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch,
172.118 -+ int (*signal_frame_p) (struct gdbarch *,
172.119 -+ struct frame_info *));
172.120 -+
172.121 - /* Return the frame unwind methods for the function that contains PC,
172.122 - or NULL if it can't be handled by DWARF CFI frame unwinder. */
172.123 -
173.1 --- a/patches/gdb/6.3/650-debian_vsyscall-gdb-support.patch Tue Aug 14 19:32:22 2007 +0000
173.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
173.3 @@ -1,245 +0,0 @@
173.4 -Status: Checked in to HEAD after 6.3.
173.5 -
173.6 -2004-11-07 Andrew Cagney <cagney@redhat.com>
173.7 - Daniel Jacobowitz <dan@debian.org>
173.8 - Roland McGrath <roland@redhat.com>
173.9 -
173.10 - * Makefile.in (symfile-mem.o): Update dependencies.
173.11 - * i386-linux-tdep.c (i386_linux_dwarf_signal_frame_p): New.
173.12 - (i386_linux_init_abi): Call dwarf2_frame_set_signal_frame_p.
173.13 - * inf-ptrace.c (inf_ptrace_attach): Call
173.14 - observer_notify_inferior_created.
173.15 - * inftarg.c (child_attach): Likewise.
173.16 - * symfile-mem.c: Include "observer.h", "auxv.h", and "elf/common.h".
173.17 - (symbol_file_add_from_memory): Take NAME argument. Use it for
173.18 - the new BFD's filename.
173.19 - (add_symbol_file_from_memory_command): Update call to
173.20 - symbol_file_add_from_memory.
173.21 - (struct symbol_file_add_from_memory_args, add_vsyscall_page)
173.22 - (symbol_file_add_from_memory_wrapper): New.
173.23 - (_initialize_symfile_mem): Register add_vsyscall_page as an
173.24 - inferior_created observer.
173.25 -
173.26 -Index: gdb-6.3/gdb/i386-linux-tdep.c
173.27 -===================================================================
173.28 ---- gdb-6.3.orig/gdb/i386-linux-tdep.c 2004-08-06 16:58:28.000000000 -0400
173.29 -+++ gdb-6.3/gdb/i386-linux-tdep.c 2004-11-10 00:55:06.669398770 -0500
173.30 -@@ -27,6 +27,7 @@
173.31 - #include "inferior.h"
173.32 - #include "osabi.h"
173.33 - #include "reggroups.h"
173.34 -+#include "dwarf2-frame.h"
173.35 -
173.36 - #include "gdb_string.h"
173.37 -
173.38 -@@ -244,6 +245,27 @@ i386_linux_sigtramp_p (struct frame_info
173.39 - || strcmp ("__restore_rt", name) == 0);
173.40 - }
173.41 -
173.42 -+/* Return one if the unwound PC from NEXT_FRAME is in a signal trampoline
173.43 -+ which may have DWARF-2 CFI. */
173.44 -+
173.45 -+static int
173.46 -+i386_linux_dwarf_signal_frame_p (struct gdbarch *gdbarch,
173.47 -+ struct frame_info *next_frame)
173.48 -+{
173.49 -+ CORE_ADDR pc = frame_pc_unwind (next_frame);
173.50 -+ char *name;
173.51 -+
173.52 -+ find_pc_partial_function (pc, &name, NULL, NULL);
173.53 -+
173.54 -+ /* If a vsyscall DSO is in use, the signal trampolines may have these
173.55 -+ names. */
173.56 -+ if (name && (strcmp (name, "__kernel_sigreturn") == 0
173.57 -+ || strcmp (name, "__kernel_rt_sigreturn") == 0))
173.58 -+ return 1;
173.59 -+
173.60 -+ return 0;
173.61 -+}
173.62 -+
173.63 - /* Offset to struct sigcontext in ucontext, from <asm/ucontext.h>. */
173.64 - #define I386_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 20
173.65 -
173.66 -@@ -414,6 +436,8 @@ i386_linux_init_abi (struct gdbarch_info
173.67 -
173.68 - /* GNU/Linux uses the dynamic linker included in the GNU C Library. */
173.69 - set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
173.70 -+
173.71 -+ dwarf2_frame_set_signal_frame_p (gdbarch, i386_linux_dwarf_signal_frame_p);
173.72 - }
173.73 -
173.74 - /* Provide a prototype to silence -Wmissing-prototypes. */
173.75 -Index: gdb-6.3/gdb/inf-ptrace.c
173.76 -===================================================================
173.77 ---- gdb-6.3.orig/gdb/inf-ptrace.c 2004-10-15 09:29:33.000000000 -0400
173.78 -+++ gdb-6.3/gdb/inf-ptrace.c 2004-11-10 00:53:43.697615843 -0500
173.79 -@@ -220,6 +220,10 @@ inf_ptrace_attach (char *args, int from_
173.80 -
173.81 - inferior_ptid = pid_to_ptid (pid);
173.82 - push_target (ptrace_ops_hack);
173.83 -+
173.84 -+ /* Do this first, before anything has had a chance to query the
173.85 -+ inferior's symbol table or similar. */
173.86 -+ observer_notify_inferior_created (¤t_target, from_tty);
173.87 - }
173.88 -
173.89 - static void
173.90 -Index: gdb-6.3/gdb/inftarg.c
173.91 -===================================================================
173.92 ---- gdb-6.3.orig/gdb/inftarg.c 2004-10-08 16:29:47.000000000 -0400
173.93 -+++ gdb-6.3/gdb/inftarg.c 2004-11-10 00:53:43.711613107 -0500
173.94 -@@ -211,6 +211,10 @@ child_attach (char *args, int from_tty)
173.95 -
173.96 - inferior_ptid = pid_to_ptid (pid);
173.97 - push_target (&deprecated_child_ops);
173.98 -+
173.99 -+ /* Do this first, before anything has had a chance to query the
173.100 -+ inferior's symbol table or similar. */
173.101 -+ observer_notify_inferior_created (¤t_target, from_tty);
173.102 - }
173.103 -
173.104 - #if !defined(CHILD_POST_ATTACH)
173.105 -Index: gdb-6.3/gdb/symfile-mem.c
173.106 -===================================================================
173.107 ---- gdb-6.3.orig/gdb/symfile-mem.c 2004-07-17 10:24:07.000000000 -0400
173.108 -+++ gdb-6.3/gdb/symfile-mem.c 2004-11-10 00:53:43.722610958 -0500
173.109 -@@ -52,13 +52,19 @@
173.110 - #include "target.h"
173.111 - #include "value.h"
173.112 - #include "symfile.h"
173.113 -+#include "observer.h"
173.114 -+#include "auxv.h"
173.115 -+#include "elf/common.h"
173.116 -
173.117 -
173.118 - /* Read inferior memory at ADDR to find the header of a loaded object file
173.119 - and read its in-core symbols out of inferior memory. TEMPL is a bfd
173.120 -- representing the target's format. */
173.121 -+ representing the target's format. NAME is the name to use for this
173.122 -+ symbol file in messages; it can be NULL or a malloc-allocated string
173.123 -+ which will be attached to the BFD. */
173.124 - static struct objfile *
173.125 --symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr, int from_tty)
173.126 -+symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr, char *name,
173.127 -+ int from_tty)
173.128 - {
173.129 - struct objfile *objf;
173.130 - struct bfd *nbfd;
173.131 -@@ -75,7 +81,10 @@ symbol_file_add_from_memory (struct bfd
173.132 - if (nbfd == NULL)
173.133 - error ("Failed to read a valid object file image from memory.");
173.134 -
173.135 -- nbfd->filename = xstrdup ("shared object read from target memory");
173.136 -+ if (name == NULL)
173.137 -+ nbfd->filename = xstrdup ("shared object read from target memory");
173.138 -+ else
173.139 -+ nbfd->filename = name;
173.140 -
173.141 - if (!bfd_check_format (nbfd, bfd_object))
173.142 - {
173.143 -@@ -129,7 +138,73 @@ add_symbol_file_from_memory_command (cha
173.144 - error ("\
173.145 - Must use symbol-file or exec-file before add-symbol-file-from-memory.");
173.146 -
173.147 -- symbol_file_add_from_memory (templ, addr, from_tty);
173.148 -+ symbol_file_add_from_memory (templ, addr, NULL, from_tty);
173.149 -+}
173.150 -+
173.151 -+/* Arguments for symbol_file_add_from_memory_wrapper. */
173.152 -+
173.153 -+struct symbol_file_add_from_memory_args
173.154 -+{
173.155 -+ struct bfd *bfd;
173.156 -+ CORE_ADDR sysinfo_ehdr;
173.157 -+ char *name;
173.158 -+ int from_tty;
173.159 -+};
173.160 -+
173.161 -+/* Wrapper function for symbol_file_add_from_memory, for
173.162 -+ catch_exceptions. */
173.163 -+
173.164 -+static int
173.165 -+symbol_file_add_from_memory_wrapper (struct ui_out *uiout, void *data)
173.166 -+{
173.167 -+ struct symbol_file_add_from_memory_args *args = data;
173.168 -+
173.169 -+ symbol_file_add_from_memory (args->bfd, args->sysinfo_ehdr, args->name,
173.170 -+ args->from_tty);
173.171 -+ return 0;
173.172 -+}
173.173 -+
173.174 -+/* Try to add the symbols for the vsyscall page, if there is one. This function
173.175 -+ is called via the inferior_created observer. */
173.176 -+
173.177 -+static void
173.178 -+add_vsyscall_page (struct target_ops *target, int from_tty)
173.179 -+{
173.180 -+ CORE_ADDR sysinfo_ehdr;
173.181 -+
173.182 -+ if (target_auxv_search (target, AT_SYSINFO_EHDR, &sysinfo_ehdr) > 0
173.183 -+ && sysinfo_ehdr != (CORE_ADDR) 0)
173.184 -+ {
173.185 -+ struct bfd *bfd;
173.186 -+ struct symbol_file_add_from_memory_args args;
173.187 -+
173.188 -+ if (core_bfd != NULL)
173.189 -+ bfd = core_bfd;
173.190 -+ else if (exec_bfd != NULL)
173.191 -+ bfd = exec_bfd;
173.192 -+ else
173.193 -+ /* FIXME: cagney/2004-05-06: Should not require an existing
173.194 -+ BFD when trying to create a run-time BFD of the VSYSCALL
173.195 -+ page in the inferior. Unfortunately that's the current
173.196 -+ interface so for the moment bail. Introducing a
173.197 -+ ``bfd_runtime'' (a BFD created using the loaded image) file
173.198 -+ format should fix this. */
173.199 -+ {
173.200 -+ warning ("could not load vsyscall page because no executable was specified");
173.201 -+ warning ("try using the \"file\" command first");
173.202 -+ return;
173.203 -+ }
173.204 -+ args.bfd = bfd;
173.205 -+ args.sysinfo_ehdr = sysinfo_ehdr;
173.206 -+ xasprintf (&args.name, "system-supplied DSO at 0x%s",
173.207 -+ paddr_nz (sysinfo_ehdr));
173.208 -+ /* Pass zero for FROM_TTY, because the action of loading the
173.209 -+ vsyscall DSO was not triggered by the user, even if the user
173.210 -+ typed "run" at the TTY. */
173.211 -+ args.from_tty = 0;
173.212 -+ catch_exceptions (uiout, symbol_file_add_from_memory_wrapper,
173.213 -+ &args, NULL, RETURN_MASK_ALL);
173.214 -+ }
173.215 - }
173.216 -
173.217 -
173.218 -@@ -143,4 +218,7 @@ Load the symbols out of memory from a dy
173.219 - Give an expression for the address of the file's shared object file header.",
173.220 - &cmdlist);
173.221 -
173.222 -+ /* Want to know of each new inferior so that its vsyscall info can
173.223 -+ be extracted. */
173.224 -+ observer_attach_inferior_created (add_vsyscall_page);
173.225 - }
173.226 -Index: gdb-6.3/gdb/Makefile.in
173.227 -===================================================================
173.228 ---- gdb-6.3.orig/gdb/Makefile.in 2004-11-10 00:29:00.000000000 -0500
173.229 -+++ gdb-6.3/gdb/Makefile.in 2004-11-10 00:54:47.728100986 -0500
173.230 -@@ -2020,7 +2020,7 @@ i386-linux-nat.o: i386-linux-nat.c $(def
173.231 - i386-linux-tdep.o: i386-linux-tdep.c $(defs_h) $(gdbcore_h) $(frame_h) \
173.232 - $(value_h) $(regcache_h) $(inferior_h) $(osabi_h) $(reggroups_h) \
173.233 - $(gdb_string_h) $(i386_tdep_h) $(i386_linux_tdep_h) $(glibc_tdep_h) \
173.234 -- $(solib_svr4_h)
173.235 -+ $(solib_svr4_h) $(dwarf2_frame_h)
173.236 - i386ly-tdep.o: i386ly-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) \
173.237 - $(regcache_h) $(target_h) $(osabi_h) $(i386_tdep_h)
173.238 - i386-nat.o: i386-nat.c $(defs_h) $(breakpoint_h) $(command_h) $(gdbcmd_h)
173.239 -@@ -2606,7 +2606,8 @@ symfile.o: symfile.c $(defs_h) $(bfdlink
173.240 - $(hashtab_h) $(readline_h) $(gdb_assert_h) $(block_h) \
173.241 - $(gdb_string_h) $(gdb_stat_h)
173.242 - symfile-mem.o: symfile-mem.c $(defs_h) $(symtab_h) $(gdbcore_h) \
173.243 -- $(objfiles_h) $(gdbcmd_h) $(target_h) $(value_h) $(symfile_h)
173.244 -+ $(objfiles_h) $(gdbcmd_h) $(target_h) $(value_h) $(symfile_h) \
173.245 -+ $(observer_h) $(auxv_h) $(elf_common_h)
173.246 - symmisc.o: symmisc.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(bfd_h) \
173.247 - $(symfile_h) $(objfiles_h) $(breakpoint_h) $(command_h) \
173.248 - $(gdb_obstack_h) $(language_h) $(bcache_h) $(block_h) $(gdb_regex_h) \
174.1 --- a/patches/gdb/6.3/660-debian_dwarf-cfa-restore.patch Tue Aug 14 19:32:22 2007 +0000
174.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
174.3 @@ -1,23 +0,0 @@
174.4 -Status: Checked in to HEAD after 6.3.
174.5 -
174.6 -2004-11-09 Daniel Jacobowitz <dan@debian.org>
174.7 -
174.8 - * dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Correct allocated
174.9 - size.
174.10 -
174.11 -Index: src/gdb/dwarf2-frame.c
174.12 -===================================================================
174.13 -RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v
174.14 -retrieving revision 1.45
174.15 -diff -u -p -r1.45 dwarf2-frame.c
174.16 ---- src/gdb/dwarf2-frame.c 7 Nov 2004 21:16:11 -0000 1.45
174.17 -+++ src/gdb/dwarf2-frame.c 9 Nov 2004 14:42:52 -0000
174.18 -@@ -162,7 +162,7 @@ dwarf2_frame_state_alloc_regs (struct dw
174.19 - static struct dwarf2_frame_state_reg *
174.20 - dwarf2_frame_state_copy_regs (struct dwarf2_frame_state_reg_info *rs)
174.21 - {
174.22 -- size_t size = rs->num_regs * sizeof (struct dwarf2_frame_state_reg_info);
174.23 -+ size_t size = rs->num_regs * sizeof (struct dwarf2_frame_state_reg);
174.24 - struct dwarf2_frame_state_reg *reg;
174.25 -
174.26 - reg = (struct dwarf2_frame_state_reg *) xmalloc (size);
175.1 --- a/patches/gdb/6.3/680-debian_sim-destdir.patch Tue Aug 14 19:32:22 2007 +0000
175.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
175.3 @@ -1,53 +0,0 @@
175.4 -Fix some missing uses of DESTDIR in the sim/ directories. The Debian
175.5 -packages use DESTDIR to build.
175.6 -
175.7 -%patch
175.8 -Index: gdb-6.3/sim/Makefile.in
175.9 -===================================================================
175.10 ---- gdb-6.3.orig/sim/Makefile.in 2003-09-03 14:46:52.000000000 -0400
175.11 -+++ gdb-6.3/sim/Makefile.in 2004-11-10 00:39:25.381315738 -0500
175.12 -@@ -93,6 +93,7 @@ FLAGS_TO_PASS = \
175.13 - "CC=$(CC)" \
175.14 - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
175.15 - "CFLAGS=$(CFLAGS)" \
175.16 -+ "DESTDIR=$(DESTDIR)" \
175.17 - "RANLIB=$(RANLIB)" \
175.18 - "MAKEINFO=$(MAKEINFO)" \
175.19 - "INSTALL=$(INSTALL)" \
175.20 -Index: gdb-6.3/sim/common/Make-common.in
175.21 -===================================================================
175.22 ---- gdb-6.3.orig/sim/common/Make-common.in 2003-09-08 13:24:59.000000000 -0400
175.23 -+++ gdb-6.3/sim/common/Make-common.in 2004-11-10 00:39:25.383315347 -0500
175.24 -@@ -581,14 +581,14 @@ install: install-common $(SIM_EXTRA_INST
175.25 -
175.26 - install-common: installdirs
175.27 - n=`echo run | sed '$(program_transform_name)'`; \
175.28 -- $(INSTALL_PROGRAM) run$(EXEEXT) $(bindir)/$$n$(EXEEXT)
175.29 -+ $(INSTALL_PROGRAM) run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
175.30 - n=`echo libsim.a | sed s/libsim.a/lib$(target_alias)-sim.a/`; \
175.31 -- $(INSTALL_DATA) libsim.a $(libdir)/$$n ; \
175.32 -- ( cd $(libdir) ; $(RANLIB) $$n )
175.33 -+ $(INSTALL_DATA) libsim.a $(DESTDIR)$(libdir)/$$n ; \
175.34 -+ ( cd $(DESTDIR)$(libdir) ; $(RANLIB) $$n )
175.35 -
175.36 - installdirs:
175.37 -- $(SHELL) $(srcdir)/../../mkinstalldirs $(bindir)
175.38 -- $(SHELL) $(srcdir)/../../mkinstalldirs $(libdir)
175.39 -+ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir)
175.40 -+ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(libdir)
175.41 -
175.42 - check:
175.43 - cd ../testsuite && $(MAKE) check RUNTESTFLAGS="$(RUNTESTFLAGS)"
175.44 -Index: gdb-6.3/sim/erc32/Makefile.in
175.45 -===================================================================
175.46 ---- gdb-6.3.orig/sim/erc32/Makefile.in 2000-03-07 10:32:49.000000000 -0500
175.47 -+++ gdb-6.3/sim/erc32/Makefile.in 2004-11-10 00:39:25.385314957 -0500
175.48 -@@ -53,7 +53,7 @@ end.h: end
175.49 - # Copy the files into directories where they will be run.
175.50 - install-sis: installdirs
175.51 - n=`echo sis | sed '$(program_transform_name)'`; \
175.52 -- $(INSTALL_PROGRAM) sis$(EXEEXT) $(bindir)/$$n$(EXEEXT)
175.53 -+ $(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
175.54 -
175.55 - clean-sis:
175.56 - rm -f sis end end.h
176.1 --- a/patches/gdb/6.3/690-debian_member-field-symtab.patch Tue Aug 14 19:32:22 2007 +0000
176.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
176.3 @@ -1,35 +0,0 @@
176.4 -Status: unsubmitted
176.5 -
176.6 -This patch was for Debian bug #239535. It needs to be tested, and
176.7 -submitted.
176.8 -
176.9 -Index: gdb-6.3/gdb/valops.c
176.10 -===================================================================
176.11 ---- gdb-6.3.orig/gdb/valops.c 2004-11-09 22:51:07.000000000 -0500
176.12 -+++ gdb-6.3/gdb/valops.c 2004-11-10 00:43:54.036837699 -0500
176.13 -@@ -2314,8 +2314,10 @@ check_field_in (struct type *type, const
176.14 - return 1;
176.15 - }
176.16 -
176.17 -+ /* Check each baseclass. Call check_typedef, which will follow typedefs
176.18 -+ and do opaque/stub type resolution. */
176.19 - for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
176.20 -- if (check_field_in (TYPE_BASECLASS (type, i), name))
176.21 -+ if (check_field_in (check_typedef (TYPE_BASECLASS (type, i)), name))
176.22 - return 1;
176.23 -
176.24 - return 0;
176.25 -Index: gdb-6.3/gdb/dwarf2read.c
176.26 -===================================================================
176.27 ---- gdb-6.3.orig/gdb/dwarf2read.c 2004-10-15 20:41:00.000000000 -0400
176.28 -+++ gdb-6.3/gdb/dwarf2read.c 2004-11-10 00:46:21.970935829 -0500
176.29 -@@ -2099,8 +2099,8 @@ guess_structure_name (struct partial_die
176.30 - strlen (actual_class_name),
176.31 - &cu->comp_unit_obstack);
176.32 - xfree (actual_class_name);
176.33 -+ break;
176.34 - }
176.35 -- break;
176.36 - }
176.37 -
176.38 - child_pdi = child_pdi->die_sibling;
177.1 --- a/patches/gdb/6.3/700-debian_cp-pass-by-reference.patch Tue Aug 14 19:32:22 2007 +0000
177.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
177.3 @@ -1,464 +0,0 @@
177.4 -This patch needs to be submitted for the FSF. Also, there may be testcases
177.5 -already in the GDB testsuite (currently disabled) that it would probably fix.
177.6 -
177.7 -Index: gdb-6.3/gdb/infcall.c
177.8 -===================================================================
177.9 ---- gdb-6.3.orig/gdb/infcall.c 2004-10-08 04:15:56.000000000 -0400
177.10 -+++ gdb-6.3/gdb/infcall.c 2004-11-10 12:30:07.000000000 -0500
177.11 -@@ -36,6 +36,7 @@
177.12 - #include "gdb_string.h"
177.13 - #include "infcall.h"
177.14 - #include "dummy-frame.h"
177.15 -+#include "cp-abi.h"
177.16 -
177.17 - /* NOTE: cagney/2003-04-16: What's the future of this code?
177.18 -
177.19 -@@ -297,8 +298,8 @@ call_function_by_hand (struct value *fun
177.20 - {
177.21 - CORE_ADDR sp;
177.22 - CORE_ADDR dummy_addr;
177.23 -- struct type *value_type;
177.24 -- unsigned char struct_return;
177.25 -+ struct type *value_type, *target_value_type;
177.26 -+ unsigned char struct_return = 0, cp_struct_return = 0;
177.27 - CORE_ADDR struct_addr = 0;
177.28 - struct regcache *retbuf;
177.29 - struct cleanup *retbuf_cleanup;
177.30 -@@ -312,6 +313,7 @@ call_function_by_hand (struct value *fun
177.31 - struct regcache *caller_regcache;
177.32 - struct cleanup *caller_regcache_cleanup;
177.33 - struct frame_id dummy_id;
177.34 -+ struct cleanup *args_cleanup;
177.35 -
177.36 - if (!target_has_execution)
177.37 - noprocess ();
177.38 -@@ -410,10 +412,31 @@ call_function_by_hand (struct value *fun
177.39 - using_gcc = (b == NULL ? 2 : BLOCK_GCC_COMPILED (b));
177.40 - }
177.41 -
177.42 -- /* Are we returning a value using a structure return or a normal
177.43 -- value return? */
177.44 -+ /* Are we returning a value using a structure return (passing a
177.45 -+ hidden argument pointing to storage) or a normal value return?
177.46 -+ There are two cases: C++ ABI mandated structure return and
177.47 -+ target ABI structure return. The variable STRUCT_RETURN only
177.48 -+ describes the latter. The C++ version is handled by passing
177.49 -+ the return location as the first parameter to the function,
177.50 -+ even preceding "this". This is different from the target
177.51 -+ ABI version, which is target-specific; for instance, on ia64
177.52 -+ the first argument is passed in out0 but the hidden structure
177.53 -+ return pointer would normally be passed in r8. */
177.54 -
177.55 -- struct_return = using_struct_return (value_type, using_gcc);
177.56 -+ if (current_language->la_language == language_cplus
177.57 -+ && cp_pass_by_reference (value_type))
177.58 -+ {
177.59 -+ cp_struct_return = 1;
177.60 -+
177.61 -+ /* Tell the target specific argument pushing routine not to
177.62 -+ expect a value. */
177.63 -+ target_value_type = builtin_type_void;
177.64 -+ }
177.65 -+ else
177.66 -+ {
177.67 -+ struct_return = using_struct_return (value_type, using_gcc);
177.68 -+ target_value_type = value_type;
177.69 -+ }
177.70 -
177.71 - /* Determine the location of the breakpoint (and possibly other
177.72 - stuff) that the called function will return to. The SPARC, for a
177.73 -@@ -432,7 +455,7 @@ call_function_by_hand (struct value *fun
177.74 - if (INNER_THAN (1, 2))
177.75 - {
177.76 - sp = push_dummy_code (current_gdbarch, sp, funaddr,
177.77 -- using_gcc, args, nargs, value_type,
177.78 -+ using_gcc, args, nargs, target_value_type,
177.79 - &real_pc, &bp_addr);
177.80 - dummy_addr = sp;
177.81 - }
177.82 -@@ -440,7 +463,7 @@ call_function_by_hand (struct value *fun
177.83 - {
177.84 - dummy_addr = sp;
177.85 - sp = push_dummy_code (current_gdbarch, sp, funaddr,
177.86 -- using_gcc, args, nargs, value_type,
177.87 -+ using_gcc, args, nargs, target_value_type,
177.88 - &real_pc, &bp_addr);
177.89 - }
177.90 - break;
177.91 -@@ -507,9 +530,15 @@ call_function_by_hand (struct value *fun
177.92 - param_type = TYPE_FIELD_TYPE (ftype, i);
177.93 - else
177.94 - param_type = NULL;
177.95 --
177.96 -+
177.97 - args[i] = value_arg_coerce (args[i], param_type, prototyped);
177.98 -
177.99 -+ /* FIXME: Is current_language the right language? */
177.100 -+ if (current_language->la_language == language_cplus
177.101 -+ && param_type != NULL
177.102 -+ && cp_pass_by_reference (param_type))
177.103 -+ args[i] = value_addr (args[i]);
177.104 -+
177.105 - /* elz: this code is to handle the case in which the function
177.106 - to be called has a pointer to function as parameter and the
177.107 - corresponding actual argument is the address of a function
177.108 -@@ -607,7 +636,7 @@ You must use a pointer to function type
177.109 - stack, if necessary. Make certain that the value is correctly
177.110 - aligned. */
177.111 -
177.112 -- if (struct_return)
177.113 -+ if (struct_return || cp_struct_return)
177.114 - {
177.115 - int len = TYPE_LENGTH (value_type);
177.116 - if (INNER_THAN (1, 2))
177.117 -@@ -632,6 +661,22 @@ You must use a pointer to function type
177.118 - }
177.119 - }
177.120 -
177.121 -+ if (cp_struct_return)
177.122 -+ {
177.123 -+ struct value **new_args;
177.124 -+
177.125 -+ /* Add the new argument to the front of the argument list. */
177.126 -+ new_args = xmalloc (sizeof (struct value *) * (nargs + 1));
177.127 -+ new_args[0] = value_from_pointer (lookup_pointer_type (value_type),
177.128 -+ struct_addr);
177.129 -+ memcpy (&new_args[1], &args[0], sizeof (struct value *) * nargs);
177.130 -+ args = new_args;
177.131 -+ nargs++;
177.132 -+ args_cleanup = make_cleanup (xfree, args);
177.133 -+ }
177.134 -+ else
177.135 -+ args_cleanup = make_cleanup (null_cleanup, NULL);
177.136 -+
177.137 - /* Create the dummy stack frame. Pass in the call dummy address as,
177.138 - presumably, the ABI code knows where, in the call dummy, the
177.139 - return address should be pointed. */
177.140 -@@ -649,6 +694,8 @@ You must use a pointer to function type
177.141 - else
177.142 - error ("This target does not support function calls");
177.143 -
177.144 -+ do_cleanups (args_cleanup);
177.145 -+
177.146 - /* Set up a frame ID for the dummy frame so we can pass it to
177.147 - set_momentary_breakpoint. We need to give the breakpoint a frame
177.148 - ID so that the breakpoint code can correctly re-identify the
177.149 -@@ -839,11 +886,7 @@ the function call).", name);
177.150 - /* Figure out the value returned by the function, return that. */
177.151 - {
177.152 - struct value *retval;
177.153 -- if (TYPE_CODE (value_type) == TYPE_CODE_VOID)
177.154 -- /* If the function returns void, don't bother fetching the
177.155 -- return value. */
177.156 -- retval = allocate_value (value_type);
177.157 -- else if (struct_return)
177.158 -+ if (struct_return || cp_struct_return)
177.159 - /* NOTE: cagney/2003-09-27: This assumes that PUSH_DUMMY_CALL
177.160 - has correctly stored STRUCT_ADDR in the target. In the past
177.161 - that hasn't been the case, the old MIPS PUSH_ARGUMENTS
177.162 -@@ -853,6 +896,10 @@ the function call).", name);
177.163 - "struct return convention", check that PUSH_DUMMY_CALL isn't
177.164 - playing tricks. */
177.165 - retval = value_at (value_type, struct_addr, NULL);
177.166 -+ else if (TYPE_CODE (value_type) == TYPE_CODE_VOID)
177.167 -+ /* If the function returns void, don't bother fetching the
177.168 -+ return value. */
177.169 -+ retval = allocate_value (value_type);
177.170 - else
177.171 - {
177.172 - /* This code only handles "register convention". */
177.173 -Index: gdb-6.3/gdb/cp-abi.h
177.174 -===================================================================
177.175 ---- gdb-6.3.orig/gdb/cp-abi.h 2003-04-12 13:41:25.000000000 -0400
177.176 -+++ gdb-6.3/gdb/cp-abi.h 2004-11-10 12:30:07.000000000 -0500
177.177 -@@ -1,7 +1,7 @@
177.178 - /* Abstraction of various C++ ABI's we support, and the info we need
177.179 - to get from them.
177.180 - Contributed by Daniel Berlin <dberlin@redhat.com>
177.181 -- Copyright 2001 Free Software Foundation, Inc.
177.182 -+ Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
177.183 -
177.184 - This file is part of GDB.
177.185 -
177.186 -@@ -145,6 +145,10 @@ extern struct type *value_rtti_type (str
177.187 - extern int baseclass_offset (struct type *type, int index, char *valaddr,
177.188 - CORE_ADDR address);
177.189 -
177.190 -+/* Return non-zero if an argument of type TYPE should be passed by reference
177.191 -+ instead of value. */
177.192 -+extern int cp_pass_by_reference (struct type *type);
177.193 -+
177.194 - struct cp_abi_ops
177.195 - {
177.196 - const char *shortname;
177.197 -@@ -162,6 +166,7 @@ struct cp_abi_ops
177.198 - int *using_enc);
177.199 - int (*baseclass_offset) (struct type *type, int index, char *valaddr,
177.200 - CORE_ADDR address);
177.201 -+ int (*pass_by_reference) (struct type *type);
177.202 - };
177.203 -
177.204 -
177.205 -Index: gdb-6.3/gdb/cp-abi.c
177.206 -===================================================================
177.207 ---- gdb-6.3.orig/gdb/cp-abi.c 2003-11-26 17:04:00.000000000 -0500
177.208 -+++ gdb-6.3/gdb/cp-abi.c 2004-11-10 12:30:07.000000000 -0500
177.209 -@@ -1,5 +1,5 @@
177.210 - /* Generic code for supporting multiple C++ ABI's
177.211 -- Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
177.212 -+ Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
177.213 -
177.214 - This file is part of GDB.
177.215 -
177.216 -@@ -94,6 +94,14 @@ value_rtti_type (struct value *v, int *f
177.217 - return (*current_cp_abi.rtti_type) (v, full, top, using_enc);
177.218 - }
177.219 -
177.220 -+int
177.221 -+cp_pass_by_reference (struct type *type)
177.222 -+{
177.223 -+ if ((current_cp_abi.pass_by_reference) == NULL)
177.224 -+ return 0;
177.225 -+ return (*current_cp_abi.pass_by_reference) (type);
177.226 -+}
177.227 -+
177.228 - /* Set the current C++ ABI to SHORT_NAME. */
177.229 -
177.230 - static int
177.231 -Index: gdb-6.3/gdb/gnu-v3-abi.c
177.232 -===================================================================
177.233 ---- gdb-6.3.orig/gdb/gnu-v3-abi.c 2004-03-15 15:38:08.000000000 -0500
177.234 -+++ gdb-6.3/gdb/gnu-v3-abi.c 2004-11-10 12:30:07.000000000 -0500
177.235 -@@ -1,7 +1,7 @@
177.236 - /* Abstraction of GNU v3 abi.
177.237 - Contributed by Jim Blandy <jimb@redhat.com>
177.238 -
177.239 -- Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
177.240 -+ Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
177.241 -
177.242 - This file is part of GDB.
177.243 -
177.244 -@@ -419,6 +419,84 @@ gnuv3_baseclass_offset (struct type *typ
177.245 - return base_offset;
177.246 - }
177.247 -
177.248 -+/* Return nonzero if a type should be passed by reference.
177.249 -+
177.250 -+ The rule in the v3 ABI document comes from section 3.1.1. If the
177.251 -+ type has a non-trivial copy constructor or destructor, then the
177.252 -+ caller must make a copy (by calling the copy constructor if there
177.253 -+ is one or perform the copy itself otherwise), pass the address of
177.254 -+ the copy, and then destroy the temporary (if necessary).
177.255 -+
177.256 -+ For return values with non-trivial copy constructors or
177.257 -+ destructors, space will be allocated in the caller, and a pointer
177.258 -+ will be passed as the first argument (preceding "this").
177.259 -+
177.260 -+ We don't have a bulletproof mechanism for determining whether a
177.261 -+ constructor or destructor is trivial. For GCC and DWARF2 debug
177.262 -+ information, we can check the artificial flag.
177.263 -+
177.264 -+ We don't do anything with the constructors or destructors yet,
177.265 -+ but we have to get the argument passing right anyway. */
177.266 -+static int
177.267 -+gnuv3_pass_by_reference (struct type *type)
177.268 -+{
177.269 -+ int fieldnum, fieldelem, basenum;
177.270 -+
177.271 -+ CHECK_TYPEDEF (type);
177.272 -+
177.273 -+ /* We're only interested in things that can have methods. */
177.274 -+ if (TYPE_CODE (type) != TYPE_CODE_STRUCT
177.275 -+ && TYPE_CODE (type) != TYPE_CODE_CLASS
177.276 -+ && TYPE_CODE (type) != TYPE_CODE_UNION)
177.277 -+ return 0;
177.278 -+
177.279 -+ for (fieldnum = 0; fieldnum < TYPE_NFN_FIELDS (type); fieldnum++)
177.280 -+ for (fieldelem = 0; fieldelem < TYPE_FN_FIELDLIST_LENGTH (type, fieldnum);
177.281 -+ fieldelem++)
177.282 -+ {
177.283 -+ struct fn_field *fn = TYPE_FN_FIELDLIST1 (type, fieldnum);
177.284 -+ char *name = TYPE_FN_FIELDLIST_NAME (type, fieldnum);
177.285 -+ struct type *fieldtype = TYPE_FN_FIELD_TYPE (fn, fieldelem);
177.286 -+
177.287 -+ /* If this function is marked as artificial, it is compiler-generated,
177.288 -+ and we assume it is trivial. */
177.289 -+ if (TYPE_FN_FIELD_ARTIFICIAL (fn, fieldelem))
177.290 -+ continue;
177.291 -+
177.292 -+ /* If we've found a destructor, we must pass this by reference. */
177.293 -+ if (name[0] == '~')
177.294 -+ return 1;
177.295 -+
177.296 -+ /* If the mangled name of this method doesn't indicate that it
177.297 -+ is a constructor, we're not interested.
177.298 -+
177.299 -+ FIXME drow/2004-05-27: We could do this using the name of
177.300 -+ the method and the name of the class instead of dealing
177.301 -+ with the mangled name. We don't have a convenient function
177.302 -+ to strip off both leading scope qualifiers and trailing
177.303 -+ template arguments yet. */
177.304 -+ if (!is_constructor_name (TYPE_FN_FIELD_PHYSNAME (fn, fieldelem)))
177.305 -+ continue;
177.306 -+
177.307 -+ /* If this method takes two arguments, and the second argument is
177.308 -+ a reference to this class, then it is a copy constructor. */
177.309 -+ if (TYPE_NFIELDS (fieldtype) == 2
177.310 -+ && TYPE_CODE (TYPE_FIELD_TYPE (fieldtype, 1)) == TYPE_CODE_REF
177.311 -+ && check_typedef (TYPE_TARGET_TYPE (TYPE_FIELD_TYPE (fieldtype, 1))) == type)
177.312 -+ return 1;
177.313 -+ }
177.314 -+
177.315 -+ /* Even if all the constructors and destructors were artificial, one
177.316 -+ of them may have invoked a non-artificial constructor or
177.317 -+ destructor in a base class. If any base class needs to be passed
177.318 -+ by reference, so does this class. */
177.319 -+ for (basenum = 0; basenum < TYPE_N_BASECLASSES (type); basenum++)
177.320 -+ if (gnuv3_pass_by_reference (TYPE_BASECLASS (type, basenum)))
177.321 -+ return 1;
177.322 -+
177.323 -+ return 0;
177.324 -+}
177.325 -+
177.326 - static void
177.327 - init_gnuv3_ops (void)
177.328 - {
177.329 -@@ -434,6 +512,7 @@ init_gnuv3_ops (void)
177.330 - gnu_v3_abi_ops.rtti_type = gnuv3_rtti_type;
177.331 - gnu_v3_abi_ops.virtual_fn_field = gnuv3_virtual_fn_field;
177.332 - gnu_v3_abi_ops.baseclass_offset = gnuv3_baseclass_offset;
177.333 -+ gnu_v3_abi_ops.pass_by_reference = gnuv3_pass_by_reference;
177.334 - }
177.335 -
177.336 - extern initialize_file_ftype _initialize_gnu_v3_abi; /* -Wmissing-prototypes */
177.337 -Index: gdb-6.3/gdb/hpacc-abi.c
177.338 -===================================================================
177.339 ---- gdb-6.3.orig/gdb/hpacc-abi.c 2003-06-08 14:27:13.000000000 -0400
177.340 -+++ gdb-6.3/gdb/hpacc-abi.c 2004-11-10 12:30:07.000000000 -0500
177.341 -@@ -3,7 +3,7 @@
177.342 - Most of the real code is from HP, i've just fiddled it to fit in
177.343 - the C++ ABI abstraction framework.
177.344 -
177.345 -- Copyright 2001 Free Software Foundation, Inc.
177.346 -+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
177.347 -
177.348 - This file is part of GDB.
177.349 -
177.350 -Index: gdb-6.3/gdb/Makefile.in
177.351 -===================================================================
177.352 ---- gdb-6.3.orig/gdb/Makefile.in 2004-11-10 12:30:06.000000000 -0500
177.353 -+++ gdb-6.3/gdb/Makefile.in 2004-11-10 12:30:07.000000000 -0500
177.354 -@@ -2073,7 +2073,7 @@ ia64-tdep.o: ia64-tdep.c $(defs_h) $(inf
177.355 - infcall.o: infcall.c $(defs_h) $(breakpoint_h) $(target_h) $(regcache_h) \
177.356 - $(inferior_h) $(gdb_assert_h) $(block_h) $(gdbcore_h) $(language_h) \
177.357 - $(objfiles_h) $(gdbcmd_h) $(command_h) $(gdb_string_h) $(infcall_h) \
177.358 -- $(dummy_frame_h)
177.359 -+ $(dummy_frame_h) $(cp_abi_h)
177.360 - inf-child.o: inf-child.c $(defs_h) $(regcache_h) $(memattr_h) $(symtab_h) \
177.361 - $(target_h) $(inferior_h) $(gdb_string_h)
177.362 - infcmd.o: infcmd.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
177.363 -Index: gdb-6.3/gdb/testsuite/gdb.cp/pass-by-ref.exp
177.364 -===================================================================
177.365 ---- /dev/null 1970-01-01 00:00:00.000000000 +0000
177.366 -+++ gdb-6.3/gdb/testsuite/gdb.cp/pass-by-ref.exp 2004-11-11 09:48:00.498518899 -0500
177.367 -@@ -0,0 +1,38 @@
177.368 -+# This testcase is part of GDB, the GNU debugger.
177.369 -+
177.370 -+# Copyright 2004 Free Software Foundation, Inc.
177.371 -+
177.372 -+# This program is free software; you can redistribute it and/or modify
177.373 -+# it under the terms of the GNU General Public License as published by
177.374 -+# the Free Software Foundation; either version 2 of the License, or
177.375 -+# (at your option) any later version.
177.376 -+#
177.377 -+# This program is distributed in the hope that it will be useful,
177.378 -+# but WITHOUT ANY WARRANTY; without even the implied warranty of
177.379 -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
177.380 -+# GNU General Public License for more details.
177.381 -+#
177.382 -+# You should have received a copy of the GNU General Public License
177.383 -+# along with this program; if not, write to the Free Software
177.384 -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
177.385 -+
177.386 -+# Check that GDB can call C++ functions whose parameters have
177.387 -+# object type, but are passed by reference.
177.388 -+
177.389 -+set testfile "pass-by-ref"
177.390 -+set srcfile ${testfile}.cc
177.391 -+set binfile ${objdir}/${subdir}/${testfile}
177.392 -+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
177.393 -+ return -1
177.394 -+}
177.395 -+
177.396 -+gdb_exit
177.397 -+gdb_start
177.398 -+gdb_reinitialize_dir $srcdir/$subdir
177.399 -+gdb_load ${binfile}
177.400 -+
177.401 -+if ![runto_main] then {
177.402 -+ return -1
177.403 -+}
177.404 -+
177.405 -+gdb_test "print foo (global_obj)" " = 3" "call function"
177.406 -Index: gdb-6.3/gdb/testsuite/gdb.cp/pass-by-ref.cc
177.407 -===================================================================
177.408 ---- /dev/null 1970-01-01 00:00:00.000000000 +0000
177.409 -+++ gdb-6.3/gdb/testsuite/gdb.cp/pass-by-ref.cc 2004-11-11 09:44:17.815014667 -0500
177.410 -@@ -0,0 +1,57 @@
177.411 -+/* This testcase is part of GDB, the GNU debugger.
177.412 -+
177.413 -+ Copyright 2004 Free Software Foundation, Inc.
177.414 -+
177.415 -+ This program is free software; you can redistribute it and/or modify
177.416 -+ it under the terms of the GNU General Public License as published by
177.417 -+ the Free Software Foundation; either version 2 of the License, or
177.418 -+ (at your option) any later version.
177.419 -+
177.420 -+ This program is distributed in the hope that it will be useful,
177.421 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
177.422 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
177.423 -+ GNU General Public License for more details.
177.424 -+
177.425 -+ You should have received a copy of the GNU General Public License
177.426 -+ along with this program; if not, write to the Free Software
177.427 -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
177.428 -+ USA. */
177.429 -+
177.430 -+class Obj {
177.431 -+public:
177.432 -+ Obj ();
177.433 -+ Obj (const Obj &);
177.434 -+ ~Obj ();
177.435 -+ int var[2];
177.436 -+};
177.437 -+
177.438 -+int foo (Obj arg)
177.439 -+{
177.440 -+ return arg.var[0] + arg.var[1];
177.441 -+}
177.442 -+
177.443 -+Obj::Obj ()
177.444 -+{
177.445 -+ var[0] = 1;
177.446 -+ var[1] = 2;
177.447 -+}
177.448 -+
177.449 -+Obj::Obj (const Obj &obj)
177.450 -+{
177.451 -+ var[0] = obj.var[0];
177.452 -+ var[1] = obj.var[1];
177.453 -+}
177.454 -+
177.455 -+Obj::~Obj ()
177.456 -+{
177.457 -+
177.458 -+}
177.459 -+
177.460 -+Obj global_obj;
177.461 -+
177.462 -+int
177.463 -+main ()
177.464 -+{
177.465 -+ int bar = foo (global_obj);
177.466 -+ return bar;
177.467 -+}
178.1 --- a/patches/gdb/6.3/710-debian_thread-db-multiple-libraries.patch Tue Aug 14 19:32:22 2007 +0000
178.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
178.3 @@ -1,593 +0,0 @@
178.4 -Support loading two libthread_db DSOs. In this case, the LinuxThreads
178.5 -and NPTL ones.
178.6 -
178.7 -Index: gdb-6.3/gdb/thread-db.c
178.8 -===================================================================
178.9 ---- gdb-6.3.orig/gdb/thread-db.c 2004-11-10 10:46:24.000000000 -0500
178.10 -+++ gdb-6.3/gdb/thread-db.c 2004-11-10 11:22:34.858812426 -0500
178.11 -@@ -79,53 +79,63 @@ static td_thragent_t *thread_agent;
178.12 -
178.13 - /* Pointers to the libthread_db functions. */
178.14 -
178.15 --static td_err_e (*td_init_p) (void);
178.16 -+struct thread_db_pointers
178.17 -+{
178.18 -+ const char *filename;
178.19 -+
178.20 -+ td_err_e (*td_init_p) (void);
178.21 -
178.22 --static td_err_e (*td_ta_new_p) (struct ps_prochandle * ps,
178.23 -- td_thragent_t **ta);
178.24 --static td_err_e (*td_ta_map_id2thr_p) (const td_thragent_t *ta, thread_t pt,
178.25 -- td_thrhandle_t *__th);
178.26 --static td_err_e (*td_ta_map_lwp2thr_p) (const td_thragent_t *ta,
178.27 -- lwpid_t lwpid, td_thrhandle_t *th);
178.28 --static td_err_e (*td_ta_thr_iter_p) (const td_thragent_t *ta,
178.29 -- td_thr_iter_f *callback, void *cbdata_p,
178.30 -- td_thr_state_e state, int ti_pri,
178.31 -- sigset_t *ti_sigmask_p,
178.32 -- unsigned int ti_user_flags);
178.33 --static td_err_e (*td_ta_event_addr_p) (const td_thragent_t *ta,
178.34 -- td_event_e event, td_notify_t *ptr);
178.35 --static td_err_e (*td_ta_set_event_p) (const td_thragent_t *ta,
178.36 -- td_thr_events_t *event);
178.37 --static td_err_e (*td_ta_event_getmsg_p) (const td_thragent_t *ta,
178.38 -- td_event_msg_t *msg);
178.39 --
178.40 --static td_err_e (*td_thr_validate_p) (const td_thrhandle_t *th);
178.41 --static td_err_e (*td_thr_get_info_p) (const td_thrhandle_t *th,
178.42 -- td_thrinfo_t *infop);
178.43 --static td_err_e (*td_thr_getfpregs_p) (const td_thrhandle_t *th,
178.44 -- gdb_prfpregset_t *regset);
178.45 --static td_err_e (*td_thr_getgregs_p) (const td_thrhandle_t *th,
178.46 -- prgregset_t gregs);
178.47 --static td_err_e (*td_thr_setfpregs_p) (const td_thrhandle_t *th,
178.48 -- const gdb_prfpregset_t *fpregs);
178.49 --static td_err_e (*td_thr_setgregs_p) (const td_thrhandle_t *th,
178.50 -- prgregset_t gregs);
178.51 --static td_err_e (*td_thr_event_enable_p) (const td_thrhandle_t *th,
178.52 -- int event);
178.53 --
178.54 --static td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th,
178.55 -- void *map_address,
178.56 -- size_t offset, void **address);
178.57 -+ td_err_e (*td_ta_new_p) (struct ps_prochandle * ps,
178.58 -+ td_thragent_t **ta);
178.59 -+ td_err_e (*td_ta_map_id2thr_p) (const td_thragent_t *ta, thread_t pt,
178.60 -+ td_thrhandle_t *__th);
178.61 -+ td_err_e (*td_ta_map_lwp2thr_p) (const td_thragent_t *ta,
178.62 -+ lwpid_t lwpid, td_thrhandle_t *th);
178.63 -+
178.64 -+ td_err_e (*td_ta_thr_iter_p) (const td_thragent_t *ta,
178.65 -+ td_thr_iter_f *callback, void *cbdata_p,
178.66 -+ td_thr_state_e state, int ti_pri,
178.67 -+ sigset_t *ti_sigmask_p,
178.68 -+ unsigned int ti_user_flags);
178.69 -+ td_err_e (*td_ta_event_addr_p) (const td_thragent_t *ta,
178.70 -+ td_event_e event, td_notify_t *ptr);
178.71 -+ td_err_e (*td_ta_set_event_p) (const td_thragent_t *ta,
178.72 -+ td_thr_events_t *event);
178.73 -+ td_err_e (*td_ta_event_getmsg_p) (const td_thragent_t *ta,
178.74 -+ td_event_msg_t *msg);
178.75 -+
178.76 -+ td_err_e (*td_thr_validate_p) (const td_thrhandle_t *th);
178.77 -+ td_err_e (*td_thr_get_info_p) (const td_thrhandle_t *th,
178.78 -+ td_thrinfo_t *infop);
178.79 -+ td_err_e (*td_thr_getfpregs_p) (const td_thrhandle_t *th,
178.80 -+ gdb_prfpregset_t *regset);
178.81 -+ td_err_e (*td_thr_getgregs_p) (const td_thrhandle_t *th,
178.82 -+ prgregset_t gregs);
178.83 -+ td_err_e (*td_thr_setfpregs_p) (const td_thrhandle_t *th,
178.84 -+ const gdb_prfpregset_t *fpregs);
178.85 -+ td_err_e (*td_thr_setgregs_p) (const td_thrhandle_t *th,
178.86 -+ prgregset_t gregs);
178.87 -+ td_err_e (*td_thr_event_enable_p) (const td_thrhandle_t *th,
178.88 -+ int event);
178.89 -+
178.90 -+ td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th,
178.91 -+ void *map_address,
178.92 -+ size_t offset, void **address);
178.93 -+
178.94 -+ struct thread_db_pointers *next;
178.95 -+};
178.96 -
178.97 - /* Location of the thread creation event breakpoint. The code at this
178.98 - location in the child process will be called by the pthread library
178.99 - whenever a new thread is created. By setting a special breakpoint
178.100 - at this location, GDB can detect when a new thread is created. We
178.101 - obtain this location via the td_ta_event_addr call. */
178.102 --static CORE_ADDR td_create_bp_addr;
178.103 -+CORE_ADDR td_create_bp_addr;
178.104 -
178.105 - /* Location of the thread death event breakpoint. */
178.106 --static CORE_ADDR td_death_bp_addr;
178.107 -+CORE_ADDR td_death_bp_addr;
178.108 -+
178.109 -+static struct thread_db_pointers *current_pointers, *all_pointers;
178.110 -
178.111 - /* Prototypes for local functions. */
178.112 - static void thread_db_find_new_threads (void);
178.113 -@@ -262,7 +272,7 @@ thread_get_info_callback (const td_thrha
178.114 - struct thread_info *thread_info;
178.115 - ptid_t thread_ptid;
178.116 -
178.117 -- err = td_thr_get_info_p (thp, &ti);
178.118 -+ err = current_pointers->td_thr_get_info_p (thp, &ti);
178.119 - if (err != TD_OK)
178.120 - error ("thread_get_info_callback: cannot get thread info: %s",
178.121 - thread_db_err_str (err));
178.122 -@@ -316,8 +326,9 @@ thread_db_map_id2thr (struct thread_info
178.123 - if (thread_info->private->th_valid)
178.124 - return;
178.125 -
178.126 -- err = td_ta_map_id2thr_p (thread_agent, GET_THREAD (thread_info->ptid),
178.127 -- &thread_info->private->th);
178.128 -+ err = current_pointers->td_ta_map_id2thr_p (thread_agent,
178.129 -+ GET_THREAD (thread_info->ptid),
178.130 -+ &thread_info->private->th);
178.131 - if (err != TD_OK)
178.132 - {
178.133 - if (fatal)
178.134 -@@ -340,8 +351,8 @@ thread_db_get_info (struct thread_info *
178.135 - if (!thread_info->private->th_valid)
178.136 - thread_db_map_id2thr (thread_info, 1);
178.137 -
178.138 -- err =
178.139 -- td_thr_get_info_p (&thread_info->private->th, &thread_info->private->ti);
178.140 -+ err = current_pointers->td_thr_get_info_p (&thread_info->private->th,
178.141 -+ &thread_info->private->ti);
178.142 - if (err != TD_OK)
178.143 - error ("thread_db_get_info: cannot get thread info: %s",
178.144 - thread_db_err_str (err));
178.145 -@@ -365,7 +376,8 @@ thread_from_lwp (ptid_t ptid)
178.146 -
178.147 - gdb_assert (is_lwp (ptid));
178.148 -
178.149 -- err = td_ta_map_lwp2thr_p (thread_agent, GET_LWP (ptid), &th);
178.150 -+ err = current_pointers->td_ta_map_lwp2thr_p (thread_agent, GET_LWP (ptid),
178.151 -+ &th);
178.152 - if (err != TD_OK)
178.153 - error ("Cannot find user-level thread for LWP %ld: %s",
178.154 - GET_LWP (ptid), thread_db_err_str (err));
178.155 -@@ -420,85 +432,102 @@ verbose_dlsym (void *handle, const char
178.156 - return sym;
178.157 - }
178.158 -
178.159 --static int
178.160 --thread_db_load (void)
178.161 -+static struct thread_db_pointers *
178.162 -+thread_db_load (const char *name)
178.163 - {
178.164 -+ struct thread_db_pointers *ptrs;
178.165 -+ Dl_info info;
178.166 - void *handle;
178.167 - td_err_e err;
178.168 -
178.169 -- handle = dlopen (LIBTHREAD_DB_SO, RTLD_NOW);
178.170 -+ ptrs = xcalloc (1, sizeof (struct thread_db_pointers));
178.171 -+
178.172 -+ handle = dlopen (name, RTLD_NOW);
178.173 - if (handle == NULL)
178.174 - {
178.175 -- fprintf_filtered (gdb_stderr, "\n\ndlopen failed on '%s' - %s\n",
178.176 -- LIBTHREAD_DB_SO, dlerror ());
178.177 -- fprintf_filtered (gdb_stderr,
178.178 -- "GDB will not be able to debug pthreads.\n\n");
178.179 -+ if (all_pointers == NULL)
178.180 -+ {
178.181 -+ fprintf_filtered (gdb_stderr, "\n\ndlopen failed on '%s' - %s\n",
178.182 -+ name, dlerror ());
178.183 -+ fprintf_filtered (gdb_stderr,
178.184 -+ "GDB will not be able to debug pthreads.\n\n");
178.185 -+ }
178.186 - return 0;
178.187 - }
178.188 -
178.189 - /* Initialize pointers to the dynamic library functions we will use.
178.190 - Essential functions first. */
178.191 -
178.192 -- td_init_p = verbose_dlsym (handle, "td_init");
178.193 -- if (td_init_p == NULL)
178.194 -+ ptrs->td_init_p = verbose_dlsym (handle, "td_init");
178.195 -+ if (ptrs->td_init_p == NULL)
178.196 - return 0;
178.197 -
178.198 -- td_ta_new_p = verbose_dlsym (handle, "td_ta_new");
178.199 -- if (td_ta_new_p == NULL)
178.200 -+ ptrs->td_ta_new_p = verbose_dlsym (handle, "td_ta_new");
178.201 -+ if (ptrs->td_ta_new_p == NULL)
178.202 - return 0;
178.203 -
178.204 -- td_ta_map_id2thr_p = verbose_dlsym (handle, "td_ta_map_id2thr");
178.205 -- if (td_ta_map_id2thr_p == NULL)
178.206 -+ ptrs->td_ta_map_id2thr_p = verbose_dlsym (handle, "td_ta_map_id2thr");
178.207 -+ if (ptrs->td_ta_map_id2thr_p == NULL)
178.208 - return 0;
178.209 -
178.210 -- td_ta_map_lwp2thr_p = verbose_dlsym (handle, "td_ta_map_lwp2thr");
178.211 -- if (td_ta_map_lwp2thr_p == NULL)
178.212 -+ ptrs->td_ta_map_lwp2thr_p = verbose_dlsym (handle, "td_ta_map_lwp2thr");
178.213 -+ if (ptrs->td_ta_map_lwp2thr_p == NULL)
178.214 - return 0;
178.215 -
178.216 -- td_ta_thr_iter_p = verbose_dlsym (handle, "td_ta_thr_iter");
178.217 -- if (td_ta_thr_iter_p == NULL)
178.218 -+ ptrs->td_ta_thr_iter_p = verbose_dlsym (handle, "td_ta_thr_iter");
178.219 -+ if (ptrs->td_ta_thr_iter_p == NULL)
178.220 - return 0;
178.221 -
178.222 -- td_thr_validate_p = verbose_dlsym (handle, "td_thr_validate");
178.223 -- if (td_thr_validate_p == NULL)
178.224 -+ ptrs->td_thr_validate_p = verbose_dlsym (handle, "td_thr_validate");
178.225 -+ if (ptrs->td_thr_validate_p == NULL)
178.226 - return 0;
178.227 -
178.228 -- td_thr_get_info_p = verbose_dlsym (handle, "td_thr_get_info");
178.229 -- if (td_thr_get_info_p == NULL)
178.230 -+ ptrs->td_thr_get_info_p = verbose_dlsym (handle, "td_thr_get_info");
178.231 -+ if (ptrs->td_thr_get_info_p == NULL)
178.232 - return 0;
178.233 -
178.234 -- td_thr_getfpregs_p = verbose_dlsym (handle, "td_thr_getfpregs");
178.235 -- if (td_thr_getfpregs_p == NULL)
178.236 -+ ptrs->td_thr_getfpregs_p = verbose_dlsym (handle, "td_thr_getfpregs");
178.237 -+ if (ptrs->td_thr_getfpregs_p == NULL)
178.238 - return 0;
178.239 -
178.240 -- td_thr_getgregs_p = verbose_dlsym (handle, "td_thr_getgregs");
178.241 -- if (td_thr_getgregs_p == NULL)
178.242 -+ ptrs->td_thr_getgregs_p = verbose_dlsym (handle, "td_thr_getgregs");
178.243 -+ if (ptrs->td_thr_getgregs_p == NULL)
178.244 - return 0;
178.245 -
178.246 -- td_thr_setfpregs_p = verbose_dlsym (handle, "td_thr_setfpregs");
178.247 -- if (td_thr_setfpregs_p == NULL)
178.248 -+ ptrs->td_thr_setfpregs_p = verbose_dlsym (handle, "td_thr_setfpregs");
178.249 -+ if (ptrs->td_thr_setfpregs_p == NULL)
178.250 - return 0;
178.251 -
178.252 -- td_thr_setgregs_p = verbose_dlsym (handle, "td_thr_setgregs");
178.253 -- if (td_thr_setgregs_p == NULL)
178.254 -+ ptrs->td_thr_setgregs_p = verbose_dlsym (handle, "td_thr_setgregs");
178.255 -+ if (ptrs->td_thr_setgregs_p == NULL)
178.256 - return 0;
178.257 -
178.258 - /* Initialize the library. */
178.259 -- err = td_init_p ();
178.260 -+ err = ptrs->td_init_p ();
178.261 - if (err != TD_OK)
178.262 - {
178.263 - warning ("Cannot initialize libthread_db: %s", thread_db_err_str (err));
178.264 -+ xfree (ptrs);
178.265 - return 0;
178.266 - }
178.267 -
178.268 - /* These are not essential. */
178.269 -- td_ta_event_addr_p = dlsym (handle, "td_ta_event_addr");
178.270 -- td_ta_set_event_p = dlsym (handle, "td_ta_set_event");
178.271 -- td_ta_event_getmsg_p = dlsym (handle, "td_ta_event_getmsg");
178.272 -- td_thr_event_enable_p = dlsym (handle, "td_thr_event_enable");
178.273 -- td_thr_tls_get_addr_p = dlsym (handle, "td_thr_tls_get_addr");
178.274 -+ ptrs->td_ta_event_addr_p = dlsym (handle, "td_ta_event_addr");
178.275 -+ ptrs->td_ta_set_event_p = dlsym (handle, "td_ta_set_event");
178.276 -+ ptrs->td_ta_event_getmsg_p = dlsym (handle, "td_ta_event_getmsg");
178.277 -+ ptrs->td_thr_event_enable_p = dlsym (handle, "td_thr_event_enable");
178.278 -+ ptrs->td_thr_tls_get_addr_p = dlsym (handle, "td_thr_tls_get_addr");
178.279 -+
178.280 -+ if (dladdr (ptrs->td_ta_new_p, &info) != 0)
178.281 -+ ptrs->filename = info.dli_fname;
178.282 -+
178.283 -+ /* Try dlinfo? */
178.284 -+
178.285 -+ if (ptrs->filename == NULL)
178.286 -+ /* Paranoid - don't let a NULL path slip through. */
178.287 -+ ptrs->filename = name;
178.288 -
178.289 -- return 1;
178.290 -+ return ptrs;
178.291 - }
178.292 -
178.293 - static td_err_e
178.294 -@@ -508,7 +537,7 @@ enable_thread_event (td_thragent_t *thre
178.295 - td_err_e err;
178.296 -
178.297 - /* Get the breakpoint address for thread EVENT. */
178.298 -- err = td_ta_event_addr_p (thread_agent, event, ¬ify);
178.299 -+ err = current_pointers->td_ta_event_addr_p (thread_agent, event, ¬ify);
178.300 - if (err != TD_OK)
178.301 - return err;
178.302 -
178.303 -@@ -534,8 +563,10 @@ enable_thread_event_reporting (void)
178.304 -
178.305 - /* We cannot use the thread event reporting facility if these
178.306 - functions aren't available. */
178.307 -- if (td_ta_event_addr_p == NULL || td_ta_set_event_p == NULL
178.308 -- || td_ta_event_getmsg_p == NULL || td_thr_event_enable_p == NULL)
178.309 -+ if (current_pointers->td_ta_event_addr_p == NULL
178.310 -+ || current_pointers->td_ta_set_event_p == NULL
178.311 -+ || current_pointers->td_ta_event_getmsg_p == NULL
178.312 -+ || current_pointers->td_thr_event_enable_p == NULL)
178.313 - return;
178.314 -
178.315 - /* Set the process wide mask saying which events we're interested in. */
178.316 -@@ -552,7 +583,7 @@ enable_thread_event_reporting (void)
178.317 - #endif
178.318 - td_event_addset (&events, TD_DEATH);
178.319 -
178.320 -- err = td_ta_set_event_p (thread_agent, &events);
178.321 -+ err = current_pointers->td_ta_set_event_p (thread_agent, &events);
178.322 - if (err != TD_OK)
178.323 - {
178.324 - warning ("Unable to set global thread event mask: %s",
178.325 -@@ -592,7 +623,7 @@ disable_thread_event_reporting (void)
178.326 - /* Set the process wide mask saying we aren't interested in any
178.327 - events anymore. */
178.328 - td_event_emptyset (&events);
178.329 -- td_ta_set_event_p (thread_agent, &events);
178.330 -+ current_pointers->td_ta_set_event_p (thread_agent, &events);
178.331 -
178.332 - /* Delete thread event breakpoints, if any. */
178.333 - remove_thread_event_breakpoints ();
178.334 -@@ -635,7 +666,6 @@ check_thread_signals (void)
178.335 - static void
178.336 - check_for_thread_db (void)
178.337 - {
178.338 -- td_err_e err;
178.339 - static int already_loaded;
178.340 -
178.341 - /* First time through, report that libthread_db was successfuly
178.342 -@@ -644,19 +674,8 @@ check_for_thread_db (void)
178.343 -
178.344 - if (!already_loaded)
178.345 - {
178.346 -- Dl_info info;
178.347 -- const char *library = NULL;
178.348 -- if (dladdr ((*td_ta_new_p), &info) != 0)
178.349 -- library = info.dli_fname;
178.350 --
178.351 -- /* Try dlinfo? */
178.352 --
178.353 -- if (library == NULL)
178.354 -- /* Paranoid - don't let a NULL path slip through. */
178.355 -- library = LIBTHREAD_DB_SO;
178.356 --
178.357 - printf_unfiltered ("Using host libthread_db library \"%s\".\n",
178.358 -- library);
178.359 -+ all_pointers->filename);
178.360 - already_loaded = 1;
178.361 - }
178.362 -
178.363 -@@ -674,28 +693,34 @@ check_for_thread_db (void)
178.364 - proc_handle.pid = GET_PID (inferior_ptid);
178.365 -
178.366 - /* Now attempt to open a connection to the thread library. */
178.367 -- err = td_ta_new_p (&proc_handle, &thread_agent);
178.368 -- switch (err)
178.369 -+ for (current_pointers = all_pointers;
178.370 -+ current_pointers != NULL;
178.371 -+ current_pointers = current_pointers->next)
178.372 - {
178.373 -- case TD_NOLIBTHREAD:
178.374 -- /* No thread library was detected. */
178.375 -- break;
178.376 --
178.377 -- case TD_OK:
178.378 -- printf_unfiltered ("[Thread debugging using libthread_db enabled]\n");
178.379 -+ td_err_e err;
178.380 -+ err = current_pointers->td_ta_new_p (&proc_handle, &thread_agent);
178.381 -+ switch (err)
178.382 -+ {
178.383 -+ case TD_NOLIBTHREAD:
178.384 -+ /* No thread library was detected. */
178.385 -+ break;
178.386 -
178.387 -- /* The thread library was detected. Activate the thread_db target. */
178.388 -- push_target (&thread_db_ops);
178.389 -- using_thread_db = 1;
178.390 -+ case TD_OK:
178.391 -+ printf_unfiltered ("[Thread debugging using libthread_db enabled]\n");
178.392 -
178.393 -- enable_thread_event_reporting ();
178.394 -- thread_db_find_new_threads ();
178.395 -- break;
178.396 -+ /* The thread library was detected. Activate the thread_db target. */
178.397 -+ push_target (&thread_db_ops);
178.398 -+ using_thread_db = 1;
178.399 -+
178.400 -+ enable_thread_event_reporting ();
178.401 -+ thread_db_find_new_threads ();
178.402 -+ return;
178.403 -
178.404 -- default:
178.405 -- warning ("Cannot initialize thread debugging library: %s",
178.406 -- thread_db_err_str (err));
178.407 -- break;
178.408 -+ default:
178.409 -+ warning ("Cannot initialize thread debugging library: %s",
178.410 -+ thread_db_err_str (err));
178.411 -+ break;
178.412 -+ }
178.413 - }
178.414 - }
178.415 -
178.416 -@@ -766,7 +791,7 @@ attach_thread (ptid_t ptid, const td_thr
178.417 - #endif
178.418 -
178.419 - /* Enable thread event reporting for this thread. */
178.420 -- err = td_thr_event_enable_p (th_p, 1);
178.421 -+ err = current_pointers->td_thr_event_enable_p (th_p, 1);
178.422 - if (err != TD_OK)
178.423 - error ("Cannot enable thread event reporting for %s: %s",
178.424 - target_pid_to_str (ptid), thread_db_err_str (err));
178.425 -@@ -892,7 +917,7 @@ check_event (ptid_t ptid)
178.426 -
178.427 - do
178.428 - {
178.429 -- err = td_ta_event_getmsg_p (thread_agent, &msg);
178.430 -+ err = current_pointers->td_ta_event_getmsg_p (thread_agent, &msg);
178.431 - if (err != TD_OK)
178.432 - {
178.433 - if (err == TD_NOMSG)
178.434 -@@ -902,7 +927,7 @@ check_event (ptid_t ptid)
178.435 - thread_db_err_str (err));
178.436 - }
178.437 -
178.438 -- err = td_thr_get_info_p (msg.th_p, &ti);
178.439 -+ err = current_pointers->td_thr_get_info_p (msg.th_p, &ti);
178.440 - if (err != TD_OK)
178.441 - error ("Cannot get thread info: %s", thread_db_err_str (err));
178.442 -
178.443 -@@ -1015,12 +1040,14 @@ thread_db_fetch_registers (int regno)
178.444 - thread_info = find_thread_pid (inferior_ptid);
178.445 - thread_db_map_id2thr (thread_info, 1);
178.446 -
178.447 -- err = td_thr_getgregs_p (&thread_info->private->th, gregset);
178.448 -+ err = current_pointers->td_thr_getgregs_p (&thread_info->private->th,
178.449 -+ gregset);
178.450 - if (err != TD_OK)
178.451 - error ("Cannot fetch general-purpose registers for thread %ld: %s",
178.452 - (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
178.453 -
178.454 -- err = td_thr_getfpregs_p (&thread_info->private->th, &fpregset);
178.455 -+ err = current_pointers->td_thr_getfpregs_p (&thread_info->private->th,
178.456 -+ &fpregset);
178.457 - if (err != TD_OK)
178.458 - error ("Cannot get floating-point registers for thread %ld: %s",
178.459 - (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
178.460 -@@ -1062,11 +1089,13 @@ thread_db_store_registers (int regno)
178.461 - fill_gregset ((gdb_gregset_t *) gregset, -1);
178.462 - fill_fpregset (&fpregset, -1);
178.463 -
178.464 -- err = td_thr_setgregs_p (&thread_info->private->th, gregset);
178.465 -+ err = current_pointers->td_thr_setgregs_p (&thread_info->private->th,
178.466 -+ gregset);
178.467 - if (err != TD_OK)
178.468 - error ("Cannot store general-purpose registers for thread %ld: %s",
178.469 - (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
178.470 -- err = td_thr_setfpregs_p (&thread_info->private->th, &fpregset);
178.471 -+ err = current_pointers->td_thr_setfpregs_p (&thread_info->private->th,
178.472 -+ &fpregset);
178.473 - if (err != TD_OK)
178.474 - error ("Cannot store floating-point registers for thread %ld: %s",
178.475 - (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
178.476 -@@ -1136,15 +1165,14 @@ thread_db_thread_alive (ptid_t ptid)
178.477 - if (!thread_info->private->th_valid)
178.478 - return 0;
178.479 -
178.480 -- err = td_thr_validate_p (&thread_info->private->th);
178.481 -+ err = current_pointers->td_thr_validate_p (&thread_info->private->th);
178.482 - if (err != TD_OK)
178.483 - return 0;
178.484 -
178.485 - if (!thread_info->private->ti_valid)
178.486 - {
178.487 -- err =
178.488 -- td_thr_get_info_p (&thread_info->private->th,
178.489 -- &thread_info->private->ti);
178.490 -+ err = current_pointers->td_thr_get_info_p
178.491 -+ (&thread_info->private->th, &thread_info->private->ti);
178.492 - if (err != TD_OK)
178.493 - return 0;
178.494 - thread_info->private->ti_valid = 1;
178.495 -@@ -1170,7 +1198,7 @@ find_new_threads_callback (const td_thrh
178.496 - td_err_e err;
178.497 - ptid_t ptid;
178.498 -
178.499 -- err = td_thr_get_info_p (th_p, &ti);
178.500 -+ err = current_pointers->td_thr_get_info_p (th_p, &ti);
178.501 - if (err != TD_OK)
178.502 - error ("find_new_threads_callback: cannot get thread info: %s",
178.503 - thread_db_err_str (err));
178.504 -@@ -1192,9 +1220,10 @@ thread_db_find_new_threads (void)
178.505 - td_err_e err;
178.506 -
178.507 - /* Iterate over all user-space threads to discover new threads. */
178.508 -- err = td_ta_thr_iter_p (thread_agent, find_new_threads_callback, NULL,
178.509 -- TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
178.510 -- TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS);
178.511 -+ err = current_pointers->td_ta_thr_iter_p
178.512 -+ (thread_agent, find_new_threads_callback, NULL,
178.513 -+ TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
178.514 -+ TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS);
178.515 - if (err != TD_OK)
178.516 - error ("Cannot find new threads: %s", thread_db_err_str (err));
178.517 - }
178.518 -@@ -1257,7 +1286,7 @@ thread_db_get_thread_local_address (ptid
178.519 - struct thread_info *thread_info;
178.520 -
178.521 - /* glibc doesn't provide the needed interface. */
178.522 -- if (!td_thr_tls_get_addr_p)
178.523 -+ if (!current_pointers->td_thr_tls_get_addr_p)
178.524 - error ("Cannot find thread-local variables in this thread library.");
178.525 -
178.526 - /* Get the address of the link map for this objfile. */
178.527 -@@ -1279,8 +1308,8 @@ thread_db_get_thread_local_address (ptid
178.528 - thread_db_map_id2thr (thread_info, 1);
178.529 -
178.530 - /* Finally, get the address of the variable. */
178.531 -- err = td_thr_tls_get_addr_p (&thread_info->private->th, (void *) lm,
178.532 -- offset, &address);
178.533 -+ err = current_pointers->td_thr_tls_get_addr_p
178.534 -+ (&thread_info->private->th, (void *) lm, offset, &address);
178.535 -
178.536 - #ifdef THREAD_DB_HAS_TD_NOTALLOC
178.537 - /* The memory hasn't been allocated, yet. */
178.538 -@@ -1360,17 +1389,49 @@ init_thread_db_ops (void)
178.539 - void
178.540 - _initialize_thread_db (void)
178.541 - {
178.542 -+ struct thread_db_pointers *ptrs;
178.543 -+ const char *p;
178.544 -+
178.545 - /* Only initialize the module if we can load libthread_db. */
178.546 -- if (thread_db_load ())
178.547 -- {
178.548 -- init_thread_db_ops ();
178.549 -- add_target (&thread_db_ops);
178.550 -+ ptrs = thread_db_load (LIBTHREAD_DB_SO);
178.551 -+ if (ptrs == NULL)
178.552 -+ return;
178.553 -+
178.554 -+ all_pointers = ptrs;
178.555 -
178.556 -- /* Add ourselves to objfile event chain. */
178.557 -- target_new_objfile_chain = deprecated_target_new_objfile_hook;
178.558 -- deprecated_target_new_objfile_hook = thread_db_new_objfile;
178.559 -+ /* Some GNU/Linux systems have more than one binary-compatible copy
178.560 -+ of libthread_db. If we can find a second one, load that too.
178.561 -+ The inferior may force the use of a different threading package
178.562 -+ than we expect. Our guess for the location is somewhat hokey:
178.563 -+ strip out anything between /lib (or /lib64) and LIBTHREAD_DB_SO.
178.564 -+ If we loaded the NPTL libthread_db by default, this may find us
178.565 -+ the LinuxThreads copy. */
178.566 -+ p = strrchr (ptrs->filename, '/');
178.567 -+ while (p != NULL && p > ptrs->filename)
178.568 -+ {
178.569 -+ const char *component;
178.570 -
178.571 -- /* Register ourselves for the new inferior observer. */
178.572 -- observer_attach_inferior_created (check_for_thread_db_observer);
178.573 -+ component = memrchr (ptrs->filename, '/', p - ptrs->filename);
178.574 -+ if (component != NULL && strncmp (component, "/lib", 4) == 0)
178.575 -+ {
178.576 -+ char *new_name = xmalloc (p - ptrs->filename + 2
178.577 -+ + strlen (LIBTHREAD_DB_SO));
178.578 -+ memcpy (new_name, ptrs->filename, p - ptrs->filename + 1);
178.579 -+ strcpy (new_name + (p - ptrs->filename) + 1, LIBTHREAD_DB_SO);
178.580 -+ ptrs->next = thread_db_load (new_name);
178.581 -+ xfree (new_name);
178.582 -+ break;
178.583 -+ }
178.584 -+ p = component;
178.585 - }
178.586 -+
178.587 -+ init_thread_db_ops ();
178.588 -+ add_target (&thread_db_ops);
178.589 -+
178.590 -+ /* Add ourselves to objfile event chain. */
178.591 -+ target_new_objfile_chain = deprecated_target_new_objfile_hook;
178.592 -+ deprecated_target_new_objfile_hook = thread_db_new_objfile;
178.593 -+
178.594 -+ /* Register ourselves for the new inferior observer. */
178.595 -+ observer_attach_inferior_created (check_for_thread_db_observer);
178.596 - }
179.1 --- a/patches/gdb/6.3/720-debian_static-threads-test.patch Tue Aug 14 19:32:22 2007 +0000
179.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
179.3 @@ -1,36 +0,0 @@
179.4 -Update staticthreads.exp to handle debugging info in libpthread.a.
179.5 -
179.6 -Index: gdb-6.3/gdb/testsuite/gdb.threads/staticthreads.exp
179.7 -===================================================================
179.8 ---- gdb-6.3.orig/gdb/testsuite/gdb.threads/staticthreads.exp 2004-11-10 10:35:15.000000000 -0500
179.9 -+++ gdb-6.3/gdb/testsuite/gdb.threads/staticthreads.exp 2004-11-10 11:22:48.671121466 -0500
179.10 -@@ -53,6 +53,10 @@ gdb_test_multiple "continue" "$test" {
179.11 - -re " sem_post .*$gdb_prompt " {
179.12 - pass "$test"
179.13 - }
179.14 -+ -re " (.*_)sem_post .*$gdb_prompt " {
179.15 -+ # Glibc uses aliases for internal symbols; match __new_sem_post.
179.16 -+ pass "$test"
179.17 -+ }
179.18 - -re "Program received signal .*$gdb_prompt " {
179.19 - kfail gdb/1328 "$test"
179.20 - }
179.21 -@@ -64,8 +68,16 @@ gdb_test_multiple "continue" "$test" {
179.22 -
179.23 - rerun_to_main
179.24 - gdb_test "handle SIG32 nostop noprint pass"
179.25 --set test "Handle SIG32 helps"
179.26 --gdb_test "continue" " sem_post .*" "handle SIG32 helps"
179.27 -+set test "handle SIG32 helps"
179.28 -+gdb_test_multiple "continue" "$test" {
179.29 -+ -re " sem_post .*$gdb_prompt $" {
179.30 -+ pass "$test"
179.31 -+ }
179.32 -+ -re " (.*_)sem_post .*$gdb_prompt $" {
179.33 -+ # Glibc uses aliases for internal symbols; match __new_sem_post.
179.34 -+ pass "$test"
179.35 -+ }
179.36 -+}
179.37 -
179.38 -
179.39 - # See if info threads produces anything approaching a thread list.
180.1 --- a/patches/gdb/6.3/730-debian_gdb-fix-tracefork-check.patch Tue Aug 14 19:32:22 2007 +0000
180.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
180.3 @@ -1,225 +0,0 @@
180.4 -Status: submitted for comments
180.5 -
180.6 -2004-11-12 Daniel Jacobowitz <dan@debian.org>
180.7 -
180.8 - * linux-nat.c (my_waitpid): New function.
180.9 - (linux_test_for_tracefork): Make more robust and verbose. Take
180.10 - an ORIGINAL_PID argument and test for PTRACE_SETOPTIONS first.
180.11 - (linux_supports_tracefork, linux_supports_tracevforkdone): Take a PID
180.12 - argument. Update calls to linux_test_for_tracefork.
180.13 - (linux_enable_event_reporting, child_follow_fork)
180.14 - (child_insert_fork_catchpoint, child_insert_vfork_catchpoint)
180.15 - (child_insert_exec_catchpoint): Update calls to
180.16 - linux_supports_tracefork and linux_supports_tracevforkdone.
180.17 -
180.18 -Index: gdb-6.3/gdb/linux-nat.c
180.19 -===================================================================
180.20 ---- gdb-6.3.orig/gdb/linux-nat.c 2004-10-08 16:29:47.000000000 -0400
180.21 -+++ gdb-6.3/gdb/linux-nat.c 2004-11-13 16:41:51.368720845 -0500
180.22 -@@ -150,18 +150,47 @@ linux_tracefork_child (void)
180.23 - exit (0);
180.24 - }
180.25 -
180.26 --/* Determine if PTRACE_O_TRACEFORK can be used to follow fork events. We
180.27 -+/* Wrapper function for waitpid which handles EINTR. */
180.28 -+
180.29 -+static int
180.30 -+my_waitpid (int pid, int *status, int flags)
180.31 -+{
180.32 -+ int ret;
180.33 -+ do
180.34 -+ {
180.35 -+ ret = waitpid (pid, status, flags);
180.36 -+ }
180.37 -+ while (ret == -1 && errno == EINTR);
180.38 -+
180.39 -+ return ret;
180.40 -+}
180.41 -+
180.42 -+/* Determine if PTRACE_O_TRACEFORK can be used to follow fork events.
180.43 -+
180.44 -+ First, we try to enable fork tracing on ORIGINAL_PID. If this fails,
180.45 -+ we know that the feature is not available. This may change the tracing
180.46 -+ options for ORIGINAL_PID, but we'll be setting them shortly anyway.
180.47 -+
180.48 -+ However, if it succeeds, we don't know for sure that the feature is
180.49 -+ available; old versions of PTRACE_SETOPTIONS ignored unknown options. We
180.50 - create a child process, attach to it, use PTRACE_SETOPTIONS to enable
180.51 -- fork tracing, and let it fork. If the process exits, we assume that
180.52 -- we can't use TRACEFORK; if we get the fork notification, and we can
180.53 -- extract the new child's PID, then we assume that we can. */
180.54 -+ fork tracing, and let it fork. If the process exits, we assume that we
180.55 -+ can't use TRACEFORK; if we get the fork notification, and we can extract
180.56 -+ the new child's PID, then we assume that we can. */
180.57 -
180.58 - static void
180.59 --linux_test_for_tracefork (void)
180.60 -+linux_test_for_tracefork (int original_pid)
180.61 - {
180.62 - int child_pid, ret, status;
180.63 - long second_pid;
180.64 -
180.65 -+ linux_supports_tracefork_flag = 0;
180.66 -+ linux_supports_tracevforkdone_flag = 0;
180.67 -+
180.68 -+ ret = ptrace (PTRACE_SETOPTIONS, original_pid, 0, PTRACE_O_TRACEFORK);
180.69 -+ if (ret != 0)
180.70 -+ return;
180.71 -+
180.72 - child_pid = fork ();
180.73 - if (child_pid == -1)
180.74 - perror_with_name ("linux_test_for_tracefork: fork");
180.75 -@@ -169,7 +198,7 @@ linux_test_for_tracefork (void)
180.76 - if (child_pid == 0)
180.77 - linux_tracefork_child ();
180.78 -
180.79 -- ret = waitpid (child_pid, &status, 0);
180.80 -+ ret = my_waitpid (child_pid, &status, 0);
180.81 - if (ret == -1)
180.82 - perror_with_name ("linux_test_for_tracefork: waitpid");
180.83 - else if (ret != child_pid)
180.84 -@@ -177,13 +206,23 @@ linux_test_for_tracefork (void)
180.85 - if (! WIFSTOPPED (status))
180.86 - error ("linux_test_for_tracefork: waitpid: unexpected status %d.", status);
180.87 -
180.88 -- linux_supports_tracefork_flag = 0;
180.89 --
180.90 - ret = ptrace (PTRACE_SETOPTIONS, child_pid, 0, PTRACE_O_TRACEFORK);
180.91 - if (ret != 0)
180.92 - {
180.93 -- ptrace (PTRACE_KILL, child_pid, 0, 0);
180.94 -- waitpid (child_pid, &status, 0);
180.95 -+ ret = ptrace (PTRACE_KILL, child_pid, 0, 0);
180.96 -+ if (ret != 0)
180.97 -+ {
180.98 -+ warning ("linux_test_for_tracefork: failed to kill child");
180.99 -+ return;
180.100 -+ }
180.101 -+
180.102 -+ ret = my_waitpid (child_pid, &status, 0);
180.103 -+ if (ret != child_pid)
180.104 -+ warning ("linux_test_for_tracefork: failed to wait for killed child");
180.105 -+ else if (!WIFSIGNALED (status))
180.106 -+ warning ("linux_test_for_tracefork: unexpected wait status 0x%x from "
180.107 -+ "killed child", status);
180.108 -+
180.109 - return;
180.110 - }
180.111 -
180.112 -@@ -192,8 +231,12 @@ linux_test_for_tracefork (void)
180.113 - PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORKDONE);
180.114 - linux_supports_tracevforkdone_flag = (ret == 0);
180.115 -
180.116 -- ptrace (PTRACE_CONT, child_pid, 0, 0);
180.117 -- ret = waitpid (child_pid, &status, 0);
180.118 -+ ret = ptrace (PTRACE_CONT, child_pid, 0, 0);
180.119 -+ if (ret != 0)
180.120 -+ warning ("linux_test_for_tracefork: failed to resume child");
180.121 -+
180.122 -+ ret = my_waitpid (child_pid, &status, 0);
180.123 -+
180.124 - if (ret == child_pid && WIFSTOPPED (status)
180.125 - && status >> 16 == PTRACE_EVENT_FORK)
180.126 - {
180.127 -@@ -204,34 +247,38 @@ linux_test_for_tracefork (void)
180.128 - int second_status;
180.129 -
180.130 - linux_supports_tracefork_flag = 1;
180.131 -- waitpid (second_pid, &second_status, 0);
180.132 -- ptrace (PTRACE_DETACH, second_pid, 0, 0);
180.133 -+ my_waitpid (second_pid, &second_status, 0);
180.134 -+ ret = ptrace (PTRACE_KILL, second_pid, 0, 0);
180.135 -+ if (ret != 0)
180.136 -+ warning ("linux_test_for_tracefork: failed to kill second child");
180.137 - }
180.138 - }
180.139 -+ else
180.140 -+ warning ("linux_test_for_tracefork: unexpected result from waitpid "
180.141 -+ "(%d, status 0x%x)", ret, status);
180.142 -
180.143 -- if (WIFSTOPPED (status))
180.144 -- {
180.145 -- ptrace (PTRACE_DETACH, child_pid, 0, 0);
180.146 -- waitpid (child_pid, &status, 0);
180.147 -- }
180.148 -+ ret = ptrace (PTRACE_KILL, child_pid, 0, 0);
180.149 -+ if (ret != 0)
180.150 -+ warning ("linux_test_for_tracefork: failed to kill child");
180.151 -+ my_waitpid (child_pid, &status, 0);
180.152 - }
180.153 -
180.154 - /* Return non-zero iff we have tracefork functionality available.
180.155 - This function also sets linux_supports_tracefork_flag. */
180.156 -
180.157 - static int
180.158 --linux_supports_tracefork (void)
180.159 -+linux_supports_tracefork (int pid)
180.160 - {
180.161 - if (linux_supports_tracefork_flag == -1)
180.162 -- linux_test_for_tracefork ();
180.163 -+ linux_test_for_tracefork (pid);
180.164 - return linux_supports_tracefork_flag;
180.165 - }
180.166 -
180.167 - static int
180.168 --linux_supports_tracevforkdone (void)
180.169 -+linux_supports_tracevforkdone (int pid)
180.170 - {
180.171 - if (linux_supports_tracefork_flag == -1)
180.172 -- linux_test_for_tracefork ();
180.173 -+ linux_test_for_tracefork (pid);
180.174 - return linux_supports_tracevforkdone_flag;
180.175 - }
180.176 -
180.177 -@@ -242,12 +289,12 @@ linux_enable_event_reporting (ptid_t pti
180.178 - int pid = ptid_get_pid (ptid);
180.179 - int options;
180.180 -
180.181 -- if (! linux_supports_tracefork ())
180.182 -+ if (! linux_supports_tracefork (pid))
180.183 - return;
180.184 -
180.185 - options = PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORK | PTRACE_O_TRACEEXEC
180.186 - | PTRACE_O_TRACECLONE;
180.187 -- if (linux_supports_tracevforkdone ())
180.188 -+ if (linux_supports_tracevforkdone (pid))
180.189 - options |= PTRACE_O_TRACEVFORKDONE;
180.190 -
180.191 - /* Do not enable PTRACE_O_TRACEEXIT until GDB is more prepared to support
180.192 -@@ -308,7 +355,8 @@ child_follow_fork (int follow_child)
180.193 -
180.194 - if (has_vforked)
180.195 - {
180.196 -- if (linux_supports_tracevforkdone ())
180.197 -+ gdb_assert (linux_supports_tracefork_flag >= 0);
180.198 -+ if (linux_supports_tracevforkdone (0))
180.199 - {
180.200 - int status;
180.201 -
180.202 -@@ -476,7 +524,7 @@ linux_handle_extended_wait (int pid, int
180.203 - int
180.204 - child_insert_fork_catchpoint (int pid)
180.205 - {
180.206 -- if (! linux_supports_tracefork ())
180.207 -+ if (! linux_supports_tracefork (pid))
180.208 - error ("Your system does not support fork catchpoints.");
180.209 -
180.210 - return 0;
180.211 -@@ -485,7 +533,7 @@ child_insert_fork_catchpoint (int pid)
180.212 - int
180.213 - child_insert_vfork_catchpoint (int pid)
180.214 - {
180.215 -- if (!linux_supports_tracefork ())
180.216 -+ if (!linux_supports_tracefork (pid))
180.217 - error ("Your system does not support vfork catchpoints.");
180.218 -
180.219 - return 0;
180.220 -@@ -494,7 +542,7 @@ child_insert_vfork_catchpoint (int pid)
180.221 - int
180.222 - child_insert_exec_catchpoint (int pid)
180.223 - {
180.224 -- if (!linux_supports_tracefork ())
180.225 -+ if (!linux_supports_tracefork (pid))
180.226 - error ("Your system does not support exec catchpoints.");
180.227 -
180.228 - return 0;
181.1 --- a/patches/gdb/6.3/740-debian_make-cv-type-crash.patch Tue Aug 14 19:32:22 2007 +0000
181.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
181.3 @@ -1,132 +0,0 @@
181.4 -2004-11-04 Jim Blandy <jimb@redhat.com>
181.5 -
181.6 - * gdbtypes.c (make_qualified_type): Doc fix. Add assertion to
181.7 - prevent cross-objfile references.
181.8 - (make_cv_type): Doc fix. Don't create cross-objfile references,
181.9 - even for stub types.
181.10 - (replace_type): Add assertion to prevent cross-objfile references.
181.11 - (check_typedef): Never resolve a stub type by copying over a type
181.12 - from another file.
181.13 -
181.14 -Index: src/gdb/gdbtypes.c
181.15 -===================================================================
181.16 -RCS file: /big/fsf/rsync/src-cvs/src/gdb/gdbtypes.c,v
181.17 -retrieving revision 1.92
181.18 -retrieving revision 1.93
181.19 -diff -u -p -r1.92 -r1.93
181.20 ---- src/gdb/gdbtypes.c 8 Aug 2004 17:18:16 -0000 1.92
181.21 -+++ src/gdb/gdbtypes.c 4 Nov 2004 17:50:16 -0000 1.93
181.22 -@@ -433,7 +433,9 @@ address_space_int_to_name (int space_fla
181.23 - }
181.24 -
181.25 - /* Create a new type with instance flags NEW_FLAGS, based on TYPE.
181.26 -- If STORAGE is non-NULL, create the new type instance there. */
181.27 -+
181.28 -+ If STORAGE is non-NULL, create the new type instance there.
181.29 -+ STORAGE must be in the same obstack as TYPE. */
181.30 -
181.31 - static struct type *
181.32 - make_qualified_type (struct type *type, int new_flags,
181.33 -@@ -453,6 +455,12 @@ make_qualified_type (struct type *type,
181.34 - ntype = alloc_type_instance (type);
181.35 - else
181.36 - {
181.37 -+ /* If STORAGE was provided, it had better be in the same objfile as
181.38 -+ TYPE. Otherwise, we can't link it into TYPE's cv chain: if one
181.39 -+ objfile is freed and the other kept, we'd have dangling
181.40 -+ pointers. */
181.41 -+ gdb_assert (TYPE_OBJFILE (type) == TYPE_OBJFILE (storage));
181.42 -+
181.43 - ntype = storage;
181.44 - TYPE_MAIN_TYPE (ntype) = TYPE_MAIN_TYPE (type);
181.45 - TYPE_CHAIN (ntype) = ntype;
181.46 -@@ -501,11 +509,12 @@ make_type_with_address_space (struct typ
181.47 - CNST is a flag for setting the const attribute
181.48 - VOLTL is a flag for setting the volatile attribute
181.49 - TYPE is the base type whose variant we are creating.
181.50 -- TYPEPTR, if nonzero, points
181.51 -- to a pointer to memory where the reference type should be stored.
181.52 -- If *TYPEPTR is zero, update it to point to the reference type we return.
181.53 -- We allocate new memory if needed. */
181.54 -
181.55 -+ If TYPEPTR and *TYPEPTR are non-zero, then *TYPEPTR points to
181.56 -+ storage to hold the new qualified type; *TYPEPTR and TYPE must be
181.57 -+ in the same objfile. Otherwise, allocate fresh memory for the new
181.58 -+ type whereever TYPE lives. If TYPEPTR is non-zero, set it to the
181.59 -+ new type we construct. */
181.60 - struct type *
181.61 - make_cv_type (int cnst, int voltl, struct type *type, struct type **typeptr)
181.62 - {
181.63 -@@ -524,20 +533,19 @@ make_cv_type (int cnst, int voltl, struc
181.64 -
181.65 - if (typeptr && *typeptr != NULL)
181.66 - {
181.67 -- /* Objfile is per-core-type. This const-qualified type had best
181.68 -- belong to the same objfile as the type it is qualifying, unless
181.69 -- we are overwriting a stub type, in which case the safest thing
181.70 -- to do is to copy the core type into the new objfile. */
181.71 --
181.72 -- gdb_assert (TYPE_OBJFILE (*typeptr) == TYPE_OBJFILE (type)
181.73 -- || TYPE_STUB (*typeptr));
181.74 -- if (TYPE_OBJFILE (*typeptr) != TYPE_OBJFILE (type))
181.75 -- {
181.76 -- TYPE_MAIN_TYPE (*typeptr)
181.77 -- = TYPE_ALLOC (*typeptr, sizeof (struct main_type));
181.78 -- *TYPE_MAIN_TYPE (*typeptr)
181.79 -- = *TYPE_MAIN_TYPE (type);
181.80 -- }
181.81 -+ /* TYPE and *TYPEPTR must be in the same objfile. We can't have
181.82 -+ a C-V variant chain that threads across objfiles: if one
181.83 -+ objfile gets freed, then the other has a broken C-V chain.
181.84 -+
181.85 -+ This code used to try to copy over the main type from TYPE to
181.86 -+ *TYPEPTR if they were in different objfiles, but that's
181.87 -+ wrong, too: TYPE may have a field list or member function
181.88 -+ lists, which refer to types of their own, etc. etc. The
181.89 -+ whole shebang would need to be copied over recursively; you
181.90 -+ can't have inter-objfile pointers. The only thing to do is
181.91 -+ to leave stub types as stub types, and look them up afresh by
181.92 -+ name each time you encounter them. */
181.93 -+ gdb_assert (TYPE_OBJFILE (*typeptr) == TYPE_OBJFILE (type));
181.94 - }
181.95 -
181.96 - ntype = make_qualified_type (type, new_flags, typeptr ? *typeptr : NULL);
181.97 -@@ -562,6 +570,12 @@ replace_type (struct type *ntype, struct
181.98 - {
181.99 - struct type *chain;
181.100 -
181.101 -+ /* These two types had better be in the same objfile. Otherwise,
181.102 -+ the assignment of one type's main type structure to the other
181.103 -+ will produce a type with references to objects (names; field
181.104 -+ lists; etc.) allocated on an objfile other than its own. */
181.105 -+ gdb_assert (TYPE_OBJFILE (ntype) == TYPE_OBJFILE (ntype));
181.106 -+
181.107 - *TYPE_MAIN_TYPE (ntype) = *TYPE_MAIN_TYPE (type);
181.108 -
181.109 - /* The type length is not a part of the main type. Update it for each
181.110 -@@ -1416,8 +1430,24 @@ check_typedef (struct type *type)
181.111 - return type;
181.112 - }
181.113 - newtype = lookup_transparent_type (name);
181.114 -+
181.115 - if (newtype)
181.116 -- make_cv_type (is_const, is_volatile, newtype, &type);
181.117 -+ {
181.118 -+ /* If the resolved type and the stub are in the same objfile,
181.119 -+ then replace the stub type with the real deal. But if
181.120 -+ they're in separate objfiles, leave the stub alone; we'll
181.121 -+ just look up the transparent type every time we call
181.122 -+ check_typedef. We can't create pointers between types
181.123 -+ allocated to different objfiles, since they may have
181.124 -+ different lifetimes. Trying to copy NEWTYPE over to TYPE's
181.125 -+ objfile is pointless, too, since you'll have to move over any
181.126 -+ other types NEWTYPE refers to, which could be an unbounded
181.127 -+ amount of stuff. */
181.128 -+ if (TYPE_OBJFILE (newtype) == TYPE_OBJFILE (type))
181.129 -+ make_cv_type (is_const, is_volatile, newtype, &type);
181.130 -+ else
181.131 -+ type = newtype;
181.132 -+ }
181.133 - }
181.134 - /* Otherwise, rely on the stub flag being set for opaque/stubbed types */
181.135 - else if (TYPE_STUB (type) && !currently_reading_symtab)
182.1 --- a/patches/gdb/6.3/750-debian_sparc-singlestep.patch Tue Aug 14 19:32:22 2007 +0000
182.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
182.3 @@ -1,37 +0,0 @@
182.4 -Status: submitted for comments
182.5 -
182.6 -2004-11-13 Daniel Jacobowitz <dan@debian.org>
182.7 -
182.8 - * sparc-tdep.c (sparc_software_single_step): Handle stepping to NULL.
182.9 -
182.10 -Index: gdb-6.3/gdb/sparc-tdep.c
182.11 -===================================================================
182.12 ---- gdb-6.3.orig/gdb/sparc-tdep.c 2004-06-06 22:02:55.000000000 -0400
182.13 -+++ gdb-6.3/gdb/sparc-tdep.c 2004-11-13 17:06:05.000000000 -0500
182.14 -@@ -1026,10 +1026,10 @@
182.15 -
182.16 - if (insert_breakpoints_p)
182.17 - {
182.18 -- CORE_ADDR pc;
182.19 -+ CORE_ADDR pc, orig_npc;
182.20 -
182.21 - pc = sparc_address_from_register (tdep->pc_regnum);
182.22 -- npc = sparc_address_from_register (tdep->npc_regnum);
182.23 -+ orig_npc = npc = sparc_address_from_register (tdep->npc_regnum);
182.24 -
182.25 - /* Analyze the instruction at PC. */
182.26 - nnpc = sparc_analyze_control_transfer (pc, &npc);
182.27 -@@ -1039,9 +1039,10 @@
182.28 - target_insert_breakpoint (nnpc, nnpc_save);
182.29 -
182.30 - /* Assert that we have set at least one breakpoint, and that
182.31 -- they're not set at the same spot. */
182.32 -- gdb_assert (npc != 0 || nnpc != 0);
182.33 -- gdb_assert (nnpc != npc);
182.34 -+ they're not set at the same spot - unless we're going
182.35 -+ from here straight to NULL, i.e. a call or jump to 0. */
182.36 -+ gdb_assert (npc != 0 || nnpc != 0 || orig_npc == 0);
182.37 -+ gdb_assert (nnpc != npc || orig_npc == 0);
182.38 - }
182.39 - else
182.40 - {
183.1 --- a/patches/gdb/6.3/760-debian_vsyscall-bfd-close-result.patch Tue Aug 14 19:32:22 2007 +0000
183.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
183.3 @@ -1,20 +0,0 @@
183.4 -2004-10-24 Daniel Jacobowitz <dan@debian.org>
183.5 -
183.6 - * opncls.c (bfd_close): Return TRUE for BFD_IN_MEMORY.
183.7 -
183.8 -Index: src/bfd/opncls.c
183.9 -===================================================================
183.10 -RCS file: /big/fsf/rsync/src-cvs/src/bfd/opncls.c,v
183.11 -retrieving revision 1.25
183.12 -diff -u -p -r1.25 opncls.c
183.13 ---- src/bfd/opncls.c 10 Oct 2004 13:58:05 -0000 1.25
183.14 -+++ src/bfd/opncls.c 24 Oct 2004 17:52:53 -0000
183.15 -@@ -598,7 +598,7 @@ bfd_close (bfd *abfd)
183.16 - if (!(abfd->flags & BFD_IN_MEMORY))
183.17 - ret = abfd->iovec->bclose (abfd);
183.18 - else
183.19 -- ret = 0;
183.20 -+ ret = TRUE;
183.21 -
183.22 - /* If the file was open for writing and is now executable,
183.23 - make it so. */
184.1 --- a/patches/gdb/6.3/770-debian_vfork-done-spelling.patch Tue Aug 14 19:32:22 2007 +0000
184.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
184.3 @@ -1,31 +0,0 @@
184.4 -Index: gdb-6.3/gdb/linux-nat.c
184.5 -===================================================================
184.6 ---- gdb-6.3.orig/gdb/linux-nat.c 2004-11-14 00:36:41.000000000 -0500
184.7 -+++ gdb-6.3/gdb/linux-nat.c 2004-11-15 11:51:43.954161476 -0500
184.8 -@@ -69,7 +69,7 @@
184.9 - #define PTRACE_EVENT_VFORK 2
184.10 - #define PTRACE_EVENT_CLONE 3
184.11 - #define PTRACE_EVENT_EXEC 4
184.12 --#define PTRACE_EVENT_VFORKDONE 5
184.13 -+#define PTRACE_EVENT_VFORK_DONE 5
184.14 - #define PTRACE_EVENT_EXIT 6
184.15 -
184.16 - #endif /* PTRACE_EVENT_FORK */
184.17 -@@ -362,7 +362,7 @@ child_follow_fork (int follow_child)
184.18 -
184.19 - ptrace (PTRACE_CONT, parent_pid, 0, 0);
184.20 - waitpid (parent_pid, &status, __WALL);
184.21 -- if ((status >> 16) != PTRACE_EVENT_VFORKDONE)
184.22 -+ if ((status >> 16) != PTRACE_EVENT_VFORK_DONE)
184.23 - warning ("Unexpected waitpid result %06x when waiting for "
184.24 - "vfork-done", status);
184.25 - }
184.26 -@@ -434,7 +434,7 @@ child_follow_fork (int follow_child)
184.27 - generally not encounter vfork (vfork is defined to fork
184.28 - in libpthread.so).
184.29 -
184.30 -- The holding part is very easy if we have VFORKDONE events;
184.31 -+ The holding part is very easy if we have VFORK_DONE events;
184.32 - but keeping track of both processes is beyond GDB at the
184.33 - moment. So we don't expose the parent to the rest of GDB.
184.34 - Instead we quietly hold onto it until such time as we can
185.1 --- a/patches/gdb/6.3/780-debian_gdbserver-rdynamic.patch Tue Aug 14 19:32:22 2007 +0000
185.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
185.3 @@ -1,675 +0,0 @@
185.4 -Status: Commited to GDB after 6.3.
185.5 -
185.6 -Index: gdb-6.3/gdb/gdbserver/acinclude.m4
185.7 -===================================================================
185.8 ---- gdb-6.3.orig/gdb/gdbserver/acinclude.m4 2002-06-11 13:32:39.000000000 -0400
185.9 -+++ gdb-6.3/gdb/gdbserver/acinclude.m4 2004-12-07 17:19:31.115089905 -0500
185.10 -@@ -13,6 +13,7 @@ AC_DEFUN([SRV_CHECK_THREAD_DB],
185.11 - void ps_lsetregs() {}
185.12 - void ps_lgetfpregs() {}
185.13 - void ps_lsetfpregs() {}
185.14 -+ void ps_get_thread_area() {}
185.15 - void ps_getpid() {}],
185.16 - [td_ta_new();],
185.17 - [srv_cv_thread_db="-lthread_db"],
185.18 -@@ -32,10 +33,11 @@ AC_DEFUN([SRV_CHECK_THREAD_DB],
185.19 - void ps_lsetregs() {}
185.20 - void ps_lgetfpregs() {}
185.21 - void ps_lsetfpregs() {}
185.22 -+ void ps_get_thread_area() {}
185.23 - void ps_getpid() {}],
185.24 - [td_ta_new();],
185.25 - [srv_cv_thread_db="$thread_db"],
185.26 - [srv_cv_thread_db=no])
185.27 -+ ]])
185.28 - LIBS="$old_LIBS"
185.29 -- ]])
185.30 - )])
185.31 -Index: gdb-6.3/gdb/gdbserver/configure
185.32 -===================================================================
185.33 ---- gdb-6.3.orig/gdb/gdbserver/configure 2004-10-16 12:18:54.000000000 -0400
185.34 -+++ gdb-6.3/gdb/gdbserver/configure 2004-12-07 17:22:17.343129771 -0500
185.35 -@@ -28,6 +28,7 @@ program_suffix=NONE
185.36 - program_transform_name=s,x,x,
185.37 - silent=
185.38 - site=
185.39 -+sitefile=
185.40 - srcdir=
185.41 - target=NONE
185.42 - verbose=
185.43 -@@ -142,6 +143,7 @@ Configuration:
185.44 - --help print this message
185.45 - --no-create do not create output files
185.46 - --quiet, --silent do not print \`checking...' messages
185.47 -+ --site-file=FILE use FILE as the site file
185.48 - --version print the version of autoconf that created configure
185.49 - Directory and file names:
185.50 - --prefix=PREFIX install architecture-independent files in PREFIX
185.51 -@@ -312,6 +314,11 @@ EOF
185.52 - -site=* | --site=* | --sit=*)
185.53 - site="$ac_optarg" ;;
185.54 -
185.55 -+ -site-file | --site-file | --site-fil | --site-fi | --site-f)
185.56 -+ ac_prev=sitefile ;;
185.57 -+ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
185.58 -+ sitefile="$ac_optarg" ;;
185.59 -+
185.60 - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
185.61 - ac_prev=srcdir ;;
185.62 - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
185.63 -@@ -477,12 +484,16 @@ fi
185.64 - srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
185.65 -
185.66 - # Prefer explicitly selected file to automatically selected ones.
185.67 --if test -z "$CONFIG_SITE"; then
185.68 -- if test "x$prefix" != xNONE; then
185.69 -- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
185.70 -- else
185.71 -- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
185.72 -+if test -z "$sitefile"; then
185.73 -+ if test -z "$CONFIG_SITE"; then
185.74 -+ if test "x$prefix" != xNONE; then
185.75 -+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
185.76 -+ else
185.77 -+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
185.78 -+ fi
185.79 - fi
185.80 -+else
185.81 -+ CONFIG_SITE="$sitefile"
185.82 - fi
185.83 - for ac_site_file in $CONFIG_SITE; do
185.84 - if test -r "$ac_site_file"; then
185.85 -@@ -526,7 +537,7 @@ fi
185.86 - # Extract the first word of "gcc", so it can be a program name with args.
185.87 - set dummy gcc; ac_word=$2
185.88 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
185.89 --echo "configure:530: checking for $ac_word" >&5
185.90 -+echo "configure:541: checking for $ac_word" >&5
185.91 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
185.92 - echo $ac_n "(cached) $ac_c" 1>&6
185.93 - else
185.94 -@@ -556,7 +567,7 @@ if test -z "$CC"; then
185.95 - # Extract the first word of "cc", so it can be a program name with args.
185.96 - set dummy cc; ac_word=$2
185.97 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
185.98 --echo "configure:560: checking for $ac_word" >&5
185.99 -+echo "configure:571: checking for $ac_word" >&5
185.100 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
185.101 - echo $ac_n "(cached) $ac_c" 1>&6
185.102 - else
185.103 -@@ -607,7 +618,7 @@ fi
185.104 - # Extract the first word of "cl", so it can be a program name with args.
185.105 - set dummy cl; ac_word=$2
185.106 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
185.107 --echo "configure:611: checking for $ac_word" >&5
185.108 -+echo "configure:622: checking for $ac_word" >&5
185.109 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
185.110 - echo $ac_n "(cached) $ac_c" 1>&6
185.111 - else
185.112 -@@ -639,7 +650,7 @@ fi
185.113 - fi
185.114 -
185.115 - echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
185.116 --echo "configure:643: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
185.117 -+echo "configure:654: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
185.118 -
185.119 - ac_ext=c
185.120 - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
185.121 -@@ -650,12 +661,12 @@ cross_compiling=$ac_cv_prog_cc_cross
185.122 -
185.123 - cat > conftest.$ac_ext << EOF
185.124 -
185.125 --#line 654 "configure"
185.126 -+#line 665 "configure"
185.127 - #include "confdefs.h"
185.128 -
185.129 - main(){return(0);}
185.130 - EOF
185.131 --if { (eval echo configure:659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
185.132 -+if { (eval echo configure:670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
185.133 - ac_cv_prog_cc_works=yes
185.134 - # If we can't run a trivial program, we are probably using a cross compiler.
185.135 - if (./conftest; exit) 2>/dev/null; then
185.136 -@@ -681,12 +692,12 @@ if test $ac_cv_prog_cc_works = no; then
185.137 - { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
185.138 - fi
185.139 - echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
185.140 --echo "configure:685: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
185.141 -+echo "configure:696: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
185.142 - echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
185.143 - cross_compiling=$ac_cv_prog_cc_cross
185.144 -
185.145 - echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
185.146 --echo "configure:690: checking whether we are using GNU C" >&5
185.147 -+echo "configure:701: checking whether we are using GNU C" >&5
185.148 - if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
185.149 - echo $ac_n "(cached) $ac_c" 1>&6
185.150 - else
185.151 -@@ -695,7 +706,7 @@ else
185.152 - yes;
185.153 - #endif
185.154 - EOF
185.155 --if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
185.156 -+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
185.157 - ac_cv_prog_gcc=yes
185.158 - else
185.159 - ac_cv_prog_gcc=no
185.160 -@@ -714,7 +725,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
185.161 - ac_save_CFLAGS="$CFLAGS"
185.162 - CFLAGS=
185.163 - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
185.164 --echo "configure:718: checking whether ${CC-cc} accepts -g" >&5
185.165 -+echo "configure:729: checking whether ${CC-cc} accepts -g" >&5
185.166 - if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
185.167 - echo $ac_n "(cached) $ac_c" 1>&6
185.168 - else
185.169 -@@ -793,7 +804,7 @@ else { echo "configure: error: can not r
185.170 - fi
185.171 -
185.172 - echo $ac_n "checking host system type""... $ac_c" 1>&6
185.173 --echo "configure:797: checking host system type" >&5
185.174 -+echo "configure:808: checking host system type" >&5
185.175 -
185.176 - host_alias=$host
185.177 - case "$host_alias" in
185.178 -@@ -814,7 +825,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
185.179 - echo "$ac_t""$host" 1>&6
185.180 -
185.181 - echo $ac_n "checking target system type""... $ac_c" 1>&6
185.182 --echo "configure:818: checking target system type" >&5
185.183 -+echo "configure:829: checking target system type" >&5
185.184 -
185.185 - target_alias=$target
185.186 - case "$target_alias" in
185.187 -@@ -832,7 +843,7 @@ target_os=`echo $target | sed 's/^\([^-]
185.188 - echo "$ac_t""$target" 1>&6
185.189 -
185.190 - echo $ac_n "checking build system type""... $ac_c" 1>&6
185.191 --echo "configure:836: checking build system type" >&5
185.192 -+echo "configure:847: checking build system type" >&5
185.193 -
185.194 - build_alias=$build
185.195 - case "$build_alias" in
185.196 -@@ -867,7 +878,7 @@ test "$host_alias" != "$target_alias" &&
185.197 - # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
185.198 - # ./install, which can be erroneously created by make from ./install.sh.
185.199 - echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
185.200 --echo "configure:871: checking for a BSD compatible install" >&5
185.201 -+echo "configure:882: checking for a BSD compatible install" >&5
185.202 - if test -z "$INSTALL"; then
185.203 - if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
185.204 - echo $ac_n "(cached) $ac_c" 1>&6
185.205 -@@ -921,7 +932,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA=
185.206 -
185.207 -
185.208 - echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
185.209 --echo "configure:925: checking how to run the C preprocessor" >&5
185.210 -+echo "configure:936: checking how to run the C preprocessor" >&5
185.211 - # On Suns, sometimes $CPP names a directory.
185.212 - if test -n "$CPP" && test -d "$CPP"; then
185.213 - CPP=
185.214 -@@ -936,13 +947,13 @@ else
185.215 - # On the NeXT, cc -E runs the code through the compiler's parser,
185.216 - # not just through cpp.
185.217 - cat > conftest.$ac_ext <<EOF
185.218 --#line 940 "configure"
185.219 -+#line 951 "configure"
185.220 - #include "confdefs.h"
185.221 - #include <assert.h>
185.222 - Syntax Error
185.223 - EOF
185.224 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
185.225 --{ (eval echo configure:946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.226 -+{ (eval echo configure:957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.227 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
185.228 - if test -z "$ac_err"; then
185.229 - :
185.230 -@@ -953,13 +964,13 @@ else
185.231 - rm -rf conftest*
185.232 - CPP="${CC-cc} -E -traditional-cpp"
185.233 - cat > conftest.$ac_ext <<EOF
185.234 --#line 957 "configure"
185.235 -+#line 968 "configure"
185.236 - #include "confdefs.h"
185.237 - #include <assert.h>
185.238 - Syntax Error
185.239 - EOF
185.240 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
185.241 --{ (eval echo configure:963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.242 -+{ (eval echo configure:974: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.243 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
185.244 - if test -z "$ac_err"; then
185.245 - :
185.246 -@@ -970,13 +981,13 @@ else
185.247 - rm -rf conftest*
185.248 - CPP="${CC-cc} -nologo -E"
185.249 - cat > conftest.$ac_ext <<EOF
185.250 --#line 974 "configure"
185.251 -+#line 985 "configure"
185.252 - #include "confdefs.h"
185.253 - #include <assert.h>
185.254 - Syntax Error
185.255 - EOF
185.256 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
185.257 --{ (eval echo configure:980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.258 -+{ (eval echo configure:991: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.259 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
185.260 - if test -z "$ac_err"; then
185.261 - :
185.262 -@@ -1001,12 +1012,12 @@ fi
185.263 - echo "$ac_t""$CPP" 1>&6
185.264 -
185.265 - echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
185.266 --echo "configure:1005: checking for ANSI C header files" >&5
185.267 -+echo "configure:1016: checking for ANSI C header files" >&5
185.268 - if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
185.269 - echo $ac_n "(cached) $ac_c" 1>&6
185.270 - else
185.271 - cat > conftest.$ac_ext <<EOF
185.272 --#line 1010 "configure"
185.273 -+#line 1021 "configure"
185.274 - #include "confdefs.h"
185.275 - #include <stdlib.h>
185.276 - #include <stdarg.h>
185.277 -@@ -1014,7 +1025,7 @@ else
185.278 - #include <float.h>
185.279 - EOF
185.280 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
185.281 --{ (eval echo configure:1018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.282 -+{ (eval echo configure:1029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.283 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
185.284 - if test -z "$ac_err"; then
185.285 - rm -rf conftest*
185.286 -@@ -1031,7 +1042,7 @@ rm -f conftest*
185.287 - if test $ac_cv_header_stdc = yes; then
185.288 - # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
185.289 - cat > conftest.$ac_ext <<EOF
185.290 --#line 1035 "configure"
185.291 -+#line 1046 "configure"
185.292 - #include "confdefs.h"
185.293 - #include <string.h>
185.294 - EOF
185.295 -@@ -1049,7 +1060,7 @@ fi
185.296 - if test $ac_cv_header_stdc = yes; then
185.297 - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
185.298 - cat > conftest.$ac_ext <<EOF
185.299 --#line 1053 "configure"
185.300 -+#line 1064 "configure"
185.301 - #include "confdefs.h"
185.302 - #include <stdlib.h>
185.303 - EOF
185.304 -@@ -1070,7 +1081,7 @@ if test "$cross_compiling" = yes; then
185.305 - :
185.306 - else
185.307 - cat > conftest.$ac_ext <<EOF
185.308 --#line 1074 "configure"
185.309 -+#line 1085 "configure"
185.310 - #include "confdefs.h"
185.311 - #include <ctype.h>
185.312 - #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
185.313 -@@ -1081,7 +1092,7 @@ if (XOR (islower (i), ISLOWER (i)) || to
185.314 - exit (0); }
185.315 -
185.316 - EOF
185.317 --if { (eval echo configure:1085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
185.318 -+if { (eval echo configure:1096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
185.319 - then
185.320 - :
185.321 - else
185.322 -@@ -1109,17 +1120,17 @@ for ac_hdr in sgtty.h termio.h termios.h
185.323 - do
185.324 - ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
185.325 - echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
185.326 --echo "configure:1113: checking for $ac_hdr" >&5
185.327 -+echo "configure:1124: checking for $ac_hdr" >&5
185.328 - if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
185.329 - echo $ac_n "(cached) $ac_c" 1>&6
185.330 - else
185.331 - cat > conftest.$ac_ext <<EOF
185.332 --#line 1118 "configure"
185.333 -+#line 1129 "configure"
185.334 - #include "confdefs.h"
185.335 - #include <$ac_hdr>
185.336 - EOF
185.337 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
185.338 --{ (eval echo configure:1123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.339 -+{ (eval echo configure:1134: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
185.340 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
185.341 - if test -z "$ac_err"; then
185.342 - rm -rf conftest*
185.343 -@@ -1147,12 +1158,12 @@ done
185.344 -
185.345 -
185.346 - echo $ac_n "checking whether strerror must be declared""... $ac_c" 1>&6
185.347 --echo "configure:1151: checking whether strerror must be declared" >&5
185.348 -+echo "configure:1162: checking whether strerror must be declared" >&5
185.349 - if eval "test \"`echo '$''{'bfd_cv_decl_needed_strerror'+set}'`\" = set"; then
185.350 - echo $ac_n "(cached) $ac_c" 1>&6
185.351 - else
185.352 - cat > conftest.$ac_ext <<EOF
185.353 --#line 1156 "configure"
185.354 -+#line 1167 "configure"
185.355 - #include "confdefs.h"
185.356 -
185.357 - #include <stdio.h>
185.358 -@@ -1173,7 +1184,7 @@ int main() {
185.359 - char *(*pfn) = (char *(*)) strerror
185.360 - ; return 0; }
185.361 - EOF
185.362 --if { (eval echo configure:1177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.363 -+if { (eval echo configure:1188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.364 - rm -rf conftest*
185.365 - bfd_cv_decl_needed_strerror=no
185.366 - else
185.367 -@@ -1205,19 +1216,19 @@ fi
185.368 -
185.369 - if test "${srv_linux_regsets}" = "yes"; then
185.370 - echo $ac_n "checking for PTRACE_GETREGS""... $ac_c" 1>&6
185.371 --echo "configure:1209: checking for PTRACE_GETREGS" >&5
185.372 -+echo "configure:1220: checking for PTRACE_GETREGS" >&5
185.373 - if eval "test \"`echo '$''{'gdbsrv_cv_have_ptrace_getregs'+set}'`\" = set"; then
185.374 - echo $ac_n "(cached) $ac_c" 1>&6
185.375 - else
185.376 - cat > conftest.$ac_ext <<EOF
185.377 --#line 1214 "configure"
185.378 -+#line 1225 "configure"
185.379 - #include "confdefs.h"
185.380 - #include <sys/ptrace.h>
185.381 - int main() {
185.382 - PTRACE_GETREGS;
185.383 - ; return 0; }
185.384 - EOF
185.385 --if { (eval echo configure:1221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.386 -+if { (eval echo configure:1232: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.387 - rm -rf conftest*
185.388 - gdbsrv_cv_have_ptrace_getregs=yes
185.389 - else
185.390 -@@ -1238,19 +1249,19 @@ EOF
185.391 - fi
185.392 -
185.393 - echo $ac_n "checking for PTRACE_GETFPXREGS""... $ac_c" 1>&6
185.394 --echo "configure:1242: checking for PTRACE_GETFPXREGS" >&5
185.395 -+echo "configure:1253: checking for PTRACE_GETFPXREGS" >&5
185.396 - if eval "test \"`echo '$''{'gdbsrv_cv_have_ptrace_getfpxregs'+set}'`\" = set"; then
185.397 - echo $ac_n "(cached) $ac_c" 1>&6
185.398 - else
185.399 - cat > conftest.$ac_ext <<EOF
185.400 --#line 1247 "configure"
185.401 -+#line 1258 "configure"
185.402 - #include "confdefs.h"
185.403 - #include <sys/ptrace.h>
185.404 - int main() {
185.405 - PTRACE_GETFPXREGS;
185.406 - ; return 0; }
185.407 - EOF
185.408 --if { (eval echo configure:1254: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.409 -+if { (eval echo configure:1265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.410 - rm -rf conftest*
185.411 - gdbsrv_cv_have_ptrace_getfpxregs=yes
185.412 - else
185.413 -@@ -1273,12 +1284,12 @@ fi
185.414 -
185.415 - if test "$ac_cv_header_sys_procfs_h" = yes; then
185.416 - echo $ac_n "checking for lwpid_t in sys/procfs.h""... $ac_c" 1>&6
185.417 --echo "configure:1277: checking for lwpid_t in sys/procfs.h" >&5
185.418 -+echo "configure:1288: checking for lwpid_t in sys/procfs.h" >&5
185.419 - if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpid_t'+set}'`\" = set"; then
185.420 - echo $ac_n "(cached) $ac_c" 1>&6
185.421 - else
185.422 - cat > conftest.$ac_ext <<EOF
185.423 --#line 1282 "configure"
185.424 -+#line 1293 "configure"
185.425 - #include "confdefs.h"
185.426 -
185.427 - #define _SYSCALL32
185.428 -@@ -1287,7 +1298,7 @@ int main() {
185.429 - lwpid_t avar
185.430 - ; return 0; }
185.431 - EOF
185.432 --if { (eval echo configure:1291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.433 -+if { (eval echo configure:1302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.434 - rm -rf conftest*
185.435 - bfd_cv_have_sys_procfs_type_lwpid_t=yes
185.436 - else
185.437 -@@ -1309,12 +1320,12 @@ EOF
185.438 - echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpid_t" 1>&6
185.439 -
185.440 - echo $ac_n "checking for psaddr_t in sys/procfs.h""... $ac_c" 1>&6
185.441 --echo "configure:1313: checking for psaddr_t in sys/procfs.h" >&5
185.442 -+echo "configure:1324: checking for psaddr_t in sys/procfs.h" >&5
185.443 - if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psaddr_t'+set}'`\" = set"; then
185.444 - echo $ac_n "(cached) $ac_c" 1>&6
185.445 - else
185.446 - cat > conftest.$ac_ext <<EOF
185.447 --#line 1318 "configure"
185.448 -+#line 1329 "configure"
185.449 - #include "confdefs.h"
185.450 -
185.451 - #define _SYSCALL32
185.452 -@@ -1323,7 +1334,7 @@ int main() {
185.453 - psaddr_t avar
185.454 - ; return 0; }
185.455 - EOF
185.456 --if { (eval echo configure:1327: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.457 -+if { (eval echo configure:1338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.458 - rm -rf conftest*
185.459 - bfd_cv_have_sys_procfs_type_psaddr_t=yes
185.460 - else
185.461 -@@ -1345,12 +1356,12 @@ EOF
185.462 - echo "$ac_t""$bfd_cv_have_sys_procfs_type_psaddr_t" 1>&6
185.463 -
185.464 - echo $ac_n "checking for prgregset_t in sys/procfs.h""... $ac_c" 1>&6
185.465 --echo "configure:1349: checking for prgregset_t in sys/procfs.h" >&5
185.466 -+echo "configure:1360: checking for prgregset_t in sys/procfs.h" >&5
185.467 - if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prgregset_t'+set}'`\" = set"; then
185.468 - echo $ac_n "(cached) $ac_c" 1>&6
185.469 - else
185.470 - cat > conftest.$ac_ext <<EOF
185.471 --#line 1354 "configure"
185.472 -+#line 1365 "configure"
185.473 - #include "confdefs.h"
185.474 -
185.475 - #define _SYSCALL32
185.476 -@@ -1359,7 +1370,7 @@ int main() {
185.477 - prgregset_t avar
185.478 - ; return 0; }
185.479 - EOF
185.480 --if { (eval echo configure:1363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.481 -+if { (eval echo configure:1374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.482 - rm -rf conftest*
185.483 - bfd_cv_have_sys_procfs_type_prgregset_t=yes
185.484 - else
185.485 -@@ -1381,12 +1392,12 @@ EOF
185.486 - echo "$ac_t""$bfd_cv_have_sys_procfs_type_prgregset_t" 1>&6
185.487 -
185.488 - echo $ac_n "checking for prfpregset_t in sys/procfs.h""... $ac_c" 1>&6
185.489 --echo "configure:1385: checking for prfpregset_t in sys/procfs.h" >&5
185.490 -+echo "configure:1396: checking for prfpregset_t in sys/procfs.h" >&5
185.491 - if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prfpregset_t'+set}'`\" = set"; then
185.492 - echo $ac_n "(cached) $ac_c" 1>&6
185.493 - else
185.494 - cat > conftest.$ac_ext <<EOF
185.495 --#line 1390 "configure"
185.496 -+#line 1401 "configure"
185.497 - #include "confdefs.h"
185.498 -
185.499 - #define _SYSCALL32
185.500 -@@ -1395,7 +1406,7 @@ int main() {
185.501 - prfpregset_t avar
185.502 - ; return 0; }
185.503 - EOF
185.504 --if { (eval echo configure:1399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.505 -+if { (eval echo configure:1410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.506 - rm -rf conftest*
185.507 - bfd_cv_have_sys_procfs_type_prfpregset_t=yes
185.508 - else
185.509 -@@ -1421,7 +1432,7 @@ EOF
185.510 -
185.511 - if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
185.512 - echo $ac_n "checking whether prfpregset_t type is broken""... $ac_c" 1>&6
185.513 --echo "configure:1425: checking whether prfpregset_t type is broken" >&5
185.514 -+echo "configure:1436: checking whether prfpregset_t type is broken" >&5
185.515 - if eval "test \"`echo '$''{'gdb_cv_prfpregset_t_broken'+set}'`\" = set"; then
185.516 - echo $ac_n "(cached) $ac_c" 1>&6
185.517 - else
185.518 -@@ -1429,7 +1440,7 @@ else
185.519 - gdb_cv_prfpregset_t_broken=yes
185.520 - else
185.521 - cat > conftest.$ac_ext <<EOF
185.522 --#line 1433 "configure"
185.523 -+#line 1444 "configure"
185.524 - #include "confdefs.h"
185.525 - #include <sys/procfs.h>
185.526 - int main ()
185.527 -@@ -1439,7 +1450,7 @@ else
185.528 - return 0;
185.529 - }
185.530 - EOF
185.531 --if { (eval echo configure:1443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
185.532 -+if { (eval echo configure:1454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
185.533 - then
185.534 - gdb_cv_prfpregset_t_broken=no
185.535 - else
185.536 -@@ -1463,12 +1474,12 @@ EOF
185.537 - fi
185.538 -
185.539 - echo $ac_n "checking for elf_fpregset_t in sys/procfs.h""... $ac_c" 1>&6
185.540 --echo "configure:1467: checking for elf_fpregset_t in sys/procfs.h" >&5
185.541 -+echo "configure:1478: checking for elf_fpregset_t in sys/procfs.h" >&5
185.542 - if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_elf_fpregset_t'+set}'`\" = set"; then
185.543 - echo $ac_n "(cached) $ac_c" 1>&6
185.544 - else
185.545 - cat > conftest.$ac_ext <<EOF
185.546 --#line 1472 "configure"
185.547 -+#line 1483 "configure"
185.548 - #include "confdefs.h"
185.549 -
185.550 - #define _SYSCALL32
185.551 -@@ -1477,7 +1488,7 @@ int main() {
185.552 - elf_fpregset_t avar
185.553 - ; return 0; }
185.554 - EOF
185.555 --if { (eval echo configure:1481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.556 -+if { (eval echo configure:1492: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
185.557 - rm -rf conftest*
185.558 - bfd_cv_have_sys_procfs_type_elf_fpregset_t=yes
185.559 - else
185.560 -@@ -1506,14 +1517,14 @@ USE_THREAD_DB=
185.561 -
185.562 - if test "$srv_linux_thread_db" = "yes"; then
185.563 - echo $ac_n "checking for libthread_db""... $ac_c" 1>&6
185.564 --echo "configure:1510: checking for libthread_db" >&5
185.565 -+echo "configure:1521: checking for libthread_db" >&5
185.566 - if eval "test \"`echo '$''{'srv_cv_thread_db'+set}'`\" = set"; then
185.567 - echo $ac_n "(cached) $ac_c" 1>&6
185.568 - else
185.569 - old_LIBS="$LIBS"
185.570 - LIBS="$LIBS -lthread_db"
185.571 - cat > conftest.$ac_ext <<EOF
185.572 --#line 1517 "configure"
185.573 -+#line 1528 "configure"
185.574 - #include "confdefs.h"
185.575 - void ps_pglobal_lookup() {}
185.576 - void ps_pdread() {}
185.577 -@@ -1522,12 +1533,13 @@ void ps_pglobal_lookup() {}
185.578 - void ps_lsetregs() {}
185.579 - void ps_lgetfpregs() {}
185.580 - void ps_lsetfpregs() {}
185.581 -+ void ps_get_thread_area() {}
185.582 - void ps_getpid() {}
185.583 - int main() {
185.584 - td_ta_new();
185.585 - ; return 0; }
185.586 - EOF
185.587 --if { (eval echo configure:1531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
185.588 -+if { (eval echo configure:1543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
185.589 - rm -rf conftest*
185.590 - srv_cv_thread_db="-lthread_db"
185.591 - else
185.592 -@@ -1543,7 +1555,7 @@ else
185.593 - fi
185.594 - LIBS="$old_LIBS `eval echo "$thread_db"`"
185.595 - cat > conftest.$ac_ext <<EOF
185.596 --#line 1547 "configure"
185.597 -+#line 1559 "configure"
185.598 - #include "confdefs.h"
185.599 - void ps_pglobal_lookup() {}
185.600 - void ps_pdread() {}
185.601 -@@ -1552,12 +1564,13 @@ void ps_pglobal_lookup() {}
185.602 - void ps_lsetregs() {}
185.603 - void ps_lgetfpregs() {}
185.604 - void ps_lsetfpregs() {}
185.605 -+ void ps_get_thread_area() {}
185.606 - void ps_getpid() {}
185.607 - int main() {
185.608 - td_ta_new();
185.609 - ; return 0; }
185.610 - EOF
185.611 --if { (eval echo configure:1561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
185.612 -+if { (eval echo configure:1574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
185.613 - rm -rf conftest*
185.614 - srv_cv_thread_db="$thread_db"
185.615 - else
185.616 -@@ -1567,11 +1580,11 @@ else
185.617 - srv_cv_thread_db=no
185.618 - fi
185.619 - rm -f conftest*
185.620 -- LIBS="$old_LIBS"
185.621 --
185.622 -+
185.623 - fi
185.624 -
185.625 - echo "$ac_t""$srv_cv_thread_db" 1>&6
185.626 -+ LIBS="$old_LIBS"
185.627 -
185.628 - fi
185.629 - rm -f conftest*
185.630 -@@ -1585,14 +1598,14 @@ rm -f conftest*
185.631 - old_LDFLAGS="$LDFLAGS"
185.632 - LDFLAGS="$LDFLAGS -rdynamic"
185.633 - cat > conftest.$ac_ext <<EOF
185.634 --#line 1589 "configure"
185.635 -+#line 1602 "configure"
185.636 - #include "confdefs.h"
185.637 -
185.638 - int main() {
185.639 -
185.640 - ; return 0; }
185.641 - EOF
185.642 --if { (eval echo configure:1596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
185.643 -+if { (eval echo configure:1609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
185.644 - rm -rf conftest*
185.645 - RDYNAMIC=-rdynamic
185.646 - else
185.647 -Index: gdb-6.3/gdb/gdbserver/aclocal.m4
185.648 -===================================================================
185.649 ---- gdb-6.3.orig/gdb/gdbserver/aclocal.m4 2002-06-11 13:32:39.000000000 -0400
185.650 -+++ gdb-6.3/gdb/gdbserver/aclocal.m4 2004-12-07 17:22:00.382495519 -0500
185.651 -@@ -1,4 +1,4 @@
185.652 --dnl aclocal.m4 generated automatically by aclocal 1.4-p4
185.653 -+dnl aclocal.m4 generated automatically by aclocal 1.4
185.654 -
185.655 - dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
185.656 - dnl This file is free software; the Free Software Foundation
185.657 -@@ -25,6 +25,7 @@ AC_DEFUN([SRV_CHECK_THREAD_DB],
185.658 - void ps_lsetregs() {}
185.659 - void ps_lgetfpregs() {}
185.660 - void ps_lsetfpregs() {}
185.661 -+ void ps_get_thread_area() {}
185.662 - void ps_getpid() {}],
185.663 - [td_ta_new();],
185.664 - [srv_cv_thread_db="-lthread_db"],
185.665 -@@ -44,11 +45,12 @@ AC_DEFUN([SRV_CHECK_THREAD_DB],
185.666 - void ps_lsetregs() {}
185.667 - void ps_lgetfpregs() {}
185.668 - void ps_lsetfpregs() {}
185.669 -+ void ps_get_thread_area() {}
185.670 - void ps_getpid() {}],
185.671 - [td_ta_new();],
185.672 - [srv_cv_thread_db="$thread_db"],
185.673 - [srv_cv_thread_db=no])
185.674 -+ ]])
185.675 - LIBS="$old_LIBS"
185.676 -- ]])
185.677 - )])
185.678 -
186.1 --- a/patches/gdb/6.3/790-debian_dwarf2-cfi-warning.patch Tue Aug 14 19:32:22 2007 +0000
186.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
186.3 @@ -1,39 +0,0 @@
186.4 -Status: Unsuitable for upstream (at least, without a lot of arguing).
186.5 -
186.6 -GCC does not specify the state of every last register in the CIE. Since
186.7 -GCC's focus is on correctness of runtime unwinding, any registers which
186.8 -have to be unwound will be specified; but unmodified registers will not
186.9 -be explicitly marked. (How about modified, call-clobbered registers?
186.10 -I'm not sure if they are marked as unavailable.)
186.11 -
186.12 -GDB issues a noisy warning about this. The warning is generally not useful,
186.13 -and we can get it extremely frequently (any time we load a new CIE).
186.14 -
186.15 -This patch disables the warning. Alternately we could set the complaints
186.16 -threshold to zero, or implement a default frame init-register method for
186.17 -every architecture. But someday the compiler will support using different
186.18 -calling conventions for internal functions, so that's not much of a stopgap.
186.19 -ARM has a complex algorithm for handling this, involving scanning all CIEs -
186.20 -benefit not completely clear outside of the ARM context of flexible register
186.21 -sets.
186.22 -
186.23 -Index: gdb-6.3/gdb/dwarf2-frame.c
186.24 -===================================================================
186.25 ---- gdb-6.3.orig/gdb/dwarf2-frame.c 2004-11-15 11:54:57.000000000 -0500
186.26 -+++ gdb-6.3/gdb/dwarf2-frame.c 2004-12-08 18:02:23.896409471 -0500
186.27 -@@ -705,9 +705,12 @@ dwarf2_frame_cache (struct frame_info *n
186.28 - table. We need a way of iterating through all the valid
186.29 - DWARF2 register numbers. */
186.30 - if (fs->regs.reg[column].how == DWARF2_FRAME_REG_UNSPECIFIED)
186.31 -- complaint (&symfile_complaints,
186.32 -- "Incomplete CFI data; unspecified registers at 0x%s",
186.33 -- paddr (fs->pc));
186.34 -+ {
186.35 -+ if (0)
186.36 -+ complaint (&symfile_complaints,
186.37 -+ "Incomplete CFI data; unspecified registers at 0x%s",
186.38 -+ paddr (fs->pc));
186.39 -+ }
186.40 - else
186.41 - cache->reg[regnum] = fs->regs.reg[column];
186.42 - }
187.1 --- a/patches/gdb/6.3/800-debian_linux-use-underscore-exit.patch Tue Aug 14 19:32:22 2007 +0000
187.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
187.3 @@ -1,22 +0,0 @@
187.4 -Status: committed upstream after 6.3. Fixes some terminal mangling in
187.5 -gdbtui.
187.6 -
187.7 -2004-12-04 Daniel Jacobowitz <dan@debian.org>
187.8 -
187.9 - PR tui/1703
187.10 - * linux-nat.c (linux_tracefork_child): Use _exit instead of exit.
187.11 - Suggested by Joshua Neuheisel.
187.12 -
187.13 -Index: gdb-6.3/gdb/linux-nat.c
187.14 -===================================================================
187.15 ---- gdb-6.3.orig/gdb/linux-nat.c 2004-12-08 18:22:04.996973094 -0500
187.16 -+++ gdb-6.3/gdb/linux-nat.c 2004-12-08 18:22:20.386956067 -0500
187.17 -@@ -147,7 +147,7 @@ linux_tracefork_child (void)
187.18 - ptrace (PTRACE_TRACEME, 0, 0, 0);
187.19 - kill (getpid (), SIGSTOP);
187.20 - fork ();
187.21 -- exit (0);
187.22 -+ _exit (0);
187.23 - }
187.24 -
187.25 - /* Wrapper function for waitpid which handles EINTR. */
188.1 --- a/patches/gdb/6.3/810-debian_bfd-no-kylix-crash.patch Tue Aug 14 19:32:22 2007 +0000
188.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
188.3 @@ -1,47 +0,0 @@
188.4 -Status: committed upstream after 6.3.
188.5 -
188.6 -Fix a crash triggered by Kylix libraries.
188.7 -
188.8 -2004-12-06 Daniel Jacobowitz <dan@debian.org>
188.9 -
188.10 - Suggested by Fergal Daly <fergal@esatclear.ie>:
188.11 - * simple.c (simple_dummy_multiple_definition): New function.
188.12 - (bfd_simple_get_relocated_section_contents): Use it.
188.13 -
188.14 -Index: src/bfd/simple.c
188.15 -===================================================================
188.16 -RCS file: /cvs/src/src/bfd/simple.c,v
188.17 -retrieving revision 1.19
188.18 -retrieving revision 1.20
188.19 -Index: gdb-6.3/bfd/simple.c
188.20 -===================================================================
188.21 ---- gdb-6.3.orig/bfd/simple.c 2004-09-24 03:07:19.000000000 -0400
188.22 -+++ gdb-6.3/bfd/simple.c 2004-12-08 18:25:58.415216808 -0500
188.23 -@@ -78,6 +78,19 @@ simple_dummy_unattached_reloc (struct bf
188.24 - return TRUE;
188.25 - }
188.26 -
188.27 -+static bfd_boolean
188.28 -+simple_dummy_multiple_definition (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
188.29 -+ const char *name ATTRIBUTE_UNUSED,
188.30 -+ bfd *obfd ATTRIBUTE_UNUSED,
188.31 -+ asection *osec ATTRIBUTE_UNUSED,
188.32 -+ bfd_vma oval ATTRIBUTE_UNUSED,
188.33 -+ bfd *nbfd ATTRIBUTE_UNUSED,
188.34 -+ asection *nsec ATTRIBUTE_UNUSED,
188.35 -+ bfd_vma nval ATTRIBUTE_UNUSED)
188.36 -+{
188.37 -+ return TRUE;
188.38 -+}
188.39 -+
188.40 - struct saved_output_info
188.41 - {
188.42 - bfd_vma offset;
188.43 -@@ -172,6 +185,7 @@ bfd_simple_get_relocated_section_content
188.44 - callbacks.reloc_overflow = simple_dummy_reloc_overflow;
188.45 - callbacks.reloc_dangerous = simple_dummy_reloc_dangerous;
188.46 - callbacks.unattached_reloc = simple_dummy_unattached_reloc;
188.47 -+ callbacks.multiple_definition = simple_dummy_multiple_definition;
188.48 -
188.49 - memset (&link_order, 0, sizeof (link_order));
188.50 - link_order.next = NULL;
189.1 --- a/patches/gdb/6.3/820-debian_disable-linux-fork-messages.patch Tue Aug 14 19:32:22 2007 +0000
189.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
189.3 @@ -1,46 +0,0 @@
189.4 -Status: Proposed upstream after 6.3, not yet committed.
189.5 -
189.6 -2004-12-06 Daniel Jacobowitz <dan@debian.org>
189.7 -
189.8 - * linux-nat.c (child_follow_fork): Call target_terminal_ours before
189.9 - printing output. Use fprintf_unfiltered. Only print output when
189.10 - debugging.
189.11 -
189.12 -Index: gdb-6.3/gdb/linux-nat.c
189.13 -===================================================================
189.14 ---- gdb-6.3.orig/gdb/linux-nat.c 2004-12-08 18:22:20.386956067 -0500
189.15 -+++ gdb-6.3/gdb/linux-nat.c 2004-12-08 18:28:49.995585970 -0500
189.16 -@@ -347,9 +347,13 @@ child_follow_fork (int follow_child)
189.17 - also, but they'll be reinserted below. */
189.18 - detach_breakpoints (child_pid);
189.19 -
189.20 -- fprintf_filtered (gdb_stdout,
189.21 -- "Detaching after fork from child process %d.\n",
189.22 -- child_pid);
189.23 -+ if (debug_linux_nat)
189.24 -+ {
189.25 -+ target_terminal_ours ();
189.26 -+ fprintf_unfiltered (gdb_stdlog,
189.27 -+ "Detaching after fork from child process %d.\n",
189.28 -+ child_pid);
189.29 -+ }
189.30 -
189.31 - ptrace (PTRACE_DETACH, child_pid, 0, 0);
189.32 -
189.33 -@@ -418,9 +422,13 @@ child_follow_fork (int follow_child)
189.34 - /* Before detaching from the parent, remove all breakpoints from it. */
189.35 - remove_breakpoints ();
189.36 -
189.37 -- fprintf_filtered (gdb_stdout,
189.38 -- "Attaching after fork to child process %d.\n",
189.39 -- child_pid);
189.40 -+ if (debug_linux_nat)
189.41 -+ {
189.42 -+ target_terminal_ours ();
189.43 -+ fprintf_unfiltered (gdb_stdlog,
189.44 -+ "Attaching after fork to child process %d.\n",
189.45 -+ child_pid);
189.46 -+ }
189.47 -
189.48 - /* If we're vforking, we may want to hold on to the parent until
189.49 - the child exits or execs. At exec time we can remove the old
190.1 --- a/patches/glibc/2.1.3/README Tue Aug 14 19:32:22 2007 +0000
190.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
190.3 @@ -1,4 +0,0 @@
190.4 -The files rh62*.patch are from the Red Hat 6.2 file glibc-2.1.3-28.src.rpm
190.5 -I am trusting here that Red Hat's patches are appropriate for all CPU
190.6 -types. If I'm wrong, just remove the offending patch...
190.7 -- Dan Kegel
191.1 --- a/patches/glibc/2.1.3/arm-ctl_bus_isa.patch Tue Aug 14 19:32:22 2007 +0000
191.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
191.3 @@ -1,51 +0,0 @@
191.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
191.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
191.6 -Fixes following error:
191.7 -
191.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
191.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
191.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
191.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
191.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
191.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
191.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
191.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
191.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
191.17 -
191.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
191.19 -
191.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
191.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
191.22 -@@ -47,6 +47,12 @@
191.23 - #include <asm/page.h>
191.24 - #include <sys/sysctl.h>
191.25 -
191.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
191.27 -+#include <linux/version.h>
191.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
191.29 -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
191.30 -+#endif
191.31 -+
191.32 - #define PATH_ARM_SYSTYPE "/etc/arm_systype"
191.33 - #define PATH_CPUINFO "/proc/cpuinfo"
191.34 -
191.35 -@@ -80,7 +86,7 @@
191.36 - * Initialize I/O system. There are several ways to get the information
191.37 - * we need. Each is tried in turn until one succeeds.
191.38 - *
191.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
191.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
191.41 - * but not all kernels support it.
191.42 - *
191.43 - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
191.44 -@@ -100,8 +106,8 @@
191.45 - {
191.46 - char systype[256];
191.47 - int i, n;
191.48 -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
191.49 -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
191.50 -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
191.51 -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
191.52 - size_t len = sizeof(io.base);
191.53 -
191.54 - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
192.1 --- a/patches/glibc/2.1.3/backport-config.sub.patch Tue Aug 14 19:32:22 2007 +0000
192.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
192.3 @@ -1,834 +0,0 @@
192.4 -# Backport glibc-2.3.2's config.sub to glibc-2.1.3
192.5 -# Should fix nonfatal but annoying like
192.6 -# checking build system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized
192.7 -# ../glibc-2.1.3/configure: line 1227: test: i686-unknown-linux-gnu: unary operator expected
192.8 -# checking build system type... Configuration name missing.
192.9 -
192.10 -
192.11 ---- glibc-2.1.3/scripts/config.sub 2004-03-24 13:27:06.000000000 -0800
192.12 -+++ glibc-2.3.2/scripts/config.sub 2002-07-10 00:24:32.000000000 -0700
192.13 -@@ -1,6 +1,10 @@
192.14 - #! /bin/sh
192.15 --# Configuration validation subroutine script, version 1.1.
192.16 --# Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
192.17 -+# Configuration validation subroutine script.
192.18 -+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
192.19 -+# 2000, 2001, 2002 Free Software Foundation, Inc.
192.20 -+
192.21 -+timestamp='2002-07-03'
192.22 -+
192.23 - # This file is (in principle) common to ALL GNU software.
192.24 - # The presence of a machine in this file suggests that SOME GNU software
192.25 - # can handle that machine. It does not imply ALL GNU software can.
192.26 -@@ -25,6 +29,9 @@
192.27 - # configuration script generated by Autoconf, you may include it under
192.28 - # the same distribution terms that you use for the rest of that program.
192.29 -
192.30 -+# Please send patches to <config-patches@gnu.org>. Submit a context
192.31 -+# diff and a properly formatted ChangeLog entry.
192.32 -+#
192.33 - # Configuration subroutine to validate and canonicalize a configuration type.
192.34 - # Supply the specified configuration type as an argument.
192.35 - # If it is invalid, we print an error message on stderr and exit with code 1.
192.36 -@@ -45,30 +52,73 @@
192.37 - # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
192.38 - # It is wrong to echo any other type of specification.
192.39 -
192.40 --if [ x$1 = x ]
192.41 --then
192.42 -- echo Configuration name missing. 1>&2
192.43 -- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
192.44 -- echo "or $0 ALIAS" 1>&2
192.45 -- echo where ALIAS is a recognized configuration type. 1>&2
192.46 -- exit 1
192.47 --fi
192.48 -+me=`echo "$0" | sed -e 's,.*/,,'`
192.49 -
192.50 --# First pass through any local machine types.
192.51 --case $1 in
192.52 -- *local*)
192.53 -- echo $1
192.54 -- exit 0
192.55 -- ;;
192.56 -- *)
192.57 -- ;;
192.58 -+usage="\
192.59 -+Usage: $0 [OPTION] CPU-MFR-OPSYS
192.60 -+ $0 [OPTION] ALIAS
192.61 -+
192.62 -+Canonicalize a configuration name.
192.63 -+
192.64 -+Operation modes:
192.65 -+ -h, --help print this help, then exit
192.66 -+ -t, --time-stamp print date of last modification, then exit
192.67 -+ -v, --version print version number, then exit
192.68 -+
192.69 -+Report bugs and patches to <config-patches@gnu.org>."
192.70 -+
192.71 -+version="\
192.72 -+GNU config.sub ($timestamp)
192.73 -+
192.74 -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
192.75 -+Free Software Foundation, Inc.
192.76 -+
192.77 -+This is free software; see the source for copying conditions. There is NO
192.78 -+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
192.79 -+
192.80 -+help="
192.81 -+Try \`$me --help' for more information."
192.82 -+
192.83 -+# Parse command line
192.84 -+while test $# -gt 0 ; do
192.85 -+ case $1 in
192.86 -+ --time-stamp | --time* | -t )
192.87 -+ echo "$timestamp" ; exit 0 ;;
192.88 -+ --version | -v )
192.89 -+ echo "$version" ; exit 0 ;;
192.90 -+ --help | --h* | -h )
192.91 -+ echo "$usage"; exit 0 ;;
192.92 -+ -- ) # Stop option processing
192.93 -+ shift; break ;;
192.94 -+ - ) # Use stdin as input.
192.95 -+ break ;;
192.96 -+ -* )
192.97 -+ echo "$me: invalid option $1$help"
192.98 -+ exit 1 ;;
192.99 -+
192.100 -+ *local*)
192.101 -+ # First pass through any local machine types.
192.102 -+ echo $1
192.103 -+ exit 0;;
192.104 -+
192.105 -+ * )
192.106 -+ break ;;
192.107 -+ esac
192.108 -+done
192.109 -+
192.110 -+case $# in
192.111 -+ 0) echo "$me: missing argument$help" >&2
192.112 -+ exit 1;;
192.113 -+ 1) ;;
192.114 -+ *) echo "$me: too many arguments$help" >&2
192.115 -+ exit 1;;
192.116 - esac
192.117 -
192.118 - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
192.119 - # Here we must recognize all the valid KERNEL-OS combinations.
192.120 - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
192.121 - case $maybe_os in
192.122 -- linux-gnu*)
192.123 -+ nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
192.124 - os=-$maybe_os
192.125 - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
192.126 - ;;
192.127 -@@ -94,7 +144,7 @@
192.128 - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
192.129 - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
192.130 - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
192.131 -- -apple)
192.132 -+ -apple | -axis)
192.133 - os=
192.134 - basic_machine=$1
192.135 - ;;
192.136 -@@ -108,6 +158,14 @@
192.137 - os=-vxworks
192.138 - basic_machine=$1
192.139 - ;;
192.140 -+ -chorusos*)
192.141 -+ os=-chorusos
192.142 -+ basic_machine=$1
192.143 -+ ;;
192.144 -+ -chorusrdb)
192.145 -+ os=-chorusrdb
192.146 -+ basic_machine=$1
192.147 -+ ;;
192.148 - -hiux*)
192.149 - os=-hiuxwe2
192.150 - ;;
192.151 -@@ -166,27 +224,58 @@
192.152 - case $basic_machine in
192.153 - # Recognize the basic CPU types without company name.
192.154 - # Some are omitted here because they have special meanings below.
192.155 -- tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
192.156 -- | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
192.157 -- | 580 | i960 | h8300 \
192.158 -- | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
192.159 -- | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
192.160 -- | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
192.161 -- | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
192.162 -- | mips64orion | mips64orionel | mipstx39 | mipstx39el \
192.163 -- | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
192.164 -- | mips64vr5000 | miprs64vr5000el | mcore \
192.165 -- | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
192.166 -- | thumb | d10v | fr30)
192.167 -+ 1750a | 580 \
192.168 -+ | a29k \
192.169 -+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
192.170 -+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
192.171 -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
192.172 -+ | c4x | clipper \
192.173 -+ | d10v | d30v | dlx | dsp16xx \
192.174 -+ | fr30 | frv \
192.175 -+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
192.176 -+ | i370 | i860 | i960 | ia64 \
192.177 -+ | ip2k \
192.178 -+ | m32r | m68000 | m68k | m88k | mcore \
192.179 -+ | mips | mipsbe | mipseb | mipsel | mipsle \
192.180 -+ | mips16 \
192.181 -+ | mips64 | mips64el \
192.182 -+ | mips64orion | mips64orionel \
192.183 -+ | mips64vr4100 | mips64vr4100el \
192.184 -+ | mips64vr4300 | mips64vr4300el \
192.185 -+ | mips64vr5000 | mips64vr5000el \
192.186 -+ | mipsisa32 | mipsisa32el \
192.187 -+ | mipsisa64 | mipsisa64el \
192.188 -+ | mipsisa64sb1 | mipsisa64sb1el \
192.189 -+ | mipstx39 | mipstx39el \
192.190 -+ | mn10200 | mn10300 \
192.191 -+ | ns16k | ns32k \
192.192 -+ | openrisc | or32 \
192.193 -+ | pdp10 | pdp11 | pj | pjl \
192.194 -+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
192.195 -+ | pyramid \
192.196 -+ | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
192.197 -+ | sh64 | sh64le \
192.198 -+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
192.199 -+ | strongarm \
192.200 -+ | tahoe | thumb | tic80 | tron \
192.201 -+ | v850 | v850e \
192.202 -+ | we32k \
192.203 -+ | x86 | xscale | xstormy16 | xtensa \
192.204 -+ | z8k)
192.205 -+ basic_machine=$basic_machine-unknown
192.206 -+ ;;
192.207 -+ m6811 | m68hc11 | m6812 | m68hc12)
192.208 -+ # Motorola 68HC11/12.
192.209 - basic_machine=$basic_machine-unknown
192.210 -+ os=-none
192.211 - ;;
192.212 -- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
192.213 -+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
192.214 - ;;
192.215 -
192.216 - # We use `pc' rather than `unknown'
192.217 - # because (1) that's what they normally are, and
192.218 - # (2) the word "unknown" tends to confuse beginning users.
192.219 -- i[34567]86)
192.220 -+ i*86 | x86_64)
192.221 - basic_machine=$basic_machine-pc
192.222 - ;;
192.223 - # Object if more than one company name word.
192.224 -@@ -195,24 +284,54 @@
192.225 - exit 1
192.226 - ;;
192.227 - # Recognize the basic CPU types with company name.
192.228 -- # FIXME: clean up the formatting here.
192.229 -- vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
192.230 -- | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
192.231 -- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
192.232 -- | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
192.233 -- | xmp-* | ymp-* \
192.234 -- | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
192.235 -- | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
192.236 -- | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
192.237 -- | clipper-* | orion-* \
192.238 -- | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
192.239 -- | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
192.240 -- | mips64el-* | mips64orion-* | mips64orionel-* \
192.241 -- | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
192.242 -- | mipstx39-* | mipstx39el-* | mcore-* \
192.243 -- | f301-* | armv*-* | t3e-* \
192.244 -- | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
192.245 -- | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
192.246 -+ 580-* \
192.247 -+ | a29k-* \
192.248 -+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
192.249 -+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
192.250 -+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
192.251 -+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
192.252 -+ | avr-* \
192.253 -+ | bs2000-* \
192.254 -+ | c[123]* | c30-* | [cjt]90-* | c54x-* \
192.255 -+ | clipper-* | cydra-* \
192.256 -+ | d10v-* | d30v-* | dlx-* \
192.257 -+ | elxsi-* \
192.258 -+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
192.259 -+ | h8300-* | h8500-* \
192.260 -+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
192.261 -+ | i*86-* | i860-* | i960-* | ia64-* \
192.262 -+ | ip2k-* \
192.263 -+ | m32r-* \
192.264 -+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
192.265 -+ | m88110-* | m88k-* | mcore-* \
192.266 -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
192.267 -+ | mips16-* \
192.268 -+ | mips64-* | mips64el-* \
192.269 -+ | mips64orion-* | mips64orionel-* \
192.270 -+ | mips64vr4100-* | mips64vr4100el-* \
192.271 -+ | mips64vr4300-* | mips64vr4300el-* \
192.272 -+ | mips64vr5000-* | mips64vr5000el-* \
192.273 -+ | mipsisa32-* | mipsisa32el-* \
192.274 -+ | mipsisa64-* | mipsisa64el-* \
192.275 -+ | mipsisa64sb1-* | mipsisa64sb1el-* \
192.276 -+ | mipstx39 | mipstx39el \
192.277 -+ | none-* | np1-* | ns16k-* | ns32k-* \
192.278 -+ | orion-* \
192.279 -+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
192.280 -+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
192.281 -+ | pyramid-* \
192.282 -+ | romp-* | rs6000-* \
192.283 -+ | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
192.284 -+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
192.285 -+ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
192.286 -+ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
192.287 -+ | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
192.288 -+ | v850-* | v850e-* | vax-* \
192.289 -+ | we32k-* \
192.290 -+ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
192.291 -+ | xtensa-* \
192.292 -+ | ymp-* \
192.293 -+ | z8k-*)
192.294 - ;;
192.295 - # Recognize the various machine names and aliases which stand
192.296 - # for a CPU type and a company and sometimes even an OS.
192.297 -@@ -249,14 +368,14 @@
192.298 - os=-sysv
192.299 - ;;
192.300 - amiga | amiga-*)
192.301 -- basic_machine=m68k-cbm
192.302 -+ basic_machine=m68k-unknown
192.303 - ;;
192.304 - amigaos | amigados)
192.305 -- basic_machine=m68k-cbm
192.306 -+ basic_machine=m68k-unknown
192.307 - os=-amigaos
192.308 - ;;
192.309 - amigaunix | amix)
192.310 -- basic_machine=m68k-cbm
192.311 -+ basic_machine=m68k-unknown
192.312 - os=-sysv4
192.313 - ;;
192.314 - apollo68)
192.315 -@@ -275,6 +394,10 @@
192.316 - basic_machine=ns32k-sequent
192.317 - os=-dynix
192.318 - ;;
192.319 -+ c90)
192.320 -+ basic_machine=c90-cray
192.321 -+ os=-unicos
192.322 -+ ;;
192.323 - convex-c1)
192.324 - basic_machine=c1-convex
192.325 - os=-bsd
192.326 -@@ -295,27 +418,30 @@
192.327 - basic_machine=c38-convex
192.328 - os=-bsd
192.329 - ;;
192.330 -- cray | ymp)
192.331 -- basic_machine=ymp-cray
192.332 -- os=-unicos
192.333 -- ;;
192.334 -- cray2)
192.335 -- basic_machine=cray2-cray
192.336 -- os=-unicos
192.337 -- ;;
192.338 -- [ctj]90-cray)
192.339 -- basic_machine=c90-cray
192.340 -+ cray | j90)
192.341 -+ basic_machine=j90-cray
192.342 - os=-unicos
192.343 - ;;
192.344 - crds | unos)
192.345 - basic_machine=m68k-crds
192.346 - ;;
192.347 -+ cris | cris-* | etrax*)
192.348 -+ basic_machine=cris-axis
192.349 -+ ;;
192.350 - da30 | da30-*)
192.351 - basic_machine=m68k-da30
192.352 - ;;
192.353 - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
192.354 - basic_machine=mips-dec
192.355 - ;;
192.356 -+ decsystem10* | dec10*)
192.357 -+ basic_machine=pdp10-dec
192.358 -+ os=-tops10
192.359 -+ ;;
192.360 -+ decsystem20* | dec20*)
192.361 -+ basic_machine=pdp10-dec
192.362 -+ os=-tops20
192.363 -+ ;;
192.364 - delta | 3300 | motorola-3300 | motorola-delta \
192.365 - | 3300-motorola | delta-motorola)
192.366 - basic_machine=m68k-motorola
192.367 -@@ -357,6 +483,10 @@
192.368 - basic_machine=tron-gmicro
192.369 - os=-sysv
192.370 - ;;
192.371 -+ go32)
192.372 -+ basic_machine=i386-pc
192.373 -+ os=-go32
192.374 -+ ;;
192.375 - h3050r* | hiux*)
192.376 - basic_machine=hppa1.1-hitachi
192.377 - os=-hiuxwe2
192.378 -@@ -432,19 +562,19 @@
192.379 - basic_machine=i370-ibm
192.380 - ;;
192.381 - # I'm not sure what "Sysv32" means. Should this be sysv3.2?
192.382 -- i[34567]86v32)
192.383 -+ i*86v32)
192.384 - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
192.385 - os=-sysv32
192.386 - ;;
192.387 -- i[34567]86v4*)
192.388 -+ i*86v4*)
192.389 - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
192.390 - os=-sysv4
192.391 - ;;
192.392 -- i[34567]86v)
192.393 -+ i*86v)
192.394 - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
192.395 - os=-sysv
192.396 - ;;
192.397 -- i[34567]86sol2)
192.398 -+ i*86sol2)
192.399 - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
192.400 - os=-solaris2
192.401 - ;;
192.402 -@@ -456,17 +586,6 @@
192.403 - basic_machine=i386-unknown
192.404 - os=-vsta
192.405 - ;;
192.406 -- i386-go32 | go32)
192.407 -- basic_machine=i386-unknown
192.408 -- os=-go32
192.409 -- ;;
192.410 -- i386-mingw32 | mingw32)
192.411 -- basic_machine=i386-unknown
192.412 -- os=-mingw32
192.413 -- ;;
192.414 -- i386-qnx | qnx)
192.415 -- basic_machine=i386-qnx
192.416 -- ;;
192.417 - iris | iris4d)
192.418 - basic_machine=mips-sgi
192.419 - case $os in
192.420 -@@ -492,6 +611,10 @@
192.421 - basic_machine=ns32k-utek
192.422 - os=-sysv
192.423 - ;;
192.424 -+ mingw32)
192.425 -+ basic_machine=i386-pc
192.426 -+ os=-mingw32
192.427 -+ ;;
192.428 - miniframe)
192.429 - basic_machine=m68000-convergent
192.430 - ;;
192.431 -@@ -499,26 +622,26 @@
192.432 - basic_machine=m68k-atari
192.433 - os=-mint
192.434 - ;;
192.435 -- mipsel*-linux*)
192.436 -- basic_machine=mipsel-unknown
192.437 -- os=-linux-gnu
192.438 -- ;;
192.439 -- mips*-linux*)
192.440 -- basic_machine=mips-unknown
192.441 -- os=-linux-gnu
192.442 -- ;;
192.443 - mips3*-*)
192.444 - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
192.445 - ;;
192.446 - mips3*)
192.447 - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
192.448 - ;;
192.449 -+ mmix*)
192.450 -+ basic_machine=mmix-knuth
192.451 -+ os=-mmixware
192.452 -+ ;;
192.453 - monitor)
192.454 - basic_machine=m68k-rom68k
192.455 - os=-coff
192.456 - ;;
192.457 -+ morphos)
192.458 -+ basic_machine=powerpc-unknown
192.459 -+ os=-morphos
192.460 -+ ;;
192.461 - msdos)
192.462 -- basic_machine=i386-unknown
192.463 -+ basic_machine=i386-pc
192.464 - os=-msdos
192.465 - ;;
192.466 - mvs)
192.467 -@@ -582,13 +705,24 @@
192.468 - basic_machine=i960-intel
192.469 - os=-mon960
192.470 - ;;
192.471 -+ nonstopux)
192.472 -+ basic_machine=mips-compaq
192.473 -+ os=-nonstopux
192.474 -+ ;;
192.475 - np1)
192.476 - basic_machine=np1-gould
192.477 - ;;
192.478 -+ nsr-tandem)
192.479 -+ basic_machine=nsr-tandem
192.480 -+ ;;
192.481 - op50n-* | op60c-*)
192.482 - basic_machine=hppa1.1-oki
192.483 - os=-proelf
192.484 - ;;
192.485 -+ or32 | or32-*)
192.486 -+ basic_machine=or32-unknown
192.487 -+ os=-coff
192.488 -+ ;;
192.489 - OSE68000 | ose68000)
192.490 - basic_machine=m68000-ericsson
192.491 - os=-ose
192.492 -@@ -614,28 +748,28 @@
192.493 - pc532 | pc532-*)
192.494 - basic_machine=ns32k-pc532
192.495 - ;;
192.496 -- pentium | p5 | k5 | k6 | nexen)
192.497 -+ pentium | p5 | k5 | k6 | nexgen | viac3)
192.498 - basic_machine=i586-pc
192.499 - ;;
192.500 -- pentiumpro | p6 | 6x86)
192.501 -+ pentiumpro | p6 | 6x86 | athlon)
192.502 - basic_machine=i686-pc
192.503 - ;;
192.504 - pentiumii | pentium2)
192.505 -- basic_machine=i786-pc
192.506 -+ basic_machine=i686-pc
192.507 - ;;
192.508 -- pentium-* | p5-* | k5-* | k6-* | nexen-*)
192.509 -+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
192.510 - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
192.511 - ;;
192.512 -- pentiumpro-* | p6-* | 6x86-*)
192.513 -+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
192.514 - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
192.515 - ;;
192.516 - pentiumii-* | pentium2-*)
192.517 -- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
192.518 -+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
192.519 - ;;
192.520 - pn)
192.521 - basic_machine=pn-gould
192.522 - ;;
192.523 -- power) basic_machine=rs6000-ibm
192.524 -+ power) basic_machine=power-ibm
192.525 - ;;
192.526 - ppc) basic_machine=powerpc-unknown
192.527 - ;;
192.528 -@@ -647,9 +781,23 @@
192.529 - ppcle-* | powerpclittle-*)
192.530 - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
192.531 - ;;
192.532 -+ ppc64) basic_machine=powerpc64-unknown
192.533 -+ ;;
192.534 -+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
192.535 -+ ;;
192.536 -+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
192.537 -+ basic_machine=powerpc64le-unknown
192.538 -+ ;;
192.539 -+ ppc64le-* | powerpc64little-*)
192.540 -+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
192.541 -+ ;;
192.542 - ps2)
192.543 - basic_machine=i386-ibm
192.544 - ;;
192.545 -+ pw32)
192.546 -+ basic_machine=i586-unknown
192.547 -+ os=-pw32
192.548 -+ ;;
192.549 - rom68k)
192.550 - basic_machine=m68k-rom68k
192.551 - os=-coff
192.552 -@@ -660,6 +808,12 @@
192.553 - rtpc | rtpc-*)
192.554 - basic_machine=romp-ibm
192.555 - ;;
192.556 -+ s390 | s390-*)
192.557 -+ basic_machine=s390-ibm
192.558 -+ ;;
192.559 -+ s390x | s390x-*)
192.560 -+ basic_machine=s390x-ibm
192.561 -+ ;;
192.562 - sa29200)
192.563 - basic_machine=a29k-amd
192.564 - os=-udi
192.565 -@@ -671,7 +825,7 @@
192.566 - basic_machine=sh-hitachi
192.567 - os=-hms
192.568 - ;;
192.569 -- sparclite-wrs)
192.570 -+ sparclite-wrs | simso-wrs)
192.571 - basic_machine=sparclite-wrs
192.572 - os=-vxworks
192.573 - ;;
192.574 -@@ -729,20 +883,40 @@
192.575 - sun386 | sun386i | roadrunner)
192.576 - basic_machine=i386-sun
192.577 - ;;
192.578 -+ sv1)
192.579 -+ basic_machine=sv1-cray
192.580 -+ os=-unicos
192.581 -+ ;;
192.582 - symmetry)
192.583 - basic_machine=i386-sequent
192.584 - os=-dynix
192.585 - ;;
192.586 -+ t3d)
192.587 -+ basic_machine=alpha-cray
192.588 -+ os=-unicos
192.589 -+ ;;
192.590 - t3e)
192.591 -- basic_machine=t3e-cray
192.592 -+ basic_machine=alphaev5-cray
192.593 -+ os=-unicos
192.594 -+ ;;
192.595 -+ t90)
192.596 -+ basic_machine=t90-cray
192.597 - os=-unicos
192.598 - ;;
192.599 -+ tic54x | c54x*)
192.600 -+ basic_machine=tic54x-unknown
192.601 -+ os=-coff
192.602 -+ ;;
192.603 - tx39)
192.604 - basic_machine=mipstx39-unknown
192.605 - ;;
192.606 - tx39el)
192.607 - basic_machine=mipstx39el-unknown
192.608 - ;;
192.609 -+ toad1)
192.610 -+ basic_machine=pdp10-xkl
192.611 -+ os=-tops20
192.612 -+ ;;
192.613 - tower | tower-32)
192.614 - basic_machine=m68k-ncr
192.615 - ;;
192.616 -@@ -789,13 +963,17 @@
192.617 - basic_machine=hppa1.1-winbond
192.618 - os=-proelf
192.619 - ;;
192.620 -- xmp)
192.621 -- basic_machine=xmp-cray
192.622 -- os=-unicos
192.623 -+ windows32)
192.624 -+ basic_machine=i386-pc
192.625 -+ os=-windows32-msvcrt
192.626 - ;;
192.627 - xps | xps100)
192.628 - basic_machine=xps100-honeywell
192.629 - ;;
192.630 -+ ymp)
192.631 -+ basic_machine=ymp-cray
192.632 -+ os=-unicos
192.633 -+ ;;
192.634 - z8k-*-coff)
192.635 - basic_machine=z8k-unknown
192.636 - os=-sim
192.637 -@@ -816,13 +994,6 @@
192.638 - op60c)
192.639 - basic_machine=hppa1.1-oki
192.640 - ;;
192.641 -- mips)
192.642 -- if [ x$os = x-linux-gnu ]; then
192.643 -- basic_machine=mips-unknown
192.644 -- else
192.645 -- basic_machine=mips-mips
192.646 -- fi
192.647 -- ;;
192.648 - romp)
192.649 - basic_machine=romp-ibm
192.650 - ;;
192.651 -@@ -832,13 +1003,23 @@
192.652 - vax)
192.653 - basic_machine=vax-dec
192.654 - ;;
192.655 -+ pdp10)
192.656 -+ # there are many clones, so DEC is not a safe bet
192.657 -+ basic_machine=pdp10-unknown
192.658 -+ ;;
192.659 - pdp11)
192.660 - basic_machine=pdp11-dec
192.661 - ;;
192.662 - we32k)
192.663 - basic_machine=we32k-att
192.664 - ;;
192.665 -- sparc | sparcv9)
192.666 -+ sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
192.667 -+ basic_machine=sh-unknown
192.668 -+ ;;
192.669 -+ sh64)
192.670 -+ basic_machine=sh64-unknown
192.671 -+ ;;
192.672 -+ sparc | sparcv9 | sparcv9b)
192.673 - basic_machine=sparc-sun
192.674 - ;;
192.675 - cydra)
192.676 -@@ -860,6 +1041,9 @@
192.677 - basic_machine=c4x-none
192.678 - os=-coff
192.679 - ;;
192.680 -+ *-unknown)
192.681 -+ # Make sure to match an already-canonicalized machine name.
192.682 -+ ;;
192.683 - *)
192.684 - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
192.685 - exit 1
192.686 -@@ -916,14 +1100,31 @@
192.687 - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
192.688 - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
192.689 - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
192.690 -+ | -chorusos* | -chorusrdb* \
192.691 - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
192.692 - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
192.693 -- | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
192.694 -+ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
192.695 -+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
192.696 -+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
192.697 -+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
192.698 -+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
192.699 - # Remember, each alternative MUST END IN *, to match a version number.
192.700 - ;;
192.701 -+ -qnx*)
192.702 -+ case $basic_machine in
192.703 -+ x86-* | i*86-*)
192.704 -+ ;;
192.705 -+ *)
192.706 -+ os=-nto$os
192.707 -+ ;;
192.708 -+ esac
192.709 -+ ;;
192.710 -+ -nto*)
192.711 -+ os=-nto-qnx
192.712 -+ ;;
192.713 - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
192.714 - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
192.715 -- | -macos* | -mpw* | -magic* | -mon960* | -lnews*)
192.716 -+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
192.717 - ;;
192.718 - -mac*)
192.719 - os=`echo $os | sed -e 's|mac|macos|'`
192.720 -@@ -940,6 +1141,9 @@
192.721 - -opened*)
192.722 - os=-openedition
192.723 - ;;
192.724 -+ -wince*)
192.725 -+ os=-wince
192.726 -+ ;;
192.727 - -osfrose*)
192.728 - os=-osfrose
192.729 - ;;
192.730 -@@ -955,15 +1159,24 @@
192.731 - -acis*)
192.732 - os=-aos
192.733 - ;;
192.734 -+ -atheos*)
192.735 -+ os=-atheos
192.736 -+ ;;
192.737 - -386bsd)
192.738 - os=-bsd
192.739 - ;;
192.740 - -ctix* | -uts*)
192.741 - os=-sysv
192.742 - ;;
192.743 -+ -nova*)
192.744 -+ os=-rtmk-nova
192.745 -+ ;;
192.746 - -ns2 )
192.747 - os=-nextstep2
192.748 - ;;
192.749 -+ -nsk*)
192.750 -+ os=-nsk
192.751 -+ ;;
192.752 - # Preserve the version number of sinix5.
192.753 - -sinix5.*)
192.754 - os=`echo $os | sed -e 's|sinix|sysv|'`
192.755 -@@ -977,9 +1190,6 @@
192.756 - -oss*)
192.757 - os=-sysv3
192.758 - ;;
192.759 -- -qnx)
192.760 -- os=-qnx4
192.761 -- ;;
192.762 - -svr4)
192.763 - os=-sysv4
192.764 - ;;
192.765 -@@ -1001,7 +1211,7 @@
192.766 - -xenix)
192.767 - os=-xenix
192.768 - ;;
192.769 -- -*mint | -*MiNT)
192.770 -+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
192.771 - os=-mint
192.772 - ;;
192.773 - -none)
192.774 -@@ -1035,6 +1245,10 @@
192.775 - arm*-semi)
192.776 - os=-aout
192.777 - ;;
192.778 -+ # This must come before the *-dec entry.
192.779 -+ pdp10-*)
192.780 -+ os=-tops20
192.781 -+ ;;
192.782 - pdp11-*)
192.783 - os=-none
192.784 - ;;
192.785 -@@ -1062,6 +1276,9 @@
192.786 - mips*-*)
192.787 - os=-elf
192.788 - ;;
192.789 -+ or32-*)
192.790 -+ os=-coff
192.791 -+ ;;
192.792 - *-tti) # must be before sparc entry or we get the wrong os.
192.793 - os=-sysv3
192.794 - ;;
192.795 -@@ -1143,7 +1360,7 @@
192.796 - *-masscomp)
192.797 - os=-rtu
192.798 - ;;
192.799 -- f301-fujitsu)
192.800 -+ f30[01]-fujitsu | f700-fujitsu)
192.801 - os=-uxpv
192.802 - ;;
192.803 - *-rom68k)
192.804 -@@ -1209,7 +1426,7 @@
192.805 - -ptx*)
192.806 - vendor=sequent
192.807 - ;;
192.808 -- -vxsim* | -vxworks*)
192.809 -+ -vxsim* | -vxworks* | -windiss*)
192.810 - vendor=wrs
192.811 - ;;
192.812 - -aux*)
192.813 -@@ -1221,12 +1438,23 @@
192.814 - -mpw* | -macos*)
192.815 - vendor=apple
192.816 - ;;
192.817 -- -*mint | -*MiNT)
192.818 -+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
192.819 - vendor=atari
192.820 - ;;
192.821 -+ -vos*)
192.822 -+ vendor=stratus
192.823 -+ ;;
192.824 - esac
192.825 - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
192.826 - ;;
192.827 - esac
192.828 -
192.829 - echo $basic_machine$os
192.830 -+exit 0
192.831 -+
192.832 -+# Local variables:
192.833 -+# eval: (add-hook 'write-file-hooks 'time-stamp)
192.834 -+# time-stamp-start: "timestamp='"
192.835 -+# time-stamp-format: "%:y-%02m-%02d"
192.836 -+# time-stamp-end: "'"
192.837 -+# End:
193.1 --- a/patches/glibc/2.1.3/el.po.patch Tue Aug 14 19:32:22 2007 +0000
193.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
193.3 @@ -1,40 +0,0 @@
193.4 -From
193.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/po/Makefile.diff?r1=1.17&r2=1.18&cvsroot=glibc
193.6 -
193.7 -Fixes error
193.8 - msgfmt -o el.mo el.po
193.9 - el.po:538:31: invalid multibyte sequence
193.10 - el.po:539:21: invalid multibyte sequence
193.11 - el.po:1537:38: invalid multibyte sequence
193.12 - msgfmt: found 3 fatal errors
193.13 - make[2]: *** [el.mo] Error 1
193.14 - make[2]: Leaving directory
193.15 - `/home/dkegel/wk/crosstool-0.25/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.1.3/glibc-2.1.3/po'
193.16 -
193.17 -===================================================================
193.18 -RCS file: /cvs/glibc/libc/po/Makefile,v
193.19 -retrieving revision 1.17
193.20 -retrieving revision 1.18
193.21 -diff -u -r1.17 -r1.18
193.22 ---- libc/po/Makefile 1999/09/13 08:48:40 1.17
193.23 -+++ libc/po/Makefile 2001/04/20 04:45:54 1.18
193.24 -@@ -1,4 +1,4 @@
193.25 --# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
193.26 -+# Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
193.27 - # This file is part of the GNU C Library.
193.28 -
193.29 - # The GNU C Library is free software; you can redistribute it and/or
193.30 -@@ -20,8 +20,12 @@
193.31 -
193.32 - subdir := po
193.33 -
193.34 -+# List of languages that are currently broken (just run msgfmt from
193.35 -+# GNU gettext 0.10.36 on them to see why)
193.36 -+BROKEN_LINGUAS = el
193.37 -+
193.38 - # List of languages for which we have message catalogs of translations.
193.39 --ALL_LINGUAS := $(basename $(wildcard *.po))
193.40 -+ALL_LINGUAS := $(filter-out $(BROKEN_LINGUAS),$(basename $(wildcard *.po)))
193.41 -
193.42 - # You can override this in configparms or the make command line to limit
193.43 - # the languages which get installed.
194.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-ac_cv_prog_cc_cross.patch Tue Aug 14 19:32:22 2007 +0000
194.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
194.3 @@ -1,44 +0,0 @@
194.4 -Lets you work around the canadian cross build error
194.5 -
194.6 -.../gcc-3.4.0-glibc-2.1.3/build-glibc/elf/sln .../gcc-3.4.0-glibc-2.1.3/build-glibc/elf/symlink.list
194.7 -make[1]: *** [install-symbolic-link] Segmentation fault
194.8 -make[1]: Leaving directory `.../gcc-3.4.0-glibc-2.1.3/glibc-2.1.3'
194.9 -make: *** [install] Error 2
194.10 -
194.11 -by setting --host != --build when running glibc-2.1.3/configure
194.12 -instead of hoping that host and build aren't aliases for each other
194.13 -and that running a host program on the build machine doesn't
194.14 -put up a dialog box or accidentally work.
194.15 -
194.16 -(cf. http://sources.redhat.com/ml/crossgcc/2002-08/msg00099.html, in which
194.17 -the run of conftest caused a dialog box to pop up and block the build on cygwin)
194.18 -
194.19 ---- glibc-2.1.3/configure.old 2004-05-26 19:30:45.000000000 -0700
194.20 -+++ glibc-2.1.3/configure 2004-05-26 19:42:29.000000000 -0700
194.21 -@@ -1224,7 +1224,7 @@
194.22 - build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
194.23 - echo "$ac_t""$build" 1>&6
194.24 -
194.25 --if test $host != $build; then
194.26 -+if test x$host_alias != x$build_alias; then
194.27 - ac_tool_prefix=${host_alias}-
194.28 - else
194.29 - ac_tool_prefix=
194.30 -@@ -1487,7 +1487,7 @@
194.31 - if { (eval echo configure:1488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
194.32 - ac_cv_prog_cc_works=yes
194.33 - # If we can't run a trivial program, we are probably using a cross compiler.
194.34 -- if (./conftest; exit) 2>/dev/null; then
194.35 -+ if test x$host_alias == x$build_alias && (./conftest; exit) 2>/dev/null; then
194.36 - ac_cv_prog_cc_cross=no
194.37 - else
194.38 - ac_cv_prog_cc_cross=yes
194.39 -@@ -1566,7 +1566,7 @@
194.40 - build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
194.41 - echo "$ac_t""$build" 1>&6
194.42 -
194.43 --if test $host != $build; then
194.44 -+if test x$host_alias != x$build_alias; then
194.45 - for ac_prog in gcc cc
194.46 - do
194.47 - # Extract the first word of "$ac_prog", so it can be a program name with args.
195.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-db2.patch Tue Aug 14 19:32:22 2007 +0000
195.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
195.3 @@ -1,17 +0,0 @@
195.4 -Fixes error compiling with gcc-3.4.0:
195.5 -
195.6 -os/os_oflags.c: In function `__db_oflags':
195.7 -os/os_oflags.c:48: error: label at end of compound statement
195.8 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/db2/os_oflags.os] Error 1
195.9 -
195.10 ---- glibc-2.1.3/db2/os/os_oflags.c.old Sun Apr 11 19:56:44 2004
195.11 -+++ glibc-2.1.3/db2/os/os_oflags.c Sun Apr 11 19:57:06 2004
195.12 -@@ -44,7 +44,7 @@
195.13 - case O_RDWR:
195.14 - break;
195.15 - default: /* Bogus flags value from user. */
195.16 -- /* XXX no way to return error from here */
195.17 -+ ; /* XXX no way to return error from here */
195.18 - }
195.19 - if (oflags & O_CREAT)
195.20 - dbflags |= DB_CREATE;
196.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-dns.patch Tue Aug 14 19:32:22 2007 +0000
196.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
196.3 @@ -1,21 +0,0 @@
196.4 -Fixes
196.5 -
196.6 -nss_dns/dns-host.c: In function `_nss_dns_gethostbyaddr_r':
196.7 -nss_dns/dns-host.c:268: error: label at end of compound statement
196.8 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/resolv/dns-host.os] Error 1
196.9 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/resolv'
196.10 -make[1]: *** [resolv/others] Error 2
196.11 -
196.12 -when building with gcc-3.4.0
196.13 -
196.14 ---- glibc-2.1.3/resolv/nss_dns/dns-host.c.old Sun Apr 11 20:32:47 2004
196.15 -+++ glibc-2.1.3/resolv/nss_dns/dns-host.c Sun Apr 11 20:33:07 2004
196.16 -@@ -264,7 +264,7 @@
196.17 - strcpy (qp, "ip6.int");
196.18 - break;
196.19 - default:
196.20 -- /* Cannot happen. */
196.21 -+ ; /* Cannot happen. */
196.22 - }
196.23 -
196.24 - host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
197.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-fixup.patch Tue Aug 14 19:32:22 2007 +0000
197.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
197.3 @@ -1,70 +0,0 @@
197.4 -Fixes
197.5 -dl-runtime.c:56: error: conflicting types for 'fixup'
197.6 -../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
197.7 -when building with gcc-3.4.0
197.8 -
197.9 -First hunk:
197.10 -Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
197.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
197.12 -[rediffed against glibc-2.1.3]
197.13 -
197.14 -Second hunk:
197.15 -If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
197.16 -Use macro in fixup function definitions.
197.17 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
197.18 -[rediffed against glibc-2.3.2]
197.19 -
197.20 -===================================================================
197.21 ---- glibc-2.1.3/sysdeps/i386/dl-machine.h.old Sun Apr 11 18:58:45 2004
197.22 -+++ glibc-2.1.3/sysdeps/i386/dl-machine.h Sun Apr 11 18:59:51 2004
197.23 -@@ -70,11 +70,14 @@
197.24 -
197.25 - We cannot use this scheme for profiling because the _mcount call
197.26 - destroys the passed register information. */
197.27 -+
197.28 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
197.29 -+
197.30 - static ElfW(Addr) fixup (struct link_map *l, ElfW(Word) reloc_offset)
197.31 -- __attribute__ ((regparm (2), unused));
197.32 -+ ARCH_FIXUP_ATTRIBUTE;
197.33 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
197.34 - ElfW(Addr) retaddr)
197.35 -- __attribute__ ((regparm (3), unused));
197.36 -+ ARCH_FIXUP_ATTRIBUTE;
197.37 - #endif
197.38 -
197.39 - /* Set up the loaded object described by L so its unrelocated PLT
197.40 -===================================================================
197.41 ---- glibc-2.1.3/elf/dl-runtime.c~ Thu Jul 15 11:32:41 1999
197.42 -+++ glibc-2.1.3/elf/dl-runtime.c Sun Apr 11 19:02:01 2004
197.43 -@@ -31,6 +31,12 @@
197.44 - # define VERSYMIDX(sym) (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (sym))
197.45 - #endif
197.46 -
197.47 -+/* The fixup functions might have need special attributes. If none
197.48 -+ are provided define the macro as empty. */
197.49 -+#ifndef ARCH_FIXUP_ATTRIBUTE
197.50 -+# define ARCH_FIXUP_ATTRIBUTE
197.51 -+#endif
197.52 -+
197.53 -
197.54 - /* This function is called through a special trampoline from the PLT the
197.55 - first time each PLT entry is called. We must perform the relocation
197.56 -@@ -40,7 +46,7 @@
197.57 - function. */
197.58 -
197.59 - #ifndef ELF_MACHINE_NO_PLT
197.60 --static ElfW(Addr) __attribute__ ((unused))
197.61 -+static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE
197.62 - fixup (
197.63 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
197.64 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
197.65 -@@ -105,7 +111,7 @@
197.66 -
197.67 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT
197.68 -
197.69 --static ElfW(Addr) __attribute__ ((unused))
197.70 -+static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE
197.71 - profile_fixup (
197.72 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
197.73 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
198.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-generic.patch Tue Aug 14 19:32:22 2007 +0000
198.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
198.3 @@ -1,157 +0,0 @@
198.4 -Fixes following error when building with gcc-3.4.0:
198.5 -../sysdeps/generic/strstr.c: In function `strstr':
198.6 -../sysdeps/generic/strstr.c:85: error: label at end of compound statement
198.7 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/string/strstr.o] Error 1
198.8 -
198.9 -
198.10 ---------
198.11 -CVSROOT: /cvs/glibc
198.12 -Module name: libc
198.13 -Changes by: drepper@sources.redhat.com 2000-11-25 23:30:03
198.14 -
198.15 -Modified files:
198.16 - sysdeps/generic: _strerror.c memrchr.c strcasestr.c strstr.c
198.17 -
198.18 -Log message:
198.19 - Add casts to avoid warnings.
198.20 ---------
198.21 -
198.22 -Retrieved with
198.23 - cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc diff -u -D"2000-11-24 23:30:03" -D"2000-11-26 23:30:03"
198.24 -then fixed paths and threw out first two hunks
198.25 -
198.26 -
198.27 -#Index: _strerror.c
198.28 -#===================================================================
198.29 -#RCS file: /cvs/libc/sysdeps/generic/_strerror.c,v
198.30 -#retrieving revision 1.16
198.31 -#retrieving revision 1.17
198.32 -#diff -u -r1.16 -r1.17
198.33 -#--- libc/sysdeps/generic/_strerror.c 29 Aug 2000 01:09:56 -0000 1.16
198.34 -#+++ libc/sysdeps/generic/_strerror.c 26 Nov 2000 07:30:03 -0000 1.17
198.35 -#@@ -56,7 +56,7 @@
198.36 -# buffer size. */
198.37 -# q = __mempcpy (buf, unk, MIN (unklen, buflen));
198.38 -# if (unklen < buflen)
198.39 -#- memcpy (q, p, MIN (&numbuf[21] - p, buflen - unklen));
198.40 -#+ memcpy (q, p, MIN ((size_t) (&numbuf[21] - p), buflen - unklen));
198.41 -#
198.42 -# /* Terminate the string in any case. */
198.43 -# if (buflen > 0)
198.44 -#Index: memrchr.c
198.45 -#===================================================================
198.46 -#RCS file: /cvs/libc/sysdeps/generic/memrchr.c,v
198.47 -#retrieving revision 1.5
198.48 -#retrieving revision 1.6
198.49 -#diff -u -r1.5 -r1.6
198.50 -#--- libc/sysdeps/generic/memrchr.c 23 Oct 2000 23:07:32 -0000 1.5
198.51 -#+++ libc/sysdeps/generic/memrchr.c 26 Nov 2000 07:30:03 -0000 1.6
198.52 -#@@ -86,7 +86,7 @@
198.53 -# /* All these elucidatory comments refer to 4-byte longwords,
198.54 -# but the theory applies equally well to 8-byte longwords. */
198.55 -#
198.56 -#- longword_ptr = (unsigned long int *) char_ptr;
198.57 -#+ longword_ptr = (const unsigned long int *) char_ptr;
198.58 -#
198.59 -# /* Bits 31, 24, 16, and 8 of this number are zero. Call these bits
198.60 -# the "holes." Note that there is a hole just to the left of
198.61 -Index: strcasestr.c
198.62 -===================================================================
198.63 -RCS file: /cvs/libc/sysdeps/generic/strcasestr.c,v
198.64 -retrieving revision 1.3
198.65 -retrieving revision 1.4
198.66 -diff -u -r1.3 -r1.4
198.67 ---- libc/sysdeps/generic/strcasestr.c 23 Jan 1999 22:16:03 -0000 1.3
198.68 -+++ libc/sysdeps/generic/strcasestr.c 26 Nov 2000 07:30:03 -0000 1.4
198.69 -@@ -1,5 +1,5 @@
198.70 - /* Return the offset of one string within another.
198.71 -- Copyright (C) 1994, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
198.72 -+ Copyright (C) 1994,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
198.73 - This file is part of the GNU C Library.
198.74 -
198.75 - The GNU C Library is free software; you can redistribute it and/or
198.76 -@@ -62,7 +62,7 @@
198.77 - if (c == '\0')
198.78 - goto ret0;
198.79 - }
198.80 -- while (_tolower (c) != b);
198.81 -+ while (_tolower (c) != (int) b);
198.82 -
198.83 - c = _tolower (*++needle);
198.84 - if (c == '\0')
198.85 -@@ -80,40 +80,42 @@
198.86 - a = *++haystack;
198.87 - if (a == '\0')
198.88 - goto ret0;
198.89 -- if (_tolower (a) == b)
198.90 -+ if (_tolower (a) == (int) b)
198.91 - break;
198.92 - a = *++haystack;
198.93 - if (a == '\0')
198.94 - goto ret0;
198.95 --shloop: }
198.96 -- while (_tolower (a) != b);
198.97 -+shloop:
198.98 -+ ;
198.99 -+ }
198.100 -+ while (_tolower (a) != (int) b);
198.101 -
198.102 - jin: a = *++haystack;
198.103 - if (a == '\0')
198.104 - goto ret0;
198.105 -
198.106 -- if (_tolower (a) != c)
198.107 -+ if (_tolower (a) != (int) c)
198.108 - goto shloop;
198.109 -
198.110 - rhaystack = haystack-- + 1;
198.111 - rneedle = needle;
198.112 - a = _tolower (*rneedle);
198.113 -
198.114 -- if (_tolower (*rhaystack) == a)
198.115 -+ if (_tolower (*rhaystack) == (int) a)
198.116 - do
198.117 - {
198.118 - if (a == '\0')
198.119 - goto foundneedle;
198.120 - ++rhaystack;
198.121 - a = _tolower (*++needle);
198.122 -- if (_tolower (*rhaystack) != a)
198.123 -+ if (_tolower (*rhaystack) != (int) a)
198.124 - break;
198.125 - if (a == '\0')
198.126 - goto foundneedle;
198.127 - ++rhaystack;
198.128 - a = _tolower (*++needle);
198.129 - }
198.130 -- while (_tolower (*rhaystack) == a);
198.131 -+ while (_tolower (*rhaystack) == (int) a);
198.132 -
198.133 - needle = rneedle; /* took the register-poor approach */
198.134 -
198.135 -Index: strstr.c
198.136 -===================================================================
198.137 -RCS file: /cvs/libc/sysdeps/generic/strstr.c,v
198.138 -retrieving revision 1.10
198.139 -retrieving revision 1.11
198.140 -diff -u -r1.10 -r1.11
198.141 ---- libc/sysdeps/generic/strstr.c 11 Sep 1997 03:18:20 -0000 1.10
198.142 -+++ libc/sysdeps/generic/strstr.c 26 Nov 2000 07:30:03 -0000 1.11
198.143 -@@ -1,5 +1,5 @@
198.144 - /* Return the offset of one string within another.
198.145 -- Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
198.146 -+ Copyright (C) 1994, 1996, 1997, 2000 Free Software Foundation, Inc.
198.147 - This file is part of the GNU C Library.
198.148 -
198.149 - The GNU C Library is free software; you can redistribute it and/or
198.150 -@@ -82,7 +82,9 @@
198.151 - a = *++haystack;
198.152 - if (a == '\0')
198.153 - goto ret0;
198.154 --shloop: }
198.155 -+shloop:
198.156 -+ ;
198.157 -+ }
198.158 - while (a != b);
198.159 -
198.160 - jin: a = *++haystack;
199.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-grp.patch Tue Aug 14 19:32:22 2007 +0000
199.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
199.3 @@ -1,56 +0,0 @@
199.4 -Fixes
199.5 -initgroups.c: In function `internal_getgrouplist':
199.6 -initgroups.c:179: error: parse error before "__FUNCTION__"
199.7 -
199.8 -CVSROOT: /cvs/glibc
199.9 -Module name: libc
199.10 -Changes by: roland@sources.redhat.com 2001-12-16 21:52:12
199.11 -
199.12 -Modified files:
199.13 - nss : nsswitch.c
199.14 - grp : initgroups.c
199.15 -
199.16 -Log message:
199.17 - 2001-12-16 Roland McGrath <roland@frob.com>
199.18 -
199.19 - * nss/nsswitch.c (__nss_next): Don't use __FUNCTION__ as literal.
199.20 - * grp/initgroups.c (internal_getgrouplist): Likewise.
199.21 -
199.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/grp/initgroups.c.diff?r1=1.26&r2=1.27&cvsroot=glibc
199.23 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nss/nsswitch.c.diff?r1=1.52&r2=1.53&cvsroot=glibc
199.24 -
199.25 -Removed 2nd hunk for glibc-2.1.3 (it was just whitespace)
199.26 -
199.27 -===================================================================
199.28 -RCS file: /cvs/glibc/libc/grp/initgroups.c,v
199.29 -retrieving revision 1.26
199.30 -retrieving revision 1.27
199.31 -diff -u -r1.26 -r1.27
199.32 ---- libc/grp/initgroups.c 2001/07/06 04:54:46 1.26
199.33 -+++ libc/grp/initgroups.c 2001/12/17 05:52:11 1.27
199.34 -@@ -176,7 +176,7 @@
199.35 -
199.36 - /* This is really only for debugging. */
199.37 - if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
199.38 -- __libc_fatal ("illegal status in " __FUNCTION__);
199.39 -+ __libc_fatal ("illegal status in internal_getgrouplist");
199.40 -
199.41 - if (status != NSS_STATUS_SUCCESS
199.42 - && nss_next_action (nip, status) == NSS_ACTION_RETURN)
199.43 -
199.44 -===================================================================
199.45 -RCS file: /cvs/glibc/libc/nss/nsswitch.c,v
199.46 -retrieving revision 1.52
199.47 -retrieving revision 1.53
199.48 -diff -u -r1.52 -r1.53
199.49 ---- libc/nss/nsswitch.c 2001/07/17 08:21:36 1.52
199.50 -+++ libc/nss/nsswitch.c 2001/12/17 05:52:11 1.53
199.51 -@@ -178,7 +178,7 @@
199.52 - {
199.53 - /* This is really only for debugging. */
199.54 - if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
199.55 -- __libc_fatal ("illegal status in " __FUNCTION__);
199.56 -+ __libc_fatal ("illegal status in __nss_next");
199.57 -
199.58 - if (nss_next_action (*ni, status) == NSS_ACTION_RETURN)
199.59 - return 1;
200.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-locale.patch Tue Aug 14 19:32:22 2007 +0000
200.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
200.3 @@ -1,33 +0,0 @@
200.4 -programs/locfile.c: In function `locfile_read':
200.5 -programs/locfile.c:863: error: label at end of compound statement
200.6 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/locale/locfile.o] Error 1
200.7 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/locale'
200.8 -
200.9 -programs/locale.c: In function `print_item':
200.10 -programs/locale.c:666: error: label at end of compound statement
200.11 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/locale/locale.o] Error 1
200.12 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/locale'
200.13 -
200.14 -
200.15 -Mechanical changes to quiet the errors.
200.16 -
200.17 ---- glibc-2.1.3/locale/programs/locfile.c.old Sun Apr 11 20:03:52 2004
200.18 -+++ glibc-2.1.3/locale/programs/locfile.c Sun Apr 11 20:04:47 2004
200.19 -@@ -860,6 +860,7 @@
200.20 -
200.21 - collate_end_weight (ldfile, result);
200.22 - illegal_weight:
200.23 -+ ; /* gcc-3.4 requires a statement here */
200.24 - }
200.25 - continue;
200.26 -
200.27 ---- glibc-2.1.3/locale/programs/locale.c.old Sun Apr 11 20:08:48 2004
200.28 -+++ glibc-2.1.3/locale/programs/locale.c Sun Apr 11 20:09:04 2004
200.29 -@@ -663,6 +663,7 @@
200.30 - }
200.31 - break;
200.32 - default:
200.33 -+ ; /* gcc-3.4 requires a statement here */
200.34 - }
200.35 - putchar ('\n');
200.36 - }
201.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-mntent.patch Tue Aug 14 19:32:22 2007 +0000
201.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
201.3 @@ -1,39 +0,0 @@
201.4 -Fixes compilation with gcc-3.4.0:
201.5 -
201.6 -mntent_r.c: In function `__getmntent_r':
201.7 -mntent_r.c:146: error: label at end of compound statement
201.8 -mntent_r.c: In function `__addmntent':
201.9 -mntent_r.c:214: warning: implicit declaration of function `alloca'
201.10 -
201.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/misc/mntent_r.c.diff?r1=1.9&r2=1.11&cvsroot=glibc
201.12 -
201.13 -===================================================================
201.14 -RCS file: /cvs/glibc/libc/misc/mntent_r.c,v
201.15 -retrieving revision 1.9
201.16 -retrieving revision 1.11
201.17 -diff -u -r1.9 -r1.11
201.18 ---- libc/misc/mntent_r.c 1999/07/26 01:45:32 1.9
201.19 -+++ libc/misc/mntent_r.c 2000/11/28 07:27:14 1.11
201.20 -@@ -1,5 +1,5 @@
201.21 - /* Utilities for reading/writing fstab, mtab, etc.
201.22 -- Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
201.23 -+ Copyright (C) 1995,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
201.24 - This file is part of the GNU C Library.
201.25 -
201.26 - The GNU C Library is free software; you can redistribute it and/or
201.27 -@@ -17,6 +17,7 @@
201.28 - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
201.29 - Boston, MA 02111-1307, USA. */
201.30 -
201.31 -+#include <alloca.h>
201.32 - #include <mntent.h>
201.33 - #include <stdio.h>
201.34 - #include <string.h>
201.35 -@@ -143,6 +144,7 @@
201.36 - case 1:
201.37 - mp->mnt_passno = 0;
201.38 - case 2:
201.39 -+ break;
201.40 - }
201.41 - funlockfile (stream);
201.42 -
202.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-sunrpc.patch Tue Aug 14 19:32:22 2007 +0000
202.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
202.3 @@ -1,33 +0,0 @@
202.4 -Fixes gcc-3.4.0 compilation errors
202.5 -
202.6 -rpc_hout.c: In function `print_funcdef':
202.7 -rpc_hout.c:140: error: label at end of compound statement
202.8 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/sunrpc/rpc_hout.o] Error 1
202.9 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/sunrpc'
202.10 -
202.11 -rpc_cout.c: In function `emit_inline':
202.12 -rpc_cout.c:743: error: label at end of compound statement
202.13 -...
202.14 -
202.15 ---- glibc-2.1.3/sunrpc/rpc_hout.c.old Sun Apr 11 22:06:26 2004
202.16 -+++ glibc-2.1.3/sunrpc/rpc_hout.c Sun Apr 11 22:06:42 2004
202.17 -@@ -136,7 +136,7 @@
202.18 - pprogramdef (def);
202.19 - break;
202.20 - default:
202.21 -- /* ?... shouldn't happen I guess */
202.22 -+ ; /* ?... shouldn't happen I guess */
202.23 - }
202.24 - }
202.25 -
202.26 ---- glibc-2.1.3/sunrpc/rpc_cout.c.old Sun Apr 11 22:10:39 2004
202.27 -+++ glibc-2.1.3/sunrpc/rpc_cout.c Sun Apr 11 22:10:53 2004
202.28 -@@ -739,7 +739,7 @@
202.29 - f_print (fout, "}\n");
202.30 - break;
202.31 - default:
202.32 -- /* ?... do nothing I guess */
202.33 -+ ; /* ?... do nothing I guess */
202.34 - }
202.35 - }
202.36 -
203.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-configure.patch Tue Aug 14 19:32:22 2007 +0000
203.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
203.3 @@ -1,11 +0,0 @@
203.4 ---- glibc-2.1.3/configure.old 2004-03-04 11:05:49.000000000 -0800
203.5 -+++ glibc-2.1.3/configure 2004-03-04 11:07:58.000000000 -0800
203.6 -@@ -1273,7 +1273,7 @@
203.7 - ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustp-]*[0-9.]*\).*$/\1/p'`
203.8 - case $ac_prog_version in
203.9 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
203.10 -- egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9])
203.11 -+ egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[2-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9])
203.12 - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
203.13 - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
203.14 -
204.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-dl-machine-i386.patch Tue Aug 14 19:32:22 2007 +0000
204.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
204.3 @@ -1,171 +0,0 @@
204.4 - * sysdeps/i386/dl-machine.h (RTLD_START): Don't use multi-line
204.5 - strings.
204.6 - (ELF_MACHINE_RUNTIME_TRAMPOLINE): Likewise.
204.7 -
204.8 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.82&r2=1.83&cvsroot=glibc&hideattic=0
204.9 -backported a bit
204.10 -
204.11 ---- glibc-2.1.3/sysdeps/i386/dl-machine.h.old 1999-02-20 10:19:47.000000000 -0800
204.12 -+++ glibc-2.1.3/sysdeps/i386/dl-machine.h 2004-03-05 15:56:25.000000000 -0800
204.13 -@@ -124,68 +124,68 @@
204.14 - and then redirect to the address it returns. */
204.15 - #ifndef PROF
204.16 - # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
204.17 -- .text
204.18 -- .globl _dl_runtime_resolve
204.19 -- .type _dl_runtime_resolve, @function
204.20 -- .align 16
204.21 --_dl_runtime_resolve:
204.22 -- pushl %eax # Preserve registers otherwise clobbered.
204.23 -- pushl %ecx
204.24 -- pushl %edx
204.25 -- movl 16(%esp), %edx # Copy args pushed by PLT in register. Note
204.26 -- movl 12(%esp), %eax # that `fixup' takes its parameters in regs.
204.27 -- call fixup # Call resolver.
204.28 -- popl %edx # Get register content back.
204.29 -- popl %ecx
204.30 -- xchgl %eax, (%esp) # Get %eax contents end store function address.
204.31 -- ret $8 # Jump to function address.
204.32 -- .size _dl_runtime_resolve, .-_dl_runtime_resolve
204.33 --
204.34 -- .globl _dl_runtime_profile
204.35 -- .type _dl_runtime_profile, @function
204.36 -- .align 16
204.37 --_dl_runtime_profile:
204.38 -- pushl %eax # Preserve registers otherwise clobbered.
204.39 -- pushl %ecx
204.40 -- pushl %edx
204.41 -- movl 20(%esp), %ecx # Load return address
204.42 -- movl 16(%esp), %edx # Copy args pushed by PLT in register. Note
204.43 -- movl 12(%esp), %eax # that `fixup' takes its parameters in regs.
204.44 -- call profile_fixup # Call resolver.
204.45 -- popl %edx # Get register content back.
204.46 -- popl %ecx
204.47 -- xchgl %eax, (%esp) # Get %eax contents end store function address.
204.48 -- ret $8 # Jump to function address.
204.49 -- .size _dl_runtime_profile, .-_dl_runtime_profile
204.50 -- .previous
204.51 -+ .text\n\
204.52 -+ .globl _dl_runtime_resolve\n\
204.53 -+ .type _dl_runtime_resolve, @function\n\
204.54 -+ .align 16\n\
204.55 -+_dl_runtime_resolve:\n\
204.56 -+ pushl %eax # Preserve registers otherwise clobbered.\n\
204.57 -+ pushl %ecx\n\
204.58 -+ pushl %edx\n\
204.59 -+ movl 16(%esp), %edx # Copy args pushed by PLT in register. Note\n\
204.60 -+ movl 12(%esp), %eax # that `fixup' takes its parameters in regs.\n\
204.61 -+ call fixup # Call resolver.\n\
204.62 -+ popl %edx # Get register content back.\n\
204.63 -+ popl %ecx\n\
204.64 -+ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\
204.65 -+ ret $8 # Jump to function address.\n\
204.66 -+ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
204.67 -+\n\
204.68 -+ .globl _dl_runtime_profile\n\
204.69 -+ .type _dl_runtime_profile, @function\n\
204.70 -+ .align 16\n\
204.71 -+_dl_runtime_profile:\n\
204.72 -+ pushl %eax # Preserve registers otherwise clobbered.\n\
204.73 -+ pushl %ecx\n\
204.74 -+ pushl %edx\n\
204.75 -+ movl 20(%esp), %ecx # Load return address\n\
204.76 -+ movl 16(%esp), %edx # Copy args pushed by PLT in register. Note\n\
204.77 -+ movl 12(%esp), %eax # that `fixup' takes its parameters in regs.\n\
204.78 -+ call profile_fixup # Call resolver.\n\
204.79 -+ popl %edx # Get register content back.\n\
204.80 -+ popl %ecx\n\
204.81 -+ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\
204.82 -+ ret $8 # Jump to function address.\n\
204.83 -+ .size _dl_runtime_profile, .-_dl_runtime_profile\n\
204.84 -+ .previous\n\
204.85 - ");
204.86 - #else
204.87 --# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
204.88 -- .text
204.89 -- .globl _dl_runtime_resolve
204.90 -- .globl _dl_runtime_profile
204.91 -- .type _dl_runtime_resolve, @function
204.92 -- .type _dl_runtime_profile, @function
204.93 -- .align 16
204.94 --_dl_runtime_resolve:
204.95 --_dl_runtime_profile:
204.96 -- pushl %eax # Preserve registers otherwise clobbered.
204.97 -- pushl %ecx
204.98 -- pushl %edx
204.99 -- movl 16(%esp), %edx # Push the arguments for `fixup'
204.100 -- movl 12(%esp), %eax
204.101 -- pushl %edx
204.102 -- pushl %eax
204.103 -- call fixup # Call resolver.
204.104 -- popl %edx # Pop the parameters
204.105 -- popl %ecx
204.106 -- popl %edx # Get register content back.
204.107 -- popl %ecx
204.108 -- xchgl %eax, (%esp) # Get %eax contents end store function address.
204.109 -- ret $8 # Jump to function address.
204.110 -- .size _dl_runtime_resolve, .-_dl_runtime_resolve
204.111 -- .size _dl_runtime_profile, .-_dl_runtime_profile
204.112 -- .previous
204.113 -+# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\n\
204.114 -+ .text\n\
204.115 -+ .globl _dl_runtime_resolve\n\
204.116 -+ .globl _dl_runtime_profile\n\
204.117 -+ .type _dl_runtime_resolve, @function\n\
204.118 -+ .type _dl_runtime_profile, @function\n\
204.119 -+ .align 16\n\
204.120 -+_dl_runtime_resolve:\n\
204.121 -+_dl_runtime_profile:\n\
204.122 -+ pushl %eax # Preserve registers otherwise clobbered.\n\
204.123 -+ pushl %ecx\n\
204.124 -+ pushl %edx\n\
204.125 -+ movl 16(%esp), %edx # Push the arguments for `fixup'\n\
204.126 -+ movl 12(%esp), %eax\n\
204.127 -+ pushl %edx\n\
204.128 -+ pushl %eax\n\
204.129 -+ call fixup # Call resolver.\n\
204.130 -+ popl %edx # Pop the parameters\n\
204.131 -+ popl %ecx\n\
204.132 -+ popl %edx # Get register content back.\n\
204.133 -+ popl %ecx\n\
204.134 -+ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\
204.135 -+ ret $8 # Jump to function address.\n\
204.136 -+ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
204.137 -+ .size _dl_runtime_profile, .-_dl_runtime_profile\n\
204.138 -+ .previous\n\
204.139 - ");
204.140 - #endif
204.141 -
204.142 -@@ -197,10 +197,10 @@
204.143 - The C function `_dl_start' is the real entry point;
204.144 - its return value is the user program's entry point. */
204.145 -
204.146 --#define RTLD_START asm ("\
204.147 --.text\n\
204.148 --.globl _start\n\
204.149 --.globl _dl_start_user\n\
204.150 -+#define RTLD_START asm ("\n\
204.151 -+ .text\n\
204.152 -+ .globl _start\n\
204.153 -+ .globl _dl_start_user\n\
204.154 - _start:\n\
204.155 - pushl %esp\n\
204.156 - call _dl_start\n\
204.157 -@@ -208,7 +208,7 @@
204.158 - _dl_start_user:\n\
204.159 - # Save the user entry point address in %edi.\n\
204.160 - movl %eax, %edi\n\
204.161 -- # Point %ebx at the GOT.
204.162 -+ # Point %ebx at the GOT.\n\
204.163 - call 0f\n\
204.164 - 0: popl %ebx\n\
204.165 - addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %ebx\n\
204.166 -@@ -255,7 +255,7 @@
204.167 - movl _dl_fini@GOT(%ebx), %edx\n\
204.168 - # Jump to the user's entry point.\n\
204.169 - jmp *%edi\n\
204.170 --.previous\n\
204.171 -+ .previous\n\
204.172 - ");
204.173 -
204.174 - /* Nonzero iff TYPE should not be allowed to resolve to one of
205.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-errlist.patch Tue Aug 14 19:32:22 2007 +0000
205.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
205.3 @@ -1,48 +0,0 @@
205.4 -Backport from cvs
205.5 -
205.6 -Fixes:
205.7 -
205.8 -../sysdeps/unix/sysv/linux/errlist.c:41: weak declaration of `_old_sys_nerr' must precede definition
205.9 -make[2]: *** [/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/build-glibc/stdio-common/errlist.os] Error 1
205.10 -
205.11 -as well as breakage on arches where ; is a comment char in asm
205.12 -
205.13 ---- glibc-2.1.3/sysdeps/unix/sysv/linux/errlist.c.old 2004-03-05 15:32:21.000000000 -0800
205.14 -+++ glibc-2.1.3/sysdeps/unix/sysv/linux/errlist.c 2004-03-05 15:39:39.000000000 -0800
205.15 -@@ -24,13 +24,13 @@
205.16 - # define SYS_ERRLIST __new_sys_errlist
205.17 - # define SYS_NERR __new_sys_nerr
205.18 -
205.19 --asm (".data; .globl __old_sys_errlist; __old_sys_errlist:");
205.20 -+asm (".data\n\t.globl __old_sys_errlist\n\t __old_sys_errlist:");
205.21 - #endif
205.22 -
205.23 - #include <sysdeps/gnu/errlist.c>
205.24 -
205.25 - #if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
205.26 --asm (".type __old_sys_errlist,@object;.size __old_sys_errlist,"
205.27 -+asm (".type __old_sys_errlist,@object\n\t.size __old_sys_errlist,"
205.28 - OLD_ERRLIST_SIZE_STR "*" PTR_SIZE_STR);
205.29 -
205.30 - extern const char *const *__old_sys_errlist;
205.31 -@@ -38,17 +38,16 @@
205.32 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
205.33 -
205.34 - strong_alias (__old_sys_nerr, _old_sys_nerr);
205.35 --weak_alias (__old_sys_nerr, _old_sys_nerr)
205.36 - symbol_version (__old_sys_nerr, _sys_nerr, GLIBC_2.0);
205.37 - symbol_version (_old_sys_nerr, sys_nerr, GLIBC_2.0);
205.38 --weak_alias (__old_sys_errlist, _old_sys_errlist);
205.39 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
205.40 - symbol_version (__old_sys_errlist, _sys_errlist, GLIBC_2.0);
205.41 - symbol_version (_old_sys_errlist, sys_errlist, GLIBC_2.0);
205.42 -
205.43 --weak_alias (__new_sys_nerr, _new_sys_nerr)
205.44 -+strong_alias (__new_sys_nerr, _new_sys_nerr)
205.45 - default_symbol_version (__new_sys_nerr, _sys_nerr, GLIBC_2.1);
205.46 - default_symbol_version (_new_sys_nerr, sys_nerr, GLIBC_2.1);
205.47 --weak_alias (__new_sys_errlist, _new_sys_errlist)
205.48 -+strong_alias (__new_sys_errlist, _new_sys_errlist)
205.49 - default_symbol_version (__new_sys_errlist, _sys_errlist, GLIBC_2.1);
205.50 - default_symbol_version (_new_sys_errlist, sys_errlist, GLIBC_2.1);
205.51 -
206.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-longlong.patch Tue Aug 14 19:32:22 2007 +0000
206.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
206.3 @@ -1,774 +0,0 @@
206.4 ---- glibc-2.1.3/stdlib/longlong.h.old 2004-03-05 14:49:14.000000000 -0800
206.5 -+++ glibc-2.1.3/stdlib/longlong.h 2004-03-05 15:19:26.000000000 -0800
206.6 -@@ -106,8 +106,8 @@
206.7 -
206.8 - #if (defined (__a29k__) || defined (_AM29K)) && W_TYPE_SIZE == 32
206.9 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.10 -- __asm__ ("add %1,%4,%5
206.11 -- addc %0,%2,%3" \
206.12 -+ __asm__ ("add %1,%4,%5\n" \
206.13 -+ "addc %0,%2,%3" \
206.14 - : "=r" ((USItype)(sh)), \
206.15 - "=&r" ((USItype)(sl)) \
206.16 - : "%r" ((USItype)(ah)), \
206.17 -@@ -115,8 +115,8 @@
206.18 - "%r" ((USItype)(al)), \
206.19 - "rI" ((USItype)(bl)))
206.20 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.21 -- __asm__ ("sub %1,%4,%5
206.22 -- subc %0,%2,%3" \
206.23 -+ __asm__ ("sub %1,%4,%5\n" \
206.24 -+ "subc %0,%2,%3" \
206.25 - : "=r" ((USItype)(sh)), \
206.26 - "=&r" ((USItype)(sl)) \
206.27 - : "r" ((USItype)(ah)), \
206.28 -@@ -173,8 +173,8 @@
206.29 -
206.30 - #if defined (__arm__) && W_TYPE_SIZE == 32
206.31 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.32 -- __asm__ ("adds %1, %4, %5
206.33 -- adc %0, %2, %3" \
206.34 -+ __asm__ ("adds %1, %4, %5\n" \
206.35 -+ "adc %0, %2, %3" \
206.36 - : "=r" ((USItype)(sh)), \
206.37 - "=&r" ((USItype)(sl)) \
206.38 - : "%r" ((USItype)(ah)), \
206.39 -@@ -182,8 +182,8 @@
206.40 - "%r" ((USItype)(al)), \
206.41 - "rI" ((USItype)(bl)))
206.42 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.43 -- __asm__ ("subs %1, %4, %5
206.44 -- sbc %0, %2, %3" \
206.45 -+ __asm__ ("subs %1, %4, %5\n" \
206.46 -+ "sbc %0, %2, %3" \
206.47 - : "=r" ((USItype)(sh)), \
206.48 - "=&r" ((USItype)(sl)) \
206.49 - : "r" ((USItype)(ah)), \
206.50 -@@ -192,19 +192,19 @@
206.51 - "rI" ((USItype)(bl)))
206.52 - #if 0
206.53 - #define umul_ppmm(xh, xl, a, b) \
206.54 -- __asm__ ("%@ Inlined umul_ppmm
206.55 -- mov %|r0, %2, lsr #16
206.56 -- mov %|r2, %3, lsr #16
206.57 -- bic %|r1, %2, %|r0, lsl #16
206.58 -- bic %|r2, %3, %|r2, lsl #16
206.59 -- mul %1, %|r1, %|r2
206.60 -- mul %|r2, %|r0, %|r2
206.61 -- mul %|r1, %0, %|r1
206.62 -- mul %0, %|r0, %0
206.63 -- adds %|r1, %|r2, %|r1
206.64 -- addcs %0, %0, #65536
206.65 -- adds %1, %1, %|r1, lsl #16
206.66 -- adc %0, %0, %|r1, lsr #16" \
206.67 -+ __asm__ ("%@ Inlined umul_ppmm\n" \
206.68 -+ "mov %|r0, %2, lsr #16\n" \
206.69 -+ "mov %|r2, %3, lsr #16\n" \
206.70 -+ "bic %|r1, %2, %|r0, lsl #16\n" \
206.71 -+ "bic %|r2, %3, %|r2, lsl #16\n" \
206.72 -+ "mul %1, %|r1, %|r2\n" \
206.73 -+ "mul %|r2, %|r0, %|r2\n" \
206.74 -+ "mul %|r1, %0, %|r1\n" \
206.75 -+ "mul %0, %|r0, %0\n" \
206.76 -+ "adds %|r1, %|r2, %|r1\n" \
206.77 -+ "addcs %0, %0, #65536\n" \
206.78 -+ "adds %1, %1, %|r1, lsl #16\n" \
206.79 -+ "adc %0, %0, %|r1, lsr #16" \
206.80 - : "=&r" ((USItype)(xh)), \
206.81 - "=r" ((USItype)(xl)) \
206.82 - : "r" ((USItype)(a)), \
206.83 -@@ -245,8 +245,8 @@
206.84 -
206.85 - #if defined (__gmicro__) && W_TYPE_SIZE == 32
206.86 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.87 -- __asm__ ("add.w %5,%1
206.88 -- addx %3,%0" \
206.89 -+ __asm__ ("add.w %5,%1\n" \
206.90 -+ "addx %3,%0" \
206.91 - : "=g" ((USItype)(sh)), \
206.92 - "=&g" ((USItype)(sl)) \
206.93 - : "%0" ((USItype)(ah)), \
206.94 -@@ -254,8 +254,8 @@
206.95 - "%1" ((USItype)(al)), \
206.96 - "g" ((USItype)(bl)))
206.97 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.98 -- __asm__ ("sub.w %5,%1
206.99 -- subx %3,%0" \
206.100 -+ __asm__ ("sub.w %5,%1\n" \
206.101 -+ "subx %3,%0" \
206.102 - : "=g" ((USItype)(sh)), \
206.103 - "=&g" ((USItype)(sl)) \
206.104 - : "0" ((USItype)(ah)), \
206.105 -@@ -284,8 +284,8 @@
206.106 -
206.107 - #if defined (__hppa) && W_TYPE_SIZE == 32
206.108 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.109 -- __asm__ ("add %4,%5,%1
206.110 -- addc %2,%3,%0" \
206.111 -+ __asm__ ("add %4,%5,%1\n" \
206.112 -+ "addc %2,%3,%0" \
206.113 - : "=r" ((USItype)(sh)), \
206.114 - "=&r" ((USItype)(sl)) \
206.115 - : "%rM" ((USItype)(ah)), \
206.116 -@@ -293,8 +293,8 @@
206.117 - "%rM" ((USItype)(al)), \
206.118 - "rM" ((USItype)(bl)))
206.119 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.120 -- __asm__ ("sub %4,%5,%1
206.121 -- subb %2,%3,%0" \
206.122 -+ __asm__ ("sub %4,%5,%1\n" \
206.123 -+ "subb %2,%3,%0" \
206.124 - : "=r" ((USItype)(sh)), \
206.125 - "=&r" ((USItype)(sl)) \
206.126 - : "rM" ((USItype)(ah)), \
206.127 -@@ -332,22 +332,22 @@
206.128 - do { \
206.129 - USItype __tmp; \
206.130 - __asm__ ( \
206.131 -- "ldi 1,%0
206.132 -- extru,= %1,15,16,%%r0 ; Bits 31..16 zero?
206.133 -- extru,tr %1,15,16,%1 ; No. Shift down, skip add.
206.134 -- ldo 16(%0),%0 ; Yes. Perform add.
206.135 -- extru,= %1,23,8,%%r0 ; Bits 15..8 zero?
206.136 -- extru,tr %1,23,8,%1 ; No. Shift down, skip add.
206.137 -- ldo 8(%0),%0 ; Yes. Perform add.
206.138 -- extru,= %1,27,4,%%r0 ; Bits 7..4 zero?
206.139 -- extru,tr %1,27,4,%1 ; No. Shift down, skip add.
206.140 -- ldo 4(%0),%0 ; Yes. Perform add.
206.141 -- extru,= %1,29,2,%%r0 ; Bits 3..2 zero?
206.142 -- extru,tr %1,29,2,%1 ; No. Shift down, skip add.
206.143 -- ldo 2(%0),%0 ; Yes. Perform add.
206.144 -- extru %1,30,1,%1 ; Extract bit 1.
206.145 -- sub %0,%1,%0 ; Subtract it.
206.146 -- " : "=r" (count), "=r" (__tmp) : "1" (x)); \
206.147 -+ "ldi 1,%0\n" \
206.148 -+ "extru,= %1,15,16,%%r0 ; Bits 31..16 zero?\n" \
206.149 -+ "extru,tr %1,15,16,%1 ; No. Shift down, skip add.\n" \
206.150 -+ "ldo 16(%0),%0 ; Yes. Perform add.\n" \
206.151 -+ "extru,= %1,23,8,%%r0 ; Bits 15..8 zero?\n" \
206.152 -+ "extru,tr %1,23,8,%1 ; No. Shift down, skip add.\n" \
206.153 -+ "ldo 8(%0),%0 ; Yes. Perform add.\n" \
206.154 -+ "extru,= %1,27,4,%%r0 ; Bits 7..4 zero?\n" \
206.155 -+ "extru,tr %1,27,4,%1 ; No. Shift down, skip add.\n" \
206.156 -+ "ldo 4(%0),%0 ; Yes. Perform add.\n" \
206.157 -+ "extru,= %1,29,2,%%r0 ; Bits 3..2 zero?\n" \
206.158 -+ "extru,tr %1,29,2,%1 ; No. Shift down, skip add.\n" \
206.159 -+ "ldo 2(%0),%0 ; Yes. Perform add.\n" \
206.160 -+ "extru %1,30,1,%1 ; Extract bit 1.\n" \
206.161 -+ "sub %0,%1,%0 ; Subtract it.\n" \
206.162 -+ : "=r" (count), "=r" (__tmp) : "1" (x)); \
206.163 - } while (0)
206.164 - #endif /* hppa */
206.165 -
206.166 -@@ -394,8 +394,8 @@
206.167 -
206.168 - #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
206.169 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.170 -- __asm__ ("addl %5,%1
206.171 -- adcl %3,%0" \
206.172 -+ __asm__ ("addl %5,%1\n" \
206.173 -+ "adcl %3,%0" \
206.174 - : "=r" ((USItype)(sh)), \
206.175 - "=&r" ((USItype)(sl)) \
206.176 - : "%0" ((USItype)(ah)), \
206.177 -@@ -403,8 +403,8 @@
206.178 - "%1" ((USItype)(al)), \
206.179 - "g" ((USItype)(bl)))
206.180 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.181 -- __asm__ ("subl %5,%1
206.182 -- sbbl %3,%0" \
206.183 -+ __asm__ ("subl %5,%1\n" \
206.184 -+ "sbbl %3,%0" \
206.185 - : "=r" ((USItype)(sh)), \
206.186 - "=&r" ((USItype)(sl)) \
206.187 - : "0" ((USItype)(ah)), \
206.188 -@@ -516,8 +516,8 @@
206.189 -
206.190 - #if (defined (__mc68000__) || defined (__mc68020__) || defined (__NeXT__) || defined(mc68020)) && W_TYPE_SIZE == 32
206.191 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.192 -- __asm__ ("add%.l %5,%1
206.193 -- addx%.l %3,%0" \
206.194 -+ __asm__ ("add%.l %5,%1\n" \
206.195 -+ "addx%.l %3,%0" \
206.196 - : "=d" ((USItype)(sh)), \
206.197 - "=&d" ((USItype)(sl)) \
206.198 - : "%0" ((USItype)(ah)), \
206.199 -@@ -525,8 +525,8 @@
206.200 - "%1" ((USItype)(al)), \
206.201 - "g" ((USItype)(bl)))
206.202 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.203 -- __asm__ ("sub%.l %5,%1
206.204 -- subx%.l %3,%0" \
206.205 -+ __asm__ ("sub%.l %5,%1\n" \
206.206 -+ "subx%.l %3,%0" \
206.207 - : "=d" ((USItype)(sh)), \
206.208 - "=&d" ((USItype)(sl)) \
206.209 - : "0" ((USItype)(ah)), \
206.210 -@@ -564,28 +564,28 @@
206.211 - #else /* not mc68020 */
206.212 - #define umul_ppmm(xh, xl, a, b) \
206.213 - do { USItype __umul_tmp1, __umul_tmp2; \
206.214 -- __asm__ ("| Inlined umul_ppmm
206.215 -- move%.l %5,%3
206.216 -- move%.l %2,%0
206.217 -- move%.w %3,%1
206.218 -- swap %3
206.219 -- swap %0
206.220 -- mulu %2,%1
206.221 -- mulu %3,%0
206.222 -- mulu %2,%3
206.223 -- swap %2
206.224 -- mulu %5,%2
206.225 -- add%.l %3,%2
206.226 -- jcc 1f
206.227 -- add%.l %#0x10000,%0
206.228 --1: move%.l %2,%3
206.229 -- clr%.w %2
206.230 -- swap %2
206.231 -- swap %3
206.232 -- clr%.w %3
206.233 -- add%.l %3,%1
206.234 -- addx%.l %2,%0
206.235 -- | End inlined umul_ppmm" \
206.236 -+ __asm__ ("| Inlined umul_ppmm\n" \
206.237 -+ "move%.l %5,%3\n" \
206.238 -+ "move%.l %2,%0\n" \
206.239 -+ "move%.w %3,%1\n" \
206.240 -+ "swap %3\n" \
206.241 -+ "swap %0\n" \
206.242 -+ "mulu %2,%1\n" \
206.243 -+ "mulu %3,%0\n" \
206.244 -+ "mulu %2,%3\n" \
206.245 -+ "swap %2\n" \
206.246 -+ "mulu %5,%2\n" \
206.247 -+ "add%.l %3,%2\n" \
206.248 -+ "jcc 1f\n" \
206.249 -+ "add%.l %#0x10000,%0\n" \
206.250 -+"1: move%.l %2,%3\n" \
206.251 -+ "clr%.w %2\n" \
206.252 -+ "swap %2\n" \
206.253 -+ "swap %3\n" \
206.254 -+ "clr%.w %3\n" \
206.255 -+ "add%.l %3,%1\n" \
206.256 -+ "addx%.l %2,%0\n" \
206.257 -+ "| End inlined umul_ppmm" \
206.258 - : "=&d" ((USItype)(xh)), "=&d" ((USItype)(xl)), \
206.259 - "=d" (__umul_tmp1), "=&d" (__umul_tmp2) \
206.260 - : "%2" ((USItype)(a)), "d" ((USItype)(b))); \
206.261 -@@ -597,8 +597,8 @@
206.262 -
206.263 - #if defined (__m88000__) && W_TYPE_SIZE == 32
206.264 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.265 -- __asm__ ("addu.co %1,%r4,%r5
206.266 -- addu.ci %0,%r2,%r3" \
206.267 -+ __asm__ ("addu.co %1,%r4,%r5\n" \
206.268 -+ "addu.ci %0,%r2,%r3" \
206.269 - : "=r" ((USItype)(sh)), \
206.270 - "=&r" ((USItype)(sl)) \
206.271 - : "%rJ" ((USItype)(ah)), \
206.272 -@@ -606,8 +606,8 @@
206.273 - "%rJ" ((USItype)(al)), \
206.274 - "rJ" ((USItype)(bl)))
206.275 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.276 -- __asm__ ("subu.co %1,%r4,%r5
206.277 -- subu.ci %0,%r2,%r3" \
206.278 -+ __asm__ ("subu.co %1,%r4,%r5\n" \
206.279 -+ "subu.ci %0,%r2,%r3" \
206.280 - : "=r" ((USItype)(sh)), \
206.281 - "=&r" ((USItype)(sl)) \
206.282 - : "rJ" ((USItype)(ah)), \
206.283 -@@ -665,9 +665,9 @@
206.284 - "d" ((USItype)(v)))
206.285 - #else
206.286 - #define umul_ppmm(w1, w0, u, v) \
206.287 -- __asm__ ("multu %2,%3
206.288 -- mflo %0
206.289 -- mfhi %1" \
206.290 -+ __asm__ ("multu %2,%3\n" \
206.291 -+ "mflo %0\n" \
206.292 -+ "mfhi %1" \
206.293 - : "=d" ((USItype)(w0)), \
206.294 - "=d" ((USItype)(w1)) \
206.295 - : "d" ((USItype)(u)), \
206.296 -@@ -687,9 +687,9 @@
206.297 - "d" ((UDItype)(v)))
206.298 - #else
206.299 - #define umul_ppmm(w1, w0, u, v) \
206.300 -- __asm__ ("dmultu %2,%3
206.301 -- mflo %0
206.302 -- mfhi %1" \
206.303 -+ __asm__ ("dmultu %2,%3\n" \
206.304 -+ "mflo %0\n" \
206.305 -+ "mfhi %1" \
206.306 - : "=d" ((UDItype)(w0)), \
206.307 - "=d" ((UDItype)(w1)) \
206.308 - : "d" ((UDItype)(u)), \
206.309 -@@ -857,8 +857,8 @@
206.310 -
206.311 - #if defined (__pyr__) && W_TYPE_SIZE == 32
206.312 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.313 -- __asm__ ("addw %5,%1
206.314 -- addwc %3,%0" \
206.315 -+ __asm__ ("addw %5,%1\n" \
206.316 -+ "addwc %3,%0" \
206.317 - : "=r" ((USItype)(sh)), \
206.318 - "=&r" ((USItype)(sl)) \
206.319 - : "%0" ((USItype)(ah)), \
206.320 -@@ -866,8 +866,8 @@
206.321 - "%1" ((USItype)(al)), \
206.322 - "g" ((USItype)(bl)))
206.323 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.324 -- __asm__ ("subw %5,%1
206.325 -- subwb %3,%0" \
206.326 -+ __asm__ ("subw %5,%1\n" \
206.327 -+ "subwb %3,%0" \
206.328 - : "=r" ((USItype)(sh)), \
206.329 - "=&r" ((USItype)(sl)) \
206.330 - : "0" ((USItype)(ah)), \
206.331 -@@ -879,8 +879,8 @@
206.332 - ({union {UDItype __ll; \
206.333 - struct {USItype __h, __l;} __i; \
206.334 - } __xx; \
206.335 -- __asm__ ("movw %1,%R0
206.336 -- uemul %2,%0" \
206.337 -+ __asm__ ("movw %1,%R0\n" \
206.338 -+ "uemul %2,%0" \
206.339 - : "=&r" (__xx.__ll) \
206.340 - : "g" ((USItype) (u)), \
206.341 - "g" ((USItype)(v))); \
206.342 -@@ -889,8 +889,8 @@
206.343 -
206.344 - #if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32
206.345 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.346 -- __asm__ ("a %1,%5
206.347 -- ae %0,%3" \
206.348 -+ __asm__ ("a %1,%5\n" \
206.349 -+ "ae %0,%3" \
206.350 - : "=r" ((USItype)(sh)), \
206.351 - "=&r" ((USItype)(sl)) \
206.352 - : "%0" ((USItype)(ah)), \
206.353 -@@ -898,8 +898,8 @@
206.354 - "%1" ((USItype)(al)), \
206.355 - "r" ((USItype)(bl)))
206.356 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.357 -- __asm__ ("s %1,%5
206.358 -- se %0,%3" \
206.359 -+ __asm__ ("s %1,%5\n" \
206.360 -+ "se %0,%3" \
206.361 - : "=r" ((USItype)(sh)), \
206.362 - "=&r" ((USItype)(sl)) \
206.363 - : "0" ((USItype)(ah)), \
206.364 -@@ -910,26 +910,26 @@
206.365 - do { \
206.366 - USItype __m0 = (m0), __m1 = (m1); \
206.367 - __asm__ ( \
206.368 -- "s r2,r2
206.369 -- mts r10,%2
206.370 -- m r2,%3
206.371 -- m r2,%3
206.372 -- m r2,%3
206.373 -- m r2,%3
206.374 -- m r2,%3
206.375 -- m r2,%3
206.376 -- m r2,%3
206.377 -- m r2,%3
206.378 -- m r2,%3
206.379 -- m r2,%3
206.380 -- m r2,%3
206.381 -- m r2,%3
206.382 -- m r2,%3
206.383 -- m r2,%3
206.384 -- m r2,%3
206.385 -- m r2,%3
206.386 -- cas %0,r2,r0
206.387 -- mfs r10,%1" \
206.388 -+ "s r2,r2\n" \
206.389 -+ "mts r10,%2\n" \
206.390 -+ "m r2,%3\n" \
206.391 -+ "m r2,%3\n" \
206.392 -+ "m r2,%3\n" \
206.393 -+ "m r2,%3\n" \
206.394 -+ "m r2,%3\n" \
206.395 -+ "m r2,%3\n" \
206.396 -+ "m r2,%3\n" \
206.397 -+ "m r2,%3\n" \
206.398 -+ "m r2,%3\n" \
206.399 -+ "m r2,%3\n" \
206.400 -+ "m r2,%3\n" \
206.401 -+ "m r2,%3\n" \
206.402 -+ "m r2,%3\n" \
206.403 -+ "m r2,%3\n" \
206.404 -+ "m r2,%3\n" \
206.405 -+ "m r2,%3\n" \
206.406 -+ "cas %0,r2,r0\n" \
206.407 -+ "mfs r10,%1" \
206.408 - : "=r" ((USItype)(ph)), \
206.409 - "=r" ((USItype)(pl)) \
206.410 - : "%r" (__m0), \
206.411 -@@ -959,9 +959,9 @@
206.412 - #if defined (__sh2__) && W_TYPE_SIZE == 32
206.413 - #define umul_ppmm(w1, w0, u, v) \
206.414 - __asm__ ( \
206.415 -- "dmulu.l %2,%3
206.416 -- sts macl,%1
206.417 -- sts mach,%0" \
206.418 -+ "dmulu.l %2,%3\n" \
206.419 -+ "sts macl,%1\n" \
206.420 -+ "sts mach,%0" \
206.421 - : "=r" ((USItype)(w1)), \
206.422 - "=r" ((USItype)(w0)) \
206.423 - : "r" ((USItype)(u)), \
206.424 -@@ -972,8 +972,8 @@
206.425 -
206.426 - #if defined (__sparc__) && W_TYPE_SIZE == 32
206.427 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.428 -- __asm__ ("addcc %r4,%5,%1
206.429 -- addx %r2,%3,%0" \
206.430 -+ __asm__ ("addcc %r4,%5,%1\n" \
206.431 -+ "addx %r2,%3,%0" \
206.432 - : "=r" ((USItype)(sh)), \
206.433 - "=&r" ((USItype)(sl)) \
206.434 - : "%rJ" ((USItype)(ah)), \
206.435 -@@ -982,8 +982,8 @@
206.436 - "rI" ((USItype)(bl)) \
206.437 - __CLOBBER_CC)
206.438 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.439 -- __asm__ ("subcc %r4,%5,%1
206.440 -- subx %r2,%3,%0" \
206.441 -+ __asm__ ("subcc %r4,%5,%1\n" \
206.442 -+ "subx %r2,%3,%0" \
206.443 - : "=r" ((USItype)(sh)), \
206.444 - "=&r" ((USItype)(sl)) \
206.445 - : "rJ" ((USItype)(ah)), \
206.446 -@@ -1029,45 +1029,45 @@
206.447 - "r" ((USItype)(v)))
206.448 - #define UMUL_TIME 5
206.449 - #define udiv_qrnnd(q, r, n1, n0, d) \
206.450 -- __asm__ ("! Inlined udiv_qrnnd
206.451 -- wr %%g0,%2,%%y ! Not a delayed write for sparclite
206.452 -- tst %%g0
206.453 -- divscc %3,%4,%%g1
206.454 -- divscc %%g1,%4,%%g1
206.455 -- divscc %%g1,%4,%%g1
206.456 -- divscc %%g1,%4,%%g1
206.457 -- divscc %%g1,%4,%%g1
206.458 -- divscc %%g1,%4,%%g1
206.459 -- divscc %%g1,%4,%%g1
206.460 -- divscc %%g1,%4,%%g1
206.461 -- divscc %%g1,%4,%%g1
206.462 -- divscc %%g1,%4,%%g1
206.463 -- divscc %%g1,%4,%%g1
206.464 -- divscc %%g1,%4,%%g1
206.465 -- divscc %%g1,%4,%%g1
206.466 -- divscc %%g1,%4,%%g1
206.467 -- divscc %%g1,%4,%%g1
206.468 -- divscc %%g1,%4,%%g1
206.469 -- divscc %%g1,%4,%%g1
206.470 -- divscc %%g1,%4,%%g1
206.471 -- divscc %%g1,%4,%%g1
206.472 -- divscc %%g1,%4,%%g1
206.473 -- divscc %%g1,%4,%%g1
206.474 -- divscc %%g1,%4,%%g1
206.475 -- divscc %%g1,%4,%%g1
206.476 -- divscc %%g1,%4,%%g1
206.477 -- divscc %%g1,%4,%%g1
206.478 -- divscc %%g1,%4,%%g1
206.479 -- divscc %%g1,%4,%%g1
206.480 -- divscc %%g1,%4,%%g1
206.481 -- divscc %%g1,%4,%%g1
206.482 -- divscc %%g1,%4,%%g1
206.483 -- divscc %%g1,%4,%%g1
206.484 -- divscc %%g1,%4,%0
206.485 -- rd %%y,%1
206.486 -- bl,a 1f
206.487 -- add %1,%4,%1
206.488 --1: ! End of inline udiv_qrnnd" \
206.489 -+ __asm__ ("! Inlined udiv_qrnnd\n" \
206.490 -+ "wr %%g0,%2,%%y ! Not a delayed write for sparclite\n" \
206.491 -+ "tst %%g0\n" \
206.492 -+ "divscc %3,%4,%%g1\n" \
206.493 -+ "divscc %%g1,%4,%%g1\n" \
206.494 -+ "divscc %%g1,%4,%%g1\n" \
206.495 -+ "divscc %%g1,%4,%%g1\n" \
206.496 -+ "divscc %%g1,%4,%%g1\n" \
206.497 -+ "divscc %%g1,%4,%%g1\n" \
206.498 -+ "divscc %%g1,%4,%%g1\n" \
206.499 -+ "divscc %%g1,%4,%%g1\n" \
206.500 -+ "divscc %%g1,%4,%%g1\n" \
206.501 -+ "divscc %%g1,%4,%%g1\n" \
206.502 -+ "divscc %%g1,%4,%%g1\n" \
206.503 -+ "divscc %%g1,%4,%%g1\n" \
206.504 -+ "divscc %%g1,%4,%%g1\n" \
206.505 -+ "divscc %%g1,%4,%%g1\n" \
206.506 -+ "divscc %%g1,%4,%%g1\n" \
206.507 -+ "divscc %%g1,%4,%%g1\n" \
206.508 -+ "divscc %%g1,%4,%%g1\n" \
206.509 -+ "divscc %%g1,%4,%%g1\n" \
206.510 -+ "divscc %%g1,%4,%%g1\n" \
206.511 -+ "divscc %%g1,%4,%%g1\n" \
206.512 -+ "divscc %%g1,%4,%%g1\n" \
206.513 -+ "divscc %%g1,%4,%%g1\n" \
206.514 -+ "divscc %%g1,%4,%%g1\n" \
206.515 -+ "divscc %%g1,%4,%%g1\n" \
206.516 -+ "divscc %%g1,%4,%%g1\n" \
206.517 -+ "divscc %%g1,%4,%%g1\n" \
206.518 -+ "divscc %%g1,%4,%%g1\n" \
206.519 -+ "divscc %%g1,%4,%%g1\n" \
206.520 -+ "divscc %%g1,%4,%%g1\n" \
206.521 -+ "divscc %%g1,%4,%%g1\n" \
206.522 -+ "divscc %%g1,%4,%%g1\n" \
206.523 -+ "divscc %%g1,%4,%0\n" \
206.524 -+ "rd %%y,%1\n" \
206.525 -+ "bl,a 1f\n" \
206.526 -+ "add %1,%4,%1\n" \
206.527 -+"1: ! End of inline udiv_qrnnd" \
206.528 - : "=r" ((USItype)(q)), \
206.529 - "=r" ((USItype)(r)) \
206.530 - : "r" ((USItype)(n1)), \
206.531 -@@ -1087,46 +1087,46 @@
206.532 - /* Default to sparc v7 versions of umul_ppmm and udiv_qrnnd. */
206.533 - #ifndef umul_ppmm
206.534 - #define umul_ppmm(w1, w0, u, v) \
206.535 -- __asm__ ("! Inlined umul_ppmm
206.536 -- wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr
206.537 -- sra %3,31,%%g2 ! Don't move this insn
206.538 -- and %2,%%g2,%%g2 ! Don't move this insn
206.539 -- andcc %%g0,0,%%g1 ! Don't move this insn
206.540 -- mulscc %%g1,%3,%%g1
206.541 -- mulscc %%g1,%3,%%g1
206.542 -- mulscc %%g1,%3,%%g1
206.543 -- mulscc %%g1,%3,%%g1
206.544 -- mulscc %%g1,%3,%%g1
206.545 -- mulscc %%g1,%3,%%g1
206.546 -- mulscc %%g1,%3,%%g1
206.547 -- mulscc %%g1,%3,%%g1
206.548 -- mulscc %%g1,%3,%%g1
206.549 -- mulscc %%g1,%3,%%g1
206.550 -- mulscc %%g1,%3,%%g1
206.551 -- mulscc %%g1,%3,%%g1
206.552 -- mulscc %%g1,%3,%%g1
206.553 -- mulscc %%g1,%3,%%g1
206.554 -- mulscc %%g1,%3,%%g1
206.555 -- mulscc %%g1,%3,%%g1
206.556 -- mulscc %%g1,%3,%%g1
206.557 -- mulscc %%g1,%3,%%g1
206.558 -- mulscc %%g1,%3,%%g1
206.559 -- mulscc %%g1,%3,%%g1
206.560 -- mulscc %%g1,%3,%%g1
206.561 -- mulscc %%g1,%3,%%g1
206.562 -- mulscc %%g1,%3,%%g1
206.563 -- mulscc %%g1,%3,%%g1
206.564 -- mulscc %%g1,%3,%%g1
206.565 -- mulscc %%g1,%3,%%g1
206.566 -- mulscc %%g1,%3,%%g1
206.567 -- mulscc %%g1,%3,%%g1
206.568 -- mulscc %%g1,%3,%%g1
206.569 -- mulscc %%g1,%3,%%g1
206.570 -- mulscc %%g1,%3,%%g1
206.571 -- mulscc %%g1,%3,%%g1
206.572 -- mulscc %%g1,0,%%g1
206.573 -- add %%g1,%%g2,%0
206.574 -- rd %%y,%1" \
206.575 -+ __asm__ ("! Inlined umul_ppmm\n" \
206.576 -+ "wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr\n" \
206.577 -+ "sra %3,31,%%g2 ! Don't move this insn\n" \
206.578 -+ "and %2,%%g2,%%g2 ! Don't move this insn\n" \
206.579 -+ "andcc %%g0,0,%%g1 ! Don't move this insn\n" \
206.580 -+ "mulscc %%g1,%3,%%g1\n" \
206.581 -+ "mulscc %%g1,%3,%%g1\n" \
206.582 -+ "mulscc %%g1,%3,%%g1\n" \
206.583 -+ "mulscc %%g1,%3,%%g1\n" \
206.584 -+ "mulscc %%g1,%3,%%g1\n" \
206.585 -+ "mulscc %%g1,%3,%%g1\n" \
206.586 -+ "mulscc %%g1,%3,%%g1\n" \
206.587 -+ "mulscc %%g1,%3,%%g1\n" \
206.588 -+ "mulscc %%g1,%3,%%g1\n" \
206.589 -+ "mulscc %%g1,%3,%%g1\n" \
206.590 -+ "mulscc %%g1,%3,%%g1\n" \
206.591 -+ "mulscc %%g1,%3,%%g1\n" \
206.592 -+ "mulscc %%g1,%3,%%g1\n" \
206.593 -+ "mulscc %%g1,%3,%%g1\n" \
206.594 -+ "mulscc %%g1,%3,%%g1\n" \
206.595 -+ "mulscc %%g1,%3,%%g1\n" \
206.596 -+ "mulscc %%g1,%3,%%g1\n" \
206.597 -+ "mulscc %%g1,%3,%%g1\n" \
206.598 -+ "mulscc %%g1,%3,%%g1\n" \
206.599 -+ "mulscc %%g1,%3,%%g1\n" \
206.600 -+ "mulscc %%g1,%3,%%g1\n" \
206.601 -+ "mulscc %%g1,%3,%%g1\n" \
206.602 -+ "mulscc %%g1,%3,%%g1\n" \
206.603 -+ "mulscc %%g1,%3,%%g1\n" \
206.604 -+ "mulscc %%g1,%3,%%g1\n" \
206.605 -+ "mulscc %%g1,%3,%%g1\n" \
206.606 -+ "mulscc %%g1,%3,%%g1\n" \
206.607 -+ "mulscc %%g1,%3,%%g1\n" \
206.608 -+ "mulscc %%g1,%3,%%g1\n" \
206.609 -+ "mulscc %%g1,%3,%%g1\n" \
206.610 -+ "mulscc %%g1,%3,%%g1\n" \
206.611 -+ "mulscc %%g1,%3,%%g1\n" \
206.612 -+ "mulscc %%g1,0,%%g1\n" \
206.613 -+ "add %%g1,%%g2,%0\n" \
206.614 -+ "rd %%y,%1" \
206.615 - : "=r" ((USItype)(w1)), \
206.616 - "=r" ((USItype)(w0)) \
206.617 - : "%rI" ((USItype)(u)), \
206.618 -@@ -1138,30 +1138,30 @@
206.619 - /* It's quite necessary to add this much assembler for the sparc.
206.620 - The default udiv_qrnnd (in C) is more than 10 times slower! */
206.621 - #define udiv_qrnnd(q, r, n1, n0, d) \
206.622 -- __asm__ ("! Inlined udiv_qrnnd
206.623 -- mov 32,%%g1
206.624 -- subcc %1,%2,%%g0
206.625 --1: bcs 5f
206.626 -- addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb
206.627 -- sub %1,%2,%1 ! this kills msb of n
206.628 -- addx %1,%1,%1 ! so this can't give carry
206.629 -- subcc %%g1,1,%%g1
206.630 --2: bne 1b
206.631 -- subcc %1,%2,%%g0
206.632 -- bcs 3f
206.633 -- addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb
206.634 -- b 3f
206.635 -- sub %1,%2,%1 ! this kills msb of n
206.636 --4: sub %1,%2,%1
206.637 --5: addxcc %1,%1,%1
206.638 -- bcc 2b
206.639 -- subcc %%g1,1,%%g1
206.640 --! Got carry from n. Subtract next step to cancel this carry.
206.641 -- bne 4b
206.642 -- addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb
206.643 -- sub %1,%2,%1
206.644 --3: xnor %0,0,%0
206.645 -- ! End of inline udiv_qrnnd" \
206.646 -+ __asm__ ("! Inlined udiv_qrnnd\n" \
206.647 -+ "mov 32,%%g1\n" \
206.648 -+ "subcc %1,%2,%%g0\n" \
206.649 -+"1: bcs 5f\n" \
206.650 -+ "addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \
206.651 -+ "sub %1,%2,%1 ! this kills msb of n\n" \
206.652 -+ "addx %1,%1,%1 ! so this can't give carry\n" \
206.653 -+ "subcc %%g1,1,%%g1\n" \
206.654 -+"2: bne 1b\n" \
206.655 -+ "subcc %1,%2,%%g0\n" \
206.656 -+ "bcs 3f\n" \
206.657 -+ "addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \
206.658 -+ "b 3f\n" \
206.659 -+ "sub %1,%2,%1 ! this kills msb of n\n" \
206.660 -+"4: sub %1,%2,%1\n" \
206.661 -+"5: addxcc %1,%1,%1\n" \
206.662 -+ "bcc 2b\n" \
206.663 -+ "subcc %%g1,1,%%g1\n" \
206.664 -+"! Got carry from n. Subtract next step to cancel this carry.\n" \
206.665 -+ "bne 4b\n" \
206.666 -+ "addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb\n" \
206.667 -+ "sub %1,%2,%1\n" \
206.668 -+"3: xnor %0,0,%0\n" \
206.669 -+ "! End of inline udiv_qrnnd" \
206.670 - : "=&r" ((USItype)(q)), \
206.671 - "=&r" ((USItype)(r)) \
206.672 - : "r" ((USItype)(d)), \
206.673 -@@ -1179,11 +1179,11 @@
206.674 - #if (defined (__sparc_v9__) || (defined (__sparc__) && defined (__arch64__)) \
206.675 - || defined (__sparcv9)) && W_TYPE_SIZE == 64
206.676 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.677 -- __asm__ ("addcc %r4,%5,%1
206.678 -- add %r2,%3,%0
206.679 -- bcs,a,pn %%xcc, 1f
206.680 -- add %0, 1, %0
206.681 -- 1:" \
206.682 -+ __asm__ ("addcc %r4,%5,%1\n" \
206.683 -+ "add %r2,%3,%0\n" \
206.684 -+ "bcs,a,pn %%xcc, 1f\n" \
206.685 -+ "add %0, 1, %0\n" \
206.686 -+ "1:" \
206.687 - : "=r" ((UDItype)(sh)), \
206.688 - "=&r" ((UDItype)(sl)) \
206.689 - : "r" ((UDItype)(ah)), \
206.690 -@@ -1193,11 +1193,11 @@
206.691 - : "cc")
206.692 -
206.693 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.694 -- __asm__ ("subcc %r4,%5,%1
206.695 -- sub %r2,%3,%0
206.696 -- bcs,a,pn %%xcc, 1f
206.697 -- sub %0, 1, %0
206.698 -- 1:" \
206.699 -+ __asm__ ("subcc %r4,%5,%1\n" \
206.700 -+ "sub %r2,%3,%0\n" \
206.701 -+ "bcs,a,pn %%xcc, 1f\n" \
206.702 -+ "sub %0, 1, %0\n" \
206.703 -+ "1:" \
206.704 - : "=r" ((UDItype)(sh)), \
206.705 - "=&r" ((UDItype)(sl)) \
206.706 - : "r" ((UDItype)(ah)), \
206.707 -@@ -1210,27 +1210,27 @@
206.708 - do { \
206.709 - UDItype tmp1, tmp2, tmp3, tmp4; \
206.710 - __asm__ __volatile__ ( \
206.711 -- "srl %7,0,%3
206.712 -- mulx %3,%6,%1
206.713 -- srlx %6,32,%2
206.714 -- mulx %2,%3,%4
206.715 -- sllx %4,32,%5
206.716 -- srl %6,0,%3
206.717 -- sub %1,%5,%5
206.718 -- srlx %5,32,%5
206.719 -- addcc %4,%5,%4
206.720 -- srlx %7,32,%5
206.721 -- mulx %3,%5,%3
206.722 -- mulx %2,%5,%5
206.723 -- sethi %%hi(0x80000000),%2
206.724 -- addcc %4,%3,%4
206.725 -- srlx %4,32,%4
206.726 -- add %2,%2,%2
206.727 -- movcc %%xcc,%%g0,%2
206.728 -- addcc %5,%4,%5
206.729 -- sllx %3,32,%3
206.730 -- add %1,%3,%1
206.731 -- add %5,%2,%0" \
206.732 -+ "srl %7,0,%3\n" \
206.733 -+ "mulx %3,%6,%1\n" \
206.734 -+ "srlx %6,32,%2\n" \
206.735 -+ "mulx %2,%3,%4\n" \
206.736 -+ "sllx %4,32,%5\n" \
206.737 -+ "srl %6,0,%3\n" \
206.738 -+ "sub %1,%5,%5\n" \
206.739 -+ "srlx %5,32,%5\n" \
206.740 -+ "addcc %4,%5,%4\n" \
206.741 -+ "srlx %7,32,%5\n" \
206.742 -+ "mulx %3,%5,%3\n" \
206.743 -+ "mulx %2,%5,%5\n" \
206.744 -+ "sethi %%hi(0x80000000),%2\n" \
206.745 -+ "addcc %4,%3,%4\n" \
206.746 -+ "srlx %4,32,%4\n" \
206.747 -+ "add %2,%2,%2\n" \
206.748 -+ "movcc %%xcc,%%g0,%2\n" \
206.749 -+ "addcc %5,%4,%5\n" \
206.750 -+ "sllx %3,32,%3\n" \
206.751 -+ "add %1,%3,%1\n" \
206.752 -+ "add %5,%2,%0" \
206.753 - : "=r" ((UDItype)(wh)), \
206.754 - "=&r" ((UDItype)(wl)), \
206.755 - "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3), "=&r" (tmp4) \
206.756 -@@ -1244,8 +1244,8 @@
206.757 -
206.758 - #if defined (__vax__) && W_TYPE_SIZE == 32
206.759 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
206.760 -- __asm__ ("addl2 %5,%1
206.761 -- adwc %3,%0" \
206.762 -+ __asm__ ("addl2 %5,%1\n" \
206.763 -+ "adwc %3,%0" \
206.764 - : "=g" ((USItype)(sh)), \
206.765 - "=&g" ((USItype)(sl)) \
206.766 - : "%0" ((USItype)(ah)), \
206.767 -@@ -1253,8 +1253,8 @@
206.768 - "%1" ((USItype)(al)), \
206.769 - "g" ((USItype)(bl)))
206.770 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
206.771 -- __asm__ ("subl2 %5,%1
206.772 -- sbwc %3,%0" \
206.773 -+ __asm__ ("subl2 %5,%1\n" \
206.774 -+ "sbwc %3,%0" \
206.775 - : "=g" ((USItype)(sh)), \
206.776 - "=&g" ((USItype)(sl)) \
206.777 - : "0" ((USItype)(ah)), \
207.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-sscanf.patch Tue Aug 14 19:32:22 2007 +0000
207.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
207.3 @@ -1,73 +0,0 @@
207.4 -http://sources.redhat.com/ml/bug-glibc/2003-08/msg00087.html
207.5 -
207.6 -From: Gernot Hillier <gernot dot hillier at siemens dot com>
207.7 -Organization: Siemens AG
207.8 -To: Jeffrey Bedard <jefbed at e-list dot net>, bug-glibc at gnu dot org
207.9 -Date: Mon, 18 Aug 2003 08:50:03 +0200
207.10 -References: <3F3D0899.6020004@e-list.net>
207.11 -Message-Id: <200308180850.03431.gernot.hillier@siemens.com>
207.12 -Subject: Re: Build Fails with gcc 3.3.1
207.13 -X-BeenThere: bug-glibc@gnu.org
207.14 -
207.15 -Hi!
207.16 -
207.17 -Am Freitag, 15. August 2003 18:21 schrieb Jeffrey Bedard:
207.18 -> gcc sscanf.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-prototypes
207.19 -[...]
207.20 -> sscanf.c:31: warning: conflicting types for built-in function `sscanf'
207.21 -> sscanf.c: In function `sscanf':
207.22 -> sscanf.c:37: error: `va_start' used in function with fixed args
207.23 -> .../stdio-common/_itoa.h: At top level:
207.24 -> .../stdio-common/_itoa.h:40: warning: inlining failed in call to
207.25 -> `_itoa_word' .../stdio-common/_itoa.h:76: warning: called from here
207.26 -> make[2]: ***
207.27 -> [/home/jefbed/src/packages/glibc-build/stdio-common/sscanf.o] Error 1
207.28 -
207.29 -You can find the fitting patch in the glibc CVS. You have to replace some
207.30 -function headers.
207.31 -
207.32 -I created a patch for glibc-2.2.5 for the same reason. I don't know if it
207.33 -applies cleanly, but if not it should at least show you what to do...
207.34 -
207.35 ---
207.36 -Bye,
207.37 -
207.38 -Gernot Hillier
207.39 -Siemens AG
207.40 -
207.41 -
207.42 -
207.43 -
207.44 -Content-Disposition: attachment; filename="glibc-2.2.5-gcc-3.3.diff"
207.45 -
207.46 -diff -ur glibc-2.2.5.orig/stdio-common/sprintf.c glibc-2.2.5/stdio-common/sprintf.c
207.47 ---- glibc-2.2.5.orig/stdio-common/sprintf.c 2001-07-06 06:55:41.000000000 +0200
207.48 -+++ glibc-2.2.5/stdio-common/sprintf.c 2003-08-11 13:25:48.000000000 +0200
207.49 -@@ -27,9 +27,7 @@
207.50 - /* Write formatted output into S, according to the format string FORMAT. */
207.51 - /* VARARGS2 */
207.52 - int
207.53 --sprintf (s, format)
207.54 -- char *s;
207.55 -- const char *format;
207.56 -+sprintf (char *s, const char *format,...)
207.57 - {
207.58 - va_list arg;
207.59 - int done;
207.60 -Only in glibc-2.2.5/stdio-common: sprintf.c.orig
207.61 -Only in glibc-2.2.5/stdio-common: sprintf.c.rej
207.62 -diff -ur glibc-2.2.5.orig/stdio-common/sscanf.c glibc-2.2.5/stdio-common/sscanf.c
207.63 ---- glibc-2.2.5.orig/stdio-common/sscanf.c 2001-07-06 06:55:41.000000000 +0200
207.64 -+++ glibc-2.2.5/stdio-common/sscanf.c 2003-08-11 13:27:58.000000000 +0200
207.65 -@@ -27,9 +27,7 @@
207.66 - /* Read formatted input from S, according to the format string FORMAT. */
207.67 - /* VARARGS2 */
207.68 - int
207.69 --sscanf (s, format)
207.70 -- const char *s;
207.71 -- const char *format;
207.72 -+sscanf (const char *s, const char *format,...)
207.73 - {
207.74 - va_list arg;
207.75 - int done;
207.76 -
208.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-syscall.patch Tue Aug 14 19:32:22 2007 +0000
208.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
208.3 @@ -1,29 +0,0 @@
208.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/i386/sysdep.h.diff?r1=1.40&r2=1.41&cvsroot=glibc
208.5 -See also http://gcc.gnu.org/PR12928, comment 6 (which says this is a glibc bug, not a gcc bug)
208.6 -
208.7 -Fixes
208.8 -/tmp/ccdGVIRa.s: Assembler messages:
208.9 -/tmp/ccdGVIRa.s:82: Error: non-constant expression in ".if" statement
208.10 -/tmp/ccdGVIRa.s:83: Error: non-constant expression in ".if" statement
208.11 -/tmp/ccdGVIRa.s:86: Error: non-constant expression in ".if" statement
208.12 -make[2]: *** [/crosstool-0.28-pre4/build/i686-unknown-linux-gnu/gcc-3.3.3-glibc-2.1.3/build-glibc/signal/sigsuspend.o] Error 1
208.13 -
208.14 -===================================================================
208.15 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/sysdep.h,v
208.16 -retrieving revision 1.40
208.17 -retrieving revision 1.41
208.18 -diff -u -r1.40 -r1.41
208.19 ---- libc/sysdeps/unix/sysv/linux/i386/sysdep.h 2002/10/16 08:57:25 1.40
208.20 -+++ libc/sysdeps/unix/sysv/linux/i386/sysdep.h 2002/11/28 05:21:48 1.41
208.21 -@@ -347,9 +347,9 @@
208.22 - #define ASMFMT_1(arg1) \
208.23 - , "acdSD" (arg1)
208.24 - #define ASMFMT_2(arg1, arg2) \
208.25 -- , "adCD" (arg1), "c" (arg2)
208.26 -+ , "adSD" (arg1), "c" (arg2)
208.27 - #define ASMFMT_3(arg1, arg2, arg3) \
208.28 -- , "aCD" (arg1), "c" (arg2), "d" (arg3)
208.29 -+ , "aSD" (arg1), "c" (arg2), "d" (arg3)
208.30 - #define ASMFMT_4(arg1, arg2, arg3, arg4) \
208.31 - , "aD" (arg1), "c" (arg2), "d" (arg3), "S" (arg4)
208.32 - #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
209.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-versioninfo.patch Tue Aug 14 19:32:22 2007 +0000
209.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
209.3 @@ -1,17 +0,0 @@
209.4 -# gcc-3.x doesn't like run-on strings
209.5 -# See also http://sources.redhat.com/ml/libc-alpha/2004-01/msg00032.html
209.6 -
209.7 ---- glibc-2.1.3/csu/Makefile.old 2004-03-04 12:18:52.000000000 -0800
209.8 -+++ glibc-2.1.3/csu/Makefile 2004-03-04 12:19:35.000000000 -0800
209.9 -@@ -188,8 +188,8 @@
209.10 - esac; \
209.11 - files="$(all-Banner-files)"; \
209.12 - if test -n "$$files"; then \
209.13 -- echo "\"Available extensions:"; \
209.14 -- sed -e '/^#/d' -e 's/^[[:space:]]*/ /' $$files; \
209.15 -- echo "\""; \
209.16 -+ echo -e "\"Available extensions:\\\\n\""; \
209.17 -+ sed -e '/^#/d' -e 's/^[[:space:]]*/ /' \
209.18 -+ -e 's/^\(.*\)$$/\"\1\\n\"/' $$files; \
209.19 - fi) > $@T
209.20 - mv -f $@T $@
210.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-cygwin.patch Tue Aug 14 19:32:22 2007 +0000
210.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
210.3 @@ -1,80 +0,0 @@
210.4 -Fixes
210.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
210.6 -...
210.7 -when building glibc-2.1.3 on cygwin
210.8 -
210.9 -Idea from
210.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
210.11 -backported to glibc-2.1.3.
210.12 -Basically, make glibc use .oST as suffix for 'object static'
210.13 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
210.14 -(Original patch had .on, but .oST is more mnemonic for 'object static')
210.15 -
210.16 -
210.17 ---- glibc-2.1.3/Makeconfig.old 1999-11-29 11:19:20.000000000 -0800
210.18 -+++ glibc-2.1.3/Makeconfig 2004-03-14 16:38:43.218750000 -0800
210.19 -@@ -406,7 +406,7 @@
210.20 - # run the linked programs.
210.21 - link-libc = -Wl,-rpath-link=$(rpath-link) \
210.22 - $(common-objpfx)libc.so$(libc.so-version) \
210.23 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
210.24 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
210.25 - # Choose the default search path for the dynamic linker based on
210.26 - # where we will install libraries.
210.27 - ifneq ($(libdir),$(slibdir))
210.28 -@@ -586,7 +586,7 @@
210.29 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
210.30 - # to pass different flags for each flavor.
210.31 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
210.32 --all-object-suffixes := .o .os .op .og .ob .oS
210.33 -+all-object-suffixes := .o .os .op .og .ob .oST
210.34 - object-suffixes :=
210.35 - CPPFLAGS-.o = $(pic-default)
210.36 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
210.37 -@@ -636,14 +636,14 @@
210.38 -
210.39 - ifeq (yes,$(build-shared))
210.40 - # Build special library that contains the static-only routines for libc.
210.41 --object-suffixes-for-libc += .oS
210.42 -+object-suffixes-for-libc += .oST
210.43 -
210.44 - # Must build the routines as PIC, though, because they can end up in (users')
210.45 - # shared objects. We don't want to use CFLAGS-os because users may, for
210.46 - # example, make that processor-specific.
210.47 --CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
210.48 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC
210.49 --libtype.oS = lib%_nonshared.a
210.50 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
210.51 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC
210.52 -+libtype.oST = lib%_nonshared.a
210.53 - endif
210.54 -
210.55 -
210.56 ---- glibc-2.1.3/Makerules.old 1999-08-01 15:12:23.000000000 -0700
210.57 -+++ glibc-2.1.3/Makerules 2004-03-14 16:39:07.906250000 -0800
210.58 -@@ -386,7 +386,7 @@
210.59 - static-only-routines =
210.60 - endif
210.61 -
210.62 --elide-routines.oS += $(filter-out $(static-only-routines),\
210.63 -+elide-routines.oST += $(filter-out $(static-only-routines),\
210.64 - $(routines) $(aux) $(sysdep_routines))
210.65 - elide-routines.os += $(static-only-routines)
210.66 -
210.67 -@@ -694,14 +694,14 @@
210.68 - # of the files are taken by the linker.
210.69 - install: $(inst_libdir)/libc.so
210.70 - $(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
210.71 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
210.72 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
210.73 - $(libprefix)$(libc-name)) \
210.74 - $(+force)
210.75 - (echo '/* GNU ld script';\
210.76 - echo ' Use the shared library, but some functions are only in';\
210.77 - echo ' the static library, so try that secondarily. */';\
210.78 - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
210.79 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
210.80 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
210.81 - ')' \
210.82 - ) > $@.new
210.83 - mv -f $@.new $@
211.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-override.patch Tue Aug 14 19:32:22 2007 +0000
211.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
211.3 @@ -1,48 +0,0 @@
211.4 -The error
211.5 -
211.6 -make[2]: *** [.../gcc-3.3.3-glibc-2.1.3/i686-unknown-linux-gnu/share/zoneinfo/Africa/Algiers] Segmentation fault
211.7 -make[2]: Leaving directory `.../gcc-3.3.3-glibc-2.1.3/glibc-2.1.3/timezone'
211.8 -make[1]: *** [timezone/subdir_install] Error 2
211.9 -
211.10 -is caused by glibc trying to run something it just compiled.
211.11 -A crude workaround for this was posted at
211.12 -http://lists.scratchbox.org/pipermail/scratchbox-users/2004-February/000018.html
211.13 -but the following patch lets you optionally override these programs at
211.14 -make time by setting environment variables
211.15 - localedef_FOR_BUILD rpcgen_FOR_BUILD zic_FOR_BUILD
211.16 -and maybe a few others to point to versions of those programs
211.17 -that can run on the build machine.
211.18 -Thanks to http://groups.google.com/groups?selm=9012160052.AA23106%40kaos.ksr.com
211.19 -for pointing out the idiom for inline $(ifdef ...) in GNU Make.
211.20 -
211.21 -Dan Kegel 2004-05-17
211.22 -
211.23 ---- glibc-2.1.3/Makeconfig.old 1999-11-29 11:19:20.000000000 -0800
211.24 -+++ glibc-2.1.3/Makeconfig 2004-05-17 15:57:53.000000000 -0700
211.25 -@@ -470,20 +470,24 @@
211.26 - # The program binary is assumed to be $(word 2,$^).
211.27 - built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
211.28 - ifneq (yes,$(build-shared))
211.29 --built-program-cmd = $(built-program-file)
211.30 -+built-program-real = $(built-program-file)
211.31 - else
211.32 - comma = ,
211.33 - sysdep-library-path = \
211.34 - $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
211.35 - $(filter -Wl$(comma)-rpath-link=%,\
211.36 - $(sysdep-LDFLAGS)))))
211.37 --define built-program-cmd
211.38 -+define built-program-real
211.39 - $(elf-objpfx)$(rtld-installed-name) \
211.40 - --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
211.41 - $(built-program-file)
211.42 - endef
211.43 - endif
211.44 -
211.45 -+# If user set foo_FOR_BUILD, use that instead of actually running the program we just linked.
211.46 -+built-program-override-name = $(notdir $(word 2,$^))_FOR_BUILD
211.47 -+built-program-cmd = $(if $(findstring undefined,$(origin $(built-program-override-name))),$(built-program-real),$($(built-program-override-name)))
211.48 -+
211.49 - ifndef LD
211.50 - LD := ld -X
211.51 - endif
212.1 --- a/patches/glibc/2.1.3/glibc-2.2.2-export_fp_hw.patch Tue Aug 14 19:32:22 2007 +0000
212.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
212.3 @@ -1,30 +0,0 @@
212.4 -Fixes undefined symbol _fp_hw required by the ABI:
212.5 -readelf -s /opt/crosstool/i686-pc-linux-gnu/i686-unknown-linux-gnu/gcc-3.4.3-glibc-2.2.2/i686-unknown-linux-gnu/lib/crt1.o | grep fp_hw
212.6 - 29: 00000000 4 NOTYPE GLOBAL DEFAULT UND _fp_hw
212.7 -Rumored to fix problems with icc, which gets upset at any symbol
212.8 -which is undefined, even if nobody cares about it.
212.9 -
212.10 -Revision 1.16, Thu Feb 22 19:57:34 2001 UTC (4 years, 2 months ago) by drepper
212.11 -Branch: MAIN
212.12 -CVS Tags: glibc-2_2_3
212.13 -Changes since 1.15: +1 -1 lines
212.14 -Diff to previous 1.15 (colored)
212.15 -
212.16 -(_fp_hw): Actually define label.
212.17 -
212.18 -===================================================================
212.19 -RCS file: /cvs/glibc/libc/sysdeps/i386/elf/start.S,v
212.20 -retrieving revision 1.15
212.21 -retrieving revision 1.16
212.22 -diff -u -r1.15 -r1.16
212.23 ---- libc/sysdeps/i386/elf/start.S 2001/02/03 21:34:54 1.15
212.24 -+++ libc/sysdeps/i386/elf/start.S 2001/02/22 19:57:34 1.16
212.25 -@@ -85,7 +85,7 @@
212.26 - meaningless since we don't support machines < 80386. */
212.27 - .section .rodata
212.28 - .globl _fp_hw
212.29 -- .long 3
212.30 -+_fp_hw: .long 3
212.31 - .size _fp_hw, 4
212.32 -
212.33 - /* Define a symbol for the first piece of initialized data. */
213.1 --- a/patches/glibc/2.1.3/glibc-manual-stdin.texi-1.127.patch Tue Aug 14 19:32:22 2007 +0000
213.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
213.3 @@ -1,26 +0,0 @@
213.4 -Fixes
213.5 -./stdio.texi:2491: First argument to cross-reference may not be empty.
213.6 -./stdio.texi:2492: First argument to cross-reference may not be empty.
213.7 -makeinfo: Removing output file `/home/dank/crosstool-0.25/build/arm-unknown-linux-gnu/gcc-2.95.3-glibc-2.1.3/glibc-2.1.3/manual/libc.info' due to errors; use --force to preserve.
213.8 -make[2]: *** [libc.info] Error 2
213.9 -
213.10 -Patch from glib-2.2; Line numbers adjusted.
213.11 -
213.12 -===================================================================
213.13 -RCS file: /cvs/glibc/libc/manual/stdio.texi,v
213.14 -retrieving revision 1.126
213.15 -retrieving revision 1.127
213.16 -diff -u -r1.126 -r1.127
213.17 ---- libc/manual/stdio.texi 2001/06/06 07:11:00
213.18 -+++ libc/manual/stdio.texi 2001/07/31 18:57:00
213.19 -@@ -2487,8 +2487,8 @@
213.20 - If you are trying to read input that doesn't match a single, fixed
213.21 - pattern, you may be better off using a tool such as Flex to generate a
213.22 - lexical scanner, or Bison to generate a parser, rather than using
213.23 --@code{scanf}. For more information about these tools, see @ref{, , ,
213.24 --flex.info, Flex: The Lexical Scanner Generator}, and @ref{, , ,
213.25 -+@code{scanf}. For more information about these tools, see @ref{Top, , ,
213.26 -+flex.info, Flex: The Lexical Scanner Generator}, and @ref{Top, , ,
213.27 - bison.info, The Bison Reference Manual}.
213.28 -
213.29 - @node Input Conversion Syntax
214.1 --- a/patches/glibc/2.1.3/glibc-rpcgen-cpp.patch Tue Aug 14 19:32:22 2007 +0000
214.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
214.3 @@ -1,14 +0,0 @@
214.4 ---- glibc-2.1.3/sunrpc/Makefile.orig 2004-05-12 12:26:58.000000000 -0700
214.5 -+++ glibc-2.1.3/sunrpc/Makefile 2004-05-12 12:29:05.000000000 -0700
214.6 -@@ -123,9 +123,8 @@
214.7 - $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
214.8 - $(+link)
214.9 -
214.10 --# Tell rpcgen where to find the C preprocessor.
214.11 --rpcgen-cmd = $(built-program-cmd) -Y `$(CC) -print-file-name=cpp | \
214.12 -- sed "s|/cpp$$||"`
214.13 -+# Don't tell rpcgen where to find the C preprocessor -- let it find it itself.
214.14 -+rpcgen-cmd = $(built-program-cmd)
214.15 -
214.16 - # Install the rpc data base file.
214.17 - $(inst_sysconfdir)/rpc: etc.rpc $(+force)
215.1 Binary file patches/glibc/2.1.3/rh62-00-glibc-2.1.3.patch has changed
216.1 --- a/patches/glibc/2.1.3/rh62-01-glibc-2.1.3-security.patch Tue Aug 14 19:32:22 2007 +0000
216.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
216.3 @@ -1,32 +0,0 @@
216.4 -2000-05-03 Ulrich Drepper <drepper@redhat.com>
216.5 -
216.6 - * sysdeps/generic/dl-environ.c (unsetenv): Follow change to the
216.7 - real unsetenv implementation from 1999-07-29 [PR libc/1714].
216.8 -
216.9 ---- glibc-2.1.3/sysdeps/generic/dl-environ.c.jj Thu Jul 23 16:56:52 1998
216.10 -+++ glibc-2.1.3/sysdeps/generic/dl-environ.c Tue May 9 13:48:11 2000
216.11 -@@ -1,5 +1,5 @@
216.12 --/*Environment handling for dynamic loader.
216.13 -- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
216.14 -+/* Environment handling for dynamic loader.
216.15 -+ Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
216.16 - This file is part of the GNU C Library.
216.17 -
216.18 - The GNU C Library is free software; you can redistribute it and/or
216.19 -@@ -55,7 +55,8 @@ unsetenv (const char *name)
216.20 - const size_t len = strlen (name);
216.21 - char **ep;
216.22 -
216.23 -- for (ep = _environ; *ep != NULL; ++ep)
216.24 -+ ep = _environ;
216.25 -+ while (*ep != NULL)
216.26 - if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
216.27 - {
216.28 - /* Found it. Remove this pointer by moving later ones back. */
216.29 -@@ -66,4 +67,6 @@ unsetenv (const char *name)
216.30 - while (*dp++);
216.31 - /* Continue the loop in case NAME appears again. */
216.32 - }
216.33 -+ else
216.34 -+ ++ep;
216.35 - }
217.1 --- a/patches/glibc/2.1.3/rh62-02-glibc-2.1.3-locale.patch Tue Aug 14 19:32:22 2007 +0000
217.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
217.3 @@ -1,76 +0,0 @@
217.4 -2000-08-27 Ulrich Drepper <drepper@redhat.com>
217.5 -
217.6 - * intl/dcgettext.c (DCGETTEXT): Remove _nl_find_language in code
217.7 - to determine invalid locale name.
217.8 - * locale/findlocale.c (_nl_find_locale): Likewise.
217.9 -
217.10 -2000-08-21 Ulrich Drepper <drepper@redhat.com>
217.11 -
217.12 - * catgets/catgets.c (catopen): Filter out env_var values with / if
217.13 - necessary.
217.14 -
217.15 - * locale/findlocale.c (_nl_find_locale): Move test for unusable
217.16 - locale name after all getenvs.
217.17 -
217.18 ---- glibc-2.1.3/catgets/catgets.c 2000/01/29 11:56:33 1.15
217.19 -+++ glibc-2.1.3/catgets/catgets.c 2000/08/21 20:55:30 1.16
217.20 -@@ -50,7 +50,8 @@
217.21 - /* Use the LANG environment variable. */
217.22 - env_var = getenv ("LANG");
217.23 -
217.24 -- if (env_var == NULL)
217.25 -+ if (env_var == NULL || *env_var == '\0'
217.26 -+ || (__libc_enable_secure && strchr (env_var, '/') != NULL))
217.27 - env_var = "C";
217.28 -
217.29 - env_var_len = strlen (env_var) + 1;
217.30 ---- glibc-2.1.3/locale/findlocale.c 1999/11/08 23:45:13 1.10.2.1
217.31 -+++ glibc-2.1.3/locale/findlocale.c 2000/08/21 21:02:42 1.10.2.2
217.32 -@@ -1,4 +1,4 @@
217.33 --/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
217.34 -+/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
217.35 - This file is part of the GNU C Library.
217.36 - Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
217.37 -
217.38 -@@ -54,11 +54,7 @@
217.39 - const char *revision;
217.40 - struct loaded_l10nfile *locale_file;
217.41 -
217.42 -- if ((*name)[0] == '\0'
217.43 -- /* In SUID binaries we must not allow people to access files
217.44 -- outside the dedicated locale directories. */
217.45 -- || (__libc_enable_secure
217.46 -- && memchr (*name, '/', _nl_find_language (*name) - *name) != NULL))
217.47 -+ if ((*name)[0] == '\0')
217.48 - {
217.49 - /* The user decides which locale to use by setting environment
217.50 - variables. */
217.51 -@@ -67,9 +63,12 @@
217.52 - *name = getenv (_nl_category_names[category]);
217.53 - if (*name == NULL || (*name)[0] == '\0')
217.54 - *name = getenv ("LANG");
217.55 -- if (*name == NULL || (*name)[0] == '\0')
217.56 -- *name = (char *) _nl_C_name;
217.57 - }
217.58 -+
217.59 -+ if (*name == NULL || (*name)[0] == '\0'
217.60 -+ || (__builtin_expect (__libc_enable_secure, 0)
217.61 -+ && strchr (*name, '/') != NULL))
217.62 -+ *name = (char *) _nl_C_name;
217.63 -
217.64 - if (strcmp (*name, _nl_C_name) == 0 || strcmp (*name, _nl_POSIX_name) == 0)
217.65 - {
217.66 ---- glibc-2.1.3/intl/dcgettext.c Sun Aug 27 23:15:33 2000
217.67 -+++ glibc-2.1.3/intl/dcgettext.c Sun Aug 27 23:16:34 2000
217.68 -@@ -371,10 +371,7 @@
217.69 -
217.70 - /* When this is a SUID binary we must not allow accessing files
217.71 - outside the dedicated directories. */
217.72 -- if (ENABLE_SECURE
217.73 -- && (memchr (single_locale, '/',
217.74 -- _nl_find_language (single_locale) - single_locale)
217.75 -- != NULL))
217.76 -+ if (ENABLE_SECURE && strchr (single_locale, '/') != NULL)
217.77 - /* Ingore this entry. */
217.78 - continue;
217.79 - }
218.1 --- a/patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch Tue Aug 14 19:32:22 2007 +0000
218.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
218.3 @@ -1,207 +0,0 @@
218.4 ---- glibc-2.1.3/md5-crypt/md5-crypt.c 2000/03/04 00:47:30 1.1
218.5 -+++ glibc-2.1.3/md5-crypt/md5-crypt.c 2000/08/24 06:10:02 1.8
218.6 -@@ -1,5 +1,5 @@
218.7 - /* One way encryption based on MD5 sum.
218.8 -- Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
218.9 -+ Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
218.10 - This file is part of the GNU C Library.
218.11 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
218.12 -
218.13 -@@ -18,6 +18,7 @@
218.14 - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
218.15 - Boston, MA 02111-1307, USA. */
218.16 -
218.17 -+#include <assert.h>
218.18 - #include <errno.h>
218.19 - #include <stdlib.h>
218.20 - #include <string.h>
218.21 -@@ -37,9 +38,9 @@
218.22 -
218.23 -
218.24 - /* Prototypes for local functions. */
218.25 --extern char *__md5_crypt_r __P ((const char *key, const char *salt,
218.26 -- char *buffer, int buflen));
218.27 --extern char *__md5_crypt __P ((const char *key, const char *salt));
218.28 -+extern char *__md5_crypt_r (const char *key, const char *salt,
218.29 -+ char *buffer, int buflen);
218.30 -+extern char *__md5_crypt (const char *key, const char *salt);
218.31 -
218.32 -
218.33 - /* This entry point is equivalent to the `crypt' function in Unix
218.34 -@@ -51,13 +52,16 @@
218.35 - char *buffer;
218.36 - int buflen;
218.37 - {
218.38 -- unsigned char alt_result[16];
218.39 -+ unsigned char alt_result[16]
218.40 -+ __attribute__ ((__aligned__ (__alignof__ (md5_uint32))));
218.41 - struct md5_ctx ctx;
218.42 - struct md5_ctx alt_ctx;
218.43 - size_t salt_len;
218.44 - size_t key_len;
218.45 - size_t cnt;
218.46 - char *cp;
218.47 -+ char *copied_key = NULL;
218.48 -+ char *copied_salt = NULL;
218.49 -
218.50 - /* Find beginning of salt string. The prefix should normally always
218.51 - be present. Just in case it is not. */
218.52 -@@ -68,6 +72,26 @@
218.53 - salt_len = MIN (strcspn (salt, "$"), 8);
218.54 - key_len = strlen (key);
218.55 -
218.56 -+ if ((key - (char *) 0) % __alignof__ (md5_uint32) != 0)
218.57 -+ {
218.58 -+ char *tmp = (char *) alloca (key_len + __alignof__ (md5_uint32));
218.59 -+ key = copied_key =
218.60 -+ memcpy (tmp + __alignof__ (md5_uint32)
218.61 -+ - (tmp - (char *) 0) % __alignof__ (md5_uint32),
218.62 -+ key, key_len);
218.63 -+ assert ((key - (char *) 0) % __alignof__ (md5_uint32) == 0);
218.64 -+ }
218.65 -+
218.66 -+ if ((salt - (char *) 0) % __alignof__ (md5_uint32) != 0)
218.67 -+ {
218.68 -+ char *tmp = (char *) alloca (salt_len + __alignof__ (md5_uint32));
218.69 -+ salt = copied_salt =
218.70 -+ memcpy (tmp + __alignof__ (md5_uint32)
218.71 -+ - (tmp - (char *) 0) % __alignof__ (md5_uint32),
218.72 -+ salt, salt_len);
218.73 -+ assert ((salt - (char *) 0) % __alignof__ (md5_uint32) == 0);
218.74 -+ }
218.75 -+
218.76 - /* Prepare for the real work. */
218.77 - __md5_init_ctx (&ctx);
218.78 -
218.79 -@@ -195,21 +219,30 @@
218.80 -
218.81 - /* Clear the buffer for the intermediate result so that people
218.82 - attaching to processes or reading core dumps cannot get any
218.83 -- information. */
218.84 -- memset (alt_result, '\0', sizeof (alt_result));
218.85 -+ information. We do it in this way to clear correct_words[]
218.86 -+ inside the MD5 implementation as well. */
218.87 -+ __md5_init_ctx (&ctx);
218.88 -+ __md5_finish_ctx (&ctx, alt_result);
218.89 -+ memset (&ctx, '\0', sizeof (ctx));
218.90 -+ memset (&alt_ctx, '\0', sizeof (alt_ctx));
218.91 -+ if (copied_key != NULL)
218.92 -+ memset (copied_key, '\0', key_len);
218.93 -+ if (copied_salt != NULL)
218.94 -+ memset (copied_salt, '\0', salt_len);
218.95 -
218.96 - return buffer;
218.97 - }
218.98 -
218.99 -
218.100 -+static char *buffer;
218.101 -+
218.102 - char *
218.103 - __md5_crypt (const char *key, const char *salt)
218.104 - {
218.105 - /* We don't want to have an arbitrary limit in the size of the
218.106 - password. We can compute the size of the result in advance and
218.107 - so we can prepare the buffer we pass to `md5_crypt_r'. */
218.108 -- static char *buffer = NULL;
218.109 -- static int buflen = 0;
218.110 -+ static int buflen;
218.111 - int needed = 3 + strlen (salt) + 1 + 26 + 1;
218.112 -
218.113 - if (buflen < needed)
218.114 -@@ -220,4 +253,12 @@
218.115 - }
218.116 -
218.117 - return __md5_crypt_r (key, salt, buffer, buflen);
218.118 -+}
218.119 -+
218.120 -+
218.121 -+static void
218.122 -+__attribute__ ((__destructor__))
218.123 -+free_mem (void)
218.124 -+{
218.125 -+ free (buffer);
218.126 - }
218.127 ---- glibc-2.1.3/md5-crypt/md5.c 2000/03/04 00:47:30 1.1
218.128 -+++ glibc-2.1.3/md5-crypt/md5.c 2000/07/04 18:22:44 1.2
218.129 -@@ -1,6 +1,6 @@
218.130 --/* md5.c - Functions to compute MD5 message digest of files or memory blocks
218.131 -+/* Functions to compute MD5 message digest of files or memory blocks.
218.132 - according to the definition of MD5 in RFC 1321 from April 1992.
218.133 -- Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
218.134 -+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
218.135 - This file is part of the GNU C Library.
218.136 -
218.137 - The GNU C Library is free software; you can redistribute it and/or
218.138 -@@ -217,6 +217,8 @@
218.139 - size_t len;
218.140 - struct md5_ctx *ctx;
218.141 - {
218.142 -+ //const void aligned_buffer = buffer;
218.143 -+
218.144 - /* When we already have some bits in our internal buffer concatenate
218.145 - both inputs first. */
218.146 - if (ctx->buflen != 0)
218.147 -@@ -224,16 +226,20 @@
218.148 - size_t left_over = ctx->buflen;
218.149 - size_t add = 128 - left_over > len ? len : 128 - left_over;
218.150 -
218.151 -+ /* Only put full words in the buffer. */
218.152 -+ add -= add % __alignof__ (md5_uint32);
218.153 -+
218.154 - memcpy (&ctx->buffer[left_over], buffer, add);
218.155 - ctx->buflen += add;
218.156 -
218.157 -- if (left_over + add > 64)
218.158 -+ if (ctx->buflen > 64)
218.159 - {
218.160 -- md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
218.161 -+ md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
218.162 -+
218.163 -+ ctx->buflen &= 63;
218.164 - /* The regions in the following copy operation cannot overlap. */
218.165 - memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
218.166 -- (left_over + add) & 63);
218.167 -- ctx->buflen = (left_over + add) & 63;
218.168 -+ ctx->buflen);
218.169 - }
218.170 -
218.171 - buffer = (const char *) buffer + add;
218.172 -@@ -251,8 +257,17 @@
218.173 - /* Move remaining bytes in internal buffer. */
218.174 - if (len > 0)
218.175 - {
218.176 -- memcpy (ctx->buffer, buffer, len);
218.177 -- ctx->buflen = len;
218.178 -+ size_t left_over = ctx->buflen;
218.179 -+
218.180 -+ memcpy (&ctx->buffer[left_over], buffer, len);
218.181 -+ left_over += len;
218.182 -+ if (left_over >= 64)
218.183 -+ {
218.184 -+ md5_process_block (ctx->buffer, 64, ctx);
218.185 -+ left_over -= 64;
218.186 -+ memcpy (ctx->buffer, &ctx->buffer[64], left_over);
218.187 -+ }
218.188 -+ ctx->buflen = left_over;
218.189 - }
218.190 - }
218.191 -
218.192 ---- glibc-2.1.3/md5-crypt/md5.h 2000/03/04 00:47:30 1.1
218.193 -+++ glibc-2.1.3/md5-crypt/md5.h 2000/07/04 18:22:44 1.2
218.194 -@@ -1,6 +1,6 @@
218.195 - /* Declaration of functions and data types used for MD5 sum computing
218.196 - library functions.
218.197 -- Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
218.198 -+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
218.199 - This file is part of the GNU C Library.
218.200 -
218.201 - The GNU C Library is free software; you can redistribute it and/or
218.202 -@@ -87,7 +87,7 @@
218.203 -
218.204 - md5_uint32 total[2];
218.205 - md5_uint32 buflen;
218.206 -- char buffer[128];
218.207 -+ char buffer[128] __attribute__ ((__aligned__ (__alignof__ (md5_uint32))));
218.208 - };
218.209 -
218.210 - /*
219.1 --- a/patches/glibc/2.1.3/rh62-04-glibc-2.1.3-tzfile.patch Tue Aug 14 19:32:22 2007 +0000
219.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
219.3 @@ -1,22 +0,0 @@
219.4 -2000-08-09 Jakub Jelinek <jakub@redhat.com>
219.5 -
219.6 - * time/tzfile.c (__tzfile_compute): __tzstring zones
219.7 - from zone_names.
219.8 -
219.9 ---- glibc-2.1.3/time/tzfile.c.jj Fri May 7 16:41:44 1999
219.10 -+++ glibc-2.1.3/time/tzfile.c Fri Aug 25 09:55:20 2000
219.11 -@@ -1,4 +1,4 @@
219.12 --/* Copyright (C) 1991,92,93,95,96,97,98,99 Free Software Foundation, Inc.
219.13 -+/* Copyright (C) 1991,92,93,95,96,97,98,99,2000 Free Software Foundation, Inc.
219.14 - This file is part of the GNU C Library.
219.15 -
219.16 - The GNU C Library is free software; you can redistribute it and/or
219.17 -@@ -498,7 +498,7 @@ __tzfile_compute (time_t timer, int use_
219.18 - /* There is no daylight saving time. */
219.19 - __tzname[1] = __tzname[0];
219.20 - tp->tm_isdst = info->isdst;
219.21 -- tp->tm_zone = &zone_names[info->idx];
219.22 -+ tp->tm_zone = __tzstring (&zone_names[info->idx]);
219.23 - tp->tm_gmtoff = info->offset;
219.24 - }
219.25 -
220.1 --- a/patches/glibc/2.1.3/rh62-06-glibc-2.1.3-preload.patch Tue Aug 14 19:32:22 2007 +0000
220.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
220.3 @@ -1,86 +0,0 @@
220.4 -2001-01-08 Ulrich Drepper <drepper@redhat.com>
220.5 -
220.6 - * elf/rtld.c (process_envvars): Place output files for profiling
220.7 - in SUID binaries in /var/profile.
220.8 -
220.9 - * elf/dl-load.c (_dl_map_object): Don't look in cache for
220.10 - preloading in SUID binaries.
220.11 -
220.12 - * elf/dl-profile.c (_dl_start_profile): Open the output file with
220.13 - O_NOFOLLOW if possible.
220.14 -
220.15 - * sysdeps/generic/segfault.c (install_handler): Check output file
220.16 - name with access().
220.17 -
220.18 ---- libc/elf/rtld.c 2000/03/15 05:42:01 1.148.2.7
220.19 -+++ libc/elf/rtld.c 2001/01/10 07:45:19
220.20 -@@ -1273,7 +1273,7 @@
220.21 - char *debug_output = NULL;
220.22 -
220.23 - /* This is the default place for profiling data file. */
220.24 -- _dl_profile_output = "/var/tmp";
220.25 -+ _dl_profile_output = __libc_enable_secure ? "/var/profile" : "/var/tmp";
220.26 -
220.27 - while ((envline = _dl_next_ld_env_entry (&runp)) != NULL)
220.28 - {
220.29 ---- libc/elf/dl-load.c 1999/11/20 02:26:38 1.103.2.5
220.30 -+++ libc/elf/dl-load.c 2001/01/10 07:45:20
220.31 -@@ -1338,7 +1338,7 @@
220.32 - if (fd == -1 && env_path_list != NULL)
220.33 - fd = open_path (name, namelen, preloaded, env_path_list, &realname);
220.34 -
220.35 -- if (fd == -1)
220.36 -+ if (fd == -1 && (! preloaded || ! __libc_enable_secure))
220.37 - {
220.38 - /* Check the list of libraries in the file /etc/ld.so.cache,
220.39 - for compatibility with Linux's ldconfig program. */
220.40 ---- libc/elf/dl-profile.c 1998/06/07 13:35:48 1.14
220.41 -+++ libc/elf/dl-profile.c 2001/01/10 07:45:21
220.42 -@@ -263,7 +263,12 @@
220.43 - *cp++ = '/';
220.44 - __stpcpy (__stpcpy (cp, _dl_profile), ".profile");
220.45 -
220.46 -- fd = __open (filename, O_RDWR | O_CREAT, 0666);
220.47 -+#ifdef O_NOFOLLOW
220.48 -+# define EXTRA_FLAGS | O_NOFOLLOW
220.49 -+#else
220.50 -+# define EXTRA_FLAGS
220.51 -+#endif
220.52 -+ fd = __open (filename, O_RDWR | O_CREAT EXTRA_FLAGS, 0666);
220.53 - if (fd == -1)
220.54 - {
220.55 - /* We cannot write the profiling data so don't do anything. */
220.56 ---- libc/sysdeps/generic/segfault.c 2000/03/21 04:53:40 1.10.2.2
220.57 -+++ libc/sysdeps/generic/segfault.c 2001/01/10 07:45:22
220.58 -@@ -236,6 +236,7 @@
220.59 -
220.60 - /* Preserve the output file name if there is any given. */
220.61 - name = getenv ("SEGFAULT_OUTPUT_NAME");
220.62 -- if (name != NULL && name[0] != '\0')
220.63 -+ if (name != NULL && name[0] != '\0'
220.64 -+ && (!__libc_enable_secure || access (name, R_OK | W_OK) == 0))
220.65 - fname = __strdup (name);
220.66 - }
220.67 -
220.68 ---- libc/sysdeps/unix/sysv/linux/i386/dl-librecon.h.jj Wed Feb 24 23:01:58 1999
220.69 -+++ libc/sysdeps/unix/sysv/linux/i386/dl-librecon.h Mon Jan 15 04:30:57 2001
220.70 -@@ -49,13 +49,17 @@
220.71 - /* Recognizing extra environment variables. */
220.72 - #define EXTRA_LD_ENVVARS \
220.73 - case 15: \
220.74 -- if (memcmp (&envline[3], "LIBRARY_VERSION", 15) == 0) \
220.75 -+ if (!__libc_enable_secure \
220.76 -+ && memcmp (&envline[3], "LIBRARY_VERSION", 15) == 0) \
220.77 - { \
220.78 - _dl_correct_cache_id = envline[19] == '5' ? 2 : 3; \
220.79 - break; \
220.80 - }
220.81 -
220.82 - /* Extra unsecure variables. */
220.83 --#define EXTRA_UNSECURE_ENVVARS "LD_AOUT_LIBRARY_PATH", "LD_AOUT_PRELOAD"
220.84 -+#define EXTRA_UNSECURE_ENVVARS \
220.85 -+ "LD_AOUT_LIBRARY_PATH", \
220.86 -+ "LD_AOUT_PRELOAD", \
220.87 -+ "LD_LIBRARY_VERSION"
220.88 -
220.89 - #endif /* dl-librecon.h */
221.1 --- a/patches/glibc/2.1.3/rh62-07-glibc-2.1.3-alpha.patch Tue Aug 14 19:32:22 2007 +0000
221.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
221.3 @@ -1,124 +0,0 @@
221.4 -2000-03-15 Cristian Gafton <gafton@redhat.com>
221.5 -
221.6 - * db2/mutex/alpha.gcc (TSL_SET): Backport from db3.
221.7 - * sysdeps/alpha/Makefile (CPPFLAGS): Define for db2 directory.
221.8 - * db2/mutex/mutex.c: Include alpha.gcc ifdef HAVE_ASSEM_ALPHA_GCC.
221.9 -
221.10 -2000-03-14 Ulrich Drepper <drepper@redhat.com>
221.11 -
221.12 - * sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add entry for
221.13 - Nautilus. Patch by Soohoon Lee <soohoon.lee@alpha-processor.com>.
221.14 -
221.15 ---- glibc-2.1.3-15/db2/mutex/alpha.gcc Wed Aug 27 15:32:54 1997
221.16 -+++ glibc-2.1.3-16/db2/mutex/alpha.gcc Wed Mar 15 16:50:45 2000
221.17 -@@ -1,52 +1,24 @@
221.18 - /*
221.19 -- * @(#)alpha.gcc 10.1 (Sleepycat) 4/12/97
221.20 -- *
221.21 -- * The code appearing below is taken from Richard L. Sites, ed. "Alpha
221.22 -- * Architecture Reference Manual", Digital Press, 1992, page 5-7 and 5-8.
221.23 -- * There are 2 modifications:
221.24 -- *
221.25 -- * 1. The jump from blbs __r1,30f to !__r1, which is dictated by the way the
221.26 -- * TSL_SET macro is used. The code suggested in Sites includes the main loop
221.27 -- * of the spin lock, whereas in this code the rest the loop is specified in C.
221.28 -- * The generated code might be suboptimal if the compiler generates a forward
221.29 -- * branch for the usual case in which the mutex is uncontested.
221.30 -- *
221.31 -- * 2. At label 20, Sites suggests including code for testing for an excessive
221.32 -- * number of _processor_ lock conflicts. (The seq_c instruction stores its
221.33 -- * first argument provided that no other processor has written to a byte range
221.34 -- * including its memory-location argument.) Absent such checking the code
221.35 -- * below could conceivably stall silently on a multiprocessor alpha, depending
221.36 -- * on how often processor/processor conflicts occur in a particular byte range.
221.37 -- *
221.38 -- * Note that the mb ("memory-barrier") instruction in TSL_UNSET is critical to
221.39 -- * correct operation in a multiprocessor alpha (as is, of course, the mb in
221.40 -- * the TSL_SET macro). Without the mb, changes to shared memory that occurred
221.41 -- * inside the critical section (before the TSL_UNSET) might reach shared memory
221.42 -- * _after_ the change of tsl to 0, thereby permitting another processor to see
221.43 -- * an inconsistent view of the data protected by the mutex.
221.44 -+ * @(#)alpha.gcc 11.1 (Sleepycat) 8/30/99
221.45 - *
221.46 - * For gcc/alpha, 0 is clear, 1 is set.
221.47 - */
221.48 --#define TSL_SET(tsl) ({ \
221.49 -+#ifdef __GNUC__
221.50 -+#define TSL_SET(tsl) ({ \
221.51 - register tsl_t *__l = (tsl); \
221.52 -- register tsl_t __r1, __r2; \
221.53 -- __asm__ volatile(" \n\
221.54 -- 10: ldq_l %0,(%2) \n\
221.55 -- blbs %0,30f \n\
221.56 -- or %0,1,%1 \n\
221.57 -- stq_c %1,(%2) \n\
221.58 -- beq %1,20f \n\
221.59 -- mb \n\
221.60 -- br 30f \n\
221.61 -- 20: br 10b \n\
221.62 -- 30: " \
221.63 -- : "=&r" (__r1), "=&r" (__r2) \
221.64 -- : "r" (__l)); \
221.65 -- !__r1; \
221.66 -+ int __r; \
221.67 -+ asm volatile( \
221.68 -+ "1: ldl_l %0,%1\n" \
221.69 -+ " blbs %0,2f\n" \
221.70 -+ " mov 1,%0\n" \
221.71 -+ " stl_c %0,%1\n" \
221.72 -+ " bne %0,1b\n" \
221.73 -+ " mb\n" \
221.74 -+ "2:" \
221.75 -+ : "=&r"(__r), "=m"(*__l) : "m"(*__l) : "memory"); \
221.76 -+ __r; \
221.77 - })
221.78 -+#endif
221.79 -
221.80 --#define TSL_UNSET(tsl) ({ \
221.81 -- register tsl_t *__l = (tsl); \
221.82 -- __asm__ volatile("mb; stq $31,(%0);" : : "r" (__l)); \
221.83 --})
221.84 -+#define TSL_UNSET(tsl) (*(tsl) = 0)
221.85 - #define TSL_INIT(tsl) TSL_UNSET(tsl)
221.86 ---- glibc-2.1.3-15/db2/mutex/mutex.c Wed Jun 30 11:51:07 1999
221.87 -+++ glibc-2.1.3-16/db2/mutex/mutex.c Wed Mar 15 16:50:45 2000
221.88 -@@ -86,6 +86,10 @@ static const char sccsid[] = "@(#)mutex.
221.89 - #include "sparc.gcc"
221.90 - #endif
221.91 -
221.92 -+#ifdef HAVE_ASSEM_ALPHA_GCC
221.93 -+#include "alpha.gcc"
221.94 -+#endif
221.95 -+
221.96 - #ifdef HAVE_ASSEM_UTS4_CC
221.97 - #define TSL_INIT(x)
221.98 - #define TSL_SET(x) (!uts_lock(x, 1))
221.99 ---- glibc-2.1.3-15/sysdeps/alpha/Makefile Thu Jul 9 14:52:03 1998
221.100 -+++ glibc-2.1.3-16/sysdeps/alpha/Makefile Wed Mar 15 16:50:45 2000
221.101 -@@ -17,6 +17,10 @@
221.102 - # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
221.103 - # Boston, MA 02111-1307, USA.
221.104 -
221.105 -+ifeq ($(subdir),db2)
221.106 -+CPPFLAGS += -DHAVE_SPINLOCKS=1 -DHAVE_ASSEM_ALPHA_GCC=1
221.107 -+endif
221.108 -+
221.109 - ifeq ($(subdir),gmon)
221.110 - sysdep_routines += _mcount
221.111 - endif
221.112 ---- glibc-2.1.3-15/sysdeps/unix/sysv/linux/alpha/ioperm.c Mon Oct 11 10:25:24 1999
221.113 -+++ glibc-2.1.3-16/sysdeps/unix/sysv/linux/alpha/ioperm.c Wed Mar 15 11:57:14 2000
221.114 -@@ -1,4 +1,4 @@
221.115 --/* Copyright (C) 1992, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
221.116 -+/* Copyright (C) 1992, 1996-1999, 2000 Free Software Foundation, Inc.
221.117 - This file is part of the GNU C Library.
221.118 - Contributed by David Mosberger.
221.119 -
221.120 -@@ -139,6 +139,7 @@ static struct platform {
221.121 - {"Sable", IOSYS_CPUDEP},
221.122 - {"Miata", IOSYS_CIA},
221.123 - {"Tsunami", IOSYS_TSUNAMI},
221.124 -+ {"Nautilus", IOSYS_TSUNAMI},
221.125 - {"Rawhide", IOSYS_MCPCIA},
221.126 - {"Ruffian", IOSYS_CIA},
221.127 - {"Takara", IOSYS_CIA},
222.1 --- a/patches/glibc/2.1.3/rh62-08-glibc-2.1.3-glob.patch Tue Aug 14 19:32:22 2007 +0000
222.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
222.3 @@ -1,57 +0,0 @@
222.4 -2001-11-29 Jakub Jelinek <jakub@redhat.com>
222.5 -
222.6 - * sysdeps/generic/glob.c (next_brace_sub): Return NULL if braces
222.7 - don't match, fix {{a,b},c} globbing, clean up.
222.8 - Patch by Flavio Veloso <flaviovs@magnux.com>.
222.9 -
222.10 ---- libc/sysdeps/generic/glob.c.jj Thu Aug 23 18:49:29 2001
222.11 -+++ libc/sysdeps/generic/glob.c Thu Nov 29 13:17:21 2001
222.12 -@@ -355,42 +355,14 @@ static
222.13 - inline
222.14 - #endif
222.15 - const char *
222.16 --next_brace_sub (begin)
222.17 -- const char *begin;
222.18 -+next_brace_sub (cp)
222.19 -+ const char *cp;
222.20 - {
222.21 - unsigned int depth = 0;
222.22 -- const char *cp = begin;
222.23 --
222.24 -- while (1)
222.25 -- {
222.26 -- if (depth == 0)
222.27 -- {
222.28 -- if (*cp != ',' && *cp != '}' && *cp != '\0')
222.29 -- {
222.30 -- if (*cp == '{')
222.31 -- ++depth;
222.32 -- ++cp;
222.33 -- continue;
222.34 -- }
222.35 -- }
222.36 -- else
222.37 -- {
222.38 -- while (*cp != '\0' && (*cp != '}' || depth > 0))
222.39 -- {
222.40 -- if (*cp == '}')
222.41 -- --depth;
222.42 -- ++cp;
222.43 -- }
222.44 -- if (*cp == '\0')
222.45 -- /* An incorrectly terminated brace expression. */
222.46 -- return NULL;
222.47 --
222.48 -- continue;
222.49 -- }
222.50 -- break;
222.51 -- }
222.52 --
222.53 -- return cp;
222.54 -+ while (*cp != '\0' && (*cp != '}' || depth--) && (*cp != ',' || depth))
222.55 -+ if (*cp++ == '{')
222.56 -+ depth++;
222.57 -+ return *cp != '\0' ? cp : NULL;
222.58 - }
222.59 -
222.60 - #endif /* !GLOB_ONLY_P */
223.1 --- a/patches/glibc/2.1.3/rh62-09-glibc-2.1.3-security2.patch Tue Aug 14 19:32:22 2007 +0000
223.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
223.3 @@ -1,66 +0,0 @@
223.4 -2002-07-05 Tomohiro Kato <tomop@teamgedoh.net>
223.5 -
223.6 - * glibc-compat/nss_dns/dns-network.c (getanswer_r): Reduce
223.7 - linebuflen in parallel to bumping up the buffer pointer.
223.8 - * glibc-compat/nss_dns/dns-host.c (getanswer_r): Likewise.
223.9 - Compare n with linebuflen instead of buflen.
223.10 -
223.11 -2002-07-02 Andreas Schwab <schwab@suse.de>
223.12 -
223.13 - * resolv/nss_dns/dns-network.c (getanswer_r): Reduce linebuflen
223.14 - in parallel to bumping up the buffer pointer.
223.15 -
223.16 ---- libc/glibc-compat/nss_dns/dns-network.c.jj Wed Jan 10 11:58:20 2001
223.17 -+++ libc/glibc-compat/nss_dns/dns-network.c Tue Jul 9 10:31:15 2002
223.18 -@@ -283,7 +283,9 @@ getanswer_r (const querybuf *answer, int
223.19 - }
223.20 - cp += n;
223.21 - *alias_pointer++ = bp;
223.22 -- bp += strlen (bp) + 1;
223.23 -+ n = strlen (bp) + 1;
223.24 -+ bp += n;
223.25 -+ linebuflen -= n;
223.26 - result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
223.27 - ++have_answer;
223.28 - }
223.29 ---- libc/glibc-compat/nss_dns/dns-host.c.jj Wed Jan 10 11:58:20 2001
223.30 -+++ libc/glibc-compat/nss_dns/dns-host.c Tue Jul 9 10:36:41 2002
223.31 -@@ -424,7 +424,7 @@ getanswer_r (const querybuf *answer, int
223.32 - linebuflen -= n;
223.33 - /* Get canonical name. */
223.34 - n = strlen (tbuf) + 1; /* For the \0. */
223.35 -- if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
223.36 -+ if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
223.37 - {
223.38 - ++had_error;
223.39 - continue;
223.40 -@@ -447,7 +447,7 @@ getanswer_r (const querybuf *answer, int
223.41 - cp += n;
223.42 - /* Get canonical name. */
223.43 - n = strlen (tbuf) + 1; /* For the \0. */
223.44 -- if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
223.45 -+ if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
223.46 - {
223.47 - ++had_error;
223.48 - continue;
223.49 -@@ -542,6 +542,7 @@ getanswer_r (const querybuf *answer, int
223.50 - linebuflen -= nn;
223.51 - }
223.52 -
223.53 -+ linebuflen -= sizeof (align) - ((u_long) bp % sizeof (align));
223.54 - bp += sizeof (align) - ((u_long) bp % sizeof (align));
223.55 -
223.56 - if (n >= linebuflen)
223.57 ---- libc/resolv/nss_dns/dns-network.c.jj Mon Jul 9 14:59:24 2001
223.58 -+++ libc/resolv/nss_dns/dns-network.c Tue Jul 9 10:30:31 2002
223.59 -@@ -328,7 +328,9 @@ getanswer_r (const querybuf *answer, int
223.60 - }
223.61 - cp += n;
223.62 - *alias_pointer++ = bp;
223.63 -- bp += strlen (bp) + 1;
223.64 -+ n = strlen (bp) + 1;
223.65 -+ bp += n;
223.66 -+ linebuflen -= n;
223.67 - result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
223.68 - ++have_answer;
223.69 - }
224.1 --- a/patches/glibc/2.1.3/rh62-10-glibc-2.1.3-xdr_array.patch Tue Aug 14 19:32:22 2007 +0000
224.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
224.3 @@ -1,36 +0,0 @@
224.4 ---- glibc-2.1.3/sunrpc/rpc/types.h Fri Oct 16 13:43:49 1998
224.5 -+++ glibc-2.1.3/sunrpc/rpc/types.h Thu Aug 1 09:06:38 2002
224.6 -@@ -55,6 +55,10 @@
224.7 -
224.8 - #include <stdlib.h> /* For malloc decl. */
224.9 - #define mem_alloc(bsize) malloc(bsize)
224.10 -+/*
224.11 -+ * XXX: This must not use the second argument, or code in xdr_array.c needs
224.12 -+ * to be modified.
224.13 -+ */
224.14 - #define mem_free(ptr, bsize) free(ptr)
224.15 -
224.16 - #ifndef makedev /* ie, we haven't already included it */
224.17 ---- glibc-2.1.3/sunrpc/xdr_array.c Thu Jul 16 15:23:51 1998
224.18 -+++ glibc-2.1.3/sunrpc/xdr_array.c Thu Aug 1 09:07:45 2002
224.19 -@@ -44,6 +44,7 @@
224.20 - #include <string.h>
224.21 - #include <rpc/types.h>
224.22 - #include <rpc/xdr.h>
224.23 -+#include <limits.h>
224.24 -
224.25 - #define LASTUNSIGNED ((u_int)0-1)
224.26 -
224.27 -@@ -76,7 +77,11 @@
224.28 - return FALSE;
224.29 - }
224.30 - c = *sizep;
224.31 -- if ((c > maxsize) && (xdrs->x_op != XDR_FREE))
224.32 -+ /*
224.33 -+ * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
224.34 -+ * doesn't actually use its second argument anyway.
224.35 -+ */
224.36 -+ if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
224.37 - {
224.38 - return FALSE;
224.39 - }
225.1 --- a/patches/glibc/2.1.3/rh62-11-glibc-2.1.3-calloc.patch Tue Aug 14 19:32:22 2007 +0000
225.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
225.3 @@ -1,35 +0,0 @@
225.4 -diff -ur glibc-2.1.3.orig/malloc/malloc.c glibc-2.1.3/malloc/malloc.c
225.5 ---- glibc-2.1.3.orig/malloc/malloc.c Wed Feb 23 10:02:55 2000
225.6 -+++ glibc-2.1.3/malloc/malloc.c Thu Aug 1 09:24:10 2002
225.7 -@@ -3656,12 +3656,20 @@
225.8 - {
225.9 - arena *ar_ptr;
225.10 - mchunkptr p, oldtop;
225.11 -- INTERNAL_SIZE_T sz, csz, oldtopsize;
225.12 -+ INTERNAL_SIZE_T bytes, sz, csz, oldtopsize;
225.13 - Void_t* mem;
225.14 -
225.15 -+ /* size_t is unsigned so the behavior on overflow is defined;
225.16 -+ * request2size() uses similar post-checks anyway. */
225.17 -+ bytes = n * elem_size;
225.18 -+ if ((n | elem_size) >= 65536 && elem_size && bytes / elem_size != n) {
225.19 -+ __set_errno (ENOMEM);
225.20 -+ return 0;
225.21 -+ }
225.22 -+
225.23 - #if defined _LIBC || defined MALLOC_HOOKS
225.24 - if (__malloc_hook != NULL) {
225.25 -- sz = n * elem_size;
225.26 -+ sz = bytes;
225.27 - #if defined __GNUC__ && __GNUC__ >= 2
225.28 - mem = (*__malloc_hook)(sz, __builtin_return_address (0));
225.29 - #else
225.30 -@@ -3678,7 +3686,7 @@
225.31 - }
225.32 - #endif
225.33 -
225.34 -- if(request2size(n * elem_size, sz))
225.35 -+ if(request2size(bytes, sz))
225.36 - return 0;
225.37 - arena_get(ar_ptr, sz);
225.38 - if(!ar_ptr)
226.1 --- a/patches/glibc/2.1.3/rh62-12-glibc-2.1.3-maxpacket.patch Tue Aug 14 19:32:22 2007 +0000
226.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
226.3 @@ -1,512 +0,0 @@
226.4 ---- libc/resolv/nss_dns/dns-host.c.jj Tue Sep 14 03:05:08 1999
226.5 -+++ libc/resolv/nss_dns/dns-host.c Thu Oct 10 13:07:33 2002
226.6 -@@ -129,9 +129,10 @@ _nss_dns_gethostbyname2_r (const char *n
226.7 - char *buffer, size_t buflen, int *errnop,
226.8 - int *h_errnop)
226.9 - {
226.10 -- querybuf host_buffer;
226.11 -+ querybuf *host_buffer;
226.12 - int size, type, n;
226.13 - const char *cp;
226.14 -+ enum nss_status status;
226.15 -
226.16 - switch (af) {
226.17 - case AF_INET:
226.18 -@@ -159,16 +160,25 @@ _nss_dns_gethostbyname2_r (const char *n
226.19 - if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
226.20 - name = cp;
226.21 -
226.22 -- n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
226.23 -+ host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
226.24 -+ if (host_buffer == NULL) {
226.25 -+ *errnop = ENOMEM;
226.26 -+ return NSS_STATUS_UNAVAIL;
226.27 -+ }
226.28 -+
226.29 -+ n = res_search (name, C_IN, type, host_buffer->buf, sizeof (host_buffer->buf));
226.30 - if (n < 0)
226.31 - {
226.32 - *h_errnop = h_errno;
226.33 - *errnop = *h_errnop == TRY_AGAIN ? EAGAIN : ENOENT;
226.34 -+ free (host_buffer);
226.35 - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.36 - }
226.37 -
226.38 -- return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
226.39 -- errnop, h_errnop);
226.40 -+ status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
226.41 -+ errnop, h_errnop);
226.42 -+ free (host_buffer);
226.43 -+ return status;
226.44 - }
226.45 -
226.46 -
226.47 -@@ -205,7 +215,7 @@ _nss_dns_gethostbyaddr_r (const char *ad
226.48 - char *h_addr_ptrs[MAX_NR_ADDRS + 1];
226.49 - char linebuffer[0];
226.50 - } *host_data = (struct host_data *) buffer;
226.51 -- querybuf host_buffer;
226.52 -+ querybuf *host_buffer;
226.53 - char qbuf[MAXDNAME+1], *qp;
226.54 - size_t size;
226.55 - int n, status;
226.56 -@@ -257,17 +267,25 @@ _nss_dns_gethostbyaddr_r (const char *ad
226.57 - /* Cannot happen. */
226.58 - }
226.59 -
226.60 -- n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
226.61 -- sizeof host_buffer);
226.62 -+ host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
226.63 -+ if (host_buffer == NULL) {
226.64 -+ *errnop = ENOMEM;
226.65 -+ return NSS_STATUS_UNAVAIL;
226.66 -+ }
226.67 -+
226.68 -+ n = res_query (qbuf, C_IN, T_PTR, host_buffer->buf,
226.69 -+ sizeof (host_buffer->buf));
226.70 - if (n < 0)
226.71 - {
226.72 - *h_errnop = h_errno;
226.73 - *errnop = errno;
226.74 -+ free (host_buffer);
226.75 - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.76 - }
226.77 -
226.78 -- status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
226.79 -+ status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
226.80 - errnop, h_errnop);
226.81 -+ free (host_buffer);
226.82 - if (status != NSS_STATUS_SUCCESS)
226.83 - {
226.84 - *h_errnop = h_errno;
226.85 ---- libc/resolv/nss_dns/dns-network.c.jj Wed Jun 30 12:01:14 1999
226.86 -+++ libc/resolv/nss_dns/dns-network.c Thu Oct 10 13:09:49 2002
226.87 -@@ -113,24 +113,36 @@ _nss_dns_getnetbyname_r (const char *nam
226.88 - char *buffer, size_t buflen, int *errnop)
226.89 - {
226.90 - /* Return entry for network with NAME. */
226.91 -- querybuf net_buffer;
226.92 -+ querybuf *net_buffer;
226.93 - int anslen;
226.94 - char *qbuf;
226.95 -+ enum nss_status status;
226.96 -
226.97 - qbuf = strdupa (name);
226.98 -- anslen = res_search (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
226.99 -- sizeof (querybuf));
226.100 -+
226.101 -+ net_buffer = (querybuf *) malloc (sizeof (*net_buffer));
226.102 -+ if (net_buffer == NULL)
226.103 -+ {
226.104 -+ *errnop = ENOMEM;
226.105 -+ return NSS_STATUS_UNAVAIL;
226.106 -+ }
226.107 -+
226.108 -+ anslen = res_search (qbuf, C_IN, T_PTR, net_buffer->buf,
226.109 -+ sizeof (net_buffer->buf));
226.110 - if (anslen < 0)
226.111 - {
226.112 - /* Nothing found. */
226.113 - *errnop = errno;
226.114 -+ free (net_buffer);
226.115 - return (errno == ECONNREFUSED
226.116 - || errno == EPFNOSUPPORT
226.117 - || errno == EAFNOSUPPORT)
226.118 - ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.119 - }
226.120 -
226.121 -- return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
226.122 -+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
226.123 -+ free (net_buffer);
226.124 -+ return status;
226.125 - }
226.126 -
226.127 -
226.128 -@@ -140,7 +152,7 @@ _nss_dns_getnetbyaddr_r (long net, int t
226.129 - {
226.130 - /* Return entry for network with NAME. */
226.131 - enum nss_status status;
226.132 -- querybuf net_buffer;
226.133 -+ querybuf *net_buffer;
226.134 - unsigned int net_bytes[4];
226.135 - char qbuf[MAXDNAME];
226.136 - int cnt, anslen;
226.137 -@@ -176,19 +188,28 @@ _nss_dns_getnetbyaddr_r (long net, int t
226.138 - break;
226.139 - }
226.140 -
226.141 -- anslen = res_query (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
226.142 -- sizeof (querybuf));
226.143 -+ net_buffer = (querybuf *) malloc (sizeof (*net_buffer));
226.144 -+ if (net_buffer == NULL)
226.145 -+ {
226.146 -+ *errnop = ENOMEM;
226.147 -+ return NSS_STATUS_UNAVAIL;
226.148 -+ }
226.149 -+
226.150 -+ anslen = res_query (qbuf, C_IN, T_PTR, net_buffer->buf,
226.151 -+ sizeof (net_buffer->buf));
226.152 - if (anslen < 0)
226.153 - {
226.154 - /* Nothing found. */
226.155 - *errnop = errno;
226.156 -+ free (net_buffer);
226.157 - return (errno == ECONNREFUSED
226.158 - || errno == EPFNOSUPPORT
226.159 - || errno == EAFNOSUPPORT)
226.160 - ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.161 - }
226.162 -
226.163 -- status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
226.164 -+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
226.165 -+ free (net_buffer);
226.166 - if (status == NSS_STATUS_SUCCESS)
226.167 - {
226.168 - /* Strip trailing zeros. */
226.169 ---- libc/resolv/res_query.c.jj Wed Jun 30 12:01:06 1999
226.170 -+++ libc/resolv/res_query.c Thu Oct 10 13:01:12 2002
226.171 -@@ -106,7 +106,7 @@ res_query(name, class, type, answer, ans
226.172 - u_char *answer; /* buffer to put answer */
226.173 - int anslen; /* size of answer buffer */
226.174 - {
226.175 -- u_char buf[MAXPACKET];
226.176 -+ u_char *buf;
226.177 - register HEADER *hp = (HEADER *) answer;
226.178 - int n;
226.179 -
226.180 -@@ -121,17 +121,25 @@ res_query(name, class, type, answer, ans
226.181 - printf(";; res_query(%s, %d, %d)\n", name, class, type);
226.182 - #endif
226.183 -
226.184 -+ buf = malloc (MAXPACKET);
226.185 -+ if (buf == NULL) {
226.186 -+ __set_h_errno (NETDB_INTERNAL);
226.187 -+ return -1;
226.188 -+ }
226.189 -+
226.190 - n = res_mkquery(QUERY, name, class, type, NULL, 0, NULL,
226.191 -- buf, sizeof(buf));
226.192 -+ buf, MAXPACKET);
226.193 - if (n <= 0) {
226.194 - #ifdef DEBUG
226.195 - if (_res.options & RES_DEBUG)
226.196 - printf(";; res_query: mkquery failed\n");
226.197 - #endif
226.198 - __set_h_errno (NO_RECOVERY);
226.199 -+ free (buf);
226.200 - return (n);
226.201 - }
226.202 - n = res_send(buf, n, answer, anslen);
226.203 -+ free (buf);
226.204 - if (n < 0) {
226.205 - #ifdef DEBUG
226.206 - if (_res.options & RES_DEBUG)
226.207 ---- libc/resolv/gethnamaddr.c.jj Tue Dec 7 11:50:36 1999
226.208 -+++ libc/resolv/gethnamaddr.c Thu Oct 10 15:05:50 2002
226.209 -@@ -512,10 +512,11 @@ gethostbyname2(name, af)
226.210 - const char *name;
226.211 - int af;
226.212 - {
226.213 -- querybuf buf;
226.214 -+ querybuf *buf;
226.215 - register const char *cp;
226.216 - char *bp;
226.217 - int n, size, type, len;
226.218 -+ struct hostent *ret;
226.219 - extern struct hostent *_gethtbyname2();
226.220 -
226.221 - if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
226.222 -@@ -617,13 +618,22 @@ gethostbyname2(name, af)
226.223 - break;
226.224 - }
226.225 -
226.226 -- if ((n = res_search(name, C_IN, type, buf.buf, sizeof(buf.buf))) < 0) {
226.227 -+ buf = (querybuf *) malloc (sizeof (*buf));
226.228 -+ if (buf == NULL) {
226.229 -+ __set_h_errno (NETDB_INTERNAL);
226.230 -+ return NULL;
226.231 -+ }
226.232 -+
226.233 -+ if ((n = res_search(name, C_IN, type, buf->buf, sizeof(buf->buf))) < 0) {
226.234 -+ free (buf);
226.235 - dprintf("res_search failed (%d)\n", n);
226.236 - if (errno == ECONNREFUSED)
226.237 - return (_gethtbyname2(name, af));
226.238 - return (NULL);
226.239 - }
226.240 -- return (getanswer(&buf, n, name, type));
226.241 -+ ret = getanswer(buf, n, name, type);
226.242 -+ free (buf);
226.243 -+ return ret;
226.244 - }
226.245 -
226.246 - struct hostent *
226.247 -@@ -636,7 +646,7 @@ gethostbyaddr(addr, len, af)
226.248 - static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff };
226.249 - static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 };
226.250 - int n, size;
226.251 -- querybuf buf;
226.252 -+ querybuf *buf;
226.253 - register struct hostent *hp;
226.254 - char qbuf[MAXDNAME+1], *qp;
226.255 - #ifdef SUNSECURITY
226.256 -@@ -697,14 +707,24 @@ gethostbyaddr(addr, len, af)
226.257 - default:
226.258 - abort();
226.259 - }
226.260 -- n = res_query(qbuf, C_IN, T_PTR, (u_char *)buf.buf, sizeof buf.buf);
226.261 -+
226.262 -+ buf = (querybuf *) malloc (sizeof (*buf));
226.263 -+ if (buf == NULL) {
226.264 -+ __set_h_errno (NETDB_INTERNAL);
226.265 -+ return NULL;
226.266 -+ }
226.267 -+
226.268 -+ n = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof buf->buf);
226.269 - if (n < 0) {
226.270 -+ free (buf);
226.271 - dprintf("res_query failed (%d)\n", n);
226.272 - if (errno == ECONNREFUSED)
226.273 - return (_gethtbyaddr(addr, len, af));
226.274 - return (NULL);
226.275 - }
226.276 -- if (!(hp = getanswer(&buf, n, qbuf, T_PTR)))
226.277 -+ hp = getanswer(buf, n, qbuf, T_PTR);
226.278 -+ free (buf);
226.279 -+ if (!hp)
226.280 - return (NULL); /* h_errno was set by getanswer() */
226.281 - #ifdef SUNSECURITY
226.282 - if (af == AF_INET) {
226.283 ---- libc/resolv/getnetnamadr.c.jj Wed Jun 30 12:00:50 1999
226.284 -+++ libc/resolv/getnetnamadr.c Thu Oct 10 13:14:01 2002
226.285 -@@ -210,7 +210,7 @@ getnetbyaddr(net, net_type)
226.286 - {
226.287 - unsigned int netbr[4];
226.288 - int nn, anslen;
226.289 -- querybuf buf;
226.290 -+ querybuf *buf;
226.291 - char qbuf[MAXDNAME];
226.292 - u_int32_t net2; /* Changed from unsigned long --roland */
226.293 - struct netent *net_entry;
226.294 -@@ -236,8 +236,15 @@ getnetbyaddr(net, net_type)
226.295 - netbr[1], netbr[0]);
226.296 - break;
226.297 - }
226.298 -- anslen = res_query(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));
226.299 -+
226.300 -+ buf = (querybuf *) malloc (sizeof (*buf));
226.301 -+ if (buf == NULL) {
226.302 -+ return NULL;
226.303 -+ }
226.304 -+
226.305 -+ anslen = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof(buf->buf));
226.306 - if (anslen < 0) {
226.307 -+ free (buf);
226.308 - #ifdef DEBUG
226.309 - if (_res.options & RES_DEBUG)
226.310 - printf("res_query failed\n");
226.311 -@@ -246,7 +253,8 @@ getnetbyaddr(net, net_type)
226.312 - return (_getnetbyaddr(net, net_type));
226.313 - return (NULL);
226.314 - }
226.315 -- net_entry = getnetanswer(&buf, anslen, BYADDR);
226.316 -+ net_entry = getnetanswer(buf, anslen, BYADDR);
226.317 -+ free (buf);
226.318 - if (net_entry) {
226.319 - unsigned u_net = net; /* maybe net should be unsigned ? */
226.320 -
226.321 -@@ -264,7 +272,7 @@ getnetbyname(net)
226.322 - register const char *net;
226.323 - {
226.324 - int anslen;
226.325 -- querybuf buf;
226.326 -+ querybuf *buf;
226.327 - char qbuf[MAXDNAME];
226.328 - struct netent *net_entry;
226.329 -
226.330 -@@ -273,8 +281,13 @@ getnetbyname(net)
226.331 - return (NULL);
226.332 - }
226.333 - strcpy(&qbuf[0], net);
226.334 -- anslen = res_search(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));
226.335 -+ buf = (querybuf *) malloc (sizeof (*buf));
226.336 -+ if (buf == NULL) {
226.337 -+ return NULL;
226.338 -+ }
226.339 -+ anslen = res_search(qbuf, C_IN, T_PTR, buf->buf, sizeof(buf->buf));
226.340 - if (anslen < 0) {
226.341 -+ free (buf);
226.342 - #ifdef DEBUG
226.343 - if (_res.options & RES_DEBUG)
226.344 - printf("res_query failed\n");
226.345 -@@ -283,7 +296,8 @@ getnetbyname(net)
226.346 - return (_getnetbyname(net));
226.347 - return (_getnetbyname(net));
226.348 - }
226.349 -- net_entry = getnetanswer(&buf, anslen, BYNAME);
226.350 -+ net_entry = getnetanswer(buf, anslen, BYNAME);
226.351 -+ free (buf);
226.352 - if (net_entry)
226.353 - return (net_entry);
226.354 - return (_getnetbyname(net));
226.355 ---- libc/glibc-compat/nss_dns/dns-host.c.jj Mon Jan 3 20:07:08 2000
226.356 -+++ libc/glibc-compat/nss_dns/dns-host.c Thu Oct 10 12:46:24 2002
226.357 -@@ -126,9 +126,10 @@ enum nss_status
226.358 - _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result,
226.359 - char *buffer, size_t buflen, int *h_errnop)
226.360 - {
226.361 -- querybuf host_buffer;
226.362 -+ querybuf *host_buffer;
226.363 - int size, type, n;
226.364 - const char *cp;
226.365 -+ enum nss_status status;
226.366 -
226.367 - switch (af) {
226.368 - case AF_INET:
226.369 -@@ -156,15 +157,22 @@ _nss_dns_gethostbyname2_r (const char *n
226.370 - if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
226.371 - name = cp;
226.372 -
226.373 -- n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
226.374 -+ host_buffer = (querybuf *) malloc (sizeof (querybuf));
226.375 -+ if (host_buffer == NULL)
226.376 -+ return NSS_STATUS_UNAVAIL;
226.377 -+
226.378 -+ n = res_search (name, C_IN, type, host_buffer->buf, sizeof (host_buffer->buf));
226.379 - if (n < 0)
226.380 - {
226.381 - *h_errnop = h_errno;
226.382 -+ free (host_buffer);
226.383 - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.384 - }
226.385 -
226.386 -- return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
226.387 -- h_errnop);
226.388 -+ status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
226.389 -+ h_errnop);
226.390 -+ free (host_buffer);
226.391 -+ return status;
226.392 - }
226.393 -
226.394 -
226.395 -@@ -200,7 +208,7 @@ _nss_dns_gethostbyaddr_r (const char *ad
226.396 - char *h_addr_ptrs[MAX_NR_ADDRS + 1];
226.397 - char linebuffer[0];
226.398 - } *host_data = (struct host_data *) buffer;
226.399 -- querybuf host_buffer;
226.400 -+ querybuf *host_buffer;
226.401 - char qbuf[MAXDNAME+1], *qp;
226.402 - int size, n, status;
226.403 -
226.404 -@@ -251,16 +259,22 @@ _nss_dns_gethostbyaddr_r (const char *ad
226.405 - /* Cannot happen. */
226.406 - }
226.407 -
226.408 -- n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
226.409 -- sizeof host_buffer);
226.410 -+ host_buffer = (querybuf *) malloc (sizeof (querybuf));
226.411 -+ if (host_buffer == NULL)
226.412 -+ return NSS_STATUS_UNAVAIL;
226.413 -+
226.414 -+ n = res_query (qbuf, C_IN, T_PTR, host_buffer->buf,
226.415 -+ sizeof (host_buffer->buf));
226.416 - if (n < 0)
226.417 - {
226.418 - *h_errnop = h_errno;
226.419 -+ free (host_buffer);
226.420 - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.421 - }
226.422 -
226.423 -- status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
226.424 -+ status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
226.425 - h_errnop);
226.426 -+ free (host_buffer);
226.427 - if (status != NSS_STATUS_SUCCESS)
226.428 - {
226.429 - *h_errnop = h_errno;
226.430 ---- libc/glibc-compat/nss_dns/dns-network.c.jj Mon Jan 3 20:07:08 2000
226.431 -+++ libc/glibc-compat/nss_dns/dns-network.c Thu Oct 10 12:46:24 2002
226.432 -@@ -107,21 +107,32 @@ _nss_dns_getnetbyname_r (const char *nam
226.433 - char *buffer, size_t buflen)
226.434 - {
226.435 - /* Return entry for network with NAME. */
226.436 -- querybuf net_buffer;
226.437 -+ querybuf *net_buffer;
226.438 - int anslen;
226.439 - char *qbuf;
226.440 -+ enum nss_status status;
226.441 -
226.442 - qbuf = strdupa (name);
226.443 -- anslen = res_search (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
226.444 -- sizeof (querybuf));
226.445 -+
226.446 -+ net_buffer = (querybuf *) malloc (sizeof (querybuf));
226.447 -+ if (net_buffer == NULL)
226.448 -+ return NSS_STATUS_UNAVAIL;
226.449 -+
226.450 -+ anslen = res_search (qbuf, C_IN, T_PTR, net_buffer->buf,
226.451 -+ sizeof (net_buffer->buf));
226.452 - if (anslen < 0)
226.453 -- /* Nothing found. */
226.454 -- return (errno == ECONNREFUSED
226.455 -- || errno == EPFNOSUPPORT
226.456 -- || errno == EAFNOSUPPORT)
226.457 -- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.458 -+ {
226.459 -+ free (net_buffer);
226.460 -+ /* Nothing found. */
226.461 -+ return (errno == ECONNREFUSED
226.462 -+ || errno == EPFNOSUPPORT
226.463 -+ || errno == EAFNOSUPPORT)
226.464 -+ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.465 -+ }
226.466 -
226.467 -- return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
226.468 -+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
226.469 -+ free (net_buffer);
226.470 -+ return status;
226.471 - }
226.472 -
226.473 -
226.474 -@@ -131,7 +142,7 @@ _nss_dns_getnetbyaddr_r (long net, int t
226.475 - {
226.476 - /* Return entry for network with NAME. */
226.477 - enum nss_status status;
226.478 -- querybuf net_buffer;
226.479 -+ querybuf *net_buffer;
226.480 - unsigned int net_bytes[4];
226.481 - char qbuf[MAXDNAME];
226.482 - int cnt, anslen;
226.483 -@@ -167,16 +178,24 @@ _nss_dns_getnetbyaddr_r (long net, int t
226.484 - break;
226.485 - }
226.486 -
226.487 -- anslen = res_query (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
226.488 -- sizeof (querybuf));
226.489 -+ net_buffer = (querybuf *) malloc (sizeof (querybuf));
226.490 -+ if (net_buffer == NULL)
226.491 -+ return NSS_STATUS_UNAVAIL;
226.492 -+
226.493 -+ anslen = res_query (qbuf, C_IN, T_PTR, net_buffer->buf,
226.494 -+ sizeof (net_buffer->buf));
226.495 - if (anslen < 0)
226.496 -- /* Nothing found. */
226.497 -- return (errno == ECONNREFUSED
226.498 -- || errno == EPFNOSUPPORT
226.499 -- || errno == EAFNOSUPPORT)
226.500 -- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.501 -+ {
226.502 -+ free (net_buffer);
226.503 -+ /* Nothing found. */
226.504 -+ return (errno == ECONNREFUSED
226.505 -+ || errno == EPFNOSUPPORT
226.506 -+ || errno == EAFNOSUPPORT)
226.507 -+ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
226.508 -+ }
226.509 -
226.510 -- status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
226.511 -+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
226.512 -+ free (net_buffer);
226.513 - if (status == NSS_STATUS_SUCCESS)
226.514 - {
226.515 - /* Strip trailing zeros. */
227.1 --- a/patches/glibc/2.1.3/rh62-99-glibc-2.1.3-allow-gcc-3.4-dns.patch Tue Aug 14 19:32:22 2007 +0000
227.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
227.3 @@ -1,11 +0,0 @@
227.4 ---- glibc-2.1.3/glibc-compat/nss_dns/dns-host.c.old Sun Apr 11 21:46:14 2004
227.5 -+++ glibc-2.1.3/glibc-compat/nss_dns/dns-host.c Sun Apr 11 21:46:26 2004
227.6 -@@ -256,7 +256,7 @@
227.7 - strcpy(qp, "ip6.int");
227.8 - break;
227.9 - default:
227.10 -- /* Cannot happen. */
227.11 -+ ; /* Cannot happen. */
227.12 - }
227.13 -
227.14 - host_buffer = (querybuf *) malloc (sizeof (querybuf));
228.1 --- a/patches/glibc/2.1.3/rh62-99-glibc-2.1.3-allow-gcc-3.4-gconv_stubs.patch Tue Aug 14 19:32:22 2007 +0000
228.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
228.3 @@ -1,44 +0,0 @@
228.4 -"Fixes" gcc-3.4.0 errors:
228.5 -gconv_stubs.c:49: error: conflicting types for '__gconv_close_transform'
228.6 -../iconv/gconv_int.h:131: error: previous declaration of '__gconv_close_transform' was here
228.7 -gconv_stubs.c:49: error: conflicting types for '__gconv_close_transform'
228.8 -../iconv/gconv_int.h:131: error: previous declaration of '__gconv_close_transform' was here
228.9 -gconv_stubs.c:52: error: conflicting types for '__gconv'
228.10 -../iconv/gconv_int.h:112: error: previous declaration of '__gconv' was here
228.11 -gconv_stubs.c:52: error: conflicting types for '__gconv'
228.12 -../iconv/gconv_int.h:112: error: previous declaration of '__gconv' was here
228.13 -gconv_stubs.c:54: error: conflicting types for '__gconv_find_transform'
228.14 -../iconv/gconv_int.h:119: error: previous declaration of '__gconv_find_transform' was here
228.15 -gconv_stubs.c:54: error: conflicting types for '__gconv_find_transform'
228.16 -../iconv/gconv_int.h:119: error: previous declaration of '__gconv_find_transform' was here
228.17 -gconv_stubs.c:56: error: conflicting types for '__gconv_open'
228.18 -../iconv/gconv_int.h:99: error: previous declaration of '__gconv_open' was here
228.19 -gconv_stubs.c:56: error: conflicting types for '__gconv_open'
228.20 -../iconv/gconv_int.h:99: error: previous declaration of '__gconv_open' was here
228.21 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/c_stubs/gconv_stubs.o] Error 1
228.22 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/c_stubs'
228.23 -
228.24 -although the right thing would probably be to declare the
228.25 -stubs to have the right attributes.
228.26 -
228.27 ---- glibc-2.1.3/c_stubs/gconv_stubs.c.old Sun Apr 11 20:25:09 2004
228.28 -+++ glibc-2.1.3/c_stubs/gconv_stubs.c Sun Apr 11 20:29:35 2004
228.29 -@@ -18,7 +18,18 @@
228.30 - Boston, MA 02111-1307, USA. */
228.31 -
228.32 - #include <features.h>
228.33 -+
228.34 -+/* strange hack workaround for gcc-3.4.0. Might be a better way. */
228.35 -+#define __gconv_close_transform foo__gconv_close_transform
228.36 -+#define __gconv foo__gconv
228.37 -+#define __gconv_find_transform foo__gconv_find_transform
228.38 -+#define __gconv_open foo__gconv_open
228.39 -+
228.40 - #include <gconv_int.h>
228.41 -+#undef __gconv_close_transform
228.42 -+#undef __gconv
228.43 -+#undef __gconv_find_transform
228.44 -+#undef __gconv_open
228.45 -
228.46 - /* hack for self identification */
228.47 - int __c_stubs_is_compiled_in;
229.1 --- a/patches/glibc/2.1.3/sk.po.patch Tue Aug 14 19:32:22 2007 +0000
229.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
229.3 @@ -1,6678 +0,0 @@
229.4 -From
229.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/po/sk.po.diff?r1=1.2&r2=1.3&cvsroot=glibc
229.6 -
229.7 -Fixes build error
229.8 - msgfmt -o sk.mo sk.po
229.9 - sk.po:2913: duplicate message definition
229.10 - sk.po:2909: ...this is the location of the first definition
229.11 - sk.po:3894: duplicate message definition
229.12 - sk.po:3070: ...this is the location of the first definition
229.13 - msgfmt: found 2 fatal errors
229.14 - make[2]: *** [sk.mo] Error 1
229.15 -
229.16 -===================================================================
229.17 -RCS file: /cvs/glibc/libc/po/sk.po,v
229.18 -retrieving revision 1.2
229.19 -retrieving revision 1.3
229.20 -diff -u -r1.2 -r1.3
229.21 ---- libc/po/sk.po 1998/12/04 21:08:17 1.2
229.22 -+++ libc/po/sk.po 2001/06/05 22:43:33 1.3
229.23 -@@ -4,82 +4,82 @@
229.24 - #
229.25 - msgid ""
229.26 - msgstr ""
229.27 --"Project-Id-Version: libc 2.1\n"
229.28 --"POT-Creation-Date: 1998-11-28 09:29-0800\n"
229.29 --"PO-Revision-Date: 1998-12-02 22:02+01:00\n"
229.30 -+"Project-Id-Version: libc 2.2.3\n"
229.31 -+"POT-Creation-Date: 2001-01-21 08:03-0800\n"
229.32 -+"PO-Revision-Date: 2001-06-05 17:57+02:00\n"
229.33 - "Last-Translator: Stanislav Meduna <stano@eunet.sk>\n"
229.34 - "Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n"
229.35 - "MIME-Version: 1.0\n"
229.36 - "Content-Type: text/plain; charset=ISO-8859-2\n"
229.37 - "Content-Transfer-Encoding: 8bit\n"
229.38 -
229.39 --#: nis/nis_print.c:273
229.40 -+#: nis/nis_print.c:274
229.41 - msgid "\t\tAccess Rights : "
229.42 - msgstr "\t\tPrístupové práva : "
229.43 -
229.44 --#: nis/nis_print.c:271
229.45 -+#: nis/nis_print.c:272
229.46 - msgid "\t\tAttributes : "
229.47 - msgstr "\t\tAtribúty : "
229.48 -
229.49 --#: sunrpc/rpc_main.c:1416
229.50 -+#: sunrpc/rpc_main.c:1425
229.51 - #, c-format
229.52 - msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
229.53 - msgstr "\t%s [-abkCLNTM][-Dnázov[=hodnota]] [-i veµkos»] [-I [-K sekundy]] [-Y cesta] vst_súbor\n"
229.54 -
229.55 --#: sunrpc/rpc_main.c:1418
229.56 -+#: sunrpc/rpc_main.c:1427
229.57 - #, c-format
229.58 - msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
229.59 - msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o výst_súbor] [vst_súbor]\n"
229.60 -
229.61 --#: sunrpc/rpc_main.c:1421
229.62 -+#: sunrpc/rpc_main.c:1430
229.63 - #, c-format
229.64 - msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
229.65 - msgstr "\t%s [-n netid]* [-o výst_súbor] [vst_súbor]\n"
229.66 -
229.67 --#: sunrpc/rpc_main.c:1420
229.68 -+#: sunrpc/rpc_main.c:1429
229.69 - #, c-format
229.70 - msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
229.71 - msgstr "\t%s [-s nettype]* [-o výst_súbor] [vst_súbor]\n"
229.72 -
229.73 --#: nis/nis_print.c:235
229.74 -+#: nis/nis_print.c:236
229.75 - msgid "\tAccess rights: "
229.76 - msgstr "\tPrístupové práva: "
229.77 -
229.78 --#: nis/nis_print.c:293
229.79 -+#: nis/nis_print.c:294
229.80 - #, c-format
229.81 - msgid "\tEntry data of type %s\n"
229.82 - msgstr "\tVstupné údaje typu %s\n"
229.83 -
229.84 --#: nis/nis_print.c:171
229.85 -+#: nis/nis_print.c:172
229.86 - #, c-format
229.87 - msgid "\tName : %s\n"
229.88 - msgstr "\tNázov : %s\n"
229.89 -
229.90 --#: nis/nis_print.c:172
229.91 -+#: nis/nis_print.c:173
229.92 - msgid "\tPublic Key : "
229.93 - msgstr "\tVerejný kµúè : "
229.94 -
229.95 --#: nis/nis_print.c:234
229.96 -+#: nis/nis_print.c:235
229.97 - #, c-format
229.98 - msgid "\tType : %s\n"
229.99 - msgstr "\tTyp : %s\n"
229.100 -
229.101 --#: nis/nis_print.c:201
229.102 -+#: nis/nis_print.c:202
229.103 - #, c-format
229.104 - msgid "\tUniversal addresses (%u)\n"
229.105 - msgstr "\tUniverzálne adresy (%u)\n"
229.106 -
229.107 --#: nis/nis_print.c:269
229.108 -+#: nis/nis_print.c:270
229.109 - #, c-format
229.110 - msgid "\t[%d]\tName : %s\n"
229.111 - msgstr "\t[%d]\tNázov : %s\n"
229.112 -
229.113 --#: nis/nis_print.c:296
229.114 -+#: nis/nis_print.c:297
229.115 - #, c-format
229.116 - msgid "\t[%u] - [%u bytes] "
229.117 - msgstr "\t[%u] - [%u bajtov] "
229.118 -
229.119 --#: nscd/nscd_stat.c:153
229.120 -+#: nscd/nscd_stat.c:154
229.121 - msgid ""
229.122 - "\n"
229.123 - "%s cache:\n"
229.124 -@@ -109,11 +109,11 @@
229.125 - "%15ld%% úspe¹nos» cache\n"
229.126 - "%15s skontrolujte /etc/%s na zmeny\n"
229.127 -
229.128 --#: nis/nis_print.c:251
229.129 -+#: nis/nis_print.c:252
229.130 - msgid "\nGroup Members :\n"
229.131 - msgstr "\nÈlenovia skupín :\n"
229.132 -
229.133 --#: nis/nis_print.c:320
229.134 -+#: nis/nis_print.c:323
229.135 - msgid "\nTime to Live : "
229.136 - msgstr "\n®ivotnos» : "
229.137 -
229.138 -@@ -133,60 +133,60 @@
229.139 - msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
229.140 - msgstr " rpcinfo [ -n èíslo_portu ] -t poèítaè èíslo_programu [ èíslo_verzie ]\n"
229.141 -
229.142 --#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147
229.143 -+#: nscd/nscd_stat.c:146 nscd/nscd_stat.c:148
229.144 - msgid " no"
229.145 - msgstr " nie"
229.146 -
229.147 --#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147
229.148 -+#: nscd/nscd_stat.c:146 nscd/nscd_stat.c:148
229.149 - msgid " yes"
229.150 - msgstr " áno"
229.151 -
229.152 --#: nis/nis_print.c:344
229.153 -+#: nis/nis_print.c:349
229.154 - #, c-format
229.155 - msgid " Data Length = %u\n"
229.156 - msgstr " Då¾ka údajov = %u\n"
229.157 -
229.158 --#: nis/nis_print_group_entry.c:121
229.159 -+#: nis/nis_print_group_entry.c:123
229.160 - msgid " Explicit members:\n"
229.161 - msgstr " Explicitní èlenovia:\n"
229.162 -
229.163 --#: nis/nis_print_group_entry.c:145 nis/nis_print_group_entry.c:161
229.164 -+#: nis/nis_print_group_entry.c:147 nis/nis_print_group_entry.c:163
229.165 - msgid " Explicit nonmembers:\n"
229.166 - msgstr " Explicitní neèlenovia:\n"
229.167 -
229.168 --#: nis/nis_print_group_entry.c:129
229.169 -+#: nis/nis_print_group_entry.c:131
229.170 - msgid " Implicit members:\n"
229.171 - msgstr " Implicitní èlenovia:\n"
229.172 -
229.173 --#: nis/nis_print_group_entry.c:153
229.174 -+#: nis/nis_print_group_entry.c:155
229.175 - msgid " Implicit nonmembers:\n"
229.176 - msgstr " Implicitní neèlenovia:\n"
229.177 -
229.178 --#: nis/nis_print_group_entry.c:126
229.179 -+#: nis/nis_print_group_entry.c:128
229.180 - msgid " No explicit members\n"
229.181 - msgstr " ®iadni explicitní èlenovia\n"
229.182 -
229.183 --#: nis/nis_print_group_entry.c:150
229.184 -+#: nis/nis_print_group_entry.c:152
229.185 - msgid " No explicit nonmembers\n"
229.186 - msgstr " ®iadni explicitní neèlenovia\n"
229.187 -
229.188 --#: nis/nis_print_group_entry.c:134
229.189 -+#: nis/nis_print_group_entry.c:136
229.190 - msgid " No implicit members\n"
229.191 - msgstr " ®iadni implicitní èlenovia\n"
229.192 -
229.193 --#: nis/nis_print_group_entry.c:158
229.194 -+#: nis/nis_print_group_entry.c:160
229.195 - msgid " No implicit nonmembers\n"
229.196 - msgstr " ®iadni implicitní neèlenovia\n"
229.197 -
229.198 --#: nis/nis_print_group_entry.c:142
229.199 -+#: nis/nis_print_group_entry.c:144
229.200 - msgid " No recursive members\n"
229.201 - msgstr " ®iadni rekurzívni èlenovia\n"
229.202 -
229.203 --#: nis/nis_print_group_entry.c:166
229.204 -+#: nis/nis_print_group_entry.c:168
229.205 - msgid " No recursive nonmembers\n"
229.206 - msgstr " ®iadni rekurzívni neèlenovia\n"
229.207 -
229.208 --#: nis/nis_print_group_entry.c:137
229.209 -+#: nis/nis_print_group_entry.c:139
229.210 - msgid " Recursive members:\n"
229.211 - msgstr " Rekurzívni èlenovia:\n"
229.212 -
229.213 -@@ -194,138 +194,198 @@
229.214 - msgid " program vers proto port\n"
229.215 - msgstr " program verz proto port\n"
229.216 -
229.217 --#: argp/argp-help.c:1571
229.218 -+#: argp/argp-help.c:1572
229.219 - msgid " or: "
229.220 - msgstr " alebo: "
229.221 -
229.222 -+#: elf/ldconfig.c:448
229.223 -+msgid " (SKIPPED)\n"
229.224 -+msgstr " (VYNECHANÉ)\n"
229.225 -+
229.226 -+#: elf/ldconfig.c:446
229.227 -+msgid " (changed)\n"
229.228 -+msgstr " (zmenené)\n"
229.229 -+
229.230 - #: timezone/zic.c:421
229.231 - #, c-format
229.232 - msgid " (rule from \"%s\", line %d)"
229.233 - msgstr " (pravidlo z \"%s\", riadok %d)"
229.234 -
229.235 --#: argp/argp-help.c:1583
229.236 -+#: argp/argp-help.c:1584
229.237 - msgid " [OPTION...]"
229.238 - msgstr " [VO¥BA...]"
229.239 -
229.240 --#: locale/programs/ld-collate.c:370 locale/programs/ld-ctype.c:1291
229.241 --msgid " done\n"
229.242 --msgstr " hotovo\n"
229.243 --
229.244 - #: timezone/zic.c:418
229.245 - #, c-format
229.246 - msgid "\"%s\", line %d: %s"
229.247 - msgstr "\"%s\", riadok %d: %s"
229.248 -
229.249 --#: timezone/zic.c:958
229.250 -+#: timezone/zic.c:983
229.251 - #, c-format
229.252 - msgid "\"Zone %s\" line and -l option are mutually exclusive"
229.253 - msgstr "Riadok \"Zone %s\" a voµba -l sa navzájom vyluèujú"
229.254 -
229.255 --#: timezone/zic.c:966
229.256 -+#: timezone/zic.c:991
229.257 - #, c-format
229.258 - msgid "\"Zone %s\" line and -p option are mutually exclusive"
229.259 - msgstr "Riadok \"Zone %s\" a voµba -p sa navzájom vyluèujú"
229.260 -
229.261 --#: sunrpc/rpc_main.c:1401
229.262 -+#: sunrpc/rpc_main.c:1410
229.263 - msgid "\"infile\" is required for template generation flags.\n"
229.264 - msgstr "\"vst_súbor\" je vy¾adovaný pri pou¾ití príznakov tvorby vzoru.\n"
229.265 -
229.266 --#: argp/argp-help.c:210
229.267 -+#: argp/argp-help.c:209
229.268 - #, c-format
229.269 - msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
229.270 - msgstr "%.*s: Parameter ARGP_HELP_FMT vy¾aduje hodnotu"
229.271 -
229.272 --#: argp/argp-help.c:219
229.273 -+#: argp/argp-help.c:218
229.274 - #, c-format
229.275 - msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
229.276 - msgstr "%.*s: Neznámy parameter ARGP_HELP_FMT"
229.277 -
229.278 --#: timezone/zic.c:768
229.279 -+#: locale/programs/ld-address.c:576 locale/programs/ld-collate.c:2593
229.280 -+#: locale/programs/ld-collate.c:3719 locale/programs/ld-ctype.c:2110
229.281 -+#: locale/programs/ld-ctype.c:2847 locale/programs/ld-identification.c:440
229.282 -+#: locale/programs/ld-measurement.c:232 locale/programs/ld-messages.c:326
229.283 -+#: locale/programs/ld-monetary.c:934 locale/programs/ld-name.c:300
229.284 -+#: locale/programs/ld-numeric.c:370 locale/programs/ld-paper.c:233
229.285 -+#: locale/programs/ld-telephone.c:308 locale/programs/ld-time.c:1172
229.286 -+#, c-format
229.287 -+msgid "%1$s: definition does not end with `END %1$s'"
229.288 -+msgstr "%1$s: Definícia nekonèí `END %1$s'"
229.289 -+
229.290 -+#: elf/cache.c:165 elf/cache.c:175
229.291 -+#, c-format
229.292 -+msgid "%d libs found in cache `%s'\n"
229.293 -+msgstr "%d kni¾níc nájdených v cache `%s'\n"
229.294 -+
229.295 -+#: timezone/zic.c:793
229.296 - #, c-format
229.297 - msgid "%s in ruleless zone"
229.298 - msgstr "%s v zóne bez pravidiel"
229.299 -
229.300 --#: assert/assert.c:51
229.301 -+#: elf/../sysdeps/generic/readelflib.c:65
229.302 -+#, c-format
229.303 -+msgid "%s is a 32 bit ELF file.\n"
229.304 -+msgstr "%s je 32-bitový ELF súbor.\n"
229.305 -+
229.306 -+#: elf/../sysdeps/generic/readelflib.c:67
229.307 -+#, c-format
229.308 -+msgid "%s is a 64 bit ELF file.\n"
229.309 -+msgstr "%s je 64-bitový ELF súbor.\n"
229.310 -+
229.311 -+#: elf/../sysdeps/unix/sysv/linux/i386/readelflib.c:48
229.312 -+#, c-format
229.313 -+msgid "%s is for unknown machine %d.\n"
229.314 -+msgstr "%s je pre neznámy stroj %d.\n"
229.315 -+
229.316 -+#: elf/ldconfig.c:329
229.317 -+#, c-format
229.318 -+msgid "%s is not a known library type"
229.319 -+msgstr "%s nie je známy typ kni¾nice"
229.320 -+
229.321 -+#: elf/../sysdeps/generic/readelflib.c:76
229.322 -+#, c-format
229.323 -+msgid "%s is not a shared object file (Type: %d).\n"
229.324 -+msgstr "%s nie je zdieµaný objektový súbor (Typ: %d).\n"
229.325 -+
229.326 -+#: elf/ldconfig.c:415
229.327 -+#, c-format
229.328 -+msgid "%s is not a symbolic link\n"
229.329 -+msgstr "%s nie je symbolický odkaz\n"
229.330 -+
229.331 -+#: elf/readlib.c:157
229.332 -+#, c-format
229.333 -+msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
229.334 -+msgstr "%s nie je ELF súbor - na zaèiatku obsahujé chybné magické bajty.\n"
229.335 -+
229.336 -+#: assert/assert.c:52
229.337 - #, c-format
229.338 - msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
229.339 - msgstr "%s%s%s:%u: %s%sPredpoklad `%s' nesplnený.\n"
229.340 -
229.341 --#: assert/assert-perr.c:52
229.342 -+#: assert/assert-perr.c:54
229.343 - #, c-format
229.344 - msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
229.345 - msgstr "%s%s%s:%u: %s%sNeoèakávaná chyba: %s.\n"
229.346 -
229.347 --#: stdio-common/psignal.c:47
229.348 -+#: stdio-common/psignal.c:48
229.349 - #, c-format
229.350 - msgid "%s%sUnknown signal %d\n"
229.351 - msgstr "%s%sNeznámy signál %d\n"
229.352 -
229.353 --#: timezone/zic.c:2201
229.354 -+#: timezone/zic.c:2228
229.355 - #, c-format
229.356 - msgid "%s: %d did not sign extend correctly\n"
229.357 - msgstr "%s: nesprávne roz¹írenie znamienka pre %d\n"
229.358 -
229.359 --#: locale/programs/charmap.c:261
229.360 -+#: locale/programs/charmap.c:326
229.361 - #, c-format
229.362 - msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
229.363 - msgstr "%s: <mb_cur_max> musí by» väè¹ie ako <mb_cur_min>\n"
229.364 -
229.365 --#: sunrpc/rpc_main.c:422
229.366 -+#: sunrpc/rpc_main.c:423
229.367 - #, c-format
229.368 - msgid "%s: C preprocessor failed with exit code %d\n"
229.369 - msgstr "%s: C preprocesor zlyhal s výstupným kódom %d\n"
229.370 -
229.371 --#: sunrpc/rpc_main.c:419
229.372 -+#: sunrpc/rpc_main.c:420
229.373 - #, c-format
229.374 - msgid "%s: C preprocessor failed with signal %d\n"
229.375 - msgstr "%s: C preprocesor zlyhal so signálom %d\n"
229.376 -
229.377 --#: timezone/zic.c:1469
229.378 -+#: timezone/zic.c:1494
229.379 - #, c-format
229.380 - msgid "%s: Can't create %s: %s\n"
229.381 - msgstr "%s: Nie je mo¾né vytvori» %s: %s\n"
229.382 -
229.383 --#: timezone/zic.c:2179
229.384 -+#: timezone/zic.c:2206
229.385 - #, c-format
229.386 - msgid "%s: Can't create directory %s: %s\n"
229.387 - msgstr "%s: Nie je mo¾né vytvori» adresár %s: %s\n"
229.388 -
229.389 --#: timezone/zic.c:620
229.390 -+#: timezone/zic.c:645
229.391 - #, c-format
229.392 - msgid "%s: Can't link from %s to %s: %s\n"
229.393 - msgstr "%s: Nie je mo¾né vytvori» prepojenie z %s na %s: %s\n"
229.394 -
229.395 --#: timezone/zic.c:794
229.396 -+#: timezone/zic.c:819
229.397 - #, c-format
229.398 - msgid "%s: Can't open %s: %s\n"
229.399 - msgstr "%s: Nie je mo¾né otvori» %s: %s\n"
229.400 -
229.401 --#: timezone/zic.c:1459
229.402 -+#: timezone/zic.c:1484
229.403 - #, c-format
229.404 - msgid "%s: Can't remove %s: %s\n"
229.405 - msgstr "%s: Nie je mo¾né odstráni» %s: %s\n"
229.406 -
229.407 --#: timezone/zic.c:863
229.408 -+#: timezone/zic.c:630
229.409 -+#, c-format
229.410 -+msgid "%s: Can't unlink %s: %s\n"
229.411 -+msgstr "%s: Nie je mo¾né zmaza» %s: %s\n"
229.412 -+
229.413 -+#: timezone/zic.c:888
229.414 - #, c-format
229.415 - msgid "%s: Error closing %s: %s\n"
229.416 - msgstr "%s: Chyba pri uzatváraní %s: %s\n"
229.417 -
229.418 --#: timezone/zic.c:856
229.419 -+#: timezone/zic.c:881
229.420 - #, c-format
229.421 - msgid "%s: Error reading %s\n"
229.422 - msgstr "%s: Chyba pri èítaní %s\n"
229.423 -
229.424 --#: timezone/zic.c:1535
229.425 -+#: timezone/zdump.c:267
229.426 - #, c-format
229.427 --msgid "%s: Error writing %s\n"
229.428 --msgstr "%s: Chyba pri zápise %s\n"
229.429 -+msgid "%s: Error writing "
229.430 -+msgstr "%s: Chyba pri zápise "
229.431 -
229.432 --#: timezone/zdump.c:266
229.433 -+#: timezone/zic.c:1560
229.434 - #, c-format
229.435 --msgid "%s: Error writing standard output "
229.436 --msgstr "%s: Chyba pri zápise na ¹tandardný výstup "
229.437 -+msgid "%s: Error writing %s\n"
229.438 -+msgstr "%s: Chyba pri zápise %s\n"
229.439 -
229.440 --#: timezone/zic.c:841
229.441 -+#: timezone/zic.c:866
229.442 - #, c-format
229.443 - msgid "%s: Leap line in non leap seconds file %s\n"
229.444 - msgstr "%s: Priestupný riadok v súbore nepriestupných sekúnd %s\n"
229.445 -@@ -335,122 +395,551 @@
229.446 - msgid "%s: Memory exhausted: %s\n"
229.447 - msgstr "%s: Nedostatok pamäti: %s\n"
229.448 -
229.449 --#: timezone/zic.c:524
229.450 -+#: timezone/zic.c:525
229.451 - #, c-format
229.452 - msgid "%s: More than one -L option specified\n"
229.453 - msgstr "%s: Voµba -L zadaná viac ako raz\n"
229.454 -
229.455 --#: timezone/zic.c:484
229.456 -+#: timezone/zic.c:485
229.457 - #, c-format
229.458 - msgid "%s: More than one -d option specified\n"
229.459 - msgstr "%s: Voµba -d zadaná viac ako raz\n"
229.460 -
229.461 --#: timezone/zic.c:494
229.462 -+#: timezone/zic.c:495
229.463 - #, c-format
229.464 - msgid "%s: More than one -l option specified\n"
229.465 - msgstr "%s: Voµba -l zadaná viac ako raz\n"
229.466 -
229.467 --#: timezone/zic.c:504
229.468 -+#: timezone/zic.c:505
229.469 - #, c-format
229.470 - msgid "%s: More than one -p option specified\n"
229.471 - msgstr "%s: Voµba -p zadaná viac ako raz\n"
229.472 -
229.473 --#: timezone/zic.c:514
229.474 -+#: timezone/zic.c:515
229.475 - #, c-format
229.476 - msgid "%s: More than one -y option specified\n"
229.477 - msgstr "%s: Voµba -y zadaná viac ako raz\n"
229.478 -
229.479 --#: argp/argp-parse.c:640
229.480 -+#: argp/argp-parse.c:646
229.481 - #, c-format
229.482 - msgid "%s: Too many arguments\n"
229.483 - msgstr "%s: Priveµa argumentov\n"
229.484 -
229.485 --#: login/programs/database.c:129
229.486 -+#: locale/programs/ld-collate.c:457 locale/programs/ld-collate.c:483
229.487 -+#: locale/programs/ld-collate.c:499
229.488 -+#, c-format
229.489 -+msgid "%s: `%s' mentioned more than once in definition of weight %d"
229.490 -+msgstr "%s: `%s' spomenuté viac ako raz v definícii váhy %d"
229.491 -+
229.492 -+#: locale/programs/ld-collate.c:1323
229.493 -+#, c-format
229.494 -+msgid "%s: `%s' must be a character"
229.495 -+msgstr "%s: `%s' musí by» znak"
229.496 -+
229.497 -+#: locale/programs/ld-address.c:248 locale/programs/ld-address.c:276
229.498 -+#: locale/programs/ld-address.c:309 locale/programs/ld-address.c:321
229.499 -+#, c-format
229.500 -+msgid "%s: `%s' value does not match `%s' value"
229.501 -+msgstr "%s: hodnota `%s' nezodpovedá hodnote `%s'"
229.502 -+
229.503 -+#: locale/programs/ld-monetary.c:835 locale/programs/ld-numeric.c:313
229.504 -+#, c-format
229.505 -+msgid "%s: `-1' must be last entry in `%s' field"
229.506 -+msgstr "%s: `-1' musí by» posledným záznamom v poli `%s'"
229.507 -+
229.508 -+#: locale/programs/ld-collate.c:447 locale/programs/ld-collate.c:473
229.509 -+#, c-format
229.510 -+msgid "%s: `forward' and `backward' are mutually excluding each other"
229.511 -+msgstr "%s: `forward' a `backward' sa navzájom vyluèujú"
229.512 -+
229.513 -+#: locale/programs/ld-collate.c:1515
229.514 -+#, c-format
229.515 -+msgid "%s: `position' must be used for a specific level in all sections or none"
229.516 -+msgstr "%s: `position' musí by» pre danú úroveò pou¾itá vo v¹etkých sekciách, alebo v ¾iadnej"
229.517 -+
229.518 -+#: locale/programs/ld-ctype.c:2635 locale/programs/ld-ctype.c:2775
229.519 -+#, c-format
229.520 -+msgid "%s: `translit_start' section does not end with `translit_end'"
229.521 -+msgstr "%s: sekcia `translit_start' nekonèí `translit_end'"
229.522 -+
229.523 -+#: locale/programs/ld-collate.c:1123
229.524 -+#, c-format
229.525 -+msgid "%s: byte sequence of first character of sequence is not lower than that of the last character"
229.526 -+msgstr "%s: poradie bajtu prvého znaku sekvencie nie je men¹ie ako posledného"
229.527 -+
229.528 -+#: locale/programs/ld-collate.c:1081
229.529 -+#, c-format
229.530 -+msgid "%s: byte sequences of first and last character must have the same length"
229.531 -+msgstr "%s: bajtové sekvencie prvého a posledného znaku musia ma» rovnakú då¾ku"
229.532 -+
229.533 -+#: locale/programs/ld-collate.c:3642
229.534 -+#, c-format
229.535 -+msgid "%s: cannot have `%s' as end of ellipsis range"
229.536 -+msgstr "%s: `%s' nemô¾e by» koncovým znakom rozsahu pokraèovania"
229.537 -+
229.538 -+#: locale/programs/ld-collate.c:3308
229.539 -+#, c-format
229.540 -+msgid "%s: cannot reorder after %.*s: symbol not known"
229.541 -+msgstr "%s: nie je mo¾né preradi» za %.*s: neznámy symbol"
229.542 -+
229.543 -+#: locale/programs/ld-ctype.c:2910 locale/programs/ld-ctype.c:2994
229.544 -+#: locale/programs/ld-ctype.c:3014 locale/programs/ld-ctype.c:3035
229.545 -+#: locale/programs/ld-ctype.c:3056 locale/programs/ld-ctype.c:3077
229.546 -+#: locale/programs/ld-ctype.c:3098 locale/programs/ld-ctype.c:3138
229.547 -+#: locale/programs/ld-ctype.c:3159 locale/programs/ld-ctype.c:3226
229.548 -+#, c-format
229.549 -+msgid "%s: character `%s' in charmap not representable with one byte"
229.550 -+msgstr "%s: znak `%s' v znakovej mape nie je vyjadriteµný jedným bajtom"
229.551 -+
229.552 -+#: locale/programs/ld-ctype.c:3270 locale/programs/ld-ctype.c:3295
229.553 - #, c-format
229.554 --msgid "%s: cannot get modification time"
229.555 --msgstr "%s: nie je mo¾né zisti» èas zmeny"
229.556 -+msgid "%s: character `%s' needed as default value not representable with one byte"
229.557 -+msgstr "%s: znak `%s' je potrebný ako prednastavená hodnota nevyjadriteµná jedným bajtom"
229.558 -
229.559 --#: timezone/zic.c:1900
229.560 -+#: locale/programs/ld-ctype.c:2905
229.561 -+#, c-format
229.562 -+msgid "%s: character `%s' not defined in charmap while needed as default value"
229.563 -+msgstr "%s: znak `%s' nie je definovaný v mape znakov a je potrebný ako implicitná hodnota"
229.564 -+
229.565 -+#: locale/programs/ld-ctype.c:2989 locale/programs/ld-ctype.c:3009
229.566 -+#: locale/programs/ld-ctype.c:3051 locale/programs/ld-ctype.c:3072
229.567 -+#: locale/programs/ld-ctype.c:3093 locale/programs/ld-ctype.c:3133
229.568 -+#: locale/programs/ld-ctype.c:3154 locale/programs/ld-ctype.c:3221
229.569 -+#: locale/programs/ld-ctype.c:3263 locale/programs/ld-ctype.c:3288
229.570 -+#, c-format
229.571 -+msgid "%s: character `%s' not defined while needed as default value"
229.572 -+msgstr "%s: znak `%s' nie je definovaný a je potrebný ako implicitná hodnota"
229.573 -+
229.574 -+#: timezone/zic.c:1927
229.575 - #, c-format
229.576 - msgid "%s: command was '%s', result was %d\n"
229.577 - msgstr "%s: príkaz bol '%s', výsledok bol %d\n"
229.578 -
229.579 --#: locale/programs/charmap.c:677 locale/programs/locfile.c:1008
229.580 -+#: locale/programs/ld-time.c:225
229.581 -+#, c-format
229.582 -+msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'"
229.583 -+msgstr "%s: príznak smeru v re»azci %Zd poµa `era' nie je '+' ani '-'"
229.584 -+
229.585 -+#: locale/programs/ld-time.c:237
229.586 -+#, c-format
229.587 -+msgid "%s: direction flag in string %Zd in `era' field is not a single character"
229.588 -+msgstr "%s: príznak smeru v re»azci %Zd poµa `era' nie je jeden znak"
229.589 -+
229.590 -+#: locale/programs/ld-ctype.c:2727
229.591 -+#, c-format
229.592 -+msgid "%s: duplicate `default_missing' definition"
229.593 -+msgstr "%s: duplicitná definícia `default_missing'"
229.594 -+
229.595 -+#: locale/programs/ld-identification.c:423
229.596 -+#, c-format
229.597 -+msgid "%s: duplicate category version definition"
229.598 -+msgstr "%s: duplicitná definícia verzie kategórie"
229.599 -+
229.600 -+#: locale/programs/ld-collate.c:2711
229.601 -+#, c-format
229.602 -+msgid "%s: duplicate declaration of section `%s'"
229.603 -+msgstr "%s: duplicitná deklarácia sekcie `%s'"
229.604 -+
229.605 -+#: locale/programs/ld-collate.c:2675
229.606 -+#, c-format
229.607 -+msgid "%s: duplicate definition of `%s'"
229.608 -+msgstr "%s: duplicitná definícia `%s'"
229.609 -+
229.610 -+#: locale/programs/ld-collate.c:3691
229.611 -+#, c-format
229.612 -+msgid "%s: empty category description not allowed"
229.613 -+msgstr "%s: prázdny popis kategórie nie je povolený"
229.614 -+
229.615 -+#: locale/programs/ld-collate.c:755
229.616 -+#, c-format
229.617 -+msgid "%s: empty weight string not allowed"
229.618 -+msgstr "%s: prázdny re»azec váhy nie je povolený"
229.619 -+
229.620 -+#: locale/programs/charmap.c:831
229.621 - #, c-format
229.622 - msgid "%s: error in state machine"
229.623 - msgstr "%s: chyba v stavovom automate"
229.624 -
229.625 --#: posix/getopt.c:784
229.626 -+#: locale/programs/ld-ctype.c:2483
229.627 -+#, c-format
229.628 -+msgid "%s: field `%s' declared more than once"
229.629 -+msgstr "%s: pole `%s' deklarované viac ako raz"
229.630 -+
229.631 -+#: locale/programs/ld-ctype.c:1525 locale/programs/ld-ctype.c:1650
229.632 -+#: locale/programs/ld-ctype.c:1756 locale/programs/ld-ctype.c:2346
229.633 -+#: locale/programs/ld-ctype.c:3329
229.634 -+#, c-format
229.635 -+msgid "%s: field `%s' does not contain exactly ten entries"
229.636 -+msgstr "%s: pole `%s' neobsahuje presne desa» polo¾iek"
229.637 -+
229.638 -+#: locale/programs/ld-address.c:154 locale/programs/ld-address.c:205
229.639 -+#: locale/programs/ld-address.c:230 locale/programs/ld-address.c:259
229.640 -+#: locale/programs/ld-name.c:115 locale/programs/ld-telephone.c:117
229.641 -+#, c-format
229.642 -+msgid "%s: field `%s' must not be empty"
229.643 -+msgstr "%s: pole `%s' nesmie by» prázdne"
229.644 -+
229.645 -+#: locale/programs/ld-address.c:142 locale/programs/ld-address.c:197
229.646 -+#: locale/programs/ld-address.c:224 locale/programs/ld-address.c:284
229.647 -+#: locale/programs/ld-address.c:303 locale/programs/ld-address.c:315
229.648 -+#: locale/programs/ld-measurement.c:104 locale/programs/ld-monetary.c:244
229.649 -+#: locale/programs/ld-monetary.c:260 locale/programs/ld-name.c:104
229.650 -+#: locale/programs/ld-numeric.c:113 locale/programs/ld-numeric.c:127
229.651 -+#: locale/programs/ld-paper.c:101 locale/programs/ld-paper.c:109
229.652 -+#: locale/programs/ld-telephone.c:105
229.653 -+#, c-format
229.654 -+msgid "%s: field `%s' not defined"
229.655 -+msgstr "%s: pole `%s' nie je definované"
229.656 -+
229.657 -+#: locale/programs/ld-messages.c:115 locale/programs/ld-messages.c:148
229.658 -+#, c-format
229.659 -+msgid "%s: field `%s' undefined"
229.660 -+msgstr "%s: pole `%s' nedefinované"
229.661 -+
229.662 -+#: locale/programs/ld-time.c:258
229.663 -+#, c-format
229.664 -+msgid "%s: garbage at end of offset value in string %Zd in `era' field"
229.665 -+msgstr "%s: smetie za koncom hodnoty posunutia v re»azci %Zd poµa `era'"
229.666 -+
229.667 -+#: locale/programs/ld-time.c:318
229.668 -+#, c-format
229.669 -+msgid "%s: garbage at end of starting date in string %Zd in `era' field "
229.670 -+msgstr "%s: smetie za koncom poèiatoèného dátumu v re»azci %Zd poµa `era' "
229.671 -+
229.672 -+#: locale/programs/ld-time.c:395
229.673 -+#, c-format
229.674 -+msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
229.675 -+msgstr "%s: smetie za koncom koncového dátumu v re»azci %Zd poµa `era'"
229.676 -+
229.677 -+#: posix/getopt.c:795
229.678 - #, c-format
229.679 - msgid "%s: illegal option -- %c\n"
229.680 - msgstr "%s: neprípustná voµba -- %c\n"
229.681 -
229.682 --#: posix/getopt.c:787
229.683 -+#: locale/programs/ld-address.c:573 locale/programs/ld-collate.c:3717
229.684 -+#: locale/programs/ld-ctype.c:2844 locale/programs/ld-identification.c:437
229.685 -+#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:324
229.686 -+#: locale/programs/ld-monetary.c:932 locale/programs/ld-name.c:298
229.687 -+#: locale/programs/ld-numeric.c:368 locale/programs/ld-paper.c:231
229.688 -+#: locale/programs/ld-telephone.c:306 locale/programs/ld-time.c:1170
229.689 -+#, c-format
229.690 -+msgid "%s: incomplete `END' line"
229.691 -+msgstr "%s: nekompletný riadok `END'"
229.692 -+
229.693 -+#: locale/programs/ld-address.c:166
229.694 -+msgid "%s: invalid escape `%%%c' sequence in field `%s'"
229.695 -+msgstr "%s: neprípustná escape `%%%x' sekvencia v poli `%s'"
229.696 -+
229.697 -+#: locale/programs/ld-name.c:127 locale/programs/ld-telephone.c:126
229.698 -+#: locale/programs/ld-telephone.c:150
229.699 -+#, c-format
229.700 -+msgid "%s: invalid escape sequence in field `%s'"
229.701 -+msgstr "%s: chybná escape-sekvencia v poli `%s'"
229.702 -+
229.703 -+#: locale/programs/ld-time.c:250
229.704 -+#, c-format
229.705 -+msgid "%s: invalid number for offset in string %Zd in `era' field"
229.706 -+msgstr "%s: neprípustné èíslo pre posunutie v re»azci %Zd poµa `era'"
229.707 -+
229.708 -+#: locale/programs/ld-collate.c:3143
229.709 -+#, c-format
229.710 -+msgid "%s: invalid number of sorting rules"
229.711 -+msgstr "%s: chybný poèet pravidiel triedenia"
229.712 -+
229.713 -+#: posix/getopt.c:798
229.714 - #, c-format
229.715 - msgid "%s: invalid option -- %c\n"
229.716 - msgstr "%s: chybná voµba -- %c\n"
229.717 -
229.718 --#: posix/getopt.c:707
229.719 -+#: locale/programs/ld-time.c:309
229.720 -+#, c-format
229.721 -+msgid "%s: invalid starting date in string %Zd in `era' field"
229.722 -+msgstr "%s: neprípustný poèiatoèný dátum v re»azci %Zd poµa `era'"
229.723 -+
229.724 -+#: locale/programs/ld-time.c:386
229.725 -+#, c-format
229.726 -+msgid "%s: invalid stopping date in string %Zd in `era' field"
229.727 -+msgstr "%s: neprípustný koncový dátum v re»azci %d poµa `era'"
229.728 -+
229.729 -+#: locale/programs/ld-measurement.c:112
229.730 -+#, c-format
229.731 -+msgid "%s: invalid value for field `%s'"
229.732 -+msgstr "%s: neprípustná hodnota poµa `%s'"
229.733 -+
229.734 -+#: locale/programs/ld-address.c:242 locale/programs/ld-address.c:270
229.735 -+#, c-format
229.736 -+msgid "%s: language abbreviation `%s' not defined"
229.737 -+msgstr "%s: skratka jazyka `%s' nie je definovaná"
229.738 -+
229.739 -+#: locale/programs/ld-collate.c:3223 locale/programs/ld-collate.c:3346
229.740 -+#: locale/programs/ld-collate.c:3695
229.741 -+#, c-format
229.742 -+msgid "%s: missing `order_end' keyword"
229.743 -+msgstr "%s: chýbajúce kµúèové slovo `order_end'"
229.744 -+
229.745 -+#: locale/programs/ld-collate.c:3360 locale/programs/ld-collate.c:3707
229.746 -+#, c-format
229.747 -+msgid "%s: missing `reorder-end' keyword"
229.748 -+msgstr "%s: chýbajúce kµúèové slovo `reorder-end'"
229.749 -+
229.750 -+#: locale/programs/ld-collate.c:3710
229.751 -+#, c-format
229.752 -+msgid "%s: missing `reorder-sections-end' keyword"
229.753 -+msgstr "%s: chýbajúce kµúèové slovo `reorder-sections-end'"
229.754 -+
229.755 -+#: locale/programs/ld-time.c:435
229.756 -+#, c-format
229.757 -+msgid "%s: missing era format in string %Zd in `era' field"
229.758 -+msgstr "%s: chýba formát éry v re»azci %Zd v poli `era'"
229.759 -+
229.760 -+#: locale/programs/ld-time.c:423
229.761 -+#, c-format
229.762 -+msgid "%s: missing era name in string %Zd in `era' field"
229.763 -+msgstr "%s: chýba meno éry v re»azci %Zd v poli `era'"
229.764 -+
229.765 -+#: locale/programs/ld-collate.c:3119
229.766 -+#, c-format
229.767 -+msgid "%s: multiple order definitions for section `%s'"
229.768 -+msgstr "%s: viacnásobná definícia poradia pre sekciu `%s'"
229.769 -+
229.770 -+#: locale/programs/ld-collate.c:3169
229.771 -+#, c-format
229.772 -+msgid "%s: multiple order definitions for unnamed section"
229.773 -+msgstr "%s: viacnásobná definícia poradia pre sekciu bez mena"
229.774 -+
229.775 -+#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:170
229.776 -+#, c-format
229.777 -+msgid "%s: no correct regular expression for field `%s': %s"
229.778 -+msgstr "%s: pre pole `%s' neexistuje korektný regulérny výraz: %s"
229.779 -+
229.780 -+#: locale/programs/ld-identification.c:169
229.781 -+#, c-format
229.782 -+msgid "%s: no identification for category `%s'"
229.783 -+msgstr "%s: kategória `%s' nemá identifikáciu"
229.784 -+
229.785 -+#: locale/programs/ld-ctype.c:2753
229.786 -+#, c-format
229.787 -+msgid "%s: no representable `default_missing' definition found"
229.788 -+msgstr "%s: nenájdená zobraziteµná definícia `default_missing'"
229.789 -+
229.790 -+#: locale/programs/ld-collate.c:591
229.791 -+#, c-format
229.792 -+msgid "%s: not enough sorting rules"
229.793 -+msgstr "%s: nedostatoèný poèet pravidiel triedenia"
229.794 -+
229.795 -+#: locale/programs/ld-address.c:295
229.796 -+#, c-format
229.797 -+msgid "%s: numeric country code `%d' not valid"
229.798 -+msgstr "%s: èíselný kód krajiny `%d' nie je platný"
229.799 -+
229.800 -+#: posix/getopt.c:718
229.801 - #, c-format
229.802 - msgid "%s: option `%c%s' doesn't allow an argument\n"
229.803 - msgstr "%s: voµba `%c%s' nedovoµuje pou¾i» argument\n"
229.804 -
229.805 --#: posix/getopt.c:677
229.806 -+#: posix/getopt.c:688
229.807 - #, c-format
229.808 - msgid "%s: option `%s' is ambiguous\n"
229.809 - msgstr "%s: voµba `%s' nie je jednoznaèná\n"
229.810 -
229.811 --#: posix/getopt.c:725 posix/getopt.c:898
229.812 -+#: posix/getopt.c:736 posix/getopt.c:909
229.813 - #, c-format
229.814 - msgid "%s: option `%s' requires an argument\n"
229.815 - msgstr "%s: voµba `%s' vy¾aduje argument\n"
229.816 -
229.817 --#: posix/getopt.c:702
229.818 -+#: posix/getopt.c:713
229.819 - #, c-format
229.820 - msgid "%s: option `--%s' doesn't allow an argument\n"
229.821 - msgstr "%s: voµba `--%s' nedovoµuje pou¾i» argument\n"
229.822 -
229.823 --#: posix/getopt.c:882
229.824 -+#: posix/getopt.c:893
229.825 - #, c-format
229.826 - msgid "%s: option `-W %s' doesn't allow an argument\n"
229.827 - msgstr "%s: voµba `-W %s' nedovoµuje pou»i» argument\n"
229.828 -
229.829 --#: posix/getopt.c:864
229.830 -+#: posix/getopt.c:875
229.831 - #, c-format
229.832 - msgid "%s: option `-W %s' is ambiguous\n"
229.833 - msgstr "%s: voµba `-W %s' nie je jednoznaèná\n"
229.834 -
229.835 --#: posix/getopt.c:817 posix/getopt.c:947
229.836 -+#: posix/getopt.c:828 posix/getopt.c:958
229.837 - #, c-format
229.838 - msgid "%s: option requires an argument -- %c\n"
229.839 - msgstr "%s: voµba vy¾aduje argument -- %c\n"
229.840 -
229.841 --#: sunrpc/rpc_main.c:287
229.842 -+#: locale/programs/ld-collate.c:1314 locale/programs/ld-collate.c:3654
229.843 -+#, c-format
229.844 -+msgid "%s: order for `%.*s' already defined at %s:%Zu"
229.845 -+msgstr "%s: poradie pre `%.*s' je u¾ definované na %s:%Zu"
229.846 -+
229.847 -+#: locale/programs/ld-collate.c:3297
229.848 -+#, c-format
229.849 -+msgid "%s: order for collating element %.*s not yet defined"
229.850 -+msgstr "%s: poradie pre element triedenia `%.*s' e¹te nebolo definované"
229.851 -+
229.852 -+#: locale/programs/ld-collate.c:3281
229.853 -+#, c-format
229.854 -+msgid "%s: order for collating symbol %.*s not yet defined"
229.855 -+msgstr "%s: poradie pre symbol triedenia `%.*s' e¹te nebolo definované"
229.856 -+
229.857 -+#: sunrpc/rpc_main.c:289
229.858 - #, c-format
229.859 - msgid "%s: output would overwrite %s\n"
229.860 - msgstr "%s: výstup by prepísal %s\n"
229.861 -
229.862 --#: timezone/zic.c:848 timezone/zic.c:1262 timezone/zic.c:1287
229.863 -+#: timezone/zic.c:873 timezone/zic.c:1287 timezone/zic.c:1312
229.864 - #, c-format
229.865 - msgid "%s: panic: Invalid l_value %d\n"
229.866 - msgstr "%s: fatálna chyba: Neprípustná l_hodnota %d\n"
229.867 -
229.868 --#: locale/programs/charmap.c:684 locale/programs/repertoire.c:289
229.869 -+#: locale/programs/charmap.c:838 locale/programs/ld-address.c:592
229.870 -+#: locale/programs/ld-collate.c:2590 locale/programs/ld-collate.c:3735
229.871 -+#: locale/programs/ld-ctype.c:2107 locale/programs/ld-ctype.c:2864
229.872 -+#: locale/programs/ld-identification.c:456
229.873 -+#: locale/programs/ld-measurement.c:248 locale/programs/ld-messages.c:342
229.874 -+#: locale/programs/ld-monetary.c:950 locale/programs/ld-name.c:316
229.875 -+#: locale/programs/ld-numeric.c:386 locale/programs/ld-paper.c:249
229.876 -+#: locale/programs/ld-telephone.c:324 locale/programs/ld-time.c:1188
229.877 -+#: locale/programs/locfile.h:103 locale/programs/repertoire.c:325
229.878 - #, c-format
229.879 - msgid "%s: premature end of file"
229.880 - msgstr "%s: predèasný koniec súboru"
229.881 -
229.882 --#: sunrpc/rpc_main.c:294
229.883 -+#: locale/programs/ld-collate.c:3394 locale/programs/ld-collate.c:3580
229.884 -+#, c-format
229.885 -+msgid "%s: section `%.*s' not known"
229.886 -+msgstr "%s: neznáma sekcia `%.*s'"
229.887 -+
229.888 -+#: locale/programs/ld-time.c:337
229.889 -+#, c-format
229.890 -+msgid "%s: starting date is invalid in string %Zd in `era' field"
229.891 -+msgstr "%s: neprípustný poèiatoèný dátum v re»azci %Zd v poli `era'"
229.892 -+
229.893 -+#: locale/programs/ld-time.c:414
229.894 -+#, c-format
229.895 -+msgid "%s: stopping date is invalid in string %Zd in `era' field"
229.896 -+msgstr "%s: neprípustný koncový dátum v re»azci %d v poli `era'"
229.897 -+
229.898 -+#: locale/programs/ld-collate.c:1248
229.899 -+#, c-format
229.900 -+msgid "%s: symbolic range ellipsis must not be direct followed by `order_end'"
229.901 -+msgstr "%s: pokraèovanie symbolického rozsahu nesmie by» priamo nasledované `order_end'"
229.902 -+
229.903 -+#: locale/programs/ld-collate.c:1244
229.904 -+#, c-format
229.905 -+msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
229.906 -+msgstr "%s: pokraèovanie symbolického rozsahu nesmie priamo nasledo» `order_start'"
229.907 -+
229.908 -+#: locale/programs/ld-address.c:583 locale/programs/ld-collate.c:518
229.909 -+#: locale/programs/ld-collate.c:570 locale/programs/ld-collate.c:865
229.910 -+#: locale/programs/ld-collate.c:878 locale/programs/ld-collate.c:2581
229.911 -+#: locale/programs/ld-collate.c:3726 locale/programs/ld-ctype.c:1840
229.912 -+#: locale/programs/ld-ctype.c:2098 locale/programs/ld-ctype.c:2673
229.913 -+#: locale/programs/ld-ctype.c:2855 locale/programs/ld-identification.c:447
229.914 -+#: locale/programs/ld-measurement.c:239 locale/programs/ld-messages.c:333
229.915 -+#: locale/programs/ld-monetary.c:941 locale/programs/ld-name.c:307
229.916 -+#: locale/programs/ld-numeric.c:377 locale/programs/ld-paper.c:240
229.917 -+#: locale/programs/ld-telephone.c:315 locale/programs/ld-time.c:1179
229.918 -+#, c-format
229.919 -+msgid "%s: syntax error"
229.920 -+msgstr "%s: chyba syntaxe"
229.921 -+
229.922 -+#: locale/programs/ld-ctype.c:2178
229.923 -+#, c-format
229.924 -+msgid "%s: syntax error in definition of new character class"
229.925 -+msgstr "%s: chyba syntaxe v definícii novej triedy znakov"
229.926 -+
229.927 -+#: locale/programs/ld-ctype.c:2193
229.928 -+#, c-format
229.929 -+msgid "%s: syntax error in definition of new character map"
229.930 -+msgstr "%s: chyba syntaxe v definícii novej znakovej mapy"
229.931 -+
229.932 -+#: locale/programs/ld-ctype.c:3735
229.933 -+#, c-format
229.934 -+msgid "%s: table for class \"%s\": %lu bytes\n"
229.935 -+msgstr "%s: tabuµka triedy \"%s\": %lu bajtov\n"
229.936 -+
229.937 -+#: locale/programs/ld-ctype.c:3803
229.938 -+#, c-format
229.939 -+msgid "%s: table for map \"%s\": %lu bytes\n"
229.940 -+msgstr "%s: tabuµka mapy \"%s\": %lu bajtov\n"
229.941 -+
229.942 -+#: locale/programs/ld-ctype.c:3935
229.943 -+#, c-format
229.944 -+msgid "%s: table for width: %lu bytes\n"
229.945 -+msgstr "%s: tabuµka ¹írky: %lu bajtov\n"
229.946 -+
229.947 -+#: locale/programs/ld-address.c:216
229.948 -+#, c-format
229.949 -+msgid "%s: terminology language code `%s' not defined"
229.950 -+msgstr "%s: kód jazyka terminológie `%s' nie je definovaný"
229.951 -+
229.952 -+#: locale/programs/ld-collate.c:1054
229.953 -+#, c-format
229.954 -+msgid "%s: the start and the end symbol of a range must stand for characters"
229.955 -+msgstr "%s: poèiatoèný a koncový symbol rozsahu musia zastupova» znaky"
229.956 -+
229.957 -+#: locale/programs/ld-time.c:464
229.958 -+#, c-format
229.959 -+msgid "%s: third operand for value of field `%s' must not be larger than %d"
229.960 -+msgstr "%s: tretí operand hodnoty poµa `%s' nesmie by» väè¹í ako %d"
229.961 -+
229.962 -+#: locale/programs/ld-collate.c:555
229.963 -+#, c-format
229.964 -+msgid "%s: too many rules; first entry only had %d"
229.965 -+msgstr "%s: priveµa pravidiel; prvý záznam mal iba %d"
229.966 -+
229.967 -+#: locale/programs/ld-collate.c:906
229.968 -+#, c-format
229.969 -+msgid "%s: too many values"
229.970 -+msgstr "%s: priveµa hodnôt"
229.971 -+
229.972 -+#: locale/programs/ld-ctype.c:3639
229.973 -+#, c-format
229.974 -+msgid "%s: transliteration data from locale `%s' not available"
229.975 -+msgstr "%s: transliteraèné údaje prostredia `%s' nie sú dostupné"
229.976 -+
229.977 -+#: sunrpc/rpc_main.c:296
229.978 -+#, c-format
229.979 -+msgid "%s: unable to open %s: %m\n"
229.980 -+msgstr "%s: nie je mo¾né otvori» %s: %m\n"
229.981 -+
229.982 -+#: locale/programs/ld-collate.c:2849
229.983 -+#, c-format
229.984 -+msgid "%s: unknown character in collating symbol name"
229.985 -+msgstr "%s: neznámy znak v názve symbolu triedenia"
229.986 -+
229.987 -+#: locale/programs/ld-collate.c:2981
229.988 -+#, c-format
229.989 -+msgid "%s: unknown character in equivalent definition name"
229.990 -+msgstr "%s: neznámy znak v názve ekvivalentnej definície"
229.991 -+
229.992 -+#: locale/programs/ld-collate.c:2994
229.993 -+#, c-format
229.994 -+msgid "%s: unknown character in equivalent definition value"
229.995 -+msgstr "%s: neznámy znak v hodnote ekvivalentnej definície"
229.996 -+
229.997 -+#: locale/programs/ld-time.c:1040
229.998 -+#, c-format
229.999 -+msgid "%s: unknown character in field `%s'"
229.1000 -+msgstr "%s: neznámy znak v poli `%s'"
229.1001 -+
229.1002 -+#: locale/programs/ld-collate.c:3091
229.1003 -+#, c-format
229.1004 -+msgid "%s: unknown section name `%s'"
229.1005 -+msgstr "%s: neznámy názov sekcie `%s'"
229.1006 -+
229.1007 -+#: locale/programs/ld-collate.c:3004
229.1008 - #, c-format
229.1009 --msgid "%s: unable to open "
229.1010 --msgstr "%s: Nie je mo¾né otvori» "
229.1011 -+msgid "%s: unknown symbol `%s' in equivalent definition"
229.1012 -+msgstr "%s: neznámy symbol `%s' v ekvivalentnej definícii"
229.1013 -
229.1014 --#: posix/getopt.c:758
229.1015 -+#: posix/getopt.c:769
229.1016 - #, c-format
229.1017 - msgid "%s: unrecognized option `%c%s'\n"
229.1018 - msgstr "%s: nerozpoznaná voµba `%c%s'\n"
229.1019 -
229.1020 --#: posix/getopt.c:754
229.1021 -+#: posix/getopt.c:765
229.1022 - #, c-format
229.1023 - msgid "%s: unrecognized option `--%s'\n"
229.1024 - msgstr "%s: nerozpoznaná voµba `--%s'\n"
229.1025 -@@ -458,35 +947,75 @@
229.1026 - #: timezone/zic.c:443
229.1027 - #, c-format
229.1028 - msgid ""
229.1029 --"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n"
229.1030 --"\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
229.1031 -+"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
229.1032 -+"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
229.1033 - msgstr ""
229.1034 --"%s: Pou¾itie: %s [ -s ] [ -v ] [ -l lokálny_èas ] [ -p posix_pravidlá ]\n"
229.1035 -+"%s: Pou¾itie: %s [ -s ] [ -v ] [ -l lokálny_èas ] [ -p posix_pravidlá ] \\\n"
229.1036 - "\t[ -d adresár ] [ -L priestupné_sekundy ] [ -y typ_roku ] [ súbor ... ]\n"
229.1037 -
229.1038 --#: timezone/zdump.c:174
229.1039 -+#: timezone/zdump.c:175
229.1040 - #, c-format
229.1041 - msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"
229.1042 - msgstr "%s: Pou¾itie: %s [ -v ] [ -c limit ] meno_zóny ...\n"
229.1043 -
229.1044 --#: sunrpc/rpc_main.c:307
229.1045 -+#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:154
229.1046 -+#, c-format
229.1047 -+msgid "%s: value for field `%s' must not be an empty string"
229.1048 -+msgstr "%s: hodnota poµa `%s' nesmie by» prázdny re»azec"
229.1049 -+
229.1050 -+#: locale/programs/ld-monetary.c:250 locale/programs/ld-numeric.c:119
229.1051 -+#, c-format
229.1052 -+msgid "%s: value for field `%s' must not be the empty string"
229.1053 -+msgstr "%s: hodnota poµa `%s' nesmie by» prázdny re»azec"
229.1054 -+
229.1055 -+#: locale/programs/ld-monetary.c:232
229.1056 -+#, c-format
229.1057 -+msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217"
229.1058 -+msgstr "%s: hodnota poµa `int_curr_symbol' nezodpovedá platnému názvu v ISO 4217"
229.1059 -+
229.1060 -+#: locale/programs/ld-monetary.c:224
229.1061 -+#, c-format
229.1062 -+msgid "%s: value of field `int_curr_symbol' has wrong length"
229.1063 -+msgstr "%s: hodnota poµa `int_curr_symbol' má chybnú då¾ku"
229.1064 -+
229.1065 -+#: locale/programs/ld-monetary.c:857 locale/programs/ld-numeric.c:334
229.1066 -+#, c-format
229.1067 -+msgid "%s: values for field `%s' must be smaller than 127"
229.1068 -+msgstr "%s: hodnoty poµa `%s' musia by» men¹ie ako 127"
229.1069 -+
229.1070 -+#: locale/programs/ld-time.c:488
229.1071 -+#, c-format
229.1072 -+msgid "%s: values for field `%s' must not be larger than %d"
229.1073 -+msgstr "%s: hodnoty poµa `%s' nesmú by» väè¹ie ako %d"
229.1074 -+
229.1075 -+#: locale/programs/ld-time.c:472 locale/programs/ld-time.c:480
229.1076 -+#, c-format
229.1077 -+msgid "%s: values of field `%s' must not be larger than %d"
229.1078 -+msgstr "%s: hodnoty poµa `%s' nesmú by» väè¹ie ako %d"
229.1079 -+
229.1080 -+#: locale/programs/ld-collate.c:850
229.1081 - #, c-format
229.1082 --msgid "%s: while writing output: "
229.1083 --msgstr "%s: poèas zápisu výstupu: "
229.1084 -+msgid "%s: weights must use the same ellipsis symbol as the name"
229.1085 -+msgstr "%s: váhy musia ako názov pou¾i» rovnaký symbol pokraèovania"
229.1086 -
229.1087 --#: argp/argp-parse.c:164
229.1088 -+#: sunrpc/rpc_main.c:308
229.1089 -+#, c-format
229.1090 -+msgid "%s: while writing output %s: %m"
229.1091 -+msgstr "%s: poèas zápisu výstupu %s: %m"
229.1092 -+
229.1093 -+#: argp/argp-parse.c:170
229.1094 - msgid "(PROGRAM ERROR) No version known!?"
229.1095 - msgstr "(CHYBA PROGRAMU) Verzia neznáma!?"
229.1096 -
229.1097 --#: argp/argp-parse.c:781
229.1098 -+#: argp/argp-parse.c:787
229.1099 - msgid "(PROGRAM ERROR) Option should have been recognized!?"
229.1100 - msgstr "(CHYBA PROGRAMU) Voµba by mala by» rozpoznaná!?"
229.1101 -
229.1102 --#: nis/nis_print.c:129
229.1103 -+#: nis/nis_print.c:130
229.1104 - msgid "(Unknown object)\n"
229.1105 - msgstr "(Neznámy objekt)\n"
229.1106 -
229.1107 --#: sunrpc/clnt_perr.c:124
229.1108 -+#: sunrpc/clnt_perr.c:125
229.1109 - #, c-format
229.1110 - msgid "(unknown authentication error - %d)"
229.1111 - msgstr "(neznáma chyba pri overovaní toto¾nosti - %d)"
229.1112 -@@ -495,16 +1024,16 @@
229.1113 - msgid "(unknown)"
229.1114 - msgstr "(neznámy)"
229.1115 -
229.1116 --#: elf/sprof.c:574
229.1117 -+#: elf/sprof.c:570
229.1118 - #, c-format
229.1119 - msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
229.1120 - msgstr "*** Zo súboru `%s' boli odstránené ladiace informácie: podrobná analýza nie je mo¾ná\n"
229.1121 -
229.1122 --#: catgets/gencat.c:266
229.1123 -+#: catgets/gencat.c:282
229.1124 - msgid "*standard input*"
229.1125 - msgstr "*¹tandardný vstup*"
229.1126 -
229.1127 --#: catgets/gencat.c:120
229.1128 -+#: catgets/gencat.c:125
229.1129 - msgid ""
229.1130 - "-o OUTPUT-FILE [INPUT-FILE]...\n"
229.1131 - "[OUTPUT-FILE [INPUT-FILE]...]"
229.1132 -@@ -512,30 +1041,36 @@
229.1133 - "-o VÝSTUPNÝ_SÚBOR [VSTUPNÝ_SÚBOR]...\n"
229.1134 - "[ VÝSTUPNÝ_SÚBOR [VSTUPNÝ_SÚBOR]...]"
229.1135 -
229.1136 --#: stdio-common/../sysdeps/gnu/errlist.c:778
229.1137 -+#: stdio-common/../sysdeps/gnu/errlist.c:797
229.1138 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:115
229.1139 - msgid ".lib section in a.out corrupted"
229.1140 - msgstr "Po¹kodená sekcia .lib v a.out"
229.1141 -
229.1142 --#: sunrpc/clnt_perr.c:110 sunrpc/clnt_perr.c:131
229.1143 -+#: sunrpc/clnt_perr.c:111 sunrpc/clnt_perr.c:132
229.1144 - #, c-format
229.1145 - msgid "; low version = %lu, high version = %lu"
229.1146 - msgstr "; ni¾¹ia verzia = %lu, vy¹¹ia verzia = %lu"
229.1147 -
229.1148 --#: sunrpc/clnt_perr.c:117
229.1149 -+#: sunrpc/clnt_perr.c:118
229.1150 - msgid "; why = "
229.1151 - msgstr "; dôvod = "
229.1152 -
229.1153 --#: locale/programs/charset.c:98
229.1154 -+#: locale/programs/charmap.c:999
229.1155 - #, c-format
229.1156 - msgid "<%s> and <%s> are illegal names for range"
229.1157 - msgstr "<%s> and <%s> sú neprípustné názvy pre rozsah"
229.1158 -
229.1159 --#: locale/programs/ld-ctype.c:342
229.1160 -+#: locale/programs/repertoire.c:448
229.1161 -+#, c-format
229.1162 -+msgid "<%s> and <%s> are invalid names for range"
229.1163 -+msgstr "<%s> a <%s> sú neprípustné názvy pre rozsah"
229.1164 -+
229.1165 -+#: locale/programs/ld-ctype.c:565 locale/programs/ld-ctype.c:600
229.1166 - #, c-format
229.1167 - msgid "<SP> character must not be in class `%s'"
229.1168 - msgstr "<SP> znak nesmie by» v triede `%s'"
229.1169 -
229.1170 --#: locale/programs/ld-ctype.c:330
229.1171 -+#: locale/programs/ld-ctype.c:553 locale/programs/ld-ctype.c:589
229.1172 - #, c-format
229.1173 - msgid "<SP> character not in class `%s'"
229.1174 - msgstr "<SP> znak nie je v triede `%s'"
229.1175 -@@ -543,102 +1078,149 @@
229.1176 - #. TRANS The experienced user will know what is wrong.
229.1177 - #. TRANS @c This error code is a joke. Its perror text is part of the joke.
229.1178 - #. TRANS @c Don't change it.
229.1179 --#: stdio-common/../sysdeps/gnu/errlist.c:603
229.1180 -+#: stdio-common/../sysdeps/gnu/errlist.c:622
229.1181 - msgid "?"
229.1182 - msgstr "?"
229.1183 -
229.1184 --#: sysdeps/unix/sysv/linux/siglist.h:27
229.1185 -+#: sysdeps/generic/siglist.h:34
229.1186 - msgid "Aborted"
229.1187 - msgstr "Zru¹ené"
229.1188 -
229.1189 --#: nis/nis_print.c:318
229.1190 -+#: nis/nis_print.c:321
229.1191 - msgid "Access Rights : "
229.1192 - msgstr "Prístupové práva : "
229.1193 -
229.1194 --#: stdio-common/../sysdeps/gnu/errlist.c:774
229.1195 -+#: stdio-common/../sysdeps/gnu/errlist.c:793
229.1196 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:114
229.1197 - msgid "Accessing a corrupted shared library"
229.1198 - msgstr "Prístup k po¹kodenej zdieµanej kni¾nici"
229.1199 -
229.1200 - #. TRANS The requested socket address is already in use. @xref{Socket Addresses}.
229.1201 --#: stdio-common/../sysdeps/gnu/errlist.c:366
229.1202 -+#: stdio-common/../sysdeps/gnu/errlist.c:367
229.1203 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:155
229.1204 - msgid "Address already in use"
229.1205 - msgstr "Adresa je pou¾ívaná"
229.1206 -
229.1207 --#: posix/../sysdeps/posix/gai_strerror.c:30
229.1208 -+#: posix/../sysdeps/posix/gai_strerror.c:31
229.1209 - msgid "Address family for hostname not supported"
229.1210 - msgstr "Trieda adries nie je podporovaná poèítaèom"
229.1211 -
229.1212 - #. TRANS The address family specified for a socket is not supported; it is
229.1213 - #. TRANS inconsistent with the protocol being used on the socket. @xref{Sockets}.
229.1214 --#: stdio-common/../sysdeps/gnu/errlist.c:361
229.1215 -+#: stdio-common/../sysdeps/gnu/errlist.c:362
229.1216 - msgid "Address family not supported by protocol"
229.1217 - msgstr "Trieda adries nie je podporovaná protokolom"
229.1218 -
229.1219 --#: stdio-common/../sysdeps/gnu/errlist.c:742
229.1220 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:154
229.1221 -+msgid "Address family not supported by protocol family"
229.1222 -+msgstr "Trieda adries nie je podporovaná rodinou protokolov"
229.1223 -+
229.1224 -+#: stdio-common/../sysdeps/gnu/errlist.c:761
229.1225 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:98
229.1226 - msgid "Advertise error"
229.1227 - msgstr "Chyba pri zverejnení"
229.1228 -
229.1229 --#: stdio-common/../sysdeps/unix/siglist.c:39
229.1230 --#: sysdeps/unix/sysv/linux/siglist.h:33
229.1231 -+#: stdio-common/../sysdeps/unix/siglist.c:40 sysdeps/generic/siglist.h:40
229.1232 - msgid "Alarm clock"
229.1233 - msgstr "Budík"
229.1234 -
229.1235 -+#: malloc/memusagestat.c:57
229.1236 -+msgid "Also draw graph for total memory consumption"
229.1237 -+msgstr "Vykreslí aj graf celkovej spotreby pamäti"
229.1238 -+
229.1239 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:83
229.1240 -+msgid "Anode table overflow"
229.1241 -+msgstr "Preteèenie tabuµky anode"
229.1242 -+
229.1243 -+#: intl/tst-gettext2.c:37
229.1244 -+msgid "Another string for testing."
229.1245 -+msgstr "Iný re»azec pre testovanie."
229.1246 -+
229.1247 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:37
229.1248 -+msgid "Arg list too long"
229.1249 -+msgstr "Príli¹ dlhý zoznam argumentov"
229.1250 -+
229.1251 - #. TRANS Argument list too long; used when the arguments passed to a new program
229.1252 - #. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
229.1253 - #. TRANS File}) occupy too much memory space. This condition never arises in the
229.1254 - #. TRANS GNU system.
229.1255 --#: stdio-common/../sysdeps/gnu/errlist.c:69
229.1256 -+#: stdio-common/../sysdeps/gnu/errlist.c:70
229.1257 - msgid "Argument list too long"
229.1258 - msgstr "Príli¹ dlhý zoznam argumentov"
229.1259 -
229.1260 --#: nis/nis_error.c:65
229.1261 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:63
229.1262 -+msgid "Argument out of domain"
229.1263 -+msgstr "Argument mimo domény"
229.1264 -+
229.1265 -+#: nis/nis_error.c:66
229.1266 - msgid "Attempt to remove a non-empty table"
229.1267 - msgstr "Pokus o odstránenie neprázdnej tabuµky"
229.1268 -
229.1269 --#: stdio-common/../sysdeps/gnu/errlist.c:782
229.1270 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:116
229.1271 -+msgid "Attempting to link in more shared libraries than system limit"
229.1272 -+msgstr "Pokus o pou¾itie viac zdieµaných kni¾níc, ako je systémový limit"
229.1273 -+
229.1274 -+#: stdio-common/../sysdeps/gnu/errlist.c:801
229.1275 - msgid "Attempting to link in too many shared libraries"
229.1276 - msgstr "Pokus o pou¾itie priveµa zdieµaných kni¾níc"
229.1277 -
229.1278 --#: sunrpc/clnt_perr.c:273
229.1279 -+#: sunrpc/clnt_perr.c:329
229.1280 - msgid "Authentication OK"
229.1281 - msgstr "Overenie práv úspe¹né"
229.1282 -
229.1283 - #. TRANS ???
229.1284 --#: stdio-common/../sysdeps/gnu/errlist.c:561
229.1285 -+#: stdio-common/../sysdeps/gnu/errlist.c:562
229.1286 - msgid "Authentication error"
229.1287 - msgstr "Overenie práv neúspe¹né"
229.1288 -
229.1289 --#: nis/nis_print.c:105
229.1290 -+#: nis/nis_print.c:106
229.1291 - msgid "BOGUS OBJECT\n"
229.1292 - msgstr "POCHYBNÝ OBJEKT\n"
229.1293 -
229.1294 - #. TRANS Bad address; an invalid pointer was detected.
229.1295 - #. TRANS In the GNU system, this error never happens; you get a signal instead.
229.1296 --#: stdio-common/../sysdeps/gnu/errlist.c:114
229.1297 -+#: stdio-common/../sysdeps/gnu/errlist.c:115
229.1298 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:44
229.1299 - msgid "Bad address"
229.1300 - msgstr "Chybná adresa"
229.1301 -
229.1302 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:80
229.1303 -+msgid "Bad exchange descriptor"
229.1304 -+msgstr "Chybný exchange deskriptor"
229.1305 -+
229.1306 - #. TRANS Bad file descriptor; for example, I/O on a descriptor that has been
229.1307 - #. TRANS closed or reading from a descriptor open only for writing (or vice
229.1308 - #. TRANS versa).
229.1309 --#: stdio-common/../sysdeps/gnu/errlist.c:82
229.1310 -+#: stdio-common/../sysdeps/gnu/errlist.c:83
229.1311 - msgid "Bad file descriptor"
229.1312 - msgstr "Chybný deskriptor súboru"
229.1313 -
229.1314 --#: stdio-common/../sysdeps/gnu/errlist.c:730
229.1315 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:39
229.1316 -+msgid "Bad file number"
229.1317 -+msgstr "Chybné èíslo súboru"
229.1318 -+
229.1319 -+#: stdio-common/../sysdeps/gnu/errlist.c:749
229.1320 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:87
229.1321 - msgid "Bad font file format"
229.1322 - msgstr "Chybný formát súboru rezov písma"
229.1323 -
229.1324 --#: stdio-common/../sysdeps/gnu/errlist.c:622
229.1325 -+#: stdio-common/../sysdeps/gnu/errlist.c:641
229.1326 - msgid "Bad message"
229.1327 - msgstr "Chybná správa"
229.1328 -
229.1329 --#: stdio-common/../sysdeps/unix/siglist.c:37
229.1330 --#: sysdeps/unix/sysv/linux/siglist.h:56
229.1331 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:84
229.1332 -+msgid "Bad request code"
229.1333 -+msgstr "Neprípustný kód ¾iadosti"
229.1334 -+
229.1335 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:81
229.1336 -+msgid "Bad request descriptor"
229.1337 -+msgstr "Neprípustný deskriptor ¾iadosti"
229.1338 -+
229.1339 -+#: stdio-common/../sysdeps/unix/siglist.c:38 sysdeps/generic/siglist.h:63
229.1340 - msgid "Bad system call"
229.1341 - msgstr "Chybné volanie systému"
229.1342 -
229.1343 --#: posix/../sysdeps/posix/gai_strerror.c:32
229.1344 -+#: posix/../sysdeps/posix/gai_strerror.c:33
229.1345 - msgid "Bad value for ai_flags"
229.1346 - msgstr "Chybná hodnota ai_flags"
229.1347 -
229.1348 -@@ -646,18 +1228,19 @@
229.1349 - msgid "Be strictly POSIX conform"
229.1350 - msgstr "Presný súlad s POSIX"
229.1351 -
229.1352 --#: nis/nis_print.c:301
229.1353 -+#: nis/nis_print.c:302
229.1354 - msgid "Binary data\n"
229.1355 - msgstr "Binárne údaje\n"
229.1356 -
229.1357 - #. TRANS A file that isn't a block special file was given in a situation that
229.1358 - #. TRANS requires one. For example, trying to mount an ordinary file as a file
229.1359 - #. TRANS system in Unix gives this error.
229.1360 --#: stdio-common/../sysdeps/gnu/errlist.c:121
229.1361 -+#: stdio-common/../sysdeps/gnu/errlist.c:122
229.1362 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:45
229.1363 - msgid "Block device required"
229.1364 - msgstr "Vy¾adované blokové zariadenie"
229.1365 -
229.1366 --#: sunrpc/pmap_rmt.c:347
229.1367 -+#: sunrpc/pmap_rmt.c:348
229.1368 - msgid "Broadcast poll problem"
229.1369 - msgstr "Problém pri volaní poll pre v¹eobecné vysielanie"
229.1370 -
229.1371 -@@ -666,135 +1249,223 @@
229.1372 - #. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
229.1373 - #. TRANS or blocked. Thus, your program will never actually see @code{EPIPE}
229.1374 - #. TRANS unless it has handled or blocked @code{SIGPIPE}.
229.1375 --#: stdio-common/../sysdeps/gnu/errlist.c:234
229.1376 --#: stdio-common/../sysdeps/unix/siglist.c:38
229.1377 --#: sysdeps/unix/sysv/linux/siglist.h:32
229.1378 -+#: stdio-common/../sysdeps/gnu/errlist.c:235
229.1379 -+#: stdio-common/../sysdeps/unix/siglist.c:39
229.1380 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:62
229.1381 -+#: sysdeps/generic/siglist.h:39
229.1382 - msgid "Broken pipe"
229.1383 - msgstr "Preru¹ená rúra"
229.1384 -
229.1385 --#: stdio-common/../sysdeps/unix/siglist.c:35
229.1386 --#: sysdeps/unix/sysv/linux/siglist.h:30
229.1387 -+#: stdio-common/../sysdeps/unix/siglist.c:36 sysdeps/generic/siglist.h:37
229.1388 - msgid "Bus error"
229.1389 - msgstr "Chyba na zbernici"
229.1390 -
229.1391 --#: nis/nis_print.c:45
229.1392 -+#: nis/nis_print.c:46
229.1393 - msgid "CDS"
229.1394 - msgstr "CDS"
229.1395 -
229.1396 --#: stdio-common/../sysdeps/unix/siglist.c:49
229.1397 --#: sysdeps/unix/sysv/linux/siglist.h:43
229.1398 -+#: stdio-common/../sysdeps/unix/siglist.c:50 sysdeps/generic/siglist.h:50
229.1399 - msgid "CPU time limit exceeded"
229.1400 - msgstr "Prekroèený èasový limit pre procesor"
229.1401 -
229.1402 --#: nis/nis_error.c:32
229.1403 -+#: nis/nis_error.c:33
229.1404 - msgid "Cache expired"
229.1405 - msgstr "®ivotnos» cache vypr¹ala"
229.1406 -
229.1407 --#: stdio-common/../sysdeps/gnu/errlist.c:770
229.1408 -+#: stdio-common/../sysdeps/gnu/errlist.c:789
229.1409 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:113
229.1410 - msgid "Can not access a needed shared library"
229.1411 - msgstr "Prístup k potrebnej zdieµanej kni¾nici nie je mo¾ný"
229.1412 -
229.1413 --#: nis/ypclnt.c:769
229.1414 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:117
229.1415 -+msgid "Can not exec a shared library directly"
229.1416 -+msgstr "Nie je mo¾né priamo spusti» zdieµanú kni¾nicu"
229.1417 -+
229.1418 -+#: nis/ypclnt.c:792
229.1419 - msgid "Can't bind to server which serves this domain"
229.1420 - msgstr "Pripojenie k serveru obsluhujúcemu túto doménu nie je mo¾né"
229.1421 -
229.1422 --#: nis/ypclnt.c:781
229.1423 -+#: elf/ldconfig.c:934
229.1424 -+msgid "Can't chdir to /"
229.1425 -+msgstr "Nie je mo¾né zmeni» adresár na /"
229.1426 -+
229.1427 -+#: nis/ypclnt.c:804
229.1428 - msgid "Can't communicate with portmapper"
229.1429 - msgstr "Komunikácia s portmapperom nie je mo¾ná"
229.1430 -
229.1431 --#: nis/ypclnt.c:783
229.1432 -+#: nis/ypclnt.c:806
229.1433 - msgid "Can't communicate with ypbind"
229.1434 - msgstr "Komunikácia s ypbind nie je mo¾ná"
229.1435 -
229.1436 --#: nis/ypclnt.c:785
229.1437 -+#: nis/ypclnt.c:808
229.1438 - msgid "Can't communicate with ypserv"
229.1439 - msgstr "Komunikácia s ypserv nie je mo¾ná"
229.1440 -
229.1441 -+#: elf/cache.c:359
229.1442 -+#, c-format
229.1443 -+msgid "Can't create temporary cache file %s"
229.1444 -+msgstr "Nie je mo¾né vytvori» doèasný cache súbor %s"
229.1445 -+
229.1446 -+#: elf/ldconfig.c:502
229.1447 -+#, c-format
229.1448 -+msgid "Can't find %s"
229.1449 -+msgstr "Nie je mo¾né nájs» %s"
229.1450 -+
229.1451 -+#: elf/ldconfig.c:440
229.1452 -+#, c-format
229.1453 -+msgid "Can't link %s to %s"
229.1454 -+msgstr "Nie je mo¾né vytvori» odkaz %s na %s"
229.1455 -+
229.1456 -+#: elf/ldconfig.c:518 elf/ldconfig.c:672
229.1457 -+#, c-format
229.1458 -+msgid "Can't lstat %s"
229.1459 -+msgstr "Zlyhal lstat %s"
229.1460 -+
229.1461 -+#: elf/cache.c:108 elf/ldconfig.c:955
229.1462 -+#, c-format
229.1463 -+msgid "Can't open cache file %s\n"
229.1464 -+msgstr "Nie je mo¾né otvori» cache súbor %s\n"
229.1465 -+
229.1466 -+#: elf/ldconfig.c:976
229.1467 -+#, c-format
229.1468 -+msgid "Can't open cache file directory %s\n"
229.1469 -+msgstr "Nie je mo¾né otvori» adresár cache súboru %s\n"
229.1470 -+
229.1471 -+#: elf/ldconfig.c:865
229.1472 -+#, c-format
229.1473 -+msgid "Can't open configuration file %s"
229.1474 -+msgstr "Nie je mo¾né otvori» konfiguraèný súbor %s"
229.1475 -+
229.1476 -+#: elf/ldconfig.c:621
229.1477 -+#, c-format
229.1478 -+msgid "Can't open directory %s"
229.1479 -+msgstr "Nie je mo¾né otvori» adresár %s"
229.1480 -+
229.1481 -+#: elf/cache.c:353
229.1482 -+#, c-format
229.1483 -+msgid "Can't remove old temporary cache file %s"
229.1484 -+msgstr "Nie je mo¾né zmaza» doèasný cache súbor %s"
229.1485 -+
229.1486 -+#: elf/ldconfig.c:405
229.1487 -+#, c-format
229.1488 -+msgid "Can't stat %s\n"
229.1489 -+msgstr "Zlyhal stat %s\n"
229.1490 -+
229.1491 -+#: elf/ldconfig.c:434
229.1492 -+#, c-format
229.1493 -+msgid "Can't unlink %s"
229.1494 -+msgstr "Nie je mo¾né odstráni» %s"
229.1495 -+
229.1496 - #. TRANS No memory available. The system cannot allocate more virtual memory
229.1497 - #. TRANS because its capacity is full.
229.1498 --#: stdio-common/../sysdeps/gnu/errlist.c:103
229.1499 -+#: stdio-common/../sysdeps/gnu/errlist.c:104
229.1500 - msgid "Cannot allocate memory"
229.1501 - msgstr "Nie je mo¾né prideli» pamä»"
229.1502 -
229.1503 - #. TRANS The requested socket address is not available; for example, you tried
229.1504 - #. TRANS to give a socket a name that doesn't match the local host name.
229.1505 - #. TRANS @xref{Socket Addresses}.
229.1506 --#: stdio-common/../sysdeps/gnu/errlist.c:373
229.1507 -+#: stdio-common/../sysdeps/gnu/errlist.c:374
229.1508 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:156
229.1509 - msgid "Cannot assign requested address"
229.1510 - msgstr "Priradenie po¾adovanej adresy nie je mo¾né"
229.1511 -
229.1512 --#: sunrpc/pmap_rmt.c:264
229.1513 -+#: sunrpc/pmap_rmt.c:265
229.1514 - msgid "Cannot create socket for broadcast rpc"
229.1515 - msgstr "Nie je mo¾né vytvori» zásuvku pre broadcast rpc"
229.1516 -
229.1517 --#: stdio-common/../sysdeps/gnu/errlist.c:786
229.1518 -+#: stdio-common/../sysdeps/gnu/errlist.c:805
229.1519 - msgid "Cannot exec a shared library directly"
229.1520 - msgstr "Nie je mo¾né priamo spusti» zdieµanú kni¾nicu"
229.1521 -
229.1522 --#: sunrpc/rpc_main.c:1406
229.1523 -+#: elf/readlib.c:98
229.1524 -+#, c-format
229.1525 -+msgid "Cannot fstat file %s.\n"
229.1526 -+msgstr "Nie je mo¾né vykona» fstat() súboru %s.\n"
229.1527 -+
229.1528 -+#: sunrpc/rpc_main.c:1415
229.1529 - msgid "Cannot have more than one file generation flag!\n"
229.1530 - msgstr "Nie je mo¾né pou¾i» viac ako jeden príznak tvorby súboru!\n"
229.1531 -
229.1532 --#: sunrpc/pmap_rmt.c:360
229.1533 -+#: elf/readlib.c:117
229.1534 -+#, c-format
229.1535 -+msgid "Cannot mmap file %s.\n"
229.1536 -+msgstr "Nie je mo¾né mmap-ova» súbor %s.\n"
229.1537 -+
229.1538 -+#: sunrpc/pmap_rmt.c:361
229.1539 - msgid "Cannot receive reply to broadcast"
229.1540 - msgstr "Nie je mo¾né prija» odpoveï na broadcast"
229.1541 -
229.1542 --#: sunrpc/pmap_clnt.c:74
229.1543 -+#: sunrpc/pmap_clnt.c:136
229.1544 - msgid "Cannot register service"
229.1545 - msgstr "Nie je mo¾né zaregistrova» slu¾bu"
229.1546 -
229.1547 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:173
229.1548 -+msgid "Cannot send after socket shutdown"
229.1549 -+msgstr "Nie je mo¾né vysiela» po ukonèení èinnosti komunikaèného bodu"
229.1550 -+
229.1551 - #. TRANS The socket has already been shut down.
229.1552 --#: stdio-common/../sysdeps/gnu/errlist.c:434
229.1553 -+#: stdio-common/../sysdeps/gnu/errlist.c:435
229.1554 - msgid "Cannot send after transport endpoint shutdown"
229.1555 - msgstr "Nie je mo¾né vysiela» po ukonèení èinnosti komunikaèného bodu"
229.1556 -
229.1557 --#: sunrpc/pmap_rmt.c:322
229.1558 -+#: sunrpc/pmap_rmt.c:323
229.1559 - msgid "Cannot send broadcast packet"
229.1560 - msgstr "Nie je mo¾né vysla» broadcast balík"
229.1561 -
229.1562 --#: sunrpc/pmap_rmt.c:271
229.1563 -+#: sunrpc/pmap_rmt.c:272
229.1564 - msgid "Cannot set socket option SO_BROADCAST"
229.1565 - msgstr "Nie je mo¾né nastavi» pre socket voµbu SO_BROADCAST"
229.1566 -
229.1567 --#: sunrpc/rpc_main.c:1193
229.1568 -+#: sunrpc/rpc_main.c:1195
229.1569 - msgid "Cannot specify more than one input file!\n"
229.1570 - msgstr "Nie je mo¾né zada» viac ako jeden vstupný súbor!\n"
229.1571 -
229.1572 --#: sunrpc/rpc_main.c:1363
229.1573 -+#: sunrpc/rpc_main.c:1372
229.1574 - msgid "Cannot use netid flag with inetd flag!\n"
229.1575 - msgstr "Príznaky netid a inetd nie je mo¾né pou¾i» súèasne!\n"
229.1576 -
229.1577 --#: sunrpc/rpc_main.c:1375
229.1578 -+#: sunrpc/rpc_main.c:1384
229.1579 - msgid "Cannot use netid flag without TIRPC!\n"
229.1580 - msgstr "Nie je mo¾né pou¾i» príznak netid bez TIRPC!\n"
229.1581 -
229.1582 --#: sunrpc/rpc_main.c:1382
229.1583 -+#: sunrpc/rpc_main.c:1391
229.1584 - msgid "Cannot use table flags with newstyle!\n"
229.1585 - msgstr "Pri pou¾ití nového ¹týlu nie je mo¾né pou¾i» príznaky tabuµky!\n"
229.1586 -
229.1587 --#: stdio-common/../sysdeps/gnu/errlist.c:670
229.1588 -+#: elf/ldconfig.c:131
229.1589 -+msgid "Change to and use ROOT as root directory"
229.1590 -+msgstr "Zmeni» adresár na ROOT a pou¾i» ho ako koreòový adresár"
229.1591 -+
229.1592 -+#: elf/cache.c:390
229.1593 -+#, c-format
229.1594 -+msgid "Changing access rights of %s to 0644 failed"
229.1595 -+msgstr "Zmena prístupových práv %s na 0644 zlyhala"
229.1596 -+
229.1597 -+#: stdio-common/../sysdeps/gnu/errlist.c:689
229.1598 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:67
229.1599 - msgid "Channel number out of range"
229.1600 - msgstr "Èíslo kanálu mimo povoleného rozsahu"
229.1601 -
229.1602 --#: nis/nis_print.c:264
229.1603 -+#: nis/nis_print.c:265
229.1604 - #, c-format
229.1605 - msgid "Character Separator : %c\n"
229.1606 - msgstr "Oddeµovaè znakov : %c\n"
229.1607 -
229.1608 --#: stdio-common/../sysdeps/unix/siglist.c:45
229.1609 --#: sysdeps/unix/sysv/linux/siglist.h:39
229.1610 -+#: stdio-common/../sysdeps/unix/siglist.c:46 sysdeps/generic/siglist.h:46
229.1611 - msgid "Child exited"
229.1612 - msgstr "Detský proces skonèil"
229.1613 -
229.1614 --#: sunrpc/clnt_perr.c:283
229.1615 -+#: sunrpc/clnt_perr.c:348
229.1616 - msgid "Client credential too weak"
229.1617 - msgstr "Oprávnenia klienta sú nepostaèujúce"
229.1618 -
229.1619 --#: nis/nis_print.c:266
229.1620 -+#: nis/nis_print.c:267
229.1621 - msgid "Columns :\n"
229.1622 - msgstr "Ståpce :\n"
229.1623 -
229.1624 --#: stdio-common/../sysdeps/gnu/errlist.c:750
229.1625 -+#: stdio-common/../sysdeps/gnu/errlist.c:769
229.1626 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:100
229.1627 - msgid "Communication error on send"
229.1628 - msgstr "Chyba komunikácie pri vysielaní"
229.1629 -
229.1630 -@@ -803,54 +1474,48 @@
229.1631 - msgstr "Kompilácia ¹pecifikácie národného prostredia"
229.1632 -
229.1633 - #. TRANS Go home and have a glass of warm, dairy-fresh milk.
229.1634 --#: stdio-common/../sysdeps/gnu/errlist.c:613
229.1635 -+#: stdio-common/../sysdeps/gnu/errlist.c:632
229.1636 - msgid "Computer bought the farm"
229.1637 - msgstr "Poèítaè kúpil farmu"
229.1638 -
229.1639 --#: locale/programs/ld-ctype.c:1253
229.1640 --msgid "Computing table size for character classes might take a while..."
229.1641 --msgstr "Výpoèet veµkosti tabuµky pre triedy znakov (mô¾e chvíµu trva»)..."
229.1642 --
229.1643 --#: locale/programs/ld-collate.c:336
229.1644 --msgid "Computing table size for collation information might take a while..."
229.1645 --msgstr "Výpoèet veµkosti tabuµky pre informácie o triedení (mô¾e chvíµu trva»)..."
229.1646 -+#: elf/ldconfig.c:141
229.1647 -+msgid "Configure Dynamic Linker Run Time Bindings."
229.1648 -+msgstr "Konfigurácia runtime väzieb dynamického linkera."
229.1649 -
229.1650 - #. TRANS A remote host refused to allow the network connection (typically because
229.1651 - #. TRANS it is not running the requested service).
229.1652 --#: stdio-common/../sysdeps/gnu/errlist.c:451
229.1653 -+#: stdio-common/../sysdeps/gnu/errlist.c:452
229.1654 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:176
229.1655 - msgid "Connection refused"
229.1656 - msgstr "Spojenie odmietnuté"
229.1657 -
229.1658 - #. TRANS A network connection was closed for reasons outside the control of the
229.1659 - #. TRANS local host, such as by the remote machine rebooting or an unrecoverable
229.1660 - #. TRANS protocol violation.
229.1661 --#: stdio-common/../sysdeps/gnu/errlist.c:401
229.1662 -+#: stdio-common/../sysdeps/gnu/errlist.c:402
229.1663 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:161
229.1664 - msgid "Connection reset by peer"
229.1665 - msgstr "Spojenie zru¹ené druhou stranou"
229.1666 -
229.1667 - #. TRANS A socket operation with a specified timeout received no response during
229.1668 - #. TRANS the timeout period.
229.1669 --#: stdio-common/../sysdeps/gnu/errlist.c:445
229.1670 -+#: stdio-common/../sysdeps/gnu/errlist.c:446
229.1671 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:175
229.1672 - msgid "Connection timed out"
229.1673 - msgstr "Èasový limit pre spojenie vypr¹al"
229.1674 -
229.1675 --#: stdio-common/../sysdeps/unix/siglist.c:44
229.1676 --#: sysdeps/unix/sysv/linux/siglist.h:38
229.1677 -+#: stdio-common/../sysdeps/unix/siglist.c:45 sysdeps/generic/siglist.h:45
229.1678 - msgid "Continued"
229.1679 - msgstr "Pokraèovanie"
229.1680 -
229.1681 --#: iconv/iconv_prog.c:66
229.1682 -+#: iconv/iconv_prog.c:69
229.1683 - msgid "Convert encoding of given files from one encoding to another."
229.1684 - msgstr "Konverzia kódovania zadaných súborov na iné."
229.1685 -
229.1686 --#: db2/makedb.c:58
229.1687 --msgid "Convert key to lower case"
229.1688 --msgstr "Zmeni» kµúè na malé písmená"
229.1689 --
229.1690 --#: catgets/gencat.c:236 db2/makedb.c:242 elf/sprof.c:359
229.1691 --#: iconv/iconv_prog.c:294 locale/programs/locale.c:267
229.1692 --#: locale/programs/localedef.c:403 nscd/nscd.c:223 nss/getent.c:65
229.1693 --#: posix/getconf.c:624
229.1694 -+#: catgets/gencat.c:246 elf/ldconfig.c:264 elf/sprof.c:355
229.1695 -+#: iconv/iconv_prog.c:351 locale/programs/locale.c:269
229.1696 -+#: locale/programs/localedef.c:311 nscd/nscd.c:287 nscd/nscd_nischeck.c:90
229.1697 -+#: nss/getent.c:63 posix/getconf.c:751
229.1698 - #, c-format
229.1699 - msgid ""
229.1700 - "Copyright (C) %s Free Software Foundation, Inc.\n"
229.1701 -@@ -861,167 +1526,353 @@
229.1702 - "Toto je voµne ¹íriteµný software; pre podmienky kopírovania pozri\n"
229.1703 - "zdrojový kód.Na software nie je poskytovaná ®IADNA záruka.\n"
229.1704 -
229.1705 --#: nscd/nscd_conf.c:167
229.1706 -+#: nscd/nscd_conf.c:166
229.1707 - #, c-format
229.1708 - msgid "Could not create log file \"%s\""
229.1709 - msgstr "Nie je mo¾né vytvori» ¾urnálový súbor \"%s\""
229.1710 -
229.1711 --#: catgets/gencat.c:107
229.1712 -+#: catgets/gencat.c:112
229.1713 - msgid "Create C header file NAME containing symbol definitions"
229.1714 - msgstr "Vytvori» C hlavièkový súbor NÁZOV obsahujúci definície symbolov"
229.1715 -
229.1716 --#: locale/programs/localedef.c:103
229.1717 -+#: locale/programs/localedef.c:102
229.1718 -+msgid "Create old-style tables"
229.1719 -+msgstr "Vytvori» tabuµky na starý spôsob"
229.1720 -+
229.1721 -+#: locale/programs/localedef.c:101
229.1722 - msgid "Create output even if warning messages were issued"
229.1723 - msgstr "Vytvori» výstupný súbor aj pri výskyte varovaní"
229.1724 -
229.1725 --#: db2/makedb.c:68
229.1726 --msgid "Create simple DB database from textual input."
229.1727 --msgstr "Vytvorenie jednoduchej DB databázy z textového vstupu."
229.1728 --
229.1729 --#: nis/nis_print.c:322
229.1730 -+#: nis/nis_print.c:326
229.1731 - #, c-format
229.1732 - msgid "Creation Time : %s"
229.1733 - msgstr "Èas vytvorenia : %s"
229.1734 -
229.1735 --#: nis/nss_nisplus/nisplus-publickey.c:89
229.1736 --#: nis/nss_nisplus/nisplus-publickey.c:159
229.1737 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:48
229.1738 -+msgid "Cross-device link"
229.1739 -+msgstr "Odkaz medzi zariadeniami"
229.1740 -+
229.1741 -+#: malloc/memusagestat.c:67
229.1742 -+msgid "DATAFILE [OUTFILE]"
229.1743 -+msgstr "DÁTOVÝ_SÚBOR [VÝSTUPNÝ_SÚBOR]"
229.1744 -+
229.1745 -+#: nis/nss_nisplus/nisplus-publickey.c:96
229.1746 -+#: nis/nss_nisplus/nisplus-publickey.c:172
229.1747 - #, c-format
229.1748 - msgid "DES entry for netname %s not unique\n"
229.1749 - msgstr "DES záznam pre sie»ový názov %s nie je jednoznaèný\n"
229.1750 -
229.1751 --#: nis/nis_print.c:111
229.1752 -+#: nis/nis_print.c:112
229.1753 - msgid "DIRECTORY\n"
229.1754 - msgstr "ADRESÁR\n"
229.1755 -
229.1756 --#: nis/nis_print.c:41
229.1757 -+#: nis/nis_print.c:42
229.1758 - msgid "DNANS"
229.1759 - msgstr "DNANS"
229.1760 -
229.1761 --#: nis/nis_print.c:37
229.1762 -+#: nis/nis_print.c:38
229.1763 - msgid "DNS"
229.1764 - msgstr "DNS"
229.1765 -
229.1766 --#: nis/nis_error.c:51
229.1767 -+#: elf/dl-open.c:189
229.1768 -+msgid "DST not allowed in SUID/SGID programs"
229.1769 -+msgstr "DST nie je pre SUID/SGID programy povolené"
229.1770 -+
229.1771 -+#: elf/dl-error.c:71
229.1772 -+msgid "DYNAMIC LINKER BUG!!!"
229.1773 -+msgstr "CHYBA V DYNAMICKOM LINKERI!!!"
229.1774 -+
229.1775 -+#: nis/nis_error.c:52
229.1776 - msgid "Database for table does not exist"
229.1777 - msgstr "Databáza pre tabuµku neexistuje"
229.1778 -
229.1779 --#: nis/ypclnt.c:795
229.1780 -+#: nis/ypclnt.c:818
229.1781 - msgid "Database is busy"
229.1782 - msgstr "Databáza je pou¾ívaná"
229.1783 -
229.1784 --#: nis/nis_print.c:225
229.1785 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:75
229.1786 -+msgid "Deadlock situation detected/avoided"
229.1787 -+msgstr "Bol detekovaný a znemo¾nený deadlock"
229.1788 -+
229.1789 -+#: nis/nis_print.c:226
229.1790 - msgid "Default Access rights :\n"
229.1791 - msgstr "Implicitné príst. práva :\n"
229.1792 -
229.1793 - #. TRANS No default destination address was set for the socket. You get this
229.1794 - #. TRANS error when you try to transmit data over a connectionless socket,
229.1795 - #. TRANS without first specifying a destination for the data with @code{connect}.
229.1796 --#: stdio-common/../sysdeps/gnu/errlist.c:429
229.1797 -+#: stdio-common/../sysdeps/gnu/errlist.c:430
229.1798 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:126
229.1799 - msgid "Destination address required"
229.1800 - msgstr "Je potrebné zada» cieµovú hodnotu"
229.1801 -
229.1802 --#: stdio-common/../sysdeps/gnu/errlist.c:650
229.1803 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:46
229.1804 -+msgid "Device busy"
229.1805 -+msgstr "Zariadenie je pou¾ívané"
229.1806 -+
229.1807 -+#: stdio-common/../sysdeps/gnu/errlist.c:669
229.1808 - msgid "Device not a stream"
229.1809 - msgstr "Zariadenie nie je prúd"
229.1810 -
229.1811 --#. TRANS No such device or address. The system tried to use the device
229.1812 --#. TRANS represented by a file you specified, and it couldn't find the device.
229.1813 --#. TRANS This can mean that the device file was installed incorrectly, or that
229.1814 --#. TRANS the physical device is missing or not correctly attached to the
229.1815 --#. TRANS computer.
229.1816 --#: stdio-common/../sysdeps/gnu/errlist.c:61
229.1817 --msgid "Device not configured"
229.1818 --msgstr "Zariadenie nie je nakonfigurované"
229.1819 --
229.1820 - #. TRANS Resource busy; a system resource that can't be shared is already in use.
229.1821 - #. TRANS For example, if you try to delete a file that is the root of a currently
229.1822 - #. TRANS mounted filesystem, you get this error.
229.1823 --#: stdio-common/../sysdeps/gnu/errlist.c:128
229.1824 -+#: stdio-common/../sysdeps/gnu/errlist.c:129
229.1825 - msgid "Device or resource busy"
229.1826 - msgstr "Zariadenie alebo iný zdroj je pou¾ívané"
229.1827 -
229.1828 --#: nis/nis_print.c:179
229.1829 -+#: nis/nis_print.c:180
229.1830 - #, c-format
229.1831 - msgid "Diffie-Hellmann (%d bits)\n"
229.1832 - msgstr "Diffie-Hellmann (%d bitov)\n"
229.1833 -
229.1834 --#: nis/nis_print.c:315
229.1835 -+#: nis/nis_print.c:318
229.1836 - #, c-format
229.1837 - msgid "Directory : %s\n"
229.1838 - msgstr "Adresár : %s\n"
229.1839 -
229.1840 - #. TRANS Directory not empty, where an empty directory was expected. Typically,
229.1841 - #. TRANS this error occurs when you are trying to delete a directory.
229.1842 --#: stdio-common/../sysdeps/gnu/errlist.c:480
229.1843 -+#: stdio-common/../sysdeps/gnu/errlist.c:481
229.1844 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:123
229.1845 - msgid "Directory not empty"
229.1846 - msgstr "Adresár nie je prázdny"
229.1847 -
229.1848 --#. TRANS The user's disk quota was exceeded.
229.1849 --#: stdio-common/../sysdeps/gnu/errlist.c:498
229.1850 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:79
229.1851 - msgid "Disc quota exceeded"
229.1852 - msgstr "Disková kvóta prekroèená"
229.1853 -
229.1854 --#: nscd/nscd.c:80
229.1855 -+#. TRANS The user's disk quota was exceeded.
229.1856 -+#: stdio-common/../sysdeps/gnu/errlist.c:499
229.1857 -+msgid "Disk quota exceeded"
229.1858 -+msgstr "Disková kvóta prekroèená"
229.1859 -+
229.1860 -+#: nscd/nscd.c:86
229.1861 - msgid "Do not fork and display messages on the current tty"
229.1862 - msgstr "Nespú¹»a» samostatný proces a zobrazova» správy na aktuálnom termináli"
229.1863 -
229.1864 --#: db2/makedb.c:61
229.1865 --msgid "Do not print messages while building database"
229.1866 --msgstr "Poèas tvorby databázy nevypisova» správy"
229.1867 --
229.1868 --#: catgets/gencat.c:109
229.1869 -+#: catgets/gencat.c:114
229.1870 - msgid "Do not use existing catalog, force new output file"
229.1871 - msgstr "Nepou¾íva» existujúci katalóg, vnúti» nový výstupný súbor"
229.1872 -
229.1873 --#: nis/ypclnt.c:841
229.1874 -+#: nis/ypclnt.c:864
229.1875 - msgid "Domain not bound"
229.1876 - msgstr "Doména nie je pripojená"
229.1877 -
229.1878 --#: stdio-common/../sysdeps/unix/siglist.c:32
229.1879 --#: sysdeps/unix/sysv/linux/siglist.h:53
229.1880 -+#: elf/ldconfig.c:129
229.1881 -+msgid "Don't build cache"
229.1882 -+msgstr "Nevytvori» cache"
229.1883 -+
229.1884 -+#: elf/ldconfig.c:130
229.1885 -+msgid "Don't generate links"
229.1886 -+msgstr "Negenerova» odkazy"
229.1887 -+
229.1888 -+#: debug/pcprofiledump.c:56
229.1889 -+msgid "Dump information generated by PC profiling."
229.1890 -+msgstr "Vypísa» informáciu získanú profilovaním PC."
229.1891 -+
229.1892 -+#: elf/dl-load.c:1290
229.1893 -+msgid "ELF file ABI version invalid"
229.1894 -+msgstr "Neplatná verzia ABI ELF súboru"
229.1895 -+
229.1896 -+#: elf/dl-load.c:1287
229.1897 -+msgid "ELF file OS ABI invalid"
229.1898 -+msgstr "Neplatný OS ABI ELF súboru"
229.1899 -+
229.1900 -+#: elf/dl-load.c:1296
229.1901 -+msgid "ELF file version does not match current one"
229.1902 -+msgstr "Verzia súboru ELF sa nezhoduje s aktuálnou"
229.1903 -+
229.1904 -+#: elf/dl-load.c:1283
229.1905 -+msgid "ELF file version ident does not match current one"
229.1906 -+msgstr "Identifikácia verzie ELF súboru sa nezhoduje s aktuálnou"
229.1907 -+
229.1908 -+#: elf/dl-load.c:1307
229.1909 -+msgid "ELF file's phentsize not the expected size"
229.1910 -+msgstr "phentsize ELF súboru nie je oèakávaná"
229.1911 -+
229.1912 -+#: elf/dl-load.c:876
229.1913 -+msgid "ELF load command address/offset not properly aligned"
229.1914 -+msgstr "ELF zavádzacia adresa/posunutie nie je správne zarovnaná"
229.1915 -+
229.1916 -+#: elf/dl-load.c:873
229.1917 -+msgid "ELF load command alignment not page-aligned"
229.1918 -+msgstr "ELF zarovnanie príkazu nie je zarovnané na stránku"
229.1919 -+
229.1920 -+#: stdio-common/../sysdeps/unix/siglist.c:33 sysdeps/generic/siglist.h:60
229.1921 - msgid "EMT trap"
229.1922 - msgstr "EMT preru¹enie"
229.1923 -
229.1924 --#: nis/nis_print.c:120
229.1925 -+#: nis/nis_print.c:121
229.1926 - msgid "ENTRY\n"
229.1927 - msgstr "ZÁZNAM\n"
229.1928 -
229.1929 --#: nis/nis_print.c:299
229.1930 -+#: nis/nis_print.c:300
229.1931 - msgid "Encrypted data\n"
229.1932 - msgstr "©ifrované údaje\n"
229.1933 -
229.1934 --#: nis/nis_error.c:52
229.1935 --msgid "Entry/Table type mismatch"
229.1936 -+#: nis/nis_error.c:53
229.1937 -+msgid "Entry/table type mismatch"
229.1938 - msgstr "Nesúlad záznamu s tabuµkou"
229.1939 -
229.1940 --#: nis/nis_error.c:56
229.1941 -+#: nss/getent.c:127 nss/getent.c:292
229.1942 -+#, c-format
229.1943 -+msgid "Enumeration not supported on %s\n"
229.1944 -+msgstr "Enumerácia %s nie je podporované\n"
229.1945 -+
229.1946 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:30
229.1947 -+msgid "Error 0"
229.1948 -+msgstr "Chyba 0"
229.1949 -+
229.1950 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:130
229.1951 -+msgid "Error 100"
229.1952 -+msgstr "Chyba 100"
229.1953 -+
229.1954 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:131
229.1955 -+msgid "Error 101"
229.1956 -+msgstr "Chyba 101"
229.1957 -+
229.1958 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:132
229.1959 -+msgid "Error 102"
229.1960 -+msgstr "Chyba 102"
229.1961 -+
229.1962 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:133
229.1963 -+msgid "Error 103"
229.1964 -+msgstr "Chyba 103"
229.1965 -+
229.1966 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:134
229.1967 -+msgid "Error 104"
229.1968 -+msgstr "Chyba 104"
229.1969 -+
229.1970 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:135
229.1971 -+msgid "Error 105"
229.1972 -+msgstr "Chyba 105"
229.1973 -+
229.1974 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:136
229.1975 -+msgid "Error 106"
229.1976 -+msgstr "Chyba 106"
229.1977 -+
229.1978 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:137
229.1979 -+msgid "Error 107"
229.1980 -+msgstr "Chyba 107"
229.1981 -+
229.1982 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:138
229.1983 -+msgid "Error 108"
229.1984 -+msgstr "Chyba 108"
229.1985 -+
229.1986 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:139
229.1987 -+msgid "Error 109"
229.1988 -+msgstr "Chyba 109"
229.1989 -+
229.1990 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:140
229.1991 -+msgid "Error 110"
229.1992 -+msgstr "Chyba 110"
229.1993 -+
229.1994 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:141
229.1995 -+msgid "Error 111"
229.1996 -+msgstr "Chyba 111"
229.1997 -+
229.1998 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:142
229.1999 -+msgid "Error 112"
229.2000 -+msgstr "Chyba 112"
229.2001 -+
229.2002 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:143
229.2003 -+msgid "Error 113"
229.2004 -+msgstr "Chyba 113"
229.2005 -+
229.2006 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:144
229.2007 -+msgid "Error 114"
229.2008 -+msgstr "Chyba 114"
229.2009 -+
229.2010 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:145
229.2011 -+msgid "Error 115"
229.2012 -+msgstr "Chyba 115"
229.2013 -+
229.2014 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:146
229.2015 -+msgid "Error 116"
229.2016 -+msgstr "Chyba 116"
229.2017 -+
229.2018 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:147
229.2019 -+msgid "Error 117"
229.2020 -+msgstr "Chyba 117"
229.2021 -+
229.2022 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:148
229.2023 -+msgid "Error 118"
229.2024 -+msgstr "Chyba 118"
229.2025 -+
229.2026 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:149
229.2027 -+msgid "Error 119"
229.2028 -+msgstr "Chyba 119"
229.2029 -+
229.2030 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:166
229.2031 -+msgid "Error 136"
229.2032 -+msgstr "Chybe 136"
229.2033 -+
229.2034 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:172
229.2035 -+msgid "Error 142"
229.2036 -+msgstr "Chyba 142"
229.2037 -+
229.2038 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:88
229.2039 -+msgid "Error 58"
229.2040 -+msgstr "Chyba 58"
229.2041 -+
229.2042 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:89
229.2043 -+msgid "Error 59"
229.2044 -+msgstr "Chyba 59"
229.2045 -+
229.2046 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:102
229.2047 -+msgid "Error 72"
229.2048 -+msgstr "Chyba 72"
229.2049 -+
229.2050 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:103
229.2051 -+msgid "Error 73"
229.2052 -+msgstr "Chyba 73"
229.2053 -+
229.2054 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:105
229.2055 -+msgid "Error 75"
229.2056 -+msgstr "Chyba 75"
229.2057 -+
229.2058 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:106
229.2059 -+msgid "Error 76"
229.2060 -+msgstr "Chyba 76"
229.2061 -+
229.2062 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:121
229.2063 -+msgid "Error 91"
229.2064 -+msgstr "Chyba 91"
229.2065 -+
229.2066 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:122
229.2067 -+msgid "Error 92"
229.2068 -+msgstr "Chyba 92"
229.2069 -+
229.2070 -+#: nis/nis_error.c:57
229.2071 - msgid "Error in RPC subsystem"
229.2072 - msgstr "Chyba v RPC subsystéme"
229.2073 -
229.2074 --#: nis/nis_error.c:66
229.2075 -+#: nis/nis_error.c:67
229.2076 - msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?"
229.2077 - msgstr "Chyba pri prístupe NIS+ súboru studeného ¹tartu. Je NIS+ nain¹talované?"
229.2078 -
229.2079 --#: string/../sysdeps/mach/_strerror.c:56
229.2080 --#: sysdeps/mach/hurd/mips/dl-machine.c:67
229.2081 -+#: string/../sysdeps/mach/_strerror.c:58
229.2082 -+#: sysdeps/mach/hurd/mips/dl-machine.c:68
229.2083 - msgid "Error in unknown error system: "
229.2084 - msgstr "Chyba v neznámom chybovom systéme: "
229.2085 -
229.2086 --#: nis/nis_error.c:59
229.2087 -+#: nis/nis_error.c:60
229.2088 - msgid "Error while talking to callback proc"
229.2089 - msgstr "Chyba poèas komunikácie s procedúrou spätného volania"
229.2090 -
229.2091 --#: inet/ruserpass.c:161
229.2092 -+#: inet/ruserpass.c:181
229.2093 - msgid "Error: .netrc file is readable by others."
229.2094 - msgstr "Chyba: súbor .netrc je èitateµný pre ostatných."
229.2095 -
229.2096 --#: stdio-common/../sysdeps/gnu/errlist.c:710
229.2097 -+#: stdio-common/../sysdeps/gnu/errlist.c:729
229.2098 - msgid "Exchange full"
229.2099 - msgstr "Stredisko plné"
229.2100 -
229.2101 - #. TRANS Invalid executable file format. This condition is detected by the
229.2102 - #. TRANS @code{exec} functions; see @ref{Executing a File}.
229.2103 --#: stdio-common/../sysdeps/gnu/errlist.c:75
229.2104 -+#: stdio-common/../sysdeps/gnu/errlist.c:76
229.2105 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:38
229.2106 - msgid "Exec format error"
229.2107 - msgstr "Chybný formát spustiteµného súboru"
229.2108 -
229.2109 -@@ -1029,75 +1880,113 @@
229.2110 - msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
229.2111 - msgstr "FATÁLNA CHYBA: systém nedefinuje `_POSIX2_LOCALEDEF'"
229.2112 -
229.2113 --#: locale/programs/localedef.c:99
229.2114 -+#: locale/programs/localedef.c:97
229.2115 - msgid "FILE contains mapping from symbolic names to UCS4 values"
229.2116 - msgstr "SÚBOR obsahuje mapovanie symbolických názvov na UCS4 hodnoty"
229.2117 -
229.2118 --#: sunrpc/clnt_perr.c:287
229.2119 -+#: sunrpc/clnt_perr.c:356
229.2120 - msgid "Failed (unspecified error)"
229.2121 - msgstr "Zlyhalo (ne¹pecifikovaná chyba)"
229.2122 -
229.2123 --#: stdio-common/../sysdeps/gnu/errlist.c:762
229.2124 -+#: nscd/nscd.c:400
229.2125 -+#, c-format
229.2126 -+msgid "Failed to look up user '%s' to run server as"
229.2127 -+msgstr "Nepodarilo sa vyhµada» pou¾ívateµa '%s', pod ktorým má server be¾a»"
229.2128 -+
229.2129 -+#: elf/readlib.c:108
229.2130 -+#, c-format
229.2131 -+msgid "File %s is too small, not checked."
229.2132 -+msgstr "Súbor %s je príli¹ krátky, neskontrolovaný."
229.2133 -+
229.2134 -+#: stdio-common/../sysdeps/gnu/errlist.c:781
229.2135 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:111
229.2136 - msgid "File descriptor in bad state"
229.2137 - msgstr "Deskriptor súboru v chybnom stave"
229.2138 -
229.2139 - #. TRANS File exists; an existing file was specified in a context where it only
229.2140 - #. TRANS makes sense to specify a new file.
229.2141 --#: stdio-common/../sysdeps/gnu/errlist.c:134
229.2142 -+#: stdio-common/../sysdeps/gnu/errlist.c:135
229.2143 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:47
229.2144 - msgid "File exists"
229.2145 - msgstr "Súbor existuje"
229.2146 -
229.2147 --#: stdio-common/../sysdeps/gnu/errlist.c:726
229.2148 -+#: elf/cache.c:124 elf/cache.c:134
229.2149 -+msgid "File is not a cache file.\n"
229.2150 -+msgstr "Súbor nie je cache súborom.\n"
229.2151 -+
229.2152 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:86
229.2153 -+msgid "File locking deadlock"
229.2154 -+msgstr "Vzájomné zablokovanie pri zamykaní súboru"
229.2155 -+
229.2156 -+#: stdio-common/../sysdeps/gnu/errlist.c:745
229.2157 - msgid "File locking deadlock error"
229.2158 - msgstr "Vzájomné zablokovanie pri zamykaní súboru"
229.2159 -
229.2160 - #. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for
229.2161 - #. TRANS Files}) or host name too long (in @code{gethostname} or
229.2162 - #. TRANS @code{sethostname}; @pxref{Host Identification}).
229.2163 --#: stdio-common/../sysdeps/gnu/errlist.c:464
229.2164 -+#: stdio-common/../sysdeps/gnu/errlist.c:465
229.2165 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:108
229.2166 - msgid "File name too long"
229.2167 - msgstr "Meno súboru príli¹ dlhé"
229.2168 -
229.2169 --#: stdio-common/../sysdeps/unix/siglist.c:50
229.2170 --#: sysdeps/unix/sysv/linux/siglist.h:44
229.2171 -+#: stdio-common/../sysdeps/unix/siglist.c:51 sysdeps/generic/siglist.h:51
229.2172 - msgid "File size limit exceeded"
229.2173 - msgstr "Prekroèený limit då¾ky súboru"
229.2174 -
229.2175 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:53
229.2176 -+msgid "File table overflow"
229.2177 -+msgstr "Preteèenie tabuµky súborov"
229.2178 -+
229.2179 - #. TRANS File too big; the size of a file would be larger than allowed by the system.
229.2180 --#: stdio-common/../sysdeps/gnu/errlist.c:202
229.2181 -+#: stdio-common/../sysdeps/gnu/errlist.c:203
229.2182 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:57
229.2183 - msgid "File too large"
229.2184 - msgstr "Súbor je príli¹ veµký"
229.2185 -
229.2186 --#: nis/nis_error.c:37
229.2187 --msgid "First/Next chain broken"
229.2188 --msgstr "Chyba zre»azenia prvý/ïal¹í"
229.2189 -+#: intl/tst-gettext2.c:36
229.2190 -+msgid "First string for testing."
229.2191 -+msgstr "Prvý testovací re»azec."
229.2192 -+
229.2193 -+#: nis/nis_error.c:38
229.2194 -+msgid "First/next chain broken"
229.2195 -+msgstr "Preru¹ené zre»azenie prvý/ïal¹í"
229.2196 -
229.2197 --#: stdio-common/../sysdeps/unix/siglist.c:33
229.2198 --#: sysdeps/unix/sysv/linux/siglist.h:28
229.2199 -+#: stdio-common/../sysdeps/unix/siglist.c:34 sysdeps/generic/siglist.h:35
229.2200 - msgid "Floating point exception"
229.2201 - msgstr "Výnimka pohyblivej rádovej èiarky"
229.2202 -
229.2203 --#: nis/nis_error.c:67
229.2204 -+#: elf/ldconfig.c:136
229.2205 -+msgid "Format to use: new, old or compat (default)"
229.2206 -+msgstr "Pou¾i» formát: nový (new), starý (old) alebo kompatibilný (compat - prednastavené)"
229.2207 -+
229.2208 -+#: nis/nis_error.c:68
229.2209 - msgid "Full resync required for directory"
229.2210 - msgstr "Adresár vy¾aduje úplnú resynchronizáciu"
229.2211 -
229.2212 --#. TRANS Function not implemented. Some functions have commands or options defined
229.2213 --#. TRANS that might not be supported in all implementations, and this is the kind
229.2214 --#. TRANS of error you get if you request them and they are not supported.
229.2215 --#: stdio-common/../sysdeps/gnu/errlist.c:573
229.2216 -+#. TRANS Function not implemented. This indicates that the function called is
229.2217 -+#. TRANS not implemented at all, either in the C library itself or in the
229.2218 -+#. TRANS operating system. When you get this error, you can be sure that this
229.2219 -+#. TRANS particular function will always fail with @code{ENOSYS} unless you
229.2220 -+#. TRANS install a new version of the C library or the operating system.
229.2221 -+#: stdio-common/../sysdeps/gnu/errlist.c:576
229.2222 - msgid "Function not implemented"
229.2223 - msgstr "Funkcia nie je implementovaná"
229.2224 -
229.2225 --#: nis/nis_print.c:114
229.2226 -+#: nis/nis_print.c:115
229.2227 - msgid "GROUP\n"
229.2228 - msgstr "SKUPINA\n"
229.2229 -
229.2230 --#: argp/argp-help.c:231
229.2231 -+#: argp/argp-help.c:230
229.2232 - #, c-format
229.2233 - msgid "Garbage in ARGP_HELP_FMT: %s"
229.2234 - msgstr "Nezmysly v ARGP_HELP_FMT: %s"
229.2235 -
229.2236 --#: catgets/gencat.c:115
229.2237 -+#: malloc/memusagestat.c:64
229.2238 -+msgid "Generate graphic from memory profiling data"
229.2239 -+msgstr "Generova» graf z údajov profilu pamäti"
229.2240 -+
229.2241 -+#: catgets/gencat.c:120
229.2242 - msgid ""
229.2243 - "Generate message catalog.\\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n"
229.2244 - "is -, output is written to standard output.\n"
229.2245 -@@ -1105,123 +1994,134 @@
229.2246 - "Tvorba katalógu správ.\\vAk je VSTUPNÝ_SÚBOR -, vstup je naèítaný zo ¹tandardného vstupu. Ak je\n"
229.2247 - "VÝSTUPNÝ_SÚBOR -, výstup je zapísaný na ¹tandardný výstup.\n"
229.2248 -
229.2249 --#: nis/nis_error.c:36
229.2250 -+#: malloc/memusagestat.c:55
229.2251 -+msgid "Generate output linear to time (default is linear to number of function calls)"
229.2252 -+msgstr "Generova» výstup lineárny s èasom (prednastavený je lineárne k poètu volaní funkcií)"
229.2253 -+
229.2254 -+#: elf/ldconfig.c:128
229.2255 -+msgid "Generate verbose messages"
229.2256 -+msgstr "Vypísova» podrobnej¹ie správy"
229.2257 -+
229.2258 -+#: nis/nis_error.c:37
229.2259 - msgid "Generic system error"
229.2260 - msgstr "V¹eobecná chyba systému"
229.2261 -
229.2262 --#: locale/programs/locale.c:75
229.2263 -+#: locale/programs/locale.c:77
229.2264 - msgid "Get locale-specific information."
229.2265 - msgstr "Získa» informáciu ¹pecifickú pre národné prostredie."
229.2266 -
229.2267 --#: argp/argp-parse.c:88
229.2268 -+#: argp/argp-parse.c:94
229.2269 - msgid "Give a short usage message"
229.2270 - msgstr "Vypísa» krátky návod na pou¾itie"
229.2271 -
229.2272 --#: argp/argp-parse.c:87
229.2273 -+#: argp/argp-parse.c:93
229.2274 - msgid "Give this help list"
229.2275 - msgstr "Vypísa» túto pomoc"
229.2276 -
229.2277 - #. TRANS This error code has no purpose.
229.2278 --#: stdio-common/../sysdeps/gnu/errlist.c:618
229.2279 -+#: stdio-common/../sysdeps/gnu/errlist.c:637
229.2280 - msgid "Gratuitous error"
229.2281 - msgstr "Vïaèná chyba"
229.2282 -
229.2283 --#: nis/nis_print.c:317
229.2284 -+#: nis/nis_print.c:320
229.2285 - #, c-format
229.2286 - msgid "Group : %s\n"
229.2287 - msgstr "Skupina : %s\n"
229.2288 -
229.2289 --#: nis/nis_print.c:248
229.2290 -+#: nis/nis_print.c:249
229.2291 - msgid "Group Flags :"
229.2292 - msgstr "Príznaky skupiny :"
229.2293 -
229.2294 --#: nis/nis_print_group_entry.c:113
229.2295 -+#: nis/nis_print_group_entry.c:115
229.2296 - #, c-format
229.2297 - msgid "Group entry for \"%s.%s\" group:\n"
229.2298 - msgstr "Záznam skupiny pre skupinu \"%s.%s\":\n"
229.2299 -
229.2300 --#: argp/argp-parse.c:91
229.2301 -+#: argp/argp-parse.c:97
229.2302 - msgid "Hang for SECS seconds (default 3600)"
229.2303 - msgstr "Poèka» SECS sekúnd (implicitne 3600)"
229.2304 -
229.2305 --#: stdio-common/../sysdeps/unix/siglist.c:26
229.2306 --#: sysdeps/unix/sysv/linux/siglist.h:22
229.2307 -+#: stdio-common/../sysdeps/unix/siglist.c:27 sysdeps/generic/siglist.h:29
229.2308 - msgid "Hangup"
229.2309 - msgstr "Zavesenie"
229.2310 -
229.2311 --#: nscd/grpcache.c:238
229.2312 -+#: nscd/grpcache.c:253
229.2313 - #, c-format
229.2314 - msgid "Haven't found \"%d\" in group cache!"
229.2315 - msgstr "Nenájdené \"%d\" v cache skupín!"
229.2316 -
229.2317 --#: nscd/pwdcache.c:235
229.2318 -+#: nscd/pwdcache.c:249
229.2319 - #, c-format
229.2320 - msgid "Haven't found \"%d\" in password cache!"
229.2321 - msgstr "Nenájdené \"%d\" v cache hesiel!"
229.2322 -
229.2323 --#: nscd/grpcache.c:210
229.2324 -+#: nscd/grpcache.c:214
229.2325 - #, c-format
229.2326 - msgid "Haven't found \"%s\" in group cache!"
229.2327 - msgstr "Nenájdené \"%s\" v cache skupín!"
229.2328 -
229.2329 --#: nscd/hstcache.c:297 nscd/hstcache.c:328 nscd/hstcache.c:359
229.2330 --#: nscd/hstcache.c:390
229.2331 -+#: nscd/hstcache.c:299 nscd/hstcache.c:341 nscd/hstcache.c:386
229.2332 -+#: nscd/hstcache.c:430
229.2333 - #, c-format
229.2334 - msgid "Haven't found \"%s\" in hosts cache!"
229.2335 - msgstr "Nenájdené \"%s\" v cache poèítaèov!"
229.2336 -
229.2337 --#: nscd/pwdcache.c:207
229.2338 -+#: nscd/pwdcache.c:210
229.2339 - #, c-format
229.2340 - msgid "Haven't found \"%s\" in password cache!"
229.2341 - msgstr "Nenájdené \"%s\" v cache hesiel!"
229.2342 -
229.2343 - #. TRANS The remote host for a requested network connection is down.
229.2344 --#: stdio-common/../sysdeps/gnu/errlist.c:469
229.2345 -+#: stdio-common/../sysdeps/gnu/errlist.c:470
229.2346 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:177
229.2347 - msgid "Host is down"
229.2348 - msgstr "Poèítaè je vypnutý"
229.2349 -
229.2350 --#: resolv/herror.c:75
229.2351 -+#: resolv/herror.c:69
229.2352 - msgid "Host name lookup failure"
229.2353 - msgstr "Nepodarilo sa nájs» meno poèítaèa"
229.2354 -
229.2355 --#: stdio-common/../sysdeps/unix/siglist.c:48
229.2356 --#: sysdeps/unix/sysv/linux/siglist.h:42
229.2357 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:35
229.2358 -+msgid "I/O error"
229.2359 -+msgstr "V/V chyba"
229.2360 -+
229.2361 -+#: stdio-common/../sysdeps/unix/siglist.c:49 sysdeps/generic/siglist.h:49
229.2362 - msgid "I/O possible"
229.2363 - msgstr "V/V mo¾ný"
229.2364 -
229.2365 --#: db2/makedb.c:71
229.2366 --msgid ""
229.2367 --"INPUT-FILE OUTPUT-FILE\n"
229.2368 --"-o OUTPUT-FILE INPUT-FILE\n"
229.2369 --"-u INPUT-FILE"
229.2370 --msgstr ""
229.2371 --"VSTUPNÝ_SÚBOR VÝSTUPNÝ_SÚBOR\n"
229.2372 --"-o VÝSTUPNÝ_SÚBOR VSTUPNÝ_SÚBOR\n"
229.2373 --"-u VSTUPNÝ_SÚBOR"
229.2374 --
229.2375 --#: stdio-common/../sysdeps/unix/siglist.c:31
229.2376 -+#: stdio-common/../sysdeps/unix/siglist.c:32
229.2377 - msgid "IOT trap"
229.2378 - msgstr "IOT preru¹enie"
229.2379 -
229.2380 --#: nis/nis_print.c:35
229.2381 -+#: nis/nis_print.c:36
229.2382 - msgid "IVY"
229.2383 - msgstr "IVY"
229.2384 -
229.2385 --#: stdio-common/../sysdeps/gnu/errlist.c:626
229.2386 -+#: stdio-common/../sysdeps/gnu/errlist.c:645
229.2387 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:66
229.2388 - msgid "Identifier removed"
229.2389 - msgstr "Identifikátor odstránený"
229.2390 -
229.2391 --#: stdio-common/../sysdeps/unix/siglist.c:29
229.2392 --#: sysdeps/unix/sysv/linux/siglist.h:25
229.2393 -+#: elf/ldconfig.c:525
229.2394 -+#, c-format
229.2395 -+msgid "Ignored file %s since it is not a regular file."
229.2396 -+msgstr "Súbor %s ignorovaný, keï¾e nie je regulérnym súborom."
229.2397 -+
229.2398 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:118
229.2399 -+msgid "Illegal byte sequence"
229.2400 -+msgstr "Neprípustná sekvencia bajtov"
229.2401 -+
229.2402 -+#: stdio-common/../sysdeps/unix/siglist.c:30 sysdeps/generic/siglist.h:32
229.2403 - msgid "Illegal instruction"
229.2404 - msgstr "Neprípustná in¹trukcia"
229.2405 -
229.2406 --#: nis/nis_error.c:61
229.2407 -+#: nis/nis_error.c:62
229.2408 - msgid "Illegal object type for operation"
229.2409 - msgstr "Neprípustný typ objektu pre operáciu"
229.2410 -
229.2411 - #. TRANS Invalid seek operation (such as on a pipe).
229.2412 --#: stdio-common/../sysdeps/gnu/errlist.c:213
229.2413 -+#: stdio-common/../sysdeps/gnu/errlist.c:214
229.2414 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:59
229.2415 - msgid "Illegal seek"
229.2416 - msgstr "Neprípustné nastavenie pozície"
229.2417 -
229.2418 -@@ -1230,13 +2130,14 @@
229.2419 - #. TRANS
229.2420 - #. TRANS On some systems @code{chmod} returns this error if you try to set the
229.2421 - #. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}.
229.2422 --#: stdio-common/../sysdeps/gnu/errlist.c:556
229.2423 -+#: stdio-common/../sysdeps/gnu/errlist.c:557
229.2424 - msgid "Inappropriate file type or format"
229.2425 - msgstr "Nevhodný typ alebo formát súboru"
229.2426 -
229.2427 - #. TRANS Inappropriate I/O control operation, such as trying to set terminal
229.2428 - #. TRANS modes on an ordinary file.
229.2429 --#: stdio-common/../sysdeps/gnu/errlist.c:188
229.2430 -+#: stdio-common/../sysdeps/gnu/errlist.c:189
229.2431 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:55
229.2432 - msgid "Inappropriate ioctl for device"
229.2433 - msgstr "Nevhodný ioctl pre toto zariadenie"
229.2434 -
229.2435 -@@ -1246,41 +2147,45 @@
229.2436 - #. TRANS error because functions such as @code{read} and @code{write} translate
229.2437 - #. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control},
229.2438 - #. TRANS for information on process groups and these signals.
229.2439 --#: stdio-common/../sysdeps/gnu/errlist.c:589
229.2440 -+#: stdio-common/../sysdeps/gnu/errlist.c:608
229.2441 - msgid "Inappropriate operation for background process"
229.2442 - msgstr "Nevhodná operácia pre proces v pozadí"
229.2443 -
229.2444 --#: sysdeps/unix/sysv/linux/siglist.h:62
229.2445 -+#: sysdeps/generic/siglist.h:69
229.2446 - msgid "Information request"
229.2447 - msgstr "®iados» o informáciu"
229.2448 -
229.2449 --#: iconv/iconv_prog.c:57
229.2450 -+#: iconv/iconv_prog.c:58
229.2451 - msgid "Information:"
229.2452 - msgstr "Informácia:"
229.2453 -
229.2454 --#: locale/programs/localedef.c:94
229.2455 -+#: locale/programs/localedef.c:92
229.2456 - msgid "Input Files:"
229.2457 - msgstr "Vstupné súbory:"
229.2458 -
229.2459 --#: iconv/iconv_prog.c:54
229.2460 -+#: elf/ldconfig.c:698 elf/readlib.c:92
229.2461 -+#, c-format
229.2462 -+msgid "Input file %s not found.\n"
229.2463 -+msgstr "Vstupný súbor %s nebol nájdený.\n"
229.2464 -+
229.2465 -+#: iconv/iconv_prog.c:55
229.2466 - msgid "Input/Output format specification:"
229.2467 - msgstr "©pecifikácia vstupno/výstupného formátu:"
229.2468 -
229.2469 - #. TRANS Input/output error; usually used for physical read or write errors.
229.2470 --#: stdio-common/../sysdeps/gnu/errlist.c:52
229.2471 -+#: stdio-common/../sysdeps/gnu/errlist.c:53
229.2472 - msgid "Input/output error"
229.2473 - msgstr "Chyba vstupu/výstupu"
229.2474 -
229.2475 --#: nis/ypclnt.c:775
229.2476 -+#: nis/ypclnt.c:798
229.2477 - msgid "Internal NIS error"
229.2478 - msgstr "Interná chyba NIS"
229.2479 -
229.2480 --#: nis/ypclnt.c:839
229.2481 -+#: nis/ypclnt.c:862
229.2482 - msgid "Internal ypbind error"
229.2483 - msgstr "Interná chyba ypbind"
229.2484 -
229.2485 --#: stdio-common/../sysdeps/unix/siglist.c:27
229.2486 --#: sysdeps/unix/sysv/linux/siglist.h:23
229.2487 -+#: stdio-common/../sysdeps/unix/siglist.c:28 sysdeps/generic/siglist.h:30
229.2488 - msgid "Interrupt"
229.2489 - msgstr "Preru¹enie"
229.2490 -
229.2491 -@@ -1291,231 +2196,263 @@
229.2492 - #. TRANS You can choose to have functions resume after a signal that is handled,
229.2493 - #. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted
229.2494 - #. TRANS Primitives}.
229.2495 --#: stdio-common/../sysdeps/gnu/errlist.c:47
229.2496 -+#: stdio-common/../sysdeps/gnu/errlist.c:48
229.2497 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:34
229.2498 - msgid "Interrupted system call"
229.2499 - msgstr "Preru¹ené volanie systému"
229.2500 -
229.2501 --#: stdio-common/../sysdeps/gnu/errlist.c:666
229.2502 -+#: stdio-common/../sysdeps/gnu/errlist.c:685
229.2503 - msgid "Interrupted system call should be restarted"
229.2504 - msgstr "Preru¹ené volanie systému by malo by» znovu spustené"
229.2505 -
229.2506 --#: nis/nis_error.c:44
229.2507 --msgid "Invalid Object for operation"
229.2508 --msgstr "Neplatný objekt pre operáciu"
229.2509 --
229.2510 - #. TRANS Invalid argument. This is used to indicate various kinds of problems
229.2511 - #. TRANS with passing the wrong argument to a library function.
229.2512 --#: stdio-common/../sysdeps/gnu/errlist.c:164
229.2513 -+#: stdio-common/../sysdeps/gnu/errlist.c:165
229.2514 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:52
229.2515 - msgid "Invalid argument"
229.2516 - msgstr "Neprípustný argument"
229.2517 -
229.2518 --#: posix/regex.c:1018
229.2519 -+#: posix/regex.c:1102
229.2520 - msgid "Invalid back reference"
229.2521 - msgstr "Neprípustný spätný odkaz"
229.2522 -
229.2523 --#: posix/regex.c:1016
229.2524 -+#: posix/regex.c:1096
229.2525 - msgid "Invalid character class name"
229.2526 - msgstr "Neprípustný názov triedy znakov"
229.2527 -
229.2528 --#: sunrpc/clnt_perr.c:275
229.2529 -+#: sunrpc/clnt_perr.c:332
229.2530 - msgid "Invalid client credential"
229.2531 - msgstr "Neplatné oprávnenie klienta"
229.2532 -
229.2533 --#: sunrpc/clnt_perr.c:279
229.2534 -+#: sunrpc/clnt_perr.c:340
229.2535 - msgid "Invalid client verifier"
229.2536 - msgstr "Neplatné overenie klienta"
229.2537 -
229.2538 --#: posix/regex.c:1015
229.2539 -+#: posix/regex.c:1093
229.2540 - msgid "Invalid collation character"
229.2541 - msgstr "Neprípustný znak triedenia"
229.2542 -
229.2543 --#: posix/regex.c:1022
229.2544 -+#: posix/regex.c:1114
229.2545 - msgid "Invalid content of \\{\\}"
229.2546 - msgstr "Neprípustný obsah \\{\\}"
229.2547 -
229.2548 - #. TRANS An attempt to make an improper link across file systems was detected.
229.2549 - #. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but
229.2550 - #. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
229.2551 --#: stdio-common/../sysdeps/gnu/errlist.c:141
229.2552 -+#: stdio-common/../sysdeps/gnu/errlist.c:142
229.2553 - msgid "Invalid cross-device link"
229.2554 - msgstr "Neprípustný odkaz medzi zariadeniami"
229.2555 -
229.2556 --#: stdio-common/../sysdeps/gnu/errlist.c:702
229.2557 -+#: stdio-common/../sysdeps/gnu/errlist.c:721
229.2558 - msgid "Invalid exchange"
229.2559 - msgstr "Neprípustná výmena"
229.2560 -
229.2561 -+#: nis/nis_error.c:45
229.2562 -+msgid "Invalid object for operation"
229.2563 -+msgstr "Neplatný objekt pre operáciu"
229.2564 -+
229.2565 - #. TRANS While decoding a multibyte character the function came along an invalid
229.2566 - #. TRANS or an incomplete sequence of bytes or the given wide character is invalid.
229.2567 --#: stdio-common/../sysdeps/gnu/errlist.c:579
229.2568 -+#: stdio-common/../sysdeps/gnu/errlist.c:598
229.2569 - msgid "Invalid or incomplete multibyte or wide character"
229.2570 - msgstr "Neprípustný alebo nekompletný viacbajtový alebo ¹iroký znak"
229.2571 -
229.2572 --#: posix/regex.c:1025
229.2573 -+#: posix/regex.c:1123
229.2574 - msgid "Invalid preceding regular expression"
229.2575 - msgstr "Neprípustný predchádzajúci regulérny výraz"
229.2576 -
229.2577 --#: posix/regex.c:1023
229.2578 -+#: posix/regex.c:1117
229.2579 - msgid "Invalid range end"
229.2580 - msgstr "Neprípustný koniec rozsahu"
229.2581 -
229.2582 --#: posix/regex.c:1014
229.2583 -+#: posix/regex.c:1090
229.2584 - msgid "Invalid regular expression"
229.2585 - msgstr "Neprípustný regulérny výraz"
229.2586 -
229.2587 --#: stdio-common/../sysdeps/gnu/errlist.c:718
229.2588 -+#: stdio-common/../sysdeps/gnu/errlist.c:737
229.2589 - msgid "Invalid request code"
229.2590 - msgstr "Neprípustný kód ¾iadosti"
229.2591 -
229.2592 --#: stdio-common/../sysdeps/gnu/errlist.c:706
229.2593 -+#: stdio-common/../sysdeps/gnu/errlist.c:725
229.2594 - msgid "Invalid request descriptor"
229.2595 - msgstr "Neprípustný deskriptor ¾iadosti"
229.2596 -
229.2597 --#: sunrpc/clnt_perr.c:285
229.2598 -+#: sunrpc/clnt_perr.c:352
229.2599 - msgid "Invalid server verifier"
229.2600 - msgstr "Neplatné overenie servera"
229.2601 -
229.2602 --#: stdio-common/../sysdeps/gnu/errlist.c:722
229.2603 -+#: stdio-common/../sysdeps/gnu/errlist.c:741
229.2604 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:85
229.2605 - msgid "Invalid slot"
229.2606 - msgstr "Neplatná priehradka"
229.2607 -
229.2608 -+#: nscd/nscd.c:91
229.2609 -+msgid "Invalidate the specified cache"
229.2610 -+msgstr "Zneplatni» zadanú cache"
229.2611 -+
229.2612 - #. TRANS File is a directory; you cannot open a directory for writing,
229.2613 - #. TRANS or create or remove hard links to it.
229.2614 --#: stdio-common/../sysdeps/gnu/errlist.c:158
229.2615 -+#: stdio-common/../sysdeps/gnu/errlist.c:159
229.2616 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:51
229.2617 - msgid "Is a directory"
229.2618 - msgstr "Je adresár"
229.2619 -
229.2620 --#: stdio-common/../sysdeps/gnu/errlist.c:806
229.2621 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:169
229.2622 -+msgid "Is a name file"
229.2623 -+msgstr "Je súbor názvu"
229.2624 -+
229.2625 -+#: stdio-common/../sysdeps/gnu/errlist.c:825
229.2626 - msgid "Is a named type file"
229.2627 --msgstr "Je pomenovaný súbor"
229.2628 -+msgstr "Je pomenovaný súbor typu"
229.2629 -
229.2630 --#: nis/nis_print.c:187
229.2631 -+#: nis/nis_print.c:188
229.2632 - msgid "Kerberos.\n"
229.2633 - msgstr "Kerberos.\n"
229.2634 -
229.2635 --#: stdio-common/../sysdeps/unix/siglist.c:34
229.2636 --#: sysdeps/unix/sysv/linux/siglist.h:29
229.2637 -+#: stdio-common/../sysdeps/unix/siglist.c:35 sysdeps/generic/siglist.h:36
229.2638 - msgid "Killed"
229.2639 - msgstr "Zabitý"
229.2640 -
229.2641 --#: nis/nis_print.c:123
229.2642 -+#: nis/nis_print.c:124
229.2643 - msgid "LINK\n"
229.2644 - msgstr "ODKAZ\n"
229.2645 -
229.2646 --#: nis/nis_local_names.c:125
229.2647 -+#: nis/nis_local_names.c:126
229.2648 - #, c-format
229.2649 - msgid "LOCAL entry for UID %d in directory %s not unique\n"
229.2650 - msgstr "LOCAL záznam pre UID %d v adresári %s nie je jednoznaèný\n"
229.2651 -
229.2652 --#: stdio-common/../sysdeps/gnu/errlist.c:698
229.2653 -+#: stdio-common/../sysdeps/gnu/errlist.c:717
229.2654 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:74
229.2655 - msgid "Level 2 halted"
229.2656 - msgstr "Úroveò 2 zastavená"
229.2657 -
229.2658 --#: stdio-common/../sysdeps/gnu/errlist.c:674
229.2659 -+#: stdio-common/../sysdeps/gnu/errlist.c:693
229.2660 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:68
229.2661 - msgid "Level 2 not synchronized"
229.2662 - msgstr "Úroveò 2 nie je synchronizovaná"
229.2663 -
229.2664 --#: stdio-common/../sysdeps/gnu/errlist.c:678
229.2665 -+#: stdio-common/../sysdeps/gnu/errlist.c:697
229.2666 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:69
229.2667 - msgid "Level 3 halted"
229.2668 - msgstr "Úroveò 3 zastavená"
229.2669 -
229.2670 --#: stdio-common/../sysdeps/gnu/errlist.c:682
229.2671 -+#: stdio-common/../sysdeps/gnu/errlist.c:701
229.2672 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:70
229.2673 - msgid "Level 3 reset"
229.2674 - msgstr "Úroveò 3 nastavená na východzie hodnoty"
229.2675 -
229.2676 --#: nis/nis_error.c:53
229.2677 --msgid "Link Points to illegal name"
229.2678 --msgstr "Odkaz odkazuje na neprípustný názov"
229.2679 --
229.2680 --#: stdio-common/../sysdeps/gnu/errlist.c:638
229.2681 -+#: stdio-common/../sysdeps/gnu/errlist.c:657
229.2682 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:97
229.2683 - msgid "Link has been severed"
229.2684 - msgstr "Odkaz bol znièený"
229.2685 -
229.2686 --#: stdio-common/../sysdeps/gnu/errlist.c:686
229.2687 -+#: stdio-common/../sysdeps/gnu/errlist.c:705
229.2688 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:71
229.2689 - msgid "Link number out of range"
229.2690 - msgstr "Èíslo odkazu mimo rozsahu"
229.2691 -
229.2692 --#: nis/nis_print.c:282
229.2693 -+#: nis/nis_error.c:54
229.2694 -+msgid "Link points to illegal name"
229.2695 -+msgstr "Odkaz odkazuje na neprípustný názov"
229.2696 -+
229.2697 -+#: nis/nis_print.c:283
229.2698 - msgid "Linked Object Type : "
229.2699 - msgstr "Typ odkazovaného objektu : "
229.2700 -
229.2701 --#: nis/nis_print.c:284
229.2702 -+#: nis/nis_print.c:285
229.2703 - #, c-format
229.2704 - msgid "Linked to : %s\n"
229.2705 - msgstr "Odkazuje na : %s\n"
229.2706 -
229.2707 --#: nis/ypclnt.c:787
229.2708 -+#: nis/ypclnt.c:810
229.2709 - msgid "Local domain name not set"
229.2710 - msgstr "Meno miestnej domény nie je nastavené"
229.2711 -
229.2712 --#: nis/ypclnt.c:777
229.2713 -+#: nis/ypclnt.c:800
229.2714 - msgid "Local resource allocation failure"
229.2715 - msgstr "Chyba pri pridelení miestnych zdrojov"
229.2716 -
229.2717 --#: stdio-common/../sysdeps/gnu/errlist.c:734
229.2718 -+#: stdio-common/../sysdeps/gnu/errlist.c:753
229.2719 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:94
229.2720 - msgid "Machine is not on the network"
229.2721 - msgstr "Poèítaè nie je zapojený v sieti"
229.2722 -
229.2723 --#: nis/nis_error.c:45
229.2724 --msgid "Malformed Name, or illegal name"
229.2725 --msgstr "Chybne formované alebo neprípustný názov"
229.2726 -+#: nis/nis_error.c:46
229.2727 -+msgid "Malformed name, or illegal name"
229.2728 -+msgstr "Chybne formovaný alebo neprípustný názov"
229.2729 -
229.2730 --#: argp/argp-help.c:1182
229.2731 -+#: argp/argp-help.c:1185
229.2732 - msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
229.2733 - msgstr "Povinné alebo voliteµné argumenty dlhých tvarov volieb sú povinné alebo voliteµné pre µubovoµné zodpovedajúce krátke voµby."
229.2734 -
229.2735 --#: nis/nis_print.c:168
229.2736 -+#: elf/ldconfig.c:135
229.2737 -+msgid "Manually link individual libraries."
229.2738 -+msgstr "Ruène linkova» jednotlivé kni¾nice."
229.2739 -+
229.2740 -+#: nis/nis_print.c:169
229.2741 - msgid "Master Server :\n"
229.2742 - msgstr "Hlavný server :\n"
229.2743 -
229.2744 --#: nis/nis_error.c:75
229.2745 -+#: nis/nis_error.c:76
229.2746 - msgid "Master server busy, full dump rescheduled."
229.2747 - msgstr "Hlavný server zaneprázdnený, úplný prenos preplánovaný."
229.2748 -
229.2749 --#: posix/../sysdeps/posix/gai_strerror.c:35
229.2750 -+#: posix/../sysdeps/posix/gai_strerror.c:36
229.2751 - msgid "Memory allocation failure"
229.2752 - msgstr "Pridelenie pamäti zlyhalo"
229.2753 -
229.2754 --#: posix/regex.c:1024
229.2755 -+#: posix/regex.c:1120
229.2756 - msgid "Memory exhausted"
229.2757 - msgstr "Pamä» vyèerpaná"
229.2758 -
229.2759 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:82
229.2760 -+msgid "Message tables full"
229.2761 -+msgstr "Plná tabuµka správ"
229.2762 -+
229.2763 - #. TRANS The size of a message sent on a socket was larger than the supported
229.2764 - #. TRANS maximum size.
229.2765 --#: stdio-common/../sysdeps/gnu/errlist.c:317
229.2766 -+#: stdio-common/../sysdeps/gnu/errlist.c:318
229.2767 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:127
229.2768 - msgid "Message too long"
229.2769 - msgstr "Príli¹ dlhá správa"
229.2770 -
229.2771 --#: nis/nis_error.c:57
229.2772 -+#: nis/nis_error.c:58
229.2773 - msgid "Missing or malformed attribute"
229.2774 - msgstr "Chýbajúci alebo chybne formovaný atribút"
229.2775 -
229.2776 --#: nis/nis_print.c:323
229.2777 -+#: nis/nis_print.c:328
229.2778 - #, c-format
229.2779 - msgid "Mod. Time : %s"
229.2780 - msgstr "Èas zmeny :%s"
229.2781 -
229.2782 --#: nis/nis_error.c:50
229.2783 -+#: nis/nis_error.c:51
229.2784 - msgid "Modification failed"
229.2785 - msgstr "Modifikácia zlyhala"
229.2786 -
229.2787 --#: nis/nis_error.c:63
229.2788 -+#: nis/nis_error.c:64
229.2789 - msgid "Modify operation failed"
229.2790 - msgstr "Operácia zmeny zlyhala"
229.2791 -
229.2792 --#: locale/programs/locale.c:68
229.2793 -+#: locale/programs/locale.c:70
229.2794 - msgid "Modify output format:"
229.2795 - msgstr "Modifikova» výstupný formát:"
229.2796 -
229.2797 --#: stdio-common/../sysdeps/gnu/errlist.c:630
229.2798 -+#: stdio-common/../sysdeps/gnu/errlist.c:649
229.2799 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:104
229.2800 - msgid "Multihop attempted"
229.2801 - msgstr "Pokus o spojenie cez viac uzlov"
229.2802 -
229.2803 --#: catgets/gencat.c:106 catgets/gencat.c:110 db2/makedb.c:59
229.2804 --#: locale/programs/localedef.c:115 nscd/nscd.c:77
229.2805 -+#: nscd/nscd_conf.c:182
229.2806 -+msgid "Must specify user name for server-user option"
229.2807 -+msgstr "Pre server-user voµbu je potrebné zada» meno pou¾ívateµa"
229.2808 -+
229.2809 -+#: catgets/gencat.c:111 catgets/gencat.c:115 locale/programs/localedef.c:115
229.2810 -+#: nscd/nscd.c:83
229.2811 - msgid "NAME"
229.2812 - msgstr "NÁZOV"
229.2813 -
229.2814 --#: locale/programs/locale.c:78
229.2815 -+#: locale/programs/locale.c:80
229.2816 - msgid ""
229.2817 - "NAME\n"
229.2818 - "[-a|-m]"
229.2819 -@@ -1523,269 +2460,365 @@
229.2820 - "NÁZOV\n"
229.2821 - "[-a|-m]"
229.2822 -
229.2823 --#: nis/nis_print.c:31
229.2824 -+#: nis/nis_print.c:32
229.2825 - msgid "NIS"
229.2826 - msgstr "NIS"
229.2827 -
229.2828 --#: nis/ypclnt.c:791
229.2829 -+#: nis/ypclnt.c:814
229.2830 - msgid "NIS client/server version mismatch - can't supply service"
229.2831 - msgstr "Rozdielne verzie NIS klienta a serveru - nie je mo¾né poskytnú» slu¾bu"
229.2832 -
229.2833 --#: nis/ypclnt.c:789
229.2834 -+#: nis/ypclnt.c:812
229.2835 - msgid "NIS map database is bad"
229.2836 - msgstr "Databáza máp NIS je chybná"
229.2837 -
229.2838 --#: nis/nis_error.c:68
229.2839 -+#: nis/nis_error.c:69
229.2840 - msgid "NIS+ operation failed"
229.2841 - msgstr "NIS+ operácia zlyhala"
229.2842 -
229.2843 --#: nis/nis_error.c:33
229.2844 -+#: nis/nis_error.c:34
229.2845 - msgid "NIS+ servers unreachable"
229.2846 - msgstr "NIS+ server nie je dostupný"
229.2847 -
229.2848 --#: nis/nis_error.c:69
229.2849 -+#: nis/nis_error.c:70
229.2850 - msgid "NIS+ service is unavailable or not installed"
229.2851 - msgstr "Slu¾ba NIS+ nie je dostupná alebo nain¹talovaná"
229.2852 -
229.2853 --#: nis/nis_print.c:108
229.2854 -+#: nis/nis_print.c:109
229.2855 - msgid "NO OBJECT\n"
229.2856 - msgstr "®IADNY OBJEKT\n"
229.2857 -
229.2858 --#: nscd/nscd.c:81
229.2859 -+#: nscd/nscd.c:87
229.2860 - msgid "NUMBER"
229.2861 - msgstr "POÈET"
229.2862 -
229.2863 --#: nis/nis_print.c:162
229.2864 -+#: nis/nis_print.c:163
229.2865 - #, c-format
229.2866 --msgid "Name : '%s'\n"
229.2867 --msgstr "Názov : '%s'\n"
229.2868 -+msgid "Name : `%s'\n"
229.2869 -+msgstr "Názov : `%s'\n"
229.2870 -
229.2871 --#: nscd/nscd.c:88
229.2872 -+#: nscd/nscd.c:97
229.2873 - msgid "Name Service Cache Daemon."
229.2874 - msgstr "Démon cache slu¾by názvov."
229.2875 -
229.2876 --#: nis/nis_error.c:40
229.2877 -+#: nis/nis_error.c:41
229.2878 - msgid "Name not served by this server"
229.2879 - msgstr "Názov nie je obsluhovaný týmto serverom"
229.2880 -
229.2881 --#: stdio-common/../sysdeps/gnu/errlist.c:758
229.2882 -+#: stdio-common/../sysdeps/gnu/errlist.c:777
229.2883 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:110
229.2884 - msgid "Name not unique on network"
229.2885 - msgstr "Meno nie je v sieti jednoznaèné"
229.2886 -
229.2887 --#: posix/../sysdeps/posix/gai_strerror.c:37
229.2888 -+#: posix/../sysdeps/posix/gai_strerror.c:38
229.2889 - msgid "Name or service not known"
229.2890 - msgstr "Názov alebo slu¾ba neznáme"
229.2891 -
229.2892 --#: nis/nis_error.c:49
229.2893 -+#: malloc/memusagestat.c:53
229.2894 -+msgid "Name output file"
229.2895 -+msgstr "Výstupný súbor názvu"
229.2896 -+
229.2897 -+#: nis/nis_error.c:50
229.2898 - msgid "Name/entry isn't unique"
229.2899 - msgstr "Názov/záznam nie sú jednoznaèné"
229.2900 -
229.2901 --#: nis/nis_error.c:58
229.2902 -+#: nis/nis_error.c:59
229.2903 - msgid "Named object is not searchable"
229.2904 - msgstr "Zadaný objekt nie je prehµadávateµný"
229.2905 -
229.2906 - #. TRANS ???
229.2907 --#: stdio-common/../sysdeps/gnu/errlist.c:566
229.2908 -+#: stdio-common/../sysdeps/gnu/errlist.c:567
229.2909 - msgid "Need authenticator"
229.2910 - msgstr "Potrebuje overovací objekt"
229.2911 -
229.2912 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:159
229.2913 -+msgid "Network dropped connection because of reset"
229.2914 -+msgstr "Sie» zru¹ila spojenie kvôli resetu"
229.2915 -+
229.2916 - #. TRANS A network connection was reset because the remote host crashed.
229.2917 --#: stdio-common/../sysdeps/gnu/errlist.c:389
229.2918 -+#: stdio-common/../sysdeps/gnu/errlist.c:390
229.2919 - msgid "Network dropped connection on reset"
229.2920 - msgstr "Sie» zru¹ila spojenie (problém so vzdialeným poèítaèom)"
229.2921 -
229.2922 - #. TRANS A socket operation failed because the network was down.
229.2923 --#: stdio-common/../sysdeps/gnu/errlist.c:378
229.2924 -+#: stdio-common/../sysdeps/gnu/errlist.c:379
229.2925 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:157
229.2926 - msgid "Network is down"
229.2927 - msgstr "Sie» je nefunkèná"
229.2928 -
229.2929 - #. TRANS A socket operation failed because the subnet containing the remote host
229.2930 - #. TRANS was unreachable.
229.2931 --#: stdio-common/../sysdeps/gnu/errlist.c:384
229.2932 -+#: stdio-common/../sysdeps/gnu/errlist.c:385
229.2933 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:158
229.2934 - msgid "Network is unreachable"
229.2935 - msgstr "Sie» nie je dostupná"
229.2936 -
229.2937 --#: stdio-common/../sysdeps/gnu/errlist.c:694
229.2938 -+#: stdio-common/../sysdeps/gnu/errlist.c:713
229.2939 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:73
229.2940 - msgid "No CSI structure available"
229.2941 - msgstr "CSI ¹truktúra nedostupná"
229.2942 -
229.2943 --#: stdio-common/../sysdeps/gnu/errlist.c:802
229.2944 -+#: stdio-common/../sysdeps/gnu/errlist.c:821
229.2945 - msgid "No XENIX semaphores available"
229.2946 - msgstr "XENIX semafóry nedostupné"
229.2947 -
229.2948 --#: posix/../sysdeps/posix/gai_strerror.c:36
229.2949 -+#: posix/../sysdeps/posix/gai_strerror.c:37
229.2950 - msgid "No address associated with hostname"
229.2951 - msgstr "Názov poèítaèa nemá priradenú adresu"
229.2952 -
229.2953 --#: resolv/herror.c:77
229.2954 -+#: resolv/herror.c:71
229.2955 - msgid "No address associated with name"
229.2956 - msgstr "Názov nemá priradenú adresu"
229.2957 -
229.2958 --#: stdio-common/../sysdeps/gnu/errlist.c:714
229.2959 -+#: stdio-common/../sysdeps/gnu/errlist.c:733
229.2960 - msgid "No anode"
229.2961 - msgstr "®iadny anode"
229.2962 -
229.2963 - #. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this
229.2964 - #. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
229.2965 - #. TRANS other from network operations.
229.2966 --#: stdio-common/../sysdeps/gnu/errlist.c:408
229.2967 -+#: stdio-common/../sysdeps/gnu/errlist.c:409
229.2968 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:162
229.2969 - msgid "No buffer space available"
229.2970 - msgstr "Nie je mo¾né prideli» pamä» pre V/V operácie"
229.2971 -
229.2972 -+#: locale/programs/ld-ctype.c:425
229.2973 -+msgid "No character set name specified in charmap"
229.2974 -+msgstr "V znakovej mape nie je zadaný názov znakovej sady"
229.2975 -+
229.2976 - #. TRANS There are no child processes. This error happens on operations that are
229.2977 - #. TRANS supposed to manipulate child processes, when there aren't any processes
229.2978 - #. TRANS to manipulate.
229.2979 --#: stdio-common/../sysdeps/gnu/errlist.c:89
229.2980 -+#: stdio-common/../sysdeps/gnu/errlist.c:90
229.2981 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:40
229.2982 - msgid "No child processes"
229.2983 - msgstr "Detské procesy neexistujú"
229.2984 -
229.2985 --#: stdio-common/../sysdeps/gnu/errlist.c:634
229.2986 -+#: stdio-common/../sysdeps/gnu/errlist.c:653
229.2987 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:91
229.2988 - msgid "No data available"
229.2989 - msgstr "Dáta nie sú k dispozícii"
229.2990 -
229.2991 --#: nis/nis_error.c:73
229.2992 -+#: locale/programs/ld-address.c:131 locale/programs/ld-collate.c:1500
229.2993 -+#: locale/programs/ld-ctype.c:407 locale/programs/ld-identification.c:132
229.2994 -+#: locale/programs/ld-measurement.c:93 locale/programs/ld-messages.c:98
229.2995 -+#: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:94
229.2996 -+#: locale/programs/ld-numeric.c:99 locale/programs/ld-paper.c:91
229.2997 -+#: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:160
229.2998 -+#, c-format
229.2999 -+msgid "No definition for %s category found"
229.3000 -+msgstr "Nebola nájdená definícia kategórie %s"
229.3001 -+
229.3002 -+#: nis/nis_error.c:74
229.3003 - msgid "No file space on server"
229.3004 - msgstr "Na serveri u¾ nie je ¾iadne miesto pre súbory"
229.3005 -
229.3006 -+#: elf/ldconfig.c:532
229.3007 -+#, c-format
229.3008 -+msgid "No link created since soname could not be found for %s"
229.3009 -+msgstr "Odkaz nebol vytvorený, keï¾e pre %s nebolo mo¾né nájs» soname"
229.3010 -+
229.3011 - #. TRANS No locks available. This is used by the file locking facilities; see
229.3012 - #. TRANS @ref{File Locks}. This error is never generated by the GNU system, but
229.3013 - #. TRANS it can result from an operation to an NFS server running another
229.3014 - #. TRANS operating system.
229.3015 --#: stdio-common/../sysdeps/gnu/errlist.c:547
229.3016 -+#: stdio-common/../sysdeps/gnu/errlist.c:548
229.3017 - msgid "No locks available"
229.3018 - msgstr "Zámky nie sú k dispozícii"
229.3019 -
229.3020 --#: posix/regex.c:1013
229.3021 -+#: posix/regex.c:1087
229.3022 - msgid "No match"
229.3023 - msgstr "®iadna zhoda"
229.3024 -
229.3025 --#: stdio-common/../sysdeps/gnu/errlist.c:814
229.3026 -+#: stdio-common/../sysdeps/gnu/errlist.c:833
229.3027 - msgid "No medium found"
229.3028 - msgstr "Nenájdené ¾iadne médium"
229.3029 -
229.3030 --#: stdio-common/../sysdeps/gnu/errlist.c:642
229.3031 -+#: stdio-common/../sysdeps/gnu/errlist.c:661
229.3032 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:65
229.3033 - msgid "No message of desired type"
229.3034 - msgstr "®iadna správa ¾elaného typu"
229.3035 -
229.3036 --#: nis/ypclnt.c:779
229.3037 -+#: nis/ypclnt.c:802
229.3038 - msgid "No more records in map database"
229.3039 - msgstr "®iadne ïal¹ie záznamy v databáze"
229.3040 -
229.3041 --#: posix/regex.c:5515
229.3042 -+#: posix/regex.c:5955
229.3043 - msgid "No previous regular expression"
229.3044 - msgstr "®iadny predchádzajúci regulérny výraz"
229.3045 -
229.3046 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:76
229.3047 -+msgid "No record locks available"
229.3048 -+msgstr "Nie sú k dispozícii ¾iadne zámky"
229.3049 -+
229.3050 - #: sunrpc/rpcinfo.c:570
229.3051 - msgid "No remote programs registered.\n"
229.3052 - msgstr "Nie sú registrované ¾iadne vzdialené programy\n"
229.3053 -
229.3054 - #. TRANS The remote host for a requested network connection is not reachable.
229.3055 --#: stdio-common/../sysdeps/gnu/errlist.c:474
229.3056 -+#: stdio-common/../sysdeps/gnu/errlist.c:475
229.3057 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:178
229.3058 - msgid "No route to host"
229.3059 - msgstr "Cesta k poèítaèu neexistuje"
229.3060 -
229.3061 - #. TRANS No space left on device; write operation on a file failed because the
229.3062 - #. TRANS disk is full.
229.3063 --#: stdio-common/../sysdeps/gnu/errlist.c:208
229.3064 -+#: stdio-common/../sysdeps/gnu/errlist.c:209
229.3065 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:58
229.3066 - msgid "No space left on device"
229.3067 - msgstr "Na zariadení u¾ nie je ¾iadne miesto"
229.3068 -
229.3069 - #. TRANS The wrong type of device was given to a function that expects a
229.3070 - #. TRANS particular sort of device.
229.3071 --#: stdio-common/../sysdeps/gnu/errlist.c:147
229.3072 -+#: stdio-common/../sysdeps/gnu/errlist.c:148
229.3073 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:49
229.3074 - msgid "No such device"
229.3075 - msgstr "Také zariadenie neexistuje"
229.3076 -
229.3077 -+#. TRANS No such device or address. The system tried to use the device
229.3078 -+#. TRANS represented by a file you specified, and it couldn't find the device.
229.3079 -+#. TRANS This can mean that the device file was installed incorrectly, or that
229.3080 -+#. TRANS the physical device is missing or not correctly attached to the
229.3081 -+#. TRANS computer.
229.3082 -+#: stdio-common/../sysdeps/gnu/errlist.c:62
229.3083 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:36
229.3084 -+msgid "No such device or address"
229.3085 -+msgstr "Také zariadenie alebo adresa neexistuje"
229.3086 -+
229.3087 - #. TRANS No such file or directory. This is a ``file doesn't exist'' error
229.3088 - #. TRANS for ordinary files that are referenced in contexts where they are
229.3089 - #. TRANS expected to already exist.
229.3090 --#: stdio-common/../sysdeps/gnu/errlist.c:31
229.3091 -+#: stdio-common/../sysdeps/gnu/errlist.c:32
229.3092 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:32
229.3093 - msgid "No such file or directory"
229.3094 - msgstr "Adresár alebo súbor neexistuje"
229.3095 -
229.3096 --#: nis/ypclnt.c:773
229.3097 -+#: nis/ypclnt.c:796
229.3098 - msgid "No such key in map"
229.3099 - msgstr "Tento kµúè v databáze neexistuje"
229.3100 -
229.3101 --#: nis/ypclnt.c:771
229.3102 -+#: nis/ypclnt.c:794
229.3103 - msgid "No such map in server's domain"
229.3104 - msgstr "Táto mapa sa v doméne servera nenachádza"
229.3105 -
229.3106 - #. TRANS No process matches the specified process ID.
229.3107 --#: stdio-common/../sysdeps/gnu/errlist.c:36
229.3108 -+#: stdio-common/../sysdeps/gnu/errlist.c:37
229.3109 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:33
229.3110 - msgid "No such process"
229.3111 - msgstr "Tento proces neexistuje"
229.3112 -
229.3113 --#: nis/nis_error.c:60
229.3114 -+#: nis/nis_error.c:61
229.3115 - msgid "Non NIS+ namespace encountered"
229.3116 - msgstr "Zaznamenaný priestor názvov mimo NIS+"
229.3117 -
229.3118 --#: posix/../sysdeps/posix/gai_strerror.c:33
229.3119 -+#: posix/../sysdeps/posix/gai_strerror.c:34
229.3120 - msgid "Non-recoverable failure in name resolution"
229.3121 - msgstr "Neopraviteµná chyba pri rie¹ení názvu"
229.3122 -
229.3123 --#: nis/nis_print.c:176
229.3124 -+#: nis/nis_print.c:177
229.3125 - msgid "None.\n"
229.3126 - msgstr "®iadne.\n"
229.3127 -
229.3128 --#: nis/nis_error.c:48
229.3129 --msgid "Not Found, no such name"
229.3130 --msgstr "Nenájdené, takýto názov neexistuje"
229.3131 --
229.3132 --#: stdio-common/../sysdeps/gnu/errlist.c:798
229.3133 -+#: stdio-common/../sysdeps/gnu/errlist.c:817
229.3134 - msgid "Not a XENIX named type file"
229.3135 - msgstr "Nejde o pomenovaný XENIX súbor"
229.3136 -
229.3137 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:107
229.3138 -+msgid "Not a data message"
229.3139 -+msgstr "Nejde o dátovú správu"
229.3140 -+
229.3141 - #. TRANS A file that isn't a directory was specified when a directory is required.
229.3142 --#: stdio-common/../sysdeps/gnu/errlist.c:152
229.3143 -+#: stdio-common/../sysdeps/gnu/errlist.c:153
229.3144 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:50
229.3145 - msgid "Not a directory"
229.3146 - msgstr "Nie je adresár"
229.3147 -
229.3148 --#: nis/nis_error.c:30
229.3149 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:167
229.3150 -+msgid "Not a name file"
229.3151 -+msgstr "Nejde o súbor názvu"
229.3152 -+
229.3153 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:90
229.3154 -+msgid "Not a stream device"
229.3155 -+msgstr "Nejde o prúdové zariadenie"
229.3156 -+
229.3157 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:168
229.3158 -+msgid "Not available"
229.3159 -+msgstr "Nie je k dispozícii"
229.3160 -+
229.3161 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:42
229.3162 -+msgid "Not enough space"
229.3163 -+msgstr "Nedostatok miesta"
229.3164 -+
229.3165 -+#: nis/nis_error.c:31
229.3166 - msgid "Not found"
229.3167 - msgstr "Nenájdené"
229.3168 -
229.3169 --#: nis/nis_error.c:43
229.3170 -+#: nis/nis_error.c:49
229.3171 -+msgid "Not found, no such name"
229.3172 -+msgstr "Nenájdené, takýto názov neexistuje"
229.3173 -+
229.3174 -+#: nis/nis_error.c:44
229.3175 - msgid "Not master server for this domain"
229.3176 - msgstr "Nie je hlavný server pre túto doménu"
229.3177 -
229.3178 --#: nis/nis_error.c:39
229.3179 -+#: nis/nis_error.c:40
229.3180 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:31
229.3181 - msgid "Not owner"
229.3182 - msgstr "Nie je vlastníkom"
229.3183 -
229.3184 --#: nis/nis_print.c:263
229.3185 -+#. TRANS Not supported. A function returns this error when certain parameter
229.3186 -+#. TRANS values are valid, but the functionality they request is not available.
229.3187 -+#. TRANS This can mean that the function does not implement a particular command
229.3188 -+#. TRANS or option value or flag bit at all. For functions that operate on some
229.3189 -+#. TRANS object given in a parameter, such as a file descriptor or a port, it
229.3190 -+#. TRANS might instead mean that only @emph{that specific object} (file
229.3191 -+#. TRANS descriptor, port, etc.) is unable to support the other parameters given;
229.3192 -+#. TRANS different file descriptors might support different ranges of parameter
229.3193 -+#. TRANS values.
229.3194 -+#. TRANS
229.3195 -+#. TRANS If the entire function is not available at all in the implementation,
229.3196 -+#. TRANS it returns @code{ENOSYS} instead.
229.3197 -+#: stdio-common/../sysdeps/gnu/errlist.c:592
229.3198 -+msgid "Not supported"
229.3199 -+msgstr "Nie je podporovaný"
229.3200 -+
229.3201 -+#: nis/nis_print.c:264
229.3202 - #, c-format
229.3203 - msgid "Number of Columns : %d\n"
229.3204 - msgstr "Poèet ståpcov : %d\n"
229.3205 -
229.3206 --#: nis/nis_print.c:358
229.3207 -+#: nis/nis_print.c:363
229.3208 - #, c-format
229.3209 - msgid "Number of objects : %u\n"
229.3210 - msgstr "Poèet objektov : %u\n"
229.3211 -
229.3212 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:120
229.3213 -+msgid "Number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"
229.3214 -+msgstr "Poèet symbolických odkazov nájdených poèas prechádzania cesty presahuje MAXSYMLINKS"
229.3215 -+
229.3216 - #. TRANS Domain error; used by mathematical functions when an argument value does
229.3217 - #. TRANS not fall into the domain over which the function is defined.
229.3218 --#: stdio-common/../sysdeps/gnu/errlist.c:240
229.3219 -+#: stdio-common/../sysdeps/gnu/errlist.c:241
229.3220 - msgid "Numerical argument out of domain"
229.3221 - msgstr "Èíselný rozsah mimo domény definície funkcie"
229.3222 -
229.3223 - #. TRANS Range error; used by mathematical functions when the result value is
229.3224 - #. TRANS not representable because of overflow or underflow.
229.3225 --#: stdio-common/../sysdeps/gnu/errlist.c:246
229.3226 -+#: stdio-common/../sysdeps/gnu/errlist.c:247
229.3227 - msgid "Numerical result out of range"
229.3228 - msgstr "Èíselný výsledok mimo povoleného rozsahu"
229.3229 -
229.3230 --#: nis/nis_print.c:362
229.3231 -+#: nis/nis_print.c:367
229.3232 - #, c-format
229.3233 - msgid "Object #%d:\n"
229.3234 - msgstr "Objekt #%d:\n"
229.3235 -
229.3236 --#: nis/nis_print.c:314
229.3237 -+#: nis/nis_print.c:317
229.3238 - #, c-format
229.3239 - msgid "Object Name : %s\n"
229.3240 - msgstr "Názov objektu : %s\n"
229.3241 -
229.3242 --#: nis/nis_print.c:324
229.3243 -+#: nis/nis_print.c:329
229.3244 - msgid "Object Type : "
229.3245 - msgstr "Typ objektu : "
229.3246 -
229.3247 -@@ -1793,31 +2826,45 @@
229.3248 - #. TRANS already specifies an NFS-mounted file.
229.3249 - #. TRANS (This is an error on some operating systems, but we expect it to work
229.3250 - #. TRANS properly on the GNU system, making this error code impossible.)
229.3251 --#: stdio-common/../sysdeps/gnu/errlist.c:514
229.3252 -+#: stdio-common/../sysdeps/gnu/errlist.c:515
229.3253 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:96
229.3254 - msgid "Object is remote"
229.3255 - msgstr "Objekt je vzdialený"
229.3256 -
229.3257 --#: nis/nis_error.c:42
229.3258 -+#: nis/nis_error.c:43
229.3259 - msgid "Object with same name exists"
229.3260 - msgstr "Existuje objekt s rovnakým názvom"
229.3261 -
229.3262 --#: timezone/zic.c:1995
229.3263 -+#: timezone/zic.c:2022
229.3264 - msgid "Odd number of quotation marks"
229.3265 - msgstr "Nepárny poèet úvodzoviek"
229.3266 -
229.3267 --#: nscd/nscd.c:185
229.3268 -+#: elf/ldconfig.c:134
229.3269 -+msgid "Only process directories specified on the command line. Don't build cache."
229.3270 -+msgstr "Na príkazovom riadku sú zadané iba adresáre procesov. Nevytvára» cache."
229.3271 -+
229.3272 -+#: nscd/nscd.c:200 nscd/nscd.c:220 nscd/nscd.c:226
229.3273 - msgid "Only root is allowed to use this option!"
229.3274 - msgstr "Táto voµba je dostupná iba superu¾ívateµovi!"
229.3275 -
229.3276 - #. TRANS An operation is already in progress on an object that has non-blocking
229.3277 - #. TRANS mode selected.
229.3278 --#: stdio-common/../sysdeps/gnu/errlist.c:306
229.3279 -+#: stdio-common/../sysdeps/gnu/errlist.c:307
229.3280 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:179
229.3281 - msgid "Operation already in progress"
229.3282 - msgstr "Operácia je u¾ rozpracovaná"
229.3283 -
229.3284 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:77
229.3285 -+msgid "Operation canceled"
229.3286 -+msgstr "Operácia zru¹ená"
229.3287 -+
229.3288 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:119
229.3289 -+msgid "Operation not applicable"
229.3290 -+msgstr "Operácia nie je aplikovateµná"
229.3291 -+
229.3292 - #. TRANS Operation not permitted; only the owner of the file (or other resource)
229.3293 - #. TRANS or processes with special privileges can perform the operation.
229.3294 --#: stdio-common/../sysdeps/gnu/errlist.c:24
229.3295 -+#: stdio-common/../sysdeps/gnu/errlist.c:25
229.3296 - msgid "Operation not permitted"
229.3297 - msgstr "Operácia nie je povolená"
229.3298 -
229.3299 -@@ -1827,10 +2874,15 @@
229.3300 - #. TRANS error can happen for many calls when the object does not support the
229.3301 - #. TRANS particular operation; it is a generic indication that the server knows
229.3302 - #. TRANS nothing to do for that call.
229.3303 --#: stdio-common/../sysdeps/gnu/errlist.c:350
229.3304 -+#: stdio-common/../sysdeps/gnu/errlist.c:351
229.3305 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:78
229.3306 - msgid "Operation not supported"
229.3307 - msgstr "Operácia nie je podporovaná"
229.3308 -
229.3309 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:152
229.3310 -+msgid "Operation not supported on transport endpoint"
229.3311 -+msgstr "Operácia nie je podporovaná na koncovom bode komunikácie"
229.3312 -+
229.3313 - #. TRANS An operation that cannot complete immediately was initiated on an object
229.3314 - #. TRANS that has non-blocking mode selected. Some functions that must always
229.3315 - #. TRANS block (such as @code{connect}; @pxref{Connecting}) never return
229.3316 -@@ -1839,7 +2891,8 @@
229.3317 - #. TRANS the object before the call completes return @code{EALREADY}. You can
229.3318 - #. TRANS use the @code{select} function to find out when the pending operation
229.3319 - #. TRANS has completed; @pxref{Waiting for I/O}.
229.3320 --#: stdio-common/../sysdeps/gnu/errlist.c:300
229.3321 -+#: stdio-common/../sysdeps/gnu/errlist.c:301
229.3322 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:180
229.3323 - msgid "Operation now in progress"
229.3324 - msgstr "Operácia prebieha"
229.3325 -
229.3326 -@@ -1848,67 +2901,86 @@
229.3327 - #. TRANS
229.3328 - #. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
229.3329 - #. TRANS separate error code.
229.3330 --#: stdio-common/../sysdeps/gnu/errlist.c:288
229.3331 -+#: stdio-common/../sysdeps/gnu/errlist.c:289
229.3332 - msgid "Operation would block"
229.3333 - msgstr "Operácia by blokovala"
229.3334 -
229.3335 --#: stdio-common/../sysdeps/gnu/errlist.c:646
229.3336 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:129
229.3337 -+msgid "Option not supported by protocol"
229.3338 -+msgstr "Voµba nie je protokolom podporovaná"
229.3339 -+
229.3340 -+#: locale/programs/localedef.c:103
229.3341 -+msgid "Optional output file prefix"
229.3342 -+msgstr "Voliteµný prefix výstupného súboru"
229.3343 -+
229.3344 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:93
229.3345 -+msgid "Out of stream resources"
229.3346 -+msgstr "Prúdové zdroje vyèerpané"
229.3347 -+
229.3348 -+#: stdio-common/../sysdeps/gnu/errlist.c:665
229.3349 - msgid "Out of streams resources"
229.3350 - msgstr "Prúdové zdroje vyèerpané"
229.3351 -
229.3352 --#: iconv/iconv_prog.c:59 locale/programs/localedef.c:101
229.3353 -+#: iconv/iconv_prog.c:60 locale/programs/localedef.c:99
229.3354 - msgid "Output control:"
229.3355 - msgstr "Riadenie výstupu:"
229.3356 -
229.3357 --#: elf/sprof.c:76
229.3358 -+#: elf/sprof.c:72
229.3359 - msgid "Output selection:"
229.3360 - msgstr "Výber výstupu:"
229.3361 -
229.3362 --#: nis/nis_print.c:316
229.3363 -+#: nis/nis_print.c:319
229.3364 - #, c-format
229.3365 - msgid "Owner : %s\n"
229.3366 - msgstr "Vlastník : %s\n"
229.3367 -
229.3368 --#: nis/nis_print.c:126
229.3369 -+#: nis/nis_print.c:127
229.3370 - msgid "PRIVATE\n"
229.3371 - msgstr "SÚKROMNÝ\n"
229.3372 -
229.3373 --#: stdio-common/../sysdeps/gnu/errlist.c:738
229.3374 -+#: stdio-common/../sysdeps/gnu/errlist.c:757
229.3375 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:95
229.3376 - msgid "Package not installed"
229.3377 - msgstr "Balík nie je nain¹talovaný"
229.3378 -
229.3379 --#: nscd/nscd_conf.c:84
229.3380 -+#: nscd/nscd_conf.c:83
229.3381 - #, c-format
229.3382 - msgid "Parse error: %s"
229.3383 - msgstr "Chyba analýzy: %s"
229.3384 -
229.3385 --#: nis/nis_error.c:54
229.3386 --msgid "Partial Success"
229.3387 -+#: nis/nis_error.c:55
229.3388 -+msgid "Partial success"
229.3389 - msgstr "Èiastoèný úspech"
229.3390 -
229.3391 --#: nis/nis_error.c:62
229.3392 -+#: nis/nis_error.c:63
229.3393 - msgid "Passed object is not the same object on server"
229.3394 - msgstr "Odovzdaný objekt nie je na serveri tým istým objektom"
229.3395 -
229.3396 -+#: elf/ldconfig.c:287
229.3397 -+#, c-format
229.3398 -+msgid "Path `%s' given more than once"
229.3399 -+msgstr "Cesta `%s' bola zadaná viac ako raz"
229.3400 -+
229.3401 - #. TRANS Permission denied; the file permissions do not allow the attempted operation.
229.3402 --#: nis/nis_error.c:38 nis/ypclnt.c:793
229.3403 --#: stdio-common/../sysdeps/gnu/errlist.c:108
229.3404 -+#: nis/nis_error.c:39 nis/ypclnt.c:816
229.3405 -+#: stdio-common/../sysdeps/gnu/errlist.c:109
229.3406 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:43
229.3407 - msgid "Permission denied"
229.3408 - msgstr "Prístup odmietnutý"
229.3409 -
229.3410 --#: sysdeps/unix/sysv/linux/siglist.h:64
229.3411 -+#: sysdeps/generic/siglist.h:71
229.3412 - msgid "Power failure"
229.3413 - msgstr "Výpadok napájania"
229.3414 -
229.3415 --#: posix/regex.c:1026
229.3416 -+#: posix/regex.c:1126
229.3417 - msgid "Premature end of regular expression"
229.3418 - msgstr "Predèasný koniec regulérneho výrazu"
229.3419 -
229.3420 --#: db2/makedb.c:63
229.3421 --msgid "Print content of database file, one entry a line"
229.3422 --msgstr "Vypísa» obsah databázového súboru, jeden záznam na riadok"
229.3423 -+#: elf/ldconfig.c:127
229.3424 -+msgid "Print cache"
229.3425 -+msgstr "Vypísa» cache"
229.3426 -
229.3427 --#: nscd/nscd.c:83
229.3428 -+#: nscd/nscd.c:89
229.3429 - msgid "Print current configuration statistic"
229.3430 - msgstr "Vypísa» ¹tatistiku aktuálnej konfigurácie"
229.3431 -
229.3432 -@@ -1916,243 +2988,259 @@
229.3433 - msgid "Print more messages"
229.3434 - msgstr "Vypísa» viac správ"
229.3435 -
229.3436 --#: argp/argp-parse.c:148
229.3437 -+#: argp/argp-parse.c:154
229.3438 - msgid "Print program version"
229.3439 - msgstr "Vypísa» verziu programu"
229.3440 -
229.3441 --#: nis/nis_error.c:29
229.3442 -+#: nis/nis_error.c:30
229.3443 - msgid "Probable success"
229.3444 - msgstr "Pravdepodobný úspech"
229.3445 -
229.3446 --#: nis/nis_error.c:31
229.3447 -+#: nis/nis_error.c:32
229.3448 - msgid "Probably not found"
229.3449 - msgstr "Pravdepodobne nenájdené"
229.3450 -
229.3451 --#: stdio-common/../sysdeps/unix/siglist.c:52
229.3452 --#: sysdeps/unix/sysv/linux/siglist.h:46
229.3453 -+#: stdio-common/../sysdeps/unix/siglist.c:53 sysdeps/generic/siglist.h:53
229.3454 - msgid "Profiling timer expired"
229.3455 - msgstr "Profilovací èasovaè vypr¹al"
229.3456 -
229.3457 --#: stdio-common/../sysdeps/gnu/errlist.c:690
229.3458 -+#: stdio-common/../sysdeps/gnu/errlist.c:709
229.3459 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:72
229.3460 - msgid "Protocol driver not attached"
229.3461 - msgstr "Ovládaè protokolu nepripojený"
229.3462 -
229.3463 --#: stdio-common/../sysdeps/gnu/errlist.c:658
229.3464 -+#: stdio-common/../sysdeps/gnu/errlist.c:677
229.3465 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:101
229.3466 - msgid "Protocol error"
229.3467 - msgstr "Chyba protokolu"
229.3468 -
229.3469 - #. TRANS The socket communications protocol family you requested is not supported.
229.3470 --#: stdio-common/../sysdeps/gnu/errlist.c:355
229.3471 -+#: stdio-common/../sysdeps/gnu/errlist.c:356
229.3472 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:153
229.3473 - msgid "Protocol family not supported"
229.3474 - msgstr "Rodina protokolov nie je podporovaná"
229.3475 -
229.3476 - #. TRANS You specified a socket option that doesn't make sense for the
229.3477 - #. TRANS particular protocol being used by the socket. @xref{Socket Options}.
229.3478 --#: stdio-common/../sysdeps/gnu/errlist.c:328
229.3479 -+#: stdio-common/../sysdeps/gnu/errlist.c:329
229.3480 - msgid "Protocol not available"
229.3481 - msgstr "Protokol nie je k dispozícii"
229.3482 -
229.3483 - #. TRANS The socket domain does not support the requested communications protocol
229.3484 - #. TRANS (perhaps because the requested protocol is completely invalid).
229.3485 - #. TRANS @xref{Creating a Socket}.
229.3486 --#: stdio-common/../sysdeps/gnu/errlist.c:335
229.3487 -+#: stdio-common/../sysdeps/gnu/errlist.c:336
229.3488 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:150
229.3489 - msgid "Protocol not supported"
229.3490 - msgstr "Protokol nie je podporovaný"
229.3491 -
229.3492 - #. TRANS The socket type does not support the requested communications protocol.
229.3493 --#: stdio-common/../sysdeps/gnu/errlist.c:322
229.3494 -+#: stdio-common/../sysdeps/gnu/errlist.c:323
229.3495 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:128
229.3496 - msgid "Protocol wrong type for socket"
229.3497 - msgstr "Protokol nie je socketom podporovaný"
229.3498 -
229.3499 --#: nis/nis_error.c:64
229.3500 -+#: nis/nis_error.c:65
229.3501 - msgid "Query illegal for named table"
229.3502 - msgstr "Neprípustná otázka pre danú tabuµku"
229.3503 -
229.3504 --#: stdio-common/../sysdeps/unix/siglist.c:28
229.3505 --#: sysdeps/unix/sysv/linux/siglist.h:24
229.3506 -+#: stdio-common/../sysdeps/unix/siglist.c:29 sysdeps/generic/siglist.h:31
229.3507 - msgid "Quit"
229.3508 - msgstr "Koniec"
229.3509 -
229.3510 --#: stdio-common/../sysdeps/gnu/errlist.c:754
229.3511 -+#: stdio-common/../sysdeps/gnu/errlist.c:773
229.3512 - msgid "RFS specific error"
229.3513 - msgstr "RFS-¹pecifická chyba"
229.3514 -
229.3515 - #. TRANS ???
229.3516 --#: stdio-common/../sysdeps/gnu/errlist.c:539
229.3517 -+#: stdio-common/../sysdeps/gnu/errlist.c:540
229.3518 - msgid "RPC bad procedure for program"
229.3519 - msgstr "Chybná RPC procedúra pre program"
229.3520 -
229.3521 --#: nis/ypclnt.c:767
229.3522 -+#: nis/ypclnt.c:790
229.3523 - msgid "RPC failure on NIS operation"
229.3524 - msgstr "Zlyhal RPC pri NIS operácii"
229.3525 -
229.3526 - #. TRANS ???
229.3527 --#: stdio-common/../sysdeps/gnu/errlist.c:529
229.3528 -+#: stdio-common/../sysdeps/gnu/errlist.c:530
229.3529 - msgid "RPC program not available"
229.3530 - msgstr "RPC program nie je k dispozícii"
229.3531 -
229.3532 - #. TRANS ???
229.3533 --#: stdio-common/../sysdeps/gnu/errlist.c:534
229.3534 -+#: stdio-common/../sysdeps/gnu/errlist.c:535
229.3535 - msgid "RPC program version wrong"
229.3536 - msgstr "Chybná verzia RPC programu"
229.3537 -
229.3538 - #. TRANS ???
229.3539 --#: stdio-common/../sysdeps/gnu/errlist.c:519
229.3540 -+#: stdio-common/../sysdeps/gnu/errlist.c:520
229.3541 - msgid "RPC struct is bad"
229.3542 - msgstr "RPC ¹truktúra je chybná"
229.3543 -
229.3544 - #. TRANS ???
229.3545 --#: stdio-common/../sysdeps/gnu/errlist.c:524
229.3546 -+#: stdio-common/../sysdeps/gnu/errlist.c:525
229.3547 - msgid "RPC version wrong"
229.3548 - msgstr "Chybná verzia RPC"
229.3549 -
229.3550 --#: sunrpc/clnt_perr.c:215
229.3551 -+#: sunrpc/clnt_perr.c:271
229.3552 - msgid "RPC: (unknown error code)"
229.3553 - msgstr "RPC: (neznámny chybový kód)"
229.3554 -
229.3555 --#: sunrpc/clnt_perr.c:176
229.3556 -+#: sunrpc/clnt_perr.c:190
229.3557 - msgid "RPC: Authentication error"
229.3558 - msgstr "RPC: Chyba pri overení práv"
229.3559 -
229.3560 --#: sunrpc/clnt_perr.c:166
229.3561 -+#: sunrpc/clnt_perr.c:170
229.3562 - msgid "RPC: Can't decode result"
229.3563 - msgstr "RPC: Nie je mo¾né dekódova» výsledok"
229.3564 -
229.3565 --#: sunrpc/clnt_perr.c:164
229.3566 -+#: sunrpc/clnt_perr.c:166
229.3567 - msgid "RPC: Can't encode arguments"
229.3568 - msgstr "RPC: Nie je mo¾né zakódova» argumenty"
229.3569 -
229.3570 --#: sunrpc/clnt_perr.c:196
229.3571 -+#: sunrpc/clnt_perr.c:230
229.3572 - msgid "RPC: Failed (unspecified error)"
229.3573 - msgstr "RPC: Zlyhalo (ne¹pecifikovaná chyba)"
229.3574 -
229.3575 --#: sunrpc/clnt_perr.c:174
229.3576 -+#: sunrpc/clnt_perr.c:186
229.3577 - msgid "RPC: Incompatible versions of RPC"
229.3578 - msgstr "RPC: Nekompatibilné verzie RPC"
229.3579 -
229.3580 --#: sunrpc/clnt_perr.c:192
229.3581 -+#: sunrpc/clnt_perr.c:222
229.3582 - msgid "RPC: Port mapper failure"
229.3583 - msgstr "RPC: Chyba portmappera"
229.3584 -
229.3585 --#: sunrpc/clnt_perr.c:182
229.3586 -+#: sunrpc/clnt_perr.c:202
229.3587 - msgid "RPC: Procedure unavailable"
229.3588 - msgstr "RPC: Procedúra nie je k dispozícii"
229.3589 -
229.3590 --#: sunrpc/clnt_perr.c:194
229.3591 -+#: sunrpc/clnt_perr.c:226
229.3592 - msgid "RPC: Program not registered"
229.3593 - msgstr "RPC: Program nie je registrovaný"
229.3594 -
229.3595 --#: sunrpc/clnt_perr.c:178
229.3596 -+#: sunrpc/clnt_perr.c:194
229.3597 - msgid "RPC: Program unavailable"
229.3598 - msgstr "RPC: Program nie je k dispozícii"
229.3599 -
229.3600 --#: sunrpc/clnt_perr.c:180
229.3601 -+#: sunrpc/clnt_perr.c:198
229.3602 - msgid "RPC: Program/version mismatch"
229.3603 - msgstr "RPC: Nesúhlasí program alebo verzia"
229.3604 -
229.3605 --#: sunrpc/clnt_perr.c:186
229.3606 -+#: sunrpc/clnt_perr.c:210
229.3607 - msgid "RPC: Remote system error"
229.3608 - msgstr "RPC: Chyba vzdialeného systému"
229.3609 -
229.3610 --#: sunrpc/clnt_perr.c:184
229.3611 -+#: sunrpc/clnt_perr.c:206
229.3612 - msgid "RPC: Server can't decode arguments"
229.3613 - msgstr "RPC: Server nemô¾e dekódova» argumenty"
229.3614 -
229.3615 --#: sunrpc/clnt_perr.c:162
229.3616 -+#: sunrpc/clnt_perr.c:163
229.3617 - msgid "RPC: Success"
229.3618 - msgstr "RPC: Úspech"
229.3619 -
229.3620 --#: sunrpc/clnt_perr.c:172
229.3621 -+#: sunrpc/clnt_perr.c:182
229.3622 - msgid "RPC: Timed out"
229.3623 - msgstr "RPC: Èasovaè vypr¹al"
229.3624 -
229.3625 --#: sunrpc/clnt_perr.c:170
229.3626 -+#: sunrpc/clnt_perr.c:178
229.3627 - msgid "RPC: Unable to receive"
229.3628 - msgstr "RPC: Nie je mo¾né prijíma»"
229.3629 -
229.3630 --#: sunrpc/clnt_perr.c:168
229.3631 -+#: sunrpc/clnt_perr.c:174
229.3632 - msgid "RPC: Unable to send"
229.3633 - msgstr "RPC: Nie je mo¾né vysiela»"
229.3634 -
229.3635 --#: sunrpc/clnt_perr.c:188
229.3636 -+#: sunrpc/clnt_perr.c:214
229.3637 - msgid "RPC: Unknown host"
229.3638 - msgstr "RPC: Neznámy poèítaè"
229.3639 -
229.3640 --#: sunrpc/clnt_perr.c:190
229.3641 -+#: sunrpc/clnt_perr.c:218
229.3642 - msgid "RPC: Unknown protocol"
229.3643 - msgstr "RPC: Neznámy protokol"
229.3644 -
229.3645 --#: nis/nis_print.c:184
229.3646 -+#: nis/nis_print.c:185
229.3647 - #, c-format
229.3648 - msgid "RSA (%d bits)\n"
229.3649 - msgstr "RSA (%d bitov)\n"
229.3650 -
229.3651 --#: elf/dlsym.c:59 elf/dlvsym.c:62
229.3652 -+#: elf/dl-sym.c:68 elf/dl-sym.c:125
229.3653 - msgid "RTLD_NEXT used in code not dynamically loaded"
229.3654 - msgstr "RTLD_NEXT je pou¾ité pre kód, ktorý nie je dynamicky zavedený"
229.3655 -
229.3656 --#: elf/sprof.c:88
229.3657 -+#: elf/sprof.c:84
229.3658 - msgid "Read and display shared object profiling data"
229.3659 - msgstr "Preèíta» a vypísa» profilovacie údaje zdieµaného objektu"
229.3660 -
229.3661 --#: nscd/nscd.c:78
229.3662 -+#: nscd/nscd.c:84
229.3663 - msgid "Read configuration data from NAME"
229.3664 - msgstr "Naèíta» údaje o konfigurácii z NÁZOV"
229.3665 -
229.3666 - #. TRANS An attempt was made to modify something on a read-only file system.
229.3667 --#: stdio-common/../sysdeps/gnu/errlist.c:218
229.3668 -+#: stdio-common/../sysdeps/gnu/errlist.c:219
229.3669 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:60
229.3670 - msgid "Read-only file system"
229.3671 - msgstr "Súborový systém dovoµuje len èítanie"
229.3672 -
229.3673 --#: string/strsignal.c:66
229.3674 -+#: string/strsignal.c:67
229.3675 - #, c-format
229.3676 - msgid "Real-time signal %d"
229.3677 - msgstr "Signál reálneho èasu %d"
229.3678 -
229.3679 --#: posix/regex.c:1027
229.3680 -+#: posix/regex.c:1129
229.3681 - msgid "Regular expression too big"
229.3682 - msgstr "Regulérny výraz príli¹ veµký"
229.3683 -
229.3684 --#: stdio-common/../sysdeps/gnu/errlist.c:810
229.3685 -+#: stdio-common/../sysdeps/gnu/errlist.c:829
229.3686 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:170
229.3687 - msgid "Remote I/O error"
229.3688 - msgstr "Vzdialená V/V chyba"
229.3689 -
229.3690 --#: stdio-common/../sysdeps/gnu/errlist.c:766
229.3691 -+#: stdio-common/../sysdeps/gnu/errlist.c:785
229.3692 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:112
229.3693 - msgid "Remote address changed"
229.3694 - msgstr "Vzdialená adresa sa zmenila"
229.3695 -
229.3696 --#: inet/ruserpass.c:162
229.3697 -+#: inet/ruserpass.c:182
229.3698 - msgid "Remove password or make file unreadable by others."
229.3699 - msgstr "Odstráòte heslo alebo zaká¾te èítanie súboru ostatnými."
229.3700 -
229.3701 --#: elf/sprof.c:537
229.3702 -+#: elf/cache.c:394
229.3703 -+#, c-format
229.3704 -+msgid "Renaming of %s to %s failed"
229.3705 -+msgstr "Premenovanie %s na %s zlyhalo"
229.3706 -+
229.3707 -+#: elf/sprof.c:532
229.3708 - #, c-format
229.3709 - msgid "Reopening shared object `%s' failed"
229.3710 - msgstr "Znovuotvorenie zdieµaného objektu `%s' zlyhalo"
229.3711 -
229.3712 --#: nis/nis_print.c:170
229.3713 -+#: nis/nis_print.c:171
229.3714 - msgid "Replicate :\n"
229.3715 - msgstr "Replika :\n"
229.3716 -
229.3717 --#: argp/argp-help.c:1638
229.3718 -+#: argp/argp-help.c:1639
229.3719 - #, c-format
229.3720 - msgid "Report bugs to %s.\n"
229.3721 - msgstr "Chyby hláste na adrese %s.\n"
229.3722 -
229.3723 --#: catgets/gencat.c:223 db2/makedb.c:229 iconv/iconv_prog.c:280
229.3724 --#: locale/programs/locale.c:254 locale/programs/localedef.c:389
229.3725 -+#: catgets/gencat.c:233 debug/pcprofiledump.c:181 iconv/iconv_prog.c:337
229.3726 -+#: locale/programs/locale.c:256 locale/programs/localedef.c:297
229.3727 -+#: malloc/memusagestat.c:602
229.3728 - msgid "Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"
229.3729 - msgstr "Chyby hláste na adrese <bugs@gnu.org> - pou¾ite skript `glibcbug'.\n"
229.3730 -
229.3731 --#: nis/ypclnt.c:765
229.3732 -+#: nis/ypclnt.c:788
229.3733 - msgid "Request arguments bad"
229.3734 - msgstr "Chybné argumenty ¾iadosti"
229.3735 -
229.3736 --#: resolv/herror.c:73
229.3737 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:171
229.3738 -+msgid "Reserved for future use"
229.3739 -+msgstr "Rezervované pre budúce pou¾itie"
229.3740 -+
229.3741 -+#: resolv/herror.c:67
229.3742 - msgid "Resolver Error 0 (no error)"
229.3743 - msgstr "Chyba resolvera 0 (¾iadna chyba)"
229.3744 -
229.3745 --#: resolv/herror.c:117
229.3746 -+#: resolv/herror.c:107
229.3747 - msgid "Resolver internal error"
229.3748 - msgstr "Vnútorná chyba resolvera"
229.3749 -
229.3750 -@@ -2160,11 +3248,11 @@
229.3751 - #. TRANS deadlock situation. The system does not guarantee that it will notice
229.3752 - #. TRANS all such situations. This error means you got lucky and the system
229.3753 - #. TRANS noticed; it might just hang. @xref{File Locks}, for an example.
229.3754 --#: stdio-common/../sysdeps/gnu/errlist.c:97
229.3755 -+#: stdio-common/../sysdeps/gnu/errlist.c:98
229.3756 - msgid "Resource deadlock avoided"
229.3757 - msgstr "Bolo zabránené vzájomnému zablokovaniu"
229.3758 -
229.3759 --#: stdio-common/../sysdeps/unix/siglist.c:54
229.3760 -+#: stdio-common/../sysdeps/unix/siglist.c:55 sysdeps/generic/siglist.h:74
229.3761 - msgid "Resource lost"
229.3762 - msgstr "Zdroj bol stratený"
229.3763 -
229.3764 -@@ -2197,76 +3285,83 @@
229.3765 - #. TRANS so usually an interactive program should report the error to the user
229.3766 - #. TRANS and return to its command loop.
229.3767 - #. TRANS @end itemize
229.3768 --#: stdio-common/../sysdeps/gnu/errlist.c:279
229.3769 -+#: stdio-common/../sysdeps/gnu/errlist.c:280
229.3770 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:41
229.3771 - msgid "Resource temporarily unavailable"
229.3772 - msgstr "Zdroj je doèasne neprístupný"
229.3773 -
229.3774 --#: nis/nis_error.c:47
229.3775 --msgid "Results Sent to callback proc"
229.3776 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:64
229.3777 -+msgid "Result too large"
229.3778 -+msgstr "Výsledok je príli¹ veµký"
229.3779 -+
229.3780 -+#: nis/nis_error.c:48
229.3781 -+msgid "Results sent to callback proc"
229.3782 - msgstr "Výsledky poslané procedúre spätného volania"
229.3783 -
229.3784 --#: elf/sprof.c:91
229.3785 -+#: elf/sprof.c:87
229.3786 - msgid "SHOBJ [PROFDATA]"
229.3787 - msgstr "ZDIE¥_OBJEKT [PROF_ÚDAJE]"
229.3788 -
229.3789 --#: nis/nis_print.c:33
229.3790 -+#: nis/nis_print.c:34
229.3791 - msgid "SUNYP"
229.3792 - msgstr "SUNYP"
229.3793 -
229.3794 --#: nis/nis_print.c:265
229.3795 -+#: nis/nis_print.c:266
229.3796 - #, c-format
229.3797 - msgid "Search Path : %s\n"
229.3798 - msgstr "Prehµadávaná cesta : %s\n"
229.3799 -
229.3800 --#: stdio-common/../sysdeps/unix/siglist.c:36
229.3801 --#: sysdeps/unix/sysv/linux/siglist.h:31
229.3802 -+#: stdio-common/../sysdeps/unix/siglist.c:37 sysdeps/generic/siglist.h:38
229.3803 - msgid "Segmentation fault"
229.3804 - msgstr "Chyba segmentácie"
229.3805 -
229.3806 --#: nis/nis_error.c:35
229.3807 -+#: nis/nis_error.c:36
229.3808 - msgid "Server busy, try again"
229.3809 - msgstr "Server zaneprázdnený, skúste znovu"
229.3810 -
229.3811 --#: nis/nis_error.c:41
229.3812 -+#: nis/nis_error.c:42
229.3813 - msgid "Server out of memory"
229.3814 - msgstr "Vyèerpaná pamä» servera"
229.3815 -
229.3816 --#: sunrpc/clnt_perr.c:277
229.3817 -+#: sunrpc/clnt_perr.c:336
229.3818 - msgid "Server rejected credential"
229.3819 - msgstr "Server odmietol oprávnenie"
229.3820 -
229.3821 --#: sunrpc/clnt_perr.c:281
229.3822 -+#: sunrpc/clnt_perr.c:344
229.3823 - msgid "Server rejected verifier"
229.3824 - msgstr "Server odmietol overenie"
229.3825 -
229.3826 --#: posix/../sysdeps/posix/gai_strerror.c:38
229.3827 -+#: posix/../sysdeps/posix/gai_strerror.c:39
229.3828 - msgid "Servname not supported for ai_socktype"
229.3829 - msgstr "Servname nie je pre ai_socktype podporovaná"
229.3830 -
229.3831 --#: argp/argp-parse.c:89
229.3832 -+#: argp/argp-parse.c:95
229.3833 - msgid "Set the program name"
229.3834 - msgstr "Nastavi» názov programu"
229.3835 -
229.3836 --#: nscd/nscd.c:82
229.3837 -+#: nscd/nscd.c:88
229.3838 - msgid "Shut the server down"
229.3839 - msgstr "Zastavi» server"
229.3840 -
229.3841 --#: stdio-common/../sysdeps/unix/siglist.c:25
229.3842 -+#: stdio-common/../sysdeps/unix/siglist.c:26
229.3843 - msgid "Signal 0"
229.3844 - msgstr "Signál 0"
229.3845 -
229.3846 - #. TRANS A file that isn't a socket was specified when a socket is required.
229.3847 --#: stdio-common/../sysdeps/gnu/errlist.c:311
229.3848 -+#: stdio-common/../sysdeps/gnu/errlist.c:312
229.3849 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:125
229.3850 - msgid "Socket operation on non-socket"
229.3851 - msgstr "Socketová operácia na objekte, ktorý nie je socket"
229.3852 -
229.3853 - #. TRANS The socket type is not supported.
229.3854 --#: stdio-common/../sysdeps/gnu/errlist.c:340
229.3855 -+#: stdio-common/../sysdeps/gnu/errlist.c:341
229.3856 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:151
229.3857 - msgid "Socket type not supported"
229.3858 - msgstr "Typ socketu nie je podporovaný"
229.3859 -
229.3860 - #. TRANS A network connection was aborted locally.
229.3861 --#: stdio-common/../sysdeps/gnu/errlist.c:394
229.3862 -+#: stdio-common/../sysdeps/gnu/errlist.c:395
229.3863 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:160
229.3864 - msgid "Software caused connection abort"
229.3865 - msgstr "Software spôsobil zru¹enie spojenia"
229.3866 -
229.3867 -@@ -2274,15 +3369,16 @@
229.3868 - msgid "Sorry. You are not root\n"
229.3869 - msgstr "Bohu¾iaµ - nie ste superu¾ívateµ\n"
229.3870 -
229.3871 --#: locale/programs/localedef.c:97
229.3872 -+#: locale/programs/localedef.c:95
229.3873 - msgid "Source definitions are found in FILE"
229.3874 - msgstr "Zdrojové definície sa nachádzajú v SÚBORe"
229.3875 -
229.3876 --#: stdio-common/../sysdeps/gnu/errlist.c:746
229.3877 -+#: stdio-common/../sysdeps/gnu/errlist.c:765
229.3878 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:99
229.3879 - msgid "Srmount error"
229.3880 - msgstr "Chyba srmount"
229.3881 -
229.3882 --#: sysdeps/unix/sysv/linux/siglist.h:59
229.3883 -+#: sysdeps/generic/siglist.h:66
229.3884 - msgid "Stack fault"
229.3885 - msgstr "Chyba zásobníka"
229.3886 -
229.3887 -@@ -2290,73 +3386,75 @@
229.3888 - #. TRANS system which is due to file system rearrangements on the server host.
229.3889 - #. TRANS Repairing this condition usually requires unmounting and remounting
229.3890 - #. TRANS the NFS file system on the local host.
229.3891 --#: stdio-common/../sysdeps/gnu/errlist.c:506
229.3892 -+#: stdio-common/../sysdeps/gnu/errlist.c:507
229.3893 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:181
229.3894 - msgid "Stale NFS file handle"
229.3895 - msgstr "Zastaralý odkaz na NFS súbor"
229.3896 -
229.3897 --#: nscd/nscd.c:81
229.3898 -+#: nscd/nscd.c:87
229.3899 - msgid "Start NUMBER threads"
229.3900 - msgstr "Spusti» POÈET vlákien"
229.3901 -
229.3902 --#: nis/nis_print.c:357
229.3903 -+#: nis/nis_print.c:362
229.3904 - #, c-format
229.3905 - msgid "Status : %s\n"
229.3906 - msgstr "Stav : %s\n"
229.3907 -
229.3908 --#: stdio-common/../sysdeps/unix/siglist.c:43
229.3909 --#: sysdeps/unix/sysv/linux/siglist.h:37
229.3910 -+#: stdio-common/../sysdeps/unix/siglist.c:44 sysdeps/generic/siglist.h:44
229.3911 - msgid "Stopped"
229.3912 - msgstr "Zastavené"
229.3913 -
229.3914 --#: stdio-common/../sysdeps/unix/siglist.c:42
229.3915 --#: sysdeps/unix/sysv/linux/siglist.h:36
229.3916 -+#: stdio-common/../sysdeps/unix/siglist.c:43 sysdeps/generic/siglist.h:43
229.3917 - msgid "Stopped (signal)"
229.3918 - msgstr "Zastavené (signál)"
229.3919 -
229.3920 --#: stdio-common/../sysdeps/unix/siglist.c:46
229.3921 --#: sysdeps/unix/sysv/linux/siglist.h:40
229.3922 -+#: stdio-common/../sysdeps/unix/siglist.c:47 sysdeps/generic/siglist.h:47
229.3923 - msgid "Stopped (tty input)"
229.3924 - msgstr "Zastavené (vstup z terminálu)"
229.3925 -
229.3926 --#: stdio-common/../sysdeps/unix/siglist.c:47
229.3927 --#: sysdeps/unix/sysv/linux/siglist.h:41
229.3928 -+#: stdio-common/../sysdeps/unix/siglist.c:48 sysdeps/generic/siglist.h:48
229.3929 - msgid "Stopped (tty output)"
229.3930 - msgstr "Zastavené (výstup na terminál)"
229.3931 -
229.3932 --#: stdio-common/../sysdeps/gnu/errlist.c:790
229.3933 -+#: stdio-common/../sysdeps/gnu/errlist.c:809
229.3934 - msgid "Streams pipe error"
229.3935 - msgstr "Chyba rúry prúdov"
229.3936 -
229.3937 --#: stdio-common/../sysdeps/gnu/errlist.c:794
229.3938 -+#: stdio-common/../sysdeps/gnu/errlist.c:813
229.3939 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:165
229.3940 - msgid "Structure needs cleaning"
229.3941 - msgstr "©truktúra potrebuje opravu"
229.3942 -
229.3943 --#: nis/nis_error.c:28 nis/ypclnt.c:763 nis/ypclnt.c:837 posix/regex.c:1012
229.3944 --#: stdio-common/../sysdeps/gnu/errlist.c:19
229.3945 -+#: nis/nis_error.c:29 nis/ypclnt.c:786 nis/ypclnt.c:860 posix/regex.c:1084
229.3946 -+#: stdio-common/../sysdeps/gnu/errlist.c:20
229.3947 - msgid "Success"
229.3948 - msgstr "Úspech"
229.3949 -
229.3950 -+#: nss/getent.c:703
229.3951 -+msgid "Supported databases:"
229.3952 -+msgstr "Podporované databázy:"
229.3953 -+
229.3954 - #: locale/programs/localedef.c:106
229.3955 - msgid "Suppress warnings and information messages"
229.3956 - msgstr "Potlaèi» varovné a informaèné správy"
229.3957 -
229.3958 --#: locale/programs/localedef.c:96
229.3959 -+#: locale/programs/localedef.c:94
229.3960 - msgid "Symbolic character names defined in FILE"
229.3961 - msgstr "Symbolické názvy znakov sú definované v SÚBORe"
229.3962 -
229.3963 --#: posix/../sysdeps/posix/gai_strerror.c:40
229.3964 -+#: posix/../sysdeps/posix/gai_strerror.c:41
229.3965 - msgid "System error"
229.3966 - msgstr "Chyba systému"
229.3967 -
229.3968 --#: locale/programs/locale.c:63
229.3969 -+#: locale/programs/locale.c:65
229.3970 - msgid "System information:"
229.3971 - msgstr "Systémové informácie:"
229.3972 -
229.3973 --#: nis/ypclnt.c:843
229.3974 -+#: nis/ypclnt.c:866
229.3975 - msgid "System resource allocation failure"
229.3976 - msgstr "Pridelenie systémových zdrojov zlyhalo"
229.3977 -
229.3978 --#: locale/programs/localedef.c:384
229.3979 -+#: locale/programs/localedef.c:292
229.3980 - #, c-format
229.3981 - msgid ""
229.3982 - "System's directory for character maps : %s\n"
229.3983 -@@ -2369,21 +3467,28 @@
229.3984 - " cestu locale : %s\n"
229.3985 - "%s"
229.3986 -
229.3987 --#: nis/nis_print.c:117
229.3988 -+#: nscd/nscd.c:90
229.3989 -+msgid "TABLE"
229.3990 -+msgstr "TABU¥KA"
229.3991 -+
229.3992 -+#: nis/nis_print.c:118
229.3993 - msgid "TABLE\n"
229.3994 - msgstr "TABU¥KA\n"
229.3995 -
229.3996 --#: nis/nis_print.c:262
229.3997 -+#: nscd/nscd.c:92
229.3998 -+msgid "TABLE,yes"
229.3999 -+msgstr "TABU¥KA,áno"
229.4000 -+
229.4001 -+#: nis/nis_print.c:263
229.4002 - #, c-format
229.4003 - msgid "Table Type : %s\n"
229.4004 - msgstr "Typ tabuµky : %s\n"
229.4005 -
229.4006 --#: posix/../sysdeps/posix/gai_strerror.c:31
229.4007 -+#: posix/../sysdeps/posix/gai_strerror.c:32
229.4008 - msgid "Temporary failure in name resolution"
229.4009 - msgstr "Doèasná chyba pri rie¹ení názvu"
229.4010 -
229.4011 --#: stdio-common/../sysdeps/unix/siglist.c:40
229.4012 --#: sysdeps/unix/sysv/linux/siglist.h:34
229.4013 -+#: stdio-common/../sysdeps/unix/siglist.c:41 sysdeps/generic/siglist.h:41
229.4014 - msgid "Terminated"
229.4015 - msgstr "Ukonèené"
229.4016 -
229.4017 -@@ -2392,52 +3497,58 @@
229.4018 - #. TRANS debugger to run a program is considered having it open for writing and
229.4019 - #. TRANS will cause this error. (The name stands for ``text file busy''.) This
229.4020 - #. TRANS is not an error in the GNU system; the text is copied as necessary.
229.4021 --#: stdio-common/../sysdeps/gnu/errlist.c:197
229.4022 -+#: stdio-common/../sysdeps/gnu/errlist.c:198
229.4023 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:56
229.4024 - msgid "Text file busy"
229.4025 - msgstr "Spustiteµný súbor je pou¾ívaný"
229.4026 -
229.4027 --#: iconv/iconv_prog.c:536
229.4028 -+#: iconv/iconv_prog.c:627
229.4029 - msgid ""
229.4030 - "The following list contain all the coded character sets known. This does\n"
229.4031 - "not necessarily mean that all combinations of these names can be used for\n"
229.4032 - "the FROM and TO command line parameters. One coded character set can be\n"
229.4033 - "listed with several different names (aliases).\n"
229.4034 --" Some of the names are no plain strings but instead regular expressions and\n"
229.4035 --"they match a variety of names which can be given as parameters to the\n"
229.4036 --"program.\n"
229.4037 - "\n"
229.4038 - " "
229.4039 - msgstr ""
229.4040 - "Nasledujúci zoznam obsahuje v¹etky známe znakové sady. To nutne neznamená,\n"
229.4041 - "¾e v¹etky kombinácie týchto názvov mô¾u by» pou¾ité pre argumenty Z a DO.\n"
229.4042 - "Jedna sada znakov mô¾e by» uvedená pod viacerými názvami (aliasmi).\n"
229.4043 --" Niektoré z názvov nie sú obyèajné re»azce, ale regulárne výrazy, ktoré\n"
229.4044 --"¹pecifikujú mo¾né parametre programu.\n"
229.4045 - "\n"
229.4046 - " "
229.4047 -
229.4048 --#: nis/nis_print.c:223
229.4049 -+#: sunrpc/rpc_main.c:1364
229.4050 -+msgid "This implementation doesn't support newstyle or MT-safe code!\n"
229.4051 -+msgstr "Táto implementácia nepodporuje nový ¹týl alebo MT-bezpeèný kód!\n"
229.4052 -+
229.4053 -+#: nis/nis_print.c:224
229.4054 - msgid "Time to live : "
229.4055 - msgstr "®ivotnos» : "
229.4056 -
229.4057 --#: stdio-common/../sysdeps/gnu/errlist.c:662
229.4058 -+#: stdio-common/../sysdeps/gnu/errlist.c:681
229.4059 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:92
229.4060 - msgid "Timer expired"
229.4061 - msgstr "Èasovaè vypr¹al"
229.4062 -
229.4063 --#: nis/nis_error.c:55
229.4064 --msgid "Too Many Attributes"
229.4065 -+#: malloc/memusagestat.c:54
229.4066 -+msgid "Title string used in output graphic"
229.4067 -+msgstr "Titulok pou¾itý pre výstupný graf"
229.4068 -+
229.4069 -+#: nis/nis_error.c:56
229.4070 -+msgid "Too many attributes"
229.4071 - msgstr "Priveµa atribútov"
229.4072 -
229.4073 - #. TRANS Too many levels of symbolic links were encountered in looking up a file name.
229.4074 - #. TRANS This often indicates a cycle of symbolic links.
229.4075 --#: stdio-common/../sysdeps/gnu/errlist.c:457
229.4076 -+#: stdio-common/../sysdeps/gnu/errlist.c:458
229.4077 - msgid "Too many levels of symbolic links"
229.4078 - msgstr "Priveµa úrovní symbolických odkazov"
229.4079 -
229.4080 - #. TRANS Too many links; the link count of a single file would become too large.
229.4081 - #. TRANS @code{rename} can cause this error if the file being renamed already has
229.4082 - #. TRANS as many links as it can take (@pxref{Renaming Files}).
229.4083 --#: stdio-common/../sysdeps/gnu/errlist.c:225
229.4084 -+#: stdio-common/../sysdeps/gnu/errlist.c:226
229.4085 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:61
229.4086 - msgid "Too many links"
229.4087 - msgstr "Priveµa odkazov"
229.4088 -
229.4089 -@@ -2448,54 +3559,57 @@
229.4090 - #. TRANS limit that can usually be increased. If you get this error, you might
229.4091 - #. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
229.4092 - #. TRANS @pxref{Limits on Resources}.
229.4093 --#: stdio-common/../sysdeps/gnu/errlist.c:175
229.4094 -+#: stdio-common/../sysdeps/gnu/errlist.c:176
229.4095 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:54
229.4096 - msgid "Too many open files"
229.4097 - msgstr "Priveµa otvorených súborov"
229.4098 -
229.4099 - #. TRANS There are too many distinct file openings in the entire system. Note
229.4100 - #. TRANS that any number of linked channels count as just one file opening; see
229.4101 - #. TRANS @ref{Linked Channels}. This error never occurs in the GNU system.
229.4102 --#: stdio-common/../sysdeps/gnu/errlist.c:182
229.4103 -+#: stdio-common/../sysdeps/gnu/errlist.c:183
229.4104 - msgid "Too many open files in system"
229.4105 - msgstr "Priveµa otvorených súborov v systéme"
229.4106 -
229.4107 - #. TRANS This means that the per-user limit on new process would be exceeded by
229.4108 - #. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on
229.4109 - #. TRANS the @code{RLIMIT_NPROC} limit.
229.4110 --#: stdio-common/../sysdeps/gnu/errlist.c:487
229.4111 -+#: stdio-common/../sysdeps/gnu/errlist.c:488
229.4112 - msgid "Too many processes"
229.4113 - msgstr "Priveµa procesov"
229.4114 -
229.4115 - #. TRANS ???
229.4116 --#: stdio-common/../sysdeps/gnu/errlist.c:439
229.4117 -+#: stdio-common/../sysdeps/gnu/errlist.c:440
229.4118 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:174
229.4119 - msgid "Too many references: cannot splice"
229.4120 - msgstr "Priveµa odkazov - nie je mo¾né rozdeli»"
229.4121 -
229.4122 - #. TRANS The file quota system is confused because there are too many users.
229.4123 - #. TRANS @c This can probably happen in a GNU system when using NFS.
229.4124 --#: stdio-common/../sysdeps/gnu/errlist.c:493
229.4125 -+#: stdio-common/../sysdeps/gnu/errlist.c:494
229.4126 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:124
229.4127 - msgid "Too many users"
229.4128 - msgstr "Priveµa pou¾ívateµov"
229.4129 -
229.4130 --#: stdio-common/../sysdeps/unix/siglist.c:30
229.4131 --#: sysdeps/unix/sysv/linux/siglist.h:26
229.4132 -+#: stdio-common/../sysdeps/unix/siglist.c:31 sysdeps/generic/siglist.h:33
229.4133 - msgid "Trace/breakpoint trap"
229.4134 - msgstr "Trasovacie/ladiace preru¹enie"
229.4135 -
229.4136 --#: posix/regex.c:1017
229.4137 -+#: posix/regex.c:1099
229.4138 - msgid "Trailing backslash"
229.4139 - msgstr "Koncové spätné lomítko"
229.4140 -
229.4141 - #. TRANS In the GNU system, opening a file returns this error when the file is
229.4142 - #. TRANS translated by a program and the translator program dies while starting
229.4143 - #. TRANS up, before it has connected to the file.
229.4144 --#: stdio-common/../sysdeps/gnu/errlist.c:596
229.4145 -+#: stdio-common/../sysdeps/gnu/errlist.c:615
229.4146 - msgid "Translator died"
229.4147 - msgstr "Prekladací program skonèil"
229.4148 -
229.4149 - #. TRANS You tried to connect a socket that is already connected.
229.4150 - #. TRANS @xref{Connecting}.
229.4151 --#: stdio-common/../sysdeps/gnu/errlist.c:414
229.4152 -+#: stdio-common/../sysdeps/gnu/errlist.c:415
229.4153 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:163
229.4154 - msgid "Transport endpoint is already connected"
229.4155 - msgstr "Koncový komunikaèný bod je u¾ spojený"
229.4156 -
229.4157 -@@ -2503,139 +3617,139 @@
229.4158 - #. TRANS try to transmit data over a socket, without first specifying a
229.4159 - #. TRANS destination for the data. For a connectionless socket (for datagram
229.4160 - #. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
229.4161 --#: stdio-common/../sysdeps/gnu/errlist.c:422
229.4162 -+#: stdio-common/../sysdeps/gnu/errlist.c:423
229.4163 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:164
229.4164 - msgid "Transport endpoint is not connected"
229.4165 - msgstr "Koncový komunikaèný bod nie je spojený"
229.4166 -
229.4167 --#: argp/argp-help.c:1610
229.4168 -+#: argp/argp-help.c:1611
229.4169 - #, c-format
229.4170 - msgid "Try `%s --help' or `%s --usage' for more information.\n"
229.4171 - msgstr "Pou¾ite `%s --help' alebo `%s --usage' pre viac informácií.\n"
229.4172 -
229.4173 --#: inet/rcmd.c:143
229.4174 --#, c-format
229.4175 --msgid "Trying %s...\n"
229.4176 --msgstr "Skú¹am %s...\n"
229.4177 --
229.4178 --#: nis/nis_print.c:163
229.4179 -+#: nis/nis_print.c:164
229.4180 - #, c-format
229.4181 - msgid "Type : %s\n"
229.4182 - msgstr "Typ : %s\n"
229.4183 -
229.4184 --#: nis/nis_print.c:47
229.4185 -+#: nis/nis_print.c:48
229.4186 - msgid "UNKNOWN"
229.4187 - msgstr "NEZNAMY"
229.4188 -
229.4189 --#: nis/nis_error.c:72
229.4190 -+#: nis/nis_error.c:73
229.4191 - msgid "Unable to authenticate NIS+ client"
229.4192 - msgstr "Nie je mo¾né overi» toto¾nos» NIS+ klienta"
229.4193 -
229.4194 --#: nis/nis_error.c:71
229.4195 -+#: nis/nis_error.c:72
229.4196 - msgid "Unable to authenticate NIS+ server"
229.4197 - msgstr "Nie je mo¾né overi» toto¾nos» NIS+ servera"
229.4198 -
229.4199 --#: nis/nis_error.c:46
229.4200 -+#: nis/nis_error.c:47
229.4201 - msgid "Unable to create callback"
229.4202 - msgstr "Nie je mo¾né vytvori» spätné volanie"
229.4203 -
229.4204 --#: nis/nis_error.c:74
229.4205 -+#: nis/nis_error.c:75
229.4206 - msgid "Unable to create process on server"
229.4207 - msgstr "Nie je mo¾né vytvori» proces na serveri"
229.4208 -
229.4209 --#: nis/nis_print.c:190
229.4210 -+#: nis/nis_print.c:191
229.4211 - #, c-format
229.4212 - msgid "Unknown (type = %d, bits = %d)\n"
229.4213 - msgstr "Neznáme (typ = %d, bitov = %d)\n"
229.4214 -
229.4215 --#: inet/ruserpass.c:248
229.4216 -+#: inet/ruserpass.c:274
229.4217 - #, c-format
229.4218 - msgid "Unknown .netrc keyword %s"
229.4219 - msgstr "Neznáme kµúèové slovo v .netrc: %s"
229.4220 -
229.4221 --#: nis/ypclnt.c:797
229.4222 -+#: elf/../sysdeps/generic/readelflib.c:69
229.4223 -+#, c-format
229.4224 -+msgid "Unknown ELFCLASS in file %s.\n"
229.4225 -+msgstr "Neznáma ELFCLASS v súbore %s.\n"
229.4226 -+
229.4227 -+#: nis/ypclnt.c:820
229.4228 - msgid "Unknown NIS error code"
229.4229 - msgstr "Neznámy chybový kód NIS"
229.4230 -
229.4231 --#: nss/getent.c:505
229.4232 -+#: nss/getent.c:771
229.4233 - #, c-format
229.4234 - msgid "Unknown database: %s\n"
229.4235 - msgstr "Neznáma databáza %s\n"
229.4236 -
229.4237 --#: posix/../sysdeps/posix/gai_strerror.c:51
229.4238 -+#: posix/../sysdeps/posix/gai_strerror.c:52
229.4239 - msgid "Unknown error"
229.4240 - msgstr "Neznáma chyba"
229.4241 -
229.4242 - #: string/../sysdeps/generic/_strerror.c:48
229.4243 --#: string/../sysdeps/mach/_strerror.c:86
229.4244 --#: sysdeps/mach/hurd/mips/dl-machine.c:82
229.4245 -+#: string/../sysdeps/mach/_strerror.c:88
229.4246 -+#: sysdeps/mach/hurd/mips/dl-machine.c:83
229.4247 - msgid "Unknown error "
229.4248 - msgstr "Neznáma chyba "
229.4249 -
229.4250 --#: resolv/herror.c:74
229.4251 -+#: resolv/herror.c:68
229.4252 - msgid "Unknown host"
229.4253 - msgstr "Neznámy poèítaè"
229.4254 -
229.4255 --#: nis/nis_error.c:34
229.4256 -+#: nis/nis_error.c:35
229.4257 - msgid "Unknown object"
229.4258 - msgstr "Neznámy objekt"
229.4259 -
229.4260 --#: nscd/nscd_conf.c:181
229.4261 -+#: nscd/nscd_conf.c:187
229.4262 - #, c-format
229.4263 - msgid "Unknown option: %s %s %s"
229.4264 - msgstr "Neznáma voµba: %s %s %s"
229.4265 -
229.4266 --#: resolv/herror.c:120
229.4267 -+#: resolv/herror.c:110
229.4268 - msgid "Unknown resolver error"
229.4269 - msgstr "Neznáma chyba resolvera"
229.4270 -
229.4271 --#: resolv/herror.c:76
229.4272 -+#: resolv/herror.c:70
229.4273 - msgid "Unknown server error"
229.4274 - msgstr "Neznáma chyba servera"
229.4275 -
229.4276 --#: string/strsignal.c:70
229.4277 -+#: string/strsignal.c:71
229.4278 - #, c-format
229.4279 - msgid "Unknown signal %d"
229.4280 - msgstr "Neznámy signál %d"
229.4281 -
229.4282 --#: misc/error.c:107
229.4283 -+#: misc/error.c:114 timezone/zic.c:384
229.4284 - msgid "Unknown system error"
229.4285 - msgstr "Neznáma chyba systému"
229.4286 -
229.4287 --#: nis/ypclnt.c:845
229.4288 -+#: nis/ypclnt.c:868
229.4289 - msgid "Unknown ypbind error"
229.4290 - msgstr "Neznáma chyba ypbind"
229.4291 -
229.4292 --#: posix/regex.c:1020
229.4293 -+#: posix/regex.c:1108
229.4294 - msgid "Unmatched ( or \\("
229.4295 - msgstr "Nepárová ( or \\("
229.4296 -
229.4297 --#: posix/regex.c:1028
229.4298 -+#: posix/regex.c:1132
229.4299 - msgid "Unmatched ) or \\)"
229.4300 - msgstr "Nepárová ) or \\)"
229.4301 -
229.4302 --#: posix/regex.c:1019
229.4303 -+#: posix/regex.c:1105
229.4304 - msgid "Unmatched [ or [^"
229.4305 - msgstr "Nepárová [ or [^"
229.4306 -
229.4307 --#: posix/regex.c:1021
229.4308 -+#: posix/regex.c:1111
229.4309 - msgid "Unmatched \\{"
229.4310 - msgstr "Nepárová \\{"
229.4311 -
229.4312 --#: posix/getconf.c:692
229.4313 -+#: posix/getconf.c:819
229.4314 - #, c-format
229.4315 - msgid "Unrecognized variable `%s'"
229.4316 - msgstr "Nerozpoznaná premenná `%s'"
229.4317 -
229.4318 --#: stdio-common/../sysdeps/unix/siglist.c:41
229.4319 --#: sysdeps/unix/sysv/linux/siglist.h:35
229.4320 -+#: stdio-common/../sysdeps/unix/siglist.c:42 sysdeps/generic/siglist.h:42
229.4321 - msgid "Urgent I/O condition"
229.4322 - msgstr "Urgentný V/V stav"
229.4323 -
229.4324 --#: argp/argp-help.c:1567
229.4325 -+#: argp/argp-help.c:1568
229.4326 - msgid "Usage:"
229.4327 - msgstr "Pou¾itie:"
229.4328 -
229.4329 --#: posix/getconf.c:604
229.4330 -+#: posix/getconf.c:731
229.4331 - #, c-format
229.4332 - msgid "Usage: %s variable_name [pathname]\n"
229.4333 - msgstr "Pou¾itie: %s meno_premennej [cesta]\n"
229.4334 -@@ -2644,1031 +3758,1117 @@
229.4335 - msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
229.4336 - msgstr "Pou¾itie: rpcinfo [ -n èíslo_portu ] -u poèítaè èíslo_programu [ èíslo_verzie ]\n"
229.4337 -
229.4338 --#: stdio-common/../sysdeps/unix/siglist.c:55
229.4339 --#: sysdeps/unix/sysv/linux/siglist.h:48
229.4340 -+#: elf/ldconfig.c:132
229.4341 -+msgid "Use CACHE as cache file"
229.4342 -+msgstr "Pou¾i» CACHE ako cache súbor"
229.4343 -+
229.4344 -+#: elf/ldconfig.c:133
229.4345 -+msgid "Use CONF as configuration file"
229.4346 -+msgstr "Pou¾i» CONF ako konfiguraèný súbor"
229.4347 -+
229.4348 -+#: nscd/nscd.c:92
229.4349 -+msgid "Use separate cache for each user"
229.4350 -+msgstr "Pou¾i» samostatnú cache pre ka¾dého pou¾ívateµa"
229.4351 -+
229.4352 -+#: stdio-common/../sysdeps/unix/siglist.c:56 sysdeps/generic/siglist.h:55
229.4353 - msgid "User defined signal 1"
229.4354 - msgstr "Pou¾ívateµom definovaný signál 1"
229.4355 -
229.4356 --#: stdio-common/../sysdeps/unix/siglist.c:56
229.4357 --#: sysdeps/unix/sysv/linux/siglist.h:49
229.4358 -+#: stdio-common/../sysdeps/unix/siglist.c:57 sysdeps/generic/siglist.h:56
229.4359 - msgid "User defined signal 2"
229.4360 - msgstr "Pou¾ívateµom definovaný signál 2"
229.4361 -
229.4362 --#: stdio-common/../sysdeps/gnu/errlist.c:654
229.4363 -+#: stdio-common/../sysdeps/gnu/errlist.c:673
229.4364 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:109
229.4365 - msgid "Value too large for defined data type"
229.4366 - msgstr "Hodnota je pre daný dátový typ priveµká"
229.4367 -
229.4368 --#: stdio-common/../sysdeps/unix/siglist.c:51
229.4369 --#: sysdeps/unix/sysv/linux/siglist.h:45
229.4370 -+#: stdio-common/../sysdeps/unix/siglist.c:52 sysdeps/generic/siglist.h:52
229.4371 - msgid "Virtual timer expired"
229.4372 - msgstr "Vypr¹al virtuálny èasovaè"
229.4373 -
229.4374 --#: timezone/zic.c:1899
229.4375 -+#: timezone/zic.c:1926
229.4376 - msgid "Wild result from command execution"
229.4377 - msgstr "Èudný výsledok vykonania programu"
229.4378 -
229.4379 --#: stdio-common/../sysdeps/unix/siglist.c:53
229.4380 --#: sysdeps/unix/sysv/linux/siglist.h:47
229.4381 -+#: stdio-common/../sysdeps/unix/siglist.c:54 sysdeps/generic/siglist.h:54
229.4382 - msgid "Window changed"
229.4383 - msgstr "Okno sa zmenilo"
229.4384 -
229.4385 --#: locale/programs/locale.c:67
229.4386 -+#: locale/programs/locale.c:69
229.4387 - msgid "Write names of available charmaps"
229.4388 - msgstr "Vypísa» názvy dostupných znakových sád"
229.4389 -
229.4390 --#: locale/programs/locale.c:65
229.4391 -+#: locale/programs/locale.c:67
229.4392 - msgid "Write names of available locales"
229.4393 - msgstr "Vypísa» názvy dostupných národných prostredí"
229.4394 -
229.4395 --#: locale/programs/locale.c:69
229.4396 -+#: locale/programs/locale.c:71
229.4397 - msgid "Write names of selected categories"
229.4398 - msgstr "Vypísa» názvy vybraných kategórií"
229.4399 -
229.4400 --#: locale/programs/locale.c:70
229.4401 -+#: locale/programs/locale.c:72
229.4402 - msgid "Write names of selected keywords"
229.4403 - msgstr "Vypísa» názvy vybraných kµúèových slov"
229.4404 -
229.4405 --#: catgets/gencat.c:110 db2/makedb.c:59
229.4406 -+#: catgets/gencat.c:115
229.4407 - msgid "Write output to file NAME"
229.4408 - msgstr "Zapísa» výstup do súboru SÚBOR"
229.4409 -
229.4410 --#: catgets/gencat.c:241 db2/makedb.c:247 elf/sprof.c:365
229.4411 --#: iconv/iconv_prog.c:299 locale/programs/locale.c:272
229.4412 --#: locale/programs/localedef.c:408 nscd/nscd.c:228 nss/getent.c:70
229.4413 --#: posix/getconf.c:629
229.4414 -+#: elf/cache.c:366 elf/cache.c:375 elf/cache.c:379
229.4415 -+msgid "Writing of cache data failed"
229.4416 -+msgstr "Zápi údajov do cache zlyhal"
229.4417 -+
229.4418 -+#: elf/cache.c:383
229.4419 -+msgid "Writing of cache data failed."
229.4420 -+msgstr "Zápi údajov do cache zlyhal."
229.4421 -+
229.4422 -+#: catgets/gencat.c:251 elf/ldconfig.c:269 elf/sprof.c:361
229.4423 -+#: iconv/iconv_prog.c:356 locale/programs/locale.c:274
229.4424 -+#: locale/programs/localedef.c:316 nscd/nscd.c:292 nscd/nscd_nischeck.c:95
229.4425 -+#: nss/getent.c:68 posix/getconf.c:756
229.4426 - #, c-format
229.4427 - msgid "Written by %s.\n"
229.4428 - msgstr "Autor: %s.\n"
229.4429 -
229.4430 --#: stdio-common/../sysdeps/gnu/errlist.c:818
229.4431 -+#: stdio-common/../sysdeps/gnu/errlist.c:837
229.4432 - msgid "Wrong medium type"
229.4433 - msgstr "Chybný typ média"
229.4434 -
229.4435 --#: nis/nis_print.c:39
229.4436 -+#: nis/nis_print.c:40
229.4437 - msgid "X500"
229.4438 - msgstr "X500"
229.4439 -
229.4440 --#: nis/nis_print.c:43
229.4441 -+#: nis/nis_print.c:44
229.4442 - msgid "XCHS"
229.4443 - msgstr "XCHS"
229.4444 -
229.4445 --#: nis/ypclnt.c:185
229.4446 -+#: nis/ypclnt.c:174
229.4447 - #, c-format
229.4448 - msgid "YPBINDPROC_DOMAIN: %s\n"
229.4449 - msgstr "YPBINDPROC_DOMAIN: %s\n"
229.4450 -
229.4451 --#: nis/nis_error.c:70
229.4452 -+#: nis/nis_error.c:71
229.4453 - msgid "Yes, 42 is the meaning of life"
229.4454 - msgstr "Áno, 42 je význam ¾ivota"
229.4455 -
229.4456 - #. TRANS You did @strong{what}?
229.4457 --#: stdio-common/../sysdeps/gnu/errlist.c:608
229.4458 -+#: stdio-common/../sysdeps/gnu/errlist.c:627
229.4459 - msgid "You really blew it this time"
229.4460 - msgstr "Tentokrát si to skutoène poondial"
229.4461 -
229.4462 --#: timezone/zic.c:1063
229.4463 -+#: timezone/zic.c:1088
229.4464 - msgid "Zone continuation line end time is not after end time of previous line"
229.4465 - msgstr "Koncový èas pokraèovacieho riadku zóny nie je väè¹í ako koncový èas predchádzajúceho riadku"
229.4466 -
229.4467 --#: iconv/iconv_prog.c:70
229.4468 -+#: iconv/iconv_prog.c:73
229.4469 - msgid "[FILE...]"
229.4470 - msgstr "[SÚBOR...]"
229.4471 -
229.4472 --#: locale/programs/charmap.c:481 locale/programs/locfile.c:471
229.4473 --#: locale/programs/repertoire.c:278
229.4474 -+#: debug/pcprofiledump.c:59
229.4475 -+msgid "[FILE]"
229.4476 -+msgstr "[SÚBOR]"
229.4477 -+
229.4478 -+#: sunrpc/pmap_clnt.c:72
229.4479 -+msgid "__get_myaddress: ioctl (get interface configuration)"
229.4480 -+msgstr "__get_myaddress: ioctl (získanie konfigurácie rozhrania)"
229.4481 -+
229.4482 -+#: locale/programs/ld-collate.c:417
229.4483 -+#, c-format
229.4484 -+msgid "`%.*s' already defined as collating element"
229.4485 -+msgstr "`%.*s' bol u¾ definovaný ako element triedenia"
229.4486 -+
229.4487 -+#: locale/programs/ld-collate.c:410
229.4488 -+#, c-format
229.4489 -+msgid "`%.*s' already defined as collating symbol"
229.4490 -+msgstr "`%.*s' bol u¾ definovaný ako symbol triedenia"
229.4491 -+
229.4492 -+#: locale/programs/ld-collate.c:394
229.4493 -+#, c-format
229.4494 -+msgid "`%.*s' already defined in charmap"
229.4495 -+msgstr "`%.*s' bol u¾ definovaný v znakovej mape"
229.4496 -+
229.4497 -+#: locale/programs/ld-collate.c:403
229.4498 -+#, c-format
229.4499 -+msgid "`%.*s' already defined in repertoire"
229.4500 -+msgstr "`%.*s' bol u¾ definovaný v repertoári"
229.4501 -+
229.4502 -+#: locale/programs/charmap.c:599 locale/programs/locfile.h:96
229.4503 -+#: locale/programs/repertoire.c:314
229.4504 - #, c-format
229.4505 - msgid "`%1$s' definition does not end with `END %1$s'"
229.4506 - msgstr "Definícia `%1$s' nekonèí `END %1$s'"
229.4507 -
229.4508 --#: elf/sprof.c:766
229.4509 -+#: locale/programs/ld-collate.c:1268 locale/programs/ld-ctype.c:1454
229.4510 - #, c-format
229.4511 --msgid "`%s' is no correct profile data file for `%s'"
229.4512 --msgstr "`%s' nie sú správne profilovacie údaje pre `%s'"
229.4513 -+msgid "`%s' and `%.*s' are no valid names for symbolic range"
229.4514 -+msgstr "`%s' a `%.*s' sú neprípustné názvy pre symbolický rozsah"
229.4515 -
229.4516 --#: locale/programs/ld-monetary.c:369 locale/programs/ld-numeric.c:193
229.4517 -+#: elf/sprof.c:762
229.4518 - #, c-format
229.4519 --msgid "`-1' must be last entry in `%s' field in `%s' category"
229.4520 --msgstr "`-1' musí by» posledným záznamom v poli `%s' kategórie `%s'"
229.4521 -+msgid "`%s' is no correct profile data file for `%s'"
229.4522 -+msgstr "`%s' nie sú správne profilovacie údaje pre `%s'"
229.4523 -
229.4524 --#: locale/programs/ld-collate.c:1666
229.4525 --msgid "`...' must only be used in `...' and `UNDEFINED' entries"
229.4526 --msgstr "`...' mô¾e by» pou¾ité iba v záznamoch `...' a `UNDEFINED'"
229.4527 --
229.4528 --#: locale/programs/locfile.c:668
229.4529 --msgid "`from' expected after first argument to `collating-element'"
229.4530 --msgstr "`from' je oèakávané po prvom argumente `collating-element'"
229.4531 --
229.4532 --#: locale/programs/ld-collate.c:1118
229.4533 --msgid "`from' string in collation element declaration contains unknown character"
229.4534 --msgstr "`from' re»azec v deklarácii elementu triedenia obsahuje neznámy znak"
229.4535 -+#: locale/programs/ld-ctype.c:691
229.4536 -+msgid "`digit' category has not entries in groups of ten"
229.4537 -+msgstr "kategória `digit' neobsahuje záznamy v skupinách po desiatich"
229.4538 -
229.4539 --#: posix/../sysdeps/posix/gai_strerror.c:34
229.4540 -+#: posix/../sysdeps/posix/gai_strerror.c:35
229.4541 - msgid "ai_family not supported"
229.4542 - msgstr "ai_family nie je podporovaná"
229.4543 -
229.4544 --#: posix/../sysdeps/posix/gai_strerror.c:39
229.4545 -+#: posix/../sysdeps/posix/gai_strerror.c:40
229.4546 - msgid "ai_socktype not supported"
229.4547 - msgstr "ai_socktype nie je podporovaný"
229.4548 -
229.4549 --#: nscd/nscd.c:121
229.4550 -+#: nscd/nscd.c:130
229.4551 - msgid "already running"
229.4552 - msgstr "u¾ be¾í"
229.4553 -
229.4554 --#: locale/programs/charmap.c:352 locale/programs/repertoire.c:152
229.4555 -+#: locale/programs/charmap.c:434 locale/programs/repertoire.c:184
229.4556 - #, c-format
229.4557 - msgid "argument to <%s> must be a single character"
229.4558 - msgstr "argument pre <%s> musí by» jeden znak"
229.4559 -
229.4560 --#: locale/programs/locfile.c:240
229.4561 -+#: locale/programs/locfile.c:124
229.4562 - #, c-format
229.4563 - msgid "argument to `%s' must be a single character"
229.4564 - msgstr "argument pre `%s' musí by» jeden znak"
229.4565 -
229.4566 --#: sunrpc/auth_unix.c:321
229.4567 -+#: sunrpc/auth_unix.c:311
229.4568 - msgid "auth_none.c - Fatal marshalling problem"
229.4569 - msgstr "auth_none.c - Fatálna chyba marshallingu"
229.4570 -
229.4571 --#: sunrpc/auth_unix.c:116 sunrpc/auth_unix.c:122 sunrpc/auth_unix.c:151
229.4572 -+#: sunrpc/auth_unix.c:106 sunrpc/auth_unix.c:112 sunrpc/auth_unix.c:142
229.4573 - msgid "authunix_create: out of memory\n"
229.4574 - msgstr "authunix_create: nedostatok pamäti\n"
229.4575 -
229.4576 --#: locale/programs/charmap.c:297 locale/programs/locfile.c:234
229.4577 --#: locale/programs/locfile.c:261 locale/programs/repertoire.c:144
229.4578 -+#: locale/programs/charmap.c:364 locale/programs/locfile.c:118
229.4579 -+#: locale/programs/locfile.c:145 locale/programs/repertoire.c:176
229.4580 - msgid "bad argument"
229.4581 - msgstr "chybný argument"
229.4582 -
229.4583 --#: inet/rcmd.c:318
229.4584 -+#: inet/rcmd.c:424
229.4585 - msgid "bad owner"
229.4586 - msgstr "chybný vlastník"
229.4587 -
229.4588 --#: timezone/zic.c:1185
229.4589 -+#: timezone/zic.c:1210
229.4590 - msgid "blank FROM field on Link line"
229.4591 - msgstr "prázdne pole OD v riadku Link"
229.4592 -
229.4593 --#: timezone/zic.c:1189
229.4594 -+#: timezone/zic.c:1214
229.4595 - msgid "blank TO field on Link line"
229.4596 - msgstr "prázdne pole DO v riadku Link"
229.4597 -
229.4598 --#: malloc/mcheck.c:208
229.4599 -+#: malloc/mcheck.c:291
229.4600 - msgid "block freed twice\n"
229.4601 - msgstr "blok uvoµnený dvakrát\n"
229.4602 -
229.4603 --#: malloc/mcheck.c:211
229.4604 -+#: malloc/mcheck.c:294
229.4605 - msgid "bogus mcheck_status, library is buggy\n"
229.4606 - msgstr "pochybný mcheck_status, kni¾nica má chyby\n"
229.4607 -
229.4608 --#: sunrpc/pmap_rmt.c:185
229.4609 -+#: sunrpc/pmap_rmt.c:186
229.4610 - msgid "broadcast: ioctl (get interface configuration)"
229.4611 - msgstr "broadcast: ioctl (získanie konfigurácie rozhrania)"
229.4612 -
229.4613 --#: sunrpc/pmap_rmt.c:194
229.4614 -+#: sunrpc/pmap_rmt.c:195
229.4615 - msgid "broadcast: ioctl (get interface flags)"
229.4616 - msgstr "broadcast: ioctl (získanie nastavení rozhrania)"
229.4617 -
229.4618 --#: login/programs/request.c:167
229.4619 --msgid "buffer overflow"
229.4620 --msgstr "preteèenie vyrovnávacej pamäti"
229.4621 --
229.4622 --#: sunrpc/svc_udp.c:446
229.4623 -+#: sunrpc/svc_udp.c:528
229.4624 - msgid "cache_set: could not allocate new rpc_buffer"
229.4625 - msgstr "cache_set: nebolo mo¾né prideli» rpc vyrovnávaciu pamä»"
229.4626 -
229.4627 --#: sunrpc/svc_udp.c:440
229.4628 -+#: sunrpc/svc_udp.c:522
229.4629 - msgid "cache_set: victim alloc failed"
229.4630 - msgstr "cache_set: obe» nenájdená"
229.4631 -
229.4632 --#: sunrpc/svc_udp.c:429
229.4633 -+#: sunrpc/svc_udp.c:511
229.4634 - msgid "cache_set: victim not found"
229.4635 - msgstr "cache_set: obe» nenájdená"
229.4636 -
229.4637 --#: timezone/zic.c:1726
229.4638 -+#: timezone/zic.c:1751
229.4639 - msgid "can't determine time zone abbreviation to use just after until time"
229.4640 - msgstr "nie je mo¾né nájs» skratku èasovej zóny pre pou¾itie hneï po koncovom èase"
229.4641 -
229.4642 --#: sunrpc/svc_simple.c:75
229.4643 -+#: sunrpc/svc_simple.c:76
229.4644 - #, c-format
229.4645 --msgid "can't reassign procedure number %d\n"
229.4646 --msgstr "nie je mo¾né znovu prideli» èíslo procedúry %d\n"
229.4647 -+msgid "can't reassign procedure number %ld\n"
229.4648 -+msgstr "nie je mo¾né znovu prideli» èíslo procedúry %ld\n"
229.4649 -+
229.4650 -+#: elf/dl-reloc.c:152
229.4651 -+msgid "can't restore segment prot after reloc"
229.4652 -+msgstr "nie je mo¾né obnovi» segment prot po relokácii"
229.4653 -
229.4654 --#: locale/programs/localedef.c:279
229.4655 -+#: locale/programs/localedef.c:487
229.4656 - #, c-format
229.4657 --msgid "cannot `stat' locale file `%s'"
229.4658 --msgstr "nie je mo¾né vykona» `stat' pre súbor národného prostredia `%s'"
229.4659 -+msgid "cannot add already read locale `%s' a second time"
229.4660 -+msgstr "nie je mo¾né znovu prida» u¾ naèítané prostredie `%s'"
229.4661 -
229.4662 --#: elf/sprof.c:935 elf/sprof.c:987
229.4663 -+#: elf/dl-deps.c:470
229.4664 -+msgid "cannot allocate dependency list"
229.4665 -+msgstr "nie je mo¾né prideli» pamä» pre zoznam závislostí"
229.4666 -+
229.4667 -+#: elf/dl-load.c:1031
229.4668 -+msgid "cannot allocate memory for program header"
229.4669 -+msgstr "nie je mo¾né prideli» pamä» pre hlavièku programu"
229.4670 -+
229.4671 -+#: elf/dl-load.c:339
229.4672 -+msgid "cannot allocate name record"
229.4673 -+msgstr "nie je mo¾né prideli» pamä» pre záznam názvu"
229.4674 -+
229.4675 -+#: elf/sprof.c:930 elf/sprof.c:982
229.4676 - msgid "cannot allocate symbol data"
229.4677 - msgstr "nie je mo¾né prideli» pamä» pre symbolické údaje"
229.4678 -
229.4679 --#: elf/sprof.c:719 elf/sprof.c:777
229.4680 -+#: elf/dl-deps.c:501
229.4681 -+msgid "cannot allocate symbol search list"
229.4682 -+msgstr "nie je mo¾né prideli» pamä» pre vyhµadávací zoznam symbolov"
229.4683 -+
229.4684 -+#: elf/dl-version.c:291
229.4685 -+msgid "cannot allocate version reference table"
229.4686 -+msgstr "nie je mo¾né prideli» pamä» pre referenènú tabuµku verzií"
229.4687 -+
229.4688 -+#: elf/dl-load.c:1000
229.4689 -+msgid "cannot change memory protections"
229.4690 -+msgstr "nie je mo¾né zmeni» ochranu pamäti"
229.4691 -+
229.4692 -+#: elf/dl-load.c:533
229.4693 -+msgid "cannot create RUNPATH/RPATH copy"
229.4694 -+msgstr "nie je mo¾né vytvori» kópiu RUNPATH/RPATH"
229.4695 -+
229.4696 -+#: elf/dl-load.c:418 elf/dl-load.c:518 elf/dl-load.c:546 elf/dl-load.c:593
229.4697 -+#: elf/dl-load.c:685
229.4698 -+msgid "cannot create cache for search path"
229.4699 -+msgstr "Nie je mo¾né vytvori» cache pre hµadanie v ceste"
229.4700 -+
229.4701 -+#: elf/dl-support.c:191
229.4702 -+msgid "cannot create capability list"
229.4703 -+msgstr "nie je mo¾né vytvori» zoznam schopností"
229.4704 -+
229.4705 -+#: elf/sprof.c:715 elf/sprof.c:773
229.4706 - msgid "cannot create internal descriptor"
229.4707 - msgstr "nie je mo¾né vytvori» interný deskriptor"
229.4708 -
229.4709 --#: elf/sprof.c:417
229.4710 -+#: elf/sprof.c:413
229.4711 - msgid "cannot create internal descriptors"
229.4712 - msgstr "nie je mo¾né vytvori» interné deskriptory"
229.4713 -
229.4714 --#: nscd/connections.c:180
229.4715 -+#: elf/dl-load.c:583
229.4716 -+msgid "cannot create search path array"
229.4717 -+msgstr "nie je mo¾né vytvori» pole ciest"
229.4718 -+
229.4719 -+#: elf/dl-load.c:1137
229.4720 -+msgid "cannot create searchlist"
229.4721 -+msgstr "nie je mo¾né vytvori» vyhµadávací zoznam"
229.4722 -+
229.4723 -+#: elf/dl-load.c:822 elf/dl-load.c:1682
229.4724 -+msgid "cannot create shared object descriptor"
229.4725 -+msgstr "nie je mo¾né vytvori» deskriptor zdieµaného objektu"
229.4726 -+
229.4727 -+#: catgets/gencat.c:1316
229.4728 -+msgid "cannot determine escape character"
229.4729 -+msgstr "nie je mo¾né urèi» znak escape"
229.4730 -+
229.4731 -+#: elf/dl-load.c:950
229.4732 -+msgid "cannot dynamically load executable"
229.4733 -+msgstr "nie je mo¾né dynamicky naèíta» spustiteµný súbor"
229.4734 -+
229.4735 -+#: nscd/connections.c:183
229.4736 - #, c-format
229.4737 - msgid "cannot enable socket to accept connections: %s"
229.4738 - msgstr "nie je mo¾né povoli» socketu prijíma» spojenia: %s"
229.4739 -
229.4740 --#: sunrpc/rpc_main.c:342
229.4741 -+#: elf/dl-open.c:121
229.4742 -+msgid "cannot extend global scope"
229.4743 -+msgstr "nie je mo¾né roz¹íri» globálny rozsah"
229.4744 -+
229.4745 -+#: sunrpc/rpc_main.c:343
229.4746 - #, c-format
229.4747 - msgid "cannot find C preprocessor: %s \n"
229.4748 - msgstr "nie je mo¾né nájs» preprocesor: %s \n"
229.4749 -
229.4750 --#: sunrpc/rpc_main.c:350
229.4751 -+#: sunrpc/rpc_main.c:351
229.4752 - msgid "cannot find any C preprocessor (cpp)\n"
229.4753 - msgstr "nie je mo¾né nájs» ¾iadny C preprocesor (cpp)\n"
229.4754 -
229.4755 --#: nscd/connections.c:205
229.4756 -+#: nscd/connections.c:225
229.4757 - #, c-format
229.4758 - msgid "cannot handle old request version %d; current version is %d"
229.4759 - msgstr "nie je mo¾né spracova» starú verziu ¾iadosti %d; aktuálna verzia je %d"
229.4760 -
229.4761 --#: locale/programs/ld-collate.c:1324
229.4762 --#, c-format
229.4763 --msgid "cannot insert collation element `%.*s'"
229.4764 --msgstr "nie je mo¾né vlo¾i» element triedenia `%.*s'"
229.4765 --
229.4766 --#: locale/programs/ld-collate.c:1503 locale/programs/ld-collate.c:1510
229.4767 --msgid "cannot insert into result table"
229.4768 --msgstr "nie je mo¾né vklada» do výslednej tabuµky"
229.4769 --
229.4770 --#: locale/programs/ld-collate.c:1175 locale/programs/ld-collate.c:1218
229.4771 --#, c-format
229.4772 --msgid "cannot insert new collating symbol definition: %s"
229.4773 --msgstr "nie je mo¾né vlo¾i» nový symbol triedenia: %s"
229.4774 --
229.4775 --#: elf/sprof.c:674
229.4776 -+#: elf/sprof.c:670
229.4777 - msgid "cannot load profiling data"
229.4778 - msgstr "nie je mo¾né naèíta» profilovacie údaje"
229.4779 -
229.4780 --#: inet/rcmd.c:314
229.4781 -+#: elf/dl-deps.c:586
229.4782 -+msgid "cannot load shared object file"
229.4783 -+msgstr "nepodarilo sa naèíta» súbor zdieµaného objektu"
229.4784 -+
229.4785 -+#: elf/dl-reloc.c:63
229.4786 -+msgid "cannot make segment writable for relocation"
229.4787 -+msgstr "nie je mo¾né zmeni» segment na zapisovateµný pre relokáciu"
229.4788 -+
229.4789 -+#: elf/dl-load.c:1016
229.4790 -+msgid "cannot map zero-fill pages"
229.4791 -+msgstr "nie je mo¾né namapova» stránky vyplnené nulami"
229.4792 -+
229.4793 -+#: inet/rcmd.c:420
229.4794 - msgid "cannot open"
229.4795 - msgstr "nie je mo¾né otvori»"
229.4796 -
229.4797 - #: sysdeps/unix/sysv/linux/lddlibc4.c:64
229.4798 - #, c-format
229.4799 --msgid "cannot open"
229.4800 --msgstr "nie je mo¾né otvori»"
229.4801 -+msgid "cannot open `%s'"
229.4802 -+msgstr "nie je mo¾né otvori» `%s'"
229.4803 -
229.4804 --#: db2/makedb.c:146
229.4805 --#, c-format
229.4806 --msgid "cannot open database file `%s': %s"
229.4807 --msgstr "nie je mo¾né otvori» databázový súbor `%s': %s"
229.4808 -+#: debug/pcprofiledump.c:96
229.4809 -+msgid "cannot open input file"
229.4810 -+msgstr "nie je mo¾né otvori» vstupný súbor"
229.4811 -
229.4812 --#: catgets/gencat.c:272 db2/makedb.c:167 iconv/iconv_prog.c:177
229.4813 -+#: catgets/gencat.c:288 iconv/iconv_prog.c:225
229.4814 - #, c-format
229.4815 - msgid "cannot open input file `%s'"
229.4816 - msgstr "nie je mo¾né otvori» vstupný súbor `%s'"
229.4817 -
229.4818 --#: locale/programs/localedef.c:198
229.4819 -+#: locale/programs/localedef.c:203 locale/programs/localedef.c:218
229.4820 -+#: locale/programs/localedef.c:513 locale/programs/localedef.c:533
229.4821 - #, c-format
229.4822 - msgid "cannot open locale definition file `%s'"
229.4823 - msgstr "nie je mo¾né otvori» súbor definície národného prostredia `%s'"
229.4824 -
229.4825 --#: iconv/iconv_prog.c:155
229.4826 -+#: iconv/iconv_prog.c:194
229.4827 - msgid "cannot open output file"
229.4828 - msgstr "nie je mo¾né otvori» výstupný súbor"
229.4829 -
229.4830 --#: catgets/gencat.c:774 catgets/gencat.c:815 db2/makedb.c:181
229.4831 -+#: catgets/gencat.c:944 catgets/gencat.c:985
229.4832 - #, c-format
229.4833 - msgid "cannot open output file `%s'"
229.4834 - msgstr "nie je mo¾né otvori» výstupný súbor `%s'"
229.4835 -
229.4836 --#: locale/programs/locfile.c:1129
229.4837 -+#: locale/programs/locfile.c:381
229.4838 - #, c-format
229.4839 - msgid "cannot open output file `%s' for category `%s'"
229.4840 - msgstr "nie je mo¾né otvori» výstupný súbor `%s' pre kategóriu `%s'"
229.4841 -
229.4842 --#: nscd/connections.c:162
229.4843 -+#: elf/dl-load.c:1695
229.4844 -+msgid "cannot open shared object file"
229.4845 -+msgstr "nie je mo¾né otvori» súbor zdieµaného objektu"
229.4846 -+
229.4847 -+#: nscd/connections.c:165
229.4848 - #, c-format
229.4849 - msgid "cannot open socket: %s"
229.4850 - msgstr "nie je mo¾né otvori» socket `%s'"
229.4851 -
229.4852 --#: locale/programs/ld-collate.c:1370
229.4853 --msgid "cannot process order specification"
229.4854 --msgstr "nie je mo¾né spracova» ¹pecifikáciu poradia"
229.4855 -+#: elf/dl-load.c:814
229.4856 -+msgid "cannot open zero fill device"
229.4857 -+msgstr "nie je mo¾né otvori» zariadenie pre naplnenie nulami"
229.4858 -
229.4859 --#: locale/programs/locale.c:449
229.4860 -+#: locale/programs/charmap-dir.c:61
229.4861 - #, c-format
229.4862 - msgid "cannot read character map directory `%s'"
229.4863 - msgstr "nie je mo¾né naèíta» adresár znakových sád `%s'"
229.4864 -
229.4865 --#: nscd/connections.c:122
229.4866 -+#: nscd/connections.c:125
229.4867 - msgid "cannot read configuration file; this is fatal"
229.4868 - msgstr "nie je mo¾né naèíta» konfiguraèný súbor; to je fatálne"
229.4869 -
229.4870 --#: login/programs/request.c:91
229.4871 --msgid "cannot read from client"
229.4872 --msgstr "nie je mo¾né èíta» od klienta"
229.4873 -+#: elf/dl-load.c:838 elf/dl-load.c:1244
229.4874 -+msgid "cannot read file data"
229.4875 -+msgstr "nie je mo¾né naèíta» údaje súboru"
229.4876 -+
229.4877 -+#: debug/pcprofiledump.c:102
229.4878 -+msgid "cannot read header"
229.4879 -+msgstr "nie je mo¾né preèíta» hlavièku"
229.4880 -
229.4881 - #: sysdeps/unix/sysv/linux/lddlibc4.c:68
229.4882 - #, c-format
229.4883 - msgid "cannot read header from `%s'"
229.4884 - msgstr "nie je mo¾né preèíta» hlavièku z `%s'"
229.4885 -
229.4886 --#: locale/programs/locale.c:306
229.4887 -+#: locale/programs/locale.c:308
229.4888 - #, c-format
229.4889 - msgid "cannot read locale directory `%s'"
229.4890 - msgstr "nie je mo¾né naèíta» adresár národných prostredí `%s'"
229.4891 -
229.4892 --#: locale/programs/localedef.c:303
229.4893 --#, c-format
229.4894 --msgid "cannot read locale file `%s'"
229.4895 --msgstr "nie je mo¾né preèíta» súbor národného prostredia `%s'"
229.4896 --
229.4897 --#: locale/programs/locfile.c:288 locale/programs/locfile.c:306
229.4898 --#: locale/programs/locfile.c:324 locale/programs/locfile.c:342
229.4899 --#: locale/programs/locfile.c:360 locale/programs/locfile.c:378
229.4900 --#, c-format
229.4901 --msgid "cannot read repertoire map `%s'"
229.4902 --msgstr "nie je mo¾né naèíta» mapu repertoáru `%s'"
229.4903 --
229.4904 --#: nscd/nscd_stat.c:127
229.4905 -+#: nscd/nscd_stat.c:128
229.4906 - msgid "cannot read statistics data"
229.4907 - msgstr "nie je mo¾né naèíta» ¹tatistické údaje"
229.4908 -
229.4909 --#: nscd/cache.c:141 nscd/connections.c:148
229.4910 -+#: locale/programs/repertoire.c:331
229.4911 -+msgid "cannot safe new repertoire map"
229.4912 -+msgstr "nie je mo¾né uchova» mapu repertoáru"
229.4913 -+
229.4914 -+#: elf/dl-load.c:776
229.4915 -+msgid "cannot stat shared object"
229.4916 -+msgstr "nepodarilo sa zisti» stav zdieµaného objektu"
229.4917 -+
229.4918 -+#: nscd/cache.c:150 nscd/connections.c:151
229.4919 - #, c-format
229.4920 - msgid "cannot stat() file `%s': %s"
229.4921 - msgstr "nie je mo¾né vykona» stat() súboru `%s': %s"
229.4922 -
229.4923 --#: locale/programs/localedef.c:328
229.4924 -+#: locale/programs/localedef.c:230
229.4925 - #, c-format
229.4926 - msgid "cannot write output files to `%s'"
229.4927 - msgstr "nie je mo¾né zapísa» výstupné súbory do `%s'"
229.4928 -
229.4929 --#: nscd/connections.c:229 nscd/connections.c:250
229.4930 -+#: nscd/connections.c:261 nscd/connections.c:282
229.4931 - #, c-format
229.4932 - msgid "cannot write result: %s"
229.4933 - msgstr "nie je mo¾né zapísa» výsledok: %s"
229.4934 -
229.4935 --#: nscd/nscd_stat.c:86
229.4936 -+#: nscd/nscd_stat.c:87
229.4937 - #, c-format
229.4938 - msgid "cannot write statistics: %s"
229.4939 - msgstr "nie je mo¾né zapísa» ¹tatistiku: `%s'"
229.4940 -
229.4941 --#: login/programs/request.c:120
229.4942 --msgid "cannot write to client"
229.4943 --msgstr "nie je mo¾né písa» klientovi"
229.4944 --
229.4945 --#: locale/programs/localedef.c:442
229.4946 --msgid "category data requested more than once: should not happen"
229.4947 --msgstr "údaje kategórie po¾adované viac ako raz - to by sa nemalo sta»"
229.4948 --
229.4949 --#: locale/programs/ld-ctype.c:269
229.4950 -+#: locale/programs/ld-ctype.c:509
229.4951 - #, c-format
229.4952 --msgid "character %s'%s' in class `%s' must be in class `%s'"
229.4953 --msgstr "znak %s'%s' v triede `%s' musí by» v triede `%s'"
229.4954 -+msgid "character '%s' in class `%s' must be in class `%s'"
229.4955 -+msgstr "znak '%s' v triede `%s' musí by» v triede `%s'"
229.4956 -
229.4957 --#: locale/programs/ld-ctype.c:294
229.4958 -+#: locale/programs/ld-ctype.c:524
229.4959 - #, c-format
229.4960 --msgid "character %s'%s' in class `%s' must not be in class `%s'"
229.4961 --msgstr "znak %s'%s' v triede `%s' nesmie by» v triede `%s'"
229.4962 -+msgid "character '%s' in class `%s' must not be in class `%s'"
229.4963 -+msgstr "znak '%s' v triede `%s' nesmie by» v triede `%s'"
229.4964 -
229.4965 --#: locale/programs/ld-ctype.c:320
229.4966 -+#: locale/programs/ld-ctype.c:579
229.4967 - msgid "character <SP> not defined in character map"
229.4968 - msgstr "znak <SP> nie je definovaný v znakovej sade"
229.4969 -
229.4970 --#: locale/programs/ld-ctype.c:964 locale/programs/ld-ctype.c:1029
229.4971 --#: locale/programs/ld-ctype.c:1040 locale/programs/ld-ctype.c:1051
229.4972 --#: locale/programs/ld-ctype.c:1062 locale/programs/ld-ctype.c:1073
229.4973 --#: locale/programs/ld-ctype.c:1084 locale/programs/ld-ctype.c:1113
229.4974 --#: locale/programs/ld-ctype.c:1124 locale/programs/ld-ctype.c:1165
229.4975 --#: locale/programs/ld-ctype.c:1194 locale/programs/ld-ctype.c:1206
229.4976 -+#: locale/programs/ld-ctype.c:453
229.4977 -+#, c-format
229.4978 -+msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
229.4979 -+msgstr "znak L'\\u%0*x' v triede `%s' musí by» v triede `%s'"
229.4980 -+
229.4981 -+#: locale/programs/ld-ctype.c:467
229.4982 -+#, c-format
229.4983 -+msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
229.4984 -+msgstr "znak L'\\u%0*x' v triede `%s' nesmie by» v triede `%s'"
229.4985 -+
229.4986 -+#: locale/programs/ld-ctype.c:3030
229.4987 - #, c-format
229.4988 - msgid "character `%s' not defined while needed as default value"
229.4989 - msgstr "znak `%s' nie je definovaný a je potrebný ako implicitná hodnota"
229.4990 -
229.4991 --#: locale/programs/ld-ctype.c:825
229.4992 -+#: locale/programs/ld-ctype.c:1215
229.4993 - #, c-format
229.4994 - msgid "character class `%s' already defined"
229.4995 - msgstr "trieda znakov `%s' je u¾ definovaná"
229.4996 -
229.4997 --#: locale/programs/ld-ctype.c:857
229.4998 -+#: locale/programs/ld-ctype.c:1247
229.4999 - #, c-format
229.5000 - msgid "character map `%s' already defined"
229.5001 - msgstr "znaková sada `%s' je u¾ definovaná"
229.5002 -
229.5003 --#: locale/programs/charmap.c:83
229.5004 -+#: locale/programs/charmap.c:249
229.5005 -+#, c-format
229.5006 -+msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
229.5007 -+msgstr "znaková mapa `%s' nie je kompatibilná s ASCII, prostredie nevyhovuje ISO C\n"
229.5008 -+
229.5009 -+#: locale/programs/charmap.c:135
229.5010 - #, c-format
229.5011 - msgid "character map file `%s' not found"
229.5012 - msgstr "súbor znakovej sady `%s' nebol nájdený"
229.5013 -
229.5014 --#: sunrpc/clnt_raw.c:110
229.5015 -+#: locale/programs/charmap.c:460
229.5016 -+msgid "character sets with locking states are not supported"
229.5017 -+msgstr "znakové sady so zamykacími stavmi nie sú podporované"
229.5018 -+
229.5019 -+#: locale/programs/localedef.c:482
229.5020 -+msgid "circular dependencies between locale definitions"
229.5021 -+msgstr "kruhová závislos» medzi definíciami prostredí"
229.5022 -+
229.5023 -+#: sunrpc/clnt_raw.c:111
229.5024 - msgid "clnt_raw.c - Fatal header serialization error."
229.5025 - msgstr "clnt_raw.c - Fatálna chyba pri serializácii hlavièky."
229.5026 -
229.5027 --#: sunrpc/clnt_tcp.c:125 sunrpc/clnt_tcp.c:133
229.5028 -+#: sunrpc/clnt_tcp.c:126 sunrpc/clnt_tcp.c:134
229.5029 - msgid "clnttcp_create: out of memory\n"
229.5030 - msgstr "clnttcp_create: nedostatok pamäti\n"
229.5031 -
229.5032 --#: sunrpc/clnt_udp.c:124 sunrpc/clnt_udp.c:134
229.5033 --msgid "svctcp_create: out of memory\n"
229.5034 --msgstr "svctcp_create: nedostatok pamäti\n"
229.5035 -+#: sunrpc/clnt_udp.c:131 sunrpc/clnt_udp.c:141
229.5036 -+msgid "clntudp_create: out of memory\n"
229.5037 -+msgstr "clntudp_create: nedostatok pamäti\n"
229.5038 -
229.5039 --#: sunrpc/clnt_unix.c:123 sunrpc/clnt_unix.c:131
229.5040 -+#: sunrpc/clnt_unix.c:124 sunrpc/clnt_unix.c:132
229.5041 - msgid "clntunix_create: out of memory\n"
229.5042 - msgstr "clntunix_create: nedostatok pamäti\n"
229.5043 -
229.5044 --#: locale/programs/ld-collate.c:1339
229.5045 --#, c-format
229.5046 --msgid "collation element `%.*s' appears more than once: ignore line"
229.5047 --msgstr "element triedenia `%.*s' uvedený viac ako raz - riadok ignorovaný"
229.5048 --
229.5049 --#: locale/programs/ld-collate.c:1357
229.5050 --#, c-format
229.5051 --msgid "collation symbol `%.*s' appears more than once: ignore line"
229.5052 --msgstr "symbol triedenia `%.*s' uvedený viac ako raz - riadok ignorovaný"
229.5053 --
229.5054 --#: locale/programs/locfile.c:652
229.5055 --#, c-format
229.5056 --msgid "collation symbol expected after `%s'"
229.5057 --msgstr "po `%s' je oèakávaný symbol triedenia"
229.5058 --
229.5059 --#: inet/rcmd.c:136
229.5060 --#, c-format
229.5061 --msgid "connect to address %s: "
229.5062 --msgstr "spojenie s adresou %s: "
229.5063 --
229.5064 --#: sunrpc/rpc_scan.c:115
229.5065 -+#: sunrpc/rpc_scan.c:116
229.5066 - msgid "constant or identifier expected"
229.5067 - msgstr "oèakávaná kon¹tanta alebo identifikátor"
229.5068 -
229.5069 --#: iconv/iconv_prog.c:144
229.5070 -+#: iconv/iconv_prog.c:182
229.5071 - #, c-format
229.5072 - msgid "conversion from `%s' to `%s' not supported"
229.5073 - msgstr "konverzia z `%s' do `%s' nie je podporovaná"
229.5074 -
229.5075 --#: iconv/iconv_prog.c:326
229.5076 -+#: catgets/gencat.c:1290
229.5077 -+msgid "conversion modules not available"
229.5078 -+msgstr "moduly konverzie nie sú dostupné"
229.5079 -+
229.5080 -+#: locale/programs/ld-monetary.c:900
229.5081 -+msgid "conversion rate value cannot be zero"
229.5082 -+msgstr "konverzný pomer nemô¾e by» nula"
229.5083 -+
229.5084 -+#: iconv/iconv_prog.c:385 iconv/iconv_prog.c:410
229.5085 - msgid "conversion stopped due to problem in writing the output"
229.5086 - msgstr "konverzia zastavená kvôli problému pri zápise výstupu"
229.5087 -
229.5088 --#: sunrpc/svc_simple.c:83
229.5089 -+#: sunrpc/svc_simple.c:84
229.5090 - msgid "couldn't create an rpc server\n"
229.5091 - msgstr "nebolo mo¾né vytvori» rpc server\n"
229.5092 -
229.5093 --#: sunrpc/svc_simple.c:91
229.5094 -+#: sunrpc/svc_simple.c:92
229.5095 - #, c-format
229.5096 --msgid "couldn't register prog %d vers %d\n"
229.5097 --msgstr "nebolo mo¾né zaregistrova» program %d verzie %d\n"
229.5098 -+msgid "couldn't register prog %ld vers %ld\n"
229.5099 -+msgstr "nebolo mo¾né zaregistrova» program %ld verzie %ld\n"
229.5100 -
229.5101 --#: nss/getent.c:49
229.5102 -+#: nss/getent.c:51
229.5103 - msgid "database [key ...]"
229.5104 - msgstr "databáza [kµúè ...]"
229.5105 -
229.5106 --#: locale/programs/charmap.c:170
229.5107 -+#: locale/programs/charmap.c:192
229.5108 - #, c-format
229.5109 - msgid "default character map file `%s' not found"
229.5110 - msgstr "implicitný súbor znakovej sady `%s' nebol nájdený"
229.5111 -
229.5112 --#: locale/programs/ld-time.c:163
229.5113 --#, c-format
229.5114 --msgid "direction flag in string %d in `era' field in category `%s' is not '+' nor '-'"
229.5115 --msgstr "príznak smeru v re»azci %d poµa `era' v kategórii `%s' nie je '+' ani '-'"
229.5116 --
229.5117 --#: locale/programs/ld-time.c:174
229.5118 --#, c-format
229.5119 --msgid "direction flag in string %d in `era' field in category `%s' is not a single character"
229.5120 --msgstr "príznak smeru v re»azci %d poµa `era' v kategórii `%s' nie je jeden znak"
229.5121 --
229.5122 --#: locale/programs/charset.c:64 locale/programs/charset.c:118
229.5123 -+#: locale/programs/charmap.c:392
229.5124 - #, c-format
229.5125 --msgid "duplicate character name `%s'"
229.5126 --msgstr "duplicitné meno znaku `%s'"
229.5127 --
229.5128 --#: locale/programs/ld-collate.c:1150
229.5129 --msgid "duplicate collating element definition"
229.5130 --msgstr "duplicitná definícia elementu triedenia"
229.5131 -+msgid "duplicate definition of <%s>"
229.5132 -+msgstr "duplicitná definícia <%s>"
229.5133 -
229.5134 --#: locale/programs/ld-collate.c:1297
229.5135 -+#: locale/programs/ld-collate.c:3043
229.5136 - #, c-format
229.5137 --msgid "duplicate definition for character `%.*s'"
229.5138 --msgstr "duplicitná definícia znaku `%.*s'"
229.5139 -+msgid "duplicate definition of script `%s'"
229.5140 -+msgstr "duplicitná definícia skriptu `%s'"
229.5141 -
229.5142 --#: db2/makedb.c:328
229.5143 --msgid "duplicate key"
229.5144 --msgstr "duplicitný kµúè"
229.5145 --
229.5146 --#: catgets/gencat.c:388
229.5147 -+#: catgets/gencat.c:430
229.5148 - msgid "duplicate set definition"
229.5149 - msgstr "duplicitná definícia sady"
229.5150 -
229.5151 --#: timezone/zic.c:978
229.5152 -+#: timezone/zic.c:1003
229.5153 - #, c-format
229.5154 - msgid "duplicate zone name %s (file \"%s\", line %d)"
229.5155 - msgstr "duplicitné meno zóny %s (súbor \"%s\", riadok %d)"
229.5156 -
229.5157 --#: catgets/gencat.c:551
229.5158 -+#: locale/programs/ld-ctype.c:2557
229.5159 -+#, c-format
229.5160 -+msgid "duplicated definition for mapping `%s'"
229.5161 -+msgstr "duplicitná definícia mapovania `%s'"
229.5162 -+
229.5163 -+#: catgets/gencat.c:631
229.5164 - msgid "duplicated message identifier"
229.5165 - msgstr "duplicitný identifikátor správy"
229.5166 -
229.5167 --#: catgets/gencat.c:524
229.5168 -+#: catgets/gencat.c:603
229.5169 - msgid "duplicated message number"
229.5170 - msgstr "duplicitné èíslo správy"
229.5171 -
229.5172 --#: sunrpc/rpc_scan.c:382
229.5173 -+#: locale/programs/ld-ctype.c:2368
229.5174 -+msgid "ellipsis range must be marked by two operands of same type"
229.5175 -+msgstr "rozsah pokraèovania musí by» oznaèený dvomi operandami rovnakého typu"
229.5176 -+
229.5177 -+#: sunrpc/rpc_scan.c:383
229.5178 - msgid "empty char string"
229.5179 - msgstr "prázdny znakový re»azec"
229.5180 -
229.5181 --#: locale/programs/ld-collate.c:1710
229.5182 --msgid "empty weight name: line ignored"
229.5183 --msgstr "prázdne meno váhy - riadok ignorovaný"
229.5184 -+#: elf/dl-open.c:223
229.5185 -+msgid "empty dynamic string token substitution"
229.5186 -+msgstr "prázdna substitúcia tokenu dynamického re»azca"
229.5187 -
229.5188 --#: sunrpc/svc_udp.c:372
229.5189 -+#: sunrpc/svc_udp.c:454
229.5190 - msgid "enablecache: cache already enabled"
229.5191 - msgstr "enablecache: vyrovnávacia pamä» je u¾ povolená"
229.5192 -
229.5193 --#: sunrpc/svc_udp.c:378
229.5194 -+#: sunrpc/svc_udp.c:460
229.5195 - msgid "enablecache: could not allocate cache"
229.5196 - msgstr "enablecache: nebolo mo¾né prideli» vyrovnáciu pamä»"
229.5197 -
229.5198 --#: sunrpc/svc_udp.c:386
229.5199 -+#: sunrpc/svc_udp.c:468
229.5200 - msgid "enablecache: could not allocate cache data"
229.5201 - msgstr "enablecache: nebolo mo¾né prideli» dáta pre vyrovnávaciu pamä»"
229.5202 -
229.5203 --#: sunrpc/svc_udp.c:393
229.5204 -+#: sunrpc/svc_udp.c:475
229.5205 - msgid "enablecache: could not allocate cache fifo"
229.5206 - msgstr "enablecache: nebolo mo¾né prideli» frontu pre vyrovnávaciu pamä»"
229.5207 -
229.5208 --#: iconv/iconv_prog.c:56
229.5209 -+#: iconv/iconv_prog.c:57
229.5210 - msgid "encoding for output"
229.5211 - msgstr "kódovanie výstupu"
229.5212 -
229.5213 --#: iconv/iconv_prog.c:55
229.5214 -+#: iconv/iconv_prog.c:56
229.5215 - msgid "encoding of original text"
229.5216 - msgstr "kódovanie pôvodného textu"
229.5217 -
229.5218 --#: locale/programs/ld-collate.c:1429
229.5219 --msgid "end point of ellipsis range is bigger then start"
229.5220 --msgstr "koncový bod pokraèovania je väè¹í ako poèiatoèný"
229.5221 -+#: nscd/connections.c:361 nscd/connections.c:453
229.5222 -+#, c-format
229.5223 -+msgid "error getting callers id: %s"
229.5224 -+msgstr "chyba pri získaní id volajúceho: %s"
229.5225 -+
229.5226 -+#: locale/programs/ld-collate.c:3013
229.5227 -+msgid "error while adding equivalent collating symbol"
229.5228 -+msgstr "chyba pri pridávaní ekvivalentného symbolu triedenia"
229.5229 -
229.5230 --#: iconv/iconv_prog.c:193
229.5231 -+#: iconv/iconv_prog.c:242
229.5232 - #, c-format
229.5233 - msgid "error while closing input `%s'"
229.5234 - msgstr "chyba poèas zatvárania vstupu `%s'"
229.5235 -
229.5236 --#: iconv/iconv_prog.c:239
229.5237 -+#: iconv/iconv_prog.c:288
229.5238 - msgid "error while closing output file"
229.5239 - msgstr "chyba poèas zatvárania výstupného súboru"
229.5240 -
229.5241 --#: elf/sprof.c:710
229.5242 -+#: elf/sprof.c:706
229.5243 - msgid "error while closing the profiling data file"
229.5244 - msgstr "chyba poèas zatvárania súboru profilovacích údajov"
229.5245 -
229.5246 --#: locale/programs/ld-collate.c:1158
229.5247 --msgid "error while inserting collation element into hash table"
229.5248 --msgstr "chyba poèas vkladania elementu triedenia do hash-tabuµky"
229.5249 --
229.5250 --#: locale/programs/ld-collate.c:1170
229.5251 --msgid "error while inserting to hash table"
229.5252 --msgstr "chyba poèas vkladania do hash-tabuµky"
229.5253 --
229.5254 --#: iconv/iconv_prog.c:389 iconv/iconv_prog.c:420
229.5255 -+#: iconv/iconv_prog.c:474 iconv/iconv_prog.c:505
229.5256 - msgid "error while reading the input"
229.5257 - msgstr "poèas èítania vstupu"
229.5258 -
229.5259 --#: locale/programs/locfile.c:595
229.5260 -+#: locale/programs/locfile.h:59
229.5261 - msgid "expect string argument for `copy'"
229.5262 - msgstr "pre `copy' je oèakávaný re»azcový argyment"
229.5263 -
229.5264 --#: timezone/zic.c:868
229.5265 -+#: timezone/zic.c:893
229.5266 - msgid "expected continuation line not found"
229.5267 - msgstr "oèakávaný pokraèovací riadok nebol nájdený"
229.5268 -
229.5269 --#: elf/sprof.c:408
229.5270 -+#: elf/sprof.c:404
229.5271 - #, c-format
229.5272 - msgid "failed to load shared object `%s'"
229.5273 - msgstr "nepodarilo sa naèíta» zdieµaný objekt `%s'"
229.5274 -
229.5275 --#: elf/sprof.c:604
229.5276 -+#: elf/sprof.c:600
229.5277 - msgid "failed to load symbol data"
229.5278 - msgstr "nepodarilo sa naèíta» symbolické údaje"
229.5279 -
229.5280 --#: elf/sprof.c:702
229.5281 -+#: elf/dl-load.c:763
229.5282 -+msgid "failed to map segment from shared object"
229.5283 -+msgstr "nepodarilo sa namapova» segment zo zdieµaného objektu"
229.5284 -+
229.5285 -+#: elf/sprof.c:698
229.5286 - msgid "failed to mmap the profiling data file"
229.5287 - msgstr "nepodarilo sa mmap-ova» súbor profilovacích údajov"
229.5288 -
229.5289 --#: iconv/iconv_prog.c:147
229.5290 -+#: iconv/iconv_prog.c:186
229.5291 - msgid "failed to start conversion processing"
229.5292 - msgstr "nepodarilo sa od¹tartova» konverziu"
229.5293 -
229.5294 --#: locale/programs/locfile.c:1154
229.5295 -+#: locale/programs/locfile.c:406
229.5296 - #, c-format
229.5297 - msgid "failure while writing data for category `%s'"
229.5298 - msgstr "chyba poèas zápisu údajov kategórie `%s'"
229.5299 -
229.5300 --#: nis/nis_call.c:155
229.5301 -+#: nis/nis_call.c:156
229.5302 - msgid "fcntl: F_SETFD"
229.5303 - msgstr "fcntl: F_SETFD"
229.5304 -
229.5305 --#: locale/programs/ld-monetary.c:163 locale/programs/ld-numeric.c:98
229.5306 --#, c-format
229.5307 --msgid "field `%s' in category `%s' not defined"
229.5308 --msgstr "pole `%s' ketegórie `%s' nie je definované"
229.5309 --
229.5310 --#: locale/programs/ld-messages.c:86 locale/programs/ld-messages.c:110
229.5311 --#, c-format
229.5312 --msgid "field `%s' in category `%s' undefined"
229.5313 --msgstr "pole `%s' kategórie `%s' nedefinované"
229.5314 --
229.5315 --#: sunrpc/rpc_main.c:1148
229.5316 --#, c-format
229.5317 --msgid "file '%s' already exists and may be overwritten\n"
229.5318 --msgstr "súbor '%s' u¾ existuje a mô¾e by» prepísaný\n"
229.5319 --
229.5320 --#: locale/programs/locfile.c:677
229.5321 --msgid "from-value of `collating-element' must be a string"
229.5322 --msgstr "hodnota od pre `collating-element' musí by» re»azec"
229.5323 -+#. TRANS: the file will not be removed; this is an
229.5324 -+#. TRANS: informative message.
229.5325 -+#: sunrpc/rpc_main.c:1150
229.5326 -+#, c-format
229.5327 -+msgid "file `%s' already exists and may be overwritten\n"
229.5328 -+msgstr "súbor `%s' u¾ existuje a mô¾e by» prepísaný\n"
229.5329 -+
229.5330 -+#: elf/dl-load.c:1244
229.5331 -+msgid "file too short"
229.5332 -+msgstr "súbor je príli¹ krátky"
229.5333 -
229.5334 --#: inet/rcmd.c:316
229.5335 -+#: inet/rcmd.c:422
229.5336 - msgid "fstat failed"
229.5337 - msgstr "fstat sa nepodaril"
229.5338 -
229.5339 --#: locale/programs/linereader.c:333
229.5340 -+#: locale/programs/linereader.c:383
229.5341 - msgid "garbage at end of character code specification"
229.5342 - msgstr "smetie za koncom ¹pecifikácie kódu znaku"
229.5343 -
229.5344 --#: locale/programs/linereader.c:219
229.5345 -+#: locale/programs/linereader.c:271
229.5346 - msgid "garbage at end of number"
229.5347 - msgstr "smetie za koncom èísla"
229.5348 -
229.5349 --#: locale/programs/ld-time.c:195
229.5350 --#, c-format
229.5351 --msgid "garbage at end of offset value in string %d in `era' field in category `%s'"
229.5352 --msgstr "smetie za koncom hodnoty posunutia v re»azci %d poµa `era' kategórie `%s'"
229.5353 --
229.5354 --#: locale/programs/ld-time.c:252
229.5355 --#, c-format
229.5356 --msgid "garbage at end of starting date in string %d in `era' field in category `%s'"
229.5357 --msgstr "smetie za koncom poèiatoèného dátumu v re»azci %d poµa `era' kategórie `%s'"
229.5358 --
229.5359 --#: locale/programs/ld-time.c:328
229.5360 --#, c-format
229.5361 --msgid "garbage at end of stopping date in string %d in `era' field in category `%s'"
229.5362 --msgstr "smetie za koncom koncového dátumu v re»azci %d poµa `era' kategórie `%s'"
229.5363 --
229.5364 --#: elf/sprof.c:81
229.5365 -+#: elf/sprof.c:77
229.5366 - msgid "generate call graph"
229.5367 - msgstr "tvorba grafu volaní"
229.5368 -
229.5369 --#: elf/sprof.c:80
229.5370 -+#: elf/sprof.c:76
229.5371 - msgid "generate flat profile with counts and ticks"
229.5372 - msgstr "tvorba jednoduchého profilu s poètami a tikmi"
229.5373 -
229.5374 --#: sunrpc/get_myaddr.c:77
229.5375 -+#: sunrpc/get_myaddr.c:78
229.5376 - msgid "get_myaddress: ioctl (get interface configuration)"
229.5377 - msgstr "get_myaddress: ioctl (získanie konfigurácie rozhrania)"
229.5378 -
229.5379 --#: nss/getent.c:53
229.5380 -+#: nss/getent.c:702
229.5381 - msgid "getent - get entries from administrative database."
229.5382 - msgstr "getent - získa» záznamy z administratívnej databázy."
229.5383 -
229.5384 --#: nscd/connections.c:200
229.5385 -+#: nscd/connections.c:220
229.5386 - #, c-format
229.5387 - msgid "handle_request: request received (Version = %d)"
229.5388 - msgstr "handle_request: ¾iados» prijatá (verzia = %d)"
229.5389 -
229.5390 --#: timezone/zic.c:613
229.5391 -+#: timezone/zic.c:637
229.5392 - msgid "hard link failed, symbolic link used"
229.5393 - msgstr "pevný odkaz zlyhal, pou¾itý symbolický"
229.5394 -
229.5395 --#: inet/rcmd.c:322
229.5396 -+#: inet/rcmd.c:428
229.5397 - msgid "hard linked somewhere"
229.5398 - msgstr "niekde existuje pevný odkaz"
229.5399 -
229.5400 --#: timezone/zic.c:1162
229.5401 -+#: locale/programs/charmap.c:981 locale/programs/repertoire.c:430
229.5402 -+msgid "hexadecimal range format should use only capital characters"
229.5403 -+msgstr "hexadecimálny formát rozsahu by mal pou¾íva» iba veµké písmená"
229.5404 -+
229.5405 -+#: timezone/zic.c:1187
229.5406 - msgid "illegal CORRECTION field on Leap line"
229.5407 - msgstr "neprípustné pole CORRECTION v riadku Leap"
229.5408 -
229.5409 --#: timezone/zic.c:1166
229.5410 -+#: timezone/zic.c:1191
229.5411 - msgid "illegal Rolling/Stationary field on Leap line"
229.5412 - msgstr "neprípustné pole Rolling/Stationary v riadku Leap"
229.5413 -
229.5414 --#: locale/programs/ld-collate.c:1782
229.5415 --msgid "illegal character constant in string"
229.5416 --msgstr "neprípustný znak v re»azci"
229.5417 --
229.5418 --#: sunrpc/rpc_scan.c:311
229.5419 -+#: sunrpc/rpc_scan.c:312
229.5420 - msgid "illegal character in file: "
229.5421 - msgstr "neprípustný znak v súbore: "
229.5422 -
229.5423 --#: locale/programs/ld-collate.c:1125
229.5424 --msgid "illegal collation element"
229.5425 --msgstr "neprípustný element triedenia"
229.5426 --
229.5427 --#: locale/programs/charmap.c:281
229.5428 --msgid "illegal definition"
229.5429 --msgstr "neprípustná definícia"
229.5430 --
229.5431 --#: locale/programs/charmap.c:434
229.5432 --msgid "illegal encoding given"
229.5433 --msgstr "zadané neprípustné kódovanie"
229.5434 --
229.5435 --#: locale/programs/linereader.c:551
229.5436 -+#: locale/programs/linereader.c:595
229.5437 - msgid "illegal escape sequence at end of string"
229.5438 - msgstr "chybná escape-sekvencia na konci re»azca"
229.5439 -
229.5440 --#: iconv/iconv_prog.c:342
229.5441 -+#: iconv/iconv_prog.c:427
229.5442 - #, c-format
229.5443 - msgid "illegal input sequence at position %ld"
229.5444 - msgstr "neprípustná vstupná sekvencia na pozícii %ld"
229.5445 -
229.5446 --#: locale/programs/charset.c:78
229.5447 --msgid "illegal names for character range"
229.5448 --msgstr "neprípustné mená pre rozsah znakov"
229.5449 --
229.5450 --#: sunrpc/rpc_main.c:462
229.5451 -+#: sunrpc/rpc_main.c:463
229.5452 - #, c-format
229.5453 --msgid "illegal nettype :'%s'\n"
229.5454 --msgstr "chybný nettype :'%s'\n"
229.5455 -+msgid "illegal nettype :`%s'\n"
229.5456 -+msgstr "chybný nettype :`%s'\n"
229.5457 -
229.5458 --#: locale/programs/ld-time.c:187
229.5459 --#, c-format
229.5460 --msgid "illegal number for offset in string %d in `era' field in category `%s'"
229.5461 --msgstr "neprípustné èíslo pre posunutie v re»azci %d poµa `era' kategórie `%s'"
229.5462 --
229.5463 --#: catgets/gencat.c:361 catgets/gencat.c:438
229.5464 -+#: catgets/gencat.c:403 catgets/gencat.c:480
229.5465 - msgid "illegal set number"
229.5466 - msgstr "neprípustné èíslo sady"
229.5467 -
229.5468 --#: locale/programs/ld-time.c:243
229.5469 --#, c-format
229.5470 --msgid "illegal starting date in string %d in `era' field in category `%s'"
229.5471 --msgstr "neprípustný poèiatoèný dátum v re»azci %d poµa `era' kategórie `%s'"
229.5472 --
229.5473 --#: locale/programs/ld-time.c:319
229.5474 -+#: locale/programs/ld-ctype.c:1221
229.5475 - #, c-format
229.5476 --msgid "illegal stopping date in string %d in `era' field in category `%s'"
229.5477 --msgstr "neprípustný koncový dátum v re»azci %d poµa `era' kategórie `%s'"
229.5478 -+msgid "implementation limit: no more than %Zd character classes allowed"
229.5479 -+msgstr "limit implementácie: maximálne mno¾stvo tried znakov je %Zd"
229.5480 -
229.5481 --#: locale/programs/ld-ctype.c:831
229.5482 --#, c-format
229.5483 --msgid "implementation limit: no more than %d character classes allowed"
229.5484 --msgstr "limit implementácie: maximálne mno¾stvo tried znakov je %d"
229.5485 --
229.5486 --#: locale/programs/ld-ctype.c:863
229.5487 -+#: locale/programs/ld-ctype.c:1253
229.5488 - #, c-format
229.5489 - msgid "implementation limit: no more than %d character maps allowed"
229.5490 - msgstr "limit implementácie: maximálne mno¾stvo sád znakov je %d"
229.5491 -
229.5492 --#: iconv/iconv_prog.c:346
229.5493 -+#: iconv/iconv_prog.c:431
229.5494 - msgid "incomplete character or shift sequence at end of buffer"
229.5495 - msgstr "nekompletný znak alebo preraïovacia sekvencia na konci vyrovnávacej pamäti"
229.5496 -
229.5497 --#: db2/makedb.c:148
229.5498 --msgid "incorrectly formatted file"
229.5499 --msgstr "nesprávne formátovaný súbor"
229.5500 --
229.5501 --#: timezone/zic.c:825
229.5502 -+#: timezone/zic.c:850
229.5503 - msgid "input line of unknown type"
229.5504 - msgstr "vstupný riadok neznámeho typu"
229.5505 -
229.5506 --#: iconv/iconv_prog.c:350
229.5507 -+#: elf/dl-load.c:1291
229.5508 -+msgid "internal error"
229.5509 -+msgstr "interná chyba"
229.5510 -+
229.5511 -+#: iconv/iconv_prog.c:435
229.5512 - msgid "internal error (illegal descriptor)"
229.5513 - msgstr "vnútorná chyba (nesprávny deskriptor)"
229.5514 -
229.5515 --#: timezone/zic.c:1788
229.5516 -+#: timezone/zic.c:1813
229.5517 - msgid "internal error - addtype called with bad isdst"
229.5518 - msgstr "vnútorná chyba - addtype zavolaný s chybným isdst"
229.5519 -
229.5520 --#: timezone/zic.c:1796
229.5521 -+#: timezone/zic.c:1821
229.5522 - msgid "internal error - addtype called with bad ttisgmt"
229.5523 - msgstr "vnútorná chyba - addtype zavolaný s chybným ttisgmt"
229.5524 -
229.5525 --#: timezone/zic.c:1792
229.5526 -+#: timezone/zic.c:1817
229.5527 - msgid "internal error - addtype called with bad ttisstd"
229.5528 - msgstr "vnútorná chyba - addtype zavolaný s chybným ttisstd"
229.5529 -
229.5530 --#: locale/programs/ld-ctype.c:307
229.5531 -+#: locale/programs/ld-ctype.c:480 locale/programs/ld-ctype.c:536
229.5532 - #, c-format
229.5533 - msgid "internal error in %s, line %u"
229.5534 - msgstr "vnútorná chyba %s na riadku %u"
229.5535 -
229.5536 --#: timezone/zic.c:1034
229.5537 -+#: elf/dl-load.c:1264
229.5538 -+msgid "invalid ELF header"
229.5539 -+msgstr "neprípustná ELF hlavièka"
229.5540 -+
229.5541 -+#: timezone/zic.c:1059
229.5542 - msgid "invalid UTC offset"
229.5543 - msgstr "neprípustné posunutie voèi UTC"
229.5544 -
229.5545 --#: timezone/zic.c:1037
229.5546 -+#: timezone/zic.c:1062
229.5547 - msgid "invalid abbreviation format"
229.5548 - msgstr "neprípustný formát skratky"
229.5549 -
229.5550 --#: timezone/zic.c:1127 timezone/zic.c:1339 timezone/zic.c:1353
229.5551 -+#: catgets/gencat.c:687
229.5552 -+msgid "invalid character: message ignored"
229.5553 -+msgstr "neprípustný znak: správa ignorovaná"
229.5554 -+
229.5555 -+#: timezone/zic.c:1152 timezone/zic.c:1364 timezone/zic.c:1378
229.5556 - msgid "invalid day of month"
229.5557 - msgstr "neprípustný deò mesiaca"
229.5558 -
229.5559 --#: timezone/zic.c:1291
229.5560 -+#: locale/programs/charmap.c:347
229.5561 -+msgid "invalid definition"
229.5562 -+msgstr "neprípustná definícia"
229.5563 -+
229.5564 -+#: locale/programs/charmap.c:542
229.5565 -+msgid "invalid encoding given"
229.5566 -+msgstr "zadané neprípustné kódovanie"
229.5567 -+
229.5568 -+#: timezone/zic.c:1316
229.5569 - msgid "invalid ending year"
229.5570 - msgstr "neprípustný koncový rok"
229.5571 -
229.5572 --#: timezone/zic.c:1099
229.5573 -+#: catgets/gencat.c:1147 locale/programs/linereader.c:533
229.5574 -+msgid "invalid escape sequence"
229.5575 -+msgstr "neprípustná escape-sekvencia"
229.5576 -+
229.5577 -+#: timezone/zic.c:1124
229.5578 - msgid "invalid leaping year"
229.5579 - msgstr "neprípustný priestupný rok"
229.5580 -
229.5581 --#: elf/dl-open.c:159
229.5582 -+#: catgets/gencat.c:726
229.5583 -+msgid "invalid line"
229.5584 -+msgstr "neprípustný riadok"
229.5585 -+
229.5586 -+#: elf/dl-open.c:371
229.5587 - msgid "invalid mode for dlopen()"
229.5588 - msgstr "neprípustný mód pre dlopen()"
229.5589 -
229.5590 --#: timezone/zic.c:1114 timezone/zic.c:1217
229.5591 -+#: timezone/zic.c:1139 timezone/zic.c:1242
229.5592 - msgid "invalid month name"
229.5593 - msgstr "neprípustný názov mesiaca"
229.5594 -
229.5595 --#: timezone/zic.c:933
229.5596 -+#: locale/programs/charmap.c:969 locale/programs/ld-collate.c:2869
229.5597 -+#: locale/programs/repertoire.c:418
229.5598 -+msgid "invalid names for character range"
229.5599 -+msgstr "neprípustné mená pre rozsah znakov"
229.5600 -+
229.5601 -+#: debug/pcprofiledump.c:166
229.5602 -+msgid "invalid pointer size"
229.5603 -+msgstr "neprípustná veµkost» ukazovateµa"
229.5604 -+
229.5605 -+#: catgets/gencat.c:549
229.5606 -+msgid "invalid quote character"
229.5607 -+msgstr "neprípustný znak citácie"
229.5608 -+
229.5609 -+#: timezone/zic.c:958
229.5610 - msgid "invalid saved time"
229.5611 - msgstr "neprípustný ulo¾ený èas"
229.5612 -
229.5613 --#: timezone/zic.c:1266
229.5614 -+#: timezone/zic.c:1291
229.5615 - msgid "invalid starting year"
229.5616 - msgstr "neprípustný poèiatoèný rok"
229.5617 -
229.5618 --#: timezone/zic.c:1143 timezone/zic.c:1246
229.5619 -+#: timezone/zic.c:1168 timezone/zic.c:1271
229.5620 - msgid "invalid time of day"
229.5621 - msgstr "neprípustný èas v dni"
229.5622 -
229.5623 --#: timezone/zic.c:1344
229.5624 -+#: timezone/zic.c:1369
229.5625 - msgid "invalid weekday name"
229.5626 - msgstr "neprípustný názov dòa"
229.5627 -
229.5628 --#: nscd/connections.c:375
229.5629 -+#: nscd/connections.c:470
229.5630 -+#, c-format
229.5631 -+msgid "key length in request too long: %d"
229.5632 -+msgstr "då¾ka kµúèa v ¾iadosti príli¹ dlhá: %d"
229.5633 -+
229.5634 -+#: elf/ldconfig.c:738
229.5635 -+#, c-format
229.5636 -+msgid "libc4 library %s in wrong directory"
229.5637 -+msgstr "libc4 kni¾nica %s je v nesprávnom adresári"
229.5638 -+
229.5639 -+#: elf/ldconfig.c:732
229.5640 - #, c-format
229.5641 --msgid "key length in request too long: %Zd"
229.5642 --msgstr "då¾ka kµúèa v ¾iadosti príli¹ dlhá: %Zd"
229.5643 -+msgid "libc5 library %s in wrong directory"
229.5644 -+msgstr "libc5 kni¾nica %s je v nesprávnom adresári"
229.5645 -
229.5646 --#: locale/programs/ld-collate.c:1422
229.5647 --msgid "line after ellipsis must contain character definition"
229.5648 --msgstr "riadok za pokraèovaním musí obsahova» definíciu znaku"
229.5649 -+#: elf/ldconfig.c:735
229.5650 -+#, c-format
229.5651 -+msgid "libc6 library %s in wrong directory"
229.5652 -+msgstr "libc6 kni¾nica %s je v nesprávnom adresári"
229.5653 -
229.5654 --#: locale/programs/ld-collate.c:1401
229.5655 --msgid "line before ellipsis does not contain definition for character constant"
229.5656 --msgstr "riadok pred pokraèovaním neobsahuje definíciu pre znakovú kon¹tantu"
229.5657 -+#: elf/ldconfig.c:765
229.5658 -+#, c-format
229.5659 -+msgid "libraries %s and %s in directory %s have same soname but different type."
229.5660 -+msgstr "kni¾nice %s a %s v adresári %s majú rovnaké soname, ale odli¹ný typ."
229.5661 -
229.5662 --#: timezone/zic.c:805
229.5663 -+#: timezone/zic.c:830
229.5664 - msgid "line too long"
229.5665 - msgstr "pridlhý riadok"
229.5666 -
229.5667 --#: iconv/iconv_prog.c:58
229.5668 -+#: iconv/iconv_prog.c:59
229.5669 - msgid "list all known coded character sets"
229.5670 - msgstr "vypí¹ v¹etky známe znakové sady"
229.5671 -
229.5672 --#: locale/programs/localedef.c:273
229.5673 --#, c-format
229.5674 --msgid "locale file `%s', used in `copy' statement, not found"
229.5675 --msgstr "súbor národného prostredia `%s' pou¾itý v príkaze `copy' nebol nájdený"
229.5676 -+#: locale/programs/locfile.h:63
229.5677 -+msgid "locale name should consist only of portable characters"
229.5678 -+msgstr "názov prostredia by malo obsahova» iba prenositeµné znaky"
229.5679 -
229.5680 --#: inet/rcmd.c:307
229.5681 -+#: inet/rcmd.c:413
229.5682 - msgid "lstat failed"
229.5683 - msgstr "lstat zlyhal"
229.5684 -
229.5685 --#: catgets/gencat.c:619
229.5686 -+#: malloc/memusagestat.c:59
229.5687 -+msgid "make output graphic VALUE pixel high"
229.5688 -+msgstr "výstupný graf bude VALUE pixlov vysoký"
229.5689 -+
229.5690 -+#: malloc/memusagestat.c:58
229.5691 -+msgid "make output graphic VALUE pixel wide"
229.5692 -+msgstr "výstupný graf bude VALUE pixlov ¹iroký"
229.5693 -+
229.5694 -+#: catgets/gencat.c:780
229.5695 - msgid "malformed line ignored"
229.5696 - msgstr "nesprávny riadok ignorovaný"
229.5697 -
229.5698 --#: elf/sprof.c:554
229.5699 -+#: elf/sprof.c:550
229.5700 - msgid "mapping of section header string table failed"
229.5701 - msgstr "zlyhalo mapovanie tabuµky re»azcov hlavièky sekcie"
229.5702 -
229.5703 --#: elf/sprof.c:544
229.5704 -+#: elf/sprof.c:540
229.5705 - msgid "mapping of section headers failed"
229.5706 - msgstr "zlyhalo mapovanie hlavièiek sekcie"
229.5707 -
229.5708 --#: malloc/mcheck.c:202
229.5709 -+#: malloc/mcheck.c:285
229.5710 - msgid "memory clobbered before allocated block\n"
229.5711 - msgstr "pamä» pred prideleným blokom prepísaná\n"
229.5712 -
229.5713 --#: malloc/mcheck.c:205
229.5714 -+#: malloc/mcheck.c:288
229.5715 - msgid "memory clobbered past end of allocated block\n"
229.5716 - msgstr "pamä» za koncom prideleného bloku prepísaná\n"
229.5717 -
229.5718 --#: locale/programs/ld-collate.c:170 locale/programs/ld-collate.c:176
229.5719 --#: locale/programs/ld-collate.c:180 locale/programs/ld-collate.c:1449
229.5720 --#: locale/programs/ld-collate.c:1478 locale/programs/locfile.c:1082
229.5721 --#: locale/programs/xmalloc.c:70 login/programs/database.c:62
229.5722 --#: login/programs/database.c:79 login/programs/database.c:95
229.5723 --#: posix/getconf.c:682
229.5724 -+#: locale/programs/locfile.c:334 locale/programs/xmalloc.c:70
229.5725 -+#: malloc/obstack.c:477 posix/getconf.c:809
229.5726 - msgid "memory exhausted"
229.5727 - msgstr "nedostatok pamäti"
229.5728 -
229.5729 --#: malloc/obstack.c:471
229.5730 --msgid "memory exhausted\n"
229.5731 --msgstr "nedostatok pamäti\n"
229.5732 --
229.5733 --#: malloc/mcheck.c:199
229.5734 -+#: malloc/mcheck.c:282
229.5735 - msgid "memory is consistent, library is buggy\n"
229.5736 - msgstr "pamä» je konzistentná, kni¾nica je chybná\n"
229.5737 -
229.5738 --#: locale/programs/ld-time.c:370
229.5739 --#, c-format
229.5740 --msgid "missing era format in string %d in `era' field in category `%s'"
229.5741 --msgstr "chýba formát éry v re»azci %d v poli `era' kategórie `%s'"
229.5742 --
229.5743 --#: locale/programs/ld-time.c:358
229.5744 --#, c-format
229.5745 --msgid "missing era name in string %d in `era' field in category `%s'"
229.5746 --msgstr "chýba meno éry v re»azci %d v poli `era' kategórie `%s'"
229.5747 -+#: elf/cache.c:120
229.5748 -+msgid "mmap of cache file failed.\n"
229.5749 -+msgstr "zlyhalo mapovanie cache súboru\n"
229.5750 -+
229.5751 -+#: elf/../sysdeps/generic/readelflib.c:108
229.5752 -+msgid "more than one dynamic segment\n"
229.5753 -+msgstr "viac ako jeden dynamický segment\n"
229.5754 -
229.5755 --#: timezone/zic.c:928
229.5756 -+#: timezone/zic.c:953
229.5757 - msgid "nameless rule"
229.5758 - msgstr "bezmenné pravidlo"
229.5759 -
229.5760 --#: iconv/iconv_prog.c:133
229.5761 -+#: iconv/iconv_prog.c:139
229.5762 - msgid "neither original nor target encoding specified"
229.5763 - msgstr "nie je ¹pecifikované pôvodné ani cieµové kódovanie"
229.5764 -
229.5765 --#: nis/nss_nisplus/nisplus-publickey.c:262
229.5766 --#: nis/nss_nisplus/nisplus-publickey.c:268
229.5767 --#: nis/nss_nisplus/nisplus-publickey.c:327
229.5768 --#: nis/nss_nisplus/nisplus-publickey.c:336
229.5769 -+#: nis/nss_nisplus/nisplus-publickey.c:281
229.5770 -+#: nis/nss_nisplus/nisplus-publickey.c:287
229.5771 -+#: nis/nss_nisplus/nisplus-publickey.c:346
229.5772 -+#: nis/nss_nisplus/nisplus-publickey.c:355
229.5773 - #, c-format
229.5774 - msgid "netname2user: (nis+ lookup): %s\n"
229.5775 - msgstr "netname2user: (nis+ lookup): %s\n"
229.5776 -
229.5777 --#: nis/nss_nisplus/nisplus-publickey.c:281
229.5778 -+#: nis/nss_nisplus/nisplus-publickey.c:300
229.5779 - #, c-format
229.5780 - msgid "netname2user: DES entry for %s in directory %s not unique"
229.5781 - msgstr "netname2user: DES záznam pre %s v adresári %s nejednoznaèný"
229.5782 -
229.5783 --#: nis/nss_nisplus/nisplus-publickey.c:349
229.5784 -+#: nis/nss_nisplus/nisplus-publickey.c:368
229.5785 - #, c-format
229.5786 - msgid "netname2user: LOCAL entry for %s in directory %s not unique"
229.5787 - msgstr "netname2user: LOCAL záznam pre %s v adresári %s nejednoznaèný"
229.5788 -
229.5789 --#: nis/nss_nisplus/nisplus-publickey.c:194
229.5790 -+#: nis/nss_nisplus/nisplus-publickey.c:207
229.5791 - #, c-format
229.5792 --msgid "netname2user: missing group id list in '%s'."
229.5793 --msgstr "netname2user: chýbajúci zoznam id skupín v '%s'."
229.5794 -+msgid "netname2user: missing group id list in `%s'."
229.5795 -+msgstr "netname2user: chýbajúci zoznam id skupín v `%s'."
229.5796 -
229.5797 --#: nis/nss_nisplus/nisplus-publickey.c:299
229.5798 -+#: nis/nss_nisplus/nisplus-publickey.c:318
229.5799 - #, c-format
229.5800 --msgid "netname2user: principal name '%s' too long"
229.5801 --msgstr "netname2user: názov principála '%s' príli¹ dlhý"
229.5802 -+msgid "netname2user: principal name `%s' too long"
229.5803 -+msgstr "netname2user: názov principála `%s' príli¹ dlhý"
229.5804 -
229.5805 --#: nis/nss_nisplus/nisplus-publickey.c:356
229.5806 -+#: nis/nss_nisplus/nisplus-publickey.c:375
229.5807 - msgid "netname2user: should not have uid 0"
229.5808 - msgstr "netname2user: nemal by ma» uid 0"
229.5809 -
229.5810 --#: sunrpc/svc_simple.c:158
229.5811 -+#: sunrpc/svc_simple.c:159
229.5812 - #, c-format
229.5813 - msgid "never registered prog %d\n"
229.5814 - msgstr "program %d nebol nikdy registrovaný\n"
229.5815 -
229.5816 --#: locale/programs/repertoire.c:238
229.5817 -+#: locale/programs/repertoire.c:272
229.5818 - msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
229.5819 - msgstr "nezadaná <Uxxxx> alebo <Uxxxxxxxx> hodnota"
229.5820 -
229.5821 --#: locale/programs/ld-messages.c:101 locale/programs/ld-messages.c:125
229.5822 --#, c-format
229.5823 --msgid "no correct regular expression for field `%s' in category `%s': %s"
229.5824 --msgstr "pre pole `%s' v kategórii `%s' neexistuje správny regulérny výraz: %s"
229.5825 --
229.5826 --#: timezone/zic.c:2115
229.5827 -+#: timezone/zic.c:2142
229.5828 - msgid "no day in month matches rule"
229.5829 - msgstr "s pravidlom sa nezhoduje ¾iadny deò v mesiaci"
229.5830 -
229.5831 --#: locale/programs/ld-collate.c:267
229.5832 -+#: locale/programs/ld-collate.c:1757
229.5833 - msgid "no definition of `UNDEFINED'"
229.5834 - msgstr "neexistuje definícia pre `UNDEFINED'"
229.5835 -
229.5836 --#: elf/sprof.c:276
229.5837 -+#: elf/sprof.c:272
229.5838 - #, c-format
229.5839 - msgid "no filename for profiling data given and shared object `%s' has no soname"
229.5840 - msgstr "nebol zadaný názov súboru pre profilovacie údaje a zdieµaný objekt `%s' nemá soname"
229.5841 -
229.5842 --#: locale/programs/locfile.c:609
229.5843 -+#: locale/programs/ld-ctype.c:739
229.5844 -+msgid "no input digits defined and none of the standard names in the charmap"
229.5845 -+msgstr "neboli definované ¾iadne vstupné èíslice a v znakovej mape nie je ¾iadne zo ¹tandardných mien"
229.5846 -+
229.5847 -+#: locale/programs/locfile.h:82
229.5848 - msgid "no other keyword shall be specified when `copy' is used"
229.5849 - msgstr "pri pou¾ití `copy' nemá by» zadané ¾iadne iné kµúèové slovo"
229.5850 -
229.5851 --#: locale/programs/localedef.c:334
229.5852 -+#: locale/programs/ld-ctype.c:3349
229.5853 -+msgid "no output digits defined and none of the standard names in the charmap"
229.5854 -+msgstr "neboli definované ¾iadne výstupné èíslice a v znakovej mape nie je ¾iadne zo ¹tandardných mien"
229.5855 -+
229.5856 -+#: locale/programs/localedef.c:236
229.5857 - msgid "no output file produced because warning were issued"
229.5858 - msgstr "výstupný súbor nebol vytvorený kvôli výskytu varovaní"
229.5859 -
229.5860 --#: locale/programs/locfile.c:283 locale/programs/locfile.c:301
229.5861 --#: locale/programs/locfile.c:319 locale/programs/locfile.c:337
229.5862 --#: locale/programs/locfile.c:355 locale/programs/locfile.c:373
229.5863 --msgid "no repertoire map specified: cannot proceed"
229.5864 --msgstr "nebola zadaná mapa repertoáru: nie je mo¾né pokraèova»"
229.5865 --
229.5866 --#: locale/programs/charmap.c:400 locale/programs/charmap.c:550
229.5867 --#: locale/programs/charmap.c:629 locale/programs/repertoire.c:199
229.5868 -+#: locale/programs/charmap.c:488 locale/programs/charmap.c:668
229.5869 -+#: locale/programs/charmap.c:764 locale/programs/repertoire.c:231
229.5870 - msgid "no symbolic name given"
229.5871 - msgstr "nebolo zadané ¾iadne symbolické meno"
229.5872 -
229.5873 --#: locale/programs/charmap.c:465 locale/programs/charmap.c:596
229.5874 --#: locale/programs/charmap.c:662 locale/programs/repertoire.c:261
229.5875 -+#: locale/programs/charmap.c:575 locale/programs/charmap.c:723
229.5876 -+#: locale/programs/charmap.c:806 locale/programs/repertoire.c:297
229.5877 - msgid "no symbolic name given for end of range"
229.5878 - msgstr "nebolo zadané ¾iadne symbolické meno pre koniec rozsahu"
229.5879 -
229.5880 --#: locale/programs/ld-collate.c:249
229.5881 --#, c-format
229.5882 --msgid "no weight defined for symbol `%s'"
229.5883 --msgstr "symbol `%s' nemá definovanú váhu"
229.5884 -+#: locale/programs/linereader.c:641
229.5885 -+msgid "non-symbolic character value should not be used"
229.5886 -+msgstr "nesymbolické hodnoty znakov by nemali by» pou¾ívané"
229.5887 -+
229.5888 -+#: locale/programs/ld-ctype.c:804
229.5889 -+msgid "not all characters used in `outdigit' are available in the charmap"
229.5890 -+msgstr "nie v¹etky znaky pou¾ité v `outdigit' sú dostupné v znakovej mape"
229.5891 -+
229.5892 -+#: locale/programs/ld-ctype.c:821
229.5893 -+msgid "not all characters used in `outdigit' are available in the repertoire"
229.5894 -+msgstr "nie v¹etky znaky pou¾ité v `outdigit' sú dostupné v repertoári"
229.5895 -
229.5896 --#: inet/rcmd.c:309
229.5897 -+#: inet/rcmd.c:415
229.5898 - msgid "not regular file"
229.5899 - msgstr "nie je regulérny súbor"
229.5900 -
229.5901 --#: nscd/nscd_stat.c:130
229.5902 -+#: nscd/nscd_stat.c:131
229.5903 - #, c-format
229.5904 - msgid ""
229.5905 - "nscd configuration:\n"
229.5906 -@@ -3679,48 +4879,72 @@
229.5907 - "\n"
229.5908 - "%15d ladiaca úroveò servera\n"
229.5909 -
229.5910 --#: nscd/nscd_stat.c:104
229.5911 -+#: nscd/nscd_stat.c:105
229.5912 - msgid "nscd not running!\n"
229.5913 - msgstr "nscd nebe¾í!\n"
229.5914 -
229.5915 --#: locale/programs/charmap.c:514
229.5916 -+#: elf/dl-load.c:1051
229.5917 -+msgid "object file has no dynamic section"
229.5918 -+msgstr "objektový súbor neobsahuje ¾iadnu dynamickú sekciu"
229.5919 -+
229.5920 -+#: iconv/iconv_prog.c:61
229.5921 -+msgid "omit invalid characters from output"
229.5922 -+msgstr "vynecha» z výstupu neplatné znaky"
229.5923 -+
229.5924 -+#: elf/dl-load.c:1311
229.5925 -+msgid "only ET_DYN and ET_EXEC can be loaded"
229.5926 -+msgstr "iba ET_DYN a ET_EXEC mô¾u by» naèítané"
229.5927 -+
229.5928 -+#: locale/programs/charmap.c:632
229.5929 - msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
229.5930 - msgstr "po definícii CHARMAP mô¾u nasledova» iba definície WIDTH"
229.5931 -
229.5932 --#: iconv/iconv_prog.c:135
229.5933 -+#: locale/programs/ld-collate.c:1005 locale/programs/ld-collate.c:1175
229.5934 -+#, c-format
229.5935 -+msgid "order for `%.*s' already defined at %s:%Zu"
229.5936 -+msgstr "poradie pre `%.*s' je u¾ definované na %s:%Zu"
229.5937 -+
229.5938 -+#: iconv/iconv_prog.c:141
229.5939 - msgid "original encoding not specified using `-f'"
229.5940 - msgstr "pôvodné kódovanie nebolo zadané pomocou `-f'"
229.5941 -
229.5942 --#: iconv/iconv_prog.c:60
229.5943 -+#: inet/ruserpass.c:167 inet/ruserpass.c:190
229.5944 -+msgid "out of memory"
229.5945 -+msgstr "nedostatok pamäti"
229.5946 -+
229.5947 -+#: iconv/iconv_prog.c:62
229.5948 - msgid "output file"
229.5949 - msgstr "výstupný súbor"
229.5950 -
229.5951 --#: sunrpc/pm_getmaps.c:73
229.5952 -+#: sunrpc/pm_getmaps.c:74
229.5953 - msgid "pmap_getmaps rpc problem"
229.5954 - msgstr "pmap_getmaps rpc problém"
229.5955 -
229.5956 --#: inet/rcmd.c:179
229.5957 -+#: inet/rcmd.c:233
229.5958 - msgid "poll: protocol failure in circuit setup\n"
229.5959 - msgstr "poll: chyba protokolu poèas prípravy okruhu\n"
229.5960 -
229.5961 --#: sunrpc/rpc_scan.c:523 sunrpc/rpc_scan.c:533
229.5962 -+#: locale/programs/ld-ctype.c:1949 locale/programs/ld-ctype.c:2000
229.5963 -+msgid "premature end of `translit_ignore' definition"
229.5964 -+msgstr "predèasný koniec definície `translit_ignore'"
229.5965 -+
229.5966 -+#: sunrpc/rpc_scan.c:524 sunrpc/rpc_scan.c:534
229.5967 - msgid "preprocessor error"
229.5968 - msgstr "chyba preprocesora"
229.5969 -
229.5970 --#: elf/sprof.c:78
229.5971 -+#: locale/programs/ld-ctype.c:2731
229.5972 -+msgid "previous definition was here"
229.5973 -+msgstr "predchádzajúca definícia bola tu"
229.5974 -+
229.5975 -+#: elf/sprof.c:74
229.5976 - msgid "print list of count paths and their number of use"
229.5977 - msgstr "vypísa» zoznam ciest poètov a poèet ich pou¾ití"
229.5978 -
229.5979 --#: iconv/iconv_prog.c:61
229.5980 -+#: iconv/iconv_prog.c:64
229.5981 - msgid "print progress information"
229.5982 - msgstr "vypisova» informáciu o postupe"
229.5983 -
229.5984 --#: db2/makedb.c:345
229.5985 --#, c-format
229.5986 --msgid "problems while reading `%s'"
229.5987 --msgstr "problémy poèas èítania `%s'"
229.5988 --
229.5989 --#: elf/sprof.c:691
229.5990 -+#: elf/sprof.c:687
229.5991 - #, c-format
229.5992 - msgid "profiling data file `%s' does not match shared object `%s'"
229.5993 - msgstr "profilovacie údaje `%s' nesúhlasia so zdieµanýmobjektom `%s'"
229.5994 -@@ -3742,33 +4966,42 @@
229.5995 - msgid "program %lu version %lu ready and waiting\n"
229.5996 - msgstr "program %lu verzie %lu pripravený a èakajúci\n"
229.5997 -
229.5998 --#: inet/rcmd.c:176
229.5999 -+#: inet/rcmd.c:270
229.6000 -+#, c-format
229.6001 -+msgid "rcmd: %s: short read"
229.6002 -+msgstr "rcmd: %s: krátke èítanie"
229.6003 -+
229.6004 -+#: inet/rcmd.c:230
229.6005 - #, c-format
229.6006 - msgid "rcmd: poll (setting up stderr): %m\n"
229.6007 - msgstr "rcmd: poll (nastavenie stderr): %m\n"
229.6008 -
229.6009 --#: inet/rcmd.c:110
229.6010 -+#: inet/rcmd.c:158
229.6011 - msgid "rcmd: socket: All ports in use\n"
229.6012 - msgstr "rcmd: socket: V¹etky porty sú pou¾ité\n"
229.6013 -
229.6014 --#: inet/rcmd.c:166
229.6015 -+#: inet/rcmd.c:220
229.6016 - #, c-format
229.6017 - msgid "rcmd: write (setting up stderr): %m\n"
229.6018 - msgstr "rcmd: write (nastavenie stderr): %m\n"
229.6019 -
229.6020 --#: sunrpc/svc_simple.c:98
229.6021 -+#: sunrpc/svc_simple.c:99
229.6022 - msgid "registerrpc: out of memory\n"
229.6023 - msgstr "registerrpc: nedostatok pamäti\n"
229.6024 -
229.6025 --#: timezone/zic.c:1849
229.6026 -+#: timezone/zic.c:1874
229.6027 - msgid "repeated leap second moment"
229.6028 - msgstr "opakovaný moment priestupnej sekundy"
229.6029 -
229.6030 --#: locale/programs/repertoire.c:95
229.6031 -+#: locale/programs/repertoire.c:342
229.6032 - #, c-format
229.6033 - msgid "repertoire map file `%s' not found"
229.6034 - msgstr "súbor mapy repertoáru `%s' nebol nájdený"
229.6035 -
229.6036 -+#: locale/programs/charmap.c:1063
229.6037 -+msgid "resulting bytes for range not representable."
229.6038 -+msgstr "výsledné bajty rozsahu nie sú zobraziteµné"
229.6039 -+
229.6040 - #: sunrpc/rpc_main.c:1117
229.6041 - msgid "rpcgen: arglist coding error\n"
229.6042 - msgstr "rpcgen: chyba kódovania zoznamu argumentov\n"
229.6043 -@@ -3801,469 +5034,401 @@
229.6044 - msgid "rpcinfo: can't contact portmapper"
229.6045 - msgstr "rpcinfo: nie je mo¾né spoji» sa s portmapperom"
229.6046 -
229.6047 --#: timezone/zic.c:718 timezone/zic.c:720
229.6048 -+#: timezone/zic.c:743 timezone/zic.c:745
229.6049 - msgid "same rule name in multiple files"
229.6050 - msgstr "rovnaké meno pravidla vo viacerých súboroch"
229.6051 -
229.6052 --#: nscd/connections.c:387
229.6053 -+#: elf/dl-load.c:1116
229.6054 -+msgid "shared object cannot be dlopen()ed"
229.6055 -+msgstr "zdieµaný objekt nemô¾e by» otvorený pomocou dlopen()"
229.6056 -+
229.6057 -+#: elf/dl-close.c:63
229.6058 -+msgid "shared object not open"
229.6059 -+msgstr "zdieµaný objekt nie je otvorený"
229.6060 -+
229.6061 -+#: nscd/connections.c:482
229.6062 - #, c-format
229.6063 - msgid "short read while reading request key: %s"
229.6064 - msgstr "neúplné èítanie kµúèa ¾iadosti: %s"
229.6065 -
229.6066 --#: nscd/connections.c:364
229.6067 -+#: nscd/connections.c:436
229.6068 - #, c-format
229.6069 - msgid "short read while reading request: %s"
229.6070 - msgstr "neúplné èítanie ¾iadosti: `%s'"
229.6071 -
229.6072 --#: nscd/grpcache.c:191 nscd/hstcache.c:278 nscd/pwdcache.c:188
229.6073 -+#: nscd/grpcache.c:193 nscd/hstcache.c:278 nscd/pwdcache.c:189
229.6074 - #, c-format
229.6075 - msgid "short write in %s: %s"
229.6076 - msgstr "neúplný zápis v %s: %s"
229.6077 -
229.6078 --#: inet/rcmd.c:197
229.6079 -+#: inet/rcmd.c:260
229.6080 - msgid "socket: protocol failure in circuit setup\n"
229.6081 - msgstr "socket: chyba protokolu pri príprave okruhu\n"
229.6082 -
229.6083 --#: locale/programs/locfile.c:730
229.6084 --msgid "sorting order `forward' and `backward' are mutually exclusive"
229.6085 --msgstr "poradie triedenia `forward' a `backward' sa navzájom vyluèujú"
229.6086 --
229.6087 --#: locale/programs/ld-collate.c:1582 locale/programs/ld-collate.c:1628
229.6088 --msgid "specification of sorting weight for collation symbol does not make sense"
229.6089 --msgstr "¹pecifikácia váh triedenia pre symbol triedenia nedáva zmysel"
229.6090 --
229.6091 --#: timezone/zic.c:789
229.6092 -+#: timezone/zic.c:814
229.6093 - msgid "standard input"
229.6094 - msgstr "¹tandardný vstup"
229.6095 -
229.6096 --#: timezone/zdump.c:268
229.6097 -+#: timezone/zdump.c:269
229.6098 - msgid "standard output"
229.6099 - msgstr "¹tandardný výstup"
229.6100 -
229.6101 --#: locale/programs/ld-time.c:272
229.6102 --#, c-format
229.6103 --msgid "starting date is illegal in string %d in `era' field in category `%s'"
229.6104 --msgstr "neprípustný poèiatoèný dátum v re»azci %d v poli `era' kategórie `%s'"
229.6105 -+#: locale/programs/ld-ctype.c:1680
229.6106 -+msgid "start and end character sequence of range must have the same length"
229.6107 -+msgstr "úvodná a koncová znaková sekvencia rozsahu musia ma» rovnakú då¾ku"
229.6108 -
229.6109 --#: timezone/zic.c:1300
229.6110 -+#: timezone/zic.c:1325
229.6111 - msgid "starting year greater than ending year"
229.6112 - msgstr "poèiatoèný rok väè¹í ako koncový"
229.6113 -
229.6114 --#: timezone/zic.c:1272 timezone/zic.c:1297
229.6115 -+#: timezone/zic.c:1297 timezone/zic.c:1322
229.6116 - msgid "starting year too high to be represented"
229.6117 - msgstr "poèiatoèný rok priveµký pre zobrazenie"
229.6118 -
229.6119 --#: timezone/zic.c:1270 timezone/zic.c:1295
229.6120 -+#: timezone/zic.c:1295 timezone/zic.c:1320
229.6121 - msgid "starting year too low to be represented"
229.6122 - msgstr "poèiatoèný rok primalý pre zobrazenie"
229.6123 -
229.6124 --#: locale/programs/ld-time.c:348
229.6125 --#, c-format
229.6126 --msgid "stopping date is illegal in string %d in `era' field in category `%s'"
229.6127 --msgstr "neprípustný koncový dátum v re»azci %d v poli `era' kategórie `%s'"
229.6128 --
229.6129 --#: sunrpc/svc_run.c:81
229.6130 --msgid "svc_run: - select failed"
229.6131 --msgstr "svc_run: - select zlyhal"
229.6132 -+#: iconv/iconv_prog.c:63
229.6133 -+msgid "suppress warnings"
229.6134 -+msgstr "potlaèi» varovania"
229.6135 -+
229.6136 -+#: sunrpc/svc_run.c:76
229.6137 -+msgid "svc_run: - poll failed"
229.6138 -+msgstr "svc_run: - poll zlyhal"
229.6139 -
229.6140 --#: sunrpc/svc_tcp.c:160
229.6141 -+#: sunrpc/svc_tcp.c:161
229.6142 - msgid "svc_tcp.c - cannot getsockname or listen"
229.6143 - msgstr "svc_tcp.c - nie je mo¾né vykona» getsockname alebo listen"
229.6144 -
229.6145 --#: sunrpc/svc_tcp.c:145
229.6146 -+#: sunrpc/svc_tcp.c:146
229.6147 - msgid "svc_tcp.c - tcp socket creation problem"
229.6148 - msgstr "svc_tcp.c - problém pri vytváraní tcp socketu"
229.6149 -
229.6150 --#: sunrpc/svc_tcp.c:209 sunrpc/svc_tcp.c:215
229.6151 -+#: sunrpc/svc_tcp.c:210 sunrpc/svc_tcp.c:216
229.6152 - msgid "svc_tcp: makefd_xprt: out of memory\n"
229.6153 - msgstr "svc_tcp: makefd_xprt: nedostatok pamäti\n"
229.6154 -
229.6155 --#: sunrpc/svc_unix.c:135
229.6156 -+#: sunrpc/svc_unix.c:137
229.6157 - msgid "svc_unix.c - AF_UNIX socket creation problem"
229.6158 - msgstr "svc_unix.c - problém pri vytváraní AF_UNIX socketu"
229.6159 -
229.6160 --#: sunrpc/svc_unix.c:151
229.6161 -+#: sunrpc/svc_unix.c:153
229.6162 - msgid "svc_unix.c - cannot getsockname or listen"
229.6163 - msgstr "svc_unix.c - nemô¾em vykona» getsockname alebo listen"
229.6164 -
229.6165 --#: sunrpc/svc_unix.c:201 sunrpc/svc_unix.c:207
229.6166 -+#: sunrpc/svc_unix.c:203 sunrpc/svc_unix.c:209
229.6167 - msgid "svc_unix: makefd_xprt: out of memory\n"
229.6168 - msgstr "svc_unix: makefd_xprt: nedostatok pamäti\n"
229.6169 -
229.6170 --#: sunrpc/svc_tcp.c:168 sunrpc/svc_tcp.c:176
229.6171 -+#: sunrpc/svc_tcp.c:169 sunrpc/svc_tcp.c:177
229.6172 - msgid "svctcp_create: out of memory\n"
229.6173 - msgstr "svctcp_create: nedostatok pamäti\n"
229.6174 -
229.6175 --#: sunrpc/svc_udp.c:135
229.6176 -+# msgmerge complains: duplicate message definition
229.6177 -+# 3073: ...this is the location of the first definition
229.6178 -+# entry disabled, Martin v. Löwis
229.6179 -+# #: sunrpc/svc_tcp.c:168 sunrpc/svc_tcp.c:176
229.6180 -+# msgid "svctcp_create: out of memory\n"
229.6181 -+# msgstr "svctcp_create: nedostatok pamäti\n"
229.6182 -+#: sunrpc/svc_udp.c:141
229.6183 - msgid "svcudp_create - cannot getsockname"
229.6184 - msgstr "svcudp_create - nemô¾em vykona» getsockname"
229.6185 -
229.6186 --#: sunrpc/svc_udp.c:143 sunrpc/svc_udp.c:149 sunrpc/svc_udp.c:155
229.6187 -+#: sunrpc/svc_udp.c:149 sunrpc/svc_udp.c:155 sunrpc/svc_udp.c:161
229.6188 - msgid "svcudp_create: out of memory\n"
229.6189 - msgstr "svcudp_create: nedostatok pamäti\n"
229.6190 -
229.6191 --#: sunrpc/svc_udp.c:121
229.6192 -+#: sunrpc/svc_udp.c:127
229.6193 - msgid "svcudp_create: socket creation problem"
229.6194 - msgstr "svcudp_create: problém pri vytváraní socketu"
229.6195 -
229.6196 --#: sunrpc/svc_unix.c:160 sunrpc/svc_unix.c:168
229.6197 -+#: sunrpc/svc_udp.c:177
229.6198 -+msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
229.6199 -+msgstr "svcudp_create: xp_pad je príli¹ malý pre IP_PKTINFO\n"
229.6200 -+
229.6201 -+#: sunrpc/svc_unix.c:162 sunrpc/svc_unix.c:170
229.6202 - msgid "svcunix_create: out of memory\n"
229.6203 - msgstr "svcunix_create: nedostatok pamäti\n"
229.6204 -
229.6205 --#: locale/programs/ld-collate.c:1201
229.6206 -+#: locale/programs/linereader.c:745
229.6207 - #, c-format
229.6208 --msgid "symbol for multicharacter collating element `%.*s' duplicates element definition"
229.6209 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje definíciu elementu"
229.6210 -+msgid "symbol `%.*s' not in charmap"
229.6211 -+msgstr "symbol `%.*s' nie je v mape znakov"
229.6212 -
229.6213 --#: locale/programs/ld-collate.c:1073
229.6214 -+#: locale/programs/linereader.c:766
229.6215 - #, c-format
229.6216 --msgid "symbol for multicharacter collating element `%.*s' duplicates other element definition"
229.6217 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje iný element"
229.6218 -+msgid "symbol `%.*s' not in repertoire map"
229.6219 -+msgstr "symbol `%.*s' nie je v mape repertoáru"
229.6220 -
229.6221 --#: locale/programs/ld-collate.c:1210
229.6222 -+#: locale/programs/ld-collate.c:1617 locale/programs/ld-collate.c:1716
229.6223 - #, c-format
229.6224 --msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition"
229.6225 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje definíciu iného symbolu"
229.6226 -+msgid "symbol `%s'"
229.6227 -+msgstr "symbol `%s'"
229.6228 -
229.6229 --#: locale/programs/ld-collate.c:1082
229.6230 -+#: locale/programs/ld-collate.c:1614 locale/programs/ld-collate.c:1713
229.6231 - #, c-format
229.6232 --msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition"
229.6233 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje definíciu symbolu"
229.6234 -+msgid "symbol `%s' has the same encoding as"
229.6235 -+msgstr "symbol `%s' má rovnaké kódovanie ako"
229.6236 -
229.6237 --#: locale/programs/ld-collate.c:1064 locale/programs/ld-collate.c:1192
229.6238 -+#: locale/programs/ld-collate.c:1539
229.6239 - #, c-format
229.6240 --msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset"
229.6241 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje symbolické meno v znakovej sade"
229.6242 -+msgid "symbol `%s' not defined"
229.6243 -+msgstr "symbol `%s' nie je definovaný"
229.6244 -
229.6245 --#: locale/programs/charmap.c:399 locale/programs/charmap.c:433
229.6246 --#: locale/programs/charmap.c:463 locale/programs/charmap.c:549
229.6247 --#: locale/programs/charmap.c:595 locale/programs/charmap.c:628
229.6248 --#: locale/programs/charmap.c:660
229.6249 -+#: locale/programs/ld-ctype.c:1955 locale/programs/ld-ctype.c:2006
229.6250 -+#: locale/programs/ld-ctype.c:2048
229.6251 -+msgid "syntax error"
229.6252 -+msgstr "chyba syntaxe"
229.6253 -+
229.6254 -+#: locale/programs/charmap.c:487 locale/programs/charmap.c:541
229.6255 -+#: locale/programs/charmap.c:573 locale/programs/charmap.c:667
229.6256 -+#: locale/programs/charmap.c:722 locale/programs/charmap.c:763
229.6257 -+#: locale/programs/charmap.c:804
229.6258 - #, c-format
229.6259 - msgid "syntax error in %s definition: %s"
229.6260 - msgstr "chyba syntaxe v definícii %s: %s"
229.6261 -
229.6262 --#: locale/programs/locfile.c:750
229.6263 --msgid "syntax error in `order_start' directive"
229.6264 --msgstr "chyba syntaxe v direktíve `order_start'"
229.6265 --
229.6266 --#: locale/programs/locfile.c:492
229.6267 --msgid "syntax error in character class definition"
229.6268 --msgstr "chyba syntaxe v definícii triedy znakov"
229.6269 --
229.6270 --#: locale/programs/locfile.c:550
229.6271 --msgid "syntax error in character conversion definition"
229.6272 --msgstr "chyba syntaxe v definície konverzie znakov"
229.6273 --
229.6274 --#: locale/programs/locfile.c:792
229.6275 --msgid "syntax error in collating order definition"
229.6276 --msgstr "chyba syntaxe v definícii poradia triedenia"
229.6277 --
229.6278 --#: locale/programs/locfile.c:642
229.6279 --msgid "syntax error in collation definition"
229.6280 --msgstr "chyba syntaxe v definícii triedenia"
229.6281 --
229.6282 --#: locale/programs/locfile.c:465
229.6283 --msgid "syntax error in definition of LC_CTYPE category"
229.6284 --msgstr "chyba syntaxe v definícii kategórie LC_CTYPE"
229.6285 --
229.6286 --#: locale/programs/locfile.c:408
229.6287 --msgid "syntax error in definition of new character class"
229.6288 --msgstr "chyba syntaxe v definícii novej triedy znakov"
229.6289 --
229.6290 --#: locale/programs/locfile.c:418
229.6291 --msgid "syntax error in definition of new character map"
229.6292 --msgstr "chyba syntaxe v definícii novej znakovej sady"
229.6293 --
229.6294 --#: locale/programs/locfile.c:1003
229.6295 --msgid "syntax error in message locale definition"
229.6296 --msgstr "chyba syntaxe v definícii národného prostredia správ"
229.6297 --
229.6298 --#: locale/programs/locfile.c:914
229.6299 --msgid "syntax error in monetary locale definition"
229.6300 --msgstr "chyba syntaxe v definícii národného prostredia peòa¾ných hodnôt"
229.6301 --
229.6302 --#: locale/programs/locfile.c:941
229.6303 --msgid "syntax error in numeric locale definition"
229.6304 --msgstr "chyba syntaxe v definícii národného prostredia pre èísla"
229.6305 --
229.6306 --#: locale/programs/locfile.c:852
229.6307 --msgid "syntax error in order specification"
229.6308 --msgstr "chyba syntaxe v ¹pecifikácii poradia"
229.6309 --
229.6310 --#: locale/programs/charmap.c:280 locale/programs/charmap.c:296
229.6311 --#: locale/programs/repertoire.c:143
229.6312 -+#: locale/programs/charmap.c:346 locale/programs/charmap.c:363
229.6313 -+#: locale/programs/repertoire.c:175
229.6314 - #, c-format
229.6315 - msgid "syntax error in prolog: %s"
229.6316 - msgstr "chyba syntaxe v prológu: %s"
229.6317 -
229.6318 --#: locale/programs/repertoire.c:198 locale/programs/repertoire.c:237
229.6319 --#: locale/programs/repertoire.c:260
229.6320 -+#: locale/programs/repertoire.c:230 locale/programs/repertoire.c:271
229.6321 -+#: locale/programs/repertoire.c:296
229.6322 - #, c-format
229.6323 - msgid "syntax error in repertoire map definition: %s"
229.6324 - msgstr "chyba syntaxe v definícii mapy repertoáru: %s"
229.6325 -
229.6326 --#: locale/programs/locfile.c:979
229.6327 --msgid "syntax error in time locale definition"
229.6328 --msgstr "chyba syntaxe v definícii národného prostredia pre èas"
229.6329 --
229.6330 --#: locale/programs/locfile.c:385
229.6331 -+#: locale/programs/locfile.c:243
229.6332 - msgid "syntax error: not inside a locale definition section"
229.6333 - msgstr "chyba syntaxe: nie je vnútri sekcie definície národného prostredia"
229.6334 -
229.6335 --#: iconv/iconv_prog.c:137
229.6336 -+#: iconv/iconv_prog.c:143
229.6337 - msgid "target encoding not specified using `-t'"
229.6338 - msgstr "kódovanie cieµa nebolo zadané pomocou `-t'"
229.6339 -
229.6340 --#: catgets/gencat.c:390 catgets/gencat.c:526 catgets/gencat.c:553
229.6341 -+#: catgets/gencat.c:432 catgets/gencat.c:605 catgets/gencat.c:634
229.6342 - msgid "this is the first definition"
229.6343 - msgstr "toto je prvá definícia"
229.6344 -
229.6345 --#: timezone/zic.c:1132
229.6346 -+#: timezone/zic.c:1157
229.6347 - msgid "time before zero"
229.6348 - msgstr "èas men¹í ako nula"
229.6349 -
229.6350 --#: timezone/zic.c:1140 timezone/zic.c:2015 timezone/zic.c:2034
229.6351 -+#: timezone/zic.c:1165 timezone/zic.c:2042 timezone/zic.c:2061
229.6352 - msgid "time overflow"
229.6353 - msgstr "preteèenie èasu"
229.6354 -
229.6355 --#: locale/programs/charmap.c:443
229.6356 -+#: locale/programs/ld-ctype.c:1553 locale/programs/ld-ctype.c:2029
229.6357 -+#, c-format
229.6358 -+msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
229.6359 -+msgstr "to-value <U%0*X> rozsahu je men¹ia ako from-value <U%0*X>"
229.6360 -+
229.6361 -+#: locale/programs/ld-ctype.c:1687
229.6362 -+msgid "to-value character sequence is smaller than from-value sequence"
229.6363 -+msgstr "to-value sekvencia znakov je men¹ia ako sekvencia from-value"
229.6364 -+
229.6365 -+#: locale/programs/charmap.c:551
229.6366 - msgid "too few bytes in character encoding"
229.6367 - msgstr "primálo bajtov v kódovaní znaku"
229.6368 -
229.6369 --#: locale/programs/charmap.c:445
229.6370 -+#: locale/programs/charmap.c:553
229.6371 - msgid "too many bytes in character encoding"
229.6372 - msgstr "priveµa bajtov v kódovaní znaku"
229.6373 -
229.6374 --#: locale/programs/locales.h:92
229.6375 --msgid "too many character classes defined"
229.6376 --msgstr "priveµa definovaných tried znakov"
229.6377 --
229.6378 --#: timezone/zic.c:1843
229.6379 -+#: timezone/zic.c:1868
229.6380 - msgid "too many leap seconds"
229.6381 - msgstr "priveµa priestupných sekúnd"
229.6382 -
229.6383 --#: timezone/zic.c:1815
229.6384 -+#: timezone/zic.c:1840
229.6385 - msgid "too many local time types"
229.6386 - msgstr "priveµa lokálnych typov èasu"
229.6387 -
229.6388 --#: timezone/zic.c:1769
229.6389 -+#: timezone/zic.c:1794
229.6390 - msgid "too many transitions?!"
229.6391 - msgstr "priveµa prechodov?!"
229.6392 -
229.6393 --#: locale/programs/ld-collate.c:1637
229.6394 --msgid "too many weights"
229.6395 --msgstr "priveµa váh"
229.6396 --
229.6397 --#: timezone/zic.c:2138
229.6398 -+#: timezone/zic.c:2165
229.6399 - msgid "too many, or too long, time zone abbreviations"
229.6400 - msgstr "príli¹ veµa alebo príli¹ dlhé skratku èasovej zóny"
229.6401 -
229.6402 --#: locale/programs/linereader.h:146
229.6403 -+#: locale/programs/linereader.h:157
229.6404 - msgid "trailing garbage at end of line"
229.6405 - msgstr "smetie na konci riadku"
229.6406 -
229.6407 --#: sunrpc/svc_simple.c:150
229.6408 -+#: sunrpc/svc_simple.c:151
229.6409 - #, c-format
229.6410 - msgid "trouble replying to prog %d\n"
229.6411 - msgstr "problémy pri odpovedi programu %d\n"
229.6412 -
229.6413 --#: locale/programs/ld-collate.c:1393
229.6414 --msgid "two lines in a row containing `...' are not allowed"
229.6415 --msgstr "dva riadky za sebou obsahujúce `...' nie sú povolené"
229.6416 --
229.6417 --#: timezone/zic.c:1307
229.6418 -+#: timezone/zic.c:1332
229.6419 - msgid "typed single year"
229.6420 - msgstr "zadaný jeden rok"
229.6421 -
229.6422 --#: iconv/iconv_prog.c:406
229.6423 -+#: iconv/iconv_prog.c:491
229.6424 - msgid "unable to allocate buffer for input"
229.6425 - msgstr "nie je mo¾né prideli» vyrovnávaciu pamä» pre vstup"
229.6426 -
229.6427 --#: nis/nis_callback.c:187
229.6428 -+#: nis/nis_callback.c:189
229.6429 - msgid "unable to free arguments"
229.6430 - msgstr "nie je mo¾né uvoµni» argumenty"
229.6431 -
229.6432 --#: posix/getconf.c:654 posix/getconf.c:670
229.6433 -+#: posix/getconf.c:781 posix/getconf.c:797
229.6434 - msgid "undefined"
229.6435 - msgstr "nedefinované"
229.6436 -
229.6437 --#: locale/programs/charmap.c:701 locale/programs/charmap.c:712
229.6438 -+#: locale/programs/charmap.c:856 locale/programs/charmap.c:867
229.6439 - #, c-format
229.6440 - msgid "unknown character `%s'"
229.6441 - msgstr "neznámy znak `%s'"
229.6442 -
229.6443 --#: locale/programs/ld-messages.c:202 locale/programs/ld-messages.c:213
229.6444 --#: locale/programs/ld-messages.c:224 locale/programs/ld-messages.c:235
229.6445 --#: locale/programs/ld-time.c:718
229.6446 --#, c-format
229.6447 --msgid "unknown character in field `%s' of category `%s'"
229.6448 --msgstr "neznámy znak v poli `%s' kategórie `%s'"
229.6449 --
229.6450 --#: locale/programs/locfile.c:715
229.6451 --msgid "unknown collation directive"
229.6452 --msgstr "neznáma direktíva triedenia"
229.6453 --
229.6454 --#: catgets/gencat.c:487
229.6455 -+#: catgets/gencat.c:562
229.6456 - #, c-format
229.6457 - msgid "unknown directive `%s': line ignored"
229.6458 - msgstr "neznáma direktíva `%s' - riadok ignorovaný"
229.6459 -
229.6460 --#: iconv/iconv_prog.c:353
229.6461 -+#: iconv/iconv_prog.c:438
229.6462 - #, c-format
229.6463 - msgid "unknown iconv() error %d"
229.6464 - msgstr "neznáma iconv() chyba %d"
229.6465 -
229.6466 --#: catgets/gencat.c:466
229.6467 -+#: catgets/gencat.c:508
229.6468 - #, c-format
229.6469 - msgid "unknown set `%s'"
229.6470 - msgstr "neznáma sada `%s'"
229.6471 -
229.6472 --#: locale/programs/ld-collate.c:1377 locale/programs/ld-collate.c:1572
229.6473 --#: locale/programs/ld-collate.c:1747
229.6474 --#, c-format
229.6475 --msgid "unknown symbol `%.*s': line ignored"
229.6476 --msgstr "neznámy symbol `%.*s' - riadok ignorovaný"
229.6477 --
229.6478 --#: timezone/zic.c:761
229.6479 -+#: timezone/zic.c:786
229.6480 - msgid "unruly zone"
229.6481 - msgstr "zóna bez pravidiel"
229.6482 -
229.6483 --#: catgets/gencat.c:971
229.6484 -+#: catgets/gencat.c:1169
229.6485 - msgid "unterminated message"
229.6486 - msgstr "neukonèená správa"
229.6487 -
229.6488 --#: locale/programs/linereader.c:520 locale/programs/linereader.c:555
229.6489 -+#: locale/programs/linereader.c:599 locale/programs/linereader.c:784
229.6490 - msgid "unterminated string"
229.6491 - msgstr "neukonèený re»azec"
229.6492 -
229.6493 --#: sunrpc/rpc_scan.c:350 sunrpc/rpc_scan.c:376
229.6494 -+#: sunrpc/rpc_scan.c:351 sunrpc/rpc_scan.c:377
229.6495 - msgid "unterminated string constant"
229.6496 - msgstr "neukonèená re»azcová kon¹tanta"
229.6497 -
229.6498 --#: locale/programs/linereader.c:390
229.6499 -+#: locale/programs/linereader.c:469
229.6500 - msgid "unterminated symbolic name"
229.6501 - msgstr "neukonèené symbolické meno"
229.6502 -
229.6503 --#: locale/programs/ld-collate.c:1699
229.6504 --msgid "unterminated weight name"
229.6505 --msgstr "neukonèené meno váhy"
229.6506 -+#: locale/programs/charmap.c:1005
229.6507 -+msgid "upper limit in range is not higher then lower limit"
229.6508 -+msgstr "horný limit rozsahu nie je väè¹í ako dolný"
229.6509 -
229.6510 --#: locale/programs/charset.c:104
229.6511 -+#: locale/programs/repertoire.c:455
229.6512 - msgid "upper limit in range is not smaller then lower limit"
229.6513 - msgstr "horný limit rozsahu je men¹í ako dolný"
229.6514 -
229.6515 --#: sunrpc/rpc_main.c:1415
229.6516 -+#: sunrpc/rpc_main.c:1424
229.6517 - #, c-format
229.6518 --msgid "usage: %s infile\n"
229.6519 -+msgid "usage: %s infile\n"
229.6520 - msgstr "pou¾itie: %s vstupný_súbor\n"
229.6521 -
229.6522 --#: timezone/zic.c:2081
229.6523 -+#: timezone/zic.c:2108
229.6524 - msgid "use of 2/29 in non leap-year"
229.6525 - msgstr "29. február pou¾itý v nepriestupnom roku"
229.6526 -
229.6527 --#: locale/programs/charmap.c:522 locale/programs/charmap.c:576
229.6528 -+#: locale/programs/charmap.c:640 locale/programs/charmap.c:703
229.6529 - #, c-format
229.6530 - msgid "value for %s must be an integer"
229.6531 - msgstr "hodnota pre %s musí by» celé èíslo"
229.6532 -
229.6533 --#: locale/programs/charmap.c:318
229.6534 -+#: locale/programs/charmap.c:399
229.6535 - #, c-format
229.6536 --msgid "value for <%s> must lie between 1 and 4"
229.6537 --msgstr "honota pre <%s> musí by» medzi 1 a 4"
229.6538 -+msgid "value for <%s> must be 1 or greater"
229.6539 -+msgstr "hodnota pre <%s> musí by» 1 alebo viac"
229.6540 -
229.6541 --#: locale/programs/ld-monetary.c:157 locale/programs/ld-numeric.c:92
229.6542 -+#: locale/programs/charmap.c:411
229.6543 - #, c-format
229.6544 --msgid "value for field `%s' in category `%s' must not be the empty string"
229.6545 --msgstr "hodnota poµa `%s' kategórie `%s' nesmie by» prázdny re»azec"
229.6546 --
229.6547 --#: locale/programs/charmap.c:330
229.6548 --msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
229.6549 --msgstr "hodnota <mb_cur_max> musí by» väè¹ia ako hodnota <mb_cur_min>"
229.6550 -+msgid "value of <%s> must be greater or equal than the value of <%s>"
229.6551 -+msgstr "hodnota <%s> musí by» väè¹ia alebo rovná hodnote <%s>"
229.6552 -
229.6553 --#: locale/programs/ld-monetary.c:147
229.6554 --msgid "value of field `int_curr_symbol' in category `LC_MONETARY' does not correspond to a valid name in ISO 4217"
229.6555 --msgstr "hodnota poµa `int_curr_symbol' kategórie `LC_MONETARY' nezodpovedá platnému menu v ISO 4217"
229.6556 -+#: timezone/zic.c:433
229.6557 -+msgid "warning: "
229.6558 -+msgstr "varovanie: "
229.6559 -
229.6560 --#: locale/programs/ld-monetary.c:139
229.6561 --msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
229.6562 --msgstr "hodnota poµa `int_curr_symbol' kategórie `LC_MONETARY' má chybnú då¾ku"
229.6563 --
229.6564 --#: locale/programs/ld-monetary.c:383 locale/programs/ld-numeric.c:207
229.6565 --#, c-format
229.6566 --msgid "values for field `%s' in category `%s' must be smaller than 127"
229.6567 --msgstr "hodnoty poµa `%s' kategórie `%s' musia by» men¹ie ako 127"
229.6568 --
229.6569 --#: nscd/connections.c:355
229.6570 -+#: nscd/connections.c:427
229.6571 - #, c-format
229.6572 - msgid "while accepting connection: %s"
229.6573 - msgstr "poèas prijatia spojenia: %s"
229.6574 -
229.6575 --#: nscd/grpcache.c:149 nscd/hstcache.c:168 nscd/pwdcache.c:142
229.6576 -+#: nscd/grpcache.c:150 nscd/hstcache.c:165 nscd/pwdcache.c:143
229.6577 - msgid "while allocating cache entry"
229.6578 - msgstr "poèas pridelenia záznamu cache"
229.6579 -
229.6580 --#: nscd/cache.c:85
229.6581 -+#: nscd/cache.c:88
229.6582 - msgid "while allocating hash table entry"
229.6583 - msgstr "poèas pridelenia záznamu hash-tabuµky"
229.6584 -
229.6585 --#: nscd/grpcache.c:99 nscd/hstcache.c:109 nscd/pwdcache.c:105
229.6586 -+#: nscd/grpcache.c:100 nscd/hstcache.c:108 nscd/pwdcache.c:106
229.6587 - msgid "while allocating key copy"
229.6588 - msgstr "poèas pridelenia kópie kµúèa"
229.6589 -
229.6590 --#: catgets/gencat.c:1001
229.6591 -+#: catgets/gencat.c:1199
229.6592 - msgid "while opening old catalog file"
229.6593 - msgstr "poèas otvárania starého katalógu"
229.6594 -
229.6595 --#: locale/programs/locale.c:346
229.6596 -+#: locale/programs/locale.c:361
229.6597 - msgid "while preparing output"
229.6598 - msgstr "poèas prípravy výstupu"
229.6599 -
229.6600 --#: db2/makedb.c:365 db2/makedb.c:382
229.6601 --msgid "while reading database"
229.6602 --msgstr "poèas èítania databázy"
229.6603 --
229.6604 --#: elf/sprof.c:683
229.6605 -+#: elf/sprof.c:679
229.6606 - msgid "while stat'ing profiling data file"
229.6607 - msgstr "poèas stat-u súboru profilovacích informácií"
229.6608 -
229.6609 --#: db2/makedb.c:334
229.6610 --msgid "while writing database file"
229.6611 --msgstr "poèas zápisu databázy"
229.6612 -+#: locale/programs/ld-ctype.c:2392
229.6613 -+msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
229.6614 -+msgstr "v rozsahu hodnôt UCS treba pou¾i» hexadecimálne symbolické pokraèovanie `..'"
229.6615 -+
229.6616 -+#: locale/programs/ld-ctype.c:2406
229.6617 -+msgid "with character code range values one must use the absolute ellipsis `...'"
229.6618 -+msgstr "v rozsahu hodnôt kódov znakov treba pou¾i» absolútne pokraèovanie `...'"
229.6619 -+
229.6620 -+#: locale/programs/ld-ctype.c:2377
229.6621 -+msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
229.6622 -+msgstr "v symbolickom rozsahu hodnôt nesmie by» pou¾ité absolútne pokraèovanie `...'"
229.6623 -
229.6624 --#: nscd/nscd_stat.c:115
229.6625 -+#: nscd/nscd_stat.c:116
229.6626 - msgid "write incomplete"
229.6627 - msgstr "neúplný zápis"
229.6628 -
229.6629 --#: inet/rcmd.c:320
229.6630 -+#: inet/rcmd.c:426
229.6631 - msgid "writeable by other than owner"
229.6632 - msgstr "zapisovateµný nielen pre vlastníka"
229.6633 -
229.6634 --#: db2/makedb.c:124 nscd/nscd.c:114 nss/getent.c:392
229.6635 -+#: nscd/nscd.c:123 nscd/nscd_nischeck.c:64 nss/getent.c:761
229.6636 - msgid "wrong number of arguments"
229.6637 - msgstr "chybný poèet argumentov"
229.6638 -
229.6639 --#: timezone/zic.c:1090
229.6640 -+#: timezone/zic.c:1115
229.6641 - msgid "wrong number of fields on Leap line"
229.6642 - msgstr "chybný poèet polí v riadku Leap"
229.6643 -
229.6644 --#: timezone/zic.c:1181
229.6645 -+#: timezone/zic.c:1206
229.6646 - msgid "wrong number of fields on Link line"
229.6647 - msgstr "chybný poèet polí v riadku Link"
229.6648 -
229.6649 --#: timezone/zic.c:924
229.6650 -+#: timezone/zic.c:949
229.6651 - msgid "wrong number of fields on Rule line"
229.6652 - msgstr "chybný poè¹t polí v riadku Rule"
229.6653 -
229.6654 --#: timezone/zic.c:994
229.6655 -+#: timezone/zic.c:1019
229.6656 - msgid "wrong number of fields on Zone continuation line"
229.6657 - msgstr "chybný poèet polí v pokraèovacom riadku Zone"
229.6658 -
229.6659 --#: timezone/zic.c:952
229.6660 -+#: timezone/zic.c:977
229.6661 - msgid "wrong number of fields on Zone line"
229.6662 - msgstr "chybný poèet polí v riadku Zone"
229.6663 -
229.6664 --#: sunrpc/xdr_ref.c:84
229.6665 -+#: sunrpc/xdr_ref.c:85
229.6666 - msgid "xdr_reference: out of memory\n"
229.6667 - msgstr "xdr_reference: nedostatok pamäti\n"
229.6668 -
229.6669 -@@ -4271,10 +5436,10 @@
229.6670 - msgid "xdrrec_create: out of memory\n"
229.6671 - msgstr "xdrrec_create: nedostatok pamäti\n"
229.6672 -
229.6673 --#: nis/ypclnt.c:884
229.6674 -+#: nis/ypclnt.c:907
229.6675 - msgid "yp_update: cannot convert host to netname\n"
229.6676 - msgstr "yp_update: nie je mo¾né konvertova» meno poèítaèa na meno siete\n"
229.6677 -
229.6678 --#: nis/ypclnt.c:896
229.6679 -+#: nis/ypclnt.c:919
229.6680 - msgid "yp_update: cannot get server address\n"
229.6681 - msgstr "yp_update: nie je mo¾né zísti» adresu servera\n"
230.1 --- a/patches/glibc/2.2.2/arm-ctl_bus_isa.patch Tue Aug 14 19:32:22 2007 +0000
230.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
230.3 @@ -1,51 +0,0 @@
230.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
230.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
230.6 -Fixes following error:
230.7 -
230.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
230.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
230.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
230.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
230.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
230.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
230.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
230.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
230.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
230.17 -
230.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
230.19 -
230.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
230.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
230.22 -@@ -47,6 +47,12 @@
230.23 - #include <asm/page.h>
230.24 - #include <sys/sysctl.h>
230.25 -
230.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
230.27 -+#include <linux/version.h>
230.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
230.29 -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
230.30 -+#endif
230.31 -+
230.32 - #define PATH_ARM_SYSTYPE "/etc/arm_systype"
230.33 - #define PATH_CPUINFO "/proc/cpuinfo"
230.34 -
230.35 -@@ -80,7 +86,7 @@
230.36 - * Initialize I/O system. There are several ways to get the information
230.37 - * we need. Each is tried in turn until one succeeds.
230.38 - *
230.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
230.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
230.41 - * but not all kernels support it.
230.42 - *
230.43 - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
230.44 -@@ -100,8 +106,8 @@
230.45 - {
230.46 - char systype[256];
230.47 - int i, n;
230.48 -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
230.49 -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
230.50 -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
230.51 -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
230.52 - size_t len = sizeof(io.base);
230.53 -
230.54 - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
231.1 --- a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc-3.4-grp.patch Tue Aug 14 19:32:22 2007 +0000
231.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
231.3 @@ -1,56 +0,0 @@
231.4 -Fixes
231.5 -initgroups.c: In function `internal_getgrouplist':
231.6 -initgroups.c:179: error: parse error before "__FUNCTION__"
231.7 -
231.8 -CVSROOT: /cvs/glibc
231.9 -Module name: libc
231.10 -Changes by: roland@sources.redhat.com 2001-12-16 21:52:12
231.11 -
231.12 -Modified files:
231.13 - nss : nsswitch.c
231.14 - grp : initgroups.c
231.15 -
231.16 -Log message:
231.17 - 2001-12-16 Roland McGrath <roland@frob.com>
231.18 -
231.19 - * nss/nsswitch.c (__nss_next): Don't use __FUNCTION__ as literal.
231.20 - * grp/initgroups.c (internal_getgrouplist): Likewise.
231.21 -
231.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/grp/initgroups.c.diff?r1=1.26&r2=1.27&cvsroot=glibc
231.23 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nss/nsswitch.c.diff?r1=1.52&r2=1.53&cvsroot=glibc
231.24 -
231.25 -Removed 2nd hunk for glibc-2.1.3 (it was just whitespace)
231.26 -
231.27 -===================================================================
231.28 -RCS file: /cvs/glibc/libc/grp/initgroups.c,v
231.29 -retrieving revision 1.26
231.30 -retrieving revision 1.27
231.31 -diff -u -r1.26 -r1.27
231.32 ---- libc/grp/initgroups.c 2001/07/06 04:54:46 1.26
231.33 -+++ libc/grp/initgroups.c 2001/12/17 05:52:11 1.27
231.34 -@@ -176,7 +176,7 @@
231.35 -
231.36 - /* This is really only for debugging. */
231.37 - if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
231.38 -- __libc_fatal ("illegal status in " __FUNCTION__);
231.39 -+ __libc_fatal ("illegal status in internal_getgrouplist");
231.40 -
231.41 - if (status != NSS_STATUS_SUCCESS
231.42 - && nss_next_action (nip, status) == NSS_ACTION_RETURN)
231.43 -
231.44 -===================================================================
231.45 -RCS file: /cvs/glibc/libc/nss/nsswitch.c,v
231.46 -retrieving revision 1.52
231.47 -retrieving revision 1.53
231.48 -diff -u -r1.52 -r1.53
231.49 ---- libc/nss/nsswitch.c 2001/07/17 08:21:36 1.52
231.50 -+++ libc/nss/nsswitch.c 2001/12/17 05:52:11 1.53
231.51 -@@ -178,7 +178,7 @@
231.52 - {
231.53 - /* This is really only for debugging. */
231.54 - if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
231.55 -- __libc_fatal ("illegal status in " __FUNCTION__);
231.56 -+ __libc_fatal ("illegal status in __nss_next");
231.57 -
231.58 - if (nss_next_action (*ni, status) == NSS_ACTION_RETURN)
231.59 - return 1;
232.1 --- a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-sscanf.patch Tue Aug 14 19:32:22 2007 +0000
232.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
232.3 @@ -1,73 +0,0 @@
232.4 -http://sources.redhat.com/ml/bug-glibc/2003-08/msg00087.html
232.5 -
232.6 -From: Gernot Hillier <gernot dot hillier at siemens dot com>
232.7 -Organization: Siemens AG
232.8 -To: Jeffrey Bedard <jefbed at e-list dot net>, bug-glibc at gnu dot org
232.9 -Date: Mon, 18 Aug 2003 08:50:03 +0200
232.10 -References: <3F3D0899.6020004@e-list.net>
232.11 -Message-Id: <200308180850.03431.gernot.hillier@siemens.com>
232.12 -Subject: Re: Build Fails with gcc 3.3.1
232.13 -X-BeenThere: bug-glibc@gnu.org
232.14 -
232.15 -Hi!
232.16 -
232.17 -Am Freitag, 15. August 2003 18:21 schrieb Jeffrey Bedard:
232.18 -> gcc sscanf.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-prototypes
232.19 -[...]
232.20 -> sscanf.c:31: warning: conflicting types for built-in function `sscanf'
232.21 -> sscanf.c: In function `sscanf':
232.22 -> sscanf.c:37: error: `va_start' used in function with fixed args
232.23 -> .../stdio-common/_itoa.h: At top level:
232.24 -> .../stdio-common/_itoa.h:40: warning: inlining failed in call to
232.25 -> `_itoa_word' .../stdio-common/_itoa.h:76: warning: called from here
232.26 -> make[2]: ***
232.27 -> [/home/jefbed/src/packages/glibc-build/stdio-common/sscanf.o] Error 1
232.28 -
232.29 -You can find the fitting patch in the glibc CVS. You have to replace some
232.30 -function headers.
232.31 -
232.32 -I created a patch for glibc-2.2.5 for the same reason. I don't know if it
232.33 -applies cleanly, but if not it should at least show you what to do...
232.34 -
232.35 ---
232.36 -Bye,
232.37 -
232.38 -Gernot Hillier
232.39 -Siemens AG
232.40 -
232.41 -
232.42 -
232.43 -
232.44 -Content-Disposition: attachment; filename="glibc-2.2.5-gcc-3.3.diff"
232.45 -
232.46 -diff -ur glibc-2.2.5.orig/stdio-common/sprintf.c glibc-2.2.5/stdio-common/sprintf.c
232.47 ---- glibc-2.2.5.orig/stdio-common/sprintf.c 2001-07-06 06:55:41.000000000 +0200
232.48 -+++ glibc-2.2.5/stdio-common/sprintf.c 2003-08-11 13:25:48.000000000 +0200
232.49 -@@ -27,9 +27,7 @@
232.50 - /* Write formatted output into S, according to the format string FORMAT. */
232.51 - /* VARARGS2 */
232.52 - int
232.53 --sprintf (s, format)
232.54 -- char *s;
232.55 -- const char *format;
232.56 -+sprintf (char *s, const char *format,...)
232.57 - {
232.58 - va_list arg;
232.59 - int done;
232.60 -Only in glibc-2.2.5/stdio-common: sprintf.c.orig
232.61 -Only in glibc-2.2.5/stdio-common: sprintf.c.rej
232.62 -diff -ur glibc-2.2.5.orig/stdio-common/sscanf.c glibc-2.2.5/stdio-common/sscanf.c
232.63 ---- glibc-2.2.5.orig/stdio-common/sscanf.c 2001-07-06 06:55:41.000000000 +0200
232.64 -+++ glibc-2.2.5/stdio-common/sscanf.c 2003-08-11 13:27:58.000000000 +0200
232.65 -@@ -27,9 +27,7 @@
232.66 - /* Read formatted input from S, according to the format string FORMAT. */
232.67 - /* VARARGS2 */
232.68 - int
232.69 --sscanf (s, format)
232.70 -- const char *s;
232.71 -- const char *format;
232.72 -+sscanf (const char *s, const char *format,...)
232.73 - {
232.74 - va_list arg;
232.75 - int done;
232.76 -
233.1 --- a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-versioninfo.patch Tue Aug 14 19:32:22 2007 +0000
233.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
233.3 @@ -1,17 +0,0 @@
233.4 -# gcc-3.x doesn't like run-on strings
233.5 -# See also http://sources.redhat.com/ml/libc-alpha/2004-01/msg00032.html
233.6 -
233.7 ---- glibc-2.1.3/csu/Makefile.old 2004-03-04 12:18:52.000000000 -0800
233.8 -+++ glibc-2.1.3/csu/Makefile 2004-03-04 12:19:35.000000000 -0800
233.9 -@@ -188,8 +188,8 @@
233.10 - esac; \
233.11 - files="$(all-Banner-files)"; \
233.12 - if test -n "$$files"; then \
233.13 -- echo "\"Available extensions:"; \
233.14 -- sed -e '/^#/d' -e 's/^[[:space:]]*/ /' $$files; \
233.15 -- echo "\""; \
233.16 -+ echo -e "\"Available extensions:\\\\n\""; \
233.17 -+ sed -e '/^#/d' -e 's/^[[:space:]]*/ /' \
233.18 -+ -e 's/^\(.*\)$$/\"\1\\n\"/' $$files; \
233.19 - fi) > $@T
233.20 - mv -f $@T $@
234.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc-3-configure.patch Tue Aug 14 19:32:22 2007 +0000
234.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
234.3 @@ -1,21 +0,0 @@
234.4 -Works around version check:
234.5 -
234.6 -checking for i686-unknown-linux-gnu-gcc... gcc
234.7 -checking version of gcc... 3.4.2, bad
234.8 -...
234.9 -configure: error:
234.10 -*** Some critical program is missing or too old.
234.11 -*** Check the INSTALL file for required versions.
234.12 -
234.13 -
234.14 ---- glibc-2.2.2/configure.old 2005-04-10 16:57:42.692071968 -0700
234.15 -+++ glibc-2.2.2/configure 2005-04-10 16:58:52.993384544 -0700
234.16 -@@ -1437,7 +1437,7 @@
234.17 - ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
234.18 - case $ac_prog_version in
234.19 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
234.20 -- *gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
234.21 -+ *gcc-2.9[5-9].*|*3.[234].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
234.22 - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
234.23 - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
234.24 -
235.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-dl-machine-i386.patch Tue Aug 14 19:32:22 2007 +0000
235.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
235.3 @@ -1,232 +0,0 @@
235.4 -Fixes errors:
235.5 -In file included from dynamic-link.h:21,
235.6 - from dl-load.c:32:
235.7 -../sysdeps/i386/dl-machine.h:121: error: parse error before '.' token
235.8 -../sysdeps/i386/dl-machine.h:122: error: stray '@' in program
235.9 -../sysdeps/i386/dl-machine.h:125: error: syntax error at '#' token
235.10 -../sysdeps/i386/dl-machine.h:128: error: syntax error at '#' token
235.11 -../sysdeps/i386/dl-machine.h:129: error: syntax error at '#' token
235.12 -../sysdeps/i386/dl-machine.h:129: error: stray '`' in program
235.13 -../sysdeps/i386/dl-machine.h:129: error: missing terminating ' character
235.14 -...
235.15 -../sysdeps/i386/dl-machine.h:227:22: warning: character constant too long for its type
235.16 -../sysdeps/i386/dl-machine.h:209: error: stray '\' in program
235.17 -../sysdeps/i386/dl-machine.h:209: error: stray '\' in program
235.18 -../sysdeps/i386/dl-machine.h:209: error: stray '\' in program
235.19 -../sysdeps/i386/dl-machine.h:209: error: missing terminating " character
235.20 -../sysdeps/i386/dl-machine.h: In function `dl_platform_init':
235.21 -../sysdeps/i386/dl-machine.h:273: error: `_dl_platform' undeclared (first use in this function)
235.22 -../sysdeps/i386/dl-machine.h:273: error: (Each undeclared identifier is reported only once
235.23 -../sysdeps/i386/dl-machine.h:273: error: for each function it appears in.)
235.24 -dl-load.c: In function `_dl_map_object_from_fd':
235.25 -dl-load.c:1043: warning: use of cast expressions as lvalues is deprecated
235.26 -dl-load.c:1043: warning: use of cast expressions as lvalues is deprecated
235.27 -dl-load.c:1058: warning: use of cast expressions as lvalues is deprecated
235.28 -dl-load.c:1058: warning: use of cast expressions as lvalues is deprecated
235.29 -
235.30 -dl-runtime.c:53: error: conflicting types for 'fixup'
235.31 -../sysdeps/i386/dl-machine.h:67: error: previous declaration of 'fixup' was here
235.32 -dl-runtime.c:53: error: conflicting types for 'fixup'
235.33 -../sysdeps/i386/dl-machine.h:67: error: previous declaration of 'fixup' was here
235.34 -dl-runtime.c:135: error: conflicting types for 'profile_fixup'
235.35 -../sysdeps/i386/dl-machine.h:70: error: previous declaration of 'profile_fixup' was here
235.36 -dl-runtime.c:135: error: conflicting types for 'profile_fixup'
235.37 -../sysdeps/i386/dl-machine.h:70: error: previous declaration of 'profile_fixup' was here
235.38 -../sysdeps/i386/dl-machine.h:67: warning: 'fixup' declared `static' but never defined
235.39 -../sysdeps/i386/dl-machine.h:70: warning: 'profile_fixup' declared `static' but never defined
235.40 -
235.41 -Updated to repair breakage caused by unconditionally requiring ARCH_FIXUP_ATTRIBUTE
235.42 -to be defined. (No wonder glibc-2.2.2 didn't build for anything but x86...)
235.43 -
235.44 -===================================================================
235.45 ---- glibc-2.2.2/sysdeps/i386/dl-machine.h.old 2005-04-11 17:45:13.000000000 -0700
235.46 -+++ glibc-2.2.2/sysdeps/i386/dl-machine.h 2005-04-12 10:01:47.000000000 -0700
235.47 -@@ -63,11 +63,14 @@
235.48 - destroys the passed register information. */
235.49 - /* GKM FIXME: Fix trampoline to pass bounds so we can do
235.50 - without the `__unbounded' qualifier. */
235.51 -+
235.52 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
235.53 -+
235.54 - static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
235.55 -- __attribute__ ((regparm (2), unused));
235.56 -+ ARCH_FIXUP_ATTRIBUTE;
235.57 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
235.58 - ElfW(Addr) retaddr)
235.59 -- __attribute__ ((regparm (3), unused));
235.60 -+ ARCH_FIXUP_ATTRIBUTE;
235.61 - #endif
235.62 -
235.63 - /* Set up the loaded object described by L so its unrelocated PLT
235.64 -@@ -117,68 +120,68 @@
235.65 - and then redirect to the address it returns. */
235.66 - #if !defined PROF && !__BOUNDED_POINTERS__
235.67 - # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
235.68 -- .text
235.69 -- .globl _dl_runtime_resolve
235.70 -- .type _dl_runtime_resolve, @function
235.71 -- .align 16
235.72 --_dl_runtime_resolve:
235.73 -- pushl %eax # Preserve registers otherwise clobbered.
235.74 -- pushl %ecx
235.75 -- pushl %edx
235.76 -- movl 16(%esp), %edx # Copy args pushed by PLT in register. Note
235.77 -- movl 12(%esp), %eax # that `fixup' takes its parameters in regs.
235.78 -- call fixup # Call resolver.
235.79 -- popl %edx # Get register content back.
235.80 -- popl %ecx
235.81 -- xchgl %eax, (%esp) # Get %eax contents end store function address.
235.82 -- ret $8 # Jump to function address.
235.83 -- .size _dl_runtime_resolve, .-_dl_runtime_resolve
235.84 --
235.85 -- .globl _dl_runtime_profile
235.86 -- .type _dl_runtime_profile, @function
235.87 -- .align 16
235.88 --_dl_runtime_profile:
235.89 -- pushl %eax # Preserve registers otherwise clobbered.
235.90 -- pushl %ecx
235.91 -- pushl %edx
235.92 -- movl 20(%esp), %ecx # Load return address
235.93 -- movl 16(%esp), %edx # Copy args pushed by PLT in register. Note
235.94 -- movl 12(%esp), %eax # that `fixup' takes its parameters in regs.
235.95 -- call profile_fixup # Call resolver.
235.96 -- popl %edx # Get register content back.
235.97 -- popl %ecx
235.98 -- xchgl %eax, (%esp) # Get %eax contents end store function address.
235.99 -- ret $8 # Jump to function address.
235.100 -- .size _dl_runtime_profile, .-_dl_runtime_profile
235.101 -- .previous
235.102 -+ .text\n\
235.103 -+ .globl _dl_runtime_resolve\n\
235.104 -+ .type _dl_runtime_resolve, @function\n\
235.105 -+ .align 16\n\
235.106 -+_dl_runtime_resolve:\n\
235.107 -+ pushl %eax # Preserve registers otherwise clobbered.\n\
235.108 -+ pushl %ecx\n\
235.109 -+ pushl %edx\n\
235.110 -+ movl 16(%esp), %edx # Copy args pushed by PLT in register. Note\n\
235.111 -+ movl 12(%esp), %eax # that `fixup' takes its parameters in regs.\n\
235.112 -+ call fixup # Call resolver.\n\
235.113 -+ popl %edx # Get register content back.\n\
235.114 -+ popl %ecx\n\
235.115 -+ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\
235.116 -+ ret $8 # Jump to function address.\n\
235.117 -+ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
235.118 -+\n\
235.119 -+ .globl _dl_runtime_profile\n\
235.120 -+ .type _dl_runtime_profile, @function\n\
235.121 -+ .align 16\n\
235.122 -+_dl_runtime_profile:\n\
235.123 -+ pushl %eax # Preserve registers otherwise clobbered.\n\
235.124 -+ pushl %ecx\n\
235.125 -+ pushl %edx\n\
235.126 -+ movl 20(%esp), %ecx # Load return address\n\
235.127 -+ movl 16(%esp), %edx # Copy args pushed by PLT in register. Note\n\
235.128 -+ movl 12(%esp), %eax # that `fixup' takes its parameters in regs.\n\
235.129 -+ call profile_fixup # Call resolver.\n\
235.130 -+ popl %edx # Get register content back.\n\
235.131 -+ popl %ecx\n\
235.132 -+ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\
235.133 -+ ret $8 # Jump to function address.\n\
235.134 -+ .size _dl_runtime_profile, .-_dl_runtime_profile\n\
235.135 -+ .previous\n\
235.136 - ");
235.137 - #else
235.138 --# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
235.139 -- .text
235.140 -- .globl _dl_runtime_resolve
235.141 -- .globl _dl_runtime_profile
235.142 -- .type _dl_runtime_resolve, @function
235.143 -- .type _dl_runtime_profile, @function
235.144 -- .align 16
235.145 --_dl_runtime_resolve:
235.146 --_dl_runtime_profile:
235.147 -- pushl %eax # Preserve registers otherwise clobbered.
235.148 -- pushl %ecx
235.149 -- pushl %edx
235.150 -- movl 16(%esp), %edx # Push the arguments for `fixup'
235.151 -- movl 12(%esp), %eax
235.152 -- pushl %edx
235.153 -- pushl %eax
235.154 -- call fixup # Call resolver.
235.155 -- popl %edx # Pop the parameters
235.156 -- popl %ecx
235.157 -- popl %edx # Get register content back.
235.158 -- popl %ecx
235.159 -- xchgl %eax, (%esp) # Get %eax contents end store function address.
235.160 -- ret $8 # Jump to function address.
235.161 -- .size _dl_runtime_resolve, .-_dl_runtime_resolve
235.162 -- .size _dl_runtime_profile, .-_dl_runtime_profile
235.163 -- .previous
235.164 -+# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\n\
235.165 -+ .text\n\
235.166 -+ .globl _dl_runtime_resolve\n\
235.167 -+ .globl _dl_runtime_profile\n\
235.168 -+ .type _dl_runtime_resolve, @function\n\
235.169 -+ .type _dl_runtime_profile, @function\n\
235.170 -+ .align 16\n\
235.171 -+_dl_runtime_resolve:\n\
235.172 -+_dl_runtime_profile:\n\
235.173 -+ pushl %eax # Preserve registers otherwise clobbered.\n\
235.174 -+ pushl %ecx\n\
235.175 -+ pushl %edx\n\
235.176 -+ movl 16(%esp), %edx # Push the arguments for `fixup'\n\
235.177 -+ movl 12(%esp), %eax\n\
235.178 -+ pushl %edx\n\
235.179 -+ pushl %eax\n\
235.180 -+ call fixup # Call resolver.\n\
235.181 -+ popl %edx # Pop the parameters\n\
235.182 -+ popl %ecx\n\
235.183 -+ popl %edx # Get register content back.\n\
235.184 -+ popl %ecx\n\
235.185 -+ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\
235.186 -+ ret $8 # Jump to function address.\n\
235.187 -+ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
235.188 -+ .size _dl_runtime_profile, .-_dl_runtime_profile\n\
235.189 -+ .previous\n\
235.190 - ");
235.191 - #endif
235.192 -
235.193 -@@ -205,7 +208,7 @@
235.194 - _dl_start_user:\n\
235.195 - # Save the user entry point address in %edi.\n\
235.196 - movl %eax, %edi\n\
235.197 -- # Point %ebx at the GOT.
235.198 -+ # Point %ebx at the GOT.\n\
235.199 - call 0b\n\
235.200 - addl $_GLOBAL_OFFSET_TABLE_, %ebx\n\
235.201 - # Store the highest stack address\n\
235.202 -
235.203 -===================================================================
235.204 ---- glibc-2.2.2/elf/dl-runtime.c.old 2005-07-07 15:40:26.000000000 -0700
235.205 -+++ glibc-2.2.2/elf/dl-runtime.c 2005-07-07 15:41:57.000000000 -0700
235.206 -@@ -33,6 +33,11 @@
235.207 - # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
235.208 - #endif
235.209 -
235.210 -+/* The fixup functions might have need special attributes. If none
235.211 -+ are provided define the macro as empty. */
235.212 -+#ifndef ARCH_FIXUP_ATTRIBUTE
235.213 -+# define ARCH_FIXUP_ATTRIBUTE
235.214 -+#endif
235.215 -
235.216 - /* This function is called through a special trampoline from the PLT the
235.217 - first time each PLT entry is called. We must perform the relocation
235.218 -@@ -42,7 +47,7 @@
235.219 - function. */
235.220 -
235.221 - #ifndef ELF_MACHINE_NO_PLT
235.222 --static ElfW(Addr) __attribute__ ((unused))
235.223 -+static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE
235.224 - fixup (
235.225 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
235.226 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
235.227 -@@ -126,7 +131,7 @@
235.228 -
235.229 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
235.230 -
235.231 --static ElfW(Addr) __attribute__ ((unused))
235.232 -+static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE
235.233 - profile_fixup (
235.234 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
235.235 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
236.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-errlist.patch Tue Aug 14 19:32:22 2007 +0000
236.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
236.3 @@ -1,18 +0,0 @@
236.4 -Fixes error
236.5 -../sysdeps/unix/sysv/linux/errlist.c:41: error: weak declaration of '_old_sys_nerr' must precede definition
236.6 -
236.7 -===================================================================
236.8 ---- glibc-2.2.2/sysdeps/unix/sysv/linux/errlist.c.old 2005-04-11 16:58:21.000000000 -0700
236.9 -+++ glibc-2.2.2/sysdeps/unix/sysv/linux/errlist.c 2005-04-11 16:58:10.000000000 -0700
236.10 -@@ -38,10 +38,9 @@
236.11 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
236.12 -
236.13 - strong_alias (__old_sys_nerr, _old_sys_nerr);
236.14 --weak_alias (__old_sys_nerr, _old_sys_nerr)
236.15 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
236.16 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
236.17 --weak_alias (__old_sys_errlist, _old_sys_errlist);
236.18 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
236.19 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
236.20 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
236.21 - #endif
237.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-longlong.patch Tue Aug 14 19:32:22 2007 +0000
237.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
237.3 @@ -1,811 +0,0 @@
237.4 -Fixes error
237.5 -./longlong.h:423: error: parse error before '%' token
237.6 -./longlong.h:423: error: missing terminating " character
237.7 -./longlong.h:432: error: missing terminating " character
237.8 -See also patches/glibc-2.1.3/glibc-2.1.3-allow-gcc3-longlong.patch
237.9 -
237.10 -===================================================================
237.11 ---- glibc-2.2.2/stdlib/longlong.h.old 2000-02-11 15:48:58.000000000 -0800
237.12 -+++ glibc-2.2.2/stdlib/longlong.h 2005-04-11 15:36:10.000000000 -0700
237.13 -@@ -108,8 +108,8 @@
237.14 -
237.15 - #if (defined (__a29k__) || defined (_AM29K)) && W_TYPE_SIZE == 32
237.16 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.17 -- __asm__ ("add %1,%4,%5
237.18 -- addc %0,%2,%3" \
237.19 -+ __asm__ ("add %1,%4,%5\n" \
237.20 -+ "addc %0,%2,%3" \
237.21 - : "=r" ((USItype) (sh)), \
237.22 - "=&r" ((USItype) (sl)) \
237.23 - : "%r" ((USItype) (ah)), \
237.24 -@@ -117,8 +117,8 @@
237.25 - "%r" ((USItype) (al)), \
237.26 - "rI" ((USItype) (bl)))
237.27 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.28 -- __asm__ ("sub %1,%4,%5
237.29 -- subc %0,%2,%3" \
237.30 -+ __asm__ ("sub %1,%4,%5\n" \
237.31 -+ "subc %0,%2,%3" \
237.32 - : "=r" ((USItype) (sh)), \
237.33 - "=&r" ((USItype) (sl)) \
237.34 - : "r" ((USItype) (ah)), \
237.35 -@@ -175,8 +175,8 @@
237.36 -
237.37 - #if defined (__arc__) && W_TYPE_SIZE == 32
237.38 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.39 -- __asm__ ("add.f %1, %4, %5
237.40 -- adc %0, %2, %3" \
237.41 -+ __asm__ ("add.f %1, %4, %5\n" \
237.42 -+ "adc %0, %2, %3" \
237.43 - : "=r" ((USItype) (sh)), \
237.44 - "=&r" ((USItype) (sl)) \
237.45 - : "%r" ((USItype) (ah)), \
237.46 -@@ -184,8 +184,8 @@
237.47 - "%r" ((USItype) (al)), \
237.48 - "rIJ" ((USItype) (bl)))
237.49 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.50 -- __asm__ ("sub.f %1, %4, %5
237.51 -- sbc %0, %2, %3" \
237.52 -+ __asm__ ("sub.f %1, %4, %5\n" \
237.53 -+ "sbc %0, %2, %3" \
237.54 - : "=r" ((USItype) (sh)), \
237.55 - "=&r" ((USItype) (sl)) \
237.56 - : "r" ((USItype) (ah)), \
237.57 -@@ -206,8 +206,8 @@
237.58 -
237.59 - #if defined (__arm__) && W_TYPE_SIZE == 32
237.60 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.61 -- __asm__ ("adds %1, %4, %5
237.62 -- adc %0, %2, %3" \
237.63 -+ __asm__ ("adds %1, %4, %5\n" \
237.64 -+ "adc %0, %2, %3" \
237.65 - : "=r" ((USItype) (sh)), \
237.66 - "=&r" ((USItype) (sl)) \
237.67 - : "%r" ((USItype) (ah)), \
237.68 -@@ -215,8 +215,8 @@
237.69 - "%r" ((USItype) (al)), \
237.70 - "rI" ((USItype) (bl)))
237.71 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.72 -- __asm__ ("subs %1, %4, %5
237.73 -- sbc %0, %2, %3" \
237.74 -+ __asm__ ("subs %1, %4, %5\n" \
237.75 -+ "sbc %0, %2, %3" \
237.76 - : "=r" ((USItype) (sh)), \
237.77 - "=&r" ((USItype) (sl)) \
237.78 - : "r" ((USItype) (ah)), \
237.79 -@@ -225,19 +225,19 @@
237.80 - "rI" ((USItype) (bl)))
237.81 - #define umul_ppmm(xh, xl, a, b) \
237.82 - {register USItype __t0, __t1, __t2; \
237.83 -- __asm__ ("%@ Inlined umul_ppmm
237.84 -- mov %2, %5, lsr #16
237.85 -- mov %0, %6, lsr #16
237.86 -- bic %3, %5, %2, lsl #16
237.87 -- bic %4, %6, %0, lsl #16
237.88 -- mul %1, %3, %4
237.89 -- mul %4, %2, %4
237.90 -- mul %3, %0, %3
237.91 -- mul %0, %2, %0
237.92 -- adds %3, %4, %3
237.93 -- addcs %0, %0, #65536
237.94 -- adds %1, %1, %3, lsl #16
237.95 -- adc %0, %0, %3, lsr #16" \
237.96 -+ __asm__ ("%@ Inlined umul_ppmm\n" \
237.97 -+ "mov %2, %5, lsr #16\n" \
237.98 -+ "mov %0, %6, lsr #16\n" \
237.99 -+ "bic %3, %5, %2, lsl #16\n" \
237.100 -+ "bic %4, %6, %0, lsl #16\n" \
237.101 -+ "mul %1, %3, %4\n" \
237.102 -+ "mul %4, %2, %4\n" \
237.103 -+ "mul %3, %0, %3\n" \
237.104 -+ "mul %0, %2, %0\n" \
237.105 -+ "adds %3, %4, %3\n" \
237.106 -+ "addcs %0, %0, #65536\n" \
237.107 -+ "adds %1, %1, %3, lsl #16\n" \
237.108 -+ "adc %0, %0, %3, lsr #16" \
237.109 - : "=&r" ((USItype) (xh)), \
237.110 - "=r" ((USItype) (xl)), \
237.111 - "=&r" (__t0), "=&r" (__t1), "=r" (__t2) \
237.112 -@@ -277,8 +277,8 @@
237.113 -
237.114 - #if defined (__gmicro__) && W_TYPE_SIZE == 32
237.115 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.116 -- __asm__ ("add.w %5,%1
237.117 -- addx %3,%0" \
237.118 -+ __asm__ ("add.w %5,%1\n" \
237.119 -+ "addx %3,%0" \
237.120 - : "=g" ((USItype) (sh)), \
237.121 - "=&g" ((USItype) (sl)) \
237.122 - : "%0" ((USItype) (ah)), \
237.123 -@@ -286,8 +286,8 @@
237.124 - "%1" ((USItype) (al)), \
237.125 - "g" ((USItype) (bl)))
237.126 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.127 -- __asm__ ("sub.w %5,%1
237.128 -- subx %3,%0" \
237.129 -+ __asm__ ("sub.w %5,%1\n" \
237.130 -+ "subx %3,%0" \
237.131 - : "=g" ((USItype) (sh)), \
237.132 - "=&g" ((USItype) (sl)) \
237.133 - : "0" ((USItype) (ah)), \
237.134 -@@ -316,8 +316,8 @@
237.135 -
237.136 - #if defined (__hppa) && W_TYPE_SIZE == 32
237.137 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.138 -- __asm__ ("add %4,%5,%1
237.139 -- addc %2,%3,%0" \
237.140 -+ __asm__ ("add %4,%5,%1\n" \
237.141 -+ "addc %2,%3,%0" \
237.142 - : "=r" ((USItype) (sh)), \
237.143 - "=&r" ((USItype) (sl)) \
237.144 - : "%rM" ((USItype) (ah)), \
237.145 -@@ -325,8 +325,8 @@
237.146 - "%rM" ((USItype) (al)), \
237.147 - "rM" ((USItype) (bl)))
237.148 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.149 -- __asm__ ("sub %4,%5,%1
237.150 -- subb %2,%3,%0" \
237.151 -+ __asm__ ("sub %4,%5,%1\n" \
237.152 -+ "subb %2,%3,%0" \
237.153 - : "=r" ((USItype) (sh)), \
237.154 - "=&r" ((USItype) (sl)) \
237.155 - : "rM" ((USItype) (ah)), \
237.156 -@@ -357,22 +357,22 @@
237.157 - do { \
237.158 - USItype __tmp; \
237.159 - __asm__ ( \
237.160 -- "ldi 1,%0
237.161 -- extru,= %1,15,16,%%r0 ; Bits 31..16 zero?
237.162 -- extru,tr %1,15,16,%1 ; No. Shift down, skip add.
237.163 -- ldo 16(%0),%0 ; Yes. Perform add.
237.164 -- extru,= %1,23,8,%%r0 ; Bits 15..8 zero?
237.165 -- extru,tr %1,23,8,%1 ; No. Shift down, skip add.
237.166 -- ldo 8(%0),%0 ; Yes. Perform add.
237.167 -- extru,= %1,27,4,%%r0 ; Bits 7..4 zero?
237.168 -- extru,tr %1,27,4,%1 ; No. Shift down, skip add.
237.169 -- ldo 4(%0),%0 ; Yes. Perform add.
237.170 -- extru,= %1,29,2,%%r0 ; Bits 3..2 zero?
237.171 -- extru,tr %1,29,2,%1 ; No. Shift down, skip add.
237.172 -- ldo 2(%0),%0 ; Yes. Perform add.
237.173 -- extru %1,30,1,%1 ; Extract bit 1.
237.174 -- sub %0,%1,%0 ; Subtract it.
237.175 -- " : "=r" (count), "=r" (__tmp) : "1" (x)); \
237.176 -+ "ldi 1,%0\n" \
237.177 -+ "extru,= %1,15,16,%%r0 ; Bits 31..16 zero?\n" \
237.178 -+ "extru,tr %1,15,16,%1 ; No. Shift down, skip add.\n" \
237.179 -+ "ldo 16(%0),%0 ; Yes. Perform add.\n" \
237.180 -+ "extru,= %1,23,8,%%r0 ; Bits 15..8 zero?\n" \
237.181 -+ "extru,tr %1,23,8,%1 ; No. Shift down, skip add.\n" \
237.182 -+ "ldo 8(%0),%0 ; Yes. Perform add.\n" \
237.183 -+ "extru,= %1,27,4,%%r0 ; Bits 7..4 zero?\n" \
237.184 -+ "extru,tr %1,27,4,%1 ; No. Shift down, skip add.\n" \
237.185 -+ "ldo 4(%0),%0 ; Yes. Perform add.\n" \
237.186 -+ "extru,= %1,29,2,%%r0 ; Bits 3..2 zero?\n" \
237.187 -+ "extru,tr %1,29,2,%1 ; No. Shift down, skip add.\n" \
237.188 -+ "ldo 2(%0),%0 ; Yes. Perform add.\n" \
237.189 -+ "extru %1,30,1,%1 ; Extract bit 1.\n" \
237.190 -+ "sub %0,%1,%0 ; Subtract it.\n" \
237.191 -+ : "=r" (count), "=r" (__tmp) : "1" (x)); \
237.192 - } while (0)
237.193 - #endif
237.194 -
237.195 -@@ -419,8 +419,8 @@
237.196 -
237.197 - #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
237.198 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.199 -- __asm__ ("addl %5,%1
237.200 -- adcl %3,%0" \
237.201 -+ __asm__ ("addl %5,%1\n" \
237.202 -+ "adcl %3,%0" \
237.203 - : "=r" ((USItype) (sh)), \
237.204 - "=&r" ((USItype) (sl)) \
237.205 - : "%0" ((USItype) (ah)), \
237.206 -@@ -428,8 +428,8 @@
237.207 - "%1" ((USItype) (al)), \
237.208 - "g" ((USItype) (bl)))
237.209 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.210 -- __asm__ ("subl %5,%1
237.211 -- sbbl %3,%0" \
237.212 -+ __asm__ ("subl %5,%1\n" \
237.213 -+ "sbbl %3,%0" \
237.214 - : "=r" ((USItype) (sh)), \
237.215 - "=&r" ((USItype) (sl)) \
237.216 - : "0" ((USItype) (ah)), \
237.217 -@@ -525,9 +525,9 @@
237.218 - #if defined (__M32R__) && W_TYPE_SIZE == 32
237.219 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.220 - /* The cmp clears the condition bit. */ \
237.221 -- __asm__ ("cmp %0,%0
237.222 -- addx %%5,%1
237.223 -- addx %%3,%0" \
237.224 -+ __asm__ ("cmp %0,%0\n" \
237.225 -+ "addx %%5,%1\n" \
237.226 -+ "addx %%3,%0" \
237.227 - : "=r" ((USItype) (sh)), \
237.228 - "=&r" ((USItype) (sl)) \
237.229 - : "%0" ((USItype) (ah)), \
237.230 -@@ -537,9 +537,9 @@
237.231 - : "cbit")
237.232 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.233 - /* The cmp clears the condition bit. */ \
237.234 -- __asm__ ("cmp %0,%0
237.235 -- subx %5,%1
237.236 -- subx %3,%0" \
237.237 -+ __asm__ ("cmp %0,%0\n" \
237.238 -+ "subx %5,%1\n" \
237.239 -+ "subx %3,%0" \
237.240 - : "=r" ((USItype) (sh)), \
237.241 - "=&r" ((USItype) (sl)) \
237.242 - : "0" ((USItype) (ah)), \
237.243 -@@ -551,8 +551,8 @@
237.244 -
237.245 - #if defined (__mc68000__) && W_TYPE_SIZE == 32
237.246 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.247 -- __asm__ ("add%.l %5,%1
237.248 -- addx%.l %3,%0" \
237.249 -+ __asm__ ("add%.l %5,%1\n" \
237.250 -+ "addx%.l %3,%0" \
237.251 - : "=d" ((USItype) (sh)), \
237.252 - "=&d" ((USItype) (sl)) \
237.253 - : "%0" ((USItype) (ah)), \
237.254 -@@ -560,8 +560,8 @@
237.255 - "%1" ((USItype) (al)), \
237.256 - "g" ((USItype) (bl)))
237.257 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.258 -- __asm__ ("sub%.l %5,%1
237.259 -- subx%.l %3,%0" \
237.260 -+ __asm__ ("sub%.l %5,%1\n" \
237.261 -+ "subx%.l %3,%0" \
237.262 - : "=d" ((USItype) (sh)), \
237.263 - "=&d" ((USItype) (sl)) \
237.264 - : "0" ((USItype) (ah)), \
237.265 -@@ -602,32 +602,32 @@
237.266 - #if !defined(__mcf5200__)
237.267 - /* %/ inserts REGISTER_PREFIX, %# inserts IMMEDIATE_PREFIX. */
237.268 - #define umul_ppmm(xh, xl, a, b) \
237.269 -- __asm__ ("| Inlined umul_ppmm
237.270 -- move%.l %2,%/d0
237.271 -- move%.l %3,%/d1
237.272 -- move%.l %/d0,%/d2
237.273 -- swap %/d0
237.274 -- move%.l %/d1,%/d3
237.275 -- swap %/d1
237.276 -- move%.w %/d2,%/d4
237.277 -- mulu %/d3,%/d4
237.278 -- mulu %/d1,%/d2
237.279 -- mulu %/d0,%/d3
237.280 -- mulu %/d0,%/d1
237.281 -- move%.l %/d4,%/d0
237.282 -- eor%.w %/d0,%/d0
237.283 -- swap %/d0
237.284 -- add%.l %/d0,%/d2
237.285 -- add%.l %/d3,%/d2
237.286 -- jcc 1f
237.287 -- add%.l %#65536,%/d1
237.288 --1: swap %/d2
237.289 -- moveq %#0,%/d0
237.290 -- move%.w %/d2,%/d0
237.291 -- move%.w %/d4,%/d2
237.292 -- move%.l %/d2,%1
237.293 -- add%.l %/d1,%/d0
237.294 -- move%.l %/d0,%0" \
237.295 -+ __asm__ ("| Inlined umul_ppmm\n" \
237.296 -+ "move%.l %2,%/d0\n" \
237.297 -+ "move%.l %3,%/d1\n" \
237.298 -+ "move%.l %/d0,%/d2\n" \
237.299 -+ "swap %/d0\n" \
237.300 -+ "move%.l %/d1,%/d3\n" \
237.301 -+ "swap %/d1\n" \
237.302 -+ "move%.w %/d2,%/d4\n" \
237.303 -+ "mulu %/d3,%/d4\n" \
237.304 -+ "mulu %/d1,%/d2\n" \
237.305 -+ "mulu %/d0,%/d3\n" \
237.306 -+ "mulu %/d0,%/d1\n" \
237.307 -+ "move%.l %/d4,%/d0\n" \
237.308 -+ "eor%.w %/d0,%/d0\n" \
237.309 -+ "swap %/d0\n" \
237.310 -+ "add%.l %/d0,%/d2\n" \
237.311 -+ "add%.l %/d3,%/d2\n" \
237.312 -+ "jcc 1f\n" \
237.313 -+ "add%.l %#65536,%/d1\n" \
237.314 -+"1: swap %/d2\n" \
237.315 -+ "moveq %#0,%/d0\n" \
237.316 -+ "move%.w %/d2,%/d0\n" \
237.317 -+ "move%.w %/d4,%/d2\n" \
237.318 -+ "move%.l %/d2,%1\n" \
237.319 -+ "add%.l %/d1,%/d0\n" \
237.320 -+ "move%.l %/d0,%0" \
237.321 - : "=g" ((USItype) (xh)), \
237.322 - "=g" ((USItype) (xl)) \
237.323 - : "g" ((USItype) (a)), \
237.324 -@@ -653,8 +653,8 @@
237.325 -
237.326 - #if defined (__m88000__) && W_TYPE_SIZE == 32
237.327 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.328 -- __asm__ ("addu.co %1,%r4,%r5
237.329 -- addu.ci %0,%r2,%r3" \
237.330 -+ __asm__ ("addu.co %1,%r4,%r5\n" \
237.331 -+ "addu.ci %0,%r2,%r3" \
237.332 - : "=r" ((USItype) (sh)), \
237.333 - "=&r" ((USItype) (sl)) \
237.334 - : "%rJ" ((USItype) (ah)), \
237.335 -@@ -662,8 +662,8 @@
237.336 - "%rJ" ((USItype) (al)), \
237.337 - "rJ" ((USItype) (bl)))
237.338 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.339 -- __asm__ ("subu.co %1,%r4,%r5
237.340 -- subu.ci %0,%r2,%r3" \
237.341 -+ __asm__ ("subu.co %1,%r4,%r5\n" \
237.342 -+ "subu.ci %0,%r2,%r3" \
237.343 - : "=r" ((USItype) (sh)), \
237.344 - "=&r" ((USItype) (sl)) \
237.345 - : "rJ" ((USItype) (ah)), \
237.346 -@@ -880,8 +880,8 @@
237.347 -
237.348 - #if defined (__pyr__) && W_TYPE_SIZE == 32
237.349 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.350 -- __asm__ ("addw %5,%1
237.351 -- addwc %3,%0" \
237.352 -+ __asm__ ("addw %5,%1\n" \
237.353 -+ "addwc %3,%0" \
237.354 - : "=r" ((USItype) (sh)), \
237.355 - "=&r" ((USItype) (sl)) \
237.356 - : "%0" ((USItype) (ah)), \
237.357 -@@ -889,8 +889,8 @@
237.358 - "%1" ((USItype) (al)), \
237.359 - "g" ((USItype) (bl)))
237.360 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.361 -- __asm__ ("subw %5,%1
237.362 -- subwb %3,%0" \
237.363 -+ __asm__ ("subw %5,%1\n" \
237.364 -+ "subwb %3,%0" \
237.365 - : "=r" ((USItype) (sh)), \
237.366 - "=&r" ((USItype) (sl)) \
237.367 - : "0" ((USItype) (ah)), \
237.368 -@@ -902,8 +902,8 @@
237.369 - ({union {UDItype __ll; \
237.370 - struct {USItype __h, __l;} __i; \
237.371 - } __xx; \
237.372 -- __asm__ ("movw %1,%R0
237.373 -- uemul %2,%0" \
237.374 -+ __asm__ ("movw %1,%R0\n" \
237.375 -+ "uemul %2,%0" \
237.376 - : "=&r" (__xx.__ll) \
237.377 - : "g" ((USItype) (u)), \
237.378 - "g" ((USItype) (v))); \
237.379 -@@ -912,8 +912,8 @@
237.380 -
237.381 - #if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32
237.382 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.383 -- __asm__ ("a %1,%5
237.384 -- ae %0,%3" \
237.385 -+ __asm__ ("a %1,%5\n" \
237.386 -+ "ae %0,%3" \
237.387 - : "=r" ((USItype) (sh)), \
237.388 - "=&r" ((USItype) (sl)) \
237.389 - : "%0" ((USItype) (ah)), \
237.390 -@@ -921,8 +921,8 @@
237.391 - "%1" ((USItype) (al)), \
237.392 - "r" ((USItype) (bl)))
237.393 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.394 -- __asm__ ("s %1,%5
237.395 -- se %0,%3" \
237.396 -+ __asm__ ("s %1,%5\n" \
237.397 -+ "se %0,%3" \
237.398 - : "=r" ((USItype) (sh)), \
237.399 - "=&r" ((USItype) (sl)) \
237.400 - : "0" ((USItype) (ah)), \
237.401 -@@ -933,26 +933,26 @@
237.402 - do { \
237.403 - USItype __m0 = (m0), __m1 = (m1); \
237.404 - __asm__ ( \
237.405 -- "s r2,r2
237.406 -- mts r10,%2
237.407 -- m r2,%3
237.408 -- m r2,%3
237.409 -- m r2,%3
237.410 -- m r2,%3
237.411 -- m r2,%3
237.412 -- m r2,%3
237.413 -- m r2,%3
237.414 -- m r2,%3
237.415 -- m r2,%3
237.416 -- m r2,%3
237.417 -- m r2,%3
237.418 -- m r2,%3
237.419 -- m r2,%3
237.420 -- m r2,%3
237.421 -- m r2,%3
237.422 -- m r2,%3
237.423 -- cas %0,r2,r0
237.424 -- mfs r10,%1" \
237.425 -+ "s r2,r2\n"
237.426 -+ "mts r10,%2\n" \
237.427 -+ "m r2,%3\n" \
237.428 -+ "m r2,%3\n" \
237.429 -+ "m r2,%3\n" \
237.430 -+ "m r2,%3\n" \
237.431 -+ "m r2,%3\n" \
237.432 -+ "m r2,%3\n" \
237.433 -+ "m r2,%3\n" \
237.434 -+ "m r2,%3\n" \
237.435 -+ "m r2,%3\n" \
237.436 -+ "m r2,%3\n" \
237.437 -+ "m r2,%3\n" \
237.438 -+ "m r2,%3\n" \
237.439 -+ "m r2,%3\n" \
237.440 -+ "m r2,%3\n" \
237.441 -+ "m r2,%3\n" \
237.442 -+ "m r2,%3\n" \
237.443 -+ "cas %0,r2,r0\n" \
237.444 -+ "mfs r10,%1" \
237.445 - : "=r" ((USItype) (ph)), \
237.446 - "=r" ((USItype) (pl)) \
237.447 - : "%r" (__m0), \
237.448 -@@ -982,9 +982,9 @@
237.449 - #if defined (__sh2__) && W_TYPE_SIZE == 32
237.450 - #define umul_ppmm(w1, w0, u, v) \
237.451 - __asm__ ( \
237.452 -- "dmulu.l %2,%3
237.453 -- sts macl,%1
237.454 -- sts mach,%0" \
237.455 -+ "dmulu.l %2,%3\n" \
237.456 -+ "sts macl,%1\n" \
237.457 -+ "sts mach,%0" \
237.458 - : "=r" ((USItype)(w1)), \
237.459 - "=r" ((USItype)(w0)) \
237.460 - : "r" ((USItype)(u)), \
237.461 -@@ -996,8 +996,8 @@
237.462 - #if defined (__sparc__) && !defined(__arch64__) \
237.463 - && !defined(__sparcv9) && W_TYPE_SIZE == 32
237.464 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.465 -- __asm__ ("addcc %r4,%5,%1
237.466 -- addx %r2,%3,%0" \
237.467 -+ __asm__ ("addcc %r4,%5,%1\n" \
237.468 -+ "addx %r2,%3,%0" \
237.469 - : "=r" ((USItype) (sh)), \
237.470 - "=&r" ((USItype) (sl)) \
237.471 - : "%rJ" ((USItype) (ah)), \
237.472 -@@ -1006,8 +1006,8 @@
237.473 - "rI" ((USItype) (bl)) \
237.474 - __CLOBBER_CC)
237.475 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.476 -- __asm__ ("subcc %r4,%5,%1
237.477 -- subx %r2,%3,%0" \
237.478 -+ __asm__ ("subcc %r4,%5,%1\n" \
237.479 -+ "subx %r2,%3,%0" \
237.480 - : "=r" ((USItype) (sh)), \
237.481 - "=&r" ((USItype) (sl)) \
237.482 - : "rJ" ((USItype) (ah)), \
237.483 -@@ -1040,45 +1040,45 @@
237.484 - : "r" ((USItype) (u)), \
237.485 - "r" ((USItype) (v)))
237.486 - #define udiv_qrnnd(q, r, n1, n0, d) \
237.487 -- __asm__ ("! Inlined udiv_qrnnd
237.488 -- wr %%g0,%2,%%y ! Not a delayed write for sparclite
237.489 -- tst %%g0
237.490 -- divscc %3,%4,%%g1
237.491 -- divscc %%g1,%4,%%g1
237.492 -- divscc %%g1,%4,%%g1
237.493 -- divscc %%g1,%4,%%g1
237.494 -- divscc %%g1,%4,%%g1
237.495 -- divscc %%g1,%4,%%g1
237.496 -- divscc %%g1,%4,%%g1
237.497 -- divscc %%g1,%4,%%g1
237.498 -- divscc %%g1,%4,%%g1
237.499 -- divscc %%g1,%4,%%g1
237.500 -- divscc %%g1,%4,%%g1
237.501 -- divscc %%g1,%4,%%g1
237.502 -- divscc %%g1,%4,%%g1
237.503 -- divscc %%g1,%4,%%g1
237.504 -- divscc %%g1,%4,%%g1
237.505 -- divscc %%g1,%4,%%g1
237.506 -- divscc %%g1,%4,%%g1
237.507 -- divscc %%g1,%4,%%g1
237.508 -- divscc %%g1,%4,%%g1
237.509 -- divscc %%g1,%4,%%g1
237.510 -- divscc %%g1,%4,%%g1
237.511 -- divscc %%g1,%4,%%g1
237.512 -- divscc %%g1,%4,%%g1
237.513 -- divscc %%g1,%4,%%g1
237.514 -- divscc %%g1,%4,%%g1
237.515 -- divscc %%g1,%4,%%g1
237.516 -- divscc %%g1,%4,%%g1
237.517 -- divscc %%g1,%4,%%g1
237.518 -- divscc %%g1,%4,%%g1
237.519 -- divscc %%g1,%4,%%g1
237.520 -- divscc %%g1,%4,%%g1
237.521 -- divscc %%g1,%4,%0
237.522 -- rd %%y,%1
237.523 -- bl,a 1f
237.524 -- add %1,%4,%1
237.525 --1: ! End of inline udiv_qrnnd" \
237.526 -+ __asm__ ("! Inlined udiv_qrnnd\n" \
237.527 -+ "wr %%g0,%2,%%y ! Not a delayed write for sparclite\n" \
237.528 -+ "tst %%g0\n" \
237.529 -+ "divscc %3,%4,%%g1\n" \
237.530 -+ "divscc %%g1,%4,%%g1\n" \
237.531 -+ "divscc %%g1,%4,%%g1\n" \
237.532 -+ "divscc %%g1,%4,%%g1\n" \
237.533 -+ "divscc %%g1,%4,%%g1\n" \
237.534 -+ "divscc %%g1,%4,%%g1\n" \
237.535 -+ "divscc %%g1,%4,%%g1\n" \
237.536 -+ "divscc %%g1,%4,%%g1\n" \
237.537 -+ "divscc %%g1,%4,%%g1\n" \
237.538 -+ "divscc %%g1,%4,%%g1\n" \
237.539 -+ "divscc %%g1,%4,%%g1\n" \
237.540 -+ "divscc %%g1,%4,%%g1\n" \
237.541 -+ "divscc %%g1,%4,%%g1\n" \
237.542 -+ "divscc %%g1,%4,%%g1\n" \
237.543 -+ "divscc %%g1,%4,%%g1\n" \
237.544 -+ "divscc %%g1,%4,%%g1\n" \
237.545 -+ "divscc %%g1,%4,%%g1\n" \
237.546 -+ "divscc %%g1,%4,%%g1\n" \
237.547 -+ "divscc %%g1,%4,%%g1\n" \
237.548 -+ "divscc %%g1,%4,%%g1\n" \
237.549 -+ "divscc %%g1,%4,%%g1\n" \
237.550 -+ "divscc %%g1,%4,%%g1\n" \
237.551 -+ "divscc %%g1,%4,%%g1\n" \
237.552 -+ "divscc %%g1,%4,%%g1\n" \
237.553 -+ "divscc %%g1,%4,%%g1\n" \
237.554 -+ "divscc %%g1,%4,%%g1\n" \
237.555 -+ "divscc %%g1,%4,%%g1\n" \
237.556 -+ "divscc %%g1,%4,%%g1\n" \
237.557 -+ "divscc %%g1,%4,%%g1\n" \
237.558 -+ "divscc %%g1,%4,%%g1\n" \
237.559 -+ "divscc %%g1,%4,%%g1\n" \
237.560 -+ "divscc %%g1,%4,%0\n" \
237.561 -+ "rd %%y,%1\n" \
237.562 -+ "bl,a 1f\n" \
237.563 -+ "add %1,%4,%1\n" \
237.564 -+"1: ! End of inline udiv_qrnnd" \
237.565 - : "=r" ((USItype) (q)), \
237.566 - "=r" ((USItype) (r)) \
237.567 - : "r" ((USItype) (n1)), \
237.568 -@@ -1099,46 +1099,46 @@
237.569 - /* SPARC without integer multiplication and divide instructions.
237.570 - (i.e. at least Sun4/20,40,60,65,75,110,260,280,330,360,380,470,490) */
237.571 - #define umul_ppmm(w1, w0, u, v) \
237.572 -- __asm__ ("! Inlined umul_ppmm
237.573 -- wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr
237.574 -- sra %3,31,%%o5 ! Don't move this insn
237.575 -- and %2,%%o5,%%o5 ! Don't move this insn
237.576 -- andcc %%g0,0,%%g1 ! Don't move this insn
237.577 -- mulscc %%g1,%3,%%g1
237.578 -- mulscc %%g1,%3,%%g1
237.579 -- mulscc %%g1,%3,%%g1
237.580 -- mulscc %%g1,%3,%%g1
237.581 -- mulscc %%g1,%3,%%g1
237.582 -- mulscc %%g1,%3,%%g1
237.583 -- mulscc %%g1,%3,%%g1
237.584 -- mulscc %%g1,%3,%%g1
237.585 -- mulscc %%g1,%3,%%g1
237.586 -- mulscc %%g1,%3,%%g1
237.587 -- mulscc %%g1,%3,%%g1
237.588 -- mulscc %%g1,%3,%%g1
237.589 -- mulscc %%g1,%3,%%g1
237.590 -- mulscc %%g1,%3,%%g1
237.591 -- mulscc %%g1,%3,%%g1
237.592 -- mulscc %%g1,%3,%%g1
237.593 -- mulscc %%g1,%3,%%g1
237.594 -- mulscc %%g1,%3,%%g1
237.595 -- mulscc %%g1,%3,%%g1
237.596 -- mulscc %%g1,%3,%%g1
237.597 -- mulscc %%g1,%3,%%g1
237.598 -- mulscc %%g1,%3,%%g1
237.599 -- mulscc %%g1,%3,%%g1
237.600 -- mulscc %%g1,%3,%%g1
237.601 -- mulscc %%g1,%3,%%g1
237.602 -- mulscc %%g1,%3,%%g1
237.603 -- mulscc %%g1,%3,%%g1
237.604 -- mulscc %%g1,%3,%%g1
237.605 -- mulscc %%g1,%3,%%g1
237.606 -- mulscc %%g1,%3,%%g1
237.607 -- mulscc %%g1,%3,%%g1
237.608 -- mulscc %%g1,%3,%%g1
237.609 -- mulscc %%g1,0,%%g1
237.610 -- add %%g1,%%o5,%0
237.611 -- rd %%y,%1" \
237.612 -+ __asm__ ("! Inlined umul_ppmm\n" \
237.613 -+ "wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr\n" \
237.614 -+ "sra %3,31,%%o5 ! Don't move this insn\n" \
237.615 -+ "and %2,%%o5,%%o5 ! Don't move this insn\n" \
237.616 -+ "andcc %%g0,0,%%g1 ! Don't move this insn\n" \
237.617 -+ "mulscc %%g1,%3,%%g1\n" \
237.618 -+ "mulscc %%g1,%3,%%g1\n" \
237.619 -+ "mulscc %%g1,%3,%%g1\n" \
237.620 -+ "mulscc %%g1,%3,%%g1\n" \
237.621 -+ "mulscc %%g1,%3,%%g1\n" \
237.622 -+ "mulscc %%g1,%3,%%g1\n" \
237.623 -+ "mulscc %%g1,%3,%%g1\n" \
237.624 -+ "mulscc %%g1,%3,%%g1\n" \
237.625 -+ "mulscc %%g1,%3,%%g1\n" \
237.626 -+ "mulscc %%g1,%3,%%g1\n" \
237.627 -+ "mulscc %%g1,%3,%%g1\n" \
237.628 -+ "mulscc %%g1,%3,%%g1\n" \
237.629 -+ "mulscc %%g1,%3,%%g1\n" \
237.630 -+ "mulscc %%g1,%3,%%g1\n" \
237.631 -+ "mulscc %%g1,%3,%%g1\n" \
237.632 -+ "mulscc %%g1,%3,%%g1\n" \
237.633 -+ "mulscc %%g1,%3,%%g1\n" \
237.634 -+ "mulscc %%g1,%3,%%g1\n" \
237.635 -+ "mulscc %%g1,%3,%%g1\n" \
237.636 -+ "mulscc %%g1,%3,%%g1\n" \
237.637 -+ "mulscc %%g1,%3,%%g1\n" \
237.638 -+ "mulscc %%g1,%3,%%g1\n" \
237.639 -+ "mulscc %%g1,%3,%%g1\n" \
237.640 -+ "mulscc %%g1,%3,%%g1\n" \
237.641 -+ "mulscc %%g1,%3,%%g1\n" \
237.642 -+ "mulscc %%g1,%3,%%g1\n" \
237.643 -+ "mulscc %%g1,%3,%%g1\n" \
237.644 -+ "mulscc %%g1,%3,%%g1\n" \
237.645 -+ "mulscc %%g1,%3,%%g1\n" \
237.646 -+ "mulscc %%g1,%3,%%g1\n" \
237.647 -+ "mulscc %%g1,%3,%%g1\n" \
237.648 -+ "mulscc %%g1,%3,%%g1\n" \
237.649 -+ "mulscc %%g1,0,%%g1\n" \
237.650 -+ "add %%g1,%%o5,%0\n" \
237.651 -+ "rd %%y,%1" \
237.652 - : "=r" ((USItype) (w1)), \
237.653 - "=r" ((USItype) (w0)) \
237.654 - : "%rI" ((USItype) (u)), \
237.655 -@@ -1148,30 +1148,30 @@
237.656 - /* It's quite necessary to add this much assembler for the sparc.
237.657 - The default udiv_qrnnd (in C) is more than 10 times slower! */
237.658 - #define udiv_qrnnd(q, r, n1, n0, d) \
237.659 -- __asm__ ("! Inlined udiv_qrnnd
237.660 -- mov 32,%%g1
237.661 -- subcc %1,%2,%%g0
237.662 --1: bcs 5f
237.663 -- addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb
237.664 -- sub %1,%2,%1 ! this kills msb of n
237.665 -- addx %1,%1,%1 ! so this can't give carry
237.666 -- subcc %%g1,1,%%g1
237.667 --2: bne 1b
237.668 -- subcc %1,%2,%%g0
237.669 -- bcs 3f
237.670 -- addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb
237.671 -- b 3f
237.672 -- sub %1,%2,%1 ! this kills msb of n
237.673 --4: sub %1,%2,%1
237.674 --5: addxcc %1,%1,%1
237.675 -- bcc 2b
237.676 -- subcc %%g1,1,%%g1
237.677 --! Got carry from n. Subtract next step to cancel this carry.
237.678 -- bne 4b
237.679 -- addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb
237.680 -- sub %1,%2,%1
237.681 --3: xnor %0,0,%0
237.682 -- ! End of inline udiv_qrnnd" \
237.683 -+ __asm__ ("! Inlined udiv_qrnnd\n" \
237.684 -+ "mov 32,%%g1\n" \
237.685 -+ "subcc %1,%2,%%g0\n" \
237.686 -+"1: bcs 5f\n" \
237.687 -+ "addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \
237.688 -+ "sub %1,%2,%1 ! this kills msb of n\n" \
237.689 -+ "addx %1,%1,%1 ! so this can't give carry\n" \
237.690 -+ "subcc %%g1,1,%%g1\n" \
237.691 -+"2: bne 1b\n" \
237.692 -+ "subcc %1,%2,%%g0\n" \
237.693 -+ "bcs 3f\n" \
237.694 -+ "addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \
237.695 -+ "b 3f\n" \
237.696 -+ "sub %1,%2,%1 ! this kills msb of n\n" \
237.697 -+"4: sub %1,%2,%1\n" \
237.698 -+"5: addxcc %1,%1,%1\n" \
237.699 -+ "bcc 2b\n" \
237.700 -+ "subcc %%g1,1,%%g1\n" \
237.701 -+"! Got carry from n. Subtract next step to cancel this carry.\n" \
237.702 -+ "bne 4b\n" \
237.703 -+ "addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb\n" \
237.704 -+ "sub %1,%2,%1\n" \
237.705 -+"3: xnor %0,0,%0\n" \
237.706 -+ "! End of inline udiv_qrnnd" \
237.707 - : "=&r" ((USItype) (q)), \
237.708 - "=&r" ((USItype) (r)) \
237.709 - : "r" ((USItype) (d)), \
237.710 -@@ -1185,11 +1185,11 @@
237.711 - #if ((defined (__sparc__) && defined (__arch64__)) \
237.712 - || defined (__sparcv9)) && W_TYPE_SIZE == 64
237.713 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.714 -- __asm__ ("addcc %r4,%5,%1
237.715 -- add %r2,%3,%0
237.716 -- bcs,a,pn %%xcc, 1f
237.717 -- add %0, 1, %0
237.718 -- 1:" \
237.719 -+ __asm__ ("addcc %r4,%5,%1\n" \
237.720 -+ "add %r2,%3,%0\n" \
237.721 -+ "bcs,a,pn %%xcc, 1f\n" \
237.722 -+ "add %0, 1, %0\n" \
237.723 -+ "1:" \
237.724 - : "=r" ((UDItype)(sh)), \
237.725 - "=&r" ((UDItype)(sl)) \
237.726 - : "%rJ" ((UDItype)(ah)), \
237.727 -@@ -1199,11 +1199,11 @@
237.728 - __CLOBBER_CC)
237.729 -
237.730 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.731 -- __asm__ ("subcc %r4,%5,%1
237.732 -- sub %r2,%3,%0
237.733 -- bcs,a,pn %%xcc, 1f
237.734 -- sub %0, 1, %0
237.735 -- 1:" \
237.736 -+ __asm__ ("subcc %r4,%5,%1\n" \
237.737 -+ "sub %r2,%3,%0\n" \
237.738 -+ "bcs,a,pn %%xcc, 1f\n" \
237.739 -+ "sub %0, 1, %0\n" \
237.740 -+ "1:" \
237.741 - : "=r" ((UDItype)(sh)), \
237.742 - "=&r" ((UDItype)(sl)) \
237.743 - : "rJ" ((UDItype)(ah)), \
237.744 -@@ -1216,27 +1216,27 @@
237.745 - do { \
237.746 - UDItype tmp1, tmp2, tmp3, tmp4; \
237.747 - __asm__ __volatile__ ( \
237.748 -- "srl %7,0,%3
237.749 -- mulx %3,%6,%1
237.750 -- srlx %6,32,%2
237.751 -- mulx %2,%3,%4
237.752 -- sllx %4,32,%5
237.753 -- srl %6,0,%3
237.754 -- sub %1,%5,%5
237.755 -- srlx %5,32,%5
237.756 -- addcc %4,%5,%4
237.757 -- srlx %7,32,%5
237.758 -- mulx %3,%5,%3
237.759 -- mulx %2,%5,%5
237.760 -- sethi %%hi(0x80000000),%2
237.761 -- addcc %4,%3,%4
237.762 -- srlx %4,32,%4
237.763 -- add %2,%2,%2
237.764 -- movcc %%xcc,%%g0,%2
237.765 -- addcc %5,%4,%5
237.766 -- sllx %3,32,%3
237.767 -- add %1,%3,%1
237.768 -- add %5,%2,%0" \
237.769 -+ "srl %7,0,%3\n" \
237.770 -+ "mulx %3,%6,%1\n" \
237.771 -+ "srlx %6,32,%2\n" \
237.772 -+ "mulx %2,%3,%4\n" \
237.773 -+ "sllx %4,32,%5\n" \
237.774 -+ "srl %6,0,%3\n" \
237.775 -+ "sub %1,%5,%5\n" \
237.776 -+ "srlx %5,32,%5\n" \
237.777 -+ "addcc %4,%5,%4\n" \
237.778 -+ "srlx %7,32,%5\n" \
237.779 -+ "mulx %3,%5,%3\n" \
237.780 -+ "mulx %2,%5,%5\n" \
237.781 -+ "sethi %%hi(0x80000000),%2\n" \
237.782 -+ "addcc %4,%3,%4\n" \
237.783 -+ "srlx %4,32,%4\n" \
237.784 -+ "add %2,%2,%2\n" \
237.785 -+ "movcc %%xcc,%%g0,%2\n" \
237.786 -+ "addcc %5,%4,%5\n" \
237.787 -+ "sllx %3,32,%3\n" \
237.788 -+ "add %1,%3,%1\n" \
237.789 -+ "add %5,%2,%0" \
237.790 - : "=r" ((UDItype)(wh)), \
237.791 - "=&r" ((UDItype)(wl)), \
237.792 - "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3), "=&r" (tmp4) \
237.793 -@@ -1250,8 +1250,8 @@
237.794 -
237.795 - #if defined (__vax__) && W_TYPE_SIZE == 32
237.796 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
237.797 -- __asm__ ("addl2 %5,%1
237.798 -- adwc %3,%0" \
237.799 -+ __asm__ ("addl2 %5,%1\n" \
237.800 -+ "adwc %3,%0" \
237.801 - : "=g" ((USItype) (sh)), \
237.802 - "=&g" ((USItype) (sl)) \
237.803 - : "%0" ((USItype) (ah)), \
237.804 -@@ -1259,8 +1259,8 @@
237.805 - "%1" ((USItype) (al)), \
237.806 - "g" ((USItype) (bl)))
237.807 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
237.808 -- __asm__ ("subl2 %5,%1
237.809 -- sbwc %3,%0" \
237.810 -+ __asm__ ("subl2 %5,%1\n" \
237.811 -+ "sbwc %3,%0" \
237.812 - : "=g" ((USItype) (sh)), \
237.813 - "=&g" ((USItype) (sl)) \
237.814 - : "0" ((USItype) (ah)), \
238.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-export_fp_hw.patch Tue Aug 14 19:32:22 2007 +0000
238.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
238.3 @@ -1,30 +0,0 @@
238.4 -Fixes undefined symbol _fp_hw required by the ABI:
238.5 -readelf -s /opt/crosstool/i686-pc-linux-gnu/i686-unknown-linux-gnu/gcc-3.4.3-glibc-2.2.2/i686-unknown-linux-gnu/lib/crt1.o | grep fp_hw
238.6 - 29: 00000000 4 NOTYPE GLOBAL DEFAULT UND _fp_hw
238.7 -Rumored to fix problems with icc, which gets upset at any symbol
238.8 -which is undefined, even if nobody cares about it.
238.9 -
238.10 -Revision 1.16, Thu Feb 22 19:57:34 2001 UTC (4 years, 2 months ago) by drepper
238.11 -Branch: MAIN
238.12 -CVS Tags: glibc-2_2_3
238.13 -Changes since 1.15: +1 -1 lines
238.14 -Diff to previous 1.15 (colored)
238.15 -
238.16 -(_fp_hw): Actually define label.
238.17 -
238.18 -===================================================================
238.19 -RCS file: /cvs/glibc/libc/sysdeps/i386/elf/start.S,v
238.20 -retrieving revision 1.15
238.21 -retrieving revision 1.16
238.22 -diff -u -r1.15 -r1.16
238.23 ---- libc/sysdeps/i386/elf/start.S 2001/02/03 21:34:54 1.15
238.24 -+++ libc/sysdeps/i386/elf/start.S 2001/02/22 19:57:34 1.16
238.25 -@@ -85,7 +85,7 @@
238.26 - meaningless since we don't support machines < 80386. */
238.27 - .section .rodata
238.28 - .globl _fp_hw
238.29 -- .long 3
238.30 -+_fp_hw: .long 3
238.31 - .size _fp_hw, 4
238.32 -
238.33 - /* Define a symbol for the first piece of initialized data. */
239.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-printf-not-macro.patch Tue Aug 14 19:32:22 2007 +0000
239.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
239.3 @@ -1,36 +0,0 @@
239.4 -I'm testing toolchains with glibc-2.2.2 now. It looks ok except
239.5 -that glibc-2.2.2 headers contain the gosh-awful line
239.6 - # define printf(fmt, args...) fprintf (stdout, fmt, ##args)
239.7 -which causes builds of programs with methods named 'printf' to fail with
239.8 - error: `stdout' is not a type
239.9 -Feh.
239.10 -
239.11 -Revision 1.8, Thu Aug 2 16:09:51 2001 UTC (3 years, 9 months ago) by aj
239.12 -Branch: MAIN
239.13 -CVS Tags: glibc-2_3_2, glibc-2_2_4, glibc-2-3-1, glibc-2-3, glibc-2-2-branch, glibc-2-2-5
239.14 -
239.15 -(printf): Remove printf optimization since GCC 3.0 can optimize printf.
239.16 -
239.17 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/libio/bits/stdio.h.diff?r1=1.7&r2=1.8&cvsroot=glibc
239.18 -
239.19 -===================================================================
239.20 -RCS file: /cvs/glibc/libc/libio/bits/stdio.h,v
239.21 -retrieving revision 1.7
239.22 -retrieving revision 1.8
239.23 -diff -u -r1.7 -r1.8
239.24 ---- libc/libio/bits/stdio.h 2001/07/06 04:55:32 1.7
239.25 -+++ libc/libio/bits/stdio.h 2001/08/02 16:09:51 1.8
239.26 -@@ -29,13 +29,6 @@
239.27 -
239.28 -
239.29 - #ifdef __USE_EXTERN_INLINES
239.30 --/* Since version 2.97 GCC knows about `fprintf' and can optimize certain
239.31 -- cases. Help gcc to optimize more code by mapping `printf' to the known
239.32 -- `fprintf' function. Unfortunately we have to use a macro. */
239.33 --# if __GNUC_PREREQ (2,97)
239.34 --# define printf(fmt, args...) fprintf (stdout, fmt, ##args)
239.35 --# endif
239.36 --
239.37 - /* Write formatted output to stdout from argument list ARG. */
239.38 - __STDIO_INLINE int
239.39 - vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW
240.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-syslog-bugfix.patch Tue Aug 14 19:32:22 2007 +0000
240.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
240.3 @@ -1,60 +0,0 @@
240.4 -Backport a bugfix from glibc-2.2.5 to glibc-2.2.2 for the following problem:
240.5 - When syslog-ng is restarted (or HUPed), vixie-cron (and probably other
240.6 - programs) stop logging to syslog.
240.7 -
240.8 -
240.9 -2001-08-27 Ulrich Drepper <Drepper@redhat.com> * misc/syslog.c (vsyslog):
240.10 - Try a bit harder to use syslogd. If the connection went down after we
240.11 - first used it try to connect again and resend the message before printing
240.12 - to the console.
240.13 -
240.14 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/misc/Attic/syslog.c.diff?r1=1.32&r2=1.30&cvsroot=glibc
240.15 -[ paths adjusted ]
240.16 -
240.17 -===================================================================
240.18 -RCS file: /cvs/glibc/libc/misc/Attic/syslog.c,v
240.19 -retrieving revision 1.30
240.20 -retrieving revision 1.32
240.21 -diff -u -r1.30 -r1.32
240.22 ---- glibc-2.2.2/misc/syslog.c 2001/08/24 03:21:14 1.30
240.23 -+++ glibc-2.2.5/misc/syslog.c 2001/08/30 23:13:49 1.32
240.24 -@@ -239,17 +239,29 @@
240.25 -
240.26 - if (!connected || __send(LogFile, buf, bufsize, 0) < 0)
240.27 - {
240.28 -- closelog_internal (); /* attempt re-open next time */
240.29 -- /*
240.30 -- * Output the message to the console; don't worry about blocking,
240.31 -- * if console blocks everything will. Make sure the error reported
240.32 -- * is the one from the syslogd failure.
240.33 -- */
240.34 -- if (LogStat & LOG_CONS &&
240.35 -- (fd = __open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY, 0)) >= 0)
240.36 -+ if (connected)
240.37 - {
240.38 -- dprintf (fd, "%s\r\n", buf + msgoff);
240.39 -- (void)__close(fd);
240.40 -+ /* Try to reopen the syslog connection. Maybe it went
240.41 -+ down. */
240.42 -+ closelog_internal ();
240.43 -+ openlog_internal(LogTag, LogStat | LOG_NDELAY, 0);
240.44 -+ }
240.45 -+
240.46 -+ if (!connected || __send(LogFile, buf, bufsize, 0) < 0)
240.47 -+ {
240.48 -+ closelog_internal (); /* attempt re-open next time */
240.49 -+ /*
240.50 -+ * Output the message to the console; don't worry
240.51 -+ * about blocking, if console blocks everything will.
240.52 -+ * Make sure the error reported is the one from the
240.53 -+ * syslogd failure.
240.54 -+ */
240.55 -+ if (LogStat & LOG_CONS &&
240.56 -+ (fd = __open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY, 0)) >= 0)
240.57 -+ {
240.58 -+ dprintf (fd, "%s\r\n", buf + msgoff);
240.59 -+ (void)__close(fd);
240.60 -+ }
240.61 - }
240.62 - }
240.63 -
241.1 --- a/patches/glibc/2.2.2/glibc-2.2.5-alpha-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
241.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
241.3 @@ -1,58 +0,0 @@
241.4 -Fix for this error:
241.5 -
241.6 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
241.7 -../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
241.8 -../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
241.9 -../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
241.10 -make[2]: *** [/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
241.11 -make[2]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
241.12 -make[1]: *** [posix/subdir_lib] Error 2
241.13 -make[1]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5'
241.14 -make: *** [all] Error 2
241.15 -
241.16 -[ Same as glibc-2.3.2-alpha-pwrite.patch except for copyright date ]
241.17 -
241.18 -extracted from GLIBC CVS by Dan Kegel
241.19 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc'
241.20 -(to match context of...)
241.21 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
241.22 -and rediffed.
241.23 -
241.24 -cf.
241.25 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
241.26 -
241.27 -Originally thought we needed this hunk, too:
241.28 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
241.29 -but it seems the sysdep.h change is sufficient, and works better
241.30 -when compiling against linux-2.4.
241.31 -
241.32 -===================================================================
241.33 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h.old 2004-05-24 22:21:44.000000000 -0700
241.34 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h 2004-05-24 22:22:48.000000000 -0700
241.35 -@@ -1,3 +1,3 @@
241.36 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
241.37 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
241.38 - This file is part of the GNU C Library.
241.39 - Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
241.40 -@@ -60,6 +60,21 @@
241.41 - #define __NR_osf_getsysinfo 256
241.42 - #define __NR_osf_setsysinfo 257
241.43 -
241.44 -+/* Help old kernel headers where particular syscalls are not available. */
241.45 -+#ifndef __NR_semtimedop
241.46 -+# define __NR_semtimedop 423
241.47 -+#endif
241.48 -+
241.49 -+/* This is a kludge to make syscalls.list find these under the names
241.50 -+ pread and pwrite, since some kernel headers define those names
241.51 -+ and some define the *64 names for the same system calls. */
241.52 -+#if !defined __NR_pread && defined __NR_pread64
241.53 -+# define __NR_pread __NR_pread64
241.54 -+#endif
241.55 -+#if !defined __NR_pwrite && defined __NR_pwrite64
241.56 -+# define __NR_pwrite __NR_pwrite64
241.57 -+#endif
241.58 -+
241.59 - /*
241.60 - * In order to get the hidden arguments for rt_sigaction set up
241.61 - * properly, we need to call the assembly version. Detect this in the
242.1 --- a/patches/glibc/2.2.2/glibc-2.2.5-arm-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
242.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
242.3 @@ -1,30 +0,0 @@
242.4 -Should fix
242.5 -
242.6 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
242.7 -../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
242.8 -../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
242.9 -../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
242.10 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
242.11 -make[2]: Leaving directory `/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
242.12 -make[1]: *** [posix/subdir_lib] Error 2
242.13 -
242.14 -Copied from similar patch for alpha.
242.15 -
242.16 ---- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/arm/sysdep.h 2001-07-05 21:56:13.000000000 -0700
242.17 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-08-07 10:45:26.000000000 -0700
242.18 -@@ -32,6 +32,15 @@
242.19 - #define SWI_BASE (0x900000)
242.20 - #define SYS_ify(syscall_name) (__NR_##syscall_name)
242.21 -
242.22 -+/* This is a kludge to make syscalls.list find these under the names
242.23 -+ pread and pwrite, since some kernel headers define those names
242.24 -+ and some define the *64 names for the same system calls. */
242.25 -+#if !defined __NR_pread && defined __NR_pread64
242.26 -+# define __NR_pread __NR_pread64
242.27 -+#endif
242.28 -+#if !defined __NR_pwrite && defined __NR_pwrite64
242.29 -+# define __NR_pwrite __NR_pwrite64
242.30 -+#endif
242.31 -
242.32 - #ifdef __ASSEMBLER__
242.33 -
243.1 --- a/patches/glibc/2.2.2/glibc-2.2.5-i386-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
243.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
243.3 @@ -1,20 +0,0 @@
243.4 -diff -urN glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h
243.5 ---- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h 2001-07-06 06:56:16.000000000 +0200
243.6 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h 2004-09-03 12:35:44.000000000 +0200
243.7 -@@ -36,6 +36,16 @@
243.8 - #undef L
243.9 - #define L(name) .L##name
243.10 -
243.11 -+/* This is a kludge to make syscalls.list find these under the names
243.12 -+ * pread and pwrite, since some kernel headers define those names
243.13 -+ * and some define the *64 names for the same system calls. */
243.14 -+#if !defined __NR_pread && defined __NR_pread64
243.15 -+# define __NR_pread __NR_pread64
243.16 -+#endif
243.17 -+#if !defined __NR_pwrite && defined __NR_pwrite64
243.18 -+# define __NR_pwrite __NR_pwrite64
243.19 -+#endif
243.20 -+
243.21 - #ifdef __ASSEMBLER__
243.22 -
243.23 - /* Linux uses a negative return value to indicate syscall errors,
244.1 --- a/patches/glibc/2.2.2/glibc-2.2.5-m68k-pwrite.patch Tue Aug 14 19:32:22 2007 +0000
244.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
244.3 @@ -1,32 +0,0 @@
244.4 -Copied from similar patch for other architectures.
244.5 -
244.6 -Should fix this error:
244.7 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
244.8 -../sysdeps/unix/sysv/linux/pread.c:53: `__NR_pread' undeclared (first use in this function)
244.9 -../sysdeps/unix/sysv/linux/pread.c:53: (Each undeclared identifier is reported only once
244.10 -../sysdeps/unix/sysv/linux/pread.c:53: for each function it appears in.)
244.11 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
244.12 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5/posix'
244.13 -make[1]: *** [posix/subdir_lib] Error 2
244.14 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5'
244.15 -make: *** [all] Error 2
244.16 -
244.17 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h.old 2004-10-05 08:37:37.000000000 -0700
244.18 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h 2004-10-05 08:38:22.000000000 -0700
244.19 -@@ -32,6 +32,16 @@
244.20 - # define SYS_ify(syscall_name) __NR_/**/syscall_name
244.21 - #endif
244.22 -
244.23 -+/* This is a kludge to make syscalls.list find these under the names
244.24 -+ pread and pwrite, since some kernel headers define those names
244.25 -+ and some define the *64 names for the same system calls. */
244.26 -+#if !defined __NR_pread && defined __NR_pread64
244.27 -+# define __NR_pread __NR_pread64
244.28 -+#endif
244.29 -+#if !defined __NR_pwrite && defined __NR_pwrite64
244.30 -+# define __NR_pwrite __NR_pwrite64
244.31 -+#endif
244.32 -+
244.33 - #ifdef __ASSEMBLER__
244.34 -
244.35 - /* Linux uses a negative return value to indicate syscall errors, unlike
245.1 --- a/patches/glibc/2.2.2/glibc-manual-stdin.texi-1.127.patch Tue Aug 14 19:32:22 2007 +0000
245.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
245.3 @@ -1,18 +0,0 @@
245.4 -===================================================================
245.5 -RCS file: /cvs/glibc/libc/manual/stdio.texi,v
245.6 -retrieving revision 1.126
245.7 -retrieving revision 1.127
245.8 -diff -u -r1.126 -r1.127
245.9 ---- libc/manual/stdio.texi 2001/06/06 07:11:31 1.126
245.10 -+++ libc/manual/stdio.texi 2001/07/31 18:57:16 1.127
245.11 -@@ -3265,8 +3265,8 @@
245.12 - If you are trying to read input that doesn't match a single, fixed
245.13 - pattern, you may be better off using a tool such as Flex to generate a
245.14 - lexical scanner, or Bison to generate a parser, rather than using
245.15 --@code{scanf}. For more information about these tools, see @ref{, , ,
245.16 --flex.info, Flex: The Lexical Scanner Generator}, and @ref{, , ,
245.17 -+@code{scanf}. For more information about these tools, see @ref{Top, , ,
245.18 -+flex.info, Flex: The Lexical Scanner Generator}, and @ref{Top, , ,
245.19 - bison.info, The Bison Reference Manual}.
245.20 -
245.21 - @node Input Conversion Syntax
246.1 --- a/patches/glibc/2.2.2/glibc-nss-noopt.patch Tue Aug 14 19:32:22 2007 +0000
246.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
246.3 @@ -1,26 +0,0 @@
246.4 ---- glibc-2.2.2/nss/Makefile.orig Tue May 20 16:02:47 2003
246.5 -+++ glibc-2.2.2/nss/Makefile Tue May 20 16:03:52 2003
246.6 -@@ -41,6 +41,10 @@
246.7 -
246.8 - tests = test-netdb
246.9 -
246.10 -+# Disable optimization when building nss to avoid crash described in
246.11 -+# http://gcc.gnu.org/ml/gcc-bugs/1998-06/msg00168.html
246.12 -+default_cflags := -g -O0
246.13 -+
246.14 - include ../Makeconfig
246.15 -
246.16 - ifeq (yes,$(build-static-nss))
246.17 ---- glibc-2.2.2/locale/Makefile.orig Tue May 20 17:29:11 2003
246.18 -+++ glibc-2.2.2/locale/Makefile Tue May 20 17:29:39 2003
246.19 -@@ -66,6 +66,10 @@
246.20 - GPERF = gperf
246.21 - GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C
246.22 -
246.23 -+# Disable optimization when building locale or nss to avoid crash described in
246.24 -+# http://gcc.gnu.org/ml/gcc-bugs/1998-06/msg00168.html
246.25 -+default_cflags := -g -O0
246.26 -+
246.27 - include ../Rules
246.28 -
246.29 - programs/%-kw.h: programs/%-kw.gperf
247.1 --- a/patches/glibc/2.2.2/tst-pathopt-cross.patch Tue Aug 14 19:32:22 2007 +0000
247.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
247.3 @@ -1,23 +0,0 @@
247.4 -Fixes error
247.5 -tst-pathopt.sh: /crosstool-0.20/build/powerpc-750-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-glibc/elf/ld.so: cannot execute binary file
247.6 -make[2]: *** [/crosstool-0.20/build/powerpc-750-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-glibc/elf/tst-pathopt.out] Error 126
247.7 -See also http://sources.redhat.com/ml/libc-alpha/2001-03/msg00113.html
247.8 -
247.9 -===================================================================
247.10 -RCS file: /cvs/glibc/libc/elf/Makefile,v
247.11 -retrieving revision 1.196
247.12 -retrieving revision 1.197
247.13 -diff -u -r1.196 -r1.197
247.14 ---- libc/elf/Makefile 2001/03/16 07:29:45 1.196
247.15 -+++ libc/elf/Makefile 2001/03/25 04:57:51 1.197
247.16 -@@ -246,8 +246,10 @@
247.17 - generated += $(addsuffix .so,$(strip $(modules-names)))
247.18 -
247.19 - ifeq (yes,$(build-shared))
247.20 -+ifeq ($(cross-compiling),no)
247.21 - tests: $(objpfx)tst-pathopt.out
247.22 - endif
247.23 -+endif
247.24 -
247.25 - $(objpfx)testobj1.so: $(libdl)
247.26 - $(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl)
248.1 --- a/patches/glibc/2.2.3/errlist-1.9.patch Tue Aug 14 19:32:22 2007 +0000
248.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
248.3 @@ -1,30 +0,0 @@
248.4 -Fixes:
248.5 -
248.6 -../sysdeps/unix/sysv/linux/errlist.c:41: weak declaration of `_old_sys_nerr' must precede definition
248.7 -make[2]: *** [/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/build-glibc/stdio-common/errlist.os] Error 1
248.8 -
248.9 -===================================================================
248.10 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/Attic/errlist.c,v
248.11 -retrieving revision 1.8
248.12 -retrieving revision 1.9
248.13 -diff -u -r1.8 -r1.9
248.14 ---- libc/sysdeps/unix/sysv/linux/errlist.c 2001/07/06 04:56:12 1.8
248.15 -+++ libc/sysdeps/unix/sysv/linux/errlist.c 2002/05/20 06:56:53 1.9
248.16 -@@ -1,4 +1,4 @@
248.17 --/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
248.18 -+/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
248.19 - This file is part of the GNU C Library.
248.20 -
248.21 - The GNU C Library is free software; you can redistribute it and/or
248.22 -@@ -38,10 +38,9 @@
248.23 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
248.24 -
248.25 - strong_alias (__old_sys_nerr, _old_sys_nerr);
248.26 --weak_alias (__old_sys_nerr, _old_sys_nerr)
248.27 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
248.28 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
248.29 --weak_alias (__old_sys_errlist, _old_sys_errlist);
248.30 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
248.31 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
248.32 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
248.33 - #endif
249.1 --- a/patches/glibc/2.2.3/errlist-arm.patch Tue Aug 14 19:32:22 2007 +0000
249.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
249.3 @@ -1,48 +0,0 @@
249.4 -Subject: patch for arm
249.5 -From: Philip Blundell <Philip dot Blundell at pobox dot com>
249.6 -To: libc-hacker at sources dot redhat dot com
249.7 -Content-Type: text/plain
249.8 -Content-Transfer-Encoding: 7bit
249.9 -Date: 22 Jul 2002 20:12:06 +0100
249.10 -Message-Id: <1027365126.725.10.camel@kc>
249.11 -Mime-Version: 1.0
249.12 -
249.13 -The mainline seems to need this patch in order to compile.
249.14 -
249.15 -p.
249.16 -
249.17 -2002-07-22 Philip Blundell <philb@gnu.org>
249.18 -
249.19 - * sysdeps/unix/sysv/linux/arm/errlist.c: Remove extra weak alias
249.20 - definiton of _old_sys_nerr. Define _old_sys_errlist as strong
249.21 - alias.
249.22 -
249.23 -Index: sysdeps/unix/sysv/linux/arm/errlist.c
249.24 -===================================================================
249.25 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/errlist.c,v
249.26 -retrieving revision 1.4
249.27 -diff -u -p -r1.4 errlist.c
249.28 ---- glibc/sysdeps/unix/sysv/linux/arm/errlist.c 6 Jul 2001 04:56:13 -0000 1.4
249.29 -+++ glibc/sysdeps/unix/sysv/linux/arm/errlist.c 22 Jul 2002 19:10:57 -0000
249.30 -@@ -1,4 +1,4 @@
249.31 --/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
249.32 -+/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
249.33 - This file is part of the GNU C Library.
249.34 -
249.35 - The GNU C Library is free software; you can redistribute it and/or
249.36 -@@ -38,10 +38,9 @@ extern const char *const *__old_sys_errl
249.37 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
249.38 -
249.39 - strong_alias (__old_sys_nerr, _old_sys_nerr);
249.40 --weak_alias (__old_sys_nerr, _old_sys_nerr)
249.41 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
249.42 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
249.43 --weak_alias (__old_sys_errlist, _old_sys_errlist);
249.44 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
249.45 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
249.46 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
249.47 - #endif
249.48 -
249.49 -
249.50 -
249.51 -
250.1 --- a/patches/glibc/2.2.3/glibc-2.2.3-mips-base-addr-got.patch Tue Aug 14 19:32:22 2007 +0000
250.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
250.3 @@ -1,276 +0,0 @@
250.4 -From http://www.ltc.com/~brad/mips/glibc-2.2.3-mips-base-addr-got.diff
250.5 -
250.6 -Hopefully fixes the error:
250.7 -
250.8 -/opt/crosstool/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/../../../../mipsel-unknown-linux-gnu/bin/ld: target elf32-littlemips not found
250.9 -collect2: ld returned 1 exit status
250.10 -make[2]: *** [/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/build-glibc/elf/ld.so] Error 1
250.11 -
250.12 -
250.13 -diff -urNbB glibc-2.2.3/sysdeps/mips/dl-machine.h glibc-2.2.3-mips/sysdeps/mips/dl-machine.h
250.14 ---- glibc-2.2.3/sysdeps/mips/dl-machine.h Mon Mar 26 23:53:28 2001
250.15 -+++ glibc-2.2.3-mips/sysdeps/mips/dl-machine.h Sun Aug 12 11:08:17 2001
250.16 -@@ -61,23 +61,6 @@
250.17 - in l_info array. */
250.18 - #define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM)
250.19 -
250.20 --/*
250.21 -- * MIPS libraries are usually linked to a non-zero base address. We
250.22 -- * subtract the base address from the address where we map the object
250.23 -- * to. This results in more efficient address space usage.
250.24 -- *
250.25 -- * FIXME: By the time when MAP_BASE_ADDR is called we don't have the
250.26 -- * DYNAMIC section read. Until this is fixed make the assumption that
250.27 -- * libraries have their base address at 0x5ffe0000. This needs to be
250.28 -- * fixed before we can safely get rid of this MIPSism.
250.29 -- */
250.30 --#if 0
250.31 --#define MAP_BASE_ADDR(l) ((l)->l_info[DT_MIPS(BASE_ADDRESS)] ? \
250.32 -- (l)->l_info[DT_MIPS(BASE_ADDRESS)]->d_un.d_ptr : 0)
250.33 --#else
250.34 --#define MAP_BASE_ADDR(l) 0x5ffe0000
250.35 --#endif
250.36 --
250.37 - /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
250.38 - with the run-time address of the r_debug structure */
250.39 - #define ELF_MACHINE_DEBUG_SETUP(l,r) \
250.40 -@@ -557,51 +540,30 @@
250.41 - /* Do nothing. */
250.42 - }
250.43 -
250.44 -+#ifndef RTLD_BOOTSTRAP
250.45 - /* Relocate GOT. */
250.46 - static inline void
250.47 - elf_machine_got_rel (struct link_map *map, int lazy)
250.48 - {
250.49 - ElfW(Addr) *got;
250.50 - ElfW(Sym) *sym;
250.51 -+ const ElfW(Half) *vernum;
250.52 - int i, n, symidx;
250.53 -- /* This function is loaded in dl-reloc as a nested function and can
250.54 -- therefore access the variables scope and strtab from
250.55 -- _dl_relocate_object. */
250.56 --#ifdef RTLD_BOOTSTRAP
250.57 --# define RESOLVE_GOTSYM(sym,sym_index) 0
250.58 --#else
250.59 --# define RESOLVE_GOTSYM(sym,sym_index) \
250.60 -+
250.61 -+#define RESOLVE_GOTSYM(sym,vernum,sym_index) \
250.62 - ({ \
250.63 - const ElfW(Sym) *ref = sym; \
250.64 -+ const struct r_found_version *version \
250.65 -+ = vernum ? &map->l_versions [vernum [sym_index]] : NULL; \
250.66 - ElfW(Addr) value; \
250.67 -- \
250.68 -- switch (map->l_info[VERSYMIDX (DT_VERSYM)] != NULL) \
250.69 -- { \
250.70 -- default: \
250.71 -- { \
250.72 -- const ElfW(Half) *vernum = \
250.73 -- (const void *) D_PTR (map, l_info[VERSYMIDX (DT_VERSYM)]); \
250.74 -- ElfW(Half) ndx = vernum[sym_index]; \
250.75 -- const struct r_found_version *version = &l->l_versions[ndx]; \
250.76 -- \
250.77 -- if (version->hash != 0) \
250.78 -- { \
250.79 -- value = _dl_lookup_versioned_symbol(strtab + sym->st_name,\
250.80 -- map, \
250.81 -- &ref, scope, version, \
250.82 -- R_MIPS_REL32, 0); \
250.83 -- break; \
250.84 -- } \
250.85 -- /* Fall through. */ \
250.86 -- } \
250.87 -- case 0: \
250.88 -- value = _dl_lookup_symbol (strtab + sym->st_name, map, &ref, \
250.89 -- scope, R_MIPS_REL32, 0); \
250.90 -- } \
250.91 -- \
250.92 -+ value = RESOLVE (&ref, version, R_MIPS_REL32); \
250.93 - (ref)? value + ref->st_value: 0; \
250.94 - })
250.95 --#endif /* RTLD_BOOTSTRAP */
250.96 -+
250.97 -+ if (map->l_info[VERSYMIDX (DT_VERSYM)] != NULL)
250.98 -+ vernum = (const void *) D_PTR (map, l_info[VERSYMIDX (DT_VERSYM)]);
250.99 -+ else
250.100 -+ vernum = NULL;
250.101 -
250.102 - got = (ElfW(Addr) *) D_PTR (map, l_info[DT_PLTGOT]);
250.103 -
250.104 -@@ -639,10 +601,10 @@
250.105 - && sym->st_value && lazy)
250.106 - *got = sym->st_value + map->l_addr;
250.107 - else
250.108 -- *got = RESOLVE_GOTSYM (sym, symidx);
250.109 -+ *got = RESOLVE_GOTSYM (sym, vernum, symidx);
250.110 - }
250.111 - else if (sym->st_shndx == SHN_COMMON)
250.112 -- *got = RESOLVE_GOTSYM (sym, symidx);
250.113 -+ *got = RESOLVE_GOTSYM (sym, vernum, symidx);
250.114 - else if (ELFW(ST_TYPE) (sym->st_info) == STT_FUNC
250.115 - && *got != sym->st_value
250.116 - && lazy)
250.117 -@@ -653,7 +615,7 @@
250.118 - *got += map->l_addr;
250.119 - }
250.120 - else
250.121 -- *got = RESOLVE_GOTSYM (sym, symidx);
250.122 -+ *got = RESOLVE_GOTSYM (sym, vernum, symidx);
250.123 -
250.124 - ++got;
250.125 - ++sym;
250.126 -@@ -661,9 +623,8 @@
250.127 - }
250.128 -
250.129 - #undef RESOLVE_GOTSYM
250.130 --
250.131 -- return;
250.132 - }
250.133 -+#endif
250.134 -
250.135 - /* Set up the loaded object described by L so its stub function
250.136 - will jump to the on-demand fixup code __dl_runtime_resolve. */
250.137 -diff -urNbB glibc-2.2.3/sysdeps/mips/mips64/rtld-parms glibc-2.2.3-mips/sysdeps/mips/mips64/rtld-parms
250.138 ---- glibc-2.2.3/sysdeps/mips/mips64/rtld-parms Sat Jul 12 18:26:11 1997
250.139 -+++ glibc-2.2.3-mips/sysdeps/mips/mips64/rtld-parms Wed Dec 31 19:00:00 1969
250.140 -@@ -1,3 +0,0 @@
250.141 --ifndef rtld-wordsize
250.142 --rtld-wordsize = 64
250.143 --endif
250.144 -diff -urNbB glibc-2.2.3/sysdeps/mips/mipsel/rtld-parms glibc-2.2.3-mips/sysdeps/mips/mipsel/rtld-parms
250.145 ---- glibc-2.2.3/sysdeps/mips/mipsel/rtld-parms Sat Jul 12 18:26:15 1997
250.146 -+++ glibc-2.2.3-mips/sysdeps/mips/mipsel/rtld-parms Wed Dec 31 19:00:00 1969
250.147 -@@ -1,3 +0,0 @@
250.148 --ifndef rtld-oformat
250.149 --rtld-oformat = elf32-littlemips
250.150 --endif
250.151 -diff -urNbB glibc-2.2.3/sysdeps/mips/rtld-ldscript.in glibc-2.2.3-mips/sysdeps/mips/rtld-ldscript.in
250.152 ---- glibc-2.2.3/sysdeps/mips/rtld-ldscript.in Sat Jul 12 18:23:14 1997
250.153 -+++ glibc-2.2.3-mips/sysdeps/mips/rtld-ldscript.in Wed Dec 31 19:00:00 1969
250.154 -@@ -1,106 +0,0 @@
250.155 --OUTPUT_FORMAT("@@rtld-oformat@@")
250.156 --OUTPUT_ARCH(@@rtld-arch@@)
250.157 --ENTRY(@@rtld-entry@@)
250.158 --SECTIONS
250.159 --{
250.160 -- /* Read-only sections, merged into text segment: */
250.161 -- . = @@rtld-base@@;
250.162 -- .reginfo : { *(.reginfo) }
250.163 -- .dynamic : { *(.dynamic) }
250.164 -- .dynstr : { *(.dynstr) }
250.165 -- .dynsym : { *(.dynsym) }
250.166 -- .hash : { *(.hash) }
250.167 -- .rel.text : { *(.rel.text) }
250.168 -- .rela.text : { *(.rela.text) }
250.169 -- .rel.data : { *(.rel.data) }
250.170 -- .rela.data : { *(.rela.data) }
250.171 -- .rel.rodata : { *(.rel.rodata) }
250.172 -- .rela.rodata : { *(.rela.rodata) }
250.173 -- .rel.got : { *(.rel.got) }
250.174 -- .rela.got : { *(.rela.got) }
250.175 -- .rel.ctors : { *(.rel.ctors) }
250.176 -- .rela.ctors : { *(.rela.ctors) }
250.177 -- .rel.dtors : { *(.rel.dtors) }
250.178 -- .rela.dtors : { *(.rela.dtors) }
250.179 -- .rel.init : { *(.rel.init) }
250.180 -- .rela.init : { *(.rela.init) }
250.181 -- .rel.fini : { *(.rel.fini) }
250.182 -- .rela.fini : { *(.rela.fini) }
250.183 -- .rel.bss : { *(.rel.bss) }
250.184 -- .rela.bss : { *(.rela.bss) }
250.185 -- .rel.plt : { *(.rel.plt) }
250.186 -- .rela.plt : { *(.rela.plt) }
250.187 -- .rodata : { *(.rodata) }
250.188 -- .rodata1 : { *(.rodata1) }
250.189 -- .init : { *(.init) } =0
250.190 -- .text :
250.191 -- {
250.192 -- *(.text)
250.193 -- *(.stub)
250.194 -- /* .gnu.warning sections are handled specially by elf32.em. */
250.195 -- *(.gnu.warning)
250.196 -- } =0
250.197 -- .fini : { *(.fini) } =0
250.198 -- /* Adjust the address for the data segment. We want to adjust up to
250.199 -- the same address within the page on the next page up. It would
250.200 -- be more correct to do this:
250.201 -- . = 0x10000000;
250.202 -- The current expression does not correctly handle the case of a
250.203 -- text segment ending precisely at the end of a page; it causes the
250.204 -- data segment to skip a page. The above expression does not have
250.205 -- this problem, but it will currently (2/95) cause BFD to allocate
250.206 -- a single segment, combining both text and data, for this case.
250.207 -- This will prevent the text segment from being shared among
250.208 -- multiple executions of the program; I think that is more
250.209 -- important than losing a page of the virtual address space (note
250.210 -- that no actual memory is lost; the page which is skipped can not
250.211 -- be referenced). */
250.212 -- . += 0x10000;
250.213 -- .data :
250.214 -- {
250.215 -- *(.data)
250.216 -- CONSTRUCTORS
250.217 -- }
250.218 -- .data1 : { *(.data1) }
250.219 -- .ctors : { *(.ctors) }
250.220 -- .dtors : { *(.dtors) }
250.221 -- _gp = ALIGN(16) + 0x7ff0;
250.222 -- .got :
250.223 -- {
250.224 -- *(.got.plt) *(.got)
250.225 -- }
250.226 -- /* We want the small data sections together, so single-instruction offsets
250.227 -- can access them all, and initialized data all before uninitialized, so
250.228 -- we can shorten the on-disk segment size. */
250.229 -- .sdata : { *(.sdata) }
250.230 -- .lit8 : { *(.lit8) }
250.231 -- .lit4 : { *(.lit4) }
250.232 -- .sbss : { *(.sbss) *(.scommon) }
250.233 -- .bss :
250.234 -- {
250.235 -- *(.dynbss)
250.236 -- *(.bss)
250.237 -- *(COMMON)
250.238 -- }
250.239 -- /* The normal linker scripts created by the binutils doesn't have the
250.240 -- symbols end and _end which breaks ld.so's dl-minimal.c. */
250.241 -- _end = . ;
250.242 -- PROVIDE (end = .);
250.243 -- /* These are needed for ELF backends which have not yet been
250.244 -- converted to the new style linker. */
250.245 -- .stab 0 : { *(.stab) }
250.246 -- .stabstr 0 : { *(.stabstr) }
250.247 -- /* DWARF debug sections.
250.248 -- Symbols in the .debug DWARF section are relative to the beginning of the
250.249 -- section so we begin .debug at 0. It's not clear yet what needs to happen
250.250 -- for the others. */
250.251 -- .debug 0 : { *(.debug) }
250.252 -- .debug_srcinfo 0 : { *(.debug_srcinfo) }
250.253 -- .debug_aranges 0 : { *(.debug_aranges) }
250.254 -- .debug_pubnames 0 : { *(.debug_pubnames) }
250.255 -- .debug_sfnames 0 : { *(.debug_sfnames) }
250.256 -- .line 0 : { *(.line) }
250.257 -- /* These must appear regardless of . */
250.258 -- .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
250.259 -- .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
250.260 --}
250.261 -diff -urNbB glibc-2.2.3/sysdeps/mips/rtld-parms glibc-2.2.3-mips/sysdeps/mips/rtld-parms
250.262 ---- glibc-2.2.3/sysdeps/mips/rtld-parms Mon Jul 21 19:04:07 1997
250.263 -+++ glibc-2.2.3-mips/sysdeps/mips/rtld-parms Wed Dec 31 19:00:00 1969
250.264 -@@ -1,15 +0,0 @@
250.265 --ifndef rtld-wordsize
250.266 --rtld-wordsize = 32
250.267 --endif
250.268 --ifndef rtld-oformat
250.269 --rtld-oformat = elf$(rtld-wordsize)-bigmips
250.270 --endif
250.271 --ifndef rtld-arch
250.272 --rtld-arch = mips
250.273 --endif
250.274 --ifndef rtld-entry
250.275 --rtld-entry = __start
250.276 --endif
250.277 --ifndef rtld-base
250.278 --rtld-base = 0x0fb60000 + SIZEOF_HEADERS
250.279 --endif
251.1 --- a/patches/glibc/2.2.3/glibc-2.2.5-mips-clone-local-label.patch Tue Aug 14 19:32:22 2007 +0000
251.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
251.3 @@ -1,47 +0,0 @@
251.4 -This is a workaround for
251.5 -
251.6 -mipsel-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/mips/clone.S -c -I../include -I. -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc -I.. -I../libio -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc -I../sysdeps/mips/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/mips -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/mips/mipsel -I../sysdeps/mips/fpu -I../sysdeps/mips -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/include -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/mipsel-unknown-linux-gnu/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DASSEMBLER -o /home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o
251.7 -../sysdeps/unix/sysv/linux/mips/clone.S: Assembler messages:
251.8 -../sysdeps/unix/sysv/linux/mips/clone.S:66: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format
251.9 -make[2]: *** [/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o] Error 1
251.10 -
251.11 -which was using h.j.lu's binutils-2.13.90.0.18.
251.12 -
251.13 -
251.14 -But see http://lists.debian.org/debian-mips/2003/debian-mips-200305/msg00011.html
251.15 -which says
251.16 -"A newer version of binutils (CVS post 2003-03-12) fixes it without
251.17 -the need of changing perfectly legal code."
251.18 -So presumably this can be ditched sooner or later.
251.19 -
251.20 -From http://honk.physik.uni-konstanz.de/~agx/linux-mips/glibc/patches/applied/clone-local-label.diff
251.21 -
251.22 -2003-03-13 Guido Guenther <agx@sigxcpu.org>
251.23 -
251.24 - * sysdeps/unix/sysv/linux/mips/clone.S: introduce and use local label
251.25 - .Lthread_start since current binutils don't allow branches to globally
251.26 - visible symbols.
251.27 -
251.28 -===================================================================
251.29 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/clone.S,v
251.30 -retrieving revision 1.10
251.31 -diff -u -r1.10 clone.S
251.32 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 12 Mar 2003 01:04:51 -0000 1.10
251.33 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 12 Mar 2003 19:04:39 -0000
251.34 -@@ -63,7 +63,7 @@
251.35 - syscall
251.36 -
251.37 - bnez a3,error
251.38 -- beqz v0,__thread_start
251.39 -+ beqz v0,.Lthread_start
251.40 -
251.41 - /* Successful return from the parent */
251.42 - addiu sp,32
251.43 -@@ -85,6 +85,7 @@
251.44 - debug info. */
251.45 -
251.46 - ENTRY(__thread_start)
251.47 -+.Lthread_start:
251.48 - /* cp is already loaded. */
251.49 - .cprestore 16
251.50 - /* The stackframe has been created on entry of clone(). */
252.1 --- a/patches/glibc/2.2.3/glibc-manual-stdin.texi-1.127.patch Tue Aug 14 19:32:22 2007 +0000
252.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
252.3 @@ -1,25 +0,0 @@
252.4 -Fixes error
252.5 -./stdio.texi:3269: First argument to cross-reference may not be empty.
252.6 -./stdio.texi:3270: First argument to cross-reference may not be empty.
252.7 -makeinfo: Removing output file `/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/glibc-2.2.3/manual/libc.info' due to errors; use --force to preserve.
252.8 -make[2]: *** [libc.info] Error 2
252.9 -make[2]: Leaving directory `/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/glibc-2.2.3/manual'
252.10 -
252.11 -===================================================================
252.12 -RCS file: /cvs/glibc/libc/manual/stdio.texi,v
252.13 -retrieving revision 1.126
252.14 -retrieving revision 1.127
252.15 -diff -u -r1.126 -r1.127
252.16 ---- libc/manual/stdio.texi 2001/06/06 07:11:31 1.126
252.17 -+++ libc/manual/stdio.texi 2001/07/31 18:57:16 1.127
252.18 -@@ -3265,8 +3265,8 @@
252.19 - If you are trying to read input that doesn't match a single, fixed
252.20 - pattern, you may be better off using a tool such as Flex to generate a
252.21 - lexical scanner, or Bison to generate a parser, rather than using
252.22 --@code{scanf}. For more information about these tools, see @ref{, , ,
252.23 --flex.info, Flex: The Lexical Scanner Generator}, and @ref{, , ,
252.24 -+@code{scanf}. For more information about these tools, see @ref{Top, , ,
252.25 -+flex.info, Flex: The Lexical Scanner Generator}, and @ref{Top, , ,
252.26 - bison.info, The Bison Reference Manual}.
252.27 -
252.28 - @node Input Conversion Syntax
253.1 --- a/patches/glibc/2.2.5/alpha-build-failure.patch Tue Aug 14 19:32:22 2007 +0000
253.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
253.3 @@ -1,37 +0,0 @@
253.4 -See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=156841
253.5 -
253.6 -Here's the error I got before I applied the patch:
253.7 -
253.8 -/home3/dank/crosstool-0.5/result/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/alpha-unknown-linux-gnu/3.2.3/../../../../alpha-unknown-linux-gnu/bin/ld: /home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc_pic.os: pc-relative relocation against dynamic symbol __divlu
253.9 -/home3/dank/crosstool-0.5/result/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/alpha-unknown-linux-gnu/3.2.3/../../../../alpha-unknown-linux-gnu/bin/ld: /home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc_pic.os: pc-relative relocation against dynamic symbol __divqu
253.10 -/home3/dank/crosstool-0.5/result/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/alpha-unknown-linux-gnu/3.2.3/../../../../alpha-unknown-linux-gnu/bin/ld: /home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc_pic.os: pc-relative relocation against dynamic symbol __remlu
253.11 -/home3/dank/crosstool-0.5/result/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/alpha-unknown-linux-gnu/3.2.3/../../../../alpha-unknown-linux-gnu/bin/ld: /home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc_pic.os: pc-relative relocation against dynamic symbol __remqu
253.12 -collect2: ld returned 1 exit status
253.13 -make[1]: *** [/home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc.so] Error 1
253.14 -
253.15 -
253.16 ---- glibc-2.2.5/sysdeps/alpha/divrem.h 6 Jul 2001 04:55:45 -0000 1.8
253.17 -+++ glibc-2.2.5/sysdeps/alpha/divrem.h 15 Jun 2002 20:53:37 -0000 1.9
253.18 -@@ -1,4 +1,4 @@
253.19 --/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
253.20 -+/* Copyright (C) 1996,97,2002 Free Software Foundation, Inc.
253.21 - Contributed by David Mosberger (davidm@cs.arizona.edu).
253.22 - This file is part of the GNU C Library.
253.23 -
253.24 -@@ -86,6 +86,7 @@
253.25 -
253.26 - .align 3
253.27 - UFUNC_NAME:
253.28 -+$udiv_entry:
253.29 - lda sp, -STACK(sp)
253.30 - .frame sp, STACK, retaddr, 0
253.31 - #ifdef PROF
253.32 -@@ -206,7 +207,7 @@
253.33 - cmovge AT, AT, arg2
253.34 -
253.35 - /* Do the unsigned division. */
253.36 -- bsr retaddr, UFUNC_NAME
253.37 -+ bsr retaddr, $udiv_entry
253.38 -
253.39 - /* Restore originals and adjust the sign of the result. */
253.40 - ldq arg1, 0(sp)
254.1 --- a/patches/glibc/2.2.5/arm-asm-clobber.patch Tue Aug 14 19:32:22 2007 +0000
254.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
254.3 @@ -1,23 +0,0 @@
254.4 -http://gcc.gnu.org/PR11103
254.5 -
254.6 -Error:
254.7 -../sysdeps/unix/sysv/linux/arm/sigaction.c: In function `__libc_sigaction':
254.8 -../sysdeps/unix/sysv/linux/arm/sigaction.c:100: error: asm-specifier for variable `_a1' conflicts with asm clobber list
254.9 -../sysdeps/unix/sysv/linux/arm/sigaction.c:139: error: asm-specifier for variable `_a1' conflicts with asm clobber list
254.10 -make[2]: *** [/crosstool-0.22/build/arm-unknown-linux-gnu/gcc-3.3-glibc-2.2.5/build-glibc/signal/sigaction.o] Error 1
254.11 -
254.12 -Fix from http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-July/005826.html
254.13 -rediffed against glibc-2.2.5
254.14 -Not tested. (I don't even understand it, just being a patch monkey...)
254.15 -
254.16 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h.old Wed Aug 27 09:58:15 2003
254.17 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h Wed Aug 27 09:59:04 2003
254.18 -@@ -131,7 +131,7 @@
254.19 - asm volatile ("swi %1 @ syscall " #name \
254.20 - : "=r" (_a1) \
254.21 - : "i" (SYS_ify(name)) ASM_ARGS_##nr \
254.22 -- : "a1", "memory"); \
254.23 -+ : "memory"); \
254.24 - _sys_result = _a1; \
254.25 - } \
254.26 - if (_sys_result >= (unsigned int) -4095) \
255.1 --- a/patches/glibc/2.2.5/arm-ctl_bus_isa.patch Tue Aug 14 19:32:22 2007 +0000
255.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
255.3 @@ -1,51 +0,0 @@
255.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
255.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
255.6 -Fixes following error:
255.7 -
255.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
255.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
255.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
255.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
255.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
255.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
255.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
255.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
255.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
255.17 -
255.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
255.19 -
255.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
255.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
255.22 -@@ -47,6 +47,12 @@
255.23 - #include <asm/page.h>
255.24 - #include <sys/sysctl.h>
255.25 -
255.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
255.27 -+#include <linux/version.h>
255.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
255.29 -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
255.30 -+#endif
255.31 -+
255.32 - #define PATH_ARM_SYSTYPE "/etc/arm_systype"
255.33 - #define PATH_CPUINFO "/proc/cpuinfo"
255.34 -
255.35 -@@ -80,7 +86,7 @@
255.36 - * Initialize I/O system. There are several ways to get the information
255.37 - * we need. Each is tried in turn until one succeeds.
255.38 - *
255.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
255.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
255.41 - * but not all kernels support it.
255.42 - *
255.43 - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
255.44 -@@ -100,8 +106,8 @@
255.45 - {
255.46 - char systype[256];
255.47 - int i, n;
255.48 -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
255.49 -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
255.50 -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
255.51 -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
255.52 - size_t len = sizeof(io.base);
255.53 -
255.54 - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
256.1 --- a/patches/glibc/2.2.5/cris-libc-symbols.patch Tue Aug 14 19:32:22 2007 +0000
256.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
256.3 @@ -1,97 +0,0 @@
256.4 -From http://sources.redhat.com/ml/libc-alpha/2002-06/msg00006.html
256.5 -
256.6 -Message-ID: <15612.44195.299251.921969@honolulu.ilog.fr>
256.7 -Date: Tue, 4 Jun 2002 14:03:47 +0200 (CEST)
256.8 -From: Bruno Haible <bruno at clisp dot org>
256.9 -To: libc-alpha at sources dot redhat dot com
256.10 -Subject: link_warning fix
256.11 -
256.12 -
256.13 -Hi,
256.14 -
256.15 -While cross-compiling glibc-2.2.5 for target=cris-linux using gcc-3.1 and
256.16 -binutils-2.12.90.0.7, I get an error
256.17 -
256.18 -cris-linux-gcc ../sysdeps/unix/sysv/linux/sigstack.c -c -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -g -I../include -I. -I/backup/cross-build/build-glibc-cris/signal -I.. -I../libio -I/backup/cross-build/build-glibc-cris -I../sysdeps/cris/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/cris -I../sysdeps/unix/sysv/linux/cris -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/cris -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /cross/cris-linux-tools/lib/gcc-lib/cris-linux/3.1/include -isystem /cross/cris-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -o /backup/cross-build/build-glibc-cris/signal/sigstack.o
256.19 -/tmp/cca7qZyI.s: Assembler messages:
256.20 -/tmp/cca7qZyI.s:87: Warning: rest of line ignored; first ignored character is `,'
256.21 -/tmp/cca7qZyI.s:87: Error: Unknown opcode: `progbits'
256.22 -make[2]: *** [/backup/cross-build/build-glibc-cris/signal/sigstack.o] Fehler 1
256.23 -
256.24 -
256.25 -The reason is that the .s file contains the following.
256.26 -
256.27 -...
256.28 - .size sigstack,.Lfe1-sigstack
256.29 -#APP
256.30 - .section .gnu.warning.sigstack
256.31 - .previous
256.32 -#NO_APP
256.33 - .section .gnu.warning.sigstack
256.34 - #,"a",@progbits
256.35 - .align 2
256.36 - .type __evoke_link_warning_sigstack,@object
256.37 -...
256.38 -
256.39 -and comments (introduced by '#') are recognized by the assembler only after
256.40 -#APP, not after #NO_APP. The workaround is to add '#APP' to the fake section
256.41 -name. The following patch works for me.
256.42 -
256.43 -2002-06-02 Bruno Haible <bruno@clisp.org>
256.44 -
256.45 - * include/libc-symbols.h (__as_app_line): New macro.
256.46 - (link_warning): Emit #APP line to turn comment recognition on.
256.47 -
256.48 -*** glibc-2.2.5/include/libc-symbols.h.bak 2001-08-04 01:02:52.000000000 +0200
256.49 ---- glibc-2.2.5/include/libc-symbols.h 2002-06-02 16:22:15.000000000 +0200
256.50 -***************
256.51 -*** 207,224 ****
256.52 - # define __make_section_unallocated(section_string)
256.53 - # endif
256.54 -
256.55 -! /* Tacking on "\n\t#" to the section name makes gcc put it's bogus
256.56 -! section attributes on what looks like a comment to the assembler. */
256.57 - # ifdef HAVE_SECTION_QUOTES
256.58 - # define link_warning(symbol, msg) \
256.59 - __make_section_unallocated (".gnu.warning." #symbol) \
256.60 -! static const char __evoke_link_warning_##symbol[] \
256.61 -! __attribute__ ((section (".gnu.warning." #symbol "\"\n\t#\""))) = msg;
256.62 - # else
256.63 - # define link_warning(symbol, msg) \
256.64 - __make_section_unallocated (".gnu.warning." #symbol) \
256.65 -! static const char __evoke_link_warning_##symbol[] \
256.66 -! __attribute__ ((section (".gnu.warning." #symbol "\n\t#"))) = msg;
256.67 - # endif
256.68 - # else /* Not ELF: a.out */
256.69 - # ifdef HAVE_XCOFF
256.70 ---- 207,235 ----
256.71 - # define __make_section_unallocated(section_string)
256.72 - # endif
256.73 -
256.74 -! /* Tacking on "\n\t#" to the section name makes gcc put its bogus
256.75 -! section attributes on what looks like a comment to the assembler.
256.76 -! Furthermore, with gas, we need to add a "#APP" line so the comment
256.77 -! is recognized as such. */
256.78 -! # ifdef HAVE_GNU_AS
256.79 -! # define __as_app_line "#APP\n"
256.80 -! # else
256.81 -! # define __as_app_line ""
256.82 -! # endif
256.83 - # ifdef HAVE_SECTION_QUOTES
256.84 - # define link_warning(symbol, msg) \
256.85 - __make_section_unallocated (".gnu.warning." #symbol) \
256.86 -! static const char __evoke_link_warning_##symbol[] \
256.87 -! __attribute__ \
256.88 -! ((section (".gnu.warning." #symbol "\"\n" __as_app_line "\t#\""))) \
256.89 -! = msg;
256.90 - # else
256.91 - # define link_warning(symbol, msg) \
256.92 - __make_section_unallocated (".gnu.warning." #symbol) \
256.93 -! static const char __evoke_link_warning_##symbol[] \
256.94 -! __attribute__ \
256.95 -! ((section (".gnu.warning." #symbol "\n" __as_app_line "\t#"))) \
256.96 -! = msg;
256.97 - # endif
256.98 - # else /* Not ELF: a.out */
256.99 - # ifdef HAVE_XCOFF
256.100 -
257.1 --- a/patches/glibc/2.2.5/cris-stack-direction.patch Tue Aug 14 19:32:22 2007 +0000
257.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
257.3 @@ -1,61 +0,0 @@
257.4 -From http://sources.redhat.com/ml/libc-alpha/2002-06/msg00007.html
257.5 -
257.6 -Message-ID: <15612.44228.774370.154718@honolulu.ilog.fr>
257.7 -Date: Tue, 4 Jun 2002 14:04:20 +0200 (CEST)
257.8 -From: Bruno Haible <bruno at clisp dot org>
257.9 -To: libc-alpha at sources dot redhat dot com
257.10 -Subject: cris stack direction
257.11 -
257.12 -
257.13 -Hi,
257.14 -
257.15 -While cross-compiling glibc-2.2.5 for target=cris-linux using gcc-3.1 and
257.16 -binutils-2.12.90.0.7, I get an error
257.17 -
257.18 -cris-linux-gcc cancel.c -c -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -g -D__NO_WEAK_PTHREAD_ALIASES -D_RPC_THREAD_SAFE_ -I../include -I. -I/backup/cross-build/build-glibc-cris/linuxthreads -I.. -I../libio -I/backup/cross-build/build-glibc-cris -I../sysdeps/cris/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/cris -I../sysdeps/unix/sysv/linux/cris -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/cris -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /cross/cris-linux-tools/lib/gcc-lib/cris-linux/3.1/include -isystem /cross/cris-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -o /backup/cross-build/build-glibc-cris/linuxthreads/cancel.o
257.19 -cancel.c:29:3: #error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
257.20 -cancel.c: In function `_pthread_cleanup_push':
257.21 -cancel.c:134: warning: implicit declaration of function `FRAME_LEFT'
257.22 -make[2]: *** [/backup/cross-build/build-glibc-cris/linuxthreads/cancel.o] Fehler 1
257.23 -
257.24 -The fix is to add a file sysdeps/cris/stackinfo.h.
257.25 -
257.26 -
257.27 -2002-06-02 Bruno Haible <bruno@clisp.org>
257.28 -
257.29 - * sysdeps/cris/stackinfo.h: New file.
257.30 -
257.31 -*** glibc-2.2.5/sysdeps/cris/stackinfo.h.bak 2002-06-02 17:52:05.000000000 +0200
257.32 ---- glibc-2.2.5/sysdeps/cris/stackinfo.h 2002-06-02 17:52:24.000000000 +0200
257.33 -***************
257.34 -*** 0 ****
257.35 ---- 1,28 ----
257.36 -+ /* Copyright (C) 2002 Free Software Foundation, Inc.
257.37 -+ This file is part of the GNU C Library.
257.38 -+
257.39 -+ The GNU C Library is free software; you can redistribute it and/or
257.40 -+ modify it under the terms of the GNU Lesser General Public
257.41 -+ License as published by the Free Software Foundation; either
257.42 -+ version 2.1 of the License, or (at your option) any later version.
257.43 -+
257.44 -+ The GNU C Library is distributed in the hope that it will be useful,
257.45 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
257.46 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
257.47 -+ Lesser General Public License for more details.
257.48 -+
257.49 -+ You should have received a copy of the GNU Lesser General Public
257.50 -+ License along with the GNU C Library; if not, write to the Free
257.51 -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
257.52 -+ 02111-1307 USA. */
257.53 -+
257.54 -+ /* This file contains a bit of information about the stack allocation
257.55 -+ of the processor. */
257.56 -+
257.57 -+ #ifndef _STACKINFO_H
257.58 -+ #define _STACKINFO_H 1
257.59 -+
257.60 -+ /* On cris the stack grows down. */
257.61 -+ #define _STACK_GROWS_DOWN 1
257.62 -+
257.63 -+ #endif /* stackinfo.h */
257.64 -
258.1 --- a/patches/glibc/2.2.5/dl-machine-alpha.patch Tue Aug 14 19:32:22 2007 +0000
258.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
258.3 @@ -1,424 +0,0 @@
258.4 -From http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/alpha/dl-machine.h.diff?r1=1.56&r2=1.57&cvsroot=glibc
258.5 -(minus first hunk)
258.6 -Lets glibc-2.2.5 compile with gcc-3.3
258.7 -
258.8 -===================================================================
258.9 -RCS file: /cvs/glibc/libc/sysdeps/alpha/dl-machine.h,v
258.10 -retrieving revision 1.56
258.11 -retrieving revision 1.57
258.12 -diff -u -r1.56 -r1.57
258.13 ---- libc/sysdeps/alpha/dl-machine.h 2001/12/12 00:10:27 1.56
258.14 -+++ libc/sysdeps/alpha/dl-machine.h 2001/12/31 17:33:59 1.57
258.15 -@@ -156,125 +157,126 @@
258.16 - #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name, IMB) \
258.17 - extern void tramp_name (void); \
258.18 - asm ( "\
258.19 -- .globl " #tramp_name "
258.20 -- .ent " #tramp_name "
258.21 --" #tramp_name ":
258.22 -- lda $sp, -44*8($sp)
258.23 -- .frame $sp, 44*8, $26
258.24 -- /* Preserve all integer registers that C normally doesn't. */
258.25 -- stq $26, 0*8($sp)
258.26 -- stq $0, 1*8($sp)
258.27 -- stq $1, 2*8($sp)
258.28 -- stq $2, 3*8($sp)
258.29 -- stq $3, 4*8($sp)
258.30 -- stq $4, 5*8($sp)
258.31 -- stq $5, 6*8($sp)
258.32 -- stq $6, 7*8($sp)
258.33 -- stq $7, 8*8($sp)
258.34 -- stq $8, 9*8($sp)
258.35 -- stq $16, 10*8($sp)
258.36 -- stq $17, 11*8($sp)
258.37 -- stq $18, 12*8($sp)
258.38 -- stq $19, 13*8($sp)
258.39 -- stq $20, 14*8($sp)
258.40 -- stq $21, 15*8($sp)
258.41 -- stq $22, 16*8($sp)
258.42 -- stq $23, 17*8($sp)
258.43 -- stq $24, 18*8($sp)
258.44 -- stq $25, 19*8($sp)
258.45 -- stq $29, 20*8($sp)
258.46 -- stt $f0, 21*8($sp)
258.47 -- stt $f1, 22*8($sp)
258.48 -- stt $f10, 23*8($sp)
258.49 -- stt $f11, 24*8($sp)
258.50 -- stt $f12, 25*8($sp)
258.51 -- stt $f13, 26*8($sp)
258.52 -- stt $f14, 27*8($sp)
258.53 -- stt $f15, 28*8($sp)
258.54 -- stt $f16, 29*8($sp)
258.55 -- stt $f17, 30*8($sp)
258.56 -- stt $f18, 31*8($sp)
258.57 -- stt $f19, 32*8($sp)
258.58 -- stt $f20, 33*8($sp)
258.59 -- stt $f21, 34*8($sp)
258.60 -- stt $f22, 35*8($sp)
258.61 -- stt $f23, 36*8($sp)
258.62 -- stt $f24, 37*8($sp)
258.63 -- stt $f25, 38*8($sp)
258.64 -- stt $f26, 39*8($sp)
258.65 -- stt $f27, 40*8($sp)
258.66 -- stt $f28, 41*8($sp)
258.67 -- stt $f29, 42*8($sp)
258.68 -- stt $f30, 43*8($sp)
258.69 -- .mask 0x27ff01ff, -44*8
258.70 -- .fmask 0xfffffc03, -(44-21)*8
258.71 -- /* Set up our $gp */
258.72 -- br $gp, .+4
258.73 -- ldgp $gp, 0($gp)
258.74 -- .prologue 0
258.75 -- /* Set up the arguments for fixup: */
258.76 -- /* $16 = link_map out of plt0 */
258.77 -- /* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */
258.78 -- /* $18 = return address */
258.79 -- subq $28, $27, $17
258.80 -- ldq $16, 8($27)
258.81 -- subq $17, 20, $17
258.82 -- mov $26, $18
258.83 -- addq $17, $17, $17
258.84 -- /* Do the fixup */
258.85 -- bsr $26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng
258.86 -- /* Move the destination address into position. */
258.87 -- mov $0, $27
258.88 -- /* Restore program registers. */
258.89 -- ldq $26, 0*8($sp)
258.90 -- ldq $0, 1*8($sp)
258.91 -- ldq $1, 2*8($sp)
258.92 -- ldq $2, 3*8($sp)
258.93 -- ldq $3, 4*8($sp)
258.94 -- ldq $4, 5*8($sp)
258.95 -- ldq $5, 6*8($sp)
258.96 -- ldq $6, 7*8($sp)
258.97 -- ldq $7, 8*8($sp)
258.98 -- ldq $8, 9*8($sp)
258.99 -- ldq $16, 10*8($sp)
258.100 -- ldq $17, 11*8($sp)
258.101 -- ldq $18, 12*8($sp)
258.102 -- ldq $19, 13*8($sp)
258.103 -- ldq $20, 14*8($sp)
258.104 -- ldq $21, 15*8($sp)
258.105 -- ldq $22, 16*8($sp)
258.106 -- ldq $23, 17*8($sp)
258.107 -- ldq $24, 18*8($sp)
258.108 -- ldq $25, 19*8($sp)
258.109 -- ldq $29, 20*8($sp)
258.110 -- ldt $f0, 21*8($sp)
258.111 -- ldt $f1, 22*8($sp)
258.112 -- ldt $f10, 23*8($sp)
258.113 -- ldt $f11, 24*8($sp)
258.114 -- ldt $f12, 25*8($sp)
258.115 -- ldt $f13, 26*8($sp)
258.116 -- ldt $f14, 27*8($sp)
258.117 -- ldt $f15, 28*8($sp)
258.118 -- ldt $f16, 29*8($sp)
258.119 -- ldt $f17, 30*8($sp)
258.120 -- ldt $f18, 31*8($sp)
258.121 -- ldt $f19, 32*8($sp)
258.122 -- ldt $f20, 33*8($sp)
258.123 -- ldt $f21, 34*8($sp)
258.124 -- ldt $f22, 35*8($sp)
258.125 -- ldt $f23, 36*8($sp)
258.126 -- ldt $f24, 37*8($sp)
258.127 -- ldt $f25, 38*8($sp)
258.128 -- ldt $f26, 39*8($sp)
258.129 -- ldt $f27, 40*8($sp)
258.130 -- ldt $f28, 41*8($sp)
258.131 -- ldt $f29, 42*8($sp)
258.132 -- ldt $f30, 43*8($sp)
258.133 -- /* Flush the Icache after having modified the .plt code. */
258.134 -- " #IMB "
258.135 -- /* Clean up and turn control to the destination */
258.136 -- lda $sp, 44*8($sp)
258.137 -- jmp $31, ($27)
258.138 -+ .globl " #tramp_name " \n\
258.139 -+ .ent " #tramp_name " \n\
258.140 -+" #tramp_name ": \n\
258.141 -+ lda $sp, -44*8($sp) \n\
258.142 -+ .frame $sp, 44*8, $26 \n\
258.143 -+ /* Preserve all integer registers that C normally \n\
258.144 -+ doesn't. */ \n\
258.145 -+ stq $26, 0*8($sp) \n\
258.146 -+ stq $0, 1*8($sp) \n\
258.147 -+ stq $1, 2*8($sp) \n\
258.148 -+ stq $2, 3*8($sp) \n\
258.149 -+ stq $3, 4*8($sp) \n\
258.150 -+ stq $4, 5*8($sp) \n\
258.151 -+ stq $5, 6*8($sp) \n\
258.152 -+ stq $6, 7*8($sp) \n\
258.153 -+ stq $7, 8*8($sp) \n\
258.154 -+ stq $8, 9*8($sp) \n\
258.155 -+ stq $16, 10*8($sp) \n\
258.156 -+ stq $17, 11*8($sp) \n\
258.157 -+ stq $18, 12*8($sp) \n\
258.158 -+ stq $19, 13*8($sp) \n\
258.159 -+ stq $20, 14*8($sp) \n\
258.160 -+ stq $21, 15*8($sp) \n\
258.161 -+ stq $22, 16*8($sp) \n\
258.162 -+ stq $23, 17*8($sp) \n\
258.163 -+ stq $24, 18*8($sp) \n\
258.164 -+ stq $25, 19*8($sp) \n\
258.165 -+ stq $29, 20*8($sp) \n\
258.166 -+ stt $f0, 21*8($sp) \n\
258.167 -+ stt $f1, 22*8($sp) \n\
258.168 -+ stt $f10, 23*8($sp) \n\
258.169 -+ stt $f11, 24*8($sp) \n\
258.170 -+ stt $f12, 25*8($sp) \n\
258.171 -+ stt $f13, 26*8($sp) \n\
258.172 -+ stt $f14, 27*8($sp) \n\
258.173 -+ stt $f15, 28*8($sp) \n\
258.174 -+ stt $f16, 29*8($sp) \n\
258.175 -+ stt $f17, 30*8($sp) \n\
258.176 -+ stt $f18, 31*8($sp) \n\
258.177 -+ stt $f19, 32*8($sp) \n\
258.178 -+ stt $f20, 33*8($sp) \n\
258.179 -+ stt $f21, 34*8($sp) \n\
258.180 -+ stt $f22, 35*8($sp) \n\
258.181 -+ stt $f23, 36*8($sp) \n\
258.182 -+ stt $f24, 37*8($sp) \n\
258.183 -+ stt $f25, 38*8($sp) \n\
258.184 -+ stt $f26, 39*8($sp) \n\
258.185 -+ stt $f27, 40*8($sp) \n\
258.186 -+ stt $f28, 41*8($sp) \n\
258.187 -+ stt $f29, 42*8($sp) \n\
258.188 -+ stt $f30, 43*8($sp) \n\
258.189 -+ .mask 0x27ff01ff, -44*8 \n\
258.190 -+ .fmask 0xfffffc03, -(44-21)*8 \n\
258.191 -+ /* Set up our $gp */ \n\
258.192 -+ br $gp, .+4 \n\
258.193 -+ ldgp $gp, 0($gp) \n\
258.194 -+ .prologue 0 \n\
258.195 -+ /* Set up the arguments for fixup: */ \n\
258.196 -+ /* $16 = link_map out of plt0 */ \n\
258.197 -+ /* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */\n\
258.198 -+ /* $18 = return address */ \n\
258.199 -+ subq $28, $27, $17 \n\
258.200 -+ ldq $16, 8($27) \n\
258.201 -+ subq $17, 20, $17 \n\
258.202 -+ mov $26, $18 \n\
258.203 -+ addq $17, $17, $17 \n\
258.204 -+ /* Do the fixup */ \n\
258.205 -+ bsr $26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng\n\
258.206 -+ /* Move the destination address into position. */ \n\
258.207 -+ mov $0, $27 \n\
258.208 -+ /* Restore program registers. */ \n\
258.209 -+ ldq $26, 0*8($sp) \n\
258.210 -+ ldq $0, 1*8($sp) \n\
258.211 -+ ldq $1, 2*8($sp) \n\
258.212 -+ ldq $2, 3*8($sp) \n\
258.213 -+ ldq $3, 4*8($sp) \n\
258.214 -+ ldq $4, 5*8($sp) \n\
258.215 -+ ldq $5, 6*8($sp) \n\
258.216 -+ ldq $6, 7*8($sp) \n\
258.217 -+ ldq $7, 8*8($sp) \n\
258.218 -+ ldq $8, 9*8($sp) \n\
258.219 -+ ldq $16, 10*8($sp) \n\
258.220 -+ ldq $17, 11*8($sp) \n\
258.221 -+ ldq $18, 12*8($sp) \n\
258.222 -+ ldq $19, 13*8($sp) \n\
258.223 -+ ldq $20, 14*8($sp) \n\
258.224 -+ ldq $21, 15*8($sp) \n\
258.225 -+ ldq $22, 16*8($sp) \n\
258.226 -+ ldq $23, 17*8($sp) \n\
258.227 -+ ldq $24, 18*8($sp) \n\
258.228 -+ ldq $25, 19*8($sp) \n\
258.229 -+ ldq $29, 20*8($sp) \n\
258.230 -+ ldt $f0, 21*8($sp) \n\
258.231 -+ ldt $f1, 22*8($sp) \n\
258.232 -+ ldt $f10, 23*8($sp) \n\
258.233 -+ ldt $f11, 24*8($sp) \n\
258.234 -+ ldt $f12, 25*8($sp) \n\
258.235 -+ ldt $f13, 26*8($sp) \n\
258.236 -+ ldt $f14, 27*8($sp) \n\
258.237 -+ ldt $f15, 28*8($sp) \n\
258.238 -+ ldt $f16, 29*8($sp) \n\
258.239 -+ ldt $f17, 30*8($sp) \n\
258.240 -+ ldt $f18, 31*8($sp) \n\
258.241 -+ ldt $f19, 32*8($sp) \n\
258.242 -+ ldt $f20, 33*8($sp) \n\
258.243 -+ ldt $f21, 34*8($sp) \n\
258.244 -+ ldt $f22, 35*8($sp) \n\
258.245 -+ ldt $f23, 36*8($sp) \n\
258.246 -+ ldt $f24, 37*8($sp) \n\
258.247 -+ ldt $f25, 38*8($sp) \n\
258.248 -+ ldt $f26, 39*8($sp) \n\
258.249 -+ ldt $f27, 40*8($sp) \n\
258.250 -+ ldt $f28, 41*8($sp) \n\
258.251 -+ ldt $f29, 42*8($sp) \n\
258.252 -+ ldt $f30, 43*8($sp) \n\
258.253 -+ /* Flush the Icache after having modified the .plt code. */\n\
258.254 -+ " #IMB " \n\
258.255 -+ /* Clean up and turn control to the destination */ \n\
258.256 -+ lda $sp, 44*8($sp) \n\
258.257 -+ jmp $31, ($27) \n\
258.258 - .end " #tramp_name)
258.259 -
258.260 - #ifndef PROF
258.261 -@@ -292,85 +294,87 @@
258.262 - its return value is the user program's entry point. */
258.263 -
258.264 - #define RTLD_START asm ("\
258.265 --.text
258.266 -- .set at
258.267 -- .globl _start
258.268 -- .ent _start
258.269 --_start:
258.270 -- br $gp, 0f
258.271 --0: ldgp $gp, 0($gp)
258.272 -- .prologue 0
258.273 -- /* Pass pointer to argument block to _dl_start. */
258.274 -- mov $sp, $16
258.275 -- bsr $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng
258.276 -- .end _start
258.277 -- /* FALLTHRU */
258.278 -- .globl _dl_start_user
258.279 -- .ent _dl_start_user
258.280 --_dl_start_user:
258.281 -- .frame $30,0,$31,0
258.282 -- .prologue 0
258.283 -- /* Save the user entry point address in s0. */
258.284 -- mov $0, $9
258.285 -- /* Store the highest stack address. */
258.286 -- stq $30, __libc_stack_end
258.287 -- /* See if we were run as a command with the executable file
258.288 -- name as an extra leading argument. */
258.289 -- ldl $1, _dl_skip_args
258.290 -- bne $1, $fixup_stack
258.291 --$fixup_stack_ret:
258.292 -- /* The special initializer gets called with the stack just
258.293 -- as the application's entry point will see it; it can
258.294 -- switch stacks if it moves these contents over. */
258.295 --" RTLD_START_SPECIAL_INIT "
258.296 -- /* Call _dl_init(_dl_loaded, argc, argv, envp) to run initializers. */
258.297 -- ldq $16, _dl_loaded
258.298 -- ldq $17, 0($sp)
258.299 -- lda $18, 8($sp)
258.300 -- s8addq $17, 8, $19
258.301 -- addq $19, $18, $19
258.302 -- jsr $26, _dl_init
258.303 -- /* Pass our finalizer function to the user in $0. */
258.304 -- lda $0, _dl_fini
258.305 -- /* Jump to the user's entry point. */
258.306 -- mov $9, $27
258.307 -- jmp ($9)
258.308 --$fixup_stack:
258.309 -- /* Adjust the stack pointer to skip _dl_skip_args words. This
258.310 -- involves copying everything down, since the stack pointer must
258.311 -- always be 16-byte aligned. */
258.312 -- ldq $2, 0($sp)
258.313 -- ldq $5, _dl_argv
258.314 -- subq $31, $1, $6
258.315 -- subq $2, $1, $2
258.316 -- s8addq $6, $5, $5
258.317 -- mov $sp, $4
258.318 -- s8addq $1, $sp, $3
258.319 -- stq $2, 0($sp)
258.320 -- stq $5, _dl_argv
258.321 -- /* Copy down argv. */
258.322 --0: ldq $5, 8($3)
258.323 -- addq $4, 8, $4
258.324 -- addq $3, 8, $3
258.325 -- stq $5, 0($4)
258.326 -- bne $5, 0b
258.327 -- /* Copy down envp. */
258.328 --1: ldq $5, 8($3)
258.329 -- addq $4, 8, $4
258.330 -- addq $3, 8, $3
258.331 -- stq $5, 0($4)
258.332 -- bne $5, 1b
258.333 -- /* Copy down auxiliary table. */
258.334 --2: ldq $5, 8($3)
258.335 -- ldq $6, 16($3)
258.336 -- addq $4, 16, $4
258.337 -- addq $3, 16, $3
258.338 -- stq $5, -8($4)
258.339 -- stq $6, 0($4)
258.340 -- bne $5, 2b
258.341 -- br $fixup_stack_ret
258.342 -- .end _dl_start_user
258.343 -- .set noat
258.344 -+.text \n\
258.345 -+ .set at \n\
258.346 -+ .globl _start \n\
258.347 -+ .ent _start \n\
258.348 -+_start: \n\
258.349 -+ br $gp, 0f \n\
258.350 -+0: ldgp $gp, 0($gp) \n\
258.351 -+ .prologue 0 \n\
258.352 -+ /* Pass pointer to argument block to _dl_start. */ \n\
258.353 -+ mov $sp, $16 \n\
258.354 -+ bsr $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng \n\
258.355 -+ .end _start \n\
258.356 -+ /* FALLTHRU */ \n\
258.357 -+ .globl _dl_start_user \n\
258.358 -+ .ent _dl_start_user \n\
258.359 -+_dl_start_user: \n\
258.360 -+ .frame $30,0,$31,0 \n\
258.361 -+ .prologue 0 \n\
258.362 -+ /* Save the user entry point address in s0. */ \n\
258.363 -+ mov $0, $9 \n\
258.364 -+ /* Store the highest stack address. */ \n\
258.365 -+ stq $30, __libc_stack_end \n\
258.366 -+ /* See if we were run as a command with the executable \n\
258.367 -+ file name as an extra leading argument. */ \n\
258.368 -+ ldl $1, _dl_skip_args \n\
258.369 -+ bne $1, $fixup_stack \n\
258.370 -+$fixup_stack_ret: \n\
258.371 -+ /* The special initializer gets called with the stack \n\
258.372 -+ just as the application's entry point will see it; \n\
258.373 -+ it can switch stacks if it moves these contents \n\
258.374 -+ over. */ \n\
258.375 -+" RTLD_START_SPECIAL_INIT " \n\
258.376 -+ /* Call _dl_init(_dl_loaded, argc, argv, envp) to run \n\
258.377 -+ initializers. */ \n\
258.378 -+ ldq $16, _dl_loaded \n\
258.379 -+ ldq $17, 0($sp) \n\
258.380 -+ lda $18, 8($sp) \n\
258.381 -+ s8addq $17, 8, $19 \n\
258.382 -+ addq $19, $18, $19 \n\
258.383 -+ jsr $26, _dl_init \n\
258.384 -+ /* Pass our finalizer function to the user in $0. */ \n\
258.385 -+ lda $0, _dl_fini \n\
258.386 -+ /* Jump to the user's entry point. */ \n\
258.387 -+ mov $9, $27 \n\
258.388 -+ jmp ($9) \n\
258.389 -+$fixup_stack: \n\
258.390 -+ /* Adjust the stack pointer to skip _dl_skip_args words.\n\
258.391 -+ This involves copying everything down, since the \n\
258.392 -+ stack pointer must always be 16-byte aligned. */ \n\
258.393 -+ ldq $2, 0($sp) \n\
258.394 -+ ldq $5, _dl_argv \n\
258.395 -+ subq $31, $1, $6 \n\
258.396 -+ subq $2, $1, $2 \n\
258.397 -+ s8addq $6, $5, $5 \n\
258.398 -+ mov $sp, $4 \n\
258.399 -+ s8addq $1, $sp, $3 \n\
258.400 -+ stq $2, 0($sp) \n\
258.401 -+ stq $5, _dl_argv \n\
258.402 -+ /* Copy down argv. */ \n\
258.403 -+0: ldq $5, 8($3) \n\
258.404 -+ addq $4, 8, $4 \n\
258.405 -+ addq $3, 8, $3 \n\
258.406 -+ stq $5, 0($4) \n\
258.407 -+ bne $5, 0b \n\
258.408 -+ /* Copy down envp. */ \n\
258.409 -+1: ldq $5, 8($3) \n\
258.410 -+ addq $4, 8, $4 \n\
258.411 -+ addq $3, 8, $3 \n\
258.412 -+ stq $5, 0($4) \n\
258.413 -+ bne $5, 1b \n\
258.414 -+ /* Copy down auxiliary table. */ \n\
258.415 -+2: ldq $5, 8($3) \n\
258.416 -+ ldq $6, 16($3) \n\
258.417 -+ addq $4, 16, $4 \n\
258.418 -+ addq $3, 16, $3 \n\
258.419 -+ stq $5, -8($4) \n\
258.420 -+ stq $6, 0($4) \n\
258.421 -+ bne $5, 2b \n\
258.422 -+ br $fixup_stack_ret \n\
258.423 -+ .end _dl_start_user \n\
258.424 -+ .set noat \n\
258.425 - .previous");
258.426 -
258.427 - #ifndef RTLD_START_SPECIAL_INIT
259.1 --- a/patches/glibc/2.2.5/dl-machine-arm.patch Tue Aug 14 19:32:22 2007 +0000
259.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
259.3 @@ -1,389 +0,0 @@
259.4 -Fixes error:
259.5 -In file included from dynamic-link.h:21,
259.6 - from dl-load.c:32:
259.7 -../sysdeps/arm/dl-machine.h:124:25: missing terminating " character
259.8 -...
259.9 -make[2]: *** [/crosstool-0.22/build/arm-unknown-linux-gnu/gcc-3.3-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
259.10 -
259.11 -The first two hunks of
259.12 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.39&r2=1.40&cvsroot=glibc
259.13 -applied cleanly, but the third hunk didn't, so I just added the \n\'s by hand for that section.
259.14 -
259.15 ---- glibc-2.2.5/sysdeps/arm/dl-machine.h.orig Sat Sep 8 14:31:40 2001
259.16 -+++ glibc-2.2.5/sysdeps/arm/dl-machine.h Wed Aug 27 10:55:26 2003
259.17 -@@ -121,14 +121,15 @@
259.18 - and then redirect to the address it returns. */
259.19 - // macro for handling PIC situation....
259.20 - #ifdef PIC
259.21 --#define CALL_ROUTINE(x) " ldr sl,0f
259.22 -- add sl, pc, sl
259.23 --1: ldr r2, 2f
259.24 -- mov lr, pc
259.25 -- add pc, sl, r2
259.26 -- b 3f
259.27 --0: .word _GLOBAL_OFFSET_TABLE_ - 1b - 4
259.28 --2: .word " #x "(GOTOFF)
259.29 -+#define CALL_ROUTINE(x) "\
259.30 -+ ldr sl,0f\n\
259.31 -+ add sl, pc, sl\n\
259.32 -+1: ldr r2, 2f\n\
259.33 -+ mov lr, pc\n\
259.34 -+ add pc, sl, r2\n\
259.35 -+ b 3f\n\
259.36 -+0: .word _GLOBAL_OFFSET_TABLE_ - 1b - 4\n\
259.37 -+2: .word " #x "(GOTOFF)\n\
259.38 - 3: "
259.39 - #else
259.40 - #define CALL_ROUTINE(x) " bl " #x
259.41 -@@ -136,114 +137,114 @@
259.42 -
259.43 - #ifndef PROF
259.44 - # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
259.45 -- .text
259.46 -- .globl _dl_runtime_resolve
259.47 -- .type _dl_runtime_resolve, #function
259.48 -- .align 2
259.49 --_dl_runtime_resolve:
259.50 -- @ we get called with
259.51 -- @ stack[0] contains the return address from this call
259.52 -- @ ip contains &GOT[n+3] (pointer to function)
259.53 -- @ lr points to &GOT[2]
259.54 --
259.55 -- @ save almost everything; lr is already on the stack
259.56 -- stmdb sp!,{r0-r3,sl,fp}
259.57 --
259.58 -- @ prepare to call fixup()
259.59 -- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each
259.60 -- sub r1, ip, lr
259.61 -- sub r1, r1, #4
259.62 -- add r1, r1, r1
259.63 --
259.64 -- @ get pointer to linker struct
259.65 -- ldr r0, [lr, #-4]
259.66 --
259.67 -- @ call fixup routine
259.68 -- " CALL_ROUTINE(fixup) "
259.69 --
259.70 -- @ save the return
259.71 -- mov ip, r0
259.72 --
259.73 -- @ restore the stack
259.74 -- ldmia sp!,{r0-r3,sl,fp,lr}
259.75 --
259.76 -- @ jump to the newly found address
259.77 -- mov pc, ip
259.78 --
259.79 -- .size _dl_runtime_resolve, .-_dl_runtime_resolve
259.80 --
259.81 -- .globl _dl_runtime_profile
259.82 -- .type _dl_runtime_profile, #function
259.83 -- .align 2
259.84 --_dl_runtime_profile:
259.85 -- @ save almost everything; lr is already on the stack
259.86 -- stmdb sp!,{r0-r3,sl,fp}
259.87 --
259.88 -- @ prepare to call fixup()
259.89 -- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each
259.90 -- sub r1, ip, lr
259.91 -- sub r1, r1, #4
259.92 -- add r1, r1, r1
259.93 --
259.94 -- @ get pointer to linker struct
259.95 -- ldr r0, [lr, #-4]
259.96 --
259.97 -- @ call profiling fixup routine
259.98 -- " CALL_ROUTINE(profile_fixup) "
259.99 --
259.100 -- @ save the return
259.101 -- mov ip, r0
259.102 --
259.103 -- @ restore the stack
259.104 -- ldmia sp!,{r0-r3,sl,fp,lr}
259.105 --
259.106 -- @ jump to the newly found address
259.107 -- mov pc, ip
259.108 --
259.109 -- .size _dl_runtime_resolve, .-_dl_runtime_resolve
259.110 -- .previous
259.111 -+ .text\n\
259.112 -+ .globl _dl_runtime_resolve\n\
259.113 -+ .type _dl_runtime_resolve, #function\n\
259.114 -+ .align 2\n\
259.115 -+_dl_runtime_resolve:\n\
259.116 -+ @ we get called with\n\
259.117 -+ @ stack[0] contains the return address from this call\n\
259.118 -+ @ ip contains &GOT[n+3] (pointer to function)\n\
259.119 -+ @ lr points to &GOT[2]\n\
259.120 -+\n\
259.121 -+ @ save almost everything; lr is already on the stack\n\
259.122 -+ stmdb sp!,{r0-r3,sl,fp}\n\
259.123 -+\n\
259.124 -+ @ prepare to call fixup()\n\
259.125 -+ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\
259.126 -+ sub r1, ip, lr\n\
259.127 -+ sub r1, r1, #4\n\
259.128 -+ add r1, r1, r1\n\
259.129 -+\n\
259.130 -+ @ get pointer to linker struct\n\
259.131 -+ ldr r0, [lr, #-4]\n\
259.132 -+\n\
259.133 -+ @ call fixup routine\n\
259.134 -+ " CALL_ROUTINE(fixup) "\n\
259.135 -+\n\
259.136 -+ @ save the return\n\
259.137 -+ mov ip, r0\n\
259.138 -+\n\
259.139 -+ @ restore the stack\n\
259.140 -+ ldmia sp!,{r0-r3,sl,fp,lr}\n\
259.141 -+\n\
259.142 -+ @ jump to the newly found address\n\
259.143 -+ mov pc, ip\n\
259.144 -+\n\
259.145 -+ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
259.146 -+\n\
259.147 -+ .globl _dl_runtime_profile\n\
259.148 -+ .type _dl_runtime_profile, #function\n\
259.149 -+ .align 2\n\
259.150 -+_dl_runtime_profile:\n\
259.151 -+ @ save almost everything; lr is already on the stack\n\
259.152 -+ stmdb sp!,{r0-r3,sl,fp}\n\
259.153 -+\n\
259.154 -+ @ prepare to call fixup()\n\
259.155 -+ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\
259.156 -+ sub r1, ip, lr\n\
259.157 -+ sub r1, r1, #4\n\
259.158 -+ add r1, r1, r1\n\
259.159 -+\n\
259.160 -+ @ get pointer to linker struct\n\
259.161 -+ ldr r0, [lr, #-4]\n\
259.162 -+\n\
259.163 -+ @ call profiling fixup routine\n\
259.164 -+ " CALL_ROUTINE(profile_fixup) "\n\
259.165 -+\n\
259.166 -+ @ save the return\n\
259.167 -+ mov ip, r0\n\
259.168 -+\n\
259.169 -+ @ restore the stack\n\
259.170 -+ ldmia sp!,{r0-r3,sl,fp,lr}\n\
259.171 -+\n\
259.172 -+ @ jump to the newly found address\n\
259.173 -+ mov pc, ip\n\
259.174 -+\n\
259.175 -+ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
259.176 -+ .previous\n\
259.177 - ");
259.178 - #else // PROF
259.179 - # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
259.180 -- .text
259.181 -- .globl _dl_runtime_resolve
259.182 -- .globl _dl_runtime_profile
259.183 -- .type _dl_runtime_resolve, #function
259.184 -- .type _dl_runtime_profile, #function
259.185 -- .align 2
259.186 --_dl_runtime_resolve:
259.187 --_dl_runtime_profile:
259.188 -- @ we get called with
259.189 -- @ stack[0] contains the return address from this call
259.190 -- @ ip contains &GOT[n+3] (pointer to function)
259.191 -- @ lr points to &GOT[2]
259.192 --
259.193 -- @ save almost everything; return add is already on the stack
259.194 -- stmdb sp!,{r0-r3,sl,fp}
259.195 --
259.196 -- @ prepare to call fixup()
259.197 -- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each
259.198 -- sub r1, ip, lr
259.199 -- sub r1, r1, #4
259.200 -- add r1, r1, r1
259.201 --
259.202 -- @ get pointer to linker struct
259.203 -- ldr r0, [lr, #-4]
259.204 --
259.205 -- @ call profiling fixup routine
259.206 -- " CALL_ROUTINE(fixup) "
259.207 --
259.208 -- @ save the return
259.209 -- mov ip, r0
259.210 --
259.211 -- @ restore the stack
259.212 -- ldmia sp!,{r0-r3,sl,fp,lr}
259.213 --
259.214 -- @ jump to the newly found address
259.215 -- mov pc, ip
259.216 --
259.217 -- .size _dl_runtime_profile, .-_dl_runtime_profile
259.218 -- .previous
259.219 -+ .text\n\
259.220 -+ .globl _dl_runtime_resolve\n\
259.221 -+ .globl _dl_runtime_profile\n\
259.222 -+ .type _dl_runtime_resolve, #function\n\
259.223 -+ .type _dl_runtime_profile, #function\n\
259.224 -+ .align 2\n\
259.225 -+_dl_runtime_resolve:\n\
259.226 -+_dl_runtime_profile:\n\
259.227 -+ @ we get called with\n\
259.228 -+ @ stack[0] contains the return address from this call\n\
259.229 -+ @ ip contains &GOT[n+3] (pointer to function)\n\
259.230 -+ @ lr points to &GOT[2]\n\
259.231 -+\n\
259.232 -+ @ save almost everything; return add is already on the stack\n\
259.233 -+ stmdb sp!,{r0-r3,sl,fp}\n\
259.234 -+\n\
259.235 -+ @ prepare to call fixup()\n\
259.236 -+ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\
259.237 -+ sub r1, ip, lr\n\
259.238 -+ sub r1, r1, #4\n\
259.239 -+ add r1, r1, r1\n\
259.240 -+\n\
259.241 -+ @ get pointer to linker struct\n\
259.242 -+ ldr r0, [lr, #-4]\n\
259.243 -+\n\
259.244 -+ @ call profiling fixup routine\n\
259.245 -+ " CALL_ROUTINE(fixup) "\n\
259.246 -+\n\
259.247 -+ @ save the return\n\
259.248 -+ mov ip, r0\n\
259.249 -+\n\
259.250 -+ @ restore the stack\n\
259.251 -+ ldmia sp!,{r0-r3,sl,fp,lr}\n\
259.252 -+\n\
259.253 -+ @ jump to the newly found address\n\
259.254 -+ mov pc, ip\n\
259.255 -+\n\
259.256 -+ .size _dl_runtime_profile, .-_dl_runtime_profile\n\
259.257 -+ .previous\n\
259.258 - ");
259.259 - #endif //PROF
259.260 -
259.261 -@@ -256,70 +257,70 @@
259.262 - its return value is the user program's entry point. */
259.263 -
259.264 - #define RTLD_START asm ("\
259.265 --.text
259.266 --.globl _start
259.267 --.globl _dl_start_user
259.268 --_start:
259.269 -- @ at start time, all the args are on the stack
259.270 -- mov r0, sp
259.271 -- bl _dl_start
259.272 -- @ returns user entry point in r0
259.273 --_dl_start_user:
259.274 -- mov r6, r0
259.275 -- @ we are PIC code, so get global offset table
259.276 -- ldr sl, .L_GET_GOT
259.277 -- add sl, pc, sl
259.278 --.L_GOT_GOT:
259.279 -- @ Store the highest stack address
259.280 -- ldr r1, .L_STACK_END
259.281 -- ldr r1, [sl, r1]
259.282 -- str sp, [r1]
259.283 -- @ See if we were run as a command with the executable file
259.284 -- @ name as an extra leading argument.
259.285 -- ldr r4, .L_SKIP_ARGS
259.286 -- ldr r4, [sl, r4]
259.287 -- @ get the original arg count
259.288 -- ldr r1, [sp]
259.289 -- @ subtract _dl_skip_args from it
259.290 -- sub r1, r1, r4
259.291 -- @ adjust the stack pointer to skip them
259.292 -- add sp, sp, r4, lsl #2
259.293 -- @ get the argv address
259.294 -- add r2, sp, #4
259.295 -- @ store the new argc in the new stack location
259.296 -- str r1, [sp]
259.297 -- @ compute envp
259.298 -- add r3, r2, r1, lsl #2
259.299 -- add r3, r3, #4
259.300 --
259.301 -- @ now we call _dl_init
259.302 -- ldr r0, .L_LOADED
259.303 -- ldr r0, [sl, r0]
259.304 -- ldr r0, [r0]
259.305 -- @ call _dl_init
259.306 -- bl _dl_init(PLT)
259.307 -- @ clear the startup flag
259.308 -- ldr r2, .L_STARTUP_FLAG
259.309 -- ldr r1, [sl, r2]
259.310 -- mov r0, #0
259.311 -- str r0, [r1]
259.312 -- @ load the finalizer function
259.313 -- ldr r0, .L_FINI_PROC
259.314 -- ldr r0, [sl, r0]
259.315 -- @ jump to the user_s entry point
259.316 -- mov pc, r6
259.317 --.L_GET_GOT:
259.318 -+.text\n\
259.319 -+.globl _start\n\
259.320 -+.globl _dl_start_user\n\
259.321 -+_start:\n\
259.322 -+ @ at start time, all the args are on the stack\n\
259.323 -+ mov r0, sp\n\
259.324 -+ bl _dl_start\n\
259.325 -+ @ returns user entry point in r0\n\
259.326 -+_dl_start_user:\n\
259.327 -+ mov r6, r0\n\
259.328 -+ @ we are PIC code, so get global offset table\n\
259.329 -+ ldr sl, .L_GET_GOT\n\
259.330 -+ add sl, pc, sl\n\
259.331 -+.L_GOT_GOT:\n\
259.332 -+ @ Store the highest stack address\n\
259.333 -+ ldr r1, .L_STACK_END\n\
259.334 -+ ldr r1, [sl, r1]\n\
259.335 -+ str sp, [r1]\n\
259.336 -+ @ See if we were run as a command with the executable file\n\
259.337 -+ @ name as an extra leading argument.\n\
259.338 -+ ldr r4, .L_SKIP_ARGS\n\
259.339 -+ ldr r4, [sl, r4]\n\
259.340 -+ @ get the original arg count\n\
259.341 -+ ldr r1, [sp]\n\
259.342 -+ @ subtract _dl_skip_args from it\n\
259.343 -+ sub r1, r1, r4\n\
259.344 -+ @ adjust the stack pointer to skip them\n\
259.345 -+ add sp, sp, r4, lsl #2\n\
259.346 -+ @ get the argv address\n\
259.347 -+ add r2, sp, #4\n\
259.348 -+ @ store the new argc in the new stack location\n\
259.349 -+ str r1, [sp]\n\
259.350 -+ @ compute envp\n\
259.351 -+ add r3, r2, r1, lsl #2\n\
259.352 -+ add r3, r3, #4\n\
259.353 -+\n\
259.354 -+ @ now we call _dl_init\n\
259.355 -+ ldr r0, .L_LOADED\n\
259.356 -+ ldr r0, [sl, r0]\n\
259.357 -+ ldr r0, [r0]\n\
259.358 -+ @ call _dl_init\n\
259.359 -+ bl _dl_init(PLT)\n\
259.360 -+ @ clear the startup flag\n\
259.361 -+ ldr r2, .L_STARTUP_FLAG\n\
259.362 -+ ldr r1, [sl, r2]\n\
259.363 -+ mov r0, #0\n\
259.364 -+ str r0, [r1]\n\
259.365 -+ @ load the finalizer function\n\
259.366 -+ ldr r0, .L_FINI_PROC\n\
259.367 -+ ldr r0, [sl, r0]\n\
259.368 -+ @ jump to the user_s entry point\n\
259.369 -+ mov pc, r6\n\
259.370 -+.L_GET_GOT:\n\
259.371 - .word _GLOBAL_OFFSET_TABLE_ - .L_GOT_GOT - 4 \n\
259.372 - .L_SKIP_ARGS: \n\
259.373 - .word _dl_skip_args(GOTOFF) \n\
259.374 --.L_STARTUP_FLAG:
259.375 -- .word _dl_starting_up(GOT)
259.376 --.L_FINI_PROC:
259.377 -- .word _dl_fini(GOT)
259.378 --.L_STACK_END:
259.379 -- .word __libc_stack_end(GOT)
259.380 --.L_LOADED:
259.381 -- .word _dl_loaded(GOT)
259.382 -+.L_STARTUP_FLAG:\n\
259.383 -+ .word _dl_starting_up(GOT)\n\
259.384 -+.L_FINI_PROC:\n\
259.385 -+ .word _dl_fini(GOT)\n\
259.386 -+.L_STACK_END:\n\
259.387 -+ .word __libc_stack_end(GOT)\n\
259.388 -+.L_LOADED:\n\
259.389 -+ .word _dl_loaded(GOT)\n\
259.390 - .previous\n\
259.391 - ");
259.392 -
260.1 --- a/patches/glibc/2.2.5/dl-machine-m68k.patch Tue Aug 14 19:32:22 2007 +0000
260.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
260.3 @@ -1,206 +0,0 @@
260.4 -Retrieved with
260.5 - wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/m68k/dl-machine.h.diff?r1=1.53&r2=1.55&cvsroot=glibc'
260.6 -
260.7 -Fixes error
260.8 -
260.9 -In file included from dynamic-link.h:21,
260.10 - from dl-load.c:32:
260.11 -../sysdeps/m68k/dl-machine.h:108: error: parse error before '.' token
260.12 -../sysdeps/m68k/dl-machine.h:109: error: stray '@' in program
260.13 -../sysdeps/m68k/dl-machine.h:120: error: syntax error at '#' token
260.14 -../sysdeps/m68k/dl-machine.h:123: error: stray '\' in program
260.15 -../sysdeps/m68k/dl-machine.h:123: error: missing terminating " character
260.16 -../sysdeps/m68k/dl-machine.h:148: error: stray '@' in program
260.17 -../sysdeps/m68k/dl-machine.h:152: error: syntax error at '#' token
260.18 -../sysdeps/m68k/dl-machine.h:156: error: stray '@' in program
260.19 -../sysdeps/m68k/dl-machine.h:161: error: stray '@' in program
260.20 -../sysdeps/m68k/dl-machine.h:163: error: stray '@' in program
260.21 -../sysdeps/m68k/dl-machine.h:166: error: stray '@' in program
260.22 -In file included from dynamic-link.h:21,
260.23 - from dl-load.c:32:
260.24 -../sysdeps/m68k/dl-machine.h:175:4: invalid preprocessing directive #Call
260.25 -../sysdeps/m68k/dl-machine.h:179: error: stray '@' in program
260.26 -../sysdeps/m68k/dl-machine.h:180: error: stray '@' in program
260.27 -../sysdeps/m68k/dl-machine.h:181: error: syntax error at '#' token
260.28 -../sysdeps/m68k/dl-machine.h:182: error: syntax error at '#' token
260.29 -../sysdeps/m68k/dl-machine.h:184: error: stray '@' in program
260.30 -../sysdeps/m68k/dl-machine.h:187: error: missing terminating ' character
260.31 -../sysdeps/m68k/dl-machine.h:190: error: missing terminating " character
260.32 -dl-load.c: In function `_dl_map_object_from_fd':
260.33 -dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated
260.34 -dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated
260.35 -dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated
260.36 -dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated
260.37 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc24/build/m68k-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
260.38 -
260.39 -===================================================================
260.40 -RCS file: /cvs/glibc/libc/sysdeps/m68k/dl-machine.h,v
260.41 -retrieving revision 1.53
260.42 -retrieving revision 1.55
260.43 -diff -u -r1.53 -r1.55
260.44 ---- libc/sysdeps/m68k/dl-machine.h 2001/08/26 22:26:36 1.53
260.45 -+++ libc/sysdeps/m68k/dl-machine.h 2002/02/01 10:28:20 1.55
260.46 -@@ -1,5 +1,5 @@
260.47 - /* Machine-dependent ELF dynamic relocation inline functions. m68k version.
260.48 -- Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
260.49 -+ Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
260.50 - This file is part of the GNU C Library.
260.51 -
260.52 - The GNU C Library is free software; you can redistribute it and/or
260.53 -@@ -85,11 +85,11 @@
260.54 - {
260.55 - got[2] = (Elf32_Addr) &_dl_runtime_profile;
260.56 -
260.57 -- if (_dl_name_match_p (_dl_profile, l))
260.58 -+ if (_dl_name_match_p (GL(dl_profile), l))
260.59 - {
260.60 - /* This is the object we are looking for. Say that we really
260.61 - want profiling and the timers are started. */
260.62 -- _dl_profile_map = l;
260.63 -+ GL(dl_profile_map) = l;
260.64 - }
260.65 - }
260.66 - else
260.67 -@@ -104,22 +104,22 @@
260.68 - /* This code is used in dl-runtime.c to call the `fixup' function
260.69 - and then redirect to the address it returns. */
260.70 - #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
260.71 --"| Trampoline for " #fixup_name "
260.72 -- .globl " #tramp_name "
260.73 -- .type " #tramp_name ", @function
260.74 --" #tramp_name ":
260.75 -- | Save %a0 (struct return address) and %a1.
260.76 -- move.l %a0, -(%sp)
260.77 -- move.l %a1, -(%sp)
260.78 -- | Call the real address resolver.
260.79 -- jbsr " #fixup_name "
260.80 -- | Restore register %a0 and %a1.
260.81 -- move.l (%sp)+, %a1
260.82 -- move.l (%sp)+, %a0
260.83 -- | Pop parameters
260.84 -- addq.l #8, %sp
260.85 -- | Call real function.
260.86 -- jmp (%d0)
260.87 -+"| Trampoline for " #fixup_name "\n\
260.88 -+ .globl " #tramp_name "\n\
260.89 -+ .type " #tramp_name ", @function\n\
260.90 -+" #tramp_name ":\n\
260.91 -+ | Save %a0 (struct return address) and %a1.\n\
260.92 -+ move.l %a0, -(%sp)\n\
260.93 -+ move.l %a1, -(%sp)\n\
260.94 -+ | Call the real address resolver.\n\
260.95 -+ jbsr " #fixup_name "\n\
260.96 -+ | Restore register %a0 and %a1.\n\
260.97 -+ move.l (%sp)+, %a1\n\
260.98 -+ move.l (%sp)+, %a0\n\
260.99 -+ | Pop parameters\n\
260.100 -+ addq.l #8, %sp\n\
260.101 -+ | Call real function.\n\
260.102 -+ jmp (%d0)\n\
260.103 - .size " #tramp_name ", . - " #tramp_name "\n"
260.104 - #ifndef PROF
260.105 - #define ELF_MACHINE_RUNTIME_TRAMPOLINE \
260.106 -@@ -143,50 +143,50 @@
260.107 - its return value is the user program's entry point. */
260.108 -
260.109 - #define RTLD_START asm ("\
260.110 -- .text
260.111 -- .globl _start
260.112 -- .type _start,@function
260.113 --_start:
260.114 -- move.l %sp, -(%sp)
260.115 -- jbsr _dl_start
260.116 -- addq.l #4, %sp
260.117 -- /* FALLTHRU */
260.118 --
260.119 -- .globl _dl_start_user
260.120 -- .type _dl_start_user,@function
260.121 --_dl_start_user:
260.122 -- | Save the user entry point address in %a4.
260.123 -- move.l %d0, %a4
260.124 -- | Point %a5 at the GOT.
260.125 -- lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5
260.126 -- | Remember the highest stack address.
260.127 -- move.l %sp, ([__libc_stack_end@GOT.w, %a5])
260.128 -- | See if we were run as a command with the executable file
260.129 -- | name as an extra leading argument.
260.130 -- move.l ([_dl_skip_args@GOT.w, %a5]), %d0
260.131 -- | Pop the original argument count
260.132 -- move.l (%sp)+, %d1
260.133 -- | Subtract _dl_skip_args from it.
260.134 -- sub.l %d0, %d1
260.135 -- | Adjust the stack pointer to skip _dl_skip_args words.
260.136 -- lea (%sp, %d0*4), %sp
260.137 -- | Push back the modified argument count.
260.138 -- move.l %d1, -(%sp)
260.139 -- # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
260.140 -- pea 8(%sp, %d1*4)
260.141 -- pea 8(%sp)
260.142 -- move.l %d1, -(%sp)
260.143 -- move.l ([_dl_loaded@GOT.w, %a5]), -(%sp)
260.144 -- jbsr _dl_init@PLTPC
260.145 -- addq.l #8, %sp
260.146 -- addq.l #8, %sp
260.147 -- | Pass our finalizer function to the user in %a1.
260.148 -- move.l _dl_fini@GOT.w(%a5), %a1
260.149 -- | Initialize %fp with the stack pointer.
260.150 -- move.l %sp, %fp
260.151 -- | Jump to the user's entry point.
260.152 -- jmp (%a4)
260.153 -- .size _dl_start_user, . - _dl_start_user
260.154 -+ .text\n\
260.155 -+ .globl _start\n\
260.156 -+ .type _start,@function\n\
260.157 -+_start:\n\
260.158 -+ move.l %sp, -(%sp)\n\
260.159 -+ jbsr _dl_start\n\
260.160 -+ addq.l #4, %sp\n\
260.161 -+ /* FALLTHRU */\n\
260.162 -+\n\
260.163 -+ .globl _dl_start_user\n\
260.164 -+ .type _dl_start_user,@function\n\
260.165 -+_dl_start_user:\n\
260.166 -+ | Save the user entry point address in %a4.\n\
260.167 -+ move.l %d0, %a4\n\
260.168 -+ | Point %a5 at the GOT.\n\
260.169 -+ lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5\n\
260.170 -+ | Remember the highest stack address.\n\
260.171 -+ move.l %sp, ([__libc_stack_end@GOT.w, %a5])\n\
260.172 -+ | See if we were run as a command with the executable file\n\
260.173 -+ | name as an extra leading argument.\n\
260.174 -+ move.l ([_dl_skip_args@GOT.w, %a5]), %d0\n\
260.175 -+ | Pop the original argument count\n\
260.176 -+ move.l (%sp)+, %d1\n\
260.177 -+ | Subtract _dl_skip_args from it.\n\
260.178 -+ sub.l %d0, %d1\n\
260.179 -+ | Adjust the stack pointer to skip _dl_skip_args words.\n\
260.180 -+ lea (%sp, %d0*4), %sp\n\
260.181 -+ | Push back the modified argument count.\n\
260.182 -+ move.l %d1, -(%sp)\n\
260.183 -+ # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
260.184 -+ pea 8(%sp, %d1*4)\n\
260.185 -+ pea 8(%sp)\n\
260.186 -+ move.l %d1, -(%sp)\n\
260.187 -+ move.l ([_rtld_global@GOT.w, %a5]), -(%sp)\n\
260.188 -+ jbsr _dl_init@PLTPC\n\
260.189 -+ addq.l #8, %sp\n\
260.190 -+ addq.l #8, %sp\n\
260.191 -+ | Pass our finalizer function to the user in %a1.\n\
260.192 -+ move.l _dl_fini@GOT.w(%a5), %a1\n\
260.193 -+ | Initialize %fp with the stack pointer.\n\
260.194 -+ move.l %sp, %fp\n\
260.195 -+ | Jump to the user's entry point.\n\
260.196 -+ jmp (%a4)\n\
260.197 -+ .size _dl_start_user, . - _dl_start_user\n\
260.198 - .previous");
260.199 -
260.200 - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
260.201 -@@ -251,7 +251,7 @@
260.202 - found. */
260.203 - break;
260.204 - if (sym->st_size > refsym->st_size
260.205 -- || (sym->st_size < refsym->st_size && _dl_verbose))
260.206 -+ || (sym->st_size < refsym->st_size && GL(dl_verbose)))
260.207 - {
260.208 - extern char **_dl_argv;
260.209 - const char *strtab;
261.1 --- a/patches/glibc/2.2.5/dl-machine-sh.patch Tue Aug 14 19:32:22 2007 +0000
261.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
261.3 @@ -1,41 +0,0 @@
261.4 -Retrieved with
261.5 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/sh/dl-machine.h.diff?r1=1.21&r2=1.22&cvsroot=glibc'
261.6 -
261.7 -Fixes error
261.8 -/tmp/ccFobT8r.s: Assembler messages:
261.9 -/tmp/ccFobT8r.s:1819: Error: symbol `.L3' is already defined
261.10 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc24/build/sh4-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/rtld.os] Error 1
261.11 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc24/build/sh4-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/glibc-2.2.5/elf'
261.12 -
261.13 -See also http://sources.redhat.com/ml/libc-alpha/2002-07/msg00001.html
261.14 -
261.15 -===================================================================
261.16 -RCS file: /cvs/glibc/libc/sysdeps/sh/dl-machine.h,v
261.17 -retrieving revision 1.21
261.18 -retrieving revision 1.22
261.19 -diff -u -r1.21 -r1.22
261.20 ---- libc/sysdeps/sh/dl-machine.h 2002/04/08 20:59:36 1.21
261.21 -+++ libc/sysdeps/sh/dl-machine.h 2002/06/28 17:26:01 1.22
261.22 -@@ -53,16 +53,16 @@
261.23 - elf_machine_load_address (void)
261.24 - {
261.25 - Elf32_Addr addr;
261.26 -- asm ("mov.l .L1,r0\n\
261.27 -- mov.l .L3,r2\n\
261.28 -+ asm ("mov.l 1f,r0\n\
261.29 -+ mov.l 3f,r2\n\
261.30 - add r12,r2\n\
261.31 - mov.l @(r0,r12),r0\n\
261.32 -- bra .L2\n\
261.33 -+ bra 2f\n\
261.34 - sub r0,r2\n\
261.35 - .align 2\n\
261.36 -- .L1: .long _dl_start@GOT\n\
261.37 -- .L3: .long _dl_start@GOTOFF\n\
261.38 -- .L2: mov r2,%0"
261.39 -+ 1: .long _dl_start@GOT\n\
261.40 -+ 3: .long _dl_start@GOTOFF\n\
261.41 -+ 2: mov r2,%0"
261.42 - : "=r" (addr) : : "r0", "r1", "r2");
261.43 - return addr;
261.44 - }
262.1 --- a/patches/glibc/2.2.5/dl-machine-sparc.patch Tue Aug 14 19:32:22 2007 +0000
262.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
262.3 @@ -1,230 +0,0 @@
262.4 ---- glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h.old Sat Jun 7 18:19:03 2003
262.5 -+++ glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h Sat Jun 7 18:20:04 2003
262.6 -@@ -148,23 +148,23 @@
262.7 - and then redirect to the address it returns. */
262.8 - #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
262.9 - asm ( "\
262.10 -- .text
262.11 -- .globl " #tramp_name "
262.12 -- .type " #tramp_name ", @function
262.13 -- .align 32
262.14 --" #tramp_name ":
262.15 -- /* Set up the arguments to fixup --
262.16 -- %o0 = link_map out of plt0
262.17 -- %o1 = offset of reloc entry
262.18 -- %o2 = return address */
262.19 -- ld [%o7 + 8], %o0
262.20 -- srl %g1, 10, %o1
262.21 -- mov %i7, %o2
262.22 -- call " #fixup_name "
262.23 -- sub %o1, 4*12, %o1
262.24 -- jmp %o0
262.25 -- restore
262.26 -- .size " #tramp_name ", . - " #tramp_name "
262.27 -+ .text\n\
262.28 -+ .globl " #tramp_name "\n\
262.29 -+ .type " #tramp_name ", @function\n\
262.30 -+ .align 32\n\
262.31 -+" #tramp_name ":\n\
262.32 -+ /* Set up the arguments to fixup --\n\
262.33 -+ %o0 = link_map out of plt0\n\
262.34 -+ %o1 = offset of reloc entry\n\
262.35 -+ %o2 = return address */\n\
262.36 -+ ld [%o7 + 8], %o0\n\
262.37 -+ srl %g1, 10, %o1\n\
262.38 -+ mov %i7, %o2\n\
262.39 -+ call " #fixup_name "\n\
262.40 -+ sub %o1, 4*12, %o1\n\
262.41 -+ jmp %o0\n\
262.42 -+ restore\n\
262.43 -+ .size " #tramp_name ", . - " #tramp_name "\n\
262.44 - .previous")
262.45 -
262.46 - #ifndef PROF
262.47 -@@ -199,96 +199,96 @@
262.48 - its return value is the user program's entry point. */
262.49 -
262.50 - #define RTLD_START __asm__ ("\
262.51 -- .text
262.52 -- .globl _start
262.53 -- .type _start, @function
262.54 -- .align 32
262.55 --_start:
262.56 -- /* Allocate space for functions to drop their arguments. */
262.57 -- sub %sp, 6*4, %sp
262.58 -- /* Pass pointer to argument block to _dl_start. */
262.59 -- call _dl_start
262.60 -- add %sp, 22*4, %o0
262.61 -- /* FALTHRU */
262.62 -- .globl _dl_start_user
262.63 -- .type _dl_start_user, @function
262.64 --_dl_start_user:
262.65 -- /* Load the PIC register. */
262.66 --1: call 2f
262.67 -- sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
262.68 --2: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
262.69 -- add %l7, %o7, %l7
262.70 -- /* Save the user entry point address in %l0 */
262.71 -- mov %o0, %l0
262.72 -- /* Store the highest stack address. */
262.73 -- sethi %hi(__libc_stack_end), %g2
262.74 -- or %g2, %lo(__libc_stack_end), %g2
262.75 -- ld [%l7 + %g2], %l1
262.76 -- sethi %hi(_dl_skip_args), %g2
262.77 -- add %sp, 6*4, %l2
262.78 -- or %g2, %lo(_dl_skip_args), %g2
262.79 -- st %l2, [%l1]
262.80 -- /* See if we were run as a command with the executable file name as an
262.81 -- extra leading argument. If so, adjust the contents of the stack. */
262.82 -- ld [%l7+%g2], %i0
262.83 -- ld [%i0], %i0
262.84 -- tst %i0
262.85 -- beq 3f
262.86 -- ld [%sp+22*4], %i5 /* load argc */
262.87 -- /* Find out how far to shift. */
262.88 -- sethi %hi(_dl_argv), %l3
262.89 -- or %l3, %lo(_dl_argv), %l3
262.90 -- ld [%l7+%l3], %l3
262.91 -- sub %i5, %i0, %i5
262.92 -- ld [%l3], %l4
262.93 -- sll %i0, 2, %i2
262.94 -- st %i5, [%sp+22*4]
262.95 -- sub %l4, %i2, %l4
262.96 -- add %sp, 23*4, %i1
262.97 -- add %i1, %i2, %i2
262.98 -- st %l4, [%l3]
262.99 -- /* Copy down argv */
262.100 --21: ld [%i2], %i3
262.101 -- add %i2, 4, %i2
262.102 -- tst %i3
262.103 -- st %i3, [%i1]
262.104 -- bne 21b
262.105 -- add %i1, 4, %i1
262.106 -- /* Copy down env */
262.107 --22: ld [%i2], %i3
262.108 -- add %i2, 4, %i2
262.109 -- tst %i3
262.110 -- st %i3, [%i1]
262.111 -- bne 22b
262.112 -- add %i1, 4, %i1
262.113 -- /* Copy down auxiliary table. */
262.114 --23: ld [%i2], %i3
262.115 -- ld [%i2+4], %i4
262.116 -- add %i2, 8, %i2
262.117 -- tst %i3
262.118 -- st %i3, [%i1]
262.119 -- st %i4, [%i1+4]
262.120 -- bne 23b
262.121 -- add %i1, 8, %i1
262.122 -- /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */
262.123 --3: sethi %hi(_dl_loaded), %o0
262.124 -- add %sp, 23*4, %o2
262.125 -- orcc %o0, %lo(_dl_loaded), %o0
262.126 -- sll %i5, 2, %o3
262.127 -- ld [%l7+%o0], %o0
262.128 -- add %o3, 4, %o3
262.129 -- mov %i5, %o1
262.130 -- add %o2, %o3, %o3
262.131 -- call _dl_init
262.132 -- ld [%o0], %o0
262.133 -- /* Pass our finalizer function to the user in %g1. */
262.134 -- sethi %hi(_dl_fini), %g1
262.135 -- or %g1, %lo(_dl_fini), %g1
262.136 -- ld [%l7+%g1], %g1
262.137 -- /* Jump to the user's entry point and deallocate the extra stack we got. */
262.138 -- jmp %l0
262.139 -- add %sp, 6*4, %sp
262.140 -- .size _dl_start_user, . - _dl_start_user
262.141 -+ .text\n\
262.142 -+ .globl _start\n\
262.143 -+ .type _start, @function\n\
262.144 -+ .align 32\n\
262.145 -+_start:\n\
262.146 -+ /* Allocate space for functions to drop their arguments. */\n\
262.147 -+ sub %sp, 6*4, %sp\n\
262.148 -+ /* Pass pointer to argument block to _dl_start. */\n\
262.149 -+ call _dl_start\n\
262.150 -+ add %sp, 22*4, %o0\n\
262.151 -+ /* FALTHRU */\n\
262.152 -+ .globl _dl_start_user\n\
262.153 -+ .type _dl_start_user, @function\n\
262.154 -+_dl_start_user:\n\
262.155 -+ /* Load the PIC register. */\n\
262.156 -+1: call 2f\n\
262.157 -+ sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n\
262.158 -+2: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n\
262.159 -+ add %l7, %o7, %l7\n\
262.160 -+ /* Save the user entry point address in %l0 */\n\
262.161 -+ mov %o0, %l0\n\
262.162 -+ /* Store the highest stack address. */\n\
262.163 -+ sethi %hi(__libc_stack_end), %g2\n\
262.164 -+ or %g2, %lo(__libc_stack_end), %g2\n\
262.165 -+ ld [%l7 + %g2], %l1\n\
262.166 -+ sethi %hi(_dl_skip_args), %g2\n\
262.167 -+ add %sp, 6*4, %l2\n\
262.168 -+ or %g2, %lo(_dl_skip_args), %g2\n\
262.169 -+ st %l2, [%l1]\n\
262.170 -+ /* See if we were run as a command with the executable file name as an\n\
262.171 -+ extra leading argument. If so, adjust the contents of the stack. */\n\
262.172 -+ ld [%l7+%g2], %i0\n\
262.173 -+ ld [%i0], %i0\n\
262.174 -+ tst %i0\n\
262.175 -+ beq 3f\n\
262.176 -+ ld [%sp+22*4], %i5 /* load argc */\n\
262.177 -+ /* Find out how far to shift. */\n\
262.178 -+ sethi %hi(_dl_argv), %l3\n\
262.179 -+ or %l3, %lo(_dl_argv), %l3\n\
262.180 -+ ld [%l7+%l3], %l3\n\
262.181 -+ sub %i5, %i0, %i5\n\
262.182 -+ ld [%l3], %l4\n\
262.183 -+ sll %i0, 2, %i2\n\
262.184 -+ st %i5, [%sp+22*4]\n\
262.185 -+ sub %l4, %i2, %l4\n\
262.186 -+ add %sp, 23*4, %i1\n\
262.187 -+ add %i1, %i2, %i2\n\
262.188 -+ st %l4, [%l3]\n\
262.189 -+ /* Copy down argv */\n\
262.190 -+21: ld [%i2], %i3\n\
262.191 -+ add %i2, 4, %i2\n\
262.192 -+ tst %i3\n\
262.193 -+ st %i3, [%i1]\n\
262.194 -+ bne 21b\n\
262.195 -+ add %i1, 4, %i1\n\
262.196 -+ /* Copy down env */\n\
262.197 -+22: ld [%i2], %i3\n\
262.198 -+ add %i2, 4, %i2\n\
262.199 -+ tst %i3\n\
262.200 -+ st %i3, [%i1]\n\
262.201 -+ bne 22b\n\
262.202 -+ add %i1, 4, %i1\n\
262.203 -+ /* Copy down auxiliary table. */\n\
262.204 -+23: ld [%i2], %i3\n\
262.205 -+ ld [%i2+4], %i4\n\
262.206 -+ add %i2, 8, %i2\n\
262.207 -+ tst %i3\n\
262.208 -+ st %i3, [%i1]\n\
262.209 -+ st %i4, [%i1+4]\n\
262.210 -+ bne 23b\n\
262.211 -+ add %i1, 8, %i1\n\
262.212 -+ /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */\n\
262.213 -+3: sethi %hi(_dl_loaded), %o0\n\
262.214 -+ add %sp, 23*4, %o2\n\
262.215 -+ orcc %o0, %lo(_dl_loaded), %o0\n\
262.216 -+ sll %i5, 2, %o3\n\
262.217 -+ ld [%l7+%o0], %o0\n\
262.218 -+ add %o3, 4, %o3\n\
262.219 -+ mov %i5, %o1\n\
262.220 -+ add %o2, %o3, %o3\n\
262.221 -+ call _dl_init\n\
262.222 -+ ld [%o0], %o0\n\
262.223 -+ /* Pass our finalizer function to the user in %g1. */\n\
262.224 -+ sethi %hi(_dl_fini), %g1\n\
262.225 -+ or %g1, %lo(_dl_fini), %g1\n\
262.226 -+ ld [%l7+%g1], %g1\n\
262.227 -+ /* Jump to the user's entry point and deallocate the extra stack we got. */\n\
262.228 -+ jmp %l0\n\
262.229 -+ add %sp, 6*4, %sp\n\
262.230 -+ .size _dl_start_user, . - _dl_start_user\n\
262.231 - .previous");
262.232 -
262.233 - static inline Elf32_Addr
263.1 --- a/patches/glibc/2.2.5/errlist-1.9.patch Tue Aug 14 19:32:22 2007 +0000
263.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
263.3 @@ -1,25 +0,0 @@
263.4 -===================================================================
263.5 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/Attic/errlist.c,v
263.6 -retrieving revision 1.8
263.7 -retrieving revision 1.9
263.8 -diff -u -r1.8 -r1.9
263.9 ---- libc/sysdeps/unix/sysv/linux/errlist.c 2001/07/06 04:56:12 1.8
263.10 -+++ libc/sysdeps/unix/sysv/linux/errlist.c 2002/05/20 06:56:53 1.9
263.11 -@@ -1,4 +1,4 @@
263.12 --/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
263.13 -+/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
263.14 - This file is part of the GNU C Library.
263.15 -
263.16 - The GNU C Library is free software; you can redistribute it and/or
263.17 -@@ -38,10 +38,9 @@
263.18 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
263.19 -
263.20 - strong_alias (__old_sys_nerr, _old_sys_nerr);
263.21 --weak_alias (__old_sys_nerr, _old_sys_nerr)
263.22 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
263.23 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
263.24 --weak_alias (__old_sys_errlist, _old_sys_errlist);
263.25 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
263.26 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
263.27 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
263.28 - #endif
264.1 --- a/patches/glibc/2.2.5/errlist-arm.patch Tue Aug 14 19:32:22 2007 +0000
264.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
264.3 @@ -1,48 +0,0 @@
264.4 -Subject: patch for arm
264.5 -From: Philip Blundell <Philip dot Blundell at pobox dot com>
264.6 -To: libc-hacker at sources dot redhat dot com
264.7 -Content-Type: text/plain
264.8 -Content-Transfer-Encoding: 7bit
264.9 -Date: 22 Jul 2002 20:12:06 +0100
264.10 -Message-Id: <1027365126.725.10.camel@kc>
264.11 -Mime-Version: 1.0
264.12 -
264.13 -The mainline seems to need this patch in order to compile.
264.14 -
264.15 -p.
264.16 -
264.17 -2002-07-22 Philip Blundell <philb@gnu.org>
264.18 -
264.19 - * sysdeps/unix/sysv/linux/arm/errlist.c: Remove extra weak alias
264.20 - definiton of _old_sys_nerr. Define _old_sys_errlist as strong
264.21 - alias.
264.22 -
264.23 -Index: sysdeps/unix/sysv/linux/arm/errlist.c
264.24 -===================================================================
264.25 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/errlist.c,v
264.26 -retrieving revision 1.4
264.27 -diff -u -p -r1.4 errlist.c
264.28 ---- glibc/sysdeps/unix/sysv/linux/arm/errlist.c 6 Jul 2001 04:56:13 -0000 1.4
264.29 -+++ glibc/sysdeps/unix/sysv/linux/arm/errlist.c 22 Jul 2002 19:10:57 -0000
264.30 -@@ -1,4 +1,4 @@
264.31 --/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
264.32 -+/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
264.33 - This file is part of the GNU C Library.
264.34 -
264.35 - The GNU C Library is free software; you can redistribute it and/or
264.36 -@@ -38,10 +38,9 @@ extern const char *const *__old_sys_errl
264.37 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
264.38 -
264.39 - strong_alias (__old_sys_nerr, _old_sys_nerr);
264.40 --weak_alias (__old_sys_nerr, _old_sys_nerr)
264.41 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
264.42 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
264.43 --weak_alias (__old_sys_errlist, _old_sys_errlist);
264.44 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
264.45 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
264.46 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
264.47 - #endif
264.48 -
264.49 -
264.50 -
264.51 -
265.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch Tue Aug 14 19:32:22 2007 +0000
265.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
265.3 @@ -1,68 +0,0 @@
265.4 -Fixes
265.5 -dl-runtime.c:56: error: conflicting types for 'fixup'
265.6 -../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
265.7 -when building with gcc-3.4.0
265.8 -
265.9 -First hunk:
265.10 -Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
265.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
265.12 -[rediffed against glibc-2.2.5]
265.13 -
265.14 -Second hunk:
265.15 -If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
265.16 -Use macro in fixup function definitions.
265.17 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
265.18 -[rediffed against glibc-2.3.2]
265.19 -
265.20 -===================================================================
265.21 ---- glibc-2.2.5/sysdeps/i386/dl-machine.h.old Sun Apr 11 11:53:23 2004
265.22 -+++ glibc-2.2.5/sysdeps/i386/dl-machine.h Sun Apr 11 11:55:38 2004
265.23 -@@ -63,11 +63,12 @@
265.24 - destroys the passed register information. */
265.25 - /* GKM FIXME: Fix trampoline to pass bounds so we can do
265.26 - without the `__unbounded' qualifier. */
265.27 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
265.28 - static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
265.29 -- __attribute__ ((regparm (2), unused));
265.30 -+ ARCH_FIXUP_ATTRIBUTE;
265.31 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
265.32 - ElfW(Addr) retaddr)
265.33 -- __attribute__ ((regparm (3), unused));
265.34 -+ ARCH_FIXUP_ATTRIBUTE;
265.35 - #endif
265.36 -
265.37 - /* Set up the loaded object described by L so its unrelocated PLT
265.38 -===================================================================
265.39 ---- /home/dank/downloads/glibc-2.3.2/elf/dl-runtime.c Fri Feb 7 11:41:12 2003
265.40 -+++ glibc-2.3.2/elf/dl-runtime.c Thu Apr 8 22:24:26 2004
265.41 -@@ -36,6 +36,12 @@
265.42 - # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
265.43 - #endif
265.44 -
265.45 -+/* The fixup functions might have need special attributes. If none
265.46 -+ are provided define the macro as empty. */
265.47 -+#ifndef ARCH_FIXUP_ATTRIBUTE
265.48 -+# define ARCH_FIXUP_ATTRIBUTE
265.49 -+#endif
265.50 -+
265.51 -
265.52 - /* This function is called through a special trampoline from the PLT the
265.53 - first time each PLT entry is called. We must perform the relocation
265.54 -@@ -45,7 +51,7 @@
265.55 - function. */
265.56 -
265.57 - #ifndef ELF_MACHINE_NO_PLT
265.58 --static ElfW(Addr) __attribute_used__
265.59 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
265.60 - fixup (
265.61 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
265.62 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
265.63 -@@ -132,7 +138,7 @@
265.64 -
265.65 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
265.66 -
265.67 --static ElfW(Addr) __attribute_used__
265.68 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
265.69 - profile_fixup (
265.70 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
265.71 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
266.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch Tue Aug 14 19:32:22 2007 +0000
266.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
266.3 @@ -1,63 +0,0 @@
266.4 -Fixes
266.5 -initgroups.c: In function `internal_getgrouplist':
266.6 -initgroups.c:179: error: parse error before "__FUNCTION__"
266.7 -
266.8 -CVSROOT: /cvs/glibc
266.9 -Module name: libc
266.10 -Changes by: roland@sources.redhat.com 2001-12-16 21:52:12
266.11 -
266.12 -Modified files:
266.13 - nss : nsswitch.c
266.14 - grp : initgroups.c
266.15 -
266.16 -Log message:
266.17 - 2001-12-16 Roland McGrath <roland@frob.com>
266.18 -
266.19 - * nss/nsswitch.c (__nss_next): Don't use __FUNCTION__ as literal.
266.20 - * grp/initgroups.c (internal_getgrouplist): Likewise.
266.21 -
266.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/grp/initgroups.c.diff?r1=1.26&r2=1.27&cvsroot=glibc
266.23 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nss/nsswitch.c.diff?r1=1.52&r2=1.53&cvsroot=glibc
266.24 -
266.25 -===================================================================
266.26 -RCS file: /cvs/glibc/libc/grp/initgroups.c,v
266.27 -retrieving revision 1.26
266.28 -retrieving revision 1.27
266.29 -diff -u -r1.26 -r1.27
266.30 ---- libc/grp/initgroups.c 2001/07/06 04:54:46 1.26
266.31 -+++ libc/grp/initgroups.c 2001/12/17 05:52:11 1.27
266.32 -@@ -176,7 +176,7 @@
266.33 -
266.34 - /* This is really only for debugging. */
266.35 - if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
266.36 -- __libc_fatal ("illegal status in " __FUNCTION__);
266.37 -+ __libc_fatal ("illegal status in internal_getgrouplist");
266.38 -
266.39 - if (status != NSS_STATUS_SUCCESS
266.40 - && nss_next_action (nip, status) == NSS_ACTION_RETURN)
266.41 -@@ -214,7 +214,7 @@
266.42 - }
266.43 - else
266.44 - *ngroups = result;
266.45 --
266.46 -+
266.47 - memcpy (groups, newgroups, *ngroups * sizeof (gid_t));
266.48 -
266.49 - free (newgroups);
266.50 -
266.51 -===================================================================
266.52 -RCS file: /cvs/glibc/libc/nss/nsswitch.c,v
266.53 -retrieving revision 1.52
266.54 -retrieving revision 1.53
266.55 -diff -u -r1.52 -r1.53
266.56 ---- libc/nss/nsswitch.c 2001/07/17 08:21:36 1.52
266.57 -+++ libc/nss/nsswitch.c 2001/12/17 05:52:11 1.53
266.58 -@@ -178,7 +178,7 @@
266.59 - {
266.60 - /* This is really only for debugging. */
266.61 - if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
266.62 -- __libc_fatal ("illegal status in " __FUNCTION__);
266.63 -+ __libc_fatal ("illegal status in __nss_next");
266.64 -
266.65 - if (nss_next_action (*ni, status) == NSS_ACTION_RETURN)
266.66 - return 1;
267.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-weakextern.patch Tue Aug 14 19:32:22 2007 +0000
267.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
267.3 @@ -1,48 +0,0 @@
267.4 -Suggested by Jake Page <jake at cs dot stanford dot edu>
267.5 -in http://sources.redhat.com/ml/crossgcc/2004-07/msg00169.html
267.6 -but the libc-symbols.h fragment has been reworked to fix typos
267.7 -and to still work on gcc-2.95.3, which lacks _Pragma.
267.8 -
267.9 -His comment was:
267.10 - Fixes gcc-3.4 optimizing out comparisons to weak external symbols in code
267.11 - like:
267.12 - if (__pthread_mutex_init != NULL)
267.13 - __pthread_mutex_init(...);
267.14 - that causes segfaults during libc init when not linked to libpthread
267.15 -
267.16 -diff -uNr glibc-2.2.5-orig/resolv/res_libc.c glibc-2.2.5/resolv/res_libc.c
267.17 ---- glibc-2.2.5-orig/resolv/res_libc.c 2001-02-12 12:23:34.000000000 -0800
267.18 -+++ glibc-2.2.5/resolv/res_libc.c 2004-07-27 22:56:32.000000000 -0700
267.19 -@@ -84,7 +84,8 @@
267.20 -
267.21 - #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2)
267.22 - # undef res_init
267.23 --strong_alias (__res_init, __res_init_weak);
267.24 -+extern int __res_init_weak (void);
267.25 - weak_extern (__res_init_weak);
267.26 -+strong_alias (__res_init, __res_init_weak);
267.27 - compat_symbol (libc, __res_init_weak, res_init, GLIBC_2_0);
267.28 - #endif
267.29 ---- glibc-2.2.5/include/libc-symbols.h.old Fri Aug 13 04:20:55 2004
267.30 -+++ glibc-2.2.5/include/libc-symbols.h Fri Aug 13 04:37:06 2004
267.31 -@@ -108,10 +108,16 @@
267.32 -
267.33 - /* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined). */
267.34 - # define weak_extern(symbol) _weak_extern (symbol)
267.35 --# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
267.36 --# define _weak_extern(symbol) asm (".weakext " __SYMBOL_PREFIX #symbol);
267.37 --# else
267.38 --# define _weak_extern(symbol) asm (".weak " __SYMBOL_PREFIX #symbol);
267.39 -+# if __GNUC__ >= 3
267.40 -+ /* see http://sources.redhat.com/ml/libc-alpha/2003-01/msg00043.html */
267.41 -+# define __weak_extern_1(expr) _Pragma(#expr)
267.42 -+# define _weak_extern(symbol) __weak_extern_1(weak symbol)
267.43 -+# else /* __GNUC__ == 2 */
267.44 -+# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
267.45 -+# define _weak_extern(symbol) asm (".weakext " __SYMBOL_PREFIX #symbol);
267.46 -+# else
267.47 -+# define _weak_extern(symbol) asm (".weak " __SYMBOL_PREFIX #symbol);
267.48 -+# endif
267.49 - # endif
267.50 -
267.51 - # else
268.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-configure.patch Tue Aug 14 19:32:22 2007 +0000
268.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
268.3 @@ -1,21 +0,0 @@
268.4 -Fixes
268.5 -checking version of powerpc-405-linux-gnu-gcc ... 4.0.0, bad
268.6 -checking for gnumake... no
268.7 -checking for gmake... no
268.8 -checking for make... make
268.9 -checking version of make... 3.80, ok
268.10 -configure: error:
268.11 -*** These critical programs are missing or too old:gcc
268.12 -
268.13 -
268.14 ---- glibc-2.2.5/configure.old 2005-03-10 00:23:46.374213600 -0800
268.15 -+++ glibc-2.2.5/configure 2005-03-10 00:25:13.313996744 -0800
268.16 -@@ -1476,7 +1476,7 @@
268.17 - ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
268.18 - case $ac_prog_version in
268.19 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
268.20 -- *gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
268.21 -+ *gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|4.0*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
268.22 - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
268.23 - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
268.24 -
269.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-elf-2.patch Tue Aug 14 19:32:22 2007 +0000
269.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
269.3 @@ -1,43 +0,0 @@
269.4 -Fixes
269.5 -dynamic-link.h:38: error: invalid storage class for function 'elf_get_dynamic_info'
269.6 -kinda like http://sourceware.org/cgi-bin/cvsweb.cgi/libc/elf/dynamic-link.h.diff?r1=1.50&r2=1.51&cvsroot=glibc does
269.7 -and fixes
269.8 -In file included from dynamic-link.h:218,
269.9 - from dl-reloc.c:153:
269.10 -do-rel.h:46: error: invalid storage class for function 'elf_dynamic_do_rel'
269.11 -
269.12 ---- /home/dank/downloads/glibc-2.2.5/elf/dynamic-link.h 2001-07-05 21:54:46.000000000 -0700
269.13 -+++ glibc-2.2.5/elf/dynamic-link.h 2005-03-11 14:18:34.542858064 -0800
269.14 -@@ -33,7 +33,16 @@
269.15 -
269.16 - /* Read the dynamic section at DYN and fill in INFO with indices DT_*. */
269.17 -
269.18 -+#if __GNUC__ >= 4
269.19 -+#ifndef RESOLVE_MAP
269.20 -+static
269.21 -+#else
269.22 -+auto
269.23 -+#endif
269.24 -+inline void __attribute__ ((unused, always_inline))
269.25 -+#else
269.26 - static inline void __attribute__ ((unused))
269.27 -+#endif
269.28 - elf_get_dynamic_info (struct link_map *l)
269.29 - {
269.30 - ElfW(Dyn) *dyn = l->l_ld;
269.31 -
269.32 ---- /home/dank/downloads/glibc-2.2.5/elf/do-rel.h 2001-08-24 11:45:23.000000000 -0700
269.33 -+++ glibc-2.2.5/elf/do-rel.h 2005-03-11 14:26:43.538519424 -0800
269.34 -@@ -39,7 +39,12 @@
269.35 - relocations; they should be set up to call _dl_runtime_resolve, rather
269.36 - than fully resolved now. */
269.37 -
269.38 -+#if __GNUC__ >= 4
269.39 -+auto inline void
269.40 -+__attribute ((always_inline))
269.41 -+#else
269.42 - static inline void
269.43 -+#endif
269.44 - elf_dynamic_do_rel (struct link_map *map,
269.45 - ElfW(Addr) reladdr, ElfW(Addr) relsize,
269.46 - int lazy)
270.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-elf.patch Tue Aug 14 19:32:22 2007 +0000
270.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
270.3 @@ -1,39 +0,0 @@
270.4 -Fixes
270.5 -
270.6 -dl-load.c: In function '_dl_map_object_from_fd':
270.7 -dl-load.c:1089: error: invalid lvalue in assignment
270.8 -dl-load.c:1109: error: invalid lvalue in assignment
270.9 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
270.10 -
270.11 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/elf/dl-load.c.diff?r1=1.235&r2=1.236&cvsroot=glibc
270.12 -rediffed against glibc-2.2.5
270.13 -
270.14 -Revision 1.236, Sat Feb 21 18:25:41 2004 UTC by aj
270.15 -Branch: MAIN
270.16 -Changes since 1.235: +2 -2 lines
270.17 -Diff to previous 1.235 (colored)
270.18 -
270.19 -(_dl_map_object_from_fd): Fix casts used as lvalue.
270.20 -
270.21 -
270.22 -diff -ur glibc-2.2.5/elf/dl-load.c glibc-2.2.5-patched/elf/dl-load.c
270.23 ---- glibc-2.2.5/elf/dl-load.c 2001-11-10 14:43:10.000000000 -0800
270.24 -+++ glibc-2.2.5-patched/elf/dl-load.c 2005-03-11 13:48:18.211982328 -0800
270.25 -@@ -1086,7 +1086,7 @@
270.26 - }
270.27 - else
270.28 - /* Adjust the PT_PHDR value by the runtime load address. */
270.29 -- (ElfW(Addr)) l->l_phdr += l->l_addr;
270.30 -+ l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
270.31 - }
270.32 -
270.33 - /* We are done mapping in the file. We no longer need the descriptor. */
270.34 -@@ -1106,7 +1106,7 @@
270.35 - }
270.36 - }
270.37 - else
270.38 -- (ElfW(Addr)) l->l_ld += l->l_addr;
270.39 -+ l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
270.40 -
270.41 - l->l_entry += l->l_addr;
270.42 -
271.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-gconv.patch Tue Aug 14 19:32:22 2007 +0000
271.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
271.3 @@ -1,226 +0,0 @@
271.4 -Fixes
271.5 -gconv_open.c: In function `__gconv_open':
271.6 -gconv_open.c:186: error: invalid lvalue in assignment
271.7 -when building glibc-2.2.5 with gcc-4.0.
271.8 -Same as ../glibc-2.3.2/glibc-2.3.2-allow-gcc-3.5-gconv.patch
271.9 -but rediffed against glibc-2.2.5.
271.10 -
271.11 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_simple.c.diff?r1=1.59&r2=1.63&cvsroot=glibc'
271.12 - * (internal_ucs4_loop): Fix typo in last change.
271.13 -
271.14 - * (internal_ucs4le_loop): Remove cast used as lvalue.
271.15 -
271.16 - * Fix last commit.
271.17 -
271.18 - * iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
271.19 - (internal_ucs4le_loop_single): Likewise.
271.20 - (ucs4_internal_loop): Likewise.
271.21 - (BODY): Likewise.
271.22 - (internal_ucs4_loop_single): Likewise.
271.23 -
271.24 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_open.c.diff?r1=1.32&r2=1.33&cvsroot=glibc'
271.25 - * iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
271.26 - (internal_ucs4le_loop_single): Likewise.
271.27 - (ucs4_internal_loop): Likewise.
271.28 - (BODY): Likewise.
271.29 - (internal_ucs4_loop_single): Likewise.
271.30 -
271.31 -
271.32 -===================================================================
271.33 -RCS file: /cvs/glibc/libc/iconv/gconv_open.c,v
271.34 -retrieving revision 1.32
271.35 -retrieving revision 1.33
271.36 -diff -u -r1.32 -r1.33
271.37 ---- libc/iconv/gconv_open.c 2001/11/29 04:51:58 1.32
271.38 -+++ libc/iconv/gconv_open.c 2004/02/07 15:56:32 1.33
271.39 -@@ -1,5 +1,5 @@
271.40 - /* Find matching transformation algorithms and initialize steps.
271.41 -- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
271.42 -+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
271.43 - This file is part of the GNU C Library.
271.44 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
271.45 -
271.46 -@@ -182,8 +182,13 @@
271.47 - || __builtin_expect (__gconv_translit_find (runp), 0) == 0)
271.48 - lastp = runp;
271.49 - else
271.50 -- /* This means we haven't found the module. Remove it. */
271.51 -- (lastp == NULL ? trans : lastp->next) = runp->next;
271.52 -+ {
271.53 -+ /* This means we haven't found the module. Remove it. */
271.54 -+ if (lastp == NULL)
271.55 -+ trans = runp->next;
271.56 -+ else
271.57 -+ lastp->next = runp->next;
271.58 -+ }
271.59 - }
271.60 -
271.61 - /* Allocate room for handle. */
271.62 -===================================================================
271.63 ---- glibc-2.2.5/iconv/gconv_simple.c.old 2001-08-03 15:06:46.000000000 -0700
271.64 -+++ glibc-2.2.5/iconv/gconv_simple.c 2005-03-10 00:49:45.558181608 -0800
271.65 -@@ -1,5 +1,5 @@
271.66 - /* Simple transformations functions.
271.67 -- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
271.68 -+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
271.69 - This file is part of the GNU C Library.
271.70 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
271.71 -
271.72 -@@ -73,12 +73,13 @@
271.73 - #if __BYTE_ORDER == __LITTLE_ENDIAN
271.74 - /* Sigh, we have to do some real work. */
271.75 - size_t cnt;
271.76 -+ uint32_t *outptr32 = (uint32_t *) outptr;
271.77 -
271.78 - for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
271.79 -- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
271.80 -+ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
271.81 -
271.82 - *inptrp = inptr;
271.83 -- *outptrp = outptr;
271.84 -+ *outptrp = (unsigned char *) outptr32;
271.85 - #elif __BYTE_ORDER == __BIG_ENDIAN
271.86 - /* Simply copy the data. */
271.87 - *inptrp = inptr + n_convert * 4;
271.88 -@@ -176,13 +177,16 @@
271.89 - (*outptrp)[2] = state->__value.__wchb[1];
271.90 - (*outptrp)[3] = state->__value.__wchb[0];
271.91 -
271.92 -- *outptrp += 4;
271.93 - #elif __BYTE_ORDER == __BIG_ENDIAN
271.94 - /* XXX unaligned */
271.95 -- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
271.96 -+ (*outptrp)[0] = state->__value.__wchb[0];
271.97 -+ (*outptrp)[1] = state->__value.__wchb[1];
271.98 -+ (*outptrp)[2] = state->__value.__wchb[2];
271.99 -+ (*outptrp)[3] = state->__value.__wchb[3];
271.100 - #else
271.101 - # error "This endianess is not supported."
271.102 - #endif
271.103 -+ *outptrp += 4;
271.104 -
271.105 - /* Clear the state buffer. */
271.106 - state->__count &= ~7;
271.107 -@@ -251,7 +255,8 @@
271.108 - return __GCONV_ILLEGAL_INPUT;
271.109 - }
271.110 -
271.111 -- *((uint32_t *) outptr)++ = inval;
271.112 -+ *((uint32_t *) outptr) = inval;
271.113 -+ outptr += sizeof (uint32_t);
271.114 - }
271.115 -
271.116 - *inptrp = inptr;
271.117 -@@ -427,9 +432,11 @@
271.118 - #if __BYTE_ORDER == __BIG_ENDIAN
271.119 - /* Sigh, we have to do some real work. */
271.120 - size_t cnt;
271.121 -+ uint32_t *outptr32 = (uint32_t *) outptr;
271.122 -
271.123 - for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
271.124 -- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
271.125 -+ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
271.126 -+ outptr = (unsigned char *) outptr32;
271.127 -
271.128 - *inptrp = inptr;
271.129 - *outptrp = outptr;
271.130 -@@ -530,12 +537,17 @@
271.131 - (*outptrp)[2] = state->__value.__wchb[1];
271.132 - (*outptrp)[3] = state->__value.__wchb[0];
271.133 -
271.134 -- *outptrp += 4;
271.135 - #else
271.136 - /* XXX unaligned */
271.137 -- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
271.138 -+ (*outptrp)[0] = state->__value.__wchb[0];
271.139 -+ (*outptrp)[1] = state->__value.__wchb[1];
271.140 -+ (*outptrp)[2] = state->__value.__wchb[2];
271.141 -+ (*outptrp)[3] = state->__value.__wchb[3];
271.142 -+
271.143 - #endif
271.144 -
271.145 -+ *outptrp += 4;
271.146 -+
271.147 - /* Clear the state buffer. */
271.148 - state->__count &= ~7;
271.149 -
271.150 -@@ -600,7 +612,8 @@
271.151 - return __GCONV_ILLEGAL_INPUT;
271.152 - }
271.153 -
271.154 -- *((uint32_t *) outptr)++ = inval;
271.155 -+ *((uint32_t *) outptr) = inval;
271.156 -+ outptr += sizeof (uint32_t);
271.157 - }
271.158 -
271.159 - *inptrp = inptr;
271.160 -@@ -782,7 +795,8 @@
271.161 - } \
271.162 - else \
271.163 - /* It's an one byte sequence. */ \
271.164 -- *((uint32_t *) outptr)++ = *inptr++; \
271.165 -+ *((uint32_t *) outptr) = *inptr++; \
271.166 -+ outptr += sizeof (uint32_t); \
271.167 - }
271.168 - #define LOOP_NEED_FLAGS
271.169 - #include <iconv/loop.c>
271.170 -@@ -812,7 +826,8 @@
271.171 - } \
271.172 - else \
271.173 - /* It's an one byte sequence. */ \
271.174 -- *outptr++ = *((const uint32_t *) inptr)++; \
271.175 -+ *outptr++ = *((const uint32_t *) inptr); \
271.176 -+ inptr += sizeof (uint32_t); \
271.177 - }
271.178 - #define LOOP_NEED_FLAGS
271.179 - #include <iconv/loop.c>
271.180 -@@ -1031,7 +1046,8 @@
271.181 - } \
271.182 - \
271.183 - /* Now adjust the pointers and store the result. */ \
271.184 -- *((uint32_t *) outptr)++ = ch; \
271.185 -+ *((uint32_t *) outptr) = ch; \
271.186 -+ outptr += sizeof (uint32_t); \
271.187 - }
271.188 - #define LOOP_NEED_FLAGS
271.189 -
271.190 -@@ -1174,7 +1190,8 @@
271.191 - continue; \
271.192 - } \
271.193 - \
271.194 -- *((uint32_t *) outptr)++ = u1; \
271.195 -+ *((uint32_t *) outptr) = u1; \
271.196 -+ outptr += sizeof (uint32_t); \
271.197 - inptr += 2; \
271.198 - }
271.199 - #define LOOP_NEED_FLAGS
271.200 -@@ -1224,7 +1241,8 @@
271.201 - } \
271.202 - else \
271.203 - { \
271.204 -- *((uint16_t *) outptr)++ = val; \
271.205 -+ *((uint16_t *) outptr) = val; \
271.206 -+ outptr += sizeof (uint16_t); \
271.207 - inptr += 4; \
271.208 - } \
271.209 - }
271.210 -@@ -1265,7 +1283,8 @@
271.211 - continue; \
271.212 - } \
271.213 - \
271.214 -- *((uint32_t *) outptr)++ = u1; \
271.215 -+ *((uint32_t *) outptr) = u1; \
271.216 -+ outptr += sizeof (uint32_t); \
271.217 - inptr += 2; \
271.218 - }
271.219 - #define LOOP_NEED_FLAGS
271.220 -@@ -1314,7 +1333,8 @@
271.221 - } \
271.222 - else \
271.223 - { \
271.224 -- *((uint16_t *) outptr)++ = bswap_16 (val); \
271.225 -+ *((uint16_t *) outptr) = bswap_16 (val); \
271.226 -+ outptr += sizeof (uint16_t); \
271.227 - inptr += 4; \
271.228 - } \
271.229 - }
272.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-i386.patch Tue Aug 14 19:32:22 2007 +0000
272.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
272.3 @@ -1,49 +0,0 @@
272.4 -Fixes
272.5 -../sysdeps/i386/dl-machine.h: In function '_dl_relocate_object':
272.6 -../sysdeps/i386/dl-machine.h:306: error: invalid storage class for function 'elf_machine_rel'
272.7 -../sysdeps/i386/dl-machine.h:385: error: invalid storage class for function 'elf_machine_rel_relative'
272.8 -../sysdeps/i386/dl-machine.h:393: error: invalid storage class for function 'elf_machine_lazy_rel'
272.9 -
272.10 -when building glibc-2.2.5 with gcc-4.0.
272.11 -
272.12 ---- /home/dank/downloads/glibc-2.2.5/sysdeps/i386/dl-machine.h 2001-08-30 16:09:10.000000000 -0700
272.13 -+++ glibc-2.2.5/sysdeps/i386/dl-machine.h 2005-03-11 14:00:22.601858328 -0800
272.14 -@@ -298,7 +299,12 @@
272.15 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
272.16 - MAP is the object containing the reloc. */
272.17 -
272.18 -+#if __GNUC__ >= 4
272.19 -+auto inline void
272.20 -+__attribute ((always_inline))
272.21 -+#else
272.22 - static inline void
272.23 -+#endif
272.24 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
272.25 - const Elf32_Sym *sym, const struct r_found_version *version,
272.26 - Elf32_Addr *const reloc_addr)
272.27 -@@ -378,7 +384,12 @@
272.28 - }
272.29 - }
272.30 -
272.31 -+#if __GNUC__ >= 4
272.32 -+auto inline void
272.33 -+__attribute ((always_inline))
272.34 -+#else
272.35 - static inline void
272.36 -+#endif
272.37 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
272.38 - Elf32_Addr *const reloc_addr)
272.39 - {
272.40 -@@ -386,7 +397,12 @@
272.41 - *reloc_addr += l_addr;
272.42 - }
272.43 -
272.44 -+#if __GNUC__ >= 4
272.45 -+auto inline void
272.46 -+__attribute ((always_inline))
272.47 -+#else
272.48 - static inline void
272.49 -+#endif
272.50 - elf_machine_lazy_rel (struct link_map *map,
272.51 - Elf32_Addr l_addr, const Elf32_Rel *reloc)
272.52 - {
273.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-iconv.patch Tue Aug 14 19:32:22 2007 +0000
273.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
273.3 @@ -1,20 +0,0 @@
273.4 -Fixes
273.5 -iconvconfig.c: In function 'write_output':
273.6 -iconvconfig.c:973: error: invalid storage class for function 'name_insert'
273.7 -
273.8 ---- glibc-2.2.5/iconv/iconvconfig.c.old 2002-01-20 19:20:53.000000000 -0800
273.9 -+++ glibc-2.2.5/iconv/iconvconfig.c 2005-03-11 14:30:27.000000000 -0800
273.10 -@@ -969,7 +969,12 @@
273.11 - char tmpfname[sizeof (GCONV_MODULES_CACHE) + strlen (".XXXXXX")];
273.12 -
273.13 - /* Function to insert the names. */
273.14 -- static void name_insert (const void *nodep, VISIT value, int level)
273.15 -+#if __GNUC__ >= 4
273.16 -+ auto
273.17 -+#else
273.18 -+ static
273.19 -+#endif
273.20 -+ void name_insert (const void *nodep, VISIT value, int level)
273.21 - {
273.22 - struct name *name;
273.23 - unsigned int idx;
274.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-iconvdata.patch Tue Aug 14 19:32:22 2007 +0000
274.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
274.3 @@ -1,114 +0,0 @@
274.4 -Fixes
274.5 -
274.6 -In file included from jis0208.c:23:
274.7 -jis0208.h:32: error: array type has incomplete element type
274.8 -when building with gcc-4.0
274.9 -
274.10 -In file included from cp1258.c:869:
274.11 -../iconv/skeleton.c: In function 'gconv':
274.12 -../iconv/skeleton.c:323: error: invalid lvalue in increment
274.13 -
274.14 -In file included from cp1255.c:550:
274.15 -../iconv/skeleton.c: In function 'gconv':
274.16 -../iconv/skeleton.c:323: error: invalid lvalue in increment
274.17 -
274.18 -In file included from gb18030.c:22114:
274.19 -../iconv/loop.c: In function 'from_gb18030':
274.20 -../iconv/loop.c:282: error: invalid lvalue in increment
274.21 -../iconv/loop.c: In function 'from_gb18030_single':
274.22 -../iconv/loop.c:384: error: invalid lvalue in increment
274.23 -
274.24 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/iso8859-1.c 2001-08-03 15:06:50.000000000 -0700
274.25 -+++ glibc-2.2.5/iconvdata/iso8859-1.c 2005-03-11 15:09:15.233602808 -0800
274.26 -@@ -35,7 +35,8 @@
274.27 - #define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
274.28 - #define LOOPFCT FROM_LOOP
274.29 - #define BODY \
274.30 -- *((uint32_t *) outptr)++ = *inptr++;
274.31 -+ *((uint32_t *) outptr) = *inptr++; \
274.32 -+ outptr += sizeof (uint32_t);
274.33 - #include <iconv/loop.c>
274.34 -
274.35 -
274.36 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/jis0208.h 2001-07-05 21:54:52.000000000 -0700
274.37 -+++ glibc-2.2.5/iconvdata/jis0208.h 2005-03-11 15:27:23.295192304 -0800
274.38 -@@ -24,15 +24,6 @@
274.39 - #include <gconv.h>
274.40 - #include <stdint.h>
274.41 -
274.42 --/* Conversion table. */
274.43 --extern const uint16_t __jis0208_to_ucs[];
274.44 --
274.45 --extern const char __jisx0208_from_ucs4_lat1[256][2];
274.46 --extern const char __jisx0208_from_ucs4_greek[0xc1][2];
274.47 --extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
274.48 --extern const char __jisx0208_from_ucs_tab[][2];
274.49 --
274.50 --
274.51 - /* Struct for table with indeces in UCS mapping table. */
274.52 - struct jisx0208_ucs_idx
274.53 - {
274.54 -@@ -42,6 +33,15 @@
274.55 - };
274.56 -
274.57 -
274.58 -+/* Conversion table. */
274.59 -+extern const uint16_t __jis0208_to_ucs[];
274.60 -+
274.61 -+extern const char __jisx0208_from_ucs4_lat1[256][2];
274.62 -+extern const char __jisx0208_from_ucs4_greek[0xc1][2];
274.63 -+extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
274.64 -+extern const char __jisx0208_from_ucs_tab[][2];
274.65 -+
274.66 -+
274.67 - static inline uint32_t
274.68 - jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
274.69 - {
274.70 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/cp1258.c 2001-07-05 21:54:49.000000000 -0700
274.71 -+++ glibc-2.2.5/iconvdata/cp1258.c 2005-03-11 15:41:44.953200376 -0800
274.72 -@@ -66,7 +66,8 @@
274.73 - if (__builtin_expect (outbuf + 4 <= outend, 1)) \
274.74 - { \
274.75 - /* Write out the last character. */ \
274.76 -- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
274.77 -+ *((uint32_t *) outbuf) = data->__statep->__count >> 3; \
274.78 -+ outbuf += sizeof (uint32_t); \
274.79 - data->__statep->__count = 0; \
274.80 - } \
274.81 - else \
274.82 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/cp1255.c 2001-07-05 21:54:49.000000000 -0700
274.83 -+++ glibc-2.2.5/iconvdata/cp1255.c 2005-03-11 15:47:40.689120296 -0800
274.84 -@@ -65,7 +65,8 @@
274.85 - if (__builtin_expect (outbuf + 4 <= outend, 1)) \
274.86 - { \
274.87 - /* Write out the last character. */ \
274.88 -- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
274.89 -+ *((uint32_t *) outbuf) = data->__statep->__count >> 3; \
274.90 -+ outbuf += sizeof (uint32_t); \
274.91 - data->__statep->__count = 0; \
274.92 - } \
274.93 - else \
274.94 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/gb18030.c 2001-08-03 15:06:47.000000000 -0700
274.95 -+++ glibc-2.2.5/iconvdata/gb18030.c 2005-03-11 15:54:59.060477720 -0800
274.96 -@@ -22108,7 +22108,8 @@
274.97 - } \
274.98 - } \
274.99 - \
274.100 -- *((uint32_t *) outptr)++ = ch; \
274.101 -+ *((uint32_t *) outptr) = ch; \
274.102 -+ outptr += sizeof (uint32_t); \
274.103 - }
274.104 - #define LOOP_NEED_FLAGS
274.105 - #include <iconv/loop.c>
274.106 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/iso-2022-cn-ext.c 2001-07-05 21:54:51.000000000 -0700
274.107 -+++ glibc-2.2.5/iconvdata/iso-2022-cn-ext.c 2005-03-11 15:55:42.002949472 -0800
274.108 -@@ -411,7 +411,8 @@
274.109 - } \
274.110 - } \
274.111 - \
274.112 -- *((uint32_t *) outptr)++ = ch; \
274.113 -+ *((uint32_t *) outptr) = ch; \
274.114 -+ outptr += sizeof (uint32_t); \
274.115 - }
274.116 - #define EXTRA_LOOP_DECLS , int *setp
274.117 - #define INIT_PARAMS int set = (*setp >> 3) & CURRENT_MASK; \
275.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-locale.patch Tue Aug 14 19:32:22 2007 +0000
275.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
275.3 @@ -1,49 +0,0 @@
275.4 -Fixes
275.5 -
275.6 -In file included from strcoll.c:101:
275.7 -../locale/weight.h: In function 'strcoll':
275.8 -../locale/weight.h:23: error: invalid storage class for function 'findidx'
275.9 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/string/strcoll.o] Error 1
275.10 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/string'
275.11 -make[1]: *** [string/subdir_lib] Error 2
275.12 -make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5'
275.13 -make: *** [all] Error 2
275.14 -
275.15 -Discussed here
275.16 -http://sources.redhat.com/ml/libc-hacker/2004-09/msg00015.html
275.17 -the fix checked in to cvs seems to be
275.18 -http://sources.redhat.com/ml/glibc-cvs/2004-q3/msg01071.html
275.19 -but that fix doesn't support older gcc's, so I can't use it directly.
275.20 -
275.21 -Here's a fix the does work with older versions of gcc:
275.22 -
275.23 ---- glibc-2.2.5/locale/weight.h.old 2001-07-05 21:55:33.000000000 -0700
275.24 -+++ glibc-2.2.5/locale/weight.h 2005-03-10 16:07:46.669579888 -0800
275.25 -@@ -18,7 +18,12 @@
275.26 - 02111-1307 USA. */
275.27 -
275.28 - /* Find index of weight. */
275.29 -+#if __GNUC__ >= 4
275.30 -+auto inline int32_t
275.31 -+__attribute ((always_inline))
275.32 -+#else
275.33 - static inline int32_t
275.34 -+#endif
275.35 - findidx (const unsigned char **cpp)
275.36 - {
275.37 - int_fast32_t i = table[*(*cpp)++];
275.38 ---- glibc-2.2.5/locale/weightwc.h.old 2001-08-06 21:26:15.000000000 -0700
275.39 -+++ glibc-2.2.5/locale/weightwc.h 2005-03-10 16:13:08.651631176 -0800
275.40 -@@ -18,7 +18,12 @@
275.41 - 02111-1307 USA. */
275.42 -
275.43 - /* Find index of weight. */
275.44 -+#if __GNUC__ >= 4
275.45 -+auto inline int32_t
275.46 -+__attribute ((always_inline))
275.47 -+#else
275.48 - static inline int32_t
275.49 -+#endif
275.50 - findidx (const wint_t **cpp)
275.51 - {
275.52 - int32_t i;
276.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-malloc.patch Tue Aug 14 19:32:22 2007 +0000
276.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
276.3 @@ -1,48 +0,0 @@
276.4 -Fixes
276.5 -programs/ld-collate.c: In function 'obstack_int32_grow':
276.6 -programs/ld-collate.c:48: error: invalid lvalue in increment
276.7 -programs/ld-collate.c: In function 'obstack_int32_grow_fast':
276.8 -programs/ld-collate.c:57: error: invalid lvalue in increment
276.9 -
276.10 -Change taken by eyeball from version 1.20 at
276.11 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/malloc/obstack.h?cvsroot=glibc
276.12 -
276.13 ---- /home/dank/downloads/glibc-2.2.5/malloc/obstack.h 2001-07-05 21:55:35.000000000 -0700
276.14 -+++ glibc-2.2.5/malloc/obstack.h 2005-03-11 16:12:16.175812224 -0800
276.15 -@@ -423,22 +423,29 @@
276.16 - ({ struct obstack *__o = (OBSTACK); \
276.17 - if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
276.18 - _obstack_newchunk (__o, sizeof (void *)); \
276.19 -- *((void **)__o->next_free)++ = (datum); \
276.20 -- (void) 0; })
276.21 -+ obstack_ptr_grow_fast (__o, datum); })
276.22 -
276.23 - # define obstack_int_grow(OBSTACK,datum) \
276.24 - __extension__ \
276.25 - ({ struct obstack *__o = (OBSTACK); \
276.26 - if (__o->next_free + sizeof (int) > __o->chunk_limit) \
276.27 - _obstack_newchunk (__o, sizeof (int)); \
276.28 -- *((int *)__o->next_free)++ = (datum); \
276.29 -+ obstack_int_grow_fast (__o, datum); })
276.30 -+
276.31 -+# define obstack_ptr_grow_fast(OBSTACK,aptr) \
276.32 -+__extension__ \
276.33 -+({ struct obstack *__o1 = (OBSTACK); \
276.34 -+ *(const void **) __o1->next_free = (aptr); \
276.35 -+ __o1->next_free += sizeof (const void *); \
276.36 - (void) 0; })
276.37 -
276.38 --# define obstack_ptr_grow_fast(h,aptr) \
276.39 -- (*((void **) (h)->next_free)++ = (aptr))
276.40 -+# define obstack_int_grow_fast(OBSTACK,aint) \
276.41 -+__extension__ \
276.42 -+({ struct obstack *__o1 = (OBSTACK); \
276.43 -+ *(int *) __o1->next_free = (aint); \
276.44 -+ __o1->next_free += sizeof (int); \
276.45 -+ (void) 0; })
276.46 -
276.47 --# define obstack_int_grow_fast(h,aint) \
276.48 -- (*((int *) (h)->next_free)++ = (aint))
276.49 -
276.50 - # define obstack_blank(OBSTACK,length) \
276.51 - __extension__ \
277.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-mipsel.patch Tue Aug 14 19:32:22 2007 +0000
277.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
277.3 @@ -1,81 +0,0 @@
277.4 -Message-ID: <424A8F67.7060307@kaear.co.uk>
277.5 -Date: Wed, 30 Mar 2005 12:37:11 +0100
277.6 -From: Piete Sartain <kaear@kaear.co.uk>
277.7 -To: crossgcc@sources.redhat.com
277.8 -Subject: [Patch] CT 0.3 - glibc-2.2.5-allow-gcc-4.0-mipsel
277.9 -
277.10 -
277.11 -I copied the relevant sections out of
277.12 -http://kegel.com/crosstool/crosstool-0.29/patches/glibc-2.3-20050307/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch
277.13 -for a mipsel target.
277.14 -
277.15 -The build still fails, but now with an assembler error at crtbegin.o.
277.16 -
277.17 -[---dank: judging from my old buildlogs, this should fix:
277.18 -
277.19 -In file included from dynamic-link.h:21,
277.20 - from dl-reloc.c:153:
277.21 -../sysdeps/mips/dl-machine.h: In function '_dl_relocate_object':
277.22 -../sysdeps/mips/dl-machine.h:477: error: invalid storage class for function 'elf_machine_rel'
277.23 -../sysdeps/mips/dl-machine.h:539: error: invalid storage class for function 'elf_machine_rel_relative'
277.24 -../sysdeps/mips/dl-machine.h:546: error: invalid storage class for function 'elf_machine_lazy_rel'
277.25 -../sysdeps/mips/dl-machine.h:554: error: invalid storage class for function 'elf_machine_got_rel'
277.26 -../sysdeps/mips/dl-machine.h:641: error: invalid storage class for function 'elf_machine_runtime_setup'
277.27 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/elf'
277.28 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/elf/dl-reloc.o] Error 1
277.29 -make[1]: *** [elf/subdir_lib] Error 2
277.30 -make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5'
277.31 -make: *** [all] Error 2
277.32 ----]
277.33 -
277.34 -
277.35 ---- glibc-2.2.5/sysdeps/mips/dl-machine.h.old 2005-03-28 18:19:56.000000000 +0100
277.36 -+++ glibc-2.2.5/sysdeps/mips/dl-machine.h 2005-03-28 18:25:15.000000000 +0100
277.37 -@@ -534,14 +534,28 @@
277.38 - }
277.39 - }
277.40 -
277.41 --static inline void
277.42 -+#if __GNUC__ >= 4
277.43 -+ auto inline void
277.44 -+#else
277.45 -+ static inline void
277.46 -+#endif
277.47 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
277.48 -+ __attribute ((always_inline))
277.49 -+#endif
277.50 - elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
277.51 - ElfW(Addr) *const reloc_addr)
277.52 - {
277.53 - /* XXX Nothing to do. There is no relative relocation, right? */
277.54 - }
277.55 -
277.56 --static inline void
277.57 -+#if __GNUC__ >= 4
277.58 -+ auto inline void
277.59 -+#else
277.60 -+ static inline void
277.61 -+#endif
277.62 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
277.63 -+ __attribute ((always_inline))
277.64 -+#endif
277.65 - elf_machine_lazy_rel (struct link_map *map,
277.66 - ElfW(Addr) l_addr, const ElfW(Rel) *reloc)
277.67 - {
277.68 -@@ -550,7 +564,14 @@
277.69 -
277.70 - #ifndef RTLD_BOOTSTRAP
277.71 - /* Relocate GOT. */
277.72 --static inline void
277.73 -+#if __GNUC__ >= 4
277.74 -+ auto inline void
277.75 -+#else
277.76 -+ static inline void
277.77 -+#endif
277.78 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
277.79 -+ __attribute ((always_inline))
277.80 -+#endif
277.81 - elf_machine_got_rel (struct link_map *map, int lazy)
277.82 - {
277.83 - ElfW(Addr) *got;
277.84 -
278.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-msort.patch Tue Aug 14 19:32:22 2007 +0000
278.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
278.3 @@ -1,47 +0,0 @@
278.4 -Fixes
278.5 -
278.6 -msort.c: In function 'msort_with_tmp':
278.7 -msort.c:59: error: invalid lvalue in increment
278.8 -msort.c:59: error: invalid lvalue in increment
278.9 -msort.c:64: error: invalid lvalue in increment
278.10 -msort.c:64: error: invalid lvalue in increment
278.11 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/stdlib/msort.o] Error 1
278.12 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/stdlib'
278.13 -make[1]: *** [stdlib/subdir_lib] Error 2
278.14 -make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5'
278.15 -make: *** [all] Error 2
278.16 -
278.17 -when building glibc-2.2.5 with gcc-3.4.
278.18 -
278.19 -Taken from ../glibc-2.3.2/glibc-2.3.2-allow-gcc-3.5-msort.patch
278.20 -and rediffed.
278.21 -
278.22 ---- glibc-2.2.5/stdlib/msort.c.old 2001-07-05 21:55:41.000000000 -0700
278.23 -+++ glibc-2.2.5/stdlib/msort.c 2005-03-10 08:24:24.152204976 -0800
278.24 -@@ -1,6 +1,6 @@
278.25 - /* An alternative to qsort, with an identical interface.
278.26 - This file is part of the GNU C Library.
278.27 -- Copyright (C) 1992, 1995-1997, 1999, 2000, 2001 Free Software Foundation, Inc.
278.28 -+ Copyright (C) 1992, 1995-1997, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
278.29 - Written by Mike Haertel, September 1988.
278.30 -
278.31 - The GNU C Library is free software; you can redistribute it and/or
278.32 -@@ -56,12 +56,16 @@
278.33 - if ((*cmp) (b1, b2) <= 0)
278.34 - {
278.35 - --n1;
278.36 -- *((op_t *) tmp)++ = *((op_t *) b1)++;
278.37 -+ *((op_t *) tmp) = *((op_t *) b1);
278.38 -+ tmp += sizeof (op_t);
278.39 -+ b1 += sizeof (op_t);
278.40 - }
278.41 - else
278.42 - {
278.43 - --n2;
278.44 -- *((op_t *) tmp)++ = *((op_t *) b2)++;
278.45 -+ *((op_t *) tmp) = *((op_t *) b2);
278.46 -+ tmp += sizeof (op_t);
278.47 -+ b2 += sizeof (op_t);
278.48 - }
278.49 - }
278.50 - else
279.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-powerpc-procfs.patch Tue Aug 14 19:32:22 2007 +0000
279.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
279.3 @@ -1,54 +0,0 @@
279.4 -(See similar patch for glibc-2.3.3)
279.5 -
279.6 -This fix discussed here:
279.7 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
279.8 -
279.9 -Fixes
279.10 -
279.11 -In file included from ../linuxthreads_db/proc_service.h:20,
279.12 - from ../linuxthreads_db/thread_dbP.h:6,
279.13 - from internals.h:36,
279.14 - from attr.c:23:
279.15 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:53: error: syntax error before 'elf_vrreg_t'
279.16 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:53: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
279.17 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:53: warning: data definition has no type or storage class
279.18 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:54: error: syntax error before 'elf_vrregset_t'
279.19 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:54: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
279.20 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:54: warning: data definition has no type or storage class
279.21 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/powerpc-405-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/linuxthreads'
279.22 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-0.30/build/powerpc-405-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/linuxthreads/attr.o] Error 1
279.23 -
279.24 -From: Martin Egholm Nielsen martin at egholm-nielsen dot dk
279.25 -To: crossgcc at sources dot redhat dot com
279.26 -Date: Thu, 24 Mar 2005 18:40:27 +0100
279.27 -Subject: [Patch] CT 0.29 - glibc-2.2.5-allow-gcc-4.0-powerpc-procfs
279.28 -
279.29 -Hi Dan,
279.30 -
279.31 -I had to add the following patch in order to make CT 0.29 and glibc
279.32 -2.2.5 compile with gcc 4.0 (20050305) and Kernel 2.4.20...
279.33 -
279.34 -// Martin
279.35 -
279.36 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.old 2005-03-24 13:11:39.746062400 +0100
279.37 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h 2005-03-24 13:15:11.810996800 +0100
279.38 -@@ -42,15 +42,10 @@
279.39 - typedef double elf_fpreg_t;
279.40 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
279.41 -
279.42 --/* gcc 3.1 and newer support __uint128_t. */
279.43 --#if !__GNUC_PREREQ(3,1)
279.44 --typedef struct {
279.45 -- unsigned long u[4];
279.46 --} __attribute((aligned(16))) __uint128_t;
279.47 --#endif
279.48 --
279.49 - /* Altivec registers */
279.50 --typedef __uint128_t elf_vrreg_t;
279.51 -+typedef struct {
279.52 -+ unsigned int u[4];
279.53 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
279.54 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
279.55 -
279.56 - struct elf_siginfo
279.57 -
280.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-powerpc.patch Tue Aug 14 19:32:22 2007 +0000
280.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
280.3 @@ -1,23 +0,0 @@
280.4 -In file included from dynamic-link.h:21,
280.5 - from dl-reloc.c:153:
280.6 -../sysdeps/powerpc/dl-machine.h: In function '_dl_relocate_object':
280.7 -../sysdeps/powerpc/dl-machine.h:399: error: invalid storage class for function 'elf_machine_rela_relative'
280.8 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/elf/dl-reloc.o] Error 1
280.9 ---- glibc-2.2.5/sysdeps/powerpc/dl-machine.h.old Thu Mar 17 13:28:17 2005
280.10 -+++ glibc-2.2.5/sysdeps/powerpc/dl-machine.h Thu Mar 17 13:29:03 2005
280.11 -@@ -393,7 +393,14 @@
280.12 - reloc_addr, finaladdr, rinfo);
280.13 - }
280.14 -
280.15 --static inline void
280.16 -+#if __GNUC__ >= 4
280.17 -+ auto inline void
280.18 -+#else
280.19 -+ static inline void
280.20 -+#endif
280.21 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
280.22 -+ __attribute ((always_inline))
280.23 -+#endif
280.24 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
280.25 - Elf32_Addr *const reloc_addr)
280.26 - {
281.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-sunrpc.patch Tue Aug 14 19:32:22 2007 +0000
281.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
281.3 @@ -1,221 +0,0 @@
281.4 -[Taken from ../glibc-2.3.2/glibc-2.3.2-allow-gcc-3.4-sunrpc.patch,
281.5 -rediffed, and with a fix for sunrpc/auth_none.c that was
281.6 -inexplicably not included in the original patch.]
281.7 -
281.8 -Fixes
281.9 -
281.10 -auth_none.c: In function 'authnone_create':
281.11 -auth_none.c:83: error: invalid lvalue in assignment
281.12 -clnt_perr.c: In function '_buf':
281.13 -clnt_perr.c:68: error: invalid lvalue in assignment
281.14 -clnt_raw.c: In function 'clntraw_create':
281.15 -clnt_raw.c:103: error: invalid lvalue in assignment
281.16 -clnt_simp.c: In function 'callrpc':
281.17 -clnt_simp.c:78: error: invalid lvalue in assignment
281.18 -etc.
281.19 -
281.20 -building glibc-2.2.5 with gcc-4.0.
281.21 -
281.22 ----
281.23 -
281.24 -http://sources.redhat.com/ml/libc-hacker/2004-02/msg00005.html
281.25 -[Also in CVS, but the original patch is easier to get.]
281.26 -
281.27 -Fixes errors like
281.28 -
281.29 -clnt_perr.c: In function `_buf':
281.30 -clnt_perr.c:67: error: invalid lvalue in assignment
281.31 -
281.32 -when building with gcc-3.5.
281.33 -
281.34 -To: libc-hacker at sources dot redhat dot com
281.35 -Subject: Fix cast as lvalue in sunrpc
281.36 -From: Andreas Schwab <schwab at suse dot de>
281.37 -X-Yow: SHHHH!! I hear SIX TATTOOED TRUCK-DRIVERS tossing ENGINE BLOCKS
281.38 - into empty OIL DRUMS dot dot
281.39 -Date: Sun, 08 Feb 2004 17:38:31 +0100
281.40 -Message-ID: <je4qu1frw8.fsf@sykes.suse.de>
281.41 -
281.42 -This fixes the uses of casts as lvalue in the sunrpc code.
281.43 -
281.44 -Andreas.
281.45 -
281.46 -2004-02-08 Andreas Schwab <schwab@suse.de>
281.47 -
281.48 - * include/rpc/rpc.h: Declare thread variables with their correct
281.49 - type.
281.50 - * sunrpc/clnt_perr.c: Don't cast thread variables.
281.51 - * sunrpc/clnt_raw.c: Likewise.
281.52 - * sunrpc/clnt_simp.c: Likewise.
281.53 - * sunrpc/key_call.c: Likewise.
281.54 - * sunrpc/svcauth_des.c: Likewise.
281.55 - * sunrpc/svc.c: Likewise.
281.56 - * sunrpc/svc_raw.c: Likewise.
281.57 - * sunrpc/svc_simple.c: Likewise.
281.58 -
281.59 -diff -ur glibc-2.2.5/include/rpc/rpc.h glibc-2.2.5-patched/include/rpc/rpc.h
281.60 ---- glibc-2.2.5/include/rpc/rpc.h 2001-03-25 21:11:32.000000000 -0800
281.61 -+++ glibc-2.2.5-patched/include/rpc/rpc.h 2005-03-11 13:18:29.810860624 -0800
281.62 -@@ -18,24 +18,24 @@
281.63 -
281.64 - void *authnone_private_s; /* auth_none.c */
281.65 -
281.66 -- void *clnt_perr_buf_s; /* clnt_perr.c */
281.67 -+ char *clnt_perr_buf_s; /* clnt_perr.c */
281.68 -
281.69 -- void *clntraw_private_s; /* clnt_raw.c */
281.70 -+ struct clntraw_private_s *clntraw_private_s; /* clnt_raw.c */
281.71 -
281.72 -- void *callrpc_private_s; /* clnt_simp.c */
281.73 -+ struct callrpc_private_s *callrpc_private_s; /* clnt_simp.c */
281.74 -
281.75 -- void *key_call_private_s; /* key_call.c */
281.76 -+ struct key_call_private *key_call_private_s; /* key_call.c */
281.77 -
281.78 -- void *authdes_cache_s; /* svcauth_des.c */
281.79 -- void *authdes_lru_s; /* svcauth_des.c */
281.80 -+ struct cache_entry *authdes_cache_s; /* svcauth_des.c */
281.81 -+ int *authdes_lru_s; /* svcauth_des.c */
281.82 -
281.83 -- void *svc_xports_s; /* svc.c */
281.84 -- void *svc_head_s; /* svc.c */
281.85 -+ SVCXPRT **svc_xports_s; /* svc.c */
281.86 -+ struct svc_callout *svc_head_s; /* svc.c */
281.87 -
281.88 -- void *svcraw_private_s; /* svc_raw.c */
281.89 -+ struct svcraw_private_s *svcraw_private_s; /* svc_raw.c */
281.90 -
281.91 -- void *svcsimple_proglst_s; /* svc_simple.c */
281.92 -- void *svcsimple_transp_s; /* svc_simple.c */
281.93 -+ struct proglst_ *svcsimple_proglst_s; /* svc_simple.c */
281.94 -+ SVCXPRT *svcsimple_transp_s; /* svc_simple.c */
281.95 - };
281.96 -
281.97 - extern struct rpc_thread_variables *__rpc_thread_variables(void)
281.98 ---- glibc-2.2.5/sunrpc/auth_none.c.old 2005-03-10 16:26:53.874178280 -0800
281.99 -+++ glibc-2.2.5/sunrpc/auth_none.c 2005-03-10 16:34:24.551664888 -0800
281.100 -@@ -62,7 +62,7 @@
281.101 - u_int mcnt;
281.102 - };
281.103 - #ifdef _RPC_THREAD_SAFE_
281.104 --#define authnone_private ((struct authnone_private_s *)RPC_THREAD_VARIABLE(authnone_private_s))
281.105 -+#define authnone_private RPC_THREAD_VARIABLE(authnone_private_s)
281.106 - #else
281.107 - static struct authnone_private_s *authnone_private;
281.108 - #endif
281.109 -diff -ur glibc-2.2.5/sunrpc/clnt_perr.c glibc-2.2.5-patched/sunrpc/clnt_perr.c
281.110 ---- glibc-2.2.5/sunrpc/clnt_perr.c 2001-08-16 21:48:31.000000000 -0700
281.111 -+++ glibc-2.2.5-patched/sunrpc/clnt_perr.c 2005-03-11 13:18:29.812860320 -0800
281.112 -@@ -56,7 +56,7 @@
281.113 - * buf variable in a few functions. Overriding a global variable
281.114 - * with a local variable of the same name is a bad idea, anyway.
281.115 - */
281.116 --#define buf ((char *)RPC_THREAD_VARIABLE(clnt_perr_buf_s))
281.117 -+#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
281.118 - #else
281.119 - static char *buf;
281.120 - #endif
281.121 -diff -ur glibc-2.2.5/sunrpc/clnt_raw.c glibc-2.2.5-patched/sunrpc/clnt_raw.c
281.122 ---- glibc-2.2.5/sunrpc/clnt_raw.c 2001-03-20 10:34:22.000000000 -0800
281.123 -+++ glibc-2.2.5-patched/sunrpc/clnt_raw.c 2005-03-11 13:18:29.813860168 -0800
281.124 -@@ -61,7 +61,7 @@
281.125 - u_int mcnt;
281.126 - };
281.127 - #ifdef _RPC_THREAD_SAFE_
281.128 --#define clntraw_private ((struct clntraw_private_s *)RPC_THREAD_VARIABLE(clntraw_private_s))
281.129 -+#define clntraw_private RPC_THREAD_VARIABLE(clntraw_private_s)
281.130 - #else
281.131 - static struct clntraw_private_s *clntraw_private;
281.132 - #endif
281.133 -diff -ur glibc-2.2.5/sunrpc/clnt_simp.c glibc-2.2.5-patched/sunrpc/clnt_simp.c
281.134 ---- glibc-2.2.5/sunrpc/clnt_simp.c 2001-08-19 23:28:21.000000000 -0700
281.135 -+++ glibc-2.2.5-patched/sunrpc/clnt_simp.c 2005-03-11 13:18:29.814860016 -0800
281.136 -@@ -55,7 +55,7 @@
281.137 - char *oldhost;
281.138 - };
281.139 - #ifdef _RPC_THREAD_SAFE_
281.140 --#define callrpc_private ((struct callrpc_private_s *)RPC_THREAD_VARIABLE(callrpc_private_s))
281.141 -+#define callrpc_private RPC_THREAD_VARIABLE(callrpc_private_s)
281.142 - #else
281.143 - static struct callrpc_private_s *callrpc_private;
281.144 - #endif
281.145 -diff -ur glibc-2.2.5/sunrpc/key_call.c glibc-2.2.5-patched/sunrpc/key_call.c
281.146 ---- glibc-2.2.5/sunrpc/key_call.c 2001-03-20 10:34:22.000000000 -0800
281.147 -+++ glibc-2.2.5-patched/sunrpc/key_call.c 2005-03-11 13:18:29.816859712 -0800
281.148 -@@ -360,7 +360,7 @@
281.149 - uid_t uid; /* user-id at last authorization */
281.150 - };
281.151 - #ifdef _RPC_THREAD_SAFE_
281.152 --#define key_call_private_main ((struct key_call_private *)RPC_THREAD_VARIABLE(key_call_private_s))
281.153 -+#define key_call_private_main RPC_THREAD_VARIABLE(key_call_private_s)
281.154 - #else
281.155 - static struct key_call_private *key_call_private_main;
281.156 - #endif
281.157 -diff -ur glibc-2.2.5/sunrpc/svcauth_des.c glibc-2.2.5-patched/sunrpc/svcauth_des.c
281.158 ---- glibc-2.2.5/sunrpc/svcauth_des.c 2001-08-19 23:37:09.000000000 -0700
281.159 -+++ glibc-2.2.5-patched/sunrpc/svcauth_des.c 2005-03-11 13:18:29.821858952 -0800
281.160 -@@ -72,8 +72,8 @@
281.161 - char *localcred; /* generic local credential */
281.162 - };
281.163 - #ifdef _RPC_THREAD_SAFE_
281.164 --#define authdes_cache ((struct cache_entry *)RPC_THREAD_VARIABLE(authdes_cache_s))
281.165 --#define authdes_lru ((int *)RPC_THREAD_VARIABLE(authdes_lru_s))
281.166 -+#define authdes_cache RPC_THREAD_VARIABLE(authdes_cache_s)
281.167 -+#define authdes_lru RPC_THREAD_VARIABLE(authdes_lru_s)
281.168 - #else
281.169 - static struct cache_entry *authdes_cache;
281.170 - static int *authdes_lru;
281.171 -diff -ur glibc-2.2.5/sunrpc/svc.c glibc-2.2.5-patched/sunrpc/svc.c
281.172 ---- glibc-2.2.5/sunrpc/svc.c 2001-03-20 10:34:22.000000000 -0800
281.173 -+++ glibc-2.2.5-patched/sunrpc/svc.c 2005-03-11 13:18:29.817859560 -0800
281.174 -@@ -44,7 +44,7 @@
281.175 - #include <sys/poll.h>
281.176 -
281.177 - #ifdef _RPC_THREAD_SAFE_
281.178 --#define xports ((SVCXPRT **)RPC_THREAD_VARIABLE(svc_xports_s))
281.179 -+#define xports RPC_THREAD_VARIABLE(svc_xports_s)
281.180 - #else
281.181 - static SVCXPRT **xports;
281.182 - #endif
281.183 -@@ -63,7 +63,7 @@
281.184 - void (*sc_dispatch) (struct svc_req *, SVCXPRT *);
281.185 - };
281.186 - #ifdef _RPC_THREAD_SAFE_
281.187 --#define svc_head ((struct svc_callout *)RPC_THREAD_VARIABLE(svc_head_s))
281.188 -+#define svc_head RPC_THREAD_VARIABLE(svc_head_s)
281.189 - #else
281.190 - static struct svc_callout *svc_head;
281.191 - #endif
281.192 -diff -ur glibc-2.2.5/sunrpc/svc_raw.c glibc-2.2.5-patched/sunrpc/svc_raw.c
281.193 ---- glibc-2.2.5/sunrpc/svc_raw.c 2001-03-20 10:34:22.000000000 -0800
281.194 -+++ glibc-2.2.5-patched/sunrpc/svc_raw.c 2005-03-11 13:18:29.818859408 -0800
281.195 -@@ -54,7 +54,7 @@
281.196 - char verf_body[MAX_AUTH_BYTES];
281.197 - };
281.198 - #ifdef _RPC_THREAD_SAFE_
281.199 --#define svcraw_private ((struct svcraw_private_s *)RPC_THREAD_VARIABLE(svcraw_private_s))
281.200 -+#define svcraw_private RPC_THREAD_VARIABLE(svcraw_private_s)
281.201 - #else
281.202 - static struct svcraw_private_s *svcraw_private;
281.203 - #endif
281.204 -diff -ur glibc-2.2.5/sunrpc/svc_simple.c glibc-2.2.5-patched/sunrpc/svc_simple.c
281.205 ---- glibc-2.2.5/sunrpc/svc_simple.c 2001-08-17 00:16:04.000000000 -0700
281.206 -+++ glibc-2.2.5-patched/sunrpc/svc_simple.c 2005-03-11 13:18:29.820859104 -0800
281.207 -@@ -62,7 +62,7 @@
281.208 - struct proglst_ *p_nxt;
281.209 - };
281.210 - #ifdef _RPC_THREAD_SAFE_
281.211 --#define proglst ((struct proglst_ *)RPC_THREAD_VARIABLE(svcsimple_proglst_s))
281.212 -+#define proglst RPC_THREAD_VARIABLE(svcsimple_proglst_s)
281.213 - #else
281.214 - static struct proglst_ *proglst;
281.215 - #endif
281.216 -@@ -70,7 +70,7 @@
281.217 -
281.218 - static void universal (struct svc_req *rqstp, SVCXPRT *transp_s);
281.219 - #ifdef _RPC_THREAD_SAFE_
281.220 --#define transp ((SVCXPRT *)RPC_THREAD_VARIABLE(svcsimple_transp_s))
281.221 -+#define transp RPC_THREAD_VARIABLE(svcsimple_transp_s)
281.222 - #else
281.223 - static SVCXPRT *transp;
281.224 - #endif
282.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-alpha-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
282.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
282.3 @@ -1,58 +0,0 @@
282.4 -Fix for this error:
282.5 -
282.6 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
282.7 -../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
282.8 -../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
282.9 -../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
282.10 -make[2]: *** [/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
282.11 -make[2]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
282.12 -make[1]: *** [posix/subdir_lib] Error 2
282.13 -make[1]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5'
282.14 -make: *** [all] Error 2
282.15 -
282.16 -[ Same as glibc-2.3.2-alpha-pwrite.patch except for copyright date ]
282.17 -
282.18 -extracted from GLIBC CVS by Dan Kegel
282.19 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc'
282.20 -(to match context of...)
282.21 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
282.22 -and rediffed.
282.23 -
282.24 -cf.
282.25 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
282.26 -
282.27 -Originally thought we needed this hunk, too:
282.28 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
282.29 -but it seems the sysdep.h change is sufficient, and works better
282.30 -when compiling against linux-2.4.
282.31 -
282.32 -===================================================================
282.33 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h.old 2004-05-24 22:21:44.000000000 -0700
282.34 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h 2004-05-24 22:22:48.000000000 -0700
282.35 -@@ -1,3 +1,3 @@
282.36 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
282.37 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
282.38 - This file is part of the GNU C Library.
282.39 - Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
282.40 -@@ -60,6 +60,21 @@
282.41 - #define __NR_osf_getsysinfo 256
282.42 - #define __NR_osf_setsysinfo 257
282.43 -
282.44 -+/* Help old kernel headers where particular syscalls are not available. */
282.45 -+#ifndef __NR_semtimedop
282.46 -+# define __NR_semtimedop 423
282.47 -+#endif
282.48 -+
282.49 -+/* This is a kludge to make syscalls.list find these under the names
282.50 -+ pread and pwrite, since some kernel headers define those names
282.51 -+ and some define the *64 names for the same system calls. */
282.52 -+#if !defined __NR_pread && defined __NR_pread64
282.53 -+# define __NR_pread __NR_pread64
282.54 -+#endif
282.55 -+#if !defined __NR_pwrite && defined __NR_pwrite64
282.56 -+# define __NR_pwrite __NR_pwrite64
282.57 -+#endif
282.58 -+
282.59 - /*
282.60 - * In order to get the hidden arguments for rt_sigaction set up
282.61 - * properly, we need to call the assembly version. Detect this in the
283.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-arm-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
283.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
283.3 @@ -1,30 +0,0 @@
283.4 -Should fix
283.5 -
283.6 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
283.7 -../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
283.8 -../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
283.9 -../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
283.10 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
283.11 -make[2]: Leaving directory `/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
283.12 -make[1]: *** [posix/subdir_lib] Error 2
283.13 -
283.14 -Copied from similar patch for alpha.
283.15 -
283.16 ---- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/arm/sysdep.h 2001-07-05 21:56:13.000000000 -0700
283.17 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-08-07 10:45:26.000000000 -0700
283.18 -@@ -32,6 +32,15 @@
283.19 - #define SWI_BASE (0x900000)
283.20 - #define SYS_ify(syscall_name) (__NR_##syscall_name)
283.21 -
283.22 -+/* This is a kludge to make syscalls.list find these under the names
283.23 -+ pread and pwrite, since some kernel headers define those names
283.24 -+ and some define the *64 names for the same system calls. */
283.25 -+#if !defined __NR_pread && defined __NR_pread64
283.26 -+# define __NR_pread __NR_pread64
283.27 -+#endif
283.28 -+#if !defined __NR_pwrite && defined __NR_pwrite64
283.29 -+# define __NR_pwrite __NR_pwrite64
283.30 -+#endif
283.31 -
283.32 - #ifdef __ASSEMBLER__
283.33 -
284.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-crosstest.patch Tue Aug 14 19:32:22 2007 +0000
284.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
284.3 @@ -1,27 +0,0 @@
284.4 -Fixes errors like
284.5 - /build-glibc/dlfcn/glrefmain: cannot load `glreflib1.so'
284.6 -in glibc regression test
284.7 -
284.8 ---- glibc-2.2.5/dlfcn/Makefile.old Thu Jul 24 16:30:20 2003
284.9 -+++ glibc-2.2.5/dlfcn/Makefile Thu Jul 24 17:25:01 2003
284.10 -@@ -60,6 +60,8 @@
284.11 - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names)))
284.12 - $(test-modules): $(objpfx)%.so: $(objpfx)%.os
284.13 - $(build-module)
284.14 -+# without following rule, test-modules don't get built when cross-compiling
284.15 -+tests: $(test-modules)
284.16 -
284.17 - $(objpfx)glrefmain: $(libdl)
284.18 - $(objpfx)glrefmain.out: $(objpfx)glrefmain \
284.19 ---- glibc-2.2.5/elf/Makefile.old Thu Jul 24 18:17:12 2003
284.20 -+++ glibc-2.2.5/elf/Makefile Thu Jul 24 18:18:58 2003
284.21 -@@ -263,6 +263,9 @@
284.22 - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
284.23 - generated += $(addsuffix .so,$(strip $(modules-names)))
284.24 -
284.25 -+# without following rule, test-modules don't get built when cross-compiling
284.26 -+tests: $(test-modules)
284.27 -+
284.28 - ifeq (yes,$(build-shared))
284.29 - ifeq ($(cross-compiling),no)
284.30 - tests: $(objpfx)tst-pathopt.out
285.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-crossyes.patch Tue Aug 14 19:32:22 2007 +0000
285.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
285.3 @@ -1,11 +0,0 @@
285.4 ---- glibc-2.2.5/configure.old 2003-05-30 21:51:13.000000000 -0700
285.5 -+++ glibc-2.2.5/configure 2003-05-30 21:51:23.000000000 -0700
285.6 -@@ -1738,7 +1738,7 @@
285.7 - ac_cv_prog_cc_works=yes
285.8 - # If we can't run a trivial program, we are probably using a cross compiler.
285.9 - if (./conftest; exit) 2>/dev/null; then
285.10 -- ac_cv_prog_cc_cross=no
285.11 -+ ac_cv_prog_cc_cross=yes
285.12 - else
285.13 - ac_cv_prog_cc_cross=yes
285.14 - fi
286.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-cygwin.patch Tue Aug 14 19:32:22 2007 +0000
286.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
286.3 @@ -1,89 +0,0 @@
286.4 -Fixes
286.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
286.6 -...
286.7 -when building glibc-2.3.2 on cygwin
286.8 -
286.9 -Idea from
286.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
286.11 -forward ported to glibc-2.3.2.
286.12 -Basically, make glibc use .oST as suffix for 'object static'
286.13 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
286.14 -(Original patch had .on, but .oST is more mnemonic for 'object static')
286.15 -
286.16 -
286.17 -diff -Naur from-cvs/Makeconfig patched/Makeconfig
286.18 ---- from-cvs/Makeconfig Fri Jan 11 14:40:35 2002
286.19 -+++ patched/Makeconfig Fri Jan 11 15:07:30 2002
286.20 -@@ -439,13 +439,13 @@
286.21 - # run the linked programs.
286.22 - link-libc = -Wl,-rpath-link=$(rpath-link) \
286.23 - $(common-objpfx)libc.so$(libc.so-version) \
286.24 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
286.25 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
286.26 - # This is how to find at build-time things that will be installed there.
286.27 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
286.28 - else
286.29 - ifneq (,$(findstring aix,$(config-os)))
286.30 - link-libc = $(common-objpfx)libc.a \
286.31 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
286.32 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
286.33 - rpath-dirs = math dlfcn nss nis rt resolv crypt
286.34 - endif
286.35 - endif
286.36 -@@ -649,7 +649,7 @@
286.37 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
286.38 - # to pass different flags for each flavor.
286.39 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
286.40 --all-object-suffixes := .o .os .op .og .ob .oS
286.41 -+all-object-suffixes := .o .os .op .og .ob .oST
286.42 - object-suffixes :=
286.43 - CPPFLAGS-.o = $(pic-default)
286.44 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
286.45 -@@ -703,14 +703,14 @@
286.46 -
286.47 - ifeq (yes,$(build-shared))
286.48 - # Build special library that contains the static-only routines for libc.
286.49 --object-suffixes-for-libc += .oS
286.50 -+object-suffixes-for-libc += .oST
286.51 -
286.52 - # Must build the routines as PIC, though, because they can end up in (users')
286.53 - # shared objects. We don't want to use CFLAGS-os because users may, for
286.54 - # example, make that processor-specific.
286.55 --CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
286.56 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC
286.57 --libtype.oS = lib%_nonshared.a
286.58 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
286.59 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC
286.60 -+libtype.oST = lib%_nonshared.a
286.61 - endif
286.62 -
286.63 -
286.64 -diff -Naur from-cvs/Makerules patched/Makerules
286.65 ---- from-cvs/Makerules Fri Jan 11 14:40:42 2002
286.66 -+++ patched/Makerules Fri Jan 11 15:06:00 2002
286.67 -@@ -361,7 +361,7 @@
286.68 - # Bounded pointer thunks are only built for *.ob
286.69 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
286.70 -
286.71 --elide-routines.oS += $(filter-out $(static-only-routines),\
286.72 -+elide-routines.oST += $(filter-out $(static-only-routines),\
286.73 - $(routines) $(aux) $(sysdep_routines)) \
286.74 - $(elide-bp-thunks)
286.75 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
286.76 -@@ -842,14 +842,14 @@
286.77 - # of the files are taken by the linker.
286.78 - install: $(inst_libdir)/libc.so
286.79 - $(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
286.80 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
286.81 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
286.82 - $(libprefix)$(libc-name)) \
286.83 - $(+force)
286.84 - (echo '/* GNU ld script';\
286.85 - echo ' Use the shared library, but some functions are only in';\
286.86 - echo ' the static library, so try that secondarily. */';\
286.87 - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
286.88 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
286.89 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
286.90 - ')' \
286.91 - ) > $@.new
286.92 - mv -f $@.new $@
287.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch Tue Aug 14 19:32:22 2007 +0000
287.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
287.3 @@ -1,1134 +0,0 @@
287.4 -# See http://sources.redhat.com/ml/crossgcc/2002-05/msg00132.html
287.5 -# This patch is taken directly from the Montavista Hard Hat Linux 2.0 source RPMs,
287.6 -# but has been rediffed against glibc-2.2.5
287.7 -
287.8 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Dist glibc-2.2.5/sysdeps/powerpc/Dist
287.9 ---- glibc-2.2.5.old/sysdeps/powerpc/Dist Fri Jun 30 23:30:21 2000
287.10 -+++ glibc-2.2.5/sysdeps/powerpc/Dist Thu Jul 10 11:43:17 2003
287.11 -@@ -1,9 +1,6 @@
287.12 - dl-machine.c
287.13 - dl-start.S
287.14 - ppc-mcount.S
287.15 --fe_nomask.c
287.16 --fprrest.S
287.17 --fprsave.S
287.18 - gprsave1.S
287.19 - gprsave0.S
287.20 - gprrest1.S
287.21 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Makefile glibc-2.2.5/sysdeps/powerpc/Makefile
287.22 ---- glibc-2.2.5.old/sysdeps/powerpc/Makefile Mon Nov 27 15:32:47 2000
287.23 -+++ glibc-2.2.5/sysdeps/powerpc/Makefile Thu Jul 10 11:43:17 2003
287.24 -@@ -3,16 +3,12 @@
287.25 - +cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
287.26 - asm-CPPFLAGS += -Wa,-mppc
287.27 -
287.28 --ifeq ($(subdir),math)
287.29 --libm-support += fenv_const fe_nomask
287.30 --endif
287.31 --
287.32 - ifeq ($(subdir),gmon)
287.33 - sysdep_routines += ppc-mcount
287.34 - endif
287.35 -
287.36 - ifeq ($(subdir),misc)
287.37 --sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1 fprsave fprrest
287.38 -+sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
287.39 - endif
287.40 -
287.41 - # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
287.42 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Versions glibc-2.2.5/sysdeps/powerpc/Versions
287.43 ---- glibc-2.2.5.old/sysdeps/powerpc/Versions Mon Feb 28 13:27:57 2000
287.44 -+++ glibc-2.2.5/sysdeps/powerpc/Versions Thu Jul 10 11:43:17 2003
287.45 -@@ -1,8 +1,4 @@
287.46 - libm {
287.47 -- GLIBC_2.1 {
287.48 -- # symbols used in macros from sysdeps/powerpc/bits/fenv.h
287.49 -- __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
287.50 -- }
287.51 - GLIBC_2.2 {
287.52 - # Special functions to save and restore registers used by the
287.53 - # runtime libraries.
287.54 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/__longjmp.S glibc-2.2.5/sysdeps/powerpc/__longjmp.S
287.55 ---- glibc-2.2.5.old/sysdeps/powerpc/__longjmp.S Thu Jul 5 21:56:01 2001
287.56 -+++ glibc-2.2.5/sysdeps/powerpc/__longjmp.S Thu Jul 10 11:43:17 2003
287.57 -@@ -24,6 +24,8 @@
287.58 - #include <bp-sym.h>
287.59 - #include <bp-asm.h>
287.60 -
287.61 -+/* The FPU loads have been removed from this file - see fpu/__longjmp.S */
287.62 -+
287.63 - ENTRY (BP_SYM (__longjmp))
287.64 - CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
287.65 -
287.66 -@@ -31,44 +33,26 @@
287.67 - lwz r2,(JB_GPR2*4)(r3)
287.68 - lwz r0,(JB_LR*4)(r3)
287.69 - lwz r14,((JB_GPRS+0)*4)(r3)
287.70 -- lfd fp14,((JB_FPRS+0*2)*4)(r3)
287.71 - lwz r15,((JB_GPRS+1)*4)(r3)
287.72 -- lfd fp15,((JB_FPRS+1*2)*4)(r3)
287.73 - lwz r16,((JB_GPRS+2)*4)(r3)
287.74 -- lfd fp16,((JB_FPRS+2*2)*4)(r3)
287.75 - lwz r17,((JB_GPRS+3)*4)(r3)
287.76 -- lfd fp17,((JB_FPRS+3*2)*4)(r3)
287.77 - lwz r18,((JB_GPRS+4)*4)(r3)
287.78 -- lfd fp18,((JB_FPRS+4*2)*4)(r3)
287.79 - lwz r19,((JB_GPRS+5)*4)(r3)
287.80 -- lfd fp19,((JB_FPRS+5*2)*4)(r3)
287.81 - lwz r20,((JB_GPRS+6)*4)(r3)
287.82 -- lfd fp20,((JB_FPRS+6*2)*4)(r3)
287.83 - mtlr r0
287.84 - lwz r21,((JB_GPRS+7)*4)(r3)
287.85 -- lfd fp21,((JB_FPRS+7*2)*4)(r3)
287.86 - lwz r22,((JB_GPRS+8)*4)(r3)
287.87 -- lfd fp22,((JB_FPRS+8*2)*4)(r3)
287.88 - lwz r0,(JB_CR*4)(r3)
287.89 - lwz r23,((JB_GPRS+9)*4)(r3)
287.90 -- lfd fp23,((JB_FPRS+9*2)*4)(r3)
287.91 - lwz r24,((JB_GPRS+10)*4)(r3)
287.92 -- lfd fp24,((JB_FPRS+10*2)*4)(r3)
287.93 - lwz r25,((JB_GPRS+11)*4)(r3)
287.94 -- lfd fp25,((JB_FPRS+11*2)*4)(r3)
287.95 - mtcrf 0xFF,r0
287.96 - lwz r26,((JB_GPRS+12)*4)(r3)
287.97 -- lfd fp26,((JB_FPRS+12*2)*4)(r3)
287.98 - lwz r27,((JB_GPRS+13)*4)(r3)
287.99 -- lfd fp27,((JB_FPRS+13*2)*4)(r3)
287.100 - lwz r28,((JB_GPRS+14)*4)(r3)
287.101 -- lfd fp28,((JB_FPRS+14*2)*4)(r3)
287.102 - lwz r29,((JB_GPRS+15)*4)(r3)
287.103 -- lfd fp29,((JB_FPRS+15*2)*4)(r3)
287.104 - lwz r30,((JB_GPRS+16)*4)(r3)
287.105 -- lfd fp30,((JB_FPRS+16*2)*4)(r3)
287.106 - lwz r31,((JB_GPRS+17)*4)(r3)
287.107 -- lfd fp31,((JB_FPRS+17*2)*4)(r3)
287.108 - mr r3,r4
287.109 - blr
287.110 - END (BP_SYM (__longjmp))
287.111 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h
287.112 ---- glibc-2.2.5.old/sysdeps/powerpc/bits/setjmp.h Thu Jul 5 21:56:01 2001
287.113 -+++ glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h Thu Jul 10 11:43:17 2003
287.114 -@@ -17,6 +17,7 @@
287.115 - 02111-1307 USA. */
287.116 -
287.117 - /* Define the machine-dependent type `jmp_buf'. PowerPC version. */
287.118 -+/* For processors without floating point. */
287.119 -
287.120 - #ifndef _SETJMP_H
287.121 - # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
287.122 -@@ -33,12 +34,11 @@
287.123 - # define JB_LR 2 /* The address we will return to */
287.124 - # define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
287.125 - # define JB_CR 21 /* Condition code registers. */
287.126 --# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
287.127 --# define JB_SIZE (58*4)
287.128 -+# define JB_SIZE (22*4)
287.129 - #endif
287.130 -
287.131 - #ifndef _ASM
287.132 --typedef long int __jmp_buf[58];
287.133 -+typedef long int __jmp_buf[22];
287.134 - #endif
287.135 -
287.136 - /* Test if longjmp to JMPBUF would unwind the frame
287.137 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c
287.138 ---- glibc-2.2.5.old/sysdeps/powerpc/fclrexcpt.c Thu Jul 5 21:56:01 2001
287.139 -+++ glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c Wed Dec 31 16:00:00 1969
287.140 -@@ -1,48 +0,0 @@
287.141 --/* Clear given exceptions in current floating-point environment.
287.142 -- Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
287.143 -- This file is part of the GNU C Library.
287.144 --
287.145 -- The GNU C Library is free software; you can redistribute it and/or
287.146 -- modify it under the terms of the GNU Lesser General Public
287.147 -- License as published by the Free Software Foundation; either
287.148 -- version 2.1 of the License, or (at your option) any later version.
287.149 --
287.150 -- The GNU C Library is distributed in the hope that it will be useful,
287.151 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
287.152 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.153 -- Lesser General Public License for more details.
287.154 --
287.155 -- You should have received a copy of the GNU Lesser General Public
287.156 -- License along with the GNU C Library; if not, write to the Free
287.157 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.158 -- 02111-1307 USA. */
287.159 --
287.160 --#include <fenv_libc.h>
287.161 --
287.162 --#undef feclearexcept
287.163 --int
287.164 --__feclearexcept (int excepts)
287.165 --{
287.166 -- fenv_union_t u;
287.167 --
287.168 -- /* Get the current state. */
287.169 -- u.fenv = fegetenv_register ();
287.170 --
287.171 -- /* Clear the relevant bits. */
287.172 -- u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
287.173 -- | (excepts & FPSCR_STICKY_BITS));
287.174 --
287.175 -- /* Put the new state in effect. */
287.176 -- fesetenv_register (u.fenv);
287.177 --
287.178 -- /* Success. */
287.179 -- return 0;
287.180 --}
287.181 --
287.182 --#include <shlib-compat.h>
287.183 --#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
287.184 --strong_alias (__feclearexcept, __old_feclearexcept)
287.185 --compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
287.186 --#endif
287.187 --
287.188 --versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
287.189 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fe_nomask.c
287.190 ---- glibc-2.2.5.old/sysdeps/powerpc/fe_nomask.c Thu Jul 5 21:56:01 2001
287.191 -+++ glibc-2.2.5/sysdeps/powerpc/fe_nomask.c Wed Dec 31 16:00:00 1969
287.192 -@@ -1,32 +0,0 @@
287.193 --/* Procedure definition for FE_NOMASK_ENV.
287.194 -- Copyright (C) 1997 Free Software Foundation, Inc.
287.195 -- This file is part of the GNU C Library.
287.196 --
287.197 -- The GNU C Library is free software; you can redistribute it and/or
287.198 -- modify it under the terms of the GNU Lesser General Public
287.199 -- License as published by the Free Software Foundation; either
287.200 -- version 2.1 of the License, or (at your option) any later version.
287.201 --
287.202 -- The GNU C Library is distributed in the hope that it will be useful,
287.203 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
287.204 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.205 -- Lesser General Public License for more details.
287.206 --
287.207 -- You should have received a copy of the GNU Lesser General Public
287.208 -- License along with the GNU C Library; if not, write to the Free
287.209 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.210 -- 02111-1307 USA. */
287.211 --
287.212 --#include <fenv.h>
287.213 --#include <errno.h>
287.214 --
287.215 --/* This is presently a stub, until it's decided how the kernels should
287.216 -- support this. */
287.217 --
287.218 --const fenv_t *
287.219 --__fe_nomask_env(void)
287.220 --{
287.221 -- __set_errno (ENOSYS);
287.222 -- return FE_ENABLED_ENV;
287.223 --}
287.224 --stub_warning (__fe_nomask_env)
287.225 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fprrest.S glibc-2.2.5/sysdeps/powerpc/fprrest.S
287.226 ---- glibc-2.2.5.old/sysdeps/powerpc/fprrest.S Thu Jul 5 21:56:01 2001
287.227 -+++ glibc-2.2.5/sysdeps/powerpc/fprrest.S Wed Dec 31 16:00:00 1969
287.228 -@@ -1,94 +0,0 @@
287.229 --/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
287.230 -- This file is part of the GNU C Library.
287.231 --
287.232 -- The GNU C Library is free software; you can redistribute it and/or
287.233 -- modify it under the terms of the GNU Lesser General Public
287.234 -- License as published by the Free Software Foundation; either
287.235 -- version 2.1 of the License, or (at your option) any later version.
287.236 --
287.237 -- The GNU C Library is distributed in the hope that it will be useful,
287.238 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
287.239 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.240 -- Lesser General Public License for more details.
287.241 --
287.242 -- You should have received a copy of the GNU Lesser General Public
287.243 -- License along with the GNU C Library; if not, write to the Free
287.244 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.245 -- 02111-1307 USA. */
287.246 --
287.247 --/*
287.248 -- Floating Point Registers (FPRs) restore routine
287.249 --*/
287.250 --
287.251 --#include <sysdep.h>
287.252 --
287.253 --ENTRY(_restfpr_all)
287.254 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
287.255 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
287.256 --C_TEXT(_restf14):
287.257 --C_TEXT(_restfpr_14): lfd fp14,-144(r1)
287.258 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
287.259 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
287.260 --C_TEXT(_restf15):
287.261 --C_TEXT(_restfpr_15): lfd fp15,-136(r1)
287.262 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
287.263 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
287.264 --C_TEXT(_restf16):
287.265 --C_TEXT(_restfpr_16): lfd fp16,-128(r1)
287.266 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
287.267 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
287.268 --C_TEXT(_restf17):
287.269 --C_TEXT(_restfpr_17): lfd fp17,-120(r1)
287.270 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
287.271 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
287.272 --C_TEXT(_restf18):
287.273 --C_TEXT(_restfpr_18): lfd fp18,-112(r1)
287.274 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
287.275 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
287.276 --C_TEXT(_restf19):
287.277 --C_TEXT(_restfpr_19): lfd fp19,-104(r1)
287.278 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
287.279 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
287.280 --C_TEXT(_restf20):
287.281 --C_TEXT(_restfpr_20): lfd fp20,-96(r1)
287.282 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
287.283 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
287.284 --C_TEXT(_restf21):
287.285 --C_TEXT(_restfpr_21): lfd fp21,-88(r1)
287.286 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
287.287 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
287.288 --C_TEXT(_restf22):
287.289 --C_TEXT(_restfpr_22): lfd fp22,-80(r1)
287.290 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
287.291 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
287.292 --C_TEXT(_restf23):
287.293 --C_TEXT(_restfpr_23): lfd fp23,-72(r1)
287.294 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
287.295 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
287.296 --C_TEXT(_restf24):
287.297 --C_TEXT(_restfpr_24): lfd fp24,-64(r1)
287.298 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
287.299 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
287.300 --C_TEXT(_restf25):
287.301 --C_TEXT(_restfpr_25): lfd fp25,-56(r1)
287.302 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
287.303 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
287.304 --C_TEXT(_restf26):
287.305 --C_TEXT(_restfpr_26): lfd fp26,-48(r1)
287.306 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
287.307 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
287.308 --C_TEXT(_restf27):
287.309 --C_TEXT(_restfpr_27): lfd fp27,-40(r1)
287.310 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
287.311 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
287.312 --C_TEXT(_restf28):
287.313 --C_TEXT(_restfpr_28): lfd fp28,-32(r1)
287.314 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
287.315 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
287.316 --C_TEXT(_restf29):
287.317 --C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame
287.318 -- lfd fp29,-24(r1) #restore f29
287.319 -- mtlr r0 #move return address to LR
287.320 -- lfd fp30,-16(r1) #restore f30
287.321 -- lfd fp31,-8(r1) #restore f31
287.322 -- blr #return
287.323 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fprsave.S glibc-2.2.5/sysdeps/powerpc/fprsave.S
287.324 ---- glibc-2.2.5.old/sysdeps/powerpc/fprsave.S Thu Jul 5 21:56:01 2001
287.325 -+++ glibc-2.2.5/sysdeps/powerpc/fprsave.S Wed Dec 31 16:00:00 1969
287.326 -@@ -1,93 +0,0 @@
287.327 --/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
287.328 -- This file is part of the GNU C Library.
287.329 --
287.330 -- The GNU C Library is free software; you can redistribute it and/or
287.331 -- modify it under the terms of the GNU Lesser General Public
287.332 -- License as published by the Free Software Foundation; either
287.333 -- version 2.1 of the License, or (at your option) any later version.
287.334 --
287.335 -- The GNU C Library is distributed in the hope that it will be useful,
287.336 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
287.337 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.338 -- Lesser General Public License for more details.
287.339 --
287.340 -- You should have received a copy of the GNU Lesser General Public
287.341 -- License along with the GNU C Library; if not, write to the Free
287.342 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.343 -- 02111-1307 USA. */
287.344 --
287.345 --/*
287.346 -- Floating Point Registers (FPRs) save routine
287.347 --*/
287.348 --
287.349 --#include <sysdep.h>
287.350 --
287.351 --ENTRY(_savefpr_all)
287.352 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
287.353 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
287.354 --C_TEXT(_savef14):
287.355 --C_TEXT(_savefpr_14): stfd fp14,-144(r1)
287.356 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
287.357 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
287.358 --C_TEXT(_savef15):
287.359 --C_TEXT(_savefpr_15): stfd fp15,-136(r1)
287.360 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
287.361 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
287.362 --C_TEXT(_savef16):
287.363 --C_TEXT(_savefpr_16): stfd fp16,-128(r1)
287.364 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
287.365 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
287.366 --C_TEXT(_savef17):
287.367 --C_TEXT(_savefpr_17): stfd fp17,-120(r1)
287.368 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
287.369 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
287.370 --C_TEXT(_savef18):
287.371 --C_TEXT(_savefpr_18): stfd fp18,-112(r1)
287.372 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
287.373 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
287.374 --C_TEXT(_savef19):
287.375 --C_TEXT(_savefpr_19): stfd fp19,-104(r1)
287.376 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
287.377 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
287.378 --C_TEXT(_savef20):
287.379 --C_TEXT(_savefpr_20): stfd fp20,-96(r1)
287.380 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
287.381 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
287.382 --C_TEXT(_savef21):
287.383 --C_TEXT(_savefpr_21): stfd fp21,-88(r1)
287.384 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
287.385 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
287.386 --C_TEXT(_savef22):
287.387 --C_TEXT(_savefpr_22): stfd fp22,-80(r1)
287.388 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
287.389 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
287.390 --C_TEXT(_savef23):
287.391 --C_TEXT(_savefpr_23): stfd fp23,-72(r1)
287.392 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
287.393 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
287.394 --C_TEXT(_savef24):
287.395 --C_TEXT(_savefpr_24): stfd fp24,-64(r1)
287.396 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
287.397 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
287.398 --C_TEXT(_savef25):
287.399 --C_TEXT(_savefpr_25): stfd fp25,-56(r1)
287.400 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
287.401 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
287.402 --C_TEXT(_savef26):
287.403 --C_TEXT(_savefpr_26): stfd fp26,-48(r1)
287.404 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
287.405 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
287.406 --C_TEXT(_savef27):
287.407 --C_TEXT(_savefpr_27): stfd fp27,-40(r1)
287.408 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
287.409 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
287.410 --C_TEXT(_savef28):
287.411 --C_TEXT(_savefpr_28): stfd fp28,-32(r1)
287.412 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
287.413 -- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
287.414 --C_TEXT(_savef29):
287.415 --C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29
287.416 -- stfd fp30,-16(r1) #save f30
287.417 -- stfd fp31,-8(r1) #save f31
287.418 -- stw r0,8(r1) #save LR in callers frame
287.419 -- blr #return
287.420 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Dist glibc-2.2.5/sysdeps/powerpc/fpu/Dist
287.421 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/Dist Wed Jan 26 17:48:02 2000
287.422 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/Dist Thu Jul 10 11:43:17 2003
287.423 -@@ -1,3 +1,6 @@
287.424 -+fe_nomask.c
287.425 -+fprrest.S
287.426 -+fprsave.S
287.427 - fenv_const.c
287.428 - fenv_libc.h
287.429 - t_sqrt.c
287.430 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Makefile glibc-2.2.5/sysdeps/powerpc/fpu/Makefile
287.431 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/Makefile Mon Oct 11 15:29:00 1999
287.432 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/Makefile Thu Jul 10 11:43:17 2003
287.433 -@@ -1,3 +1,7 @@
287.434 - ifeq ($(subdir),math)
287.435 - libm-support += fenv_const fe_nomask t_sqrt
287.436 - endif
287.437 -+
287.438 -+ifeq ($(subdir),misc)
287.439 -+sysdep_routines += fprsave fprrest
287.440 -+endif
287.441 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Versions glibc-2.2.5/sysdeps/powerpc/fpu/Versions
287.442 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/Versions Wed Dec 31 16:00:00 1969
287.443 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/Versions Thu Jul 10 11:43:17 2003
287.444 -@@ -0,0 +1,6 @@
287.445 -+libm {
287.446 -+ GLIBC_2.1 {
287.447 -+ # symbols used in macros from sysdeps/powerpc/bits/fenv.h
287.448 -+ __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
287.449 -+ }
287.450 -+}
287.451 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/__longjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S
287.452 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/__longjmp.S Wed Dec 31 16:00:00 1969
287.453 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S Thu Jul 10 11:43:17 2003
287.454 -@@ -0,0 +1,74 @@
287.455 -+/* longjmp for PowerPC.
287.456 -+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
287.457 -+ This file is part of the GNU C Library.
287.458 -+
287.459 -+ The GNU C Library is free software; you can redistribute it and/or
287.460 -+ modify it under the terms of the GNU Library General Public License as
287.461 -+ published by the Free Software Foundation; either version 2 of the
287.462 -+ License, or (at your option) any later version.
287.463 -+
287.464 -+ The GNU C Library is distributed in the hope that it will be useful,
287.465 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
287.466 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.467 -+ Library General Public License for more details.
287.468 -+
287.469 -+ You should have received a copy of the GNU Library General Public
287.470 -+ License along with the GNU C Library; see the file COPYING.LIB. If not,
287.471 -+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
287.472 -+ Boston, MA 02111-1307, USA. */
287.473 -+
287.474 -+#include <sysdep.h>
287.475 -+#define _ASM
287.476 -+#define _SETJMP_H
287.477 -+#include <bits/setjmp.h>
287.478 -+#include <bp-sym.h>
287.479 -+#include <bp-asm.h>
287.480 -+
287.481 -+ENTRY (BP_SYM (__longjmp))
287.482 -+ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
287.483 -+
287.484 -+ lwz r1,(JB_GPR1*4)(r3)
287.485 -+ lwz r2,(JB_GPR2*4)(r3)
287.486 -+ lwz r0,(JB_LR*4)(r3)
287.487 -+ lwz r14,((JB_GPRS+0)*4)(r3)
287.488 -+ lfd fp14,((JB_FPRS+0*2)*4)(r3)
287.489 -+ lwz r15,((JB_GPRS+1)*4)(r3)
287.490 -+ lfd fp15,((JB_FPRS+1*2)*4)(r3)
287.491 -+ lwz r16,((JB_GPRS+2)*4)(r3)
287.492 -+ lfd fp16,((JB_FPRS+2*2)*4)(r3)
287.493 -+ lwz r17,((JB_GPRS+3)*4)(r3)
287.494 -+ lfd fp17,((JB_FPRS+3*2)*4)(r3)
287.495 -+ lwz r18,((JB_GPRS+4)*4)(r3)
287.496 -+ lfd fp18,((JB_FPRS+4*2)*4)(r3)
287.497 -+ lwz r19,((JB_GPRS+5)*4)(r3)
287.498 -+ lfd fp19,((JB_FPRS+5*2)*4)(r3)
287.499 -+ lwz r20,((JB_GPRS+6)*4)(r3)
287.500 -+ lfd fp20,((JB_FPRS+6*2)*4)(r3)
287.501 -+ mtlr r0
287.502 -+ lwz r21,((JB_GPRS+7)*4)(r3)
287.503 -+ lfd fp21,((JB_FPRS+7*2)*4)(r3)
287.504 -+ lwz r22,((JB_GPRS+8)*4)(r3)
287.505 -+ lfd fp22,((JB_FPRS+8*2)*4)(r3)
287.506 -+ lwz r0,(JB_CR*4)(r3)
287.507 -+ lwz r23,((JB_GPRS+9)*4)(r3)
287.508 -+ lfd fp23,((JB_FPRS+9*2)*4)(r3)
287.509 -+ lwz r24,((JB_GPRS+10)*4)(r3)
287.510 -+ lfd fp24,((JB_FPRS+10*2)*4)(r3)
287.511 -+ lwz r25,((JB_GPRS+11)*4)(r3)
287.512 -+ lfd fp25,((JB_FPRS+11*2)*4)(r3)
287.513 -+ mtcrf 0xFF,r0
287.514 -+ lwz r26,((JB_GPRS+12)*4)(r3)
287.515 -+ lfd fp26,((JB_FPRS+12*2)*4)(r3)
287.516 -+ lwz r27,((JB_GPRS+13)*4)(r3)
287.517 -+ lfd fp27,((JB_FPRS+13*2)*4)(r3)
287.518 -+ lwz r28,((JB_GPRS+14)*4)(r3)
287.519 -+ lfd fp28,((JB_FPRS+14*2)*4)(r3)
287.520 -+ lwz r29,((JB_GPRS+15)*4)(r3)
287.521 -+ lfd fp29,((JB_FPRS+15*2)*4)(r3)
287.522 -+ lwz r30,((JB_GPRS+16)*4)(r3)
287.523 -+ lfd fp30,((JB_FPRS+16*2)*4)(r3)
287.524 -+ lwz r31,((JB_GPRS+17)*4)(r3)
287.525 -+ lfd fp31,((JB_FPRS+17*2)*4)(r3)
287.526 -+ mr r3,r4
287.527 -+ blr
287.528 -+END (BP_SYM (__longjmp))
287.529 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h
287.530 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/bits/setjmp.h Wed Dec 31 16:00:00 1969
287.531 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h Thu Jul 10 11:43:17 2003
287.532 -@@ -0,0 +1,47 @@
287.533 -+/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
287.534 -+ This file is part of the GNU C Library.
287.535 -+
287.536 -+ The GNU C Library is free software; you can redistribute it and/or
287.537 -+ modify it under the terms of the GNU Library General Public License as
287.538 -+ published by the Free Software Foundation; either version 2 of the
287.539 -+ License, or (at your option) any later version.
287.540 -+
287.541 -+ The GNU C Library is distributed in the hope that it will be useful,
287.542 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
287.543 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.544 -+ Library General Public License for more details.
287.545 -+
287.546 -+ You should have received a copy of the GNU Library General Public
287.547 -+ License along with the GNU C Library; see the file COPYING.LIB. If not,
287.548 -+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
287.549 -+ Boston, MA 02111-1307, USA. */
287.550 -+
287.551 -+/* Define the machine-dependent type `jmp_buf'. PowerPC version. */
287.552 -+
287.553 -+#ifndef _SETJMP_H
287.554 -+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
287.555 -+#endif
287.556 -+
287.557 -+/* The previous bits/setjmp.h had __jmp_buf defined as a structure.
287.558 -+ We use an array of 'long int' instead, to make writing the
287.559 -+ assembler easier. Naturally, user code should not depend on
287.560 -+ either representation. */
287.561 -+
287.562 -+#if defined __USE_MISC || defined _ASM
287.563 -+# define JB_GPR1 0 /* Also known as the stack pointer */
287.564 -+# define JB_GPR2 1
287.565 -+# define JB_LR 2 /* The address we will return to */
287.566 -+# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
287.567 -+# define JB_CR 21 /* Condition code registers. */
287.568 -+# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
287.569 -+# define JB_SIZE (58*4)
287.570 -+#endif
287.571 -+
287.572 -+#ifndef _ASM
287.573 -+typedef long int __jmp_buf[58];
287.574 -+#endif
287.575 -+
287.576 -+/* Test if longjmp to JMPBUF would unwind the frame
287.577 -+ containing a local variable at ADDRESS. */
287.578 -+#define _JMPBUF_UNWINDS(jmpbuf, address) \
287.579 -+ ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
287.580 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c
287.581 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fclrexcpt.c Wed Dec 31 16:00:00 1969
287.582 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c Thu Jul 5 21:56:01 2001
287.583 -@@ -0,0 +1,48 @@
287.584 -+/* Clear given exceptions in current floating-point environment.
287.585 -+ Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
287.586 -+ This file is part of the GNU C Library.
287.587 -+
287.588 -+ The GNU C Library is free software; you can redistribute it and/or
287.589 -+ modify it under the terms of the GNU Lesser General Public
287.590 -+ License as published by the Free Software Foundation; either
287.591 -+ version 2.1 of the License, or (at your option) any later version.
287.592 -+
287.593 -+ The GNU C Library is distributed in the hope that it will be useful,
287.594 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
287.595 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.596 -+ Lesser General Public License for more details.
287.597 -+
287.598 -+ You should have received a copy of the GNU Lesser General Public
287.599 -+ License along with the GNU C Library; if not, write to the Free
287.600 -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.601 -+ 02111-1307 USA. */
287.602 -+
287.603 -+#include <fenv_libc.h>
287.604 -+
287.605 -+#undef feclearexcept
287.606 -+int
287.607 -+__feclearexcept (int excepts)
287.608 -+{
287.609 -+ fenv_union_t u;
287.610 -+
287.611 -+ /* Get the current state. */
287.612 -+ u.fenv = fegetenv_register ();
287.613 -+
287.614 -+ /* Clear the relevant bits. */
287.615 -+ u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
287.616 -+ | (excepts & FPSCR_STICKY_BITS));
287.617 -+
287.618 -+ /* Put the new state in effect. */
287.619 -+ fesetenv_register (u.fenv);
287.620 -+
287.621 -+ /* Success. */
287.622 -+ return 0;
287.623 -+}
287.624 -+
287.625 -+#include <shlib-compat.h>
287.626 -+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
287.627 -+strong_alias (__feclearexcept, __old_feclearexcept)
287.628 -+compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
287.629 -+#endif
287.630 -+
287.631 -+versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
287.632 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c
287.633 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fe_nomask.c Wed Dec 31 16:00:00 1969
287.634 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c Thu Jul 5 21:56:01 2001
287.635 -@@ -0,0 +1,32 @@
287.636 -+/* Procedure definition for FE_NOMASK_ENV.
287.637 -+ Copyright (C) 1997 Free Software Foundation, Inc.
287.638 -+ This file is part of the GNU C Library.
287.639 -+
287.640 -+ The GNU C Library is free software; you can redistribute it and/or
287.641 -+ modify it under the terms of the GNU Lesser General Public
287.642 -+ License as published by the Free Software Foundation; either
287.643 -+ version 2.1 of the License, or (at your option) any later version.
287.644 -+
287.645 -+ The GNU C Library is distributed in the hope that it will be useful,
287.646 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
287.647 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.648 -+ Lesser General Public License for more details.
287.649 -+
287.650 -+ You should have received a copy of the GNU Lesser General Public
287.651 -+ License along with the GNU C Library; if not, write to the Free
287.652 -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.653 -+ 02111-1307 USA. */
287.654 -+
287.655 -+#include <fenv.h>
287.656 -+#include <errno.h>
287.657 -+
287.658 -+/* This is presently a stub, until it's decided how the kernels should
287.659 -+ support this. */
287.660 -+
287.661 -+const fenv_t *
287.662 -+__fe_nomask_env(void)
287.663 -+{
287.664 -+ __set_errno (ENOSYS);
287.665 -+ return FE_ENABLED_ENV;
287.666 -+}
287.667 -+stub_warning (__fe_nomask_env)
287.668 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fprrest.S glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S
287.669 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fprrest.S Wed Dec 31 16:00:00 1969
287.670 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S Thu Jul 5 21:56:01 2001
287.671 -@@ -0,0 +1,94 @@
287.672 -+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
287.673 -+ This file is part of the GNU C Library.
287.674 -+
287.675 -+ The GNU C Library is free software; you can redistribute it and/or
287.676 -+ modify it under the terms of the GNU Lesser General Public
287.677 -+ License as published by the Free Software Foundation; either
287.678 -+ version 2.1 of the License, or (at your option) any later version.
287.679 -+
287.680 -+ The GNU C Library is distributed in the hope that it will be useful,
287.681 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
287.682 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.683 -+ Lesser General Public License for more details.
287.684 -+
287.685 -+ You should have received a copy of the GNU Lesser General Public
287.686 -+ License along with the GNU C Library; if not, write to the Free
287.687 -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.688 -+ 02111-1307 USA. */
287.689 -+
287.690 -+/*
287.691 -+ Floating Point Registers (FPRs) restore routine
287.692 -+*/
287.693 -+
287.694 -+#include <sysdep.h>
287.695 -+
287.696 -+ENTRY(_restfpr_all)
287.697 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
287.698 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
287.699 -+C_TEXT(_restf14):
287.700 -+C_TEXT(_restfpr_14): lfd fp14,-144(r1)
287.701 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
287.702 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
287.703 -+C_TEXT(_restf15):
287.704 -+C_TEXT(_restfpr_15): lfd fp15,-136(r1)
287.705 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
287.706 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
287.707 -+C_TEXT(_restf16):
287.708 -+C_TEXT(_restfpr_16): lfd fp16,-128(r1)
287.709 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
287.710 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
287.711 -+C_TEXT(_restf17):
287.712 -+C_TEXT(_restfpr_17): lfd fp17,-120(r1)
287.713 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
287.714 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
287.715 -+C_TEXT(_restf18):
287.716 -+C_TEXT(_restfpr_18): lfd fp18,-112(r1)
287.717 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
287.718 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
287.719 -+C_TEXT(_restf19):
287.720 -+C_TEXT(_restfpr_19): lfd fp19,-104(r1)
287.721 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
287.722 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
287.723 -+C_TEXT(_restf20):
287.724 -+C_TEXT(_restfpr_20): lfd fp20,-96(r1)
287.725 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
287.726 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
287.727 -+C_TEXT(_restf21):
287.728 -+C_TEXT(_restfpr_21): lfd fp21,-88(r1)
287.729 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
287.730 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
287.731 -+C_TEXT(_restf22):
287.732 -+C_TEXT(_restfpr_22): lfd fp22,-80(r1)
287.733 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
287.734 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
287.735 -+C_TEXT(_restf23):
287.736 -+C_TEXT(_restfpr_23): lfd fp23,-72(r1)
287.737 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
287.738 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
287.739 -+C_TEXT(_restf24):
287.740 -+C_TEXT(_restfpr_24): lfd fp24,-64(r1)
287.741 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
287.742 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
287.743 -+C_TEXT(_restf25):
287.744 -+C_TEXT(_restfpr_25): lfd fp25,-56(r1)
287.745 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
287.746 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
287.747 -+C_TEXT(_restf26):
287.748 -+C_TEXT(_restfpr_26): lfd fp26,-48(r1)
287.749 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
287.750 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
287.751 -+C_TEXT(_restf27):
287.752 -+C_TEXT(_restfpr_27): lfd fp27,-40(r1)
287.753 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
287.754 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
287.755 -+C_TEXT(_restf28):
287.756 -+C_TEXT(_restfpr_28): lfd fp28,-32(r1)
287.757 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
287.758 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
287.759 -+C_TEXT(_restf29):
287.760 -+C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame
287.761 -+ lfd fp29,-24(r1) #restore f29
287.762 -+ mtlr r0 #move return address to LR
287.763 -+ lfd fp30,-16(r1) #restore f30
287.764 -+ lfd fp31,-8(r1) #restore f31
287.765 -+ blr #return
287.766 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fprsave.S glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S
287.767 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fprsave.S Wed Dec 31 16:00:00 1969
287.768 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S Thu Jul 5 21:56:01 2001
287.769 -@@ -0,0 +1,93 @@
287.770 -+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
287.771 -+ This file is part of the GNU C Library.
287.772 -+
287.773 -+ The GNU C Library is free software; you can redistribute it and/or
287.774 -+ modify it under the terms of the GNU Lesser General Public
287.775 -+ License as published by the Free Software Foundation; either
287.776 -+ version 2.1 of the License, or (at your option) any later version.
287.777 -+
287.778 -+ The GNU C Library is distributed in the hope that it will be useful,
287.779 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
287.780 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.781 -+ Lesser General Public License for more details.
287.782 -+
287.783 -+ You should have received a copy of the GNU Lesser General Public
287.784 -+ License along with the GNU C Library; if not, write to the Free
287.785 -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.786 -+ 02111-1307 USA. */
287.787 -+
287.788 -+/*
287.789 -+ Floating Point Registers (FPRs) save routine
287.790 -+*/
287.791 -+
287.792 -+#include <sysdep.h>
287.793 -+
287.794 -+ENTRY(_savefpr_all)
287.795 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
287.796 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
287.797 -+C_TEXT(_savef14):
287.798 -+C_TEXT(_savefpr_14): stfd fp14,-144(r1)
287.799 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
287.800 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
287.801 -+C_TEXT(_savef15):
287.802 -+C_TEXT(_savefpr_15): stfd fp15,-136(r1)
287.803 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
287.804 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
287.805 -+C_TEXT(_savef16):
287.806 -+C_TEXT(_savefpr_16): stfd fp16,-128(r1)
287.807 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
287.808 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
287.809 -+C_TEXT(_savef17):
287.810 -+C_TEXT(_savefpr_17): stfd fp17,-120(r1)
287.811 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
287.812 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
287.813 -+C_TEXT(_savef18):
287.814 -+C_TEXT(_savefpr_18): stfd fp18,-112(r1)
287.815 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
287.816 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
287.817 -+C_TEXT(_savef19):
287.818 -+C_TEXT(_savefpr_19): stfd fp19,-104(r1)
287.819 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
287.820 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
287.821 -+C_TEXT(_savef20):
287.822 -+C_TEXT(_savefpr_20): stfd fp20,-96(r1)
287.823 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
287.824 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
287.825 -+C_TEXT(_savef21):
287.826 -+C_TEXT(_savefpr_21): stfd fp21,-88(r1)
287.827 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
287.828 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
287.829 -+C_TEXT(_savef22):
287.830 -+C_TEXT(_savefpr_22): stfd fp22,-80(r1)
287.831 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
287.832 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
287.833 -+C_TEXT(_savef23):
287.834 -+C_TEXT(_savefpr_23): stfd fp23,-72(r1)
287.835 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
287.836 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
287.837 -+C_TEXT(_savef24):
287.838 -+C_TEXT(_savefpr_24): stfd fp24,-64(r1)
287.839 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
287.840 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
287.841 -+C_TEXT(_savef25):
287.842 -+C_TEXT(_savefpr_25): stfd fp25,-56(r1)
287.843 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
287.844 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
287.845 -+C_TEXT(_savef26):
287.846 -+C_TEXT(_savefpr_26): stfd fp26,-48(r1)
287.847 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
287.848 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
287.849 -+C_TEXT(_savef27):
287.850 -+C_TEXT(_savefpr_27): stfd fp27,-40(r1)
287.851 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
287.852 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
287.853 -+C_TEXT(_savef28):
287.854 -+C_TEXT(_savefpr_28): stfd fp28,-32(r1)
287.855 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
287.856 -+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
287.857 -+C_TEXT(_savef29):
287.858 -+C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29
287.859 -+ stfd fp30,-16(r1) #save f30
287.860 -+ stfd fp31,-8(r1) #save f31
287.861 -+ stw r0,8(r1) #save LR in callers frame
287.862 -+ blr #return
287.863 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h
287.864 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fpu_control.h Wed Dec 31 16:00:00 1969
287.865 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h Thu Jul 5 21:56:01 2001
287.866 -@@ -0,0 +1,67 @@
287.867 -+/* FPU control word definitions. PowerPC version.
287.868 -+ Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
287.869 -+ This file is part of the GNU C Library.
287.870 -+
287.871 -+ The GNU C Library is free software; you can redistribute it and/or
287.872 -+ modify it under the terms of the GNU Lesser General Public
287.873 -+ License as published by the Free Software Foundation; either
287.874 -+ version 2.1 of the License, or (at your option) any later version.
287.875 -+
287.876 -+ The GNU C Library is distributed in the hope that it will be useful,
287.877 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
287.878 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.879 -+ Lesser General Public License for more details.
287.880 -+
287.881 -+ You should have received a copy of the GNU Lesser General Public
287.882 -+ License along with the GNU C Library; if not, write to the Free
287.883 -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.884 -+ 02111-1307 USA. */
287.885 -+
287.886 -+#ifndef _FPU_CONTROL_H
287.887 -+#define _FPU_CONTROL_H
287.888 -+
287.889 -+/* rounding control */
287.890 -+#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
287.891 -+#define _FPU_RC_DOWN 0x03
287.892 -+#define _FPU_RC_UP 0x02
287.893 -+#define _FPU_RC_ZERO 0x01
287.894 -+
287.895 -+#define _FPU_MASK_NI 0x04 /* non-ieee mode */
287.896 -+
287.897 -+/* masking of interrupts */
287.898 -+#define _FPU_MASK_ZM 0x10 /* zero divide */
287.899 -+#define _FPU_MASK_OM 0x40 /* overflow */
287.900 -+#define _FPU_MASK_UM 0x20 /* underflow */
287.901 -+#define _FPU_MASK_XM 0x08 /* inexact */
287.902 -+#define _FPU_MASK_IM 0x80 /* invalid operation */
287.903 -+
287.904 -+#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
287.905 -+
287.906 -+/* The fdlibm code requires no interrupts for exceptions. */
287.907 -+#define _FPU_DEFAULT 0x00000000 /* Default value. */
287.908 -+
287.909 -+/* IEEE: same as above, but (some) exceptions;
287.910 -+ we leave the 'inexact' exception off.
287.911 -+ */
287.912 -+#define _FPU_IEEE 0x000000f0
287.913 -+
287.914 -+/* Type of the control word. */
287.915 -+typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
287.916 -+
287.917 -+/* Macros for accessing the hardware control word. */
287.918 -+#define _FPU_GETCW(cw) ( { \
287.919 -+ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
287.920 -+ __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
287.921 -+ (cw)=tmp.cw[1]; \
287.922 -+ tmp.cw[1]; } )
287.923 -+#define _FPU_SETCW(cw) { \
287.924 -+ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
287.925 -+ tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
287.926 -+ tmp.cw[1] = cw; \
287.927 -+ __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
287.928 -+}
287.929 -+
287.930 -+/* Default control word set at startup. */
287.931 -+extern fpu_control_t __fpu_control;
287.932 -+
287.933 -+#endif /* _FPU_CONTROL_H */
287.934 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/setjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S
287.935 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/setjmp.S Wed Dec 31 16:00:00 1969
287.936 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S Thu Jul 10 11:43:44 2003
287.937 -@@ -0,0 +1,73 @@
287.938 -+/* setjmp for PowerPC.
287.939 -+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
287.940 -+ This file is part of the GNU C Library.
287.941 -+
287.942 -+ The GNU C Library is free software; you can redistribute it and/or
287.943 -+ modify it under the terms of the GNU Library General Public License as
287.944 -+ published by the Free Software Foundation; either version 2 of the
287.945 -+ License, or (at your option) any later version.
287.946 -+
287.947 -+ The GNU C Library is distributed in the hope that it will be useful,
287.948 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
287.949 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.950 -+ Library General Public License for more details.
287.951 -+
287.952 -+ You should have received a copy of the GNU Library General Public
287.953 -+ License along with the GNU C Library; see the file COPYING.LIB. If not,
287.954 -+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
287.955 -+ Boston, MA 02111-1307, USA. */
287.956 -+
287.957 -+#include <sysdep.h>
287.958 -+#define _ASM
287.959 -+#define _SETJMP_H
287.960 -+#include <bits/setjmp.h>
287.961 -+#include <bp-sym.h>
287.962 -+#include <bp-asm.h>
287.963 -+
287.964 -+ENTRY (BP_SYM (__sigsetjmp))
287.965 -+ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
287.966 -+
287.967 -+ stw r1,(JB_GPR1*4)(3)
287.968 -+ mflr r0
287.969 -+ stw r2,(JB_GPR2*4)(3)
287.970 -+ stw r14,((JB_GPRS+0)*4)(3)
287.971 -+ stfd fp14,((JB_FPRS+0*2)*4)(3)
287.972 -+ stw r0,(JB_LR*4)(3)
287.973 -+ stw r15,((JB_GPRS+1)*4)(3)
287.974 -+ stfd fp15,((JB_FPRS+1*2)*4)(3)
287.975 -+ mfcr r0
287.976 -+ stw r16,((JB_GPRS+2)*4)(3)
287.977 -+ stfd fp16,((JB_FPRS+2*2)*4)(3)
287.978 -+ stw r0,(JB_CR*4)(3)
287.979 -+ stw r17,((JB_GPRS+3)*4)(3)
287.980 -+ stfd fp17,((JB_FPRS+3*2)*4)(3)
287.981 -+ stw r18,((JB_GPRS+4)*4)(3)
287.982 -+ stfd fp18,((JB_FPRS+4*2)*4)(3)
287.983 -+ stw r19,((JB_GPRS+5)*4)(3)
287.984 -+ stfd fp19,((JB_FPRS+5*2)*4)(3)
287.985 -+ stw r20,((JB_GPRS+6)*4)(3)
287.986 -+ stfd fp20,((JB_FPRS+6*2)*4)(3)
287.987 -+ stw r21,((JB_GPRS+7)*4)(3)
287.988 -+ stfd fp21,((JB_FPRS+7*2)*4)(3)
287.989 -+ stw r22,((JB_GPRS+8)*4)(3)
287.990 -+ stfd fp22,((JB_FPRS+8*2)*4)(3)
287.991 -+ stw r23,((JB_GPRS+9)*4)(3)
287.992 -+ stfd fp23,((JB_FPRS+9*2)*4)(3)
287.993 -+ stw r24,((JB_GPRS+10)*4)(3)
287.994 -+ stfd fp24,((JB_FPRS+10*2)*4)(3)
287.995 -+ stw r25,((JB_GPRS+11)*4)(3)
287.996 -+ stfd fp25,((JB_FPRS+11*2)*4)(3)
287.997 -+ stw r26,((JB_GPRS+12)*4)(3)
287.998 -+ stfd fp26,((JB_FPRS+12*2)*4)(3)
287.999 -+ stw r27,((JB_GPRS+13)*4)(3)
287.1000 -+ stfd fp27,((JB_FPRS+13*2)*4)(3)
287.1001 -+ stw r28,((JB_GPRS+14)*4)(3)
287.1002 -+ stfd fp28,((JB_FPRS+14*2)*4)(3)
287.1003 -+ stw r29,((JB_GPRS+15)*4)(3)
287.1004 -+ stfd fp29,((JB_FPRS+15*2)*4)(3)
287.1005 -+ stw r30,((JB_GPRS+16)*4)(3)
287.1006 -+ stfd fp30,((JB_FPRS+16*2)*4)(3)
287.1007 -+ stw r31,((JB_GPRS+17)*4)(3)
287.1008 -+ stfd fp31,((JB_FPRS+17*2)*4)(3)
287.1009 -+ b JUMPTARGET (BP_SYM (__sigjmp_save))
287.1010 -+END (BP_SYM (__sigsetjmp))
287.1011 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu_control.h
287.1012 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu_control.h Thu Jul 5 21:56:01 2001
287.1013 -+++ glibc-2.2.5/sysdeps/powerpc/fpu_control.h Wed Dec 31 16:00:00 1969
287.1014 -@@ -1,67 +0,0 @@
287.1015 --/* FPU control word definitions. PowerPC version.
287.1016 -- Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
287.1017 -- This file is part of the GNU C Library.
287.1018 --
287.1019 -- The GNU C Library is free software; you can redistribute it and/or
287.1020 -- modify it under the terms of the GNU Lesser General Public
287.1021 -- License as published by the Free Software Foundation; either
287.1022 -- version 2.1 of the License, or (at your option) any later version.
287.1023 --
287.1024 -- The GNU C Library is distributed in the hope that it will be useful,
287.1025 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
287.1026 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
287.1027 -- Lesser General Public License for more details.
287.1028 --
287.1029 -- You should have received a copy of the GNU Lesser General Public
287.1030 -- License along with the GNU C Library; if not, write to the Free
287.1031 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.1032 -- 02111-1307 USA. */
287.1033 --
287.1034 --#ifndef _FPU_CONTROL_H
287.1035 --#define _FPU_CONTROL_H
287.1036 --
287.1037 --/* rounding control */
287.1038 --#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
287.1039 --#define _FPU_RC_DOWN 0x03
287.1040 --#define _FPU_RC_UP 0x02
287.1041 --#define _FPU_RC_ZERO 0x01
287.1042 --
287.1043 --#define _FPU_MASK_NI 0x04 /* non-ieee mode */
287.1044 --
287.1045 --/* masking of interrupts */
287.1046 --#define _FPU_MASK_ZM 0x10 /* zero divide */
287.1047 --#define _FPU_MASK_OM 0x40 /* overflow */
287.1048 --#define _FPU_MASK_UM 0x20 /* underflow */
287.1049 --#define _FPU_MASK_XM 0x08 /* inexact */
287.1050 --#define _FPU_MASK_IM 0x80 /* invalid operation */
287.1051 --
287.1052 --#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
287.1053 --
287.1054 --/* The fdlibm code requires no interrupts for exceptions. */
287.1055 --#define _FPU_DEFAULT 0x00000000 /* Default value. */
287.1056 --
287.1057 --/* IEEE: same as above, but (some) exceptions;
287.1058 -- we leave the 'inexact' exception off.
287.1059 -- */
287.1060 --#define _FPU_IEEE 0x000000f0
287.1061 --
287.1062 --/* Type of the control word. */
287.1063 --typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
287.1064 --
287.1065 --/* Macros for accessing the hardware control word. */
287.1066 --#define _FPU_GETCW(cw) ( { \
287.1067 -- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
287.1068 -- __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
287.1069 -- (cw)=tmp.cw[1]; \
287.1070 -- tmp.cw[1]; } )
287.1071 --#define _FPU_SETCW(cw) { \
287.1072 -- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
287.1073 -- tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
287.1074 -- tmp.cw[1] = cw; \
287.1075 -- __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
287.1076 --}
287.1077 --
287.1078 --/* Default control word set at startup. */
287.1079 --extern fpu_control_t __fpu_control;
287.1080 --
287.1081 --#endif /* _FPU_CONTROL_H */
287.1082 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/setjmp.S glibc-2.2.5/sysdeps/powerpc/setjmp.S
287.1083 ---- glibc-2.2.5.old/sysdeps/powerpc/setjmp.S Thu Jul 5 21:56:01 2001
287.1084 -+++ glibc-2.2.5/sysdeps/powerpc/setjmp.S Thu Jul 10 11:43:44 2003
287.1085 -@@ -24,6 +24,8 @@
287.1086 - #include <bp-sym.h>
287.1087 - #include <bp-asm.h>
287.1088 -
287.1089 -+/* The FPU stores have been removed from this file - see fpu/setjmp.S */
287.1090 -+
287.1091 - ENTRY (BP_SYM (__sigsetjmp))
287.1092 - CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
287.1093 -
287.1094 -@@ -31,43 +33,25 @@
287.1095 - mflr r0
287.1096 - stw r2,(JB_GPR2*4)(3)
287.1097 - stw r14,((JB_GPRS+0)*4)(3)
287.1098 -- stfd fp14,((JB_FPRS+0*2)*4)(3)
287.1099 - stw r0,(JB_LR*4)(3)
287.1100 - stw r15,((JB_GPRS+1)*4)(3)
287.1101 -- stfd fp15,((JB_FPRS+1*2)*4)(3)
287.1102 - mfcr r0
287.1103 - stw r16,((JB_GPRS+2)*4)(3)
287.1104 -- stfd fp16,((JB_FPRS+2*2)*4)(3)
287.1105 - stw r0,(JB_CR*4)(3)
287.1106 - stw r17,((JB_GPRS+3)*4)(3)
287.1107 -- stfd fp17,((JB_FPRS+3*2)*4)(3)
287.1108 - stw r18,((JB_GPRS+4)*4)(3)
287.1109 -- stfd fp18,((JB_FPRS+4*2)*4)(3)
287.1110 - stw r19,((JB_GPRS+5)*4)(3)
287.1111 -- stfd fp19,((JB_FPRS+5*2)*4)(3)
287.1112 - stw r20,((JB_GPRS+6)*4)(3)
287.1113 -- stfd fp20,((JB_FPRS+6*2)*4)(3)
287.1114 - stw r21,((JB_GPRS+7)*4)(3)
287.1115 -- stfd fp21,((JB_FPRS+7*2)*4)(3)
287.1116 - stw r22,((JB_GPRS+8)*4)(3)
287.1117 -- stfd fp22,((JB_FPRS+8*2)*4)(3)
287.1118 - stw r23,((JB_GPRS+9)*4)(3)
287.1119 -- stfd fp23,((JB_FPRS+9*2)*4)(3)
287.1120 - stw r24,((JB_GPRS+10)*4)(3)
287.1121 -- stfd fp24,((JB_FPRS+10*2)*4)(3)
287.1122 - stw r25,((JB_GPRS+11)*4)(3)
287.1123 -- stfd fp25,((JB_FPRS+11*2)*4)(3)
287.1124 - stw r26,((JB_GPRS+12)*4)(3)
287.1125 -- stfd fp26,((JB_FPRS+12*2)*4)(3)
287.1126 - stw r27,((JB_GPRS+13)*4)(3)
287.1127 -- stfd fp27,((JB_FPRS+13*2)*4)(3)
287.1128 - stw r28,((JB_GPRS+14)*4)(3)
287.1129 -- stfd fp28,((JB_FPRS+14*2)*4)(3)
287.1130 - stw r29,((JB_GPRS+15)*4)(3)
287.1131 -- stfd fp29,((JB_FPRS+15*2)*4)(3)
287.1132 - stw r30,((JB_GPRS+16)*4)(3)
287.1133 -- stfd fp30,((JB_FPRS+16*2)*4)(3)
287.1134 - stw r31,((JB_GPRS+17)*4)(3)
287.1135 -- stfd fp31,((JB_FPRS+17*2)*4)(3)
287.1136 - b JUMPTARGET (BP_SYM (__sigjmp_save))
287.1137 - END (BP_SYM (__sigsetjmp))
288.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-i386-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
288.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
288.3 @@ -1,20 +0,0 @@
288.4 -diff -urN glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h
288.5 ---- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h 2001-07-06 06:56:16.000000000 +0200
288.6 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h 2004-09-03 12:35:44.000000000 +0200
288.7 -@@ -36,6 +36,16 @@
288.8 - #undef L
288.9 - #define L(name) .L##name
288.10 -
288.11 -+/* This is a kludge to make syscalls.list find these under the names
288.12 -+ * pread and pwrite, since some kernel headers define those names
288.13 -+ * and some define the *64 names for the same system calls. */
288.14 -+#if !defined __NR_pread && defined __NR_pread64
288.15 -+# define __NR_pread __NR_pread64
288.16 -+#endif
288.17 -+#if !defined __NR_pwrite && defined __NR_pwrite64
288.18 -+# define __NR_pwrite __NR_pwrite64
288.19 -+#endif
288.20 -+
288.21 - #ifdef __ASSEMBLER__
288.22 -
288.23 - /* Linux uses a negative return value to indicate syscall errors,
289.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-m68k-pwrite.patch Tue Aug 14 19:32:22 2007 +0000
289.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
289.3 @@ -1,32 +0,0 @@
289.4 -Copied from similar patch for other architectures.
289.5 -
289.6 -Should fix this error:
289.7 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
289.8 -../sysdeps/unix/sysv/linux/pread.c:53: `__NR_pread' undeclared (first use in this function)
289.9 -../sysdeps/unix/sysv/linux/pread.c:53: (Each undeclared identifier is reported only once
289.10 -../sysdeps/unix/sysv/linux/pread.c:53: for each function it appears in.)
289.11 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
289.12 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5/posix'
289.13 -make[1]: *** [posix/subdir_lib] Error 2
289.14 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5'
289.15 -make: *** [all] Error 2
289.16 -
289.17 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h.old 2004-10-05 08:37:37.000000000 -0700
289.18 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h 2004-10-05 08:38:22.000000000 -0700
289.19 -@@ -32,6 +32,16 @@
289.20 - # define SYS_ify(syscall_name) __NR_/**/syscall_name
289.21 - #endif
289.22 -
289.23 -+/* This is a kludge to make syscalls.list find these under the names
289.24 -+ pread and pwrite, since some kernel headers define those names
289.25 -+ and some define the *64 names for the same system calls. */
289.26 -+#if !defined __NR_pread && defined __NR_pread64
289.27 -+# define __NR_pread __NR_pread64
289.28 -+#endif
289.29 -+#if !defined __NR_pwrite && defined __NR_pwrite64
289.30 -+# define __NR_pwrite __NR_pwrite64
289.31 -+#endif
289.32 -+
289.33 - #ifdef __ASSEMBLER__
289.34 -
289.35 - /* Linux uses a negative return value to indicate syscall errors, unlike
290.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-build-gmon.patch Tue Aug 14 19:32:22 2007 +0000
290.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
290.3 @@ -1,86 +0,0 @@
290.4 -From http://www.ltc.com/~brad/mips/glibc-2.2.5-mips-build-gmon.diff
290.5 -See http://www.ltc.com/~brad/mips/mips-cross-toolchain.html
290.6 -
290.7 ---- glibc-2.2.5/sysdeps/mips/machine-gmon.h 2001-08-13 04:42:44.000000000 -0400
290.8 -+++ glibc-2.2.5/sysdeps/mips/machine-gmon.h 2002-09-25 17:10:59.000000000 -0400
290.9 -@@ -17,42 +17,52 @@
290.10 - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
290.11 - 02111-1307 USA. */
290.12 -
290.13 --#define _MCOUNT_DECL static void __mcount
290.14 -+#define _MCOUNT_DECL(frompc,selfpc) \
290.15 -+static void __attribute_used__ __mcount (u_long frompc, u_long selfpc)
290.16 -
290.17 - /* Call __mcount with our the return PC for our caller,
290.18 - and the return PC our caller will return to. */
290.19 - #ifdef __PIC__
290.20 - #define CPLOAD ".cpload $25;"
290.21 -+#define CPRESTORE ".cprestore 44\n\t"
290.22 - #else
290.23 - #define CPLOAD
290.24 -+#define CPRESTORE
290.25 - #endif
290.26 -
290.27 - #define MCOUNT asm(\
290.28 -- ".globl _mcount;" \
290.29 -- ".align 2;" \
290.30 -- ".type _mcount,@function;" \
290.31 -- "_mcount:;" \
290.32 -- ".set noreorder;" \
290.33 -- ".set noat;" \
290.34 -+ ".globl _mcount;\n\t" \
290.35 -+ ".align 2;\n\t" \
290.36 -+ ".type _mcount,@function;\n\t" \
290.37 -+ ".ent _mcount\n\t" \
290.38 -+ "_mcount:\n\t" \
290.39 -+ ".frame $sp,44,$31\n\t" \
290.40 -+ ".set noreorder;\n\t" \
290.41 -+ ".set noat;\n\t" \
290.42 - CPLOAD \
290.43 -- "sw $4,8($29);" \
290.44 -- "sw $5,12($29);" \
290.45 -- "sw $6,16($29);" \
290.46 -- "sw $7,20($29);" \
290.47 -- "sw $1,0($29);" \
290.48 -- "sw $31,4($29);" \
290.49 -- "move $5,$31;" \
290.50 -- "move $4,$1;" \
290.51 -- "jal __mcount;" \
290.52 -- "nop;" \
290.53 -- "lw $4,8($29);" \
290.54 -- "lw $5,12($29);" \
290.55 -- "lw $6,16($29);" \
290.56 -- "lw $7,20($29);" \
290.57 -- "lw $31,4($29);" \
290.58 -- "lw $1,0($29);" \
290.59 -- "addu $29,$29,8;" \
290.60 -- "j $31;" \
290.61 -- "move $31,$1;" \
290.62 -- ".set reorder;" \
290.63 -- ".set at");
290.64 -+ "subu $29,$29,48;\n\t" \
290.65 -+ CPRESTORE \
290.66 -+ "sw $4,24($29);\n\t" \
290.67 -+ "sw $5,28($29);\n\t" \
290.68 -+ "sw $6,32($29);\n\t" \
290.69 -+ "sw $7,36($29);\n\t" \
290.70 -+ "sw $2,40($29);\n\t" \
290.71 -+ "sw $1,16($29);\n\t" \
290.72 -+ "sw $31,20($29);\n\t" \
290.73 -+ "move $5,$31;\n\t" \
290.74 -+ "move $4,$1;\n\t" \
290.75 -+ "jal __mcount;\n\t" \
290.76 -+ "nop;\n\t" \
290.77 -+ "lw $4,24($29);\n\t" \
290.78 -+ "lw $5,28($29);\n\t" \
290.79 -+ "lw $6,32($29);\n\t" \
290.80 -+ "lw $7,36($29);\n\t" \
290.81 -+ "lw $2,40($29);\n\t" \
290.82 -+ "lw $31,20($29);\n\t" \
290.83 -+ "lw $1,16($29);\n\t" \
290.84 -+ "addu $29,$29,56;\n\t" \
290.85 -+ "j $31;\n\t" \
290.86 -+ "move $31,$1;\n\t" \
290.87 -+ ".set reorder;\n\t" \
290.88 -+ ".set at\n\t" \
290.89 -+ ".end _mcount");
291.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-clone-local-label.patch Tue Aug 14 19:32:22 2007 +0000
291.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
291.3 @@ -1,47 +0,0 @@
291.4 -This is a workaround for
291.5 -
291.6 -mipsel-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/mips/clone.S -c -I../include -I. -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc -I.. -I../libio -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc -I../sysdeps/mips/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/mips -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/mips/mipsel -I../sysdeps/mips/fpu -I../sysdeps/mips -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/include -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/mipsel-unknown-linux-gnu/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DASSEMBLER -o /home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o
291.7 -../sysdeps/unix/sysv/linux/mips/clone.S: Assembler messages:
291.8 -../sysdeps/unix/sysv/linux/mips/clone.S:66: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format
291.9 -make[2]: *** [/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o] Error 1
291.10 -
291.11 -which was using h.j.lu's binutils-2.13.90.0.18.
291.12 -
291.13 -
291.14 -But see http://lists.debian.org/debian-mips/2003/debian-mips-200305/msg00011.html
291.15 -which says
291.16 -"A newer version of binutils (CVS post 2003-03-12) fixes it without
291.17 -the need of changing perfectly legal code."
291.18 -So presumably this can be ditched sooner or later.
291.19 -
291.20 -From http://honk.physik.uni-konstanz.de/~agx/linux-mips/glibc/patches/applied/clone-local-label.diff
291.21 -
291.22 -2003-03-13 Guido Guenther <agx@sigxcpu.org>
291.23 -
291.24 - * sysdeps/unix/sysv/linux/mips/clone.S: introduce and use local label
291.25 - .Lthread_start since current binutils don't allow branches to globally
291.26 - visible symbols.
291.27 -
291.28 -===================================================================
291.29 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/clone.S,v
291.30 -retrieving revision 1.10
291.31 -diff -u -r1.10 clone.S
291.32 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 12 Mar 2003 01:04:51 -0000 1.10
291.33 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 12 Mar 2003 19:04:39 -0000
291.34 -@@ -63,7 +63,7 @@
291.35 - syscall
291.36 -
291.37 - bnez a3,error
291.38 -- beqz v0,__thread_start
291.39 -+ beqz v0,.Lthread_start
291.40 -
291.41 - /* Successful return from the parent */
291.42 - addiu sp,32
291.43 -@@ -85,6 +85,7 @@
291.44 - debug info. */
291.45 -
291.46 - ENTRY(__thread_start)
291.47 -+.Lthread_start:
291.48 - /* cp is already loaded. */
291.49 - .cprestore 16
291.50 - /* The stackframe has been created on entry of clone(). */
292.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.56.patch Tue Aug 14 19:32:22 2007 +0000
292.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
292.3 @@ -1,31 +0,0 @@
292.4 -wget http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/mips/dl-machine.h.diff?r1=1.55&r2=1.56&cvsroot=glibc
292.5 -
292.6 -Changelog:
292.7 - (__dl_runtime_resolve): Remove `const' from `got'.
292.8 -
292.9 -Fixes error
292.10 -
292.11 -dl-runtime.c: In function `__dl_runtime_resolve':
292.12 -dl-runtime.c:235: error: assignment of read-only location
292.13 -make[2]: *** [/home/dank/crosstool-0.28-rc32/build/mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/dl-runtime.o] Error 1
292.14 -
292.15 -when building mipsel-gcc-3.4.0-glibc-2.2.5
292.16 -
292.17 -===================================================================
292.18 -RCS file: /cvs/glibc/libc/sysdeps/mips/dl-machine.h,v
292.19 -retrieving revision 1.55
292.20 -retrieving revision 1.56
292.21 -diff -u -r1.55 -r1.56
292.22 ---- libc/sysdeps/mips/dl-machine.h 2001/09/08 17:16:44 1.55
292.23 -+++ libc/sysdeps/mips/dl-machine.h 2002/01/17 23:21:33 1.56
292.24 -@@ -276,8 +276,8 @@
292.25 - = (const void *) D_PTR (l, l_info[DT_SYMTAB]); \
292.26 - const char *strtab \
292.27 - = (const void *) D_PTR (l, l_info[DT_STRTAB]); \
292.28 -- const ElfW(Addr) *got \
292.29 -- = (const ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]); \
292.30 -+ ElfW(Addr) *got \
292.31 -+ = (ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]); \
292.32 - const ElfW(Word) local_gotno \
292.33 - = (const ElfW(Word)) l->l_info[DT_MIPS (LOCAL_GOTNO)]->d_un.d_val; \
292.34 - const ElfW(Word) gotsym \
293.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.57.patch Tue Aug 14 19:32:22 2007 +0000
293.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
293.3 @@ -1,43 +0,0 @@
293.4 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/mips/dl-machine.h.diff?r1=1.57&r2=1.58&cvsroot=glibc'
293.5 -
293.6 -ChangeLog:
293.7 - (ELF_MACHINE_BEFORE_RTLD_RELOC): Don't use label at end of compound statement.
293.8 -
293.9 -Fixes error
293.10 -
293.11 -rtld.c: In function `_dl_start':
293.12 -rtld.c:183: error: label at end of compound statement
293.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc32/build/mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/rtld.os] Error 1
293.14 -
293.15 -
293.16 -===================================================================
293.17 -RCS file: /cvs/glibc/libc/sysdeps/mips/dl-machine.h,v
293.18 -retrieving revision 1.56
293.19 -retrieving revision 1.57
293.20 -diff -u -r1.56 -r1.57
293.21 ---- libc/sysdeps/mips/dl-machine.h 2002/01/17 23:21:33 1.56
293.22 -+++ libc/sysdeps/mips/dl-machine.h 2002/01/29 02:58:00 1.57
293.23 -@@ -1,5 +1,5 @@
293.24 - /* Machine-dependent ELF dynamic relocation inline functions. MIPS version.
293.25 -- Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
293.26 -+ Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
293.27 - This file is part of the GNU C Library.
293.28 - Contributed by Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
293.29 -
293.30 -@@ -132,7 +132,7 @@
293.31 - got = (ElfW(Addr) *) D_PTR (map, l_info[DT_PLTGOT]); \
293.32 - \
293.33 - if (__builtin_expect (map->l_addr == 0, 1)) \
293.34 -- goto done; \
293.35 -+ break; \
293.36 - \
293.37 - /* got[0] is reserved. got[1] is also reserved for the dynamic object \
293.38 - generated by gnu ld. Skip these reserved entries from \
293.39 -@@ -169,7 +169,6 @@
293.40 - got++; \
293.41 - sym++; \
293.42 - } \
293.43 --done: \
293.44 - } while(0)
293.45 -
293.46 -
294.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.59-kinda.patch Tue Aug 14 19:32:22 2007 +0000
294.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
294.3 @@ -1,35 +0,0 @@
294.4 -Fixes error
294.5 -
294.6 -In file included from dynamic-link.h:21,
294.7 - from dl-load.c:32:
294.8 -../sysdeps/mips/dl-machine.h:454: error: parse error before "$29"
294.9 -../sysdeps/mips/dl-machine.h:454: warning: type defaults to `int' in declaration of `$29'
294.10 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
294.11 -../sysdeps/mips/dl-machine.h:454: error: syntax error at '#' token
294.12 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
294.13 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
294.14 -../sysdeps/mips/dl-machine.h:454: error: syntax error at '#' token
294.15 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
294.16 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
294.17 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
294.18 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
294.19 -../sysdeps/mips/dl-machine.h:454: error: missing terminating " character
294.20 -...
294.21 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc24/build/mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
294.22 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc24/build/mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/glibc-2.2.5/elf'
294.23 -
294.24 -See also http://sources.redhat.com/ml/crossgcc/2003-12/msg00014.html
294.25 -
294.26 -===================================================================
294.27 -diff -u -r1.58 -r1.59
294.28 ---- libc/sysdeps/mips/dl-machine.h 2002/02/01 01:31:55 1.58
294.29 -+++ libc/sysdeps/mips/dl-machine.h 2002/02/03 00:29:15 1.59
294.30 -@@ -449,7 +449,7 @@
294.31 - addu $7, $7, 4\n\
294.32 - subu $29, 16\n\
294.33 - # Call the function to run the initializers.\n\
294.34 -- jal _dl_init
294.35 -+ jal _dl_init\n\
294.36 - addiu $29, 16\n\
294.37 - # Pass our finalizer function to the user in $2 as per ELF ABI.\n\
294.38 - la $2, _dl_fini\n\
295.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.60.patch Tue Aug 14 19:32:22 2007 +0000
295.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
295.3 @@ -1,53 +0,0 @@
295.4 -Message-ID: <20040926095115.9204.qmail@webmail-2-5.mesa1.secureserver.net>
295.5 -Date: Sun, 26 Sep 2004 02:51:15 -0700
295.6 -From: ml@bitbash.net
295.7 -Subject: RE: crosstool-0.28-rc36: ld.so.1 undefined reference
295.8 -To: Dan Kegel <dank@kegel.com>
295.9 -cc: crossgcc@sources.redhat.com
295.10 -
295.11 -gcc-3.4.0-glibc-2.2.5 barfs with a few undefined refereces and multiple
295.12 -definitions. The follwing patch seems to take care of the undefined
295.13 -reference of __dl_runtime_resolve symbol.
295.14 -
295.15 -Filename: patches/glibc-2.2.5/glibc-2.2.5-mips-dl-machine-1.60.patch
295.16 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
295.17 -Retrieved with
295.18 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/mips/dl-machine.h.diff?r1=1.59&r2=1.60&cvsroot=glibc'
295.19 -See http://sources.redhat.com/ml/libc-alpha/2002-02/msg00091.html
295.20 -See also glibc-2.2.5-mips-build-gmon.patch, which takes care of the other part of this for mips.
295.21 -
295.22 -ChangeLog:
295.23 - sysdeps/mips/dl-machine.h (elf_machine_matches_host): Use
295.24 - __attribute_used__.
295.25 - (__dl_runtime_resolve): Likewise.
295.26 -
295.27 -Fixes error
295.28 -
295.29 -/home/cross/crosstool-0.28-rc36/build/mips-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/ld.so.1:
295.30 -undefined reference to `__dl_runtime_resolve'
295.31 -
295.32 -===================================================================
295.33 -RCS file: /cvs/glibc/libc/sysdeps/mips/dl-machine.h,v
295.34 -retrieving revision 1.59
295.35 -retrieving revision 1.60
295.36 -diff -u -r1.59 -r1.60
295.37 ---- libc/sysdeps/mips/dl-machine.h 2002/02/03 00:29:15 1.59
295.38 -+++ libc/sysdeps/mips/dl-machine.h 2002/02/08 18:56:57 1.60
295.39 -@@ -69,7 +69,7 @@
295.40 - } while (0)
295.41 -
295.42 - /* Return nonzero iff ELF header is compatible with the running host. */
295.43 --static inline int __attribute__ ((unused))
295.44 -+static inline int __attribute_used__
295.45 - elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
295.46 - {
295.47 - switch (ehdr->e_machine)
295.48 -@@ -262,7 +262,7 @@
295.49 - /* This is called from assembly stubs below which the compiler can't see. */ \
295.50 - static ElfW(Addr) \
295.51 - __dl_runtime_resolve (ElfW(Word), ElfW(Word), ElfW(Addr), ElfW(Addr)) \
295.52 -- __attribute__ ((unused)); \
295.53 -+ __attribute_used__; \
295.54 - \
295.55 - static ElfW(Addr) \
295.56 - __dl_runtime_resolve (ElfW(Word) sym_index, \
296.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-powerpc-as.patch Tue Aug 14 19:32:22 2007 +0000
296.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
296.3 @@ -1,29 +0,0 @@
296.4 -Based on glibc-2.3.2/glibc-2.3.2-powerpc-as.patch
296.5 -
296.6 -Fixes the following errors when building glibc for ppc7450:
296.7 -
296.8 -/tmp/ccwlHdbl.s: Assembler messages:
296.9 -/tmp/ccwlHdbl.s:73: Error: Unrecognized opcode: `stvx'
296.10 -/tmp/ccwlHdbl.s:74: Error: Unrecognized opcode: `mfvrsave'
296.11 -/tmp/ccwlHdbl.s:300: Error: Unrecognized opcode: `lvx'
296.12 -/tmp/ccwlHdbl.s:302: Error: Unrecognized opcode: `mtvrsave'
296.13 -make[2]: *** [/usr/local/src/crosstool-0.28-rc34/build/powerpc-7450-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libio/iopopen.o] Error 1
296.14 -make[2]: Leaving directory `/home/local/src/crosstool-0.28-rc34/build/powerpc-7450-linux-gnu/gcc-3.2.3-glibc-2.2.5/glibc-2.2.5/libio'
296.15 -make[1]: *** [libio/subdir_lib] Error 2
296.16 -make[1]: Leaving directory `/home/local/src/crosstool-0.28-rc34/build/powerpc-7450-linux-gnu/gcc-3.2.3-glibc-2.2.5/glibc-2.2.5'
296.17 -make: *** [all] Error 2
296.18 -
296.19 -Contributed by Tom Warzeka <waz@quahog.npt.nuwc.navy.mil>
296.20 -
296.21 -===================================================================
296.22 ---- glibc-2.2.5/sysdeps/powerpc/Makefile~ 2004-08-31 14:59:15.000000000 -0400
296.23 -+++ glibc-2.2.5/sysdeps/powerpc/Makefile 2004-09-02 19:47:21.000000000 -0400
296.24 -@@ -1,7 +1,6 @@
296.25 - # We always want to use the new mnemonic syntax even if we are on a RS6000
296.26 - # machine.
296.27 --+cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
296.28 --asm-CPPFLAGS += -Wa,-mppc
296.29 -++cflags += -mnew-mnemonics
296.30 -
296.31 - ifeq ($(subdir),gmon)
296.32 - sysdep_routines += ppc-mcount
297.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-ppc405erratum77.patch Tue Aug 14 19:32:22 2007 +0000
297.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
297.3 @@ -1,65 +0,0 @@
297.4 -# see http://bugs.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&pr=4155
297.5 -# and http://www.kegel.com/xgcc3/ppc405erratum77.html
297.6 -# See also matching patch for linuxthreads
297.7 -
297.8 -diff -aur glibc-2.2.5.orig/sysdeps/powerpc/atomicity.h glibc-2.2.5/sysdeps/powerpc/atomicity.h
297.9 ---- glibc-2.2.5.orig/sysdeps/powerpc/atomicity.h Thu Jul 5 21:56:01 2001
297.10 -+++ glibc-2.2.5/sysdeps/powerpc/atomicity.h Tue Jul 23 05:39:38 2002
297.11 -@@ -28,6 +28,17 @@
297.12 - # define __ATOMICITY_INLINE inline
297.13 - #endif
297.14 -
297.15 -+#ifdef __PPC405__
297.16 -+/* workaround for PPC405 erratum #77 - Mark Hatle, dank. References:
297.17 -+ http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf
297.18 -+ http://ppc.bkbits.net:8080/linuxppc_2_4_devel/cset@1.489
297.19 -+ http://www.kegel.com/xgcc3/ppc405erratum77.html
297.20 -+ FIXME: using dbct instead of sync would be faster */
297.21 -+#define __LIBC_PPC405_ERR77_SYNC "sync \n\t"
297.22 -+#else
297.23 -+#define __LIBC_PPC405_ERR77_SYNC
297.24 -+#endif
297.25 -+
297.26 - static __ATOMICITY_INLINE int
297.27 - __attribute__ ((unused))
297.28 - exchange_and_add (volatile uint32_t *mem, int val)
297.29 -@@ -36,6 +47,7 @@
297.30 - __asm__ ("\n\
297.31 - 0: lwarx %0,0,%2 \n\
297.32 - add%I3 %1,%0,%3 \n\
297.33 -+ " __LIBC_PPC405_ERR77_SYNC "\n\
297.34 - stwcx. %1,0,%2 \n\
297.35 - bne- 0b \n\
297.36 - " : "=&b"(result), "=&r"(tmp) : "r" (mem), "Ir"(val) : "cr0", "memory");
297.37 -@@ -50,6 +62,7 @@
297.38 - __asm__ ("\n\
297.39 - 0: lwarx %0,0,%1 \n\
297.40 - add%I2 %0,%0,%2 \n\
297.41 -+ " __LIBC_PPC405_ERR77_SYNC "\n\
297.42 - stwcx. %0,0,%1 \n\
297.43 - bne- 0b \n\
297.44 - " : "=&b"(tmp) : "r" (mem), "Ir"(val) : "cr0", "memory");
297.45 -@@ -65,6 +78,7 @@
297.46 - sub%I2c. %0,%0,%2 \n\
297.47 - cntlzw %0,%0 \n\
297.48 - bne- 1f \n\
297.49 -+ " __LIBC_PPC405_ERR77_SYNC "\n\
297.50 - stwcx. %3,0,%1 \n\
297.51 - bne- 0b \n\
297.52 - 1: \n\
297.53 -@@ -79,6 +93,7 @@
297.54 - long int result;
297.55 - __asm__ ("\n\
297.56 - 0: lwarx %0,0,%1 \n\
297.57 -+ " __LIBC_PPC405_ERR77_SYNC "\n\
297.58 - stwcx. %2,0,%1 \n\
297.59 - bne- 0b \n\
297.60 - " : "=&r"(result) : "r"(p), "r"(newval) : "cr0", "memory");
297.61 -@@ -94,6 +109,7 @@
297.62 - 0: lwarx %0,0,%1 \n\
297.63 - cmpwi %0,0 \n\
297.64 - bne- 1f \n\
297.65 -+ " __LIBC_PPC405_ERR77_SYNC "\n\
297.66 - stwcx. %2,0,%1 \n\
297.67 - bne- 0b \n\
297.68 - 1: \n\
298.1 --- a/patches/glibc/2.2.5/glibc-2.3.2-allow-gcc-3.5-xdr.patch Tue Aug 14 19:32:22 2007 +0000
298.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
298.3 @@ -1,44 +0,0 @@
298.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/rpc/xdr.h.diff?r1=1.27&r2=1.28&cvsroot=glibc
298.5 -(but see also http://sources.redhat.com/ml/libc-alpha/2004-03/msg00267.html
298.6 -and http://gcc.gnu.org/ml/gcc-patches/2004-03/msg02056.html)
298.7 -
298.8 -Fixes errors
298.9 -
298.10 -rpc_cmsg.c: In function `xdr_callmsg':
298.11 -rpc_cmsg.c:70: error: invalid lvalue in increment
298.12 -rpc_cmsg.c:71: error: invalid lvalue in increment
298.13 -rpc_cmsg.c:74: error: invalid lvalue in increment
298.14 -rpc_cmsg.c:77: error: invalid lvalue in increment
298.15 -rpc_cmsg.c:78: error: invalid lvalue in increment
298.16 -rpc_cmsg.c:79: error: invalid lvalue in increment
298.17 -rpc_cmsg.c:81: error: invalid lvalue in increment
298.18 -rpc_cmsg.c:89: error: invalid lvalue in increment
298.19 -rpc_cmsg.c:106: error: invalid lvalue in increment
298.20 -rpc_cmsg.c:107: error: invalid lvalue in increment
298.21 -rpc_cmsg.c:112: error: invalid lvalue in increment
298.22 -rpc_cmsg.c:117: error: invalid lvalue in increment
298.23 -rpc_cmsg.c:118: error: invalid lvalue in increment
298.24 -rpc_cmsg.c:119: error: invalid lvalue in increment
298.25 -rpc_cmsg.c:121: error: invalid lvalue in increment
298.26 -rpc_cmsg.c:160: error: invalid lvalue in increment
298.27 -
298.28 -===================================================================
298.29 -RCS file: /cvs/glibc/libc/sunrpc/rpc/xdr.h,v
298.30 -retrieving revision 1.27
298.31 -retrieving revision 1.28
298.32 -diff -u -r1.27 -r1.28
298.33 ---- libc/sunrpc/rpc/xdr.h 2002/12/16 02:05:49 1.27
298.34 -+++ libc/sunrpc/rpc/xdr.h 2004/03/22 10:52:33 1.28
298.35 -@@ -262,10 +262,8 @@
298.36 - * and shouldn't be used any longer. Code which use this defines or longs
298.37 - * in the RPC code will not work on 64bit Solaris platforms !
298.38 - */
298.39 --#define IXDR_GET_LONG(buf) \
298.40 -- ((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
298.41 --#define IXDR_PUT_LONG(buf, v) \
298.42 -- (*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
298.43 -+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
298.44 -+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
298.45 - #define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
298.46 - #define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
298.47 -
299.1 --- a/patches/glibc/2.2.5/glibc-drow-sh.patch Tue Aug 14 19:32:22 2007 +0000
299.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
299.3 @@ -1,77 +0,0 @@
299.4 -[pread changes deleted, since those seem to be specific to glibc-2.3.2]
299.5 -
299.6 -Date: Thu, 19 Jun 2003 20:02:07 -0400
299.7 -From: Daniel Jacobowitz <drow@false.org>
299.8 -Subject: [linux-sh:02808] Patch needed for CVS glibc on SH
299.9 -To: linux-sh@m17n.org, libc-alpha@sources.redhat.com
299.10 -Message-Id: <20030620000207.GA19907@nevyn.them.org>
299.11 -X-ML-Name: linux-sh
299.12 -X-Mail-Count: 02808
299.13 -X-MLServer: fml [fml 4.0.1]; post only (only members can post)
299.14 -X-ML-Info: If you have a question, send e-mail with the body
299.15 - "help" (without quotes) to the address linux-sh-ctl@m17n.org;
299.16 - help=<mailto:linux-sh-ctl@m17n.org?body=help>
299.17 -Mail-Followup-To: linux-sh@m17n.org, libc-alpha@sources.redhat.com
299.18 -Content-Disposition: inline
299.19 -User-Agent: Mutt/1.5.1i
299.20 -Mime-Version: 1.0
299.21 -Content-Type: text/plain; charset=us-ascii
299.22 -Precedence: bulk
299.23 -Lines: 74
299.24 -List-Software: fml [fml 4.0.1]
299.25 -List-Post: <mailto:linux-sh@m17n.org>
299.26 -List-Owner: <mailto:linux-sh-admin@m17n.org>
299.27 -List-Help: <mailto:linux-sh-ctl@m17n.org?body=help>
299.28 -List-Unsubscribe: <mailto:linux-sh-ctl@m17n.org?body=unsubscribe>
299.29 -List-Id: linux-sh.m17n.org
299.30 -
299.31 -I believe this flushes my current patches to make glibc work on SH. Issues:
299.32 - - MIPS pread functions have some wackiness in them for the MIPS calling
299.33 - conventions, which align long longs to even register pairs; it appears
299.34 - that SH does not do this. This fixes pread64/pwrite64.
299.35 - - st_ino is _NOT_ 64-bit in the latest SH kernel trees, or at least it
299.36 - wasn't when I checked in April. --enable-kernel=2.4.x breaks terribly
299.37 - without this patch; the errors are along the lines of "version GLIBC_2.3
299.38 - not found", because that's the first consequence of a messed up inode
299.39 - field - ld.so compares by inodes at some point.
299.40 -
299.41 ---
299.42 -Daniel Jacobowitz
299.43 -MontaVista Software Debian GNU/Linux Developer
299.44 -
299.45 -2003-06-19 Daniel Jacobowitz <drow@mvista.com>
299.46 -
299.47 - * sysdeps/unix/sysv/linux/kernel-features.h: Update kernel features
299.48 - for the SH architecture.
299.49 - * sysdeps/unix/sysv/linux/sh/pread.c: Use generic Linux version
299.50 - instead of the MIPS version.
299.51 - * sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
299.52 - * sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
299.53 - * sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
299.54 -
299.55 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h.org 2003-04-21 10:57:55.000000000 -0400
299.56 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h 2003-04-21 11:16:47.000000000 -0400
299.57 -@@ -151,11 +151,20 @@
299.58 -
299.59 - /* The changed st_ino field appeared in 2.4.0-test6. But we cannot
299.60 - distinguish this version from other 2.4.0 releases. Therefore play
299.61 -- save and assume it available is for 2.4.1 and up. */
299.62 --#if __LINUX_KERNEL_VERSION >= 132097
299.63 -+ save and assume it available is for 2.4.1 and up. However, SH is lame,
299.64 -+ and still does not have a 64-bit inode field. */
299.65 -+#if __LINUX_KERNEL_VERSION >= 132097 \
299.66 -+ && !defined __sh__
299.67 - # define __ASSUME_ST_INO_64_BIT 1
299.68 - #endif
299.69 -
299.70 -+/* SH kernels got stat64, mmap2, and truncate64 during 2.4.0-test. */
299.71 -+#if __LINUX_KERNEL_VERSION >= 132096 && defined __sh__
299.72 -+# define __ASSUME_TRUNCATE64_SYSCALL 1
299.73 -+# define __ASSUME_MMAP2_SYSCALL 1
299.74 -+# define __ASSUME_STAT64_SYSCALL 1
299.75 -+#endif
299.76 -+
299.77 - /* To support locking of large files a new fcntl() syscall was introduced
299.78 - in 2.4.0-test7. We test for 2.4.1 for the earliest version we know
299.79 - the syscall is available. */
299.80 -
300.1 --- a/patches/glibc/2.2.5/glibc-test-lowram.patch Tue Aug 14 19:32:22 2007 +0000
300.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
300.3 @@ -1,14 +0,0 @@
300.4 ---- glibc-2.2.5/malloc/tst-calloc.c.old Sun Aug 3 16:17:58 2003
300.5 -+++ glibc-2.2.5/malloc/tst-calloc.c Sun Aug 3 16:20:01 2003
300.6 -@@ -24,9 +24,8 @@
300.7 - #include <stdio.h>
300.8 -
300.9 -
300.10 --/* Number of samples per size. */
300.11 --#define N 50000
300.12 --
300.13 -+/* Number of samples per size. This is also the maximum memory consumption in kilobytes. */
300.14 -+#define N 8000
300.15 -
300.16 - static void
300.17 - fixed_test (int size)
301.1 --- a/patches/glibc/2.2.5/initfini-alpha.patch Tue Aug 14 19:32:22 2007 +0000
301.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
301.3 @@ -1,125 +0,0 @@
301.4 -Trivial fix to allow compiling with gcc3.3.
301.5 -
301.6 ---- glibc-2.2.5/sysdeps/alpha/elf/initfini.c.old Fri Jun 6 17:59:45 2003
301.7 -+++ glibc-2.2.5/sysdeps/alpha/elf/initfini.c Fri Jun 6 18:00:20 2003
301.8 -@@ -37,62 +37,62 @@
301.9 - files, all of which may have different GP values. So we must reload
301.10 - the GP value from crti.o in crtn.o. */
301.11 -
301.12 --__asm__ ("
301.13 --
301.14 --#include \"defs.h\"
301.15 --
301.16 --/*@HEADER_ENDS*/
301.17 --
301.18 --/*@_init_PROLOG_BEGINS*/
301.19 -- .section .init, \"ax\", @progbits
301.20 -- .globl _init
301.21 -- .ent _init
301.22 --_init:
301.23 -- ldgp $29, 0($27)
301.24 -- subq $30, 16, $30
301.25 -- lda $27, __gmon_start__
301.26 -- stq $26, 0($30)
301.27 -- stq $29, 8($30)
301.28 -- .prologue 1
301.29 -- beq $27, 1f
301.30 -- jsr $26, ($27), __gmon_start__
301.31 -- ldq $29, 8($30)
301.32 --1:
301.33 -- .align 3
301.34 -- .end _init
301.35 -- .size _init, 0
301.36 --/*@_init_PROLOG_ENDS*/
301.37 --
301.38 --/*@_init_EPILOG_BEGINS*/
301.39 -- .section .init, \"ax\", @progbits
301.40 -- ldq $26, 0($30)
301.41 -- ldq $29, 8($30)
301.42 -- addq $30, 16, $30
301.43 -- ret
301.44 --/*@_init_EPILOG_ENDS*/
301.45 --
301.46 --/*@_fini_PROLOG_BEGINS*/
301.47 -- .section .fini, \"ax\", @progbits
301.48 -- .globl _fini
301.49 -- .ent _fini
301.50 --_fini:
301.51 -- ldgp $29, 0($27)
301.52 -- subq $30, 16, $30
301.53 -- stq $26, 0($30)
301.54 -- stq $29, 8($30)
301.55 -- .prologue 1
301.56 -- .align 3
301.57 -- .end _fini
301.58 -- .size _fini, 0
301.59 --/*@_fini_PROLOG_ENDS*/
301.60 --
301.61 --/*@_fini_EPILOG_BEGINS*/
301.62 -- .section .fini, \"ax\", @progbits
301.63 -- ldq $26, 0($30)
301.64 -- ldq $29, 8($30)
301.65 -- addq $30, 16, $30
301.66 -- ret
301.67 --/*@_fini_EPILOG_ENDS*/
301.68 --
301.69 --/*@TRAILER_BEGINS*/
301.70 -+__asm__ ("\n\
301.71 -+\n\
301.72 -+#include \"defs.h\"\n\
301.73 -+\n\
301.74 -+/*@HEADER_ENDS*/\n\
301.75 -+\n\
301.76 -+/*@_init_PROLOG_BEGINS*/\n\
301.77 -+ .section .init, \"ax\", @progbits\n\
301.78 -+ .globl _init\n\
301.79 -+ .ent _init\n\
301.80 -+_init:\n\
301.81 -+ ldgp $29, 0($27)\n\
301.82 -+ subq $30, 16, $30\n\
301.83 -+ lda $27, __gmon_start__\n\
301.84 -+ stq $26, 0($30)\n\
301.85 -+ stq $29, 8($30)\n\
301.86 -+ .prologue 1\n\
301.87 -+ beq $27, 1f\n\
301.88 -+ jsr $26, ($27), __gmon_start__\n\
301.89 -+ ldq $29, 8($30)\n\
301.90 -+1:\n\
301.91 -+ .align 3\n\
301.92 -+ .end _init\n\
301.93 -+ .size _init, 0\n\
301.94 -+/*@_init_PROLOG_ENDS*/\n\
301.95 -+\n\
301.96 -+/*@_init_EPILOG_BEGINS*/\n\
301.97 -+ .section .init, \"ax\", @progbits\n\
301.98 -+ ldq $26, 0($30)\n\
301.99 -+ ldq $29, 8($30)\n\
301.100 -+ addq $30, 16, $30\n\
301.101 -+ ret\n\
301.102 -+/*@_init_EPILOG_ENDS*/\n\
301.103 -+\n\
301.104 -+/*@_fini_PROLOG_BEGINS*/\n\
301.105 -+ .section .fini, \"ax\", @progbits\n\
301.106 -+ .globl _fini\n\
301.107 -+ .ent _fini\n\
301.108 -+_fini:\n\
301.109 -+ ldgp $29, 0($27)\n\
301.110 -+ subq $30, 16, $30\n\
301.111 -+ stq $26, 0($30)\n\
301.112 -+ stq $29, 8($30)\n\
301.113 -+ .prologue 1\n\
301.114 -+ .align 3\n\
301.115 -+ .end _fini\n\
301.116 -+ .size _fini, 0\n\
301.117 -+/*@_fini_PROLOG_ENDS*/\n\
301.118 -+\n\
301.119 -+/*@_fini_EPILOG_BEGINS*/\n\
301.120 -+ .section .fini, \"ax\", @progbits\n\
301.121 -+ ldq $26, 0($30)\n\
301.122 -+ ldq $29, 8($30)\n\
301.123 -+ addq $30, 16, $30\n\
301.124 -+ ret\n\
301.125 -+/*@_fini_EPILOG_ENDS*/\n\
301.126 -+\n\
301.127 -+/*@TRAILER_BEGINS*/\n\
301.128 - ");
302.1 --- a/patches/glibc/2.2.5/initfini-ia64.patch Tue Aug 14 19:32:22 2007 +0000
302.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
302.3 @@ -1,219 +0,0 @@
302.4 -Retrieved with
302.5 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/ia64/elf/initfini.c.diff?r1=1.2&r2=1.3&cvsroot=glibc'
302.6 -
302.7 -Revision 1.3, Sun Aug 25 00:34:23 2002 UTC (2 years, 1 month ago) by drepper
302.8 -Branch: MAIN
302.9 -CVS Tags: glibc-2-3-1, glibc-2-3
302.10 -Changes since 1.2: +78 -78 lines
302.11 -
302.12 -(__asm__): Don't use newlines embedded in string.
302.13 -
302.14 -Fixes error
302.15 -
302.16 -../sysdeps/ia64/elf/initfini.c:30:10: missing terminating " character
302.17 -../sysdeps/ia64/elf/initfini.c:32:10: #include expects "FILENAME" or <FILENAME>
302.18 -../sysdeps/ia64/elf/initfini.c:37: error: request for member `section' in something not a structure or union
302.19 -../sysdeps/ia64/elf/initfini.c:38: error: parse error before numeric constant
302.20 -../sysdeps/ia64/elf/initfini.c:39: error: syntax error at '#' token
302.21 -../sysdeps/ia64/elf/initfini.c:40: error: syntax error at '#' token
302.22 -../sysdeps/ia64/elf/initfini.c:46: error: syntax error at '@' token
302.23 -../sysdeps/ia64/elf/initfini.c:46: error: syntax error at '#' token
302.24 -../sysdeps/ia64/elf/initfini.c:48: error: parse error before "r15"
302.25 -../sysdeps/ia64/elf/initfini.c:48: warning: type defaults to `int' in declaration of `r15'
302.26 -../sysdeps/ia64/elf/initfini.c:50: error: parse error before '.' token
302.27 -../sysdeps/ia64/elf/initfini.c:56: error: syntax error at '#' token
302.28 -../sysdeps/ia64/elf/initfini.c:57: error: parse error before "r12"
302.29 -../sysdeps/ia64/elf/initfini.c:57: warning: type defaults to `int' in declaration of `r12'
302.30 -../sysdeps/ia64/elf/initfini.c:58: warning: type defaults to `int' in declaration of `r12'
302.31 -../sysdeps/ia64/elf/initfini.c:58: warning: data definition has no type or storage class
302.32 -../sysdeps/ia64/elf/initfini.c:59: error: parse error before "gp"
302.33 -../sysdeps/ia64/elf/initfini.c:59: warning: type defaults to `int' in declaration of `gp'
302.34 -../sysdeps/ia64/elf/initfini.c:63: error: syntax error at '#' token
302.35 -../sysdeps/ia64/elf/initfini.c:74: error: syntax error at '#' token
302.36 -../sysdeps/ia64/elf/initfini.c:80: error: syntax error at '#' token
302.37 -../sysdeps/ia64/elf/initfini.c:81: error: syntax error at '#' token
302.38 -../sysdeps/ia64/elf/initfini.c:89: error: syntax error at '#' token
302.39 -../sysdeps/ia64/elf/initfini.c:92: error: syntax error at '#' token
302.40 -../sysdeps/ia64/elf/initfini.c:96: error: parse error before '.' token
302.41 -../sysdeps/ia64/elf/initfini.c:101: error: syntax error at '#' token
302.42 -../sysdeps/ia64/elf/initfini.c:106: error: syntax error at '#' token
302.43 -../sysdeps/ia64/elf/initfini.c:107:1: missing terminating " character
302.44 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/csu/initfini.s] Error 1
302.45 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/glibc-2.2.5/csu'
302.46 -make[1]: *** [csu/subdir_lib] Error 2
302.47 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/glibc-2.2.5'
302.48 -make: *** [all] Error 2
302.49 -
302.50 -===================================================================
302.51 -RCS file: /cvs/glibc/libc/sysdeps/ia64/elf/initfini.c,v
302.52 -retrieving revision 1.2
302.53 -retrieving revision 1.3
302.54 -diff -u -r1.2 -r1.3
302.55 ---- libc/sysdeps/ia64/elf/initfini.c 2001/07/06 04:55:54 1.2
302.56 -+++ libc/sysdeps/ia64/elf/initfini.c 2002/08/25 00:34:23 1.3
302.57 -@@ -1,5 +1,5 @@
302.58 - /* Special .init and .fini section support for ia64.
302.59 -- Copyright (C) 2000 Free Software Foundation, Inc.
302.60 -+ Copyright (C) 2000, 2002 Free Software Foundation, Inc.
302.61 - This file is part of the GNU C Library.
302.62 -
302.63 - The GNU C Library is free software; you can redistribute it and/or
302.64 -@@ -27,81 +27,81 @@
302.65 - * crtn.s puts the corresponding function epilogues
302.66 - in the .init and .fini sections. */
302.67 -
302.68 --__asm__ ("
302.69 --
302.70 --#include \"defs.h\"
302.71 --
302.72 --/*@HEADER_ENDS*/
302.73 --
302.74 --/*@_init_PROLOG_BEGINS*/
302.75 -- .section .init
302.76 -- .align 16
302.77 -- .global _init#
302.78 -- .proc _init#
302.79 --_init:
302.80 -- alloc r34 = ar.pfs, 0, 3, 0, 0
302.81 -- mov r32 = r12
302.82 -- mov r33 = b0
302.83 -- adds r12 = -16, r12
302.84 -- addl r14 = @ltoff(@fptr(__gmon_start__#)), gp
302.85 -- ;;
302.86 -- ld8 r15 = [r14]
302.87 -- ;;
302.88 -- cmp.eq p6, p7 = 0, r15
302.89 -- (p6) br.cond.dptk .L5
302.90 --
302.91 --/* we could use r35 to save gp, but we use the stack since that's what
302.92 -- * all the other init routines will do --davidm 00/04/05 */
302.93 -- st8 [r12] = gp, -16
302.94 -- br.call.sptk.many b0 = __gmon_start__# ;;
302.95 -- adds r12 = 16, r12
302.96 -- ;;
302.97 -- ld8 gp = [r12]
302.98 -- ;;
302.99 --.L5:
302.100 -- .align 16
302.101 -- .endp _init#
302.102 --
302.103 --/*@_init_PROLOG_ENDS*/
302.104 --
302.105 --/*@_init_EPILOG_BEGINS*/
302.106 -- .section .init
302.107 -- .regstk 0,2,0,0
302.108 -- mov r12 = r32
302.109 -- mov ar.pfs = r34
302.110 -- mov b0 = r33
302.111 -- br.ret.sptk.many b0
302.112 -- .endp _init#
302.113 --/*@_init_EPILOG_ENDS*/
302.114 --
302.115 --/*@_fini_PROLOG_BEGINS*/
302.116 -- .section .fini
302.117 -- .align 16
302.118 -- .global _fini#
302.119 -- .proc _fini#
302.120 --_fini:
302.121 -- alloc r34 = ar.pfs, 0, 3, 0, 0
302.122 -- mov r32 = r12
302.123 -- mov r33 = b0
302.124 -- adds r12 = -16, r12
302.125 -- ;;
302.126 -- .align 16
302.127 -- .endp _fini#
302.128 --
302.129 --/*@_fini_PROLOG_ENDS*/
302.130 -- br.call.sptk.many b0 = i_am_not_a_leaf# ;;
302.131 -- ;;
302.132 --
302.133 --/*@_fini_EPILOG_BEGINS*/
302.134 -- .section .fini
302.135 -- mov r12 = r32
302.136 -- mov ar.pfs = r34
302.137 -- mov b0 = r33
302.138 -- br.ret.sptk.many b0
302.139 -- .endp _fini#
302.140 --
302.141 --/*@_fini_EPILOG_ENDS*/
302.142 --
302.143 --/*@TRAILER_BEGINS*/
302.144 -- .weak __gmon_start__#
302.145 -+__asm__ ("\n\
302.146 -+\n\
302.147 -+#include \"defs.h\"\n\
302.148 -+\n\
302.149 -+/*@HEADER_ENDS*/\n\
302.150 -+\n\
302.151 -+/*@_init_PROLOG_BEGINS*/\n\
302.152 -+ .section .init\n\
302.153 -+ .align 16\n\
302.154 -+ .global _init#\n\
302.155 -+ .proc _init#\n\
302.156 -+_init:\n\
302.157 -+ alloc r34 = ar.pfs, 0, 3, 0, 0\n\
302.158 -+ mov r32 = r12\n\
302.159 -+ mov r33 = b0\n\
302.160 -+ adds r12 = -16, r12\n\
302.161 -+ addl r14 = @ltoff(@fptr(__gmon_start__#)), gp\n\
302.162 -+ ;;\n\
302.163 -+ ld8 r15 = [r14]\n\
302.164 -+ ;;\n\
302.165 -+ cmp.eq p6, p7 = 0, r15\n\
302.166 -+ (p6) br.cond.dptk .L5\n\
302.167 -+\n\
302.168 -+/* we could use r35 to save gp, but we use the stack since that's what\n\
302.169 -+ * all the other init routines will do --davidm 00/04/05 */\n\
302.170 -+ st8 [r12] = gp, -16\n\
302.171 -+ br.call.sptk.many b0 = __gmon_start__# ;;\n\
302.172 -+ adds r12 = 16, r12\n\
302.173 -+ ;;\n\
302.174 -+ ld8 gp = [r12]\n\
302.175 -+ ;;\n\
302.176 -+.L5:\n\
302.177 -+ .align 16\n\
302.178 -+ .endp _init#\n\
302.179 -+\n\
302.180 -+/*@_init_PROLOG_ENDS*/\n\
302.181 -+\n\
302.182 -+/*@_init_EPILOG_BEGINS*/\n\
302.183 -+ .section .init\n\
302.184 -+ .regstk 0,2,0,0\n\
302.185 -+ mov r12 = r32\n\
302.186 -+ mov ar.pfs = r34\n\
302.187 -+ mov b0 = r33\n\
302.188 -+ br.ret.sptk.many b0\n\
302.189 -+ .endp _init#\n\
302.190 -+/*@_init_EPILOG_ENDS*/\n\
302.191 -+\n\
302.192 -+/*@_fini_PROLOG_BEGINS*/\n\
302.193 -+ .section .fini\n\
302.194 -+ .align 16\n\
302.195 -+ .global _fini#\n\
302.196 -+ .proc _fini#\n\
302.197 -+_fini:\n\
302.198 -+ alloc r34 = ar.pfs, 0, 3, 0, 0\n\
302.199 -+ mov r32 = r12\n\
302.200 -+ mov r33 = b0\n\
302.201 -+ adds r12 = -16, r12\n\
302.202 -+ ;;\n\
302.203 -+ .align 16\n\
302.204 -+ .endp _fini#\n\
302.205 -+\n\
302.206 -+/*@_fini_PROLOG_ENDS*/\n\
302.207 -+ br.call.sptk.many b0 = i_am_not_a_leaf# ;;\n\
302.208 -+ ;;\n\
302.209 -+\n\
302.210 -+/*@_fini_EPILOG_BEGINS*/\n\
302.211 -+ .section .fini\n\
302.212 -+ mov r12 = r32\n\
302.213 -+ mov ar.pfs = r34\n\
302.214 -+ mov b0 = r33\n\
302.215 -+ br.ret.sptk.many b0\n\
302.216 -+ .endp _fini#\n\
302.217 -+\n\
302.218 -+/*@_fini_EPILOG_ENDS*/\n\
302.219 -+\n\
302.220 -+/*@TRAILER_BEGINS*/\n\
302.221 -+ .weak __gmon_start__#\n\
302.222 - ");
303.1 --- a/patches/glibc/2.2.5/initfini-sh.patch Tue Aug 14 19:32:22 2007 +0000
303.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
303.3 @@ -1,243 +0,0 @@
303.4 ---- glibc-2.2.5/sysdeps/sh/elf/initfini.c.orig Thu Jul 5 21:56:03 2001
303.5 -+++ glibc-2.2.5/sysdeps/sh/elf/initfini.c Wed May 28 08:45:08 2003
303.6 -@@ -27,122 +27,122 @@
303.7 - * crtn.s puts the corresponding function epilogues
303.8 - in the .init and .fini sections. */
303.9 -
303.10 --__asm__ ("
303.11 --
303.12 --#include \"defs.h\"
303.13 --#define SHARED
303.14 --
303.15 --/*@HEADER_ENDS*/
303.16 --
303.17 --/*@TESTS_BEGIN*/
303.18 --
303.19 --/*@TESTS_END*/
303.20 --
303.21 --/*@_init_PROLOG_BEGINS*/
303.22 -- .section .init
303.23 -- .align 5
303.24 -- .global _init
303.25 -- .type _init,@function
303.26 --_init:
303.27 -- mov.l r12,@-r15
303.28 -- mov.l r14,@-r15
303.29 -- sts.l pr,@-r15
303.30 --#ifdef SHARED
303.31 -- mova .L22,r0
303.32 -- mov.l .L22,r12
303.33 -- add r0,r12
303.34 -- mova .L23,r0
303.35 -- mov.l .L23,r1
303.36 -- add r0,r1
303.37 --#else
303.38 -- mov.l .L23,r1
303.39 --#endif
303.40 -- jsr @r1
303.41 -- mov r15,r14
303.42 -- bra 1f
303.43 -- nop
303.44 -- .align 2
303.45 --#ifdef SHARED
303.46 --.L22:
303.47 -- .long _GLOBAL_OFFSET_TABLE_
303.48 --.L23:
303.49 -- .long __gmon_start__@PLT
303.50 --#else
303.51 --.L23:
303.52 -- .long __gmon_start__
303.53 --#endif
303.54 -- .data
303.55 -- .global __fpscr_values
303.56 --__fpscr_values:
303.57 -- .long 0
303.58 -- .long 0x80000
303.59 -- .previous
303.60 --1:
303.61 -- ALIGN
303.62 -- END_INIT
303.63 --
303.64 --
303.65 --/*@_init_PROLOG_ENDS*/
303.66 --
303.67 --/*@_init_EPILOG_BEGINS*/
303.68 -- .section .init
303.69 -- mov r14,r15
303.70 -- lds.l @r15+,pr
303.71 -- mov.l @r15+,r14
303.72 -- rts
303.73 -- mov.l @r15+,r12
303.74 -- END_INIT
303.75 -- .section .text
303.76 -- .align 5
303.77 -- .weak __gmon_start__
303.78 -- .type __gmon_start__,@function
303.79 --__gmon_start__:
303.80 -- mov.l r14,@-r15
303.81 -- mov r15,r14
303.82 -- mov r14,r15
303.83 -- rts
303.84 -- mov.l @r15+,r14
303.85 --
303.86 --/*@_init_EPILOG_ENDS*/
303.87 --
303.88 --/*@_fini_PROLOG_BEGINS*/
303.89 -- .section .fini
303.90 -- .align 5
303.91 -- .global _fini
303.92 -- .type _fini,@function
303.93 --_fini:
303.94 -- mov.l r12,@-r15
303.95 -- mov.l r14,@-r15
303.96 -- sts.l pr,@-r15
303.97 --#ifdef SHARED
303.98 -- mova .L27,r0
303.99 -- mov.l .L27,r12
303.100 -- add r0,r12
303.101 --#endif
303.102 -- mov r15,r14
303.103 -- ALIGN
303.104 -- END_FINI
303.105 --#ifdef SHARED
303.106 -- bra 1f
303.107 -- nop
303.108 -- .align 2
303.109 --.L27:
303.110 -- .long _GLOBAL_OFFSET_TABLE_
303.111 --#endif
303.112 --1:
303.113 --/*@_fini_PROLOG_ENDS*/
303.114 --
303.115 --/*@_fini_EPILOG_BEGINS*/
303.116 -- .section .fini
303.117 -- mov r14,r15
303.118 -- lds.l @r15+,pr
303.119 -- mov.l @r15+,r14
303.120 -- rts
303.121 -- mov.l @r15+,r12
303.122 --
303.123 -- END_FINI
303.124 --
303.125 --/*@_fini_EPILOG_ENDS*/
303.126 --
303.127 --/*@TRAILER_BEGINS*/
303.128 -+__asm__ ("\n\
303.129 -+\n\
303.130 -+#include \"defs.h\"\n\
303.131 -+#define SHARED\n\
303.132 -+\n\
303.133 -+/*@HEADER_ENDS*/\n\
303.134 -+\n\
303.135 -+/*@TESTS_BEGIN*/\n\
303.136 -+\n\
303.137 -+/*@TESTS_END*/\n\
303.138 -+\n\
303.139 -+/*@_init_PROLOG_BEGINS*/\n\
303.140 -+ .section .init\n\
303.141 -+ .align 5\n\
303.142 -+ .global _init\n\
303.143 -+ .type _init,@function\n\
303.144 -+_init:\n\
303.145 -+ mov.l r12,@-r15\n\
303.146 -+ mov.l r14,@-r15\n\
303.147 -+ sts.l pr,@-r15\n\
303.148 -+#ifdef SHARED\n\
303.149 -+ mova .L22,r0\n\
303.150 -+ mov.l .L22,r12\n\
303.151 -+ add r0,r12\n\
303.152 -+ mova .L23,r0\n\
303.153 -+ mov.l .L23,r1\n\
303.154 -+ add r0,r1\n\
303.155 -+#else\n\
303.156 -+ mov.l .L23,r1\n\
303.157 -+#endif\n\
303.158 -+ jsr @r1\n\
303.159 -+ mov r15,r14\n\
303.160 -+ bra 1f\n\
303.161 -+ nop\n\
303.162 -+ .align 2\n\
303.163 -+#ifdef SHARED\n\
303.164 -+.L22:\n\
303.165 -+ .long _GLOBAL_OFFSET_TABLE_\n\
303.166 -+.L23:\n\
303.167 -+ .long __gmon_start__@PLT\n\
303.168 -+#else\n\
303.169 -+.L23:\n\
303.170 -+ .long __gmon_start__\n\
303.171 -+#endif\n\
303.172 -+ .data\n\
303.173 -+ .global __fpscr_values\n\
303.174 -+__fpscr_values:\n\
303.175 -+ .long 0\n\
303.176 -+ .long 0x80000\n\
303.177 -+ .previous\n\
303.178 -+1:\n\
303.179 -+ ALIGN\n\
303.180 -+ END_INIT\n\
303.181 -+\n\
303.182 -+ \n\
303.183 -+/*@_init_PROLOG_ENDS*/\n\
303.184 -+\n\
303.185 -+/*@_init_EPILOG_BEGINS*/\n\
303.186 -+ .section .init\n\
303.187 -+ mov r14,r15\n\
303.188 -+ lds.l @r15+,pr\n\
303.189 -+ mov.l @r15+,r14\n\
303.190 -+ rts \n\
303.191 -+ mov.l @r15+,r12\n\
303.192 -+ END_INIT\n\
303.193 -+ .section .text\n\
303.194 -+ .align 5\n\
303.195 -+ .weak __gmon_start__\n\
303.196 -+ .type __gmon_start__,@function\n\
303.197 -+__gmon_start__:\n\
303.198 -+ mov.l r14,@-r15\n\
303.199 -+ mov r15,r14\n\
303.200 -+ mov r14,r15\n\
303.201 -+ rts \n\
303.202 -+ mov.l @r15+,r14\n\
303.203 -+ \n\
303.204 -+/*@_init_EPILOG_ENDS*/\n\
303.205 -+\n\
303.206 -+/*@_fini_PROLOG_BEGINS*/\n\
303.207 -+ .section .fini\n\
303.208 -+ .align 5\n\
303.209 -+ .global _fini\n\
303.210 -+ .type _fini,@function\n\
303.211 -+_fini:\n\
303.212 -+ mov.l r12,@-r15\n\
303.213 -+ mov.l r14,@-r15\n\
303.214 -+ sts.l pr,@-r15\n\
303.215 -+#ifdef SHARED\n\
303.216 -+ mova .L27,r0\n\
303.217 -+ mov.l .L27,r12\n\
303.218 -+ add r0,r12\n\
303.219 -+#endif\n\
303.220 -+ mov r15,r14\n\
303.221 -+ ALIGN\n\
303.222 -+ END_FINI\n\
303.223 -+#ifdef SHARED\n\
303.224 -+ bra 1f\n\
303.225 -+ nop\n\
303.226 -+ .align 2\n\
303.227 -+.L27:\n\
303.228 -+ .long _GLOBAL_OFFSET_TABLE_\n\
303.229 -+#endif\n\
303.230 -+1:\n\
303.231 -+/*@_fini_PROLOG_ENDS*/\n\
303.232 -+\n\
303.233 -+/*@_fini_EPILOG_BEGINS*/\n\
303.234 -+ .section .fini\n\
303.235 -+ mov r14,r15\n\
303.236 -+ lds.l @r15+,pr\n\
303.237 -+ mov.l @r15+,r14\n\
303.238 -+ rts \n\
303.239 -+ mov.l @r15+,r12\n\
303.240 -+\n\
303.241 -+ END_FINI\n\
303.242 -+ \n\
303.243 -+/*@_fini_EPILOG_ENDS*/\n\
303.244 -+\n\
303.245 -+/*@TRAILER_BEGINS*/\n\
303.246 - ");
304.1 --- a/patches/glibc/2.2.5/longjmp-sparc.patch Tue Aug 14 19:32:22 2007 +0000
304.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
304.3 @@ -1,75 +0,0 @@
304.4 -From libc-alpha-return-8354-listarch-libc-alpha=sourceware dot cygnus dot com at sources dot redhat dot com Mon Jul 01 11:18:29 2002
304.5 -Return-Path: <libc-alpha-return-8354-listarch-libc-alpha=sourceware dot cygnus dot com at sources dot redhat dot com>
304.6 -Delivered-To: listarch-libc-alpha at sourceware dot cygnus dot com
304.7 -Received: (qmail 10698 invoked by alias); 1 Jul 2002 11:18:28 -0000
304.8 -Mailing-List: contact libc-alpha-help at sources dot redhat dot com; run by ezmlm
304.9 -Precedence: bulk
304.10 -List-Subscribe: <mailto:libc-alpha-subscribe at sources dot redhat dot com>
304.11 -List-Archive: <http://sources.redhat.com/ml/libc-alpha/>
304.12 -List-Post: <mailto:libc-alpha at sources dot redhat dot com>
304.13 -List-Help: <mailto:libc-alpha-help at sources dot redhat dot com>, <http://sources dot redhat dot com/ml/#faqs>
304.14 -Sender: libc-alpha-owner at sources dot redhat dot com
304.15 -Delivered-To: mailing list libc-alpha at sources dot redhat dot com
304.16 -Received: (qmail 10659 invoked from network); 1 Jul 2002 11:18:27 -0000
304.17 -Received: from unknown (HELO sceaux.ilog.fr) (193.55.64.10)
304.18 - by sources dot redhat dot com with SMTP; 1 Jul 2002 11:18:27 -0000
304.19 -Received: from ftp.ilog.fr (ftp.ilog.fr [193.55.64.11])
304.20 - by sceaux dot ilog dot fr (8 dot 11 dot 6/8 dot 11 dot 6) with SMTP id g61BFDi08003
304.21 - for <libc-alpha at sources dot redhat dot com>; Mon, 1 Jul 2002 13:15:18 +0200 (MET DST)
304.22 -Received: from laposte.ilog.fr ([193.55.64.67])
304.23 - by ftp dot ilog dot fr (NAVGW 2 dot 5 dot 1 dot 16) with SMTP id M2002070113180506608
304.24 - for <libc-alpha at sources dot redhat dot com>; Mon, 01 Jul 2002 13:18:05 +0200
304.25 -Received: from honolulu.ilog.fr ([172.17.4.43])
304.26 - by laposte dot ilog dot fr (8 dot 11 dot 6/8 dot 11 dot 5) with ESMTP id g61BI2w29996;
304.27 - Mon, 1 Jul 2002 13:18:02 +0200 (MET DST)
304.28 -Received: (from haible@localhost)
304.29 - by honolulu dot ilog dot fr (8 dot 9 dot 3/8 dot 9 dot 3/SuSE Linux 8 dot 9 dot 3-0 dot 1) id NAA01763;
304.30 - Mon, 1 Jul 2002 13:12:40 +0200
304.31 -MIME-Version: 1.0
304.32 -Content-Type: text/plain; charset=us-ascii
304.33 -Content-Transfer-Encoding: base64
304.34 -Message-ID: <15648.14632.526690.249866@honolulu.ilog.fr>
304.35 -Date: Mon, 1 Jul 2002 13:12:40 +0200 (CEST)
304.36 -From: Bruno Haible <bruno at clisp dot org>
304.37 -To: libc-alpha at sources dot redhat dot com
304.38 -Subject: sparc32/sysdep.h and gcc-3.1
304.39 -
304.40 -Hi,
304.41 -
304.42 -When building glibc-2.2.5 for sparc with gcc-3.1 I get a build error
304.43 -
304.44 -sparc-linux-gcc ../sysdeps/sparc/sparc32/__longjmp.S -c -I../include -I. -I/backup/cross-build/build-glibc-sparc/setjmp -I.. -I../libio -I/backup/cross-build/build-glibc-sparc -I../sysdeps/sparc/sparc32/elf -I../linuxthreads/sysdeps/unix/sysv/linux/sparc -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/sparc/sparc32 -I../linuxthreads/sysdeps/sparc -I../sysdeps/unix/sysv/linux/sparc/sparc32 -I../sysdeps/unix/sysv/linux/sparc -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/sparc -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/sparc/sparc32/fpu -I../sysdeps/sparc/sparc32 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/sparc/sparc32/soft-fp -I../sysdeps/sparc/fpu -I../sysdeps/sparc -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /cross/sparc-linux-tools/lib/gcc-lib/sparc-linux/3.1/include -isystem /cross/sparc-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DASSEMBLER -D__ASSEMBLY__ -o /backup/cross-build/build-glibc-sparc/setjmp/__longjmp.o
304.45 -../sysdeps/sparc/sparc32/__longjmp.S: Assembler messages:
304.46 -../sysdeps/sparc/sparc32/__longjmp.S:41: Error: Illegal operands
304.47 -../sysdeps/sparc/sparc32/__longjmp.S:43: Error: Illegal operands
304.48 -../sysdeps/sparc/sparc32/__longjmp.S:48: Error: unknown pseudo-op: `.'
304.49 -../sysdeps/sparc/sparc32/__longjmp.S:50: Error: Illegal operands
304.50 -../sysdeps/sparc/sparc32/__longjmp.S:52: Error: Illegal operands
304.51 -../sysdeps/sparc/sparc32/__longjmp.S:55: Error: unknown pseudo-op: `.'
304.52 -../sysdeps/sparc/sparc32/__longjmp.S:72: Error: unknown pseudo-op: `.'
304.53 -../sysdeps/sparc/sparc32/__longjmp.S:76: Error: unknown pseudo-op: `.'
304.54 -make[2]: *** [/backup/cross-build/build-glibc-sparc/setjmp/__longjmp.o] Fehler 1
304.55 -make[2]: Leaving directory `/packages2/glibc-2.2.5/setjmp'
304.56 -
304.57 -Apparently "cpp0 -lang-asm" now leaves spaces around ## in place, if the token
304.58 -on the left or right of it is a lone dot (not a valid C identifier). Hard to
304.59 -say that it's a bug in the gcc-3.1 cpp, because -lang-asm is a gcc extension.
304.60 -The fix is just to remove the spaces.
304.61 -
304.62 -
304.63 -2002-06-05 Bruno Haible <bruno@clisp.org>
304.64 -
304.65 - * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (LOC): Remove spaces.
304.66 -
304.67 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h.bak 2001-07-06 06:56:21.000000000 +0200
304.68 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h 2002-06-05 23:14:40.000000000 +0200
304.69 -@@ -48,7 +48,7 @@
304.70 - #define END(name) \
304.71 - .size name, . - name
304.72 -
304.73 --#define LOC(name) . ## L ## name
304.74 -+#define LOC(name) .##L##name
304.75 -
304.76 - #ifdef PIC
304.77 - #define SYSCALL_ERROR_HANDLER \
304.78 -
305.1 --- a/patches/glibc/2.2.5/sh-setjmp-fix.patch Tue Aug 14 19:32:22 2007 +0000
305.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
305.3 @@ -1,29 +0,0 @@
305.4 -Fixes glibc 'make tests' failure running isomac
305.5 -
305.6 -make[2]: *** [/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.15/build/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/build-glibc/stdlib/isomac.out] Error 2
305.7 -
305.8 -isomac.out contains:
305.9 -...
305.10 -setjmp.h
305.11 -#define JB_SIZE (4 * 15)
305.12 -
305.13 -See http://sources.redhat.com/ml/libc-hacker/2002-11/msg00009.html
305.14 -and http://www.schweikhardt.net/isomac.c.html
305.15 -
305.16 -===================================================================
305.17 -RCS file: /cvs/glibc/libc/sysdeps/sh/bits/setjmp.h,v
305.18 -retrieving revision 1.4
305.19 -retrieving revision 1.5
305.20 -diff -u -r1.4 -r1.5
305.21 ---- libc/sysdeps/sh/bits/setjmp.h 2001/07/06 04:56:03 1.4
305.22 -+++ libc/sysdeps/sh/bits/setjmp.h 2002/11/06 00:08:30 1.5
305.23 -@@ -42,7 +42,9 @@
305.24 - } __jmp_buf[1];
305.25 - #endif
305.26 -
305.27 -+#if defined __USE_MISC || defined _ASM
305.28 - #define JB_SIZE (4 * 15)
305.29 -+#endif
305.30 -
305.31 - /* Test if longjmp to JMPBUF would unwind the frame
305.32 - containing a local variable at ADDRESS. */
306.1 --- a/patches/glibc/2.2.5/sprintf-prototype.patch Tue Aug 14 19:32:22 2007 +0000
306.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
306.3 @@ -1,13 +0,0 @@
306.4 ---- glibc-2.2.5/stdio-common/sprintf.c.old Wed May 28 08:59:11 2003
306.5 -+++ glibc-2.2.5/stdio-common/sprintf.c Wed May 28 08:59:45 2003
306.6 -@@ -27,9 +27,7 @@
306.7 - /* Write formatted output into S, according to the format string FORMAT. */
306.8 - /* VARARGS2 */
306.9 - int
306.10 --sprintf (s, format)
306.11 -- char *s;
306.12 -- const char *format;
306.13 -+sprintf (char *s, const char *format, ...)
306.14 - {
306.15 - va_list arg;
306.16 - int done;
307.1 --- a/patches/glibc/2.2.5/sscanf.patch Tue Aug 14 19:32:22 2007 +0000
307.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
307.3 @@ -1,82 +0,0 @@
307.4 -[dank] Modified very slightly to apply to 2.2.5.
307.5 -
307.6 -2003-03-05 Roland McGrath <roland@redhat.com>
307.7 -
307.8 - * stdio-common/sscanf.c: Use prototype defn with ... syntax.
307.9 - * libio/swscanf.c: Likewise.
307.10 - * libio/swprintf.c: Likewise.
307.11 -
307.12 -===================================================================
307.13 -RCS file: /cvs/glibc/libc/stdio-common/sscanf.c,v
307.14 -retrieving revision 1.8
307.15 -retrieving revision 1.9
307.16 -diff -u -r1.8 -r1.9
307.17 ---- libc/stdio-common/sscanf.c 2002/08/10 09:24:42 1.8
307.18 -+++ libc/stdio-common/sscanf.c 2003/03/05 19:58:03 1.9
307.19 -@@ -1,4 +1,4 @@
307.20 --/* Copyright (C) 1991, 1995, 1996, 1998 Free Software Foundation, Inc.
307.21 -+/* Copyright (C) 1991,1995,1996,1998,2002,2003 Free Software Foundation, Inc.
307.22 - This file is part of the GNU C Library.
307.23 -
307.24 - The GNU C Library is free software; you can redistribute it and/or
307.25 -@@ -27,9 +27,7 @@
307.26 - /* Read formatted input from S, according to the format string FORMAT. */
307.27 - /* VARARGS2 */
307.28 - int
307.29 --sscanf (s, format)
307.30 -- const char *s;
307.31 -- const char *format;
307.32 -+sscanf (const char *s, const char *format, ...)
307.33 - {
307.34 - va_list arg;
307.35 - int done;
307.36 -===================================================================
307.37 -RCS file: /cvs/glibc/libc/libio/swprintf.c,v
307.38 -retrieving revision 1.3
307.39 -retrieving revision 1.4
307.40 -diff -u -r1.3 -r1.4
307.41 ---- libc/libio/swprintf.c 2001/07/06 04:55:32 1.3
307.42 -+++ libc/libio/swprintf.c 2003/03/05 19:58:03 1.4
307.43 -@@ -1,4 +1,5 @@
307.44 --/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc.
307.45 -+/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003
307.46 -+ Free Software Foundation, Inc.
307.47 - This file is part of the GNU C Library.
307.48 -
307.49 - The GNU C Library is free software; you can redistribute it and/or
307.50 -@@ -22,10 +23,7 @@
307.51 - /* Write formatted output into S, according to the format string FORMAT. */
307.52 - /* VARARGS3 */
307.53 - int
307.54 --swprintf (s, n, format)
307.55 -- wchar_t *s;
307.56 -- size_t n;
307.57 -- const wchar_t *format;
307.58 -+swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
307.59 - {
307.60 - va_list arg;
307.61 - int done;
307.62 -===================================================================
307.63 -RCS file: /cvs/glibc/libc/libio/swscanf.c,v
307.64 -retrieving revision 1.2
307.65 -retrieving revision 1.3
307.66 -diff -u -r1.2 -r1.3
307.67 ---- libc/libio/swscanf.c 2001/07/06 04:55:32 1.2
307.68 -+++ libc/libio/swscanf.c 2003/03/05 19:58:03 1.3
307.69 -@@ -1,4 +1,4 @@
307.70 --/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
307.71 -+/* Copyright (C) 1991,1995,1996,1998,1999,2003 Free Software Foundation, Inc.
307.72 - This file is part of the GNU C Library.
307.73 -
307.74 - The GNU C Library is free software; you can redistribute it and/or
307.75 -@@ -22,9 +22,7 @@
307.76 - /* Read formatted input from S, according to the format string FORMAT. */
307.77 - /* VARARGS2 */
307.78 - int
307.79 --swscanf (s, format)
307.80 -- const wchar_t *s;
307.81 -- const wchar_t *format;
307.82 -+swscanf (const wchar_t *s, const wchar_t *format, ...)
307.83 - {
307.84 - va_list arg;
307.85 - int done;
308.1 --- a/patches/glibc/2.2.5/unwind-arm.patch Tue Aug 14 19:32:22 2007 +0000
308.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
308.3 @@ -1,19 +0,0 @@
308.4 -# See http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2002-September/011508.html
308.5 -# Fixes error
308.6 -# arm-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc.so.6: undefined reference to `size_of_encoded_value'
308.7 -# arm-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc.so.6: undefined reference to `read_encoded_value_with_base'
308.8 -# make[2]: *** [arm-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/iconv/iconvconfig] Error 1
308.9 -
308.10 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/configure.old Sun Jan 20 19:27:33 2002
308.11 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/configure Sun Jun 8 03:33:03 2003
308.12 -@@ -56,6 +56,10 @@
308.13 - arch_minimum_kernel=2.1.100
308.14 - libc_cv_gcc_unwind_find_fde=yes
308.15 - ;;
308.16 -+ arm*)
308.17 -+ libc_cv_gcc_unwind_find_fde=yes
308.18 -+ arch_minimum_kernel=2.0.10
308.19 -+ ;;
308.20 - i386*)
308.21 - libc_cv_gcc_unwind_find_fde=yes
308.22 - arch_minimum_kernel=2.0.10
309.1 --- a/patches/glibc/2.3.2/README-hppa Tue Aug 14 19:32:22 2007 +0000
309.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
309.3 @@ -1,32 +0,0 @@
309.4 -[See also http://parisc-linux.org/toolchain
309.5 - One of these days I'll have a look at what they've
309.6 - got there, and incorporate their patches.]
309.7 -
309.8 --------
309.9 -
309.10 -The error
309.11 -
309.12 -../linuxthreads/sysdeps/pthread/errno-loc.c: In function `__errno_location':
309.13 -../linuxthreads/sysdeps/pthread/errno-loc.c:39: `pthread_descr' undeclared (first use in this function)
309.14 -../linuxthreads/sysdeps/pthread/errno-loc.c:39: (Each undeclared identifier is reported only once
309.15 -../linuxthreads/sysdeps/pthread/errno-loc.c:39: for each function it appears in.)
309.16 -../linuxthreads/sysdeps/pthread/errno-loc.c:39: syntax error before "self"
309.17 -../linuxthreads/sysdeps/pthread/errno-loc.c:40: warning: implicit declaration of function `LIBC_THREAD_GETMEM'
309.18 -../linuxthreads/sysdeps/pthread/errno-loc.c:40: `self' undeclared (first use in this function)
309.19 -../linuxthreads/sysdeps/pthread/errno-loc.c:40: `p_errnop' undeclared (first use in this function)
309.20 -../linuxthreads/sysdeps/pthread/errno-loc.c:40: warning: return makes pointer from integer without a cast
309.21 -make[2]: *** [/home/gotom/glibc/glibc-2.3.2/build/csu/errno-loc.o] Error 1
309.22 -make[2]: Leaving directory `/home/gotom/glibc/glibc-2.3.2/glibc-2.3.2/csu'
309.23 -make[1]: *** [csu/subdir_lib] Error 2
309.24 -
309.25 -means that hppa does not yet have the proper stuff for linuxthreads.
309.26 -
309.27 -See
309.28 -http://groups.google.com/groups?selm=20030322165012%247208%40gated-at.bofh.it
309.29 -http://lists.debian.org/debian-glibc/2003/debian-glibc-200303/msg00472.html
309.30 -
309.31 -A set of experimental patches is at
309.32 -http://www.baldric.uwo.ca/~carlos/glibc-2.3.2-patches.tar.gz
309.33 -but since they touch generic code, I'm not comfortable using them in general yet.
309.34 -Go ahead and grab them if you want to build for hppa before hppa
309.35 -support is merged into glibc.
310.1 --- a/patches/glibc/2.3.2/arm-asm-clobber.patch Tue Aug 14 19:32:22 2007 +0000
310.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
310.3 @@ -1,26 +0,0 @@
310.4 -http://gcc.gnu.org/PR11103
310.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/arm/sysdep.h.diff?r1=1.22&r2=1.23&cvsroot=glibc
310.6 -http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-July/005826.html
310.7 -
310.8 -Error:
310.9 -../sysdeps/unix/sysv/linux/arm/sigaction.c: In function `__libc_sigaction':
310.10 -../sysdeps/unix/sysv/linux/arm/sigaction.c:100: error: asm-specifier for variable `_a1' conflicts with asm clobber list
310.11 -../sysdeps/unix/sysv/linux/arm/sigaction.c:139: error: asm-specifier for variable `_a1' conflicts with asm clobber list
310.12 -make[2]: *** [build-glibc/signal/sigaction.o] Error 1
310.13 -
310.14 -===================================================================
310.15 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/sysdep.h,v
310.16 -retrieving revision 1.22
310.17 -retrieving revision 1.23
310.18 -diff -u -r1.22 -r1.23
310.19 ---- libc/sysdeps/unix/sysv/linux/arm/sysdep.h 2003/03/23 19:42:22 1.22
310.20 -+++ libc/sysdeps/unix/sysv/linux/arm/sysdep.h 2003/03/24 19:00:28 1.23
310.21 -@@ -174,7 +174,7 @@
310.22 - asm volatile ("swi %1 @ syscall " #name \
310.23 - : "=r" (_a1) \
310.24 - : "i" (SYS_ify(name)) ASM_ARGS_##nr \
310.25 -- : "a1", "memory"); \
310.26 -+ : "memory"); \
310.27 - _sys_result = _a1; \
310.28 - } \
310.29 - (int) _sys_result; })
311.1 --- a/patches/glibc/2.3.2/arm-ctl_bus_isa.patch Tue Aug 14 19:32:22 2007 +0000
311.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
311.3 @@ -1,51 +0,0 @@
311.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
311.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
311.6 -Fixes following error:
311.7 -
311.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
311.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
311.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
311.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
311.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
311.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
311.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
311.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
311.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
311.17 -
311.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
311.19 -
311.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
311.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
311.22 -@@ -47,6 +47,12 @@
311.23 - #include <asm/page.h>
311.24 - #include <sys/sysctl.h>
311.25 -
311.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
311.27 -+#include <linux/version.h>
311.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
311.29 -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
311.30 -+#endif
311.31 -+
311.32 - #define PATH_ARM_SYSTYPE "/etc/arm_systype"
311.33 - #define PATH_CPUINFO "/proc/cpuinfo"
311.34 -
311.35 -@@ -80,7 +86,7 @@
311.36 - * Initialize I/O system. There are several ways to get the information
311.37 - * we need. Each is tried in turn until one succeeds.
311.38 - *
311.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
311.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
311.41 - * but not all kernels support it.
311.42 - *
311.43 - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
311.44 -@@ -100,8 +106,8 @@
311.45 - {
311.46 - char systype[256];
311.47 - int i, n;
311.48 -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
311.49 -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
311.50 -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
311.51 -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
311.52 - size_t len = sizeof(io.base);
311.53 -
311.54 - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
312.1 --- a/patches/glibc/2.3.2/arm-mcount_internal.patch Tue Aug 14 19:32:22 2007 +0000
312.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
312.3 @@ -1,30 +0,0 @@
312.4 -#
312.5 -# Submitted:
312.6 -#
312.7 -# Robert Schwebel, 2003-12-22
312.8 -#
312.9 -# Error:
312.10 -#
312.11 -# ... undefined reference to mcount_internal ...
312.12 -#
312.13 -# Description:
312.14 -#
312.15 -# State:
312.16 -#
312.17 -# unknown
312.18 -#
312.19 -
312.20 ---- glibc-2.3.2/sysdeps/arm/machine-gmon.h 2001-07-07 21:21:19.000000000 +0200
312.21 -+++ glibc-2.3.2-ptx/sysdeps/arm/machine-gmon.h 2003-12-21 23:58:26.000000000 +0100
312.22 -@@ -32,10 +32,8 @@
312.23 - weak_alias (_mcount, mcount)
312.24 - #endif
312.25 -
312.26 --static void mcount_internal (u_long frompc, u_long selfpc);
312.27 --
312.28 - #define _MCOUNT_DECL(frompc, selfpc) \
312.29 --static void mcount_internal (u_long frompc, u_long selfpc)
312.30 -+void mcount_internal (u_long frompc, u_long selfpc)
312.31 -
312.32 - /* This macro/func MUST save r0, r1 because the compiler inserts
312.33 - blind calls to _mount(), ignoring the fact that _mcount may
313.1 --- a/patches/glibc/2.3.2/epoll-epollet.patch Tue Aug 14 19:32:22 2007 +0000
313.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
313.3 @@ -1,28 +0,0 @@
313.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sys/epoll.h.diff?r1=1.1&r2=1.2&cvsroot=glibc
313.5 -Needed for modern sys_epoll.
313.6 -
313.7 -===================================================================
313.8 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sys/epoll.h,v
313.9 -retrieving revision 1.1
313.10 -retrieving revision 1.2
313.11 -diff -u -r1.1 -r1.2
313.12 ---- libc/sysdeps/unix/sysv/linux/sys/epoll.h 2002/12/16 23:35:27 1.1
313.13 -+++ libc/sysdeps/unix/sysv/linux/sys/epoll.h 2003/03/24 23:50:25 1.2
313.14 -@@ -1,4 +1,4 @@
313.15 --/* Copyright (C) 2002 Free Software Foundation, Inc.
313.16 -+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
313.17 - This file is part of the GNU C Library.
313.18 -
313.19 - The GNU C Library is free software; you can redistribute it and/or
313.20 -@@ -42,8 +42,10 @@
313.21 - #define EPOLLMSG EPOLLMSG
313.22 - EPOLLERR = 0x008,
313.23 - #define EPOLLERR EPOLLERR
313.24 -- EPOLLHUP = 0x010
313.25 -+ EPOLLHUP = 0x010,
313.26 - #define EPOLLHUP EPOLLHUP
313.27 -+ EPOLLET = (1 << 31)
313.28 -+#define EPOLLET EPOLLET
313.29 - };
313.30 -
313.31 -
314.1 --- a/patches/glibc/2.3.2/epoll-stdint.patch Tue Aug 14 19:32:22 2007 +0000
314.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
314.3 @@ -1,22 +0,0 @@
314.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sys/epoll.h.diff?r1=1.2&r2=1.3&cvsroot=glibc
314.5 -Include <stdint.h>.
314.6 -
314.7 -Fixes error
314.8 -/foo/gcc-3.3.2-glibc-2.3.2/powerpc-750-linux-gnu/sys-include/sys/epoll.h:60: error: parse error before "uint32_t"
314.9 -/foo/gcc-3.3.2-glibc-2.3.2/powerpc-750-linux-gnu/sys-include/sys/epoll.h:66: error: parse error before "uint32_t"
314.10 -
314.11 -===================================================================
314.12 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sys/epoll.h,v
314.13 -retrieving revision 1.2
314.14 -retrieving revision 1.3
314.15 -diff -u -r1.2 -r1.3
314.16 ---- libc/sysdeps/unix/sysv/linux/sys/epoll.h 2003/03/24 23:50:25 1.2
314.17 -+++ libc/sysdeps/unix/sysv/linux/sys/epoll.h 2003/06/13 19:49:50 1.3
314.18 -@@ -19,6 +19,7 @@
314.19 - #ifndef _SYS_EPOLL_H
314.20 - #define _SYS_EPOLL_H 1
314.21 -
314.22 -+#include <stdint.h>
314.23 - #include <sys/types.h>
314.24 -
314.25 -
315.1 --- a/patches/glibc/2.3.2/errlist-awk.patch Tue Aug 14 19:32:22 2007 +0000
315.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
315.3 @@ -1,11 +0,0 @@
315.4 ---- glibc-2.3.2/sysdeps/gnu/errlist.awk.old Tue May 27 18:10:37 2003
315.5 -+++ glibc-2.3.2/sysdeps/gnu/errlist.awk Tue May 27 18:10:47 2003
315.6 -@@ -39,7 +39,7 @@
315.7 -
315.8 - print "/* This file is generated from errno.texi by errlist.awk. */"
315.9 - print "";
315.10 -- print "#include <errno.h>";
315.11 -+ print "#include <stdlib/errno.h>";
315.12 - print "#include <libintl.h>";
315.13 - print "";
315.14 - print "#ifndef ERR_REMAP";
316.1 --- a/patches/glibc/2.3.2/fixup.patch Tue Aug 14 19:32:22 2007 +0000
316.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
316.3 @@ -1,74 +0,0 @@
316.4 -Fixes
316.5 -dl-runtime.c:56: error: conflicting types for 'fixup'
316.6 -../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
316.7 -when building with gcc-3.4.0
316.8 -
316.9 -First hunk:
316.10 -Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
316.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
316.12 -
316.13 -Second hunk:
316.14 -If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
316.15 -Use macro in fixup function definitions.
316.16 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
316.17 -[rediffed against glibc-2.3.2]
316.18 -
316.19 -===================================================================
316.20 -RCS file: /cvs/glibc/libc/sysdeps/i386/dl-machine.h,v
316.21 -retrieving revision 1.124
316.22 -retrieving revision 1.125
316.23 -diff -u -r1.124 -r1.125
316.24 ---- libc/sysdeps/i386/dl-machine.h 2004/03/05 10:14:49 1.124
316.25 -+++ libc/sysdeps/i386/dl-machine.h 2004/03/09 07:42:29 1.125
316.26 -@@ -154,11 +154,14 @@
316.27 - destroys the passed register information. */
316.28 - /* GKM FIXME: Fix trampoline to pass bounds so we can do
316.29 - without the `__unbounded' qualifier. */
316.30 --static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
316.31 -- __attribute__ ((regparm (2), unused));
316.32 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
316.33 -+
316.34 -+static ElfW(Addr) fixup (struct link_map *__unbounded l,
316.35 -+ ElfW(Word) reloc_offset)
316.36 -+ ARCH_FIXUP_ATTRIBUTE;
316.37 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
316.38 - ElfW(Addr) retaddr)
316.39 -- __attribute__ ((regparm (3), unused));
316.40 -+ ARCH_FIXUP_ATTRIBUTE;
316.41 - # endif
316.42 -
316.43 - /* This code is used in dl-runtime.c to call the `fixup' function
316.44 -===================================================================
316.45 ---- /home/dank/downloads/glibc-2.3.2/elf/dl-runtime.c Fri Feb 7 11:41:12 2003
316.46 -+++ glibc-2.3.2/elf/dl-runtime.c Thu Apr 8 22:24:26 2004
316.47 -@@ -36,6 +36,12 @@
316.48 - # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
316.49 - #endif
316.50 -
316.51 -+/* The fixup functions might have need special attributes. If none
316.52 -+ are provided define the macro as empty. */
316.53 -+#ifndef ARCH_FIXUP_ATTRIBUTE
316.54 -+# define ARCH_FIXUP_ATTRIBUTE
316.55 -+#endif
316.56 -+
316.57 -
316.58 - /* This function is called through a special trampoline from the PLT the
316.59 - first time each PLT entry is called. We must perform the relocation
316.60 -@@ -45,7 +51,7 @@
316.61 - function. */
316.62 -
316.63 - #ifndef ELF_MACHINE_NO_PLT
316.64 --static ElfW(Addr) __attribute_used__
316.65 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
316.66 - fixup (
316.67 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
316.68 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
316.69 -@@ -132,7 +138,7 @@
316.70 -
316.71 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
316.72 -
316.73 --static ElfW(Addr) __attribute_used__
316.74 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
316.75 - profile_fixup (
316.76 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
316.77 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
317.1 --- a/patches/glibc/2.3.2/gcc-pr-9552-workaround.patch Tue Aug 14 19:32:22 2007 +0000
317.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
317.3 @@ -1,20 +0,0 @@
317.4 -See http://gcc.gnu.org/PR9552
317.5 -
317.6 -Works around gcc error
317.7 - "soinit.c:25: internal compiler error: in named_section_flags, at varasm.c:412"
317.8 -by fixing slightly incorrect code in glibc (the .eh_frame section used to
317.9 -be read-write, but it's now readonly according to discussion in
317.10 -http://sources.redhat.com/ml/binutils/2002-11/msg00592.html,
317.11 -so it's arguably incorrect to continue to put variables in there that aren't const).
317.12 -
317.13 ---- glibc-2.3.2/elf/soinit.c 2001-11-16 00:09:20.000000000 +0100
317.14 -+++ glibc-2.3.2/elf/soinit.c 2003-08-12 09:13:34.000000000 +0200
317.15 -@@ -25,7 +25,7 @@
317.16 - }
317.17 -
317.18 - #ifdef HAVE_DWARF2_UNWIND_INFO
317.19 --static char __EH_FRAME_BEGIN__[]
317.20 -+const static char __EH_FRAME_BEGIN__[]
317.21 - __attribute__ ((section (".eh_frame")))
317.22 - = { };
317.23 - # ifdef HAVE_DWARF2_UNWIND_INFO_STATIC
318.1 --- a/patches/glibc/2.3.2/glibc-2.2.5-crosstest.patch Tue Aug 14 19:32:22 2007 +0000
318.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
318.3 @@ -1,27 +0,0 @@
318.4 -Fixes errors like
318.5 - /build-glibc/dlfcn/glrefmain: cannot load `glreflib1.so'
318.6 -in glibc regression test
318.7 -
318.8 ---- glibc-2.2.5/dlfcn/Makefile.old Thu Jul 24 16:30:20 2003
318.9 -+++ glibc-2.2.5/dlfcn/Makefile Thu Jul 24 17:25:01 2003
318.10 -@@ -60,6 +60,8 @@
318.11 - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names)))
318.12 - $(test-modules): $(objpfx)%.so: $(objpfx)%.os
318.13 - $(build-module)
318.14 -+# without following rule, test-modules don't get built when cross-compiling
318.15 -+tests: $(test-modules)
318.16 -
318.17 - $(objpfx)glrefmain: $(libdl)
318.18 - $(objpfx)glrefmain.out: $(objpfx)glrefmain \
318.19 ---- glibc-2.2.5/elf/Makefile.old Thu Jul 24 18:17:12 2003
318.20 -+++ glibc-2.2.5/elf/Makefile Thu Jul 24 18:18:58 2003
318.21 -@@ -263,6 +263,9 @@
318.22 - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
318.23 - generated += $(addsuffix .so,$(strip $(modules-names)))
318.24 -
318.25 -+# without following rule, test-modules don't get built when cross-compiling
318.26 -+tests: $(test-modules)
318.27 -+
318.28 - ifeq (yes,$(build-shared))
318.29 - ifeq ($(cross-compiling),no)
318.30 - tests: $(objpfx)tst-pathopt.out
319.1 --- a/patches/glibc/2.3.2/glibc-2.2.5-mips-clone-local-label.patch Tue Aug 14 19:32:22 2007 +0000
319.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
319.3 @@ -1,47 +0,0 @@
319.4 -This is a workaround for
319.5 -
319.6 -mipsel-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/mips/clone.S -c -I../include -I. -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc -I.. -I../libio -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc -I../sysdeps/mips/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/mips -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/mips/mipsel -I../sysdeps/mips/fpu -I../sysdeps/mips -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/include -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/mipsel-unknown-linux-gnu/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DASSEMBLER -o /home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o
319.7 -../sysdeps/unix/sysv/linux/mips/clone.S: Assembler messages:
319.8 -../sysdeps/unix/sysv/linux/mips/clone.S:66: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format
319.9 -make[2]: *** [/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o] Error 1
319.10 -
319.11 -which was using h.j.lu's binutils-2.13.90.0.18.
319.12 -
319.13 -
319.14 -But see http://lists.debian.org/debian-mips/2003/debian-mips-200305/msg00011.html
319.15 -which says
319.16 -"A newer version of binutils (CVS post 2003-03-12) fixes it without
319.17 -the need of changing perfectly legal code."
319.18 -So presumably this can be ditched sooner or later.
319.19 -
319.20 -From http://honk.physik.uni-konstanz.de/~agx/linux-mips/glibc/patches/applied/clone-local-label.diff
319.21 -
319.22 -2003-03-13 Guido Guenther <agx@sigxcpu.org>
319.23 -
319.24 - * sysdeps/unix/sysv/linux/mips/clone.S: introduce and use local label
319.25 - .Lthread_start since current binutils don't allow branches to globally
319.26 - visible symbols.
319.27 -
319.28 -===================================================================
319.29 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/clone.S,v
319.30 -retrieving revision 1.10
319.31 -diff -u -r1.10 clone.S
319.32 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 12 Mar 2003 01:04:51 -0000 1.10
319.33 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 12 Mar 2003 19:04:39 -0000
319.34 -@@ -63,7 +63,7 @@
319.35 - syscall
319.36 -
319.37 - bnez a3,error
319.38 -- beqz v0,__thread_start
319.39 -+ beqz v0,.Lthread_start
319.40 -
319.41 - /* Successful return from the parent */
319.42 - addiu sp,32
319.43 -@@ -85,6 +85,7 @@
319.44 - debug info. */
319.45 -
319.46 - ENTRY(__thread_start)
319.47 -+.Lthread_start:
319.48 - /* cp is already loaded. */
319.49 - .cprestore 16
319.50 - /* The stackframe has been created on entry of clone(). */
320.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.4-inline.patch Tue Aug 14 19:32:22 2007 +0000
320.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
320.3 @@ -1,23 +0,0 @@
320.4 -Fixes
320.5 -cc1: error: invalid parameter `max-inline-insns'
320.6 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc6/build/powerpc64-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/dl-load.o] Error 1
320.7 -when building with gcc-3.4.0, which no longer has a single
320.8 ---max-inline-insns parameter.
320.9 -
320.10 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/powerpc64/Makefile.diff?r1=1.3&r2=1.4&cvsroot=glibc
320.11 -
320.12 -===================================================================
320.13 -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/Makefile,v
320.14 -retrieving revision 1.3
320.15 -retrieving revision 1.4
320.16 -diff -u -r1.3 -r1.4
320.17 ---- libc/sysdeps/powerpc/powerpc64/Makefile 2003/10/22 21:30:03 1.3
320.18 -+++ libc/sysdeps/powerpc/powerpc64/Makefile 2004/02/20 05:43:52 1.4
320.19 -@@ -20,5 +20,5 @@
320.20 -
320.21 - ifeq ($(subdir),elf)
320.22 - # help gcc inline asm code from dl-machine.h
320.23 --+cflags += --param max-inline-insns=2000
320.24 -++cflags += -finline-limit=2000
320.25 - endif
320.26 -
321.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.4-nounit.patch Tue Aug 14 19:32:22 2007 +0000
321.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
321.3 @@ -1,137 +0,0 @@
321.4 -Fixes errors like
321.5 -
321.6 -# gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crtn.o(.text+0x0):mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crtn.S:20: multiple definition of `dummy'
321.7 -# gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crti.o(.text+0x0):mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crti.S:42: first defined here
321.8 -# /gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crti.o(.init+0x28):mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crti.S:58: undefined reference to `i_am_not_a_leaf'
321.9 -
321.10 -CVSROOT: /cvs/glibc
321.11 -Module name: libc
321.12 -Changes by: aj@sourceware.org 2003-12-02 07:37:29
321.13 -
321.14 -Modified files:
321.15 - . : configure.in configure config.make.in
321.16 - csu : Makefile
321.17 - locale : Makefile
321.18 - linuxthreads : Makefile
321.19 - linuxthreads/sysdeps/unix/sysv/linux/x86_64: Makefile
321.20 - nptl : Makefile
321.21 - nptl/sysdeps/unix/sysv/linux/x86_64: Makefile
321.22 -
321.23 -Log message:
321.24 - * config.make.in (fno-unit-at-a-time): Define.
321.25 -
321.26 - * configure.in: Add test for -fno-unit-at-a-time.
321.27 - Fix text for -fpie.
321.28 -
321.29 - * csu/Makefile (CFLAGS-initfini.s): Add $(fno_unit_at_a_time).
321.30 - * locale/Makefile (CFLAGS-loadlocale.c): Likewise.
321.31 -
321.32 - For linuxthreads:
321.33 - * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
321.34 - * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
321.35 - Likewise.
321.36 -
321.37 - For nptl:
321.38 - * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
321.39 - * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
321.40 - Likewise.
321.41 -
321.42 -Main glibc change retrieved with
321.43 -wget -O foo.patch 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/config.make.in.diff?r1=1.98&r2=1.99&cvsroot=glibc' \
321.44 -'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/configure.diff?r1=1.393&r2=1.394&cvsroot=glibc' \
321.45 -'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/csu/Makefile.diff?r1=1.71&r2=1.72&cvsroot=glibc' \
321.46 -'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/locale/Makefile.diff?r1=1.71&r2=1.72&cvsroot=glibc'
321.47 -
321.48 -and then rediffed against glibc-2.3.2
321.49 -See also ../glibc-linuxthreads-2.3.2/glibc-linuxthreads-2.3.2-allow-3.4.patch
321.50 -
321.51 -diff -aur glibc-2.3.2/config.make.in glibc-2.3.2-nounit/config.make.in
321.52 ---- glibc-2.3.2/config.make.in 2002-11-14 14:53:32.000000000 -0800
321.53 -+++ glibc-2.3.2-nounit/config.make.in 2004-05-29 23:19:58.000000000 -0700
321.54 -@@ -50,6 +50,7 @@
321.55 - old-glibc-headers = @old_glibc_headers@
321.56 - unwind-find-fde = @libc_cv_gcc_unwind_find_fde@
321.57 - have-initfini-array = @libc_cv_initfinit_array@
321.58 -+fno-unit-at-a-time = @fno_unit_at_a_time@
321.59 -
321.60 - static-libgcc = @libc_cv_gcc_static_libgcc@
321.61 -
321.62 -diff -aur glibc-2.3.2/configure glibc-2.3.2-nounit/configure
321.63 ---- glibc-2.3.2/configure 2003-02-26 01:20:48.000000000 -0800
321.64 -+++ glibc-2.3.2-nounit/configure 2004-05-30 06:22:31.000000000 -0700
321.65 -@@ -312,7 +312,7 @@
321.66 - # include <unistd.h>
321.67 - #endif"
321.68 -
321.69 --ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs oldest_abi subdirs force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S PWD_P CC MAKE MSGFMT MAKEINFO SED AUTOCONF CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD CCVERSION SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO OLD_DEBIAN_INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_Bgroup libc_cv_z_combreloc libc_cv_have_initfini no_whole_archive exceptions LIBGD EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
321.70 -+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs oldest_abi subdirs force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S PWD_P CC MAKE MSGFMT MAKEINFO SED AUTOCONF CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD CCVERSION SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO OLD_DEBIAN_INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_Bgroup libc_cv_z_combreloc fno_unit_at_a_time libc_cv_have_initfini no_whole_archive exceptions LIBGD EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
321.71 - ac_subst_files=''
321.72 -
321.73 - # Initialize some variables set by options.
321.74 -@@ -4984,6 +4984,35 @@
321.75 - fi
321.76 -
321.77 -
321.78 -+echo "$as_me:$LINENO: checking for -fno-unit-at-a-time" >&5
321.79 -+echo $ECHO_N "checking for -fno-unit-at-a-time... $ECHO_C" >&6
321.80 -+if test "${libc_cv_fno_unit_at_a_time+set}" = set; then
321.81 -+ echo $ECHO_N "(cached) $ECHO_C" >&6
321.82 -+else
321.83 -+ cat > conftest.c <<EOF
321.84 -+int foo;
321.85 -+EOF
321.86 -+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S -fno-unit-at-a-time
321.87 -+ conftest.c 1>&5'
321.88 -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
321.89 -+ (eval $ac_try) 2>&5
321.90 -+ ac_status=$?
321.91 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
321.92 -+ (exit $ac_status); }; }
321.93 -+then
321.94 -+ libc_cv_fno_unit_at_a_time=yes
321.95 -+else
321.96 -+ libc_cv_fno_unit_at_a_time=no
321.97 -+fi
321.98 -+rm -f conftest*
321.99 -+fi
321.100 -+echo "$as_me:$LINENO: result: $libc_cv_fno_unit_at_a_time" >&5
321.101 -+echo "${ECHO_T}$libc_cv_fno_unit_at_a_time" >&6
321.102 -+if test $libc_cv_fno_unit_at_a_time = yes; then
321.103 -+ fno_unit_at_a_time=-fno-unit-at-a-time
321.104 -+fi
321.105 -+
321.106 -+
321.107 - if test $elf != yes; then
321.108 - echo "$as_me:$LINENO: checking for .init and .fini sections" >&5
321.109 - echo $ECHO_N "checking for .init and .fini sections... $ECHO_C" >&6
321.110 -@@ -7236,6 +7265,7 @@
321.111 - s,@libc_cv_z_initfirst@,$libc_cv_z_initfirst,;t t
321.112 - s,@libc_cv_Bgroup@,$libc_cv_Bgroup,;t t
321.113 - s,@libc_cv_z_combreloc@,$libc_cv_z_combreloc,;t t
321.114 -+s,@fno_unit_at_a_time@,$fno_unit_at_a_time,;t t
321.115 - s,@libc_cv_have_initfini@,$libc_cv_have_initfini,;t t
321.116 - s,@no_whole_archive@,$no_whole_archive,;t t
321.117 - s,@exceptions@,$exceptions,;t t
321.118 -diff -aur glibc-2.3.2/csu/Makefile glibc-2.3.2-nounit/csu/Makefile
321.119 ---- glibc-2.3.2/csu/Makefile 2002-12-31 14:24:37.000000000 -0800
321.120 -+++ glibc-2.3.2-nounit/csu/Makefile 2004-05-29 23:18:27.000000000 -0700
321.121 -@@ -99,7 +99,7 @@
321.122 - $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h
321.123 - $(compile.S) -g0 $(ASFLAGS-.os) -o $@
321.124 -
321.125 --CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions
321.126 -+CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
321.127 -
321.128 - vpath initfini.c $(full_config_sysdirs)
321.129 -
321.130 -diff -aur glibc-2.3.2/locale/Makefile glibc-2.3.2-nounit/locale/Makefile
321.131 ---- glibc-2.3.2/locale/Makefile 2002-10-17 10:05:53.000000000 -0700
321.132 -+++ glibc-2.3.2-nounit/locale/Makefile 2004-05-29 23:18:27.000000000 -0700
321.133 -@@ -100,6 +100,7 @@
321.134 - CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
321.135 - CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts
321.136 - CFLAGS-charmap-dir.c = -Wno-write-strings
321.137 -+CFLAGS-loadlocale.c = $(fno-unit-at-a-time)
321.138 -
321.139 - # This makes sure -DNOT_IN_libc is passed for all these modules.
321.140 - cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \
322.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-PR14096.patch Tue Aug 14 19:32:22 2007 +0000
322.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
322.3 @@ -1,55 +0,0 @@
322.4 ---- glibc-2.3.2/stdlib/abs.c.old 2004-07-18 12:08:43.000000000 -0700
322.5 -+++ glibc-2.3.2/stdlib/abs.c 2004-07-18 12:09:18.000000000 -0700
322.6 -@@ -16,6 +16,8 @@
322.7 - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
322.8 - 02111-1307 USA. */
322.9 -
322.10 -+#define __NO_INLINE__ 1 /* avoid http://gcc.gnu.org/PR14096 */
322.11 -+
322.12 - #include <stdlib.h>
322.13 -
322.14 - #undef abs
322.15 ---- glibc-2.3.2/stdlib/atoi.c.old 2004-07-18 12:08:17.000000000 -0700
322.16 -+++ glibc-2.3.2/stdlib/atoi.c 2004-07-18 12:08:27.000000000 -0700
322.17 -@@ -16,6 +16,8 @@
322.18 - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
322.19 - 02111-1307 USA. */
322.20 -
322.21 -+#define __NO_INLINE__ 1 /* avoid http://gcc.gnu.org/PR14096 */
322.22 -+
322.23 - #include <stdlib.h>
322.24 -
322.25 - #undef atoi
322.26 ---- glibc-2.3.2/stdlib/atof.c.old 2004-07-18 12:06:09.000000000 -0700
322.27 -+++ glibc-2.3.2/stdlib/atof.c 2004-07-18 12:05:31.000000000 -0700
322.28 -@@ -16,6 +16,8 @@
322.29 - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
322.30 - 02111-1307 USA. */
322.31 -
322.32 -+#define __NO_INLINE__ 1 /* avoid http://gcc.gnu.org/PR14096 */
322.33 -+
322.34 - #include <stdlib.h>
322.35 -
322.36 - #undef atof
322.37 ---- glibc-2.3.2/stdlib/atol.c.old 2004-07-18 12:08:49.000000000 -0700
322.38 -+++ glibc-2.3.2/stdlib/atol.c 2004-07-18 12:09:40.000000000 -0700
322.39 -@@ -16,6 +16,8 @@
322.40 - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
322.41 - 02111-1307 USA. */
322.42 -
322.43 -+#define __NO_INLINE__ 1 /* avoid http://gcc.gnu.org/PR14096 */
322.44 -+
322.45 - #include <stdlib.h>
322.46 -
322.47 - #undef atol
322.48 ---- glibc-2.3.2/stdlib/atoll.c.old 2004-07-18 12:08:55.000000000 -0700
322.49 -+++ glibc-2.3.2/stdlib/atoll.c 2004-07-18 12:09:59.000000000 -0700
322.50 -@@ -16,6 +16,8 @@
322.51 - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
322.52 - 02111-1307 USA. */
322.53 -
322.54 -+#define __NO_INLINE__ 1 /* avoid http://gcc.gnu.org/PR14096 */
322.55 -+
322.56 - #include <stdlib.h>
322.57 -
322.58 - #undef atoll
323.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-elf.patch Tue Aug 14 19:32:22 2007 +0000
323.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
323.3 @@ -1,34 +0,0 @@
323.4 -
323.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-load.c.diff?r1=1.235&r2=1.236&cvsroot=glibc
323.6 -
323.7 -Fixes gcc-3.5 errors
323.8 -
323.9 -dl-load.c: In function `_dl_map_object_from_fd':
323.10 -dl-load.c:1179: error: invalid lvalue in assignment
323.11 -dl-load.c:1205: error: invalid lvalue in assignment
323.12 -
323.13 -===================================================================
323.14 -RCS file: /cvs/glibc/libc/elf/dl-load.c,v
323.15 -retrieving revision 1.235
323.16 -retrieving revision 1.236
323.17 -diff -u -r1.235 -r1.236
323.18 ---- libc/elf/dl-load.c 2004/02/09 07:03:48 1.235
323.19 -+++ libc/elf/dl-load.c 2004/02/21 18:25:41 1.236
323.20 -@@ -1228,7 +1228,7 @@
323.21 - }
323.22 - else
323.23 - /* Adjust the PT_PHDR value by the runtime load address. */
323.24 -- (ElfW(Addr)) l->l_phdr += l->l_addr;
323.25 -+ l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
323.26 - }
323.27 -
323.28 - #ifdef USE_TLS
323.29 -@@ -1254,7 +1254,7 @@
323.30 - }
323.31 - }
323.32 - else
323.33 -- (ElfW(Addr)) l->l_ld += l->l_addr;
323.34 -+ l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
323.35 -
323.36 - l->l_entry += l->l_addr;
323.37 -
324.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-gconv.patch Tue Aug 14 19:32:22 2007 +0000
324.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
324.3 @@ -1,228 +0,0 @@
324.4 -Fixes
324.5 -gconv_open.c: In function `__gconv_open':
324.6 -gconv_open.c:186: error: invalid lvalue in assignment
324.7 -when building glibc-2.3.2 with gcc-3.5.
324.8 -
324.9 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_simple.c.diff?r1=1.59&r2=1.63&cvsroot=glibc'
324.10 - * (internal_ucs4_loop): Fix typo in last change.
324.11 -
324.12 - * (internal_ucs4le_loop): Remove cast used as lvalue.
324.13 -
324.14 - * Fix last commit.
324.15 -
324.16 - * iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
324.17 - (internal_ucs4le_loop_single): Likewise.
324.18 - (ucs4_internal_loop): Likewise.
324.19 - (BODY): Likewise.
324.20 - (internal_ucs4_loop_single): Likewise.
324.21 -
324.22 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_open.c.diff?r1=1.32&r2=1.33&cvsroot=glibc'
324.23 - * iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
324.24 - (internal_ucs4le_loop_single): Likewise.
324.25 - (ucs4_internal_loop): Likewise.
324.26 - (BODY): Likewise.
324.27 - (internal_ucs4_loop_single): Likewise.
324.28 -
324.29 -
324.30 -===================================================================
324.31 -RCS file: /cvs/glibc/libc/iconv/gconv_open.c,v
324.32 -retrieving revision 1.32
324.33 -retrieving revision 1.33
324.34 -diff -u -r1.32 -r1.33
324.35 ---- libc/iconv/gconv_open.c 2001/11/29 04:51:58 1.32
324.36 -+++ libc/iconv/gconv_open.c 2004/02/07 15:56:32 1.33
324.37 -@@ -1,5 +1,5 @@
324.38 - /* Find matching transformation algorithms and initialize steps.
324.39 -- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
324.40 -+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
324.41 - This file is part of the GNU C Library.
324.42 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
324.43 -
324.44 -@@ -182,8 +182,13 @@
324.45 - || __builtin_expect (__gconv_translit_find (runp), 0) == 0)
324.46 - lastp = runp;
324.47 - else
324.48 -- /* This means we haven't found the module. Remove it. */
324.49 -- (lastp == NULL ? trans : lastp->next) = runp->next;
324.50 -+ {
324.51 -+ /* This means we haven't found the module. Remove it. */
324.52 -+ if (lastp == NULL)
324.53 -+ trans = runp->next;
324.54 -+ else
324.55 -+ lastp->next = runp->next;
324.56 -+ }
324.57 - }
324.58 -
324.59 - /* Allocate room for handle. */
324.60 -===================================================================
324.61 -RCS file: /cvs/glibc/libc/iconv/gconv_simple.c,v
324.62 -retrieving revision 1.59
324.63 -retrieving revision 1.63
324.64 -diff -u -r1.59 -r1.63
324.65 ---- libc/iconv/gconv_simple.c 2003/06/11 21:36:37 1.59
324.66 -+++ libc/iconv/gconv_simple.c 2004/03/09 10:00:31 1.63
324.67 -@@ -1,5 +1,5 @@
324.68 - /* Simple transformations functions.
324.69 -- Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
324.70 -+ Copyright (C) 1997-2003, 2004 Free Software Foundation, Inc.
324.71 - This file is part of the GNU C Library.
324.72 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
324.73 -
324.74 -@@ -87,12 +87,13 @@
324.75 - #if __BYTE_ORDER == __LITTLE_ENDIAN
324.76 - /* Sigh, we have to do some real work. */
324.77 - size_t cnt;
324.78 -+ uint32_t *outptr32 = (uint32_t *) outptr;
324.79 -
324.80 - for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
324.81 -- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
324.82 -+ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
324.83 -
324.84 - *inptrp = inptr;
324.85 -- *outptrp = outptr;
324.86 -+ *outptrp = (unsigned char *) outptr32;
324.87 - #elif __BYTE_ORDER == __BIG_ENDIAN
324.88 - /* Simply copy the data. */
324.89 - *inptrp = inptr + n_convert * 4;
324.90 -@@ -192,13 +193,16 @@
324.91 - (*outptrp)[2] = state->__value.__wchb[1];
324.92 - (*outptrp)[3] = state->__value.__wchb[0];
324.93 -
324.94 -- *outptrp += 4;
324.95 - #elif __BYTE_ORDER == __BIG_ENDIAN
324.96 - /* XXX unaligned */
324.97 -- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
324.98 -+ (*outptrp)[0] = state->__value.__wchb[0];
324.99 -+ (*outptrp)[1] = state->__value.__wchb[1];
324.100 -+ (*outptrp)[2] = state->__value.__wchb[2];
324.101 -+ (*outptrp)[3] = state->__value.__wchb[3];
324.102 - #else
324.103 - # error "This endianess is not supported."
324.104 - #endif
324.105 -+ *outptrp += 4;
324.106 -
324.107 - /* Clear the state buffer. */
324.108 - state->__count &= ~7;
324.109 -@@ -268,7 +272,8 @@
324.110 - return __GCONV_ILLEGAL_INPUT;
324.111 - }
324.112 -
324.113 -- *((uint32_t *) outptr)++ = inval;
324.114 -+ *((uint32_t *) outptr) = inval;
324.115 -+ outptr += sizeof (uint32_t);
324.116 - }
324.117 -
324.118 - *inptrp = inptr;
324.119 -@@ -447,9 +452,11 @@
324.120 - #if __BYTE_ORDER == __BIG_ENDIAN
324.121 - /* Sigh, we have to do some real work. */
324.122 - size_t cnt;
324.123 -+ uint32_t *outptr32 = (uint32_t *) outptr;
324.124 -
324.125 - for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
324.126 -- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
324.127 -+ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
324.128 -+ outptr = (unsigned char *) outptr32;
324.129 -
324.130 - *inptrp = inptr;
324.131 - *outptrp = outptr;
324.132 -@@ -555,12 +562,17 @@
324.133 - (*outptrp)[2] = state->__value.__wchb[1];
324.134 - (*outptrp)[3] = state->__value.__wchb[0];
324.135 -
324.136 -- *outptrp += 4;
324.137 - #else
324.138 - /* XXX unaligned */
324.139 -- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
324.140 -+ (*outptrp)[0] = state->__value.__wchb[0];
324.141 -+ (*outptrp)[1] = state->__value.__wchb[1];
324.142 -+ (*outptrp)[2] = state->__value.__wchb[2];
324.143 -+ (*outptrp)[3] = state->__value.__wchb[3];
324.144 -+
324.145 - #endif
324.146 -
324.147 -+ *outptrp += 4;
324.148 -+
324.149 - /* Clear the state buffer. */
324.150 - state->__count &= ~7;
324.151 -
324.152 -@@ -626,7 +638,8 @@
324.153 - return __GCONV_ILLEGAL_INPUT;
324.154 - }
324.155 -
324.156 -- *((uint32_t *) outptr)++ = inval;
324.157 -+ *((uint32_t *) outptr) = inval;
324.158 -+ outptr += sizeof (uint32_t);
324.159 - }
324.160 -
324.161 - *inptrp = inptr;
324.162 -@@ -808,7 +821,8 @@
324.163 - } \
324.164 - else \
324.165 - /* It's an one byte sequence. */ \
324.166 -- *((uint32_t *) outptr)++ = *inptr++; \
324.167 -+ *((uint32_t *) outptr) = *inptr++; \
324.168 -+ outptr += sizeof (uint32_t); \
324.169 - }
324.170 - #define LOOP_NEED_FLAGS
324.171 - #include <iconv/loop.c>
324.172 -@@ -838,7 +852,8 @@
324.173 - } \
324.174 - else \
324.175 - /* It's an one byte sequence. */ \
324.176 -- *outptr++ = *((const uint32_t *) inptr)++; \
324.177 -+ *outptr++ = *((const uint32_t *) inptr); \
324.178 -+ inptr += sizeof (uint32_t); \
324.179 - }
324.180 - #define LOOP_NEED_FLAGS
324.181 - #include <iconv/loop.c>
324.182 -@@ -1032,7 +1047,8 @@
324.183 - } \
324.184 - \
324.185 - /* Now adjust the pointers and store the result. */ \
324.186 -- *((uint32_t *) outptr)++ = ch; \
324.187 -+ *((uint32_t *) outptr) = ch; \
324.188 -+ outptr += sizeof (uint32_t); \
324.189 - }
324.190 - #define LOOP_NEED_FLAGS
324.191 -
324.192 -@@ -1153,7 +1169,8 @@
324.193 - STANDARD_FROM_LOOP_ERR_HANDLER (2); \
324.194 - } \
324.195 - \
324.196 -- *((uint32_t *) outptr)++ = u1; \
324.197 -+ *((uint32_t *) outptr) = u1; \
324.198 -+ outptr += sizeof (uint32_t); \
324.199 - inptr += 2; \
324.200 - }
324.201 - #define LOOP_NEED_FLAGS
324.202 -@@ -1201,7 +1218,8 @@
324.203 - } \
324.204 - else \
324.205 - { \
324.206 -- *((uint16_t *) outptr)++ = val; \
324.207 -+ *((uint16_t *) outptr) = val; \
324.208 -+ outptr += sizeof (uint16_t); \
324.209 - inptr += 4; \
324.210 - } \
324.211 - }
324.212 -@@ -1242,7 +1260,8 @@
324.213 - continue; \
324.214 - } \
324.215 - \
324.216 -- *((uint32_t *) outptr)++ = u1; \
324.217 -+ *((uint32_t *) outptr) = u1; \
324.218 -+ outptr += sizeof (uint32_t); \
324.219 - inptr += 2; \
324.220 - }
324.221 - #define LOOP_NEED_FLAGS
324.222 -@@ -1291,7 +1310,8 @@
324.223 - } \
324.224 - else \
324.225 - { \
324.226 -- *((uint16_t *) outptr)++ = bswap_16 (val); \
324.227 -+ *((uint16_t *) outptr) = bswap_16 (val); \
324.228 -+ outptr += sizeof (uint16_t); \
324.229 - inptr += 4; \
324.230 - } \
324.231 - }
325.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-msort.patch Tue Aug 14 19:32:22 2007 +0000
325.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
325.3 @@ -1,46 +0,0 @@
325.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdlib/msort.c.diff?r1=1.20&r2=1.21&cvsroot=glibc
325.5 -
325.6 -Fixes
325.7 -
325.8 -msort.c: In function `msort_with_tmp':
325.9 -msort.c:59: error: invalid lvalue in increment
325.10 -msort.c:59: error: invalid lvalue in increment
325.11 -msort.c:64: error: invalid lvalue in increment
325.12 -msort.c:64: error: invalid lvalue in increment
325.13 -
325.14 -when building with gcc-3.5.
325.15 -
325.16 -===================================================================
325.17 -RCS file: /cvs/glibc/libc/stdlib/msort.c,v
325.18 -retrieving revision 1.20
325.19 -retrieving revision 1.21
325.20 -diff -u -r1.20 -r1.21
325.21 ---- libc/stdlib/msort.c 2002/09/24 04:20:57 1.20
325.22 -+++ libc/stdlib/msort.c 2004/02/07 15:57:34 1.21
325.23 -@@ -1,6 +1,6 @@
325.24 - /* An alternative to qsort, with an identical interface.
325.25 - This file is part of the GNU C Library.
325.26 -- Copyright (C) 1992,95-97,99,2000,01,02 Free Software Foundation, Inc.
325.27 -+ Copyright (C) 1992,95-97,99,2000,01,02,04 Free Software Foundation, Inc.
325.28 - Written by Mike Haertel, September 1988.
325.29 -
325.30 - The GNU C Library is free software; you can redistribute it and/or
325.31 -@@ -56,12 +56,16 @@
325.32 - if ((*cmp) (b1, b2) <= 0)
325.33 - {
325.34 - --n1;
325.35 -- *((op_t *) tmp)++ = *((op_t *) b1)++;
325.36 -+ *((op_t *) tmp) = *((op_t *) b1);
325.37 -+ tmp += sizeof (op_t);
325.38 -+ b1 += sizeof (op_t);
325.39 - }
325.40 - else
325.41 - {
325.42 - --n2;
325.43 -- *((op_t *) tmp)++ = *((op_t *) b2)++;
325.44 -+ *((op_t *) tmp) = *((op_t *) b2);
325.45 -+ tmp += sizeof (op_t);
325.46 -+ b2 += sizeof (op_t);
325.47 - }
325.48 - }
325.49 - else
326.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-sunrpc.patch Tue Aug 14 19:32:22 2007 +0000
326.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
326.3 @@ -1,233 +0,0 @@
326.4 -http://sources.redhat.com/ml/libc-hacker/2004-02/msg00005.html
326.5 -[Also in CVS, but the original patch is easier to get.]
326.6 -
326.7 -Fixes errors like
326.8 -
326.9 -clnt_perr.c: In function `_buf':
326.10 -clnt_perr.c:67: error: invalid lvalue in assignment
326.11 -
326.12 -when building with gcc-3.5.
326.13 -
326.14 -To: libc-hacker at sources dot redhat dot com
326.15 -Subject: Fix cast as lvalue in sunrpc
326.16 -From: Andreas Schwab <schwab at suse dot de>
326.17 -X-Yow: SHHHH!! I hear SIX TATTOOED TRUCK-DRIVERS tossing ENGINE BLOCKS
326.18 - into empty OIL DRUMS dot dot
326.19 -Date: Sun, 08 Feb 2004 17:38:31 +0100
326.20 -Message-ID: <je4qu1frw8.fsf@sykes.suse.de>
326.21 -
326.22 -This fixes the uses of casts as lvalue in the sunrpc code.
326.23 -
326.24 -Andreas.
326.25 -
326.26 -2004-02-08 Andreas Schwab <schwab@suse.de>
326.27 -
326.28 - * include/rpc/rpc.h: Declare thread variables with their correct
326.29 - type.
326.30 - * sunrpc/clnt_perr.c: Don't cast thread variables.
326.31 - * sunrpc/clnt_raw.c: Likewise.
326.32 - * sunrpc/clnt_simp.c: Likewise.
326.33 - * sunrpc/key_call.c: Likewise.
326.34 - * sunrpc/svcauth_des.c: Likewise.
326.35 - * sunrpc/svc.c: Likewise.
326.36 - * sunrpc/svc_raw.c: Likewise.
326.37 - * sunrpc/svc_simple.c: Likewise.
326.38 -
326.39 -Index: include/rpc/rpc.h
326.40 -===================================================================
326.41 -RCS file: /cvs/glibc/libc/include/rpc/rpc.h,v
326.42 -retrieving revision 1.8
326.43 -diff -u -p -a -r1.8 rpc.h
326.44 ---- glibc/include/rpc/rpc.h 5 Aug 2002 22:10:59 -0000 1.8
326.45 -+++ glibc/include/rpc/rpc.h 8 Feb 2004 14:19:14 -0000
326.46 -@@ -17,24 +17,24 @@ struct rpc_thread_variables {
326.47 - struct pollfd *svc_pollfd_s; /* Global, rpc_common.c */
326.48 - int svc_max_pollfd_s; /* Global, rpc_common.c */
326.49 -
326.50 -- void *clnt_perr_buf_s; /* clnt_perr.c */
326.51 -+ char *clnt_perr_buf_s; /* clnt_perr.c */
326.52 -
326.53 -- void *clntraw_private_s; /* clnt_raw.c */
326.54 -+ struct clntraw_private_s *clntraw_private_s; /* clnt_raw.c */
326.55 -
326.56 -- void *callrpc_private_s; /* clnt_simp.c */
326.57 -+ struct callrpc_private_s *callrpc_private_s; /* clnt_simp.c */
326.58 -
326.59 -- void *key_call_private_s; /* key_call.c */
326.60 -+ struct key_call_private *key_call_private_s; /* key_call.c */
326.61 -
326.62 -- void *authdes_cache_s; /* svcauth_des.c */
326.63 -- void *authdes_lru_s; /* svcauth_des.c */
326.64 -+ struct cache_entry *authdes_cache_s; /* svcauth_des.c */
326.65 -+ int *authdes_lru_s; /* svcauth_des.c */
326.66 -
326.67 -- void *svc_xports_s; /* svc.c */
326.68 -- void *svc_head_s; /* svc.c */
326.69 -+ SVCXPRT **svc_xports_s; /* svc.c */
326.70 -+ struct svc_callout *svc_head_s; /* svc.c */
326.71 -
326.72 -- void *svcraw_private_s; /* svc_raw.c */
326.73 -+ struct svcraw_private_s *svcraw_private_s; /* svc_raw.c */
326.74 -
326.75 -- void *svcsimple_proglst_s; /* svc_simple.c */
326.76 -- void *svcsimple_transp_s; /* svc_simple.c */
326.77 -+ struct proglst_ *svcsimple_proglst_s; /* svc_simple.c */
326.78 -+ SVCXPRT *svcsimple_transp_s; /* svc_simple.c */
326.79 - };
326.80 -
326.81 - extern struct rpc_thread_variables *__rpc_thread_variables(void)
326.82 -Index: sunrpc/clnt_perr.c
326.83 -===================================================================
326.84 -RCS file: /cvs/glibc/libc/sunrpc/clnt_perr.c,v
326.85 -retrieving revision 1.19
326.86 -diff -u -p -a -r1.19 clnt_perr.c
326.87 ---- glibc/sunrpc/clnt_perr.c 1 Nov 2002 20:43:54 -0000 1.19
326.88 -+++ glibc/sunrpc/clnt_perr.c 8 Feb 2004 14:19:14 -0000
326.89 -@@ -55,7 +55,7 @@ static char *auth_errmsg (enum auth_stat
326.90 - * buf variable in a few functions. Overriding a global variable
326.91 - * with a local variable of the same name is a bad idea, anyway.
326.92 - */
326.93 --#define buf ((char *)RPC_THREAD_VARIABLE(clnt_perr_buf_s))
326.94 -+#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
326.95 - #else
326.96 - static char *buf;
326.97 - #endif
326.98 -Index: sunrpc/clnt_raw.c
326.99 -===================================================================
326.100 -RCS file: /cvs/glibc/libc/sunrpc/clnt_raw.c,v
326.101 -retrieving revision 1.10
326.102 -diff -u -p -a -r1.10 clnt_raw.c
326.103 ---- glibc/sunrpc/clnt_raw.c 15 May 2002 00:21:00 -0000 1.10
326.104 -+++ glibc/sunrpc/clnt_raw.c 8 Feb 2004 14:19:14 -0000
326.105 -@@ -61,7 +61,7 @@ struct clntraw_private_s
326.106 - u_int mcnt;
326.107 - };
326.108 - #ifdef _RPC_THREAD_SAFE_
326.109 --#define clntraw_private ((struct clntraw_private_s *)RPC_THREAD_VARIABLE(clntraw_private_s))
326.110 -+#define clntraw_private RPC_THREAD_VARIABLE(clntraw_private_s)
326.111 - #else
326.112 - static struct clntraw_private_s *clntraw_private;
326.113 - #endif
326.114 -Index: sunrpc/clnt_simp.c
326.115 -===================================================================
326.116 -RCS file: /cvs/glibc/libc/sunrpc/clnt_simp.c,v
326.117 -retrieving revision 1.14
326.118 -diff -u -p -a -r1.14 clnt_simp.c
326.119 ---- glibc/sunrpc/clnt_simp.c 15 May 2002 00:21:00 -0000 1.14
326.120 -+++ glibc/sunrpc/clnt_simp.c 8 Feb 2004 14:19:14 -0000
326.121 -@@ -55,7 +55,7 @@ struct callrpc_private_s
326.122 - char *oldhost;
326.123 - };
326.124 - #ifdef _RPC_THREAD_SAFE_
326.125 --#define callrpc_private ((struct callrpc_private_s *)RPC_THREAD_VARIABLE(callrpc_private_s))
326.126 -+#define callrpc_private RPC_THREAD_VARIABLE(callrpc_private_s)
326.127 - #else
326.128 - static struct callrpc_private_s *callrpc_private;
326.129 - #endif
326.130 -Index: sunrpc/key_call.c
326.131 -===================================================================
326.132 -RCS file: /cvs/glibc/libc/sunrpc/key_call.c,v
326.133 -retrieving revision 1.16
326.134 -diff -u -p -a -r1.16 key_call.c
326.135 ---- glibc/sunrpc/key_call.c 6 Aug 2002 06:08:50 -0000 1.16
326.136 -+++ glibc/sunrpc/key_call.c 8 Feb 2004 14:19:14 -0000
326.137 -@@ -370,7 +370,7 @@ struct key_call_private {
326.138 - uid_t uid; /* user-id at last authorization */
326.139 - };
326.140 - #ifdef _RPC_THREAD_SAFE_
326.141 --#define key_call_private_main ((struct key_call_private *)RPC_THREAD_VARIABLE(key_call_private_s))
326.142 -+#define key_call_private_main RPC_THREAD_VARIABLE(key_call_private_s)
326.143 - #else
326.144 - static struct key_call_private *key_call_private_main;
326.145 - #endif
326.146 -Index: sunrpc/svc.c
326.147 -===================================================================
326.148 -RCS file: /cvs/glibc/libc/sunrpc/svc.c,v
326.149 -retrieving revision 1.17
326.150 -diff -u -p -a -r1.17 svc.c
326.151 ---- glibc/sunrpc/svc.c 29 Aug 2003 07:45:18 -0000 1.17
326.152 -+++ glibc/sunrpc/svc.c 8 Feb 2004 14:19:14 -0000
326.153 -@@ -44,7 +44,7 @@
326.154 - #include <sys/poll.h>
326.155 -
326.156 - #ifdef _RPC_THREAD_SAFE_
326.157 --#define xports ((SVCXPRT **)RPC_THREAD_VARIABLE(svc_xports_s))
326.158 -+#define xports RPC_THREAD_VARIABLE(svc_xports_s)
326.159 - #else
326.160 - static SVCXPRT **xports;
326.161 - #endif
326.162 -@@ -63,7 +63,7 @@ struct svc_callout {
326.163 - void (*sc_dispatch) (struct svc_req *, SVCXPRT *);
326.164 - };
326.165 - #ifdef _RPC_THREAD_SAFE_
326.166 --#define svc_head ((struct svc_callout *)RPC_THREAD_VARIABLE(svc_head_s))
326.167 -+#define svc_head RPC_THREAD_VARIABLE(svc_head_s)
326.168 - #else
326.169 - static struct svc_callout *svc_head;
326.170 - #endif
326.171 -Index: sunrpc/svc_raw.c
326.172 -===================================================================
326.173 -RCS file: /cvs/glibc/libc/sunrpc/svc_raw.c,v
326.174 -retrieving revision 1.5
326.175 -diff -u -p -a -r1.5 svc_raw.c
326.176 ---- glibc/sunrpc/svc_raw.c 26 Feb 2002 01:43:56 -0000 1.5
326.177 -+++ glibc/sunrpc/svc_raw.c 8 Feb 2004 14:19:14 -0000
326.178 -@@ -54,7 +54,7 @@ struct svcraw_private_s
326.179 - char verf_body[MAX_AUTH_BYTES];
326.180 - };
326.181 - #ifdef _RPC_THREAD_SAFE_
326.182 --#define svcraw_private ((struct svcraw_private_s *)RPC_THREAD_VARIABLE(svcraw_private_s))
326.183 -+#define svcraw_private RPC_THREAD_VARIABLE(svcraw_private_s)
326.184 - #else
326.185 - static struct svcraw_private_s *svcraw_private;
326.186 - #endif
326.187 -Index: sunrpc/svc_simple.c
326.188 -===================================================================
326.189 -RCS file: /cvs/glibc/libc/sunrpc/svc_simple.c,v
326.190 -retrieving revision 1.16
326.191 -diff -u -p -a -r1.16 svc_simple.c
326.192 ---- glibc/sunrpc/svc_simple.c 6 Aug 2002 05:10:30 -0000 1.16
326.193 -+++ glibc/sunrpc/svc_simple.c 8 Feb 2004 14:19:14 -0000
326.194 -@@ -61,7 +61,7 @@ struct proglst_
326.195 - struct proglst_ *p_nxt;
326.196 - };
326.197 - #ifdef _RPC_THREAD_SAFE_
326.198 --#define proglst ((struct proglst_ *)RPC_THREAD_VARIABLE(svcsimple_proglst_s))
326.199 -+#define proglst RPC_THREAD_VARIABLE(svcsimple_proglst_s)
326.200 - #else
326.201 - static struct proglst_ *proglst;
326.202 - #endif
326.203 -@@ -69,7 +69,7 @@ static struct proglst_ *proglst;
326.204 -
326.205 - static void universal (struct svc_req *rqstp, SVCXPRT *transp_s);
326.206 - #ifdef _RPC_THREAD_SAFE_
326.207 --#define transp ((SVCXPRT *)RPC_THREAD_VARIABLE(svcsimple_transp_s))
326.208 -+#define transp RPC_THREAD_VARIABLE(svcsimple_transp_s)
326.209 - #else
326.210 - static SVCXPRT *transp;
326.211 - #endif
326.212 -Index: sunrpc/svcauth_des.c
326.213 -===================================================================
326.214 -RCS file: /cvs/glibc/libc/sunrpc/svcauth_des.c,v
326.215 -retrieving revision 1.8
326.216 -diff -u -p -a -r1.8 svcauth_des.c
326.217 ---- glibc/sunrpc/svcauth_des.c 20 Aug 2001 06:37:09 -0000 1.8
326.218 -+++ glibc/sunrpc/svcauth_des.c 8 Feb 2004 14:19:14 -0000
326.219 -@@ -72,8 +72,8 @@ struct cache_entry
326.220 - char *localcred; /* generic local credential */
326.221 - };
326.222 - #ifdef _RPC_THREAD_SAFE_
326.223 --#define authdes_cache ((struct cache_entry *)RPC_THREAD_VARIABLE(authdes_cache_s))
326.224 --#define authdes_lru ((int *)RPC_THREAD_VARIABLE(authdes_lru_s))
326.225 -+#define authdes_cache RPC_THREAD_VARIABLE(authdes_cache_s)
326.226 -+#define authdes_lru RPC_THREAD_VARIABLE(authdes_lru_s)
326.227 - #else
326.228 - static struct cache_entry *authdes_cache;
326.229 - static int *authdes_lru;
326.230 -
326.231 ---
326.232 -Andreas Schwab, SuSE Labs, schwab@suse.de
326.233 -SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
326.234 -Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
326.235 -"And now for something completely different."
326.236 -
327.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-xdr.patch Tue Aug 14 19:32:22 2007 +0000
327.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
327.3 @@ -1,44 +0,0 @@
327.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/rpc/xdr.h.diff?r1=1.27&r2=1.28&cvsroot=glibc
327.5 -(but see also http://sources.redhat.com/ml/libc-alpha/2004-03/msg00267.html
327.6 -and http://gcc.gnu.org/ml/gcc-patches/2004-03/msg02056.html)
327.7 -
327.8 -Fixes errors
327.9 -
327.10 -rpc_cmsg.c: In function `xdr_callmsg':
327.11 -rpc_cmsg.c:70: error: invalid lvalue in increment
327.12 -rpc_cmsg.c:71: error: invalid lvalue in increment
327.13 -rpc_cmsg.c:74: error: invalid lvalue in increment
327.14 -rpc_cmsg.c:77: error: invalid lvalue in increment
327.15 -rpc_cmsg.c:78: error: invalid lvalue in increment
327.16 -rpc_cmsg.c:79: error: invalid lvalue in increment
327.17 -rpc_cmsg.c:81: error: invalid lvalue in increment
327.18 -rpc_cmsg.c:89: error: invalid lvalue in increment
327.19 -rpc_cmsg.c:106: error: invalid lvalue in increment
327.20 -rpc_cmsg.c:107: error: invalid lvalue in increment
327.21 -rpc_cmsg.c:112: error: invalid lvalue in increment
327.22 -rpc_cmsg.c:117: error: invalid lvalue in increment
327.23 -rpc_cmsg.c:118: error: invalid lvalue in increment
327.24 -rpc_cmsg.c:119: error: invalid lvalue in increment
327.25 -rpc_cmsg.c:121: error: invalid lvalue in increment
327.26 -rpc_cmsg.c:160: error: invalid lvalue in increment
327.27 -
327.28 -===================================================================
327.29 -RCS file: /cvs/glibc/libc/sunrpc/rpc/xdr.h,v
327.30 -retrieving revision 1.27
327.31 -retrieving revision 1.28
327.32 -diff -u -r1.27 -r1.28
327.33 ---- libc/sunrpc/rpc/xdr.h 2002/12/16 02:05:49 1.27
327.34 -+++ libc/sunrpc/rpc/xdr.h 2004/03/22 10:52:33 1.28
327.35 -@@ -262,10 +262,8 @@
327.36 - * and shouldn't be used any longer. Code which use this defines or longs
327.37 - * in the RPC code will not work on 64bit Solaris platforms !
327.38 - */
327.39 --#define IXDR_GET_LONG(buf) \
327.40 -- ((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
327.41 --#define IXDR_PUT_LONG(buf, v) \
327.42 -- (*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
327.43 -+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
327.44 -+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
327.45 - #define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
327.46 - #define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
327.47 -
328.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-alpha-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
328.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
328.3 @@ -1,54 +0,0 @@
328.4 -Fix for this error:
328.5 -
328.6 -crosstool-0.28-rc19/build/alpha-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc_pic.os(.text+0xd9b2c): In function `posix_fallocate64':
328.7 -: undefined reference to `__GI___pwrite64'
328.8 -collect2: ld returned 1 exit status
328.9 -make[1]: *** [crosstool-0.28-rc19/build/alpha-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc.so] Error 1
328.10 -make[1]: Leaving directory `crosstool-0.28-rc19/build/alpha-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2'
328.11 -make: *** [all] Error 2
328.12 -
328.13 -extracted from GLIBC CVS by Dan Kegel
328.14 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc'
328.15 -(to match context of...)
328.16 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
328.17 -and rediffed.
328.18 -
328.19 -cf.
328.20 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
328.21 -
328.22 -Originally thought we needed this hunk, too:
328.23 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
328.24 -but it seems the sysdep.h change is sufficient, and works better
328.25 -when compiling against linux-2.4.
328.26 -
328.27 -===================================================================
328.28 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h.old 2004-05-24 22:21:44.000000000 -0700
328.29 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h 2004-05-24 22:22:48.000000000 -0700
328.30 -@@ -1,4 +1,4 @@
328.31 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003
328.32 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003, 2004
328.33 - Free Software Foundation, Inc.
328.34 - This file is part of the GNU C Library.
328.35 - Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
328.36 -@@ -60,6 +60,21 @@
328.37 - #define __NR_osf_getsysinfo 256
328.38 - #define __NR_osf_setsysinfo 257
328.39 -
328.40 -+/* Help old kernel headers where particular syscalls are not available. */
328.41 -+#ifndef __NR_semtimedop
328.42 -+# define __NR_semtimedop 423
328.43 -+#endif
328.44 -+
328.45 -+/* This is a kludge to make syscalls.list find these under the names
328.46 -+ pread and pwrite, since some kernel headers define those names
328.47 -+ and some define the *64 names for the same system calls. */
328.48 -+#if !defined __NR_pread && defined __NR_pread64
328.49 -+# define __NR_pread __NR_pread64
328.50 -+#endif
328.51 -+#if !defined __NR_pwrite && defined __NR_pwrite64
328.52 -+# define __NR_pwrite __NR_pwrite64
328.53 -+#endif
328.54 -+
328.55 - /*
328.56 - * In order to get the hidden arguments for rt_sigaction set up
328.57 - * properly, we need to call the assembly version. Detect this in the
329.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-arm-fix-strlen.patch Tue Aug 14 19:32:22 2007 +0000
329.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
329.3 @@ -1,54 +0,0 @@
329.4 -See also
329.5 -http://lists.gnu.org/archive/html/bug-glibc/2002-12/msg00056.html
329.6 -http://lists.arm.linux.org.uk/pipermail/linux-arm-toolchain/2004-June/000016.html
329.7 -
329.8 -2002-12-12 Andreas Schwab <schwab@suse.de>
329.9 - * sysdeps/arm/strlen.S: Fix last word check for big endian.
329.10 -
329.11 -To: libc-alpha at sources dot redhat dot com
329.12 -Subject: [PATCH] REPOST: ARM big-endian strlen() fix
329.13 -References: <m3brjy27mo.fsf@defiant.pm.waw.pl>
329.14 -From: Krzysztof Halasa <khc at pm dot waw dot pl>
329.15 -Date: Thu, 10 Jun 2004 13:41:44 +0200
329.16 -Message-ID: <m3r7sn8wsn.fsf@defiant.pm.waw.pl>
329.17 -MIME-Version: 1.0
329.18 -Content-Type: multipart/mixed; boundary="=-=-="
329.19 -
329.20 ---=-=-=
329.21 -
329.22 -The attached patch fixes strlen() on big-endian ARM. Please apply.
329.23 -Thanks.
329.24 ---
329.25 -Krzysztof Halasa, B*FH
329.26 -
329.27 ---=-=-=
329.28 -Content-Type: text/x-patch
329.29 -Content-Disposition: inline; filename=glibc-strlen.patch
329.30 -
329.31 ---- glibc-2.3.3.old/sysdeps/arm/strlen.S 2003-04-30 00:47:20.000000000 +0200
329.32 -+++ glibc-2.3.3/sysdeps/arm/strlen.S 2004-06-06 03:21:48.351931240 +0200
329.33 -@@ -53,12 +53,21 @@
329.34 - ldrne r2, [r1], $4 @ and we continue to the next word
329.35 - bne Laligned @
329.36 - Llastword: @ drop through to here once we find a
329.37 -+#ifdef __ARMEB__
329.38 -+ tst r2, $0xff000000 @ word that has a zero byte in it
329.39 -+ addne r0, r0, $1 @
329.40 -+ tstne r2, $0x00ff0000 @ and add up to 3 bytes on to it
329.41 -+ addne r0, r0, $1 @
329.42 -+ tstne r2, $0x0000ff00 @ (if first three all non-zero, 4th
329.43 -+ addne r0, r0, $1 @ must be zero)
329.44 -+#else
329.45 - tst r2, $0x000000ff @ word that has a zero byte in it
329.46 - addne r0, r0, $1 @
329.47 - tstne r2, $0x0000ff00 @ and add up to 3 bytes on to it
329.48 - addne r0, r0, $1 @
329.49 - tstne r2, $0x00ff0000 @ (if first three all non-zero, 4th
329.50 - addne r0, r0, $1 @ must be zero)
329.51 -+#endif
329.52 - RETINSTR(mov,pc,lr)
329.53 - END(strlen)
329.54 - libc_hidden_builtin_def (strlen)
329.55 -
329.56 ---=-=-=--
329.57 -
330.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-cross-2.patch Tue Aug 14 19:32:22 2007 +0000
330.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
330.3 @@ -1,18 +0,0 @@
330.4 -When configuring canadian cross toolchain and you're unlucky enough to be
330.5 -using a build and host that are different, but that config.sub thinks mean the same thing,
330.6 -you might end up without BUILD_CC being defined as 'cc' or 'gcc',
330.7 -which might cause $CC to be used instead, which would be wrong...
330.8 -
330.9 -Dan Kegel
330.10 -
330.11 ---- glibc-2.3.2/configure.old 2004-05-26 19:46:43.000000000 -0700
330.12 -+++ glibc-2.3.2/configure 2004-05-26 19:52:47.000000000 -0700
330.13 -@@ -3323,7 +3323,7 @@
330.14 - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
330.15 - ac_compiler_gnu=$ac_cv_c_compiler_gnu
330.16 -
330.17 --if test $host != $build; then
330.18 -+if test "$cross_compiling" = yes; then
330.19 - for ac_prog in gcc cc
330.20 - do
330.21 - # Extract the first word of "$ac_prog", so it can be a program name with args.
331.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-cross.patch Tue Aug 14 19:32:22 2007 +0000
331.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
331.3 @@ -1,27 +0,0 @@
331.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/resolv/Makefile.diff?r1=1.41&r2=1.42&cvsroot=glibc
331.5 -
331.6 -Fixes
331.7 -/bin/sh: /crosstool-0.15/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/elf/ld.so.1: cannot execute binary file
331.8 -make[2]: *** [/crosstool-0.15/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/resolv/tst-leaks.out] Error 126
331.9 -
331.10 -2003-03-01 Andreas Schwab <schwab@suse.de>
331.11 -
331.12 - * resolv/Makefile (tests): Don't depend on
331.13 - $(objpfx)mtrace-tst-leaks when cross compiling.
331.14 -
331.15 -===================================================================
331.16 -RCS file: /cvs/glibc/libc/resolv/Makefile,v
331.17 -retrieving revision 1.41
331.18 -retrieving revision 1.42
331.19 -diff -u -r1.41 -r1.42
331.20 ---- libc/resolv/Makefile 2003/02/23 03:35:39 1.41
331.21 -+++ libc/resolv/Makefile 2003/03/01 22:15:00 1.42
331.22 -@@ -93,6 +93,8 @@
331.23 - tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace
331.24 - $(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out
331.25 - $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@
331.26 -+ifeq (no,$(cross-compiling))
331.27 - ifneq (no,$(PERL))
331.28 - tests: $(objpfx)mtrace-tst-leaks
331.29 - endif
331.30 -+endif
332.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-cygwin.patch Tue Aug 14 19:32:22 2007 +0000
332.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
332.3 @@ -1,90 +0,0 @@
332.4 -Fixes
332.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
332.6 -...
332.7 -when building glibc-2.3.2 on cygwin
332.8 -
332.9 -Idea from
332.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
332.11 -Basically, make glibc use .oST as suffix for 'object static'
332.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
332.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
332.14 -
332.15 -glibc-linuxthreads-2.3.2 also requires a patch, see
332.16 -../glibc-linuxthreads-2.3.2/glibc-linuxthreads-2.3.2-cygwin.patch
332.17 -
332.18 -
332.19 ---- glibc-2.3.2/Makeconfig.orig 2003-01-05 21:31:36.000000000 -0800
332.20 -+++ glibc-2.3.2/Makeconfig 2004-03-13 23:42:03.781250000 -0800
332.21 -@@ -433,13 +433,13 @@
332.22 - # run the linked programs.
332.23 - link-libc = -Wl,-rpath-link=$(rpath-link) \
332.24 - $(common-objpfx)libc.so$(libc.so-version) \
332.25 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
332.26 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
332.27 - # This is how to find at build-time things that will be installed there.
332.28 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
332.29 - else
332.30 - ifneq (,$(filter aix aix%,$(config-os)))
332.31 - link-libc = $(common-objpfx)libc.a \
332.32 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
332.33 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
332.34 - rpath-dirs = math dlfcn nss nis rt resolv crypt
332.35 - endif
332.36 - endif
332.37 -@@ -652,7 +652,7 @@
332.38 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
332.39 - # to pass different flags for each flavor.
332.40 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
332.41 --all-object-suffixes := .o .os .op .og .ob .oS
332.42 -+all-object-suffixes := .o .os .op .og .ob .oST
332.43 - object-suffixes :=
332.44 - CPPFLAGS-.o = $(pic-default)
332.45 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
332.46 -@@ -706,14 +706,14 @@
332.47 -
332.48 - ifeq (yes,$(build-shared))
332.49 - # Build special library that contains the static-only routines for libc.
332.50 --object-suffixes-for-libc += .oS
332.51 -+object-suffixes-for-libc += .oST
332.52 -
332.53 - # Must build the routines as PIC, though, because they can end up in (users')
332.54 - # shared objects. We don't want to use CFLAGS-os because users may, for
332.55 - # example, make that processor-specific.
332.56 --CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
332.57 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
332.58 --libtype.oS = lib%_nonshared.a
332.59 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
332.60 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
332.61 -+libtype.oST = lib%_nonshared.a
332.62 - endif
332.63 -
332.64 -
332.65 ---- glibc-2.3.2/Makerules.orig 2003-02-22 15:23:31.000000000 -0800
332.66 -+++ glibc-2.3.2/Makerules 2004-03-13 23:43:40.984375000 -0800
332.67 -@@ -446,7 +446,7 @@
332.68 - # Bounded pointer thunks are only built for *.ob
332.69 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
332.70 -
332.71 --elide-routines.oS += $(filter-out $(static-only-routines),\
332.72 -+elide-routines.oST += $(filter-out $(static-only-routines),\
332.73 - $(routines) $(aux) $(sysdep_routines)) \
332.74 - $(elide-bp-thunks)
332.75 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
332.76 -@@ -958,7 +958,7 @@
332.77 - install: $(inst_libdir)/libc.so
332.78 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
332.79 - $(common-objpfx)libc.so$(libc.so-version) \
332.80 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
332.81 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
332.82 - $(libprefix)$(libc-name)) \
332.83 - $(+force)
332.84 - (echo '/* GNU ld script';\
332.85 -@@ -966,7 +966,7 @@
332.86 - echo ' the static library, so try that secondarily. */';\
332.87 - cat $<; \
332.88 - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
332.89 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
332.90 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
332.91 - ')' \
332.92 - ) > $@.new
332.93 - mv -f $@.new $@
333.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-mips-user.patch Tue Aug 14 19:32:22 2007 +0000
333.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
333.3 @@ -1,588 +0,0 @@
333.4 -Retrieved from
333.5 -http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2003-04&msgid=orfzoof4j0.fsf%40free.redhat.lsd.ic.unicamp.br
333.6 -paths adjusted, and rediffed against glibc-2.3.2
333.7 -(i.e. to compensate for fact that
333.8 -http://sources.redhat.com/ml/glibc-cvs/2003-q1/msg01155.html
333.9 -is not present)
333.10 -
333.11 -Should fix
333.12 -
333.13 -In file included from ../sysdeps/unix/sysv/linux/mips/sys/procfs.h:29,
333.14 - from ../linuxthreads_db/proc_service.h:20,
333.15 - from ../linuxthreads_db/thread_dbP.h:7,
333.16 - from ../linuxthreads/descr.h:43,
333.17 - from ../linuxthreads/internals.h:29,
333.18 - from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
333.19 - from ../sysdeps/generic/ldsodefs.h:38,
333.20 - from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
333.21 - from ../sysdeps/mips/elf/ldsodefs.h:25,
333.22 - from ../sysdeps/unix/sysv/linux/init-first.c:30:
333.23 -../sysdeps/unix/sysv/linux/mips/sys/user.h:26:21: asm/reg.h: No such file or directory
333.24 -In file included from ../sysdeps/unix/sysv/linux/mips/sys/procfs.h:29,
333.25 - from ../linuxthreads_db/proc_service.h:20,
333.26 - from ../linuxthreads_db/thread_dbP.h:7,
333.27 - from ../linuxthreads/descr.h:43,
333.28 - from ../linuxthreads/internals.h:29,
333.29 - from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
333.30 - from ../sysdeps/generic/ldsodefs.h:38,
333.31 - from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
333.32 - from ../sysdeps/mips/elf/ldsodefs.h:25,
333.33 - from ../sysdeps/unix/sysv/linux/init-first.c:30:
333.34 -../sysdeps/unix/sysv/linux/mips/sys/user.h:30: error: `EF_SIZE' undeclared here (not in a function)
333.35 -make[2]: *** [mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/csu/init-first.o] Error 1
333.36 -make[2]: Leaving directory `mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/csu'
333.37 -make[1]: *** [csu/subdir_lib] Error 2
333.38 -make[1]: Leaving directory `mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2'
333.39 -make: *** [all] Error 2
333.40 -
333.41 -From libc-alpha-return-12105-listarch-libc-alpha=sources dot redhat dot com at sources dot redhat dot com Sat Apr 12 09:28:56 2003
333.42 -Return-Path: <libc-alpha-return-12105-listarch-libc-alpha=sources dot redhat dot com at sources dot redhat dot com>
333.43 -Delivered-To: listarch-libc-alpha at sources dot redhat dot com
333.44 -Received: (qmail 2802 invoked by alias); 12 Apr 2003 09:28:56 -0000
333.45 -Mailing-List: contact libc-alpha-help at sources dot redhat dot com; run by ezmlm
333.46 -Precedence: bulk
333.47 -List-Subscribe: <mailto:libc-alpha-subscribe at sources dot redhat dot com>
333.48 -List-Archive: <http://sources.redhat.com/ml/libc-alpha/>
333.49 -List-Post: <mailto:libc-alpha at sources dot redhat dot com>
333.50 -List-Help: <mailto:libc-alpha-help at sources dot redhat dot com>, <http://sources dot redhat dot com/ml/#faqs>
333.51 -Sender: libc-alpha-owner at sources dot redhat dot com
333.52 -Delivered-To: mailing list libc-alpha at sources dot redhat dot com
333.53 -Received: (qmail 2795 invoked from network); 12 Apr 2003 09:28:55 -0000
333.54 -Received: from unknown (HELO lacrosse.corp.redhat.com) (66.187.233.200)
333.55 - by sources dot redhat dot com with SMTP; 12 Apr 2003 09:28:55 -0000
333.56 -Received: from free.redhat.lsd.ic.unicamp.br (aoliva.cipe.redhat.com [10.0.1.10])
333.57 - by lacrosse dot corp dot redhat dot com (8 dot 11 dot 6/8 dot 9 dot 3) with ESMTP id h3C9SqV01131
333.58 - for <libc-alpha at sources dot redhat dot com>; Sat, 12 Apr 2003 05:28:52 -0400
333.59 -Received: from free.redhat.lsd.ic.unicamp.br (free.redhat.lsd.ic.unicamp.br [127.0.0.1])
333.60 - by free dot redhat dot lsd dot ic dot unicamp dot br (8 dot 12 dot 8/8 dot 12 dot 8) with ESMTP id h3C9SpVT028734
333.61 - for <libc-alpha at sources dot redhat dot com>; Sat, 12 Apr 2003 06:28:51 -0300
333.62 -Received: (from aoliva@localhost)
333.63 - by free dot redhat dot lsd dot ic dot unicamp dot br (8 dot 12 dot 8/8 dot 12 dot 8/Submit) id h3C9SpFb028730;
333.64 - Sat, 12 Apr 2003 06:28:51 -0300
333.65 -To: libc-alpha at sources dot redhat dot com
333.66 -Subject: signal-handling tweaks for mips/mips64
333.67 -From: Alexandre Oliva <aoliva at redhat dot com>
333.68 -Organization: GCC Team, Red Hat
333.69 -Date: 12 Apr 2003 06:28:51 -0300
333.70 -Message-ID: <orfzoof4j0.fsf@free.redhat.lsd.ic.unicamp.br>
333.71 -Lines: 49
333.72 -User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2
333.73 -MIME-Version: 1.0
333.74 -Content-Type: multipart/mixed; boundary="=-=-="
333.75 -
333.76 ---=-=-=
333.77 -
333.78 -It was reported to me that ucontext is utterly broken, even in o32
333.79 -with a stable 32-bit mips kernel. Indeed, it doesn't match the
333.80 -ucontext structure defined by the kernel at all. This means that
333.81 -programs taking real-time signals in o32 won't be able to extract
333.82 -correct information from the mcontext_t, since the kernel puts data in
333.83 -there that's in an entirely different format.
333.84 -
333.85 -I've looked for any ways in which the current data structures could
333.86 -possibly be useful, and didn't find any. gdb and rda thought they
333.87 -were using the register arrays, but it turned out they were using the
333.88 -arrays in procps instead. makecontext(), [sg]etcontext() et al aren't
333.89 -implemented on mips, so any uses thereof will just return ENOSYS,
333.90 -without messing with the given data structure. So, I believe it is
333.91 -not too late for us to fix it such that it matches the kernel data
333.92 -structures.
333.93 -
333.94 -While at that, I fixed a number of incompatibilities introduced by
333.95 -either differences between kernel headers that we used to include,
333.96 -whose contents are different depending on whether asm points to
333.97 -asm-mips or asm-mips64.
333.98 -
333.99 -With this patch, after some pending kernel patches are checked in, one
333.100 -will be able to obtain the correct information from signal handlers in
333.101 -all mips ABIs. With n64, this is already true. With o32, it works
333.102 -with the 32-bit mips kernel, but the mips64 kernel needs a patch to
333.103 -implement the proper sigcontext ABI. n32 still a patch to be
333.104 -developed for it to be possible for ucontext to be POSIX-compliant.
333.105 -Currently, the kernel uses the same ucontext for n32 and n64, but this
333.106 -doesn't work in n32 because uc_link must be a pointer and stack_t must
333.107 -contain a pointer and a size_t, whose sizes differ between n32 and
333.108 -n64. I believe Ralf is working on a patch for the kernel to generate
333.109 -n32-compliant ucontext when invoking signal handlers in n32 processes.
333.110 -The only uncertainty is whether uc_flags will be a 32- or 64-bit value
333.111 -in n32; I left it as the latter, just because I already had that in
333.112 -place; if it changes, a (simplifying) follow-up patch will be posted.
333.113 -However, I wanted to circulate the idea of fixing ucontext_t for o32
333.114 -as soon as possible, so I didn't wait for a decision on the exact n32
333.115 -ABI.
333.116 -
333.117 -Ok to install?
333.118 -
333.119 -
333.120 ---=-=-=
333.121 -Content-Type: text/x-patch
333.122 -Content-Disposition: inline; filename=mips-sigstuff.patch
333.123 -
333.124 -Index: ChangeLog
333.125 -from Alexandre Oliva <aoliva@redhat.com>
333.126 -
333.127 - * sysdeps/unix/sysv/linux/mips/profil-counter: New.
333.128 - * sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Port to n32/n64.
333.129 - * sysdeps/unix/sysv/linux/mips/bits/sigcontext.h: New.
333.130 - * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Port to n32/n64.
333.131 - (mcontext_t): Make it match the 32-bit mips kernel in o32.
333.132 - * sysdeps/unix/sysv/linux/mips/sys/user.h: Bring in constants from
333.133 - the mips and mips64 headers.
333.134 - (struct user): Port to n32/n64.
333.135 -
333.136 -Index: sysdeps/unix/sysv/linux/mips/profil-counter.h
333.137 -===================================================================
333.138 -RCS file: sysdeps/unix/sysv/linux/mips/profil-counter.h
333.139 -diff -N sysdeps/unix/sysv/linux/mips/profil-counter.h
333.140 ---- /dev/null 1 Jan 1970 00:00:00 -0000
333.141 -+++ libc/sysdeps/unix/sysv/linux/mips/profil-counter.h 12 Apr 2003 09:13:13 -0000
333.142 -@@ -0,0 +1,2 @@
333.143 -+/* We can use the ix86 version. */
333.144 -+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
333.145 -Index: sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
333.146 -===================================================================
333.147 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h,v
333.148 -retrieving revision 1.6
333.149 -diff -u -p -r1.6 sigcontextinfo.h
333.150 ---- libc/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h 6 Jul 2001 04:56:18 -0000 1.6
333.151 -+++ libc/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h 12 Apr 2003 09:13:13 -0000
333.152 -@@ -1,4 +1,4 @@
333.153 --/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
333.154 -+/* Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
333.155 - This file is part of the GNU C Library.
333.156 - Contributed by Andreas Jaeger <aj@suse.de>, 2000.
333.157 -
333.158 -@@ -18,6 +18,8 @@
333.159 - 02111-1307 USA. */
333.160 -
333.161 -
333.162 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
333.163 -+
333.164 - #define SIGCONTEXT unsigned long _code, struct sigcontext *
333.165 - #define SIGCONTEXT_EXTRA_ARGS _code,
333.166 - #define GET_PC(ctx) ((void *) ctx->sc_pc)
333.167 -@@ -25,3 +27,15 @@
333.168 - #define GET_STACK(ctx) ((void *) ctx->sc_regs[29])
333.169 - #define CALL_SIGHANDLER(handler, signo, ctx) \
333.170 - (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
333.171 -+
333.172 -+#else
333.173 -+
333.174 -+#define SIGCONTEXT unsigned long _code, ucontext_t *
333.175 -+#define SIGCONTEXT_EXTRA_ARGS _code,
333.176 -+#define GET_PC(ctx) ((void *) ctx->uc_mcontext.pc)
333.177 -+#define GET_FRAME(ctx) ((void *) ctx->uc_mcontext.gregs[30])
333.178 -+#define GET_STACK(ctx) ((void *) ctx->uc_mcontext.gregs[29])
333.179 -+#define CALL_SIGHANDLER(handler, signo, ctx) \
333.180 -+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
333.181 -+
333.182 -+#endif
333.183 -Index: sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
333.184 -===================================================================
333.185 -RCS file: sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
333.186 -diff -N sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
333.187 ---- /dev/null 1 Jan 1970 00:00:00 -0000
333.188 -+++ libc/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h 12 Apr 2003 09:13:13 -0000
333.189 -@@ -0,0 +1,103 @@
333.190 -+/* Copyright (C) 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
333.191 -+ This file is part of the GNU C Library.
333.192 -+
333.193 -+ The GNU C Library is free software; you can redistribute it and/or
333.194 -+ modify it under the terms of the GNU Lesser General Public
333.195 -+ License as published by the Free Software Foundation; either
333.196 -+ version 2.1 of the License, or (at your option) any later version.
333.197 -+
333.198 -+ The GNU C Library is distributed in the hope that it will be useful,
333.199 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
333.200 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
333.201 -+ Lesser General Public License for more details.
333.202 -+
333.203 -+ You should have received a copy of the GNU Lesser General Public
333.204 -+ License along with the GNU C Library; if not, write to the Free
333.205 -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
333.206 -+ 02111-1307 USA. */
333.207 -+
333.208 -+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
333.209 -+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
333.210 -+#endif
333.211 -+
333.212 -+#ifndef sigcontext_struct
333.213 -+/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
333.214 -+ we need sigcontext. */
333.215 -+# define sigcontext_struct sigcontext
333.216 -+
333.217 -+/* # include <asm/sigcontext.h> */
333.218 -+/* Instead of including the kernel header, that will vary depending on
333.219 -+ whether the 32- or the 64-bit kernel is installed, we paste the
333.220 -+ contents here. In case you're wondering about the different
333.221 -+ licenses, the fact that the file is pasted, instead of included,
333.222 -+ doesn't really make any difference for the program that includes
333.223 -+ this header. */
333.224 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
333.225 -+/*
333.226 -+ * This file is subject to the terms and conditions of the GNU General Public
333.227 -+ * License. See the file "COPYING" in the main directory of this archive
333.228 -+ * for more details.
333.229 -+ *
333.230 -+ * Copyright (C) 1996, 1997, 2000 by Ralf Baechle
333.231 -+ */
333.232 -+#ifndef _ASM_SIGCONTEXT_H
333.233 -+#define _ASM_SIGCONTEXT_H
333.234 -+
333.235 -+/*
333.236 -+ * Keep this struct definition in sync with the sigcontext fragment
333.237 -+ * in arch/mips/tools/offset.c
333.238 -+ */
333.239 -+struct sigcontext {
333.240 -+ unsigned int sc_regmask; /* Unused */
333.241 -+ unsigned int sc_status;
333.242 -+ unsigned long long sc_pc;
333.243 -+ unsigned long long sc_regs[32];
333.244 -+ unsigned long long sc_fpregs[32];
333.245 -+ unsigned int sc_ownedfp; /* Unused */
333.246 -+ unsigned int sc_fpc_csr;
333.247 -+ unsigned int sc_fpc_eir; /* Unused */
333.248 -+ unsigned int sc_used_math;
333.249 -+ unsigned int sc_ssflags; /* Unused */
333.250 -+ unsigned long long sc_mdhi;
333.251 -+ unsigned long long sc_mdlo;
333.252 -+
333.253 -+ unsigned int sc_cause; /* Unused */
333.254 -+ unsigned int sc_badvaddr; /* Unused */
333.255 -+
333.256 -+ unsigned long sc_sigset[4]; /* kernel's sigset_t */
333.257 -+};
333.258 -+
333.259 -+#endif /* _ASM_SIGCONTEXT_H */
333.260 -+#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */
333.261 -+/*
333.262 -+ * This file is subject to the terms and conditions of the GNU General Public
333.263 -+ * License. See the file "COPYING" in the main directory of this archive
333.264 -+ * for more details.
333.265 -+ *
333.266 -+ * Copyright (C) 1996, 1997, 1999 by Ralf Baechle
333.267 -+ * Copyright (C) 1999 Silicon Graphics, Inc.
333.268 -+ */
333.269 -+#ifndef _ASM_SIGCONTEXT_H
333.270 -+#define _ASM_SIGCONTEXT_H
333.271 -+
333.272 -+/*
333.273 -+ * Keep this struct definition in sync with the sigcontext fragment
333.274 -+ * in arch/mips/tools/offset.c
333.275 -+ */
333.276 -+struct sigcontext {
333.277 -+ unsigned long long sc_regs[32];
333.278 -+ unsigned long long sc_fpregs[32];
333.279 -+ unsigned long long sc_mdhi;
333.280 -+ unsigned long long sc_mdlo;
333.281 -+ unsigned long long sc_pc;
333.282 -+ unsigned int sc_status;
333.283 -+ unsigned int sc_fpc_csr;
333.284 -+ unsigned int sc_fpc_eir;
333.285 -+ unsigned int sc_used_math;
333.286 -+ unsigned int sc_cause;
333.287 -+ unsigned int sc_badvaddr;
333.288 -+};
333.289 -+
333.290 -+#endif /* _ASM_SIGCONTEXT_H */
333.291 -+#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
333.292 -+#endif
333.293 -[hunk deleted, see below]
333.294 -Index: sysdeps/unix/sysv/linux/mips/sys/user.h
333.295 -===================================================================
333.296 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/sys/user.h,v
333.297 -retrieving revision 1.1
333.298 -diff -u -p -r1.1 user.h
333.299 ---- libc/sysdeps/unix/sysv/linux/mips/sys/user.h 8 Feb 2002 16:21:00 -0000 1.1
333.300 -+++ libc/sysdeps/unix/sysv/linux/mips/sys/user.h 12 Apr 2003 09:13:13 -0000
333.301 -@@ -1,4 +1,4 @@
333.302 --/* Copyright (C) 2002 Free Software Foundation, Inc.
333.303 -+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
333.304 - This file is part of the GNU C Library.
333.305 -
333.306 - The GNU C Library is free software; you can redistribute it and/or
333.307 -@@ -23,7 +23,154 @@
333.308 - too much into it. Don't use it for anything other than GDB unless
333.309 - you know what you are doing. */
333.310 -
333.311 --#include <asm/reg.h>
333.312 -+/* #include <asm/reg.h> */
333.313 -+/* Instead of including the kernel header, that will vary depending on
333.314 -+ whether the 32- or the 64-bit kernel is installed, we paste its
333.315 -+ contents here. Note that the fact that the file is inline here,
333.316 -+ instead of included separately, doesn't change in any way the
333.317 -+ licensing status of a program that includes user.h. Since this is
333.318 -+ for gdb alone, and gdb is GPLed, no surprises here. */
333.319 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
333.320 -+/*
333.321 -+ * Various register offset definitions for debuggers, core file
333.322 -+ * examiners and whatnot.
333.323 -+ *
333.324 -+ * This file is subject to the terms and conditions of the GNU General Public
333.325 -+ * License. See the file "COPYING" in the main directory of this archive
333.326 -+ * for more details.
333.327 -+ *
333.328 -+ * Copyright (C) 1995, 1999 by Ralf Baechle
333.329 -+ */
333.330 -+#ifndef __ASM_MIPS_REG_H
333.331 -+#define __ASM_MIPS_REG_H
333.332 -+
333.333 -+/*
333.334 -+ * This defines/structures correspond to the register layout on stack -
333.335 -+ * if the order here is changed, it needs to be updated in
333.336 -+ * include/asm-mips/stackframe.h
333.337 -+ */
333.338 -+#define EF_REG0 6
333.339 -+#define EF_REG1 7
333.340 -+#define EF_REG2 8
333.341 -+#define EF_REG3 9
333.342 -+#define EF_REG4 10
333.343 -+#define EF_REG5 11
333.344 -+#define EF_REG6 12
333.345 -+#define EF_REG7 13
333.346 -+#define EF_REG8 14
333.347 -+#define EF_REG9 15
333.348 -+#define EF_REG10 16
333.349 -+#define EF_REG11 17
333.350 -+#define EF_REG12 18
333.351 -+#define EF_REG13 19
333.352 -+#define EF_REG14 20
333.353 -+#define EF_REG15 21
333.354 -+#define EF_REG16 22
333.355 -+#define EF_REG17 23
333.356 -+#define EF_REG18 24
333.357 -+#define EF_REG19 25
333.358 -+#define EF_REG20 26
333.359 -+#define EF_REG21 27
333.360 -+#define EF_REG22 28
333.361 -+#define EF_REG23 29
333.362 -+#define EF_REG24 30
333.363 -+#define EF_REG25 31
333.364 -+/*
333.365 -+ * k0/k1 unsaved
333.366 -+ */
333.367 -+#define EF_REG28 34
333.368 -+#define EF_REG29 35
333.369 -+#define EF_REG30 36
333.370 -+#define EF_REG31 37
333.371 -+
333.372 -+/*
333.373 -+ * Saved special registers
333.374 -+ */
333.375 -+#define EF_LO 38
333.376 -+#define EF_HI 39
333.377 -+
333.378 -+#define EF_CP0_EPC 40
333.379 -+#define EF_CP0_BADVADDR 41
333.380 -+#define EF_CP0_STATUS 42
333.381 -+#define EF_CP0_CAUSE 43
333.382 -+
333.383 -+#define EF_SIZE 180 /* size in bytes */
333.384 -+
333.385 -+#endif /* __ASM_MIPS_REG_H */
333.386 -+
333.387 -+#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */
333.388 -+
333.389 -+/*
333.390 -+ * Various register offset definitions for debuggers, core file
333.391 -+ * examiners and whatnot.
333.392 -+ *
333.393 -+ * This file is subject to the terms and conditions of the GNU General Public
333.394 -+ * License. See the file "COPYING" in the main directory of this archive
333.395 -+ * for more details.
333.396 -+ *
333.397 -+ * Copyright (C) 1995, 1999 Ralf Baechle
333.398 -+ * Copyright (C) 1995, 1999 Silicon Graphics
333.399 -+ */
333.400 -+#ifndef _ASM_REG_H
333.401 -+#define _ASM_REG_H
333.402 -+
333.403 -+/*
333.404 -+ * This defines/structures correspond to the register layout on stack -
333.405 -+ * if the order here is changed, it needs to be updated in
333.406 -+ * include/asm-mips/stackframe.h
333.407 -+ */
333.408 -+#define EF_REG0 0
333.409 -+#define EF_REG1 1
333.410 -+#define EF_REG2 2
333.411 -+#define EF_REG3 3
333.412 -+#define EF_REG4 4
333.413 -+#define EF_REG5 5
333.414 -+#define EF_REG6 6
333.415 -+#define EF_REG7 7
333.416 -+#define EF_REG8 8
333.417 -+#define EF_REG9 9
333.418 -+#define EF_REG10 10
333.419 -+#define EF_REG11 11
333.420 -+#define EF_REG12 12
333.421 -+#define EF_REG13 13
333.422 -+#define EF_REG14 14
333.423 -+#define EF_REG15 15
333.424 -+#define EF_REG16 16
333.425 -+#define EF_REG17 17
333.426 -+#define EF_REG18 18
333.427 -+#define EF_REG19 19
333.428 -+#define EF_REG20 20
333.429 -+#define EF_REG21 21
333.430 -+#define EF_REG22 22
333.431 -+#define EF_REG23 23
333.432 -+#define EF_REG24 24
333.433 -+#define EF_REG25 25
333.434 -+/*
333.435 -+ * k0/k1 unsaved
333.436 -+ */
333.437 -+#define EF_REG28 28
333.438 -+#define EF_REG29 29
333.439 -+#define EF_REG30 30
333.440 -+#define EF_REG31 31
333.441 -+
333.442 -+/*
333.443 -+ * Saved special registers
333.444 -+ */
333.445 -+#define EF_LO 32
333.446 -+#define EF_HI 33
333.447 -+
333.448 -+#define EF_CP0_EPC 34
333.449 -+#define EF_CP0_BADVADDR 35
333.450 -+#define EF_CP0_STATUS 36
333.451 -+#define EF_CP0_CAUSE 37
333.452 -+
333.453 -+#define EF_SIZE 304 /* size in bytes */
333.454 -+
333.455 -+#endif /* _ASM_REG_H */
333.456 -+
333.457 -+#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
333.458 -+
333.459 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
333.460 -
333.461 - struct user
333.462 - {
333.463 -@@ -39,6 +186,24 @@ struct user
333.464 - unsigned long magic; /* identifies a core file */
333.465 - char u_comm[32]; /* user command name */
333.466 - };
333.467 -+
333.468 -+#else
333.469 -+
333.470 -+struct user {
333.471 -+ __extension__ unsigned long regs[EF_SIZE/8+64]; /* integer and fp regs */
333.472 -+ __extension__ unsigned long u_tsize; /* text size (pages) */
333.473 -+ __extension__ unsigned long u_dsize; /* data size (pages) */
333.474 -+ __extension__ unsigned long u_ssize; /* stack size (pages) */
333.475 -+ __extension__ unsigned long long start_code; /* text starting address */
333.476 -+ __extension__ unsigned long long start_data; /* data starting address */
333.477 -+ __extension__ unsigned long long start_stack; /* stack starting address */
333.478 -+ __extension__ long long signal; /* signal causing core dump */
333.479 -+ __extension__ unsigned long long u_ar0; /* help gdb find registers */
333.480 -+ __extension__ unsigned long long magic; /* identifies a core file */
333.481 -+ char u_comm[32]; /* user command name */
333.482 -+};
333.483 -+
333.484 -+#endif
333.485 -
333.486 - #define PAGE_SHIFT 12
333.487 - #define PAGE_SIZE (1UL << PAGE_SHIFT)
333.488 -
333.489 ---=-=-=
333.490 -
333.491 -
333.492 ---
333.493 -Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
333.494 -Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
333.495 -CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
333.496 -Free Software Evangelist Professional serial bug killer
333.497 -
333.498 ---=-=-=--
333.499 -
333.500 -And the rediffed hunk:
333.501 -
333.502 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/mips/sys/ucontext.h.old 2004-05-30 07:23:32.000000000 -0700
333.503 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/sys/ucontext.h 2004-05-30 07:22:56.000000000 -0700
333.504 -@@ -29,43 +29,72 @@
333.505 - #include <bits/sigcontext.h>
333.506 -
333.507 -
333.508 --/* Type for general register. */
333.509 --typedef unsigned long int greg_t;
333.510 -+/* Type for general register. Even in o32 we assume 64-bit registers,
333.511 -+ like the kernel. */
333.512 -+__extension__ typedef unsigned long long int greg_t;
333.513 -
333.514 - /* Number of general registers. */
333.515 --#define NGREG 37
333.516 --#define NFPREG 33
333.517 -+#define NGREG 32
333.518 -+#define NFPREG 32
333.519 -
333.520 - /* Container for all general registers. */
333.521 --/* gregset_t must be an array. The below declared array corresponds to:
333.522 --typedef struct gregset {
333.523 -- greg_t g_regs[32];
333.524 -- greg_t g_hi;
333.525 -- greg_t g_lo;
333.526 -- greg_t g_pad[3];
333.527 --} gregset_t; */
333.528 - typedef greg_t gregset_t[NGREG];
333.529 -
333.530 - /* Container for all FPU registers. */
333.531 - typedef struct fpregset {
333.532 - union {
333.533 -- double fp_dregs[32];
333.534 -+ double fp_dregs[NFPREG];
333.535 - struct {
333.536 - float _fp_fregs;
333.537 - unsigned int _fp_pad;
333.538 -- } fp_fregs[32];
333.539 -+ } fp_fregs[NFPREG];
333.540 - } fp_r;
333.541 -- unsigned int fp_csr;
333.542 -- unsigned int fp_pad;
333.543 - } fpregset_t;
333.544 -
333.545 -
333.546 - /* Context to describe whole processor state. */
333.547 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
333.548 -+/* Earlier versions of glibc for mips had an entirely different
333.549 -+ definition of mcontext_t, that didn't even resemble the
333.550 -+ corresponding kernel data structure. Since all legitimate uses of
333.551 -+ ucontext_t in glibc mustn't have accessed anything beyond
333.552 -+ uc_mcontext and, even then, taking a pointer to it, casting it to
333.553 -+ sigcontext_t, and accessing it as such, which is what it has always
333.554 -+ been, this can still be rectified. Fortunately, makecontext,
333.555 -+ [gs]etcontext et all have never been implemented. */
333.556 - typedef struct
333.557 - {
333.558 -+ unsigned int regmask;
333.559 -+ unsigned int status;
333.560 -+ greg_t pc;
333.561 - gregset_t gregs;
333.562 - fpregset_t fpregs;
333.563 -+ unsigned int fp_owned;
333.564 -+ unsigned int fpc_csr;
333.565 -+ unsigned int fpc_eir;
333.566 -+ unsigned int used_math;
333.567 -+ unsigned int ssflags;
333.568 -+ greg_t mdhi;
333.569 -+ greg_t mdlo;
333.570 -+ unsigned int cause;
333.571 -+ unsigned int badvaddr;
333.572 - } mcontext_t;
333.573 -+#else
333.574 -+typedef struct
333.575 -+ {
333.576 -+ gregset_t gregs;
333.577 -+ fpregset_t fpregs;
333.578 -+ greg_t mdhi;
333.579 -+ greg_t mdlo;
333.580 -+ greg_t pc;
333.581 -+ unsigned int status;
333.582 -+ unsigned int fpc_csr;
333.583 -+ unsigned int fpc_eir;
333.584 -+ unsigned int used_math;
333.585 -+ unsigned int cause;
333.586 -+ unsigned int badvaddr;
333.587 -+ } mcontext_t;
333.588 -+#endif
333.589 -
333.590 - /* Userlevel context. */
333.591 - typedef struct ucontext
334.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-mips.patch Tue Aug 14 19:32:22 2007 +0000
334.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
334.3 @@ -1,60 +0,0 @@
334.4 -From Bill Gatliff, who said:
334.5 -"Attached is a glibc-2.3.2 patchfile I use for MIPS. Versions prior to and including glibc-2.3.2 won't build without it."
334.6 -
334.7 -diff -bBurN glibc-2.3.2.orig/elf/dl-conflict.c glibc-2.3.2/elf/dl-conflict.c
334.8 ---- glibc-2.3.2.orig/elf/dl-conflict.c 2003-06-12 21:07:54.000000000 -0500
334.9 -+++ glibc-2.3.2/elf/dl-conflict.c 2003-06-12 21:09:12.000000000 -0500
334.10 -@@ -33,6 +33,7 @@
334.11 - _dl_resolve_conflicts (struct link_map *l, ElfW(Rela) *conflict,
334.12 - ElfW(Rela) *conflictend)
334.13 - {
334.14 -+#ifndef _DL_HAVE_NO_ELF_MACHINE_RELA
334.15 - if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_RELOC, 0))
334.16 - _dl_printf ("\nconflict processing: %s\n",
334.17 - l->l_name[0] ? l->l_name : rtld_progname);
334.18 -@@ -64,4 +65,5 @@
334.19 - for (; conflict < conflictend; ++conflict)
334.20 - elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset);
334.21 - }
334.22 -+#endif
334.23 - }
334.24 -diff -bBurN glibc-2.3.2.orig/sysdeps/mips/dl-machine.h glibc-2.3.2/sysdeps/mips/dl-machine.h
334.25 ---- glibc-2.3.2.orig/sysdeps/mips/dl-machine.h 2003-06-12 21:07:49.000000000 -0500
334.26 -+++ glibc-2.3.2/sysdeps/mips/dl-machine.h 2003-06-12 21:11:10.000000000 -0500
334.27 -@@ -56,6 +56,10 @@
334.28 - #define ELF_MACHINE_JMP_SLOT R_MIPS_REL32
334.29 - #define elf_machine_type_class(type) ELF_RTYPE_CLASS_PLT
334.30 -
334.31 -+/* MIPS doesn't support RELA; see:
334.32 -+ http://lists.debian.org/debian-mips/2002/debian-mips-200209/msg00020.html */
334.33 -+#define _DL_HAVE_NO_ELF_MACHINE_RELA
334.34 -+
334.35 - /* Translate a processor specific dynamic tag to the index
334.36 - in l_info array. */
334.37 - #define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM)
334.38 -diff -bBurN glibc-2.3.2.orig/sysdeps/mips/Makefile glibc-2.3.2/sysdeps/mips/Makefile
334.39 ---- glibc-2.3.2.orig/sysdeps/mips/Makefile 2003-06-12 21:07:48.000000000 -0500
334.40 -+++ glibc-2.3.2/sysdeps/mips/Makefile 2003-06-12 21:10:14.000000000 -0500
334.41 -@@ -6,3 +6,11 @@
334.42 - ifeq ($(subdir),setjmp)
334.43 - sysdep_routines += setjmp_aux
334.44 - endif
334.45 -+
334.46 -+ifeq ($(subdir),csu)
334.47 -+ifeq (yes,$(build-shared))
334.48 -+# Compatibility
334.49 -+sysdep_routines += divdi3
334.50 -+shared-only-routines += divdi3
334.51 -+endif
334.52 -+endif
334.53 -diff -bBurN glibc-2.3.2.orig/sysdeps/unix/sysv/linux/mips/syscalls.list glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list
334.54 ---- glibc-2.3.2.orig/sysdeps/unix/sysv/linux/mips/syscalls.list 2003-06-12 21:07:53.000000000 -0500
334.55 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list 2003-06-12 21:12:30.000000000 -0500
334.56 -@@ -41,6 +41,7 @@
334.57 - sys_mknod xmknod mknod i:sii __syscall_mknod
334.58 -
334.59 - # System calls with wrappers.
334.60 -+s_readahead EXTRA readahead i:iipi __syscall_readahead
334.61 - rt_sigaction - rt_sigaction i:ippi __syscall_rt_sigaction
334.62 - rt_sigpending - rt_sigpending i:pi __syscall_rt_sigpending
334.63 - rt_sigprocmask - rt_sigprocmask i:ippi __syscall_rt_sigprocmask
335.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-override.patch Tue Aug 14 19:32:22 2007 +0000
335.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
335.3 @@ -1,38 +0,0 @@
335.4 -The error
335.5 -
335.6 -make[2]: *** [.../gcc-3.3.3-glibc-2.1.3/i686-unknown-linux-gnu/share/zoneinfo/Africa/Algiers] Segmentation fault
335.7 -make[2]: Leaving directory `.../gcc-3.3.3-glibc-2.1.3/glibc-2.1.3/timezone'
335.8 -make[1]: *** [timezone/subdir_install] Error 2
335.9 -
335.10 -is caused by glibc trying to run something it just compiled.
335.11 -A crude workaround for this was posted at
335.12 -http://lists.scratchbox.org/pipermail/scratchbox-users/2004-February/000018.html
335.13 -but the following patch lets you optionally override these programs at
335.14 -make time by setting Make variables
335.15 - localedef_FOR_BUILD rpcgen_FOR_BUILD zic_FOR_BUILD
335.16 -and maybe a few others to point to versions of those programs
335.17 -that can run on the build machine.
335.18 -Thanks to http://groups.google.com/groups?selm=9012160052.AA23106%40kaos.ksr.com
335.19 -for pointing out the idiom for inline $(ifdef ...) in GNU Make.
335.20 -
335.21 -Dan Kegel 2004-05-17
335.22 -[rediffed for glibc-2.3.2]
335.23 -[typos corrected - those are make variables, not environment variables,
335.24 - and it's $(built-program-override-name), not $(build-program-override-name)]
335.25 -
335.26 ---- glibc-2.3.2/Makeconfig.old 2004-05-17 13:53:46.000000000 -0700
335.27 -+++ glibc-2.3.2/Makeconfig 2004-05-17 14:09:59.000000000 -0700
335.28 -@@ -534,9 +534,12 @@
335.29 - run-program-prefix =
335.30 - endif
335.31 - # Never use $(run-program-prefix) for the statically-linked %-bp test programs
335.32 --built-program-cmd = $(patsubst %,$(run-program-prefix),\
335.33 -+built-program-real = $(patsubst %,$(run-program-prefix),\
335.34 - $(filter-out %-bp,$(built-program-file))) \
335.35 - $(built-program-file)
335.36 -+# If user set foo_FOR_BUILD, use that instead of actually running the program we just linked.
335.37 -+built-program-override-name = $(notdir $(word 2,$^))_FOR_BUILD
335.38 -+built-program-cmd = $(if $(findstring undefined,$(origin $(built-program-override-name))),$(built-program-real),$($(built-program-override-name)))
335.39 -
335.40 - ifndef LD
335.41 - LD := ld -X
336.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-powerpc-as.patch Tue Aug 14 19:32:22 2007 +0000
336.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
336.3 @@ -1,58 +0,0 @@
336.4 -Retrieved from
336.5 - http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/powerpc32/Makefile.diff?r1=1.4&r2=1.5&cvsroot=glibc
336.6 - http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/powerpc64/Makefile.diff?r1=1.2&r2=1.3&cvsroot=glibc
336.7 -Fixes
336.8 - /tmp/ccEVhqgD.s:279: Error: Unrecognized opcode: `stvx'
336.9 - /tmp/ccEVhqgD.s:288: Error: Unrecognized opcode: `lvx'
336.10 - make[2]: *** [powerpc-7450-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/dlfcn/eval.os] Error 1
336.11 - make[2]: Leaving directory `powerpc-7450-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/dlfcn'
336.12 - make[1]: *** [dlfcn/others] Error 2
336.13 - make[1]: Leaving directory `powerpc-7450-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2'
336.14 - make: *** [all] Error 2
336.15 -
336.16 -
336.17 -Revision 1.5 Wed Oct 22 21:30:02 2003 UTC (7 months, 1 week ago) by roland
336.18 -Branch: MAIN
336.19 -CVS Tags: HEAD
336.20 -Changes since 1.4: +0 -3 lines
336.21 -Diff to previous 1.4 (colored)
336.22 -
336.23 -2003-10-22 Steven Munroe <sjmunroe@us.ibm.com>
336.24 -
336.25 - * sysdeps/powerpc/powerpc32/Makefile (+cflags, asm-CPPFLAGS): Don't
336.26 - append options to these.
336.27 - * sysdeps/powerpc/powerpc64/Makefile (+cflags, asm-CPPFLAGS): Likewise.
336.28 -
336.29 -===================================================================
336.30 -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc32/Makefile,v
336.31 -retrieving revision 1.4
336.32 -retrieving revision 1.5
336.33 -diff -u -r1.4 -r1.5
336.34 ---- libc/sysdeps/powerpc/powerpc32/Makefile 2003/01/27 21:02:01 1.4
336.35 -+++ libc/sysdeps/powerpc/powerpc32/Makefile 2003/10/22 21:30:02 1.5
336.36 -@@ -1,8 +1,5 @@
336.37 - # Powerpc32 specific build options.
336.38 -
336.39 --+cflags += -Wa,-mppc -mpowerpc
336.40 --asm-CPPFLAGS += -Wa,-mppc
336.41 --
336.42 - ifeq ($(with-fp),no)
336.43 - +cflags += -msoft-float
336.44 - sysdep-LDFLAGS += -msoft-float
336.45 -===================================================================
336.46 -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/Makefile,v
336.47 -retrieving revision 1.2
336.48 -retrieving revision 1.3
336.49 -diff -u -r1.2 -r1.3
336.50 ---- libc/sysdeps/powerpc/powerpc64/Makefile 2002/09/27 19:44:16 1.2
336.51 -+++ libc/sysdeps/powerpc/powerpc64/Makefile 2003/10/22 21:30:03 1.3
336.52 -@@ -1,9 +1,6 @@
336.53 - # Powerpc64 specific build options.
336.54 - # this is ./sysdeps/powerpc/powerpc64/Makefile
336.55 -
336.56 --+cflags += -Wa,-mppc64 -mpowerpc64
336.57 --asm-CPPFLAGS += -Wa,-mppc64
336.58 --
336.59 - # Each TOC entry takes 8 bytes and the TOC holds up to 2^16 bytes,
336.60 - # or 8192 entries.
336.61 - # If -fpic is not specified, the latest gcc-3.2.1 now generates
337.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-pr139-fix.patch Tue Aug 14 19:32:22 2007 +0000
337.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
337.3 @@ -1,104 +0,0 @@
337.4 -2004-04-29 Jakub Jelinek <jakub@redhat.com>
337.5 -
337.6 - * sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c (_Qp_qtoi): Use %f31
337.7 - for single precision register, add it to __asm clobbers [BZ #139].
337.8 - * sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c (_Qp_qtoui): Use %f31
337.9 - for single precision register, add it to __asm clobbers.
337.10 - * sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c (_Qp_qtoux): Use fqtox
337.11 - instead of fqtoi in QP_HANDLE_EXCEPTIONS.
337.12 - * sysdeps/sparc/sparc64/soft-fp/qp_qtox.c (_Qp_qtox): Likewise.
337.13 - Reported by M. H. VanLeeuwen <vanl@megsinet.net>.
337.14 -
337.15 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=139
337.16 -Fixes error
337.17 -qp_qtoi.s:261: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
337.18 -plus a couple other things vanl noticed.
337.19 -
337.20 -diff -ur orig/qp_qtoi.c new/qp_qtoi.c
337.21 ---- orig/qp_qtoi.c Sat May 1 00:40:06 2004
337.22 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c Sat May 1 00:39:40 2004
337.23 -@@ -1,6 +1,6 @@
337.24 - /* Software floating-point emulation.
337.25 - Return (int)(*a)
337.26 -- Copyright (C) 1997,1999 Free Software Foundation, Inc.
337.27 -+ Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
337.28 - This file is part of the GNU C Library.
337.29 - Contributed by Richard Henderson (rth@cygnus.com) and
337.30 - Jakub Jelinek (jj@ultra.linux.cz).
337.31 -@@ -38,9 +38,9 @@
337.32 - __asm (
337.33 - " ldd [%1], %%f52\n"
337.34 - " ldd [%1+8], %%f54\n"
337.35 --" fqtoi %%f52, %%f60\n"
337.36 --" st %%f60, [%0]\n"
337.37 --" " : : "r" (&rx), "r" (a) : QP_CLOBBER);
337.38 -+" fqtoi %%f52, %%f31\n"
337.39 -+" st %%f31, [%0]\n"
337.40 -+" " : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
337.41 - r = rx);
337.42 -
337.43 - return r;
337.44 -diff -ur orig/qp_qtoui.c new/qp_qtoui.c
337.45 ---- orig/qp_qtoui.c Sat May 1 00:40:06 2004
337.46 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c Sat May 1 00:39:40 2004
337.47 -@@ -1,6 +1,6 @@
337.48 - /* Software floating-point emulation.
337.49 - Return (unsigned int)(*a)
337.50 -- Copyright (C) 1997,1999 Free Software Foundation, Inc.
337.51 -+ Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
337.52 - This file is part of the GNU C Library.
337.53 - Contributed by Richard Henderson (rth@cygnus.com) and
337.54 - Jakub Jelinek (jj@ultra.linux.cz).
337.55 -@@ -38,9 +38,9 @@
337.56 - __asm (
337.57 - " ldd [%1], %%f52\n"
337.58 - " ldd [%1+8], %%f54\n"
337.59 --" fqtoi %%f52, %%f60\n"
337.60 --" st %%f60, [%0]\n"
337.61 --" " : : "r" (&rx), "r" (a) : QP_CLOBBER);
337.62 -+" fqtoi %%f52, %%f31\n"
337.63 -+" st %%f31, [%0]\n"
337.64 -+" " : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
337.65 - r = rx);
337.66 -
337.67 - return r;
337.68 -diff -ur orig/qp_qtoux.c new/qp_qtoux.c
337.69 ---- orig/qp_qtoux.c Sat May 1 00:40:06 2004
337.70 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c Sat May 1 00:39:40 2004
337.71 -@@ -1,6 +1,6 @@
337.72 - /* Software floating-point emulation.
337.73 - Return (unsigned long)(*a)
337.74 -- Copyright (C) 1997,1999 Free Software Foundation, Inc.
337.75 -+ Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
337.76 - This file is part of the GNU C Library.
337.77 - Contributed by Richard Henderson (rth@cygnus.com) and
337.78 - Jakub Jelinek (jj@ultra.linux.cz).
337.79 -@@ -38,7 +38,7 @@
337.80 - __asm (
337.81 - " ldd [%1], %%f52\n"
337.82 - " ldd [%1+8], %%f54\n"
337.83 --" fqtoi %%f52, %%f60\n"
337.84 -+" fqtox %%f52, %%f60\n"
337.85 - " std %%f60, [%0]\n"
337.86 - " " : : "r" (&rx), "r" (a) : QP_CLOBBER);
337.87 - r = rx);
337.88 -diff -ur orig/qp_qtox.c new/qp_qtox.c
337.89 ---- orig/qp_qtox.c Sat May 1 00:40:06 2004
337.90 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtox.c Sat May 1 00:39:40 2004
337.91 -@@ -1,6 +1,6 @@
337.92 - /* Software floating-point emulation.
337.93 - Return (long)(*a)
337.94 -- Copyright (C) 1997,1999 Free Software Foundation, Inc.
337.95 -+ Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
337.96 - This file is part of the GNU C Library.
337.97 - Contributed by Richard Henderson (rth@cygnus.com) and
337.98 - Jakub Jelinek (jj@ultra.linux.cz).
337.99 -@@ -38,7 +38,7 @@
337.100 - __asm (
337.101 - " ldd [%1], %%f52\n"
337.102 - " ldd [%1+8], %%f54\n"
337.103 --" fqtoi %%f52, %%f60\n"
337.104 -+" fqtox %%f52, %%f60\n"
337.105 - " std %%f60, [%0]\n"
337.106 - " " : : "r" (&rx), "r" (a) : QP_CLOBBER);
337.107 - r = rx);
338.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sh4-socket.patch Tue Aug 14 19:32:22 2007 +0000
338.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
338.3 @@ -1,39 +0,0 @@
338.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sh/socket.S.diff?r1=1.5&r2=1.6&cvsroot=glibc
338.5 -
338.6 -Ankur Sheth said:
338.7 -"The problem that I ran into was that multi-threaded apps would crash with a
338.8 -seg fault when they invoked some of the socket calls (sendto() in my case.
338.9 -This happened only on the sh4. Turns out that a certain register (PR) was
338.10 -not being saved and restored properly before and after invoking the system
338.11 -call. This patch fixes it. It applies cleanly on glibc 2.3.2.
338.12 -[Thanks to Kaz for helping us find this.]"
338.13 -
338.14 -===================================================================
338.15 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sh/socket.S,v
338.16 -retrieving revision 1.5
338.17 -retrieving revision 1.6
338.18 -diff -u -r1.5 -r1.6
338.19 ---- libc/sysdeps/unix/sysv/linux/sh/socket.S 2003/01/05 11:07:44 1.5
338.20 -+++ libc/sysdeps/unix/sysv/linux/sh/socket.S 2003/07/12 01:25:53 1.6
338.21 -@@ -94,7 +94,9 @@
338.22 - #if defined NEED_CANCELLATION && defined CENABLE
338.23 - .Lsocket_cancel:
338.24 - /* Enable asynchronous cancellation. */
338.25 -+ sts.l pr,@-r15
338.26 - CENABLE
338.27 -+ lds.l @r15+,pr
338.28 -
338.29 - /* Do the system call trap. */
338.30 - mov #+P(SOCKOP_,socket), r4
338.31 -@@ -102,9 +104,11 @@
338.32 - mov.l .L1,r3
338.33 - trapa #0x12
338.34 -
338.35 -+ sts.l pr,@-r15
338.36 - mov.l r0,@-r15
338.37 - CDISABLE
338.38 - mov.l @r15+,r0
338.39 -+ lds.l @r15+,pr
338.40 -
338.41 - /* Pop args off the stack */
338.42 - P(POPARGS_,NARGS)
339.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sh4-trapa.patch Tue Aug 14 19:32:22 2007 +0000
339.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
339.3 @@ -1,55 +0,0 @@
339.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sh/sysdep.h.diff?r1=1.9&r2=1.10&cvsroot=glibc
339.5 -
339.6 -Ankur Sheth said:
339.7 -
339.8 -"This is actually a workaround for a bug in the sh4. The actual bug is
339.9 -documented here :
339.10 -http://documentation.renesas.com/eng/products/mpumcu/tu/tnsh7456ae.pdf
339.11 -Basically the cache & TLB should not be accessed for 4 (or was it 5?) cycles
339.12 -after isssuing a TRAPA instruction. I didn't run into any specific problem
339.13 -because of this bug, but it seems useful to have and the patch itself seems
339.14 -pretty harmless."
339.15 -
339.16 -
339.17 -===================================================================
339.18 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sh/sysdep.h,v
339.19 -retrieving revision 1.9
339.20 -retrieving revision 1.10
339.21 -diff -u -r1.9 -r1.10
339.22 ---- libc/sysdeps/unix/sysv/linux/sh/sysdep.h 2003/09/01 04:05:21 1.9
339.23 -+++ libc/sysdeps/unix/sysv/linux/sh/sysdep.h 2003/10/15 04:36:32 1.10
339.24 -@@ -183,6 +183,13 @@
339.25 - # endif /* _LIBC_REENTRANT */
339.26 - #endif /* PIC */
339.27 -
339.28 -+# ifdef NEED_SYSCALL_INST_PAD
339.29 -+# define SYSCALL_INST_PAD \
339.30 -+ or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0
339.31 -+# else
339.32 -+# define SYSCALL_INST_PAD
339.33 -+# endif
339.34 -+
339.35 - #define SYSCALL_INST0 trapa #0x10
339.36 - #define SYSCALL_INST1 trapa #0x11
339.37 - #define SYSCALL_INST2 trapa #0x12
339.38 -@@ -195,19 +202,13 @@
339.39 - #define DO_CALL(syscall_name, args) \
339.40 - mov.l 1f,r3; \
339.41 - SYSCALL_INST##args; \
339.42 -+ SYSCALL_INST_PAD; \
339.43 - bra 2f; \
339.44 - nop; \
339.45 - .align 2; \
339.46 - 1: .long SYS_ify (syscall_name); \
339.47 - 2:
339.48 -
339.49 --# ifdef NEED_SYSCALL_INST_PAD
339.50 --# define SYSCALL_INST_PAD \
339.51 -- or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0
339.52 --# else
339.53 --# define SYSCALL_INST_PAD
339.54 --# endif
339.55 --
339.56 - #else /* not __ASSEMBLER__ */
339.57 -
339.58 - #define SYSCALL_INST_STR0 "trapa #0x10\n\t"
340.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sparc32-sysdep.patch Tue Aug 14 19:32:22 2007 +0000
340.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
340.3 @@ -1,46 +0,0 @@
340.4 -Fixes the error
340.5 -
340.6 -<stdin>: Assembler messages:
340.7 -<stdin>:2: Error: junk at end of line, first unrecognized character is `1' ...
340.8 -<stdin>:2: Error: Illegal operands: PC-relative operand can't be a constant
340.9 -make[4]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/io/rtld-open.os] Error 1
340.10 -make[4]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/io'
340.11 -make[3]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/io/rtld-xstat64.os] Error 2
340.12 -make[3]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/elf'
340.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/rtld-libc.a] Error 2
340.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/elf'
340.15 -make[1]: *** [elf/subdir_lib] Error 2
340.16 -
340.17 -when building glibc-2.3.2 with gcc-3.4.0 for sparc32.
340.18 -
340.19 -The .s file left behind by -save-temps contains the big long line
340.20 -
340.21 -.text; .global __libc_open; .align 4; __libc_open:; .type __libc_open,@function;; mov 5, %g1; ta 0x10; bcs __syscall_error_handler; nop; .section .gnu.linkonce.t. 1 .get_pic.l7,"ax",@progbits; .globl 1 .get_pic.l7; .hidden 1 .get_pic.l7; .type 1 .get_pic.l7,@function; 1 .get_pic.l7: retl; add %o7, %l7, %l7; .previous; .subsection 3; __syscall_error_handler: save %sp,-96,%sp; sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; call 1 .get_pic.l7; add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; ld [%l7 + errno], %l0; st %i0, [%l0]; jmpl %i7+8, %g0; restore %g0, -1, %o0; .previous;
340.22 - retl; nop
340.23 -
340.24 -The error messages appear to refer to the '1 .get_pic.17', e.g.
340.25 - .globl 1 .get_pic.l7; .hidden 1 .get_pic.l7;
340.26 -which seems to come from
340.27 -glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
340.28 -where it appears originally as
340.29 - .globl __sparc.get_pic.l7; \
340.30 - .hidden __sparc.get_pic.l7; \
340.31 -
340.32 -Note that __sparc is a predefined symbol on Solaris and some other environments;
340.33 -it's not surprising to see it predefined on Linux, too.
340.34 -
340.35 -
340.36 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h.old 2004-05-15 10:23:11.000000000 -0700
340.37 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h 2004-05-15 10:24:12.000000000 -0700
340.38 -@@ -39,6 +39,11 @@
340.39 - #undef END
340.40 - #undef LOC
340.41 -
340.42 -+/* gcc-3.4.0 seems to expand __sparc as a predefined preprocessor symbol, which we don't want here */
340.43 -+#ifdef __sparc
340.44 -+#undef __sparc
340.45 -+#endif
340.46 -+
340.47 - #define ENTRY(name) \
340.48 - .global C_SYMBOL_NAME(name); \
340.49 - .align 4;\
341.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sparc64-dl-machine.patch Tue Aug 14 19:32:22 2007 +0000
341.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
341.3 @@ -1,29 +0,0 @@
341.4 -See http://gcc.gnu.org/PR15345
341.5 -
341.6 -Quick kludge by H.J.Lu
341.7 -Works around gcc-3.4.0 error which shows up when building glibc-2.3.2 for sparc64:
341.8 -
341.9 -.../sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc.a(dl-reloc.o)(.text+0x4b4): In function `elf_machine_load_address.3':
341.10 -: undefined reference to `_DYNAMIC'
341.11 -collect2: ld returned 1 exit status
341.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/sln] Error 1
341.13 -
341.14 -
341.15 ---- glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h.orig Sat May 8 20:54:26 2004
341.16 -+++ glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h Sat May 8 17:18:04 2004
341.17 -@@ -65,6 +65,7 @@
341.18 - }
341.19 -
341.20 - /* Return the run-time load address of the shared object. */
341.21 -+#ifdef IS_IN_rtld
341.22 - static inline Elf64_Addr
341.23 - elf_machine_load_address (void)
341.24 - {
341.25 -@@ -84,6 +85,7 @@
341.26 - pc[3]*4 is l_addr + _GLOBAL_OFFSET_TABLE_ - (long)pc - 12 */
341.27 - return (Elf64_Addr) got - *got + (Elf32_Sword) ((pc[2] - pc[3]) * 4) - 4;
341.28 - }
341.29 -+#endif
341.30 -
341.31 - /* We have 4 cases to handle. And we code different code sequences
341.32 - for each one. I love V9 code models... */
342.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sparc64-pause.patch Tue Aug 14 19:32:22 2007 +0000
342.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
342.3 @@ -1,22 +0,0 @@
342.4 -From: "M.H.VanLeeuwen"
342.5 -Subject: crosstool, sparc64, linux 2.6.4, gcc 3.3.3, glibc 2.3.2 success
342.6 -Date: Mon, 15 Mar 2004 00:23:04 -0600
342.7 -To: crossgcc@sources.redhat.com
342.8 -Message-ID: <40554BC8.749A5EC3@megsinet.net>
342.9 -...
342.10 -
342.11 -backported from GLIBC CVS
342.12 -
342.13 -Fixes:
342.14 -../sysdeps/unix/sysv/linux/sparc/sparc64/pause.c:1:39: sysdeps/unix/common/pause.c: No such file or directory
342.15 -make[2]: *** [/cross/build/sparc64-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/build-glibc/posix/pause.o] Error 1
342.16 -make[2]: Leaving directory `/cross/build/sparc64-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/glibc-2.3.2/posix'
342.17 -make[1]: *** [posix/subdir_lib] Error 2
342.18 -make: *** [all] Error 2
342.19 -
342.20 -=========================================================================================================================
342.21 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c.orig Sun Mar 7 08:51:20 2004
342.22 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c Sun Mar 7 08:51:29 2004
342.23 -@@ -1 +1 @@
342.24 --#include <sysdeps/unix/common/pause.c>
342.25 -+#include <sysdeps/posix/pause.c>
343.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sparc64-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
343.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
343.3 @@ -1,36 +0,0 @@
343.4 -Fix for this error:
343.5 -
343.6 -/cross/crosstool-0.27/build/sparc64-unknown-linux-gnu/gcc-3.3.3-glibc-2.3.2/build-glibc/libc_pic.os(.text+0xc4d28): In function `posix_fallocate64':
343.7 -: undefined reference to `__GI___pwrite64'
343.8 -collect2: ld returned 1 exit status
343.9 -make[1]: *** [/cross/crosstool-0.27/build/sparc64-unknown-linux-gnu/gcc-3.3.3-glibc-2.3.2/build-glibc/libc.so] Error 1
343.10 -
343.11 -extracted from GLIBC CVS by M.H.VanLeeuwen
343.12 -
343.13 -cf.
343.14 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
343.15 -
343.16 -Originally thought we needed this hunk, too:
343.17 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
343.18 -but it seems the sysdep.h change is sufficient, and works better
343.19 -when compiling against linux-2.4.
343.20 -
343.21 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h.orig Sat Mar 13 02:01:51 2004
343.22 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h Sat Mar 13 02:02:20 2004
343.23 -@@ -29,6 +29,16 @@
343.24 - #undef SYS_ify
343.25 - #define SYS_ify(syscall_name) __NR_##syscall_name
343.26 -
343.27 -+/* This is a kludge to make syscalls.list find these under the names
343.28 -+ pread and pwrite, since some kernel headers define those names
343.29 -+ and some define the *64 names for the same system calls. */
343.30 -+#if !defined __NR_pread && defined __NR_pread64
343.31 -+# define __NR_pread __NR_pread64
343.32 -+#endif
343.33 -+#if !defined __NR_pwrite && defined __NR_pwrite64
343.34 -+# define __NR_pwrite __NR_pwrite64
343.35 -+#endif
343.36 -+
343.37 - #ifdef __ASSEMBLER__
343.38 -
343.39 - #define LOADSYSCALL(x) mov __NR_##x, %g1
344.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-without-fp.patch Tue Aug 14 19:32:22 2007 +0000
344.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
344.3 @@ -1,89 +0,0 @@
344.4 -Sender: libc-alpha-owner@sources.redhat.com
344.5 -Date: Tue, 29 Jul 2003 17:49:47 -0400
344.6 -From: Daniel Jacobowitz <drow@mvista.com>
344.7 -To: GNU C Library <libc-alpha@sources.redhat.com>
344.8 -Subject: Re: __sim_exceptions undefined when linking glibc-2.3.2's libm.so with --without-fp
344.9 -Message-ID: <20030729214947.GA29932@nevyn.them.org>
344.10 -
344.11 -On Tue, Jul 29, 2003 at 02:53:33PM -0700, Dan Kegel wrote:
344.12 -> On ppc405, I'm getting the following when linking glibc's libm:
344.13 -> /gcc-3.3-glibc-2.3.2/build-glibc/math/libm_pic.a(fclrexcpt.os)(.text+0x1a):
344.14 -> In function `feclearexcept@GLIBC_2.1':
344.15 -> : undefined reference to `__sim_exceptions'
344.16 ->
344.17 -> That symbol seems to be present in libc.so. nm shows
344.18 -
344.19 ---without-fp doesn't work. Try this. Make up a changelog entry if it
344.20 -works.
344.21 -
344.22 -Date: Tue, 29 Jul 2003 14:56:50 -0700
344.23 -Message-Id: <200307292156.h6TLuol24356@magilla.sf.frob.com>
344.24 -From: Roland McGrath <roland@redhat.com>
344.25 -To: Daniel Jacobowitz <drow@mvista.com>
344.26 -Cc: GNU C Library <libc-alpha@sources.redhat.com>
344.27 -Subject: Re: __sim_exceptions undefined when linking glibc-2.3.2's libm.so with --without-fp
344.28 -In-Reply-To: Daniel Jacobowitz's message of Tuesday, 29 July 2003 17:49:47 -0400 <20030729214947.GA29932@nevyn.them.org>
344.29 -
344.30 -> +int __sim_exceptions __attribute__ ((section(".bss")));
344.31 -
344.32 -Use __attribute__ ((nocommon)) instead (and please watch the standard
344.33 -whitespace conventions, i.e. ``section ('').
344.34 -
344.35 -diff -purN glibc-2.3.2.orig/sysdeps/powerpc/nofpu/sim-full.c glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c
344.36 ---- glibc-2.3.2.orig/sysdeps/powerpc/nofpu/sim-full.c 2002-10-19 16:06:29.000000000 -0400
344.37 -+++ glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c 2003-05-14 15:10:42.000000000 -0400
344.38 -@@ -24,11 +24,14 @@
344.39 -
344.40 - /* Global to store sticky exceptions. */
344.41 --int __sim_exceptions;
344.42 -+int __sim_exceptions __attribute__ ((nocommon));
344.43 -+libc_hidden_data_def (__sim_exceptions);
344.44 -
344.45 - /* By default, no exceptions should trap. */
344.46 - int __sim_disabled_exceptions = 0xffffffff;
344.47 -+libc_hidden_data_def (__sim_disabled_exceptions);
344.48 -
344.49 --int __sim_round_mode;
344.50 -+int __sim_round_mode __attribute__ ((nocommon));
344.51 -+libc_hidden_data_def (__sim_round_mode);
344.52 -
344.53 - void
344.54 - __simulate_exceptions (int x)
344.55 -diff -purN glibc-2.3.2.orig/sysdeps/powerpc/nofpu/soft-supp.h glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h
344.56 ---- glibc-2.3.2.orig/sysdeps/powerpc/nofpu/soft-supp.h 2002-10-19 16:06:29.000000000 -0400
344.57 -+++ glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h 2003-05-14 15:09:53.000000000 -0400
344.58 -@@ -27,7 +27,11 @@ typedef union
344.59 - } fenv_union_t;
344.60 -
344.61 -
344.62 --extern int __sim_exceptions attribute_hidden;
344.63 --extern int __sim_disabled_exceptions attribute_hidden;
344.64 --extern int __sim_round_mode attribute_hidden;
344.65 -+extern int __sim_exceptions;
344.66 -+libc_hidden_proto (__sim_exceptions);
344.67 -+extern int __sim_disabled_exceptions;
344.68 -+libc_hidden_proto (__sim_disabled_exceptions);
344.69 -+extern int __sim_round_mode;
344.70 -+libc_hidden_proto (__sim_round_mode);
344.71 -+
344.72 - extern void __simulate_exceptions (int x) attribute_hidden;
344.73 -diff -urp glibc-2.3.2.orig/sysdeps/powerpc/soft-fp/sfp-machine.h glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h
344.74 ---- glibc-2.3.2.orig/sysdeps/powerpc/soft-fp/sfp-machine.h 2002-10-17 18:36:14.000000000 -0400
344.75 -+++ glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h 2003-05-14 16:48:13.000000000 -0400
344.76 -@@ -52,7 +52,11 @@
344.77 - #define FP_HANDLE_EXCEPTIONS __simulate_exceptions (_fex)
344.78 - #define FP_ROUNDMODE __sim_round_mode
344.79 -
344.80 --extern int __sim_exceptions attribute_hidden;
344.81 --extern int __sim_disabled_exceptions attribute_hidden;
344.82 --extern int __sim_round_mode attribute_hidden;
344.83 -+extern int __sim_exceptions;
344.84 -+libc_hidden_proto (__sim_exceptions);
344.85 -+extern int __sim_disabled_exceptions;
344.86 -+libc_hidden_proto (__sim_disabled_exceptions);
344.87 -+extern int __sim_round_mode;
344.88 -+libc_hidden_proto (__sim_round_mode);
344.89 -+
344.90 - extern void __simulate_exceptions (int x) attribute_hidden;
344.91 -
344.92 -
345.1 --- a/patches/glibc/2.3.2/glibc-2.3.3-allow-gcc-4.0-configure.patch Tue Aug 14 19:32:22 2007 +0000
345.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
345.3 @@ -1,30 +0,0 @@
345.4 -Fixes following problem building glibc-2.3.3 with gcc-4.0:
345.5 -
345.6 -checking version of i686-unknown-linux-gnu-gcc ... 4.0.0, bad
345.7 -checking for gnumake... no
345.8 -checking for gmake... gmake
345.9 -checking version of gmake... 3.79.1, ok
345.10 -checking for gnumsgfmt... no
345.11 -checking for gmsgfmt... no
345.12 -checking for msgfmt... msgfmt
345.13 -checking version of msgfmt... 0.11.4, ok
345.14 -checking for makeinfo... makeinfo
345.15 -checking version of makeinfo... 4.3, ok
345.16 -checking for sed... sed
345.17 -checking version of sed... 4.0.5, ok
345.18 -checking for autoconf... autoconf
345.19 -checking whether autoconf works... yes
345.20 -configure: error:
345.21 -*** These critical programs are missing or too old: gcc
345.22 -
345.23 ---- glibc-2.3.3/configure.old Mon Mar 14 12:01:10 2005
345.24 -+++ glibc-2.3.3/configure Mon Mar 14 12:02:03 2005
345.25 -@@ -3899,7 +3899,7 @@
345.26 - ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
345.27 - case $ac_prog_version in
345.28 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
345.29 -- 3.[2-9]*)
345.30 -+ 3.[2-9]*|4.[01]*)
345.31 - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
345.32 - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
345.33 -
346.1 --- a/patches/glibc/2.3.2/glibc-2.3.3-allow-gcc-4.0-powerpc-procfs.patch Tue Aug 14 19:32:22 2007 +0000
346.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
346.3 @@ -1,65 +0,0 @@
346.4 -(Combined with earlier fix old/glibc-2.3.2-powerpc-procfs.patch
346.5 -from http://sources.redhat.com/ml/libc-alpha/2003-12/msg00101.html)
346.6 -
346.7 -This fix discussed here:
346.8 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
346.9 -
346.10 -Revision 1.12, Wed Mar 2 20:11:38 2005 UTC by roland
346.11 -Branch: MAIN
346.12 -CVS Tags: fedora-glibc-20050303T1335, HEAD
346.13 -Changes since 1.11: +3 -8 lines
346.14 -Diff to previous 1.11 (colored)
346.15 -
346.16 -2005-02-21 Alan Modra <amodra@bigpond.net.au>
346.17 -
346.18 - * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Don't
346.19 - use __uint128_t.
346.20 -
346.21 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h?cvsroot=glibc
346.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.diff?r1=1.11&r2=1.12&cvsroot=glibc
346.23 -
346.24 -Fixes
346.25 -
346.26 -In file included from ../linuxthreads_db/proc_service.h:20,
346.27 - from ../linuxthreads_db/thread_dbP.h:7,
346.28 - from ../linuxthreads/descr.h:44,
346.29 - from ../linuxthreads/internals.h:30,
346.30 - from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
346.31 - from ../sysdeps/generic/ldsodefs.h:38,
346.32 - from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
346.33 - from <stdin>:2:
346.34 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: error: syntax error before 'elf_vrreg_t'
346.35 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
346.36 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: data definition has no type or storage class
346.37 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: syntax error before 'elf_vrregset_t'
346.38 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
346.39 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: data definition has no type or storage class
346.40 -make[2]: make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/csu'
346.41 -
346.42 -Rediffed against glibc-2.3.3
346.43 -
346.44 ---- glibc-2.3.3.orig/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h Sun Jan 12 00:24:23 2003
346.45 -+++ glibc-2.3.3.new/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h Fri Mar 18 11:20:58 2005
346.46 -@@ -45,18 +45,13 @@
346.47 -
346.48 - typedef double elf_fpreg_t;
346.49 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
346.50 --#endif
346.51 --
346.52 --/* gcc 3.1 and newer support __uint128_t. */
346.53 --#if !__GNUC_PREREQ(3,1)
346.54 --typedef struct {
346.55 -- unsigned long u[4];
346.56 --} __attribute((aligned(16))) __uint128_t;
346.57 --#endif
346.58 -
346.59 - /* Altivec registers */
346.60 --typedef __uint128_t elf_vrreg_t;
346.61 -+typedef struct {
346.62 -+ unsigned int u[4];
346.63 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
346.64 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
346.65 -+#endif
346.66 -
346.67 - struct elf_siginfo
346.68 - {
347.1 --- a/patches/glibc/2.3.2/glibc-configure-apple-as.patch Tue Aug 14 19:32:22 2007 +0000
347.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
347.3 @@ -1,23 +0,0 @@
347.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
347.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
347.6 -
347.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
347.8 -where the assembler but doesn't understand the --version flag.
347.9 -
347.10 -Fixes the symptom
347.11 -checking whether ld is GNU ld... no
347.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
347.13 -checking version of /usr/libexec/gcc/darwin/ppc/as...
347.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
347.15 -
347.16 ---- glibc-2.3.2/configure~ Wed Feb 26 09:20:48 2003
347.17 -+++ glibc-2.3.2/configure Fri Feb 27 13:12:53 2004
347.18 -@@ -3789,7 +3789,7 @@
347.19 - # Found it, now check the version.
347.20 - echo "$as_me:$LINENO: checking version of $AS" >&5
347.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
347.22 -- ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
347.23 -+ ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
347.24 - case $ac_prog_version in
347.25 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
347.26 - 2.1[3-9]*)
348.1 --- a/patches/glibc/2.3.2/glibc-drow-sh.patch Tue Aug 14 19:32:22 2007 +0000
348.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
348.3 @@ -1,77 +0,0 @@
348.4 -[pread changes deleted, since those seem to be specific to glibc-2.3.2]
348.5 -
348.6 -Date: Thu, 19 Jun 2003 20:02:07 -0400
348.7 -From: Daniel Jacobowitz <drow@false.org>
348.8 -Subject: [linux-sh:02808] Patch needed for CVS glibc on SH
348.9 -To: linux-sh@m17n.org, libc-alpha@sources.redhat.com
348.10 -Message-Id: <20030620000207.GA19907@nevyn.them.org>
348.11 -X-ML-Name: linux-sh
348.12 -X-Mail-Count: 02808
348.13 -X-MLServer: fml [fml 4.0.1]; post only (only members can post)
348.14 -X-ML-Info: If you have a question, send e-mail with the body
348.15 - "help" (without quotes) to the address linux-sh-ctl@m17n.org;
348.16 - help=<mailto:linux-sh-ctl@m17n.org?body=help>
348.17 -Mail-Followup-To: linux-sh@m17n.org, libc-alpha@sources.redhat.com
348.18 -Content-Disposition: inline
348.19 -User-Agent: Mutt/1.5.1i
348.20 -Mime-Version: 1.0
348.21 -Content-Type: text/plain; charset=us-ascii
348.22 -Precedence: bulk
348.23 -Lines: 74
348.24 -List-Software: fml [fml 4.0.1]
348.25 -List-Post: <mailto:linux-sh@m17n.org>
348.26 -List-Owner: <mailto:linux-sh-admin@m17n.org>
348.27 -List-Help: <mailto:linux-sh-ctl@m17n.org?body=help>
348.28 -List-Unsubscribe: <mailto:linux-sh-ctl@m17n.org?body=unsubscribe>
348.29 -List-Id: linux-sh.m17n.org
348.30 -
348.31 -I believe this flushes my current patches to make glibc work on SH. Issues:
348.32 - - MIPS pread functions have some wackiness in them for the MIPS calling
348.33 - conventions, which align long longs to even register pairs; it appears
348.34 - that SH does not do this. This fixes pread64/pwrite64.
348.35 - - st_ino is _NOT_ 64-bit in the latest SH kernel trees, or at least it
348.36 - wasn't when I checked in April. --enable-kernel=2.4.x breaks terribly
348.37 - without this patch; the errors are along the lines of "version GLIBC_2.3
348.38 - not found", because that's the first consequence of a messed up inode
348.39 - field - ld.so compares by inodes at some point.
348.40 -
348.41 ---
348.42 -Daniel Jacobowitz
348.43 -MontaVista Software Debian GNU/Linux Developer
348.44 -
348.45 -2003-06-19 Daniel Jacobowitz <drow@mvista.com>
348.46 -
348.47 - * sysdeps/unix/sysv/linux/kernel-features.h: Update kernel features
348.48 - for the SH architecture.
348.49 - * sysdeps/unix/sysv/linux/sh/pread.c: Use generic Linux version
348.50 - instead of the MIPS version.
348.51 - * sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
348.52 - * sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
348.53 - * sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
348.54 -
348.55 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h.org 2003-04-21 10:57:55.000000000 -0400
348.56 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h 2003-04-21 11:16:47.000000000 -0400
348.57 -@@ -151,11 +151,20 @@
348.58 -
348.59 - /* The changed st_ino field appeared in 2.4.0-test6. But we cannot
348.60 - distinguish this version from other 2.4.0 releases. Therefore play
348.61 -- save and assume it available is for 2.4.1 and up. */
348.62 --#if __LINUX_KERNEL_VERSION >= 132097
348.63 -+ save and assume it available is for 2.4.1 and up. However, SH is lame,
348.64 -+ and still does not have a 64-bit inode field. */
348.65 -+#if __LINUX_KERNEL_VERSION >= 132097 \
348.66 -+ && !defined __sh__
348.67 - # define __ASSUME_ST_INO_64_BIT 1
348.68 - #endif
348.69 -
348.70 -+/* SH kernels got stat64, mmap2, and truncate64 during 2.4.0-test. */
348.71 -+#if __LINUX_KERNEL_VERSION >= 132096 && defined __sh__
348.72 -+# define __ASSUME_TRUNCATE64_SYSCALL 1
348.73 -+# define __ASSUME_MMAP2_SYSCALL 1
348.74 -+# define __ASSUME_STAT64_SYSCALL 1
348.75 -+#endif
348.76 -+
348.77 - /* To support locking of large files a new fcntl() syscall was introduced
348.78 - in 2.4.0-test7. We test for 2.4.1 for the earliest version we know
348.79 - the syscall is available. */
348.80 -
349.1 --- a/patches/glibc/2.3.2/glibc-fp-byteorder.patch Tue Aug 14 19:32:22 2007 +0000
349.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
349.3 @@ -1,203 +0,0 @@
349.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
349.5 -Author: addsub@eyou.com
349.6 -Target: ARM
349.7 -
349.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
349.9 -and makes printf("%f", 1.0) work.
349.10 -
349.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
349.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
349.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
349.14 - It's definitely needed for hardfloat. So I'd think it's needed for
349.15 - big-endian systems in any case, and for VFP on little-endian systems
349.16 - too. Someone would have to verify that though.
349.17 -
349.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
349.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
349.20 - for this version. glibc-20040830 out-of-the-box still contains the
349.21 - following wrong assumptions:
349.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
349.23 - not on vfp systems)
349.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
349.25 - are not on big endian systems, neither on vfp systems)
349.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
349.27 - (which they are not on big endian systems)
349.28 - [This patch] seems the right solution for all of these issues.
349.29 -
349.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
349.31 - It's even needed for glibc CVS, AFAICS.
349.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
349.33 - (currently at version 1.4) is only needed for proper VFP operation.
349.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
349.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
349.36 - for proper operation of *any* FP model on big endian ARM.
349.37 -
349.38 -See also discussion in followups to
349.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
349.40 -
349.41 -Message-ID: <276985760.37584@eyou.com>
349.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
349.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
349.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
349.45 -Date: 17 Feb 2004 10:42:38 +0800
349.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
349.47 -From: "add" <addsub@eyou.com>
349.48 -To: dank@kegel.com
349.49 -Reply-To: "add" <addsub@eyou.com>
349.50 -Subject: Re: problem while building arm vfp softfloat gcc `
349.51 -
349.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
349.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
349.54 -
349.55 -
349.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
349.57 ---- glibc.old/sysdeps/arm/bits/endian.h 1999-04-12 11:59:13.000000000 -0400
349.58 -+++ glibc.new/sysdeps/arm/bits/endian.h 2004-02-12 09:15:13.000000000 -0500
349.59 -@@ -9,4 +9,9 @@
349.60 - #else
349.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
349.62 - #endif
349.63 -+
349.64 -+#ifdef __VFP_FP__
349.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
349.66 -+#else
349.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
349.68 -+#endif
349.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
349.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h 2001-07-07 15:21:19.000000000 -0400
349.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h 2004-02-12 09:15:13.000000000 -0500
349.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
349.73 - #define BITS_PER_SHORTINT 16
349.74 - #define BITS_PER_CHAR 8
349.75 -
349.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
349.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
349.78 -+#if defined(__ARMEB__)
349.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
349.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
349.81 -+#elif defined(__VFP_FP__)
349.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
349.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
349.84 -+#else
349.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
349.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
349.87 -+#endif
349.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
349.89 ---- glibc.old/sysdeps/arm/ieee754.h 2001-07-07 15:21:19.000000000 -0400
349.90 -+++ glibc.new/sysdeps/arm/ieee754.h 1969-12-31 19:00:00.000000000 -0500
349.91 -@@ -1,115 +0,0 @@
349.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
349.93 -- This file is part of the GNU C Library.
349.94 --
349.95 -- The GNU C Library is free software; you can redistribute it and/or
349.96 -- modify it under the terms of the GNU Lesser General Public
349.97 -- License as published by the Free Software Foundation; either
349.98 -- version 2.1 of the License, or (at your option) any later version.
349.99 --
349.100 -- The GNU C Library is distributed in the hope that it will be useful,
349.101 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
349.102 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
349.103 -- Lesser General Public License for more details.
349.104 --
349.105 -- You should have received a copy of the GNU Lesser General Public
349.106 -- License along with the GNU C Library; if not, write to the Free
349.107 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
349.108 -- 02111-1307 USA. */
349.109 --
349.110 --#ifndef _IEEE754_H
349.111 --
349.112 --#define _IEEE754_H 1
349.113 --#include <features.h>
349.114 --
349.115 --#include <endian.h>
349.116 --
349.117 --__BEGIN_DECLS
349.118 --
349.119 --union ieee754_float
349.120 -- {
349.121 -- float f;
349.122 --
349.123 -- /* This is the IEEE 754 single-precision format. */
349.124 -- struct
349.125 -- {
349.126 -- unsigned int mantissa:23;
349.127 -- unsigned int exponent:8;
349.128 -- unsigned int negative:1;
349.129 -- } ieee;
349.130 --
349.131 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
349.132 -- struct
349.133 -- {
349.134 -- unsigned int mantissa:22;
349.135 -- unsigned int quiet_nan:1;
349.136 -- unsigned int exponent:8;
349.137 -- unsigned int negative:1;
349.138 -- } ieee_nan;
349.139 -- };
349.140 --
349.141 --#define IEEE754_FLOAT_BIAS 0x7f /* Added to exponent. */
349.142 --
349.143 --
349.144 --union ieee754_double
349.145 -- {
349.146 -- double d;
349.147 --
349.148 -- /* This is the IEEE 754 double-precision format. */
349.149 -- struct
349.150 -- {
349.151 -- unsigned int mantissa0:20;
349.152 -- unsigned int exponent:11;
349.153 -- unsigned int negative:1;
349.154 -- unsigned int mantissa1:32;
349.155 -- } ieee;
349.156 --
349.157 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
349.158 -- struct
349.159 -- {
349.160 -- unsigned int mantissa0:19;
349.161 -- unsigned int quiet_nan:1;
349.162 -- unsigned int exponent:11;
349.163 -- unsigned int negative:1;
349.164 -- unsigned int mantissa1:32;
349.165 -- } ieee_nan;
349.166 -- };
349.167 --
349.168 --#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */
349.169 --
349.170 --
349.171 --/* The following two structures are correct for `new' floating point systems but
349.172 -- wrong for the old FPPC. The only solution seems to be to avoid their use on
349.173 -- old hardware. */
349.174 --
349.175 --union ieee854_long_double
349.176 -- {
349.177 -- long double d;
349.178 --
349.179 -- /* This is the IEEE 854 double-extended-precision format. */
349.180 -- struct
349.181 -- {
349.182 -- unsigned int exponent:15;
349.183 -- unsigned int empty:16;
349.184 -- unsigned int negative:1;
349.185 -- unsigned int mantissa1:32;
349.186 -- unsigned int mantissa0:32;
349.187 -- } ieee;
349.188 --
349.189 -- /* This is for NaNs in the IEEE 854 double-extended-precision format. */
349.190 -- struct
349.191 -- {
349.192 -- unsigned int exponent:15;
349.193 -- unsigned int empty:16;
349.194 -- unsigned int negative:1;
349.195 -- unsigned int mantissa1:32;
349.196 -- unsigned int mantissa0:30;
349.197 -- unsigned int quiet_nan:1;
349.198 -- unsigned int one:1;
349.199 -- } ieee_nan;
349.200 -- };
349.201 --
349.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
349.203 --
349.204 --__END_DECLS
349.205 --
349.206 --#endif /* ieee754.h */
350.1 --- a/patches/glibc/2.3.2/glibc-test-lowram.patch Tue Aug 14 19:32:22 2007 +0000
350.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
350.3 @@ -1,14 +0,0 @@
350.4 ---- glibc-2.2.5/malloc/tst-calloc.c.old Sun Aug 3 16:17:58 2003
350.5 -+++ glibc-2.2.5/malloc/tst-calloc.c Sun Aug 3 16:20:01 2003
350.6 -@@ -24,9 +24,8 @@
350.7 - #include <stdio.h>
350.8 -
350.9 -
350.10 --/* Number of samples per size. */
350.11 --#define N 50000
350.12 --
350.13 -+/* Number of samples per size. This is also the maximum memory consumption in kilobytes. */
350.14 -+#define N 8000
350.15 -
350.16 - static void
350.17 - fixed_test (int size)
351.1 --- a/patches/glibc/2.3.2/nobits.patch Tue Aug 14 19:32:22 2007 +0000
351.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
351.3 @@ -1,27 +0,0 @@
351.4 -Fix build on architectures (like arm) where gas accepts @ as comment.
351.5 -
351.6 -First reported here:
351.7 -http://sources.redhat.com/ml/libc-alpha/2003-04/msg00265.html
351.8 -
351.9 -In use here:
351.10 -http://www.netwinder.org/autobuild/nw-9/patches/glibc-2.3.2-nobits.patch
351.11 -
351.12 -Committed to cvs:
351.13 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.52&r2=1.53&cvsroot=glibc
351.14 -
351.15 -===================================================================
351.16 -RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
351.17 -retrieving revision 1.52
351.18 -retrieving revision 1.53
351.19 -diff -u -r1.52 -r1.53
351.20 ---- libc/include/libc-symbols.h 2003/04/30 04:18:03 1.52
351.21 -+++ libc/include/libc-symbols.h 2003/05/02 02:20:48 1.53
351.22 -@@ -247,7 +247,7 @@
351.23 - __attribute__ ((unused, section (".gnu.warning." #symbol __sec_comment))) \
351.24 - = msg;
351.25 - # define libc_freeres_ptr(decl) \
351.26 -- __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", @nobits") \
351.27 -+ __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") \
351.28 - decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
351.29 - # define __libc_freeres_fn_section \
351.30 - __attribute__ ((section ("__libc_freeres_fn")))
352.1 --- a/patches/glibc/2.3.2/old/glibc-2.3.2-powerpc-procfs.patch Tue Aug 14 19:32:22 2007 +0000
352.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
352.3 @@ -1,28 +0,0 @@
352.4 -See http://sources.redhat.com/ml/libc-alpha/2003-12/msg00101.html
352.5 -Fixes
352.6 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: conflicting types for 'elf_vrreg_t'
352.7 -when building glibc-2.3.2 for powerpc64 and linux-2.6.x
352.8 -
352.9 -===================================================================
352.10 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h,v
352.11 -retrieving revision 1.10
352.12 -retrieving revision 1.11
352.13 -diff -u -r1.10 -r1.11
352.14 ---- libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h 2003/01/12 08:24:23 1.10
352.15 -+++ libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h 2003/12/17 23:09:34 1.11
352.16 -@@ -45,7 +45,6 @@
352.17 -
352.18 - typedef double elf_fpreg_t;
352.19 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
352.20 --#endif
352.21 -
352.22 - /* gcc 3.1 and newer support __uint128_t. */
352.23 - #if !__GNUC_PREREQ(3,1)
352.24 -@@ -57,6 +56,7 @@
352.25 - /* Altivec registers */
352.26 - typedef __uint128_t elf_vrreg_t;
352.27 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
352.28 -+#endif
352.29 -
352.30 - struct elf_siginfo
352.31 - {
353.1 --- a/patches/glibc/2.3.2/sscanf.patch Tue Aug 14 19:32:22 2007 +0000
353.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
353.3 @@ -1,80 +0,0 @@
353.4 -2003-03-05 Roland McGrath <roland@redhat.com>
353.5 -
353.6 - * stdio-common/sscanf.c: Use prototype defn with ... syntax.
353.7 - * libio/swscanf.c: Likewise.
353.8 - * libio/swprintf.c: Likewise.
353.9 -
353.10 -===================================================================
353.11 -RCS file: /cvs/glibc/libc/stdio-common/sscanf.c,v
353.12 -retrieving revision 1.8
353.13 -retrieving revision 1.9
353.14 -diff -u -r1.8 -r1.9
353.15 ---- libc/stdio-common/sscanf.c 2002/08/10 09:24:42 1.8
353.16 -+++ libc/stdio-common/sscanf.c 2003/03/05 19:58:03 1.9
353.17 -@@ -1,4 +1,4 @@
353.18 --/* Copyright (C) 1991,95,96,98,2002 Free Software Foundation, Inc.
353.19 -+/* Copyright (C) 1991,1995,1996,1998,2002,2003 Free Software Foundation, Inc.
353.20 - This file is part of the GNU C Library.
353.21 -
353.22 - The GNU C Library is free software; you can redistribute it and/or
353.23 -@@ -27,9 +27,7 @@
353.24 - /* Read formatted input from S, according to the format string FORMAT. */
353.25 - /* VARARGS2 */
353.26 - int
353.27 --sscanf (s, format)
353.28 -- const char *s;
353.29 -- const char *format;
353.30 -+sscanf (const char *s, const char *format, ...)
353.31 - {
353.32 - va_list arg;
353.33 - int done;
353.34 -===================================================================
353.35 -RCS file: /cvs/glibc/libc/libio/swprintf.c,v
353.36 -retrieving revision 1.3
353.37 -retrieving revision 1.4
353.38 -diff -u -r1.3 -r1.4
353.39 ---- libc/libio/swprintf.c 2001/07/06 04:55:32 1.3
353.40 -+++ libc/libio/swprintf.c 2003/03/05 19:58:03 1.4
353.41 -@@ -1,4 +1,5 @@
353.42 --/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc.
353.43 -+/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003
353.44 -+ Free Software Foundation, Inc.
353.45 - This file is part of the GNU C Library.
353.46 -
353.47 - The GNU C Library is free software; you can redistribute it and/or
353.48 -@@ -22,10 +23,7 @@
353.49 - /* Write formatted output into S, according to the format string FORMAT. */
353.50 - /* VARARGS3 */
353.51 - int
353.52 --swprintf (s, n, format)
353.53 -- wchar_t *s;
353.54 -- size_t n;
353.55 -- const wchar_t *format;
353.56 -+swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
353.57 - {
353.58 - va_list arg;
353.59 - int done;
353.60 -===================================================================
353.61 -RCS file: /cvs/glibc/libc/libio/swscanf.c,v
353.62 -retrieving revision 1.2
353.63 -retrieving revision 1.3
353.64 -diff -u -r1.2 -r1.3
353.65 ---- libc/libio/swscanf.c 2001/07/06 04:55:32 1.2
353.66 -+++ libc/libio/swscanf.c 2003/03/05 19:58:03 1.3
353.67 -@@ -1,4 +1,4 @@
353.68 --/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
353.69 -+/* Copyright (C) 1991,1995,1996,1998,1999,2003 Free Software Foundation, Inc.
353.70 - This file is part of the GNU C Library.
353.71 -
353.72 - The GNU C Library is free software; you can redistribute it and/or
353.73 -@@ -22,9 +22,7 @@
353.74 - /* Read formatted input from S, according to the format string FORMAT. */
353.75 - /* VARARGS2 */
353.76 - int
353.77 --swscanf (s, format)
353.78 -- const wchar_t *s;
353.79 -- const wchar_t *format;
353.80 -+swscanf (const wchar_t *s, const wchar_t *format, ...)
353.81 - {
353.82 - va_list arg;
353.83 - int done;
354.1 --- a/patches/glibc/2.3.2/string2-typedef.patch Tue Aug 14 19:32:22 2007 +0000
354.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
354.3 @@ -1,35 +0,0 @@
354.4 -See http://gcc.gnu.org/ml/gcc/2003-08/msg00959.html
354.5 -
354.6 -Compiling glibc-2.3.2 with a gcc-3.4 snapshot, I'm seeing
354.7 -a whole bunch of warnings like this:
354.8 -
354.9 -../string/bits/string2.h:80: warning: `packed' attribute ignored
354.10 -../string/bits/string2.h:81: warning: `packed' attribute ignored
354.11 -...
354.12 -
354.13 -Looks like it was bad code that was silently ignored by previous compilers.
354.14 -Ulrich fixed it as follows:
354.15 -
354.16 -===================================================================
354.17 -RCS file: /cvs/glibc/libc/string/bits/string2.h,v
354.18 -retrieving revision 1.68
354.19 -retrieving revision 1.69
354.20 -diff -u -r1.68 -r1.69
354.21 ---- libc/string/bits/string2.h 2002/05/25 06:10:18 1.68
354.22 -+++ libc/string/bits/string2.h 2003/08/20 00:07:37 1.69
354.23 -@@ -1,5 +1,5 @@
354.24 - /* Machine-independant string function optimizations.
354.25 -- Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
354.26 -+ Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
354.27 - This file is part of the GNU C Library.
354.28 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
354.29 -
354.30 -@@ -76,7 +76,7 @@
354.31 - use unaligned memory accesses. */
354.32 - # define __STRING2_COPY_TYPE(N) \
354.33 - typedef struct { unsigned char __arr[N]; } \
354.34 -- __STRING2_COPY_ARR##N __attribute__ ((packed))
354.35 -+ __attribute__ ((__packed__)) __STRING2_COPY_ARR##N
354.36 - __STRING2_COPY_TYPE (2);
354.37 - __STRING2_COPY_TYPE (3);
354.38 - __STRING2_COPY_TYPE (4);
355.1 --- a/patches/glibc/2.3.3/arm-ctl_bus_isa.patch Tue Aug 14 19:32:22 2007 +0000
355.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
355.3 @@ -1,51 +0,0 @@
355.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
355.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
355.6 -Fixes following error:
355.7 -
355.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
355.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
355.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
355.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
355.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
355.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
355.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
355.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
355.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
355.17 -
355.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
355.19 -
355.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
355.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
355.22 -@@ -47,6 +47,12 @@
355.23 - #include <asm/page.h>
355.24 - #include <sys/sysctl.h>
355.25 -
355.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
355.27 -+#include <linux/version.h>
355.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
355.29 -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
355.30 -+#endif
355.31 -+
355.32 - #define PATH_ARM_SYSTYPE "/etc/arm_systype"
355.33 - #define PATH_CPUINFO "/proc/cpuinfo"
355.34 -
355.35 -@@ -80,7 +86,7 @@
355.36 - * Initialize I/O system. There are several ways to get the information
355.37 - * we need. Each is tried in turn until one succeeds.
355.38 - *
355.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
355.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
355.41 - * but not all kernels support it.
355.42 - *
355.43 - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
355.44 -@@ -100,8 +106,8 @@
355.45 - {
355.46 - char systype[256];
355.47 - int i, n;
355.48 -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
355.49 -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
355.50 -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
355.51 -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
355.52 - size_t len = sizeof(io.base);
355.53 -
355.54 - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
356.1 --- a/patches/glibc/2.3.3/bad/glibc-2.3.3-alpha-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
356.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
356.3 @@ -1,51 +0,0 @@
356.4 -Attempted fix for this error:
356.5 -
356.6 -
356.7 -crosstool-0.30/build/alpha-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.3/build-glibc/libc_pic.os(.text+0xc8bd0): In function `__posix_fallocate64_l64':
356.8 -: undefined reference to `__GI___pwrite64'
356.9 -collect2: ld returned 1 exit status
356.10 -make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/alpha-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.3/glibc-2.3.3'
356.11 -make[1]: *** [/home/dank/queue/jobdir.fast2/crosstool-0.30/build/alpha-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.3/build-glibc/libc.so] Error 1
356.12 -make: *** [all] Error 2
356.13 -
356.14 -extracted from GLIBC CVS by Dan Kegel
356.15 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc'
356.16 -(to match context of...)
356.17 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
356.18 -and rediffed.
356.19 -
356.20 -cf.
356.21 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
356.22 -
356.23 -Originally thought we needed this hunk, too:
356.24 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
356.25 -but it seems the sysdep.h change is sufficient, and works better
356.26 -when compiling against linux-2.4.
356.27 -
356.28 -And then rediffed again against glibc-2.3.3
356.29 -
356.30 ---- glibc-2.3.3.orig/sysdeps/unix/sysv/linux/alpha/sysdep.h Fri Jun 20 09:24:36 2003
356.31 -+++ glibc-2.3.3/sysdeps/unix/sysv/linux/alpha/sysdep.h Wed Mar 23 23:59:58 2005
356.32 -@@ -1,4 +1,4 @@
356.33 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003
356.34 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003, 2004
356.35 - Free Software Foundation, Inc.
356.36 - This file is part of the GNU C Library.
356.37 - Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
356.38 -@@ -63,6 +63,16 @@
356.39 - /* Help old kernel headers where particular syscalls are not available. */
356.40 - #ifndef __NR_semtimedop
356.41 - # define __NR_semtimedop 423
356.42 -+#endif
356.43 -+
356.44 -+/* This is a kludge to make syscalls.list find these under the names
356.45 -+ pread and pwrite, since some kernel headers define those names
356.46 -+ and some define the *64 names for the same system calls. */
356.47 -+#if !defined __NR_pread && defined __NR_pread64
356.48 -+# define __NR_pread __NR_pread64
356.49 -+#endif
356.50 -+#if !defined __NR_pwrite && defined __NR_pwrite64
356.51 -+# define __NR_pwrite __NR_pwrite64
356.52 - #endif
356.53 -
356.54 - /*
357.1 --- a/patches/glibc/2.3.3/fixup.patch Tue Aug 14 19:32:22 2007 +0000
357.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
357.3 @@ -1,74 +0,0 @@
357.4 -Fixes
357.5 -dl-runtime.c:56: error: conflicting types for 'fixup'
357.6 -../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
357.7 -when building with gcc-3.4.0
357.8 -
357.9 -First hunk:
357.10 -Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
357.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
357.12 -
357.13 -Second hunk:
357.14 -If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
357.15 -Use macro in fixup function definitions.
357.16 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
357.17 -[rediffed against glibc-2.3.2]
357.18 -
357.19 -===================================================================
357.20 -RCS file: /cvs/glibc/libc/sysdeps/i386/dl-machine.h,v
357.21 -retrieving revision 1.124
357.22 -retrieving revision 1.125
357.23 -diff -u -r1.124 -r1.125
357.24 ---- libc/sysdeps/i386/dl-machine.h 2004/03/05 10:14:49 1.124
357.25 -+++ libc/sysdeps/i386/dl-machine.h 2004/03/09 07:42:29 1.125
357.26 -@@ -154,11 +154,14 @@
357.27 - destroys the passed register information. */
357.28 - /* GKM FIXME: Fix trampoline to pass bounds so we can do
357.29 - without the `__unbounded' qualifier. */
357.30 --static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
357.31 -- __attribute__ ((regparm (2), unused));
357.32 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
357.33 -+
357.34 -+static ElfW(Addr) fixup (struct link_map *__unbounded l,
357.35 -+ ElfW(Word) reloc_offset)
357.36 -+ ARCH_FIXUP_ATTRIBUTE;
357.37 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
357.38 - ElfW(Addr) retaddr)
357.39 -- __attribute__ ((regparm (3), unused));
357.40 -+ ARCH_FIXUP_ATTRIBUTE;
357.41 - # endif
357.42 -
357.43 - /* This code is used in dl-runtime.c to call the `fixup' function
357.44 -===================================================================
357.45 ---- /home/dank/downloads/glibc-2.3.2/elf/dl-runtime.c Fri Feb 7 11:41:12 2003
357.46 -+++ glibc-2.3.2/elf/dl-runtime.c Thu Apr 8 22:24:26 2004
357.47 -@@ -36,6 +36,12 @@
357.48 - # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
357.49 - #endif
357.50 -
357.51 -+/* The fixup functions might have need special attributes. If none
357.52 -+ are provided define the macro as empty. */
357.53 -+#ifndef ARCH_FIXUP_ATTRIBUTE
357.54 -+# define ARCH_FIXUP_ATTRIBUTE
357.55 -+#endif
357.56 -+
357.57 -
357.58 - /* This function is called through a special trampoline from the PLT the
357.59 - first time each PLT entry is called. We must perform the relocation
357.60 -@@ -45,7 +51,7 @@
357.61 - function. */
357.62 -
357.63 - #ifndef ELF_MACHINE_NO_PLT
357.64 --static ElfW(Addr) __attribute_used__
357.65 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
357.66 - fixup (
357.67 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
357.68 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
357.69 -@@ -132,7 +138,7 @@
357.70 -
357.71 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
357.72 -
357.73 --static ElfW(Addr) __attribute_used__
357.74 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
357.75 - profile_fixup (
357.76 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
357.77 - ELF_MACHINE_RUNTIME_FIXUP_ARGS,
358.1 --- a/patches/glibc/2.3.3/glibc-2.2.5-allow-gcc-4.0-malloc.patch Tue Aug 14 19:32:22 2007 +0000
358.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
358.3 @@ -1,48 +0,0 @@
358.4 -Fixes
358.5 -programs/ld-collate.c: In function 'obstack_int32_grow':
358.6 -programs/ld-collate.c:48: error: invalid lvalue in increment
358.7 -programs/ld-collate.c: In function 'obstack_int32_grow_fast':
358.8 -programs/ld-collate.c:57: error: invalid lvalue in increment
358.9 -
358.10 -Change taken by eyeball from version 1.20 at
358.11 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/malloc/obstack.h?cvsroot=glibc
358.12 -
358.13 ---- /home/dank/downloads/glibc-2.2.5/malloc/obstack.h 2001-07-05 21:55:35.000000000 -0700
358.14 -+++ glibc-2.2.5/malloc/obstack.h 2005-03-11 16:12:16.175812224 -0800
358.15 -@@ -423,22 +423,29 @@
358.16 - ({ struct obstack *__o = (OBSTACK); \
358.17 - if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
358.18 - _obstack_newchunk (__o, sizeof (void *)); \
358.19 -- *((void **)__o->next_free)++ = (datum); \
358.20 -- (void) 0; })
358.21 -+ obstack_ptr_grow_fast (__o, datum); })
358.22 -
358.23 - # define obstack_int_grow(OBSTACK,datum) \
358.24 - __extension__ \
358.25 - ({ struct obstack *__o = (OBSTACK); \
358.26 - if (__o->next_free + sizeof (int) > __o->chunk_limit) \
358.27 - _obstack_newchunk (__o, sizeof (int)); \
358.28 -- *((int *)__o->next_free)++ = (datum); \
358.29 -+ obstack_int_grow_fast (__o, datum); })
358.30 -+
358.31 -+# define obstack_ptr_grow_fast(OBSTACK,aptr) \
358.32 -+__extension__ \
358.33 -+({ struct obstack *__o1 = (OBSTACK); \
358.34 -+ *(const void **) __o1->next_free = (aptr); \
358.35 -+ __o1->next_free += sizeof (const void *); \
358.36 - (void) 0; })
358.37 -
358.38 --# define obstack_ptr_grow_fast(h,aptr) \
358.39 -- (*((void **) (h)->next_free)++ = (aptr))
358.40 -+# define obstack_int_grow_fast(OBSTACK,aint) \
358.41 -+__extension__ \
358.42 -+({ struct obstack *__o1 = (OBSTACK); \
358.43 -+ *(int *) __o1->next_free = (aint); \
358.44 -+ __o1->next_free += sizeof (int); \
358.45 -+ (void) 0; })
358.46 -
358.47 --# define obstack_int_grow_fast(h,aint) \
358.48 -- (*((int *) (h)->next_free)++ = (aint))
358.49 -
358.50 - # define obstack_blank(OBSTACK,length) \
358.51 - __extension__ \
359.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.4-inline.patch Tue Aug 14 19:32:22 2007 +0000
359.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
359.3 @@ -1,23 +0,0 @@
359.4 -Fixes
359.5 -cc1: error: invalid parameter `max-inline-insns'
359.6 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc6/build/powerpc64-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/dl-load.o] Error 1
359.7 -when building with gcc-3.4.0, which no longer has a single
359.8 ---max-inline-insns parameter.
359.9 -
359.10 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/powerpc64/Makefile.diff?r1=1.3&r2=1.4&cvsroot=glibc
359.11 -
359.12 -===================================================================
359.13 -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/Makefile,v
359.14 -retrieving revision 1.3
359.15 -retrieving revision 1.4
359.16 -diff -u -r1.3 -r1.4
359.17 ---- libc/sysdeps/powerpc/powerpc64/Makefile 2003/10/22 21:30:03 1.3
359.18 -+++ libc/sysdeps/powerpc/powerpc64/Makefile 2004/02/20 05:43:52 1.4
359.19 -@@ -20,5 +20,5 @@
359.20 -
359.21 - ifeq ($(subdir),elf)
359.22 - # help gcc inline asm code from dl-machine.h
359.23 --+cflags += --param max-inline-insns=2000
359.24 -++cflags += -finline-limit=2000
359.25 - endif
359.26 -
360.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-elf.patch Tue Aug 14 19:32:22 2007 +0000
360.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
360.3 @@ -1,34 +0,0 @@
360.4 -
360.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-load.c.diff?r1=1.235&r2=1.236&cvsroot=glibc
360.6 -
360.7 -Fixes gcc-3.5 errors
360.8 -
360.9 -dl-load.c: In function `_dl_map_object_from_fd':
360.10 -dl-load.c:1179: error: invalid lvalue in assignment
360.11 -dl-load.c:1205: error: invalid lvalue in assignment
360.12 -
360.13 -===================================================================
360.14 -RCS file: /cvs/glibc/libc/elf/dl-load.c,v
360.15 -retrieving revision 1.235
360.16 -retrieving revision 1.236
360.17 -diff -u -r1.235 -r1.236
360.18 ---- libc/elf/dl-load.c 2004/02/09 07:03:48 1.235
360.19 -+++ libc/elf/dl-load.c 2004/02/21 18:25:41 1.236
360.20 -@@ -1228,7 +1228,7 @@
360.21 - }
360.22 - else
360.23 - /* Adjust the PT_PHDR value by the runtime load address. */
360.24 -- (ElfW(Addr)) l->l_phdr += l->l_addr;
360.25 -+ l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
360.26 - }
360.27 -
360.28 - #ifdef USE_TLS
360.29 -@@ -1254,7 +1254,7 @@
360.30 - }
360.31 - }
360.32 - else
360.33 -- (ElfW(Addr)) l->l_ld += l->l_addr;
360.34 -+ l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
360.35 -
360.36 - l->l_entry += l->l_addr;
360.37 -
361.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-gconv.patch Tue Aug 14 19:32:22 2007 +0000
361.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
361.3 @@ -1,228 +0,0 @@
361.4 -Fixes
361.5 -gconv_open.c: In function `__gconv_open':
361.6 -gconv_open.c:186: error: invalid lvalue in assignment
361.7 -when building glibc-2.3.2 with gcc-3.5.
361.8 -
361.9 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_simple.c.diff?r1=1.59&r2=1.63&cvsroot=glibc'
361.10 - * (internal_ucs4_loop): Fix typo in last change.
361.11 -
361.12 - * (internal_ucs4le_loop): Remove cast used as lvalue.
361.13 -
361.14 - * Fix last commit.
361.15 -
361.16 - * iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
361.17 - (internal_ucs4le_loop_single): Likewise.
361.18 - (ucs4_internal_loop): Likewise.
361.19 - (BODY): Likewise.
361.20 - (internal_ucs4_loop_single): Likewise.
361.21 -
361.22 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_open.c.diff?r1=1.32&r2=1.33&cvsroot=glibc'
361.23 - * iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
361.24 - (internal_ucs4le_loop_single): Likewise.
361.25 - (ucs4_internal_loop): Likewise.
361.26 - (BODY): Likewise.
361.27 - (internal_ucs4_loop_single): Likewise.
361.28 -
361.29 -
361.30 -===================================================================
361.31 -RCS file: /cvs/glibc/libc/iconv/gconv_open.c,v
361.32 -retrieving revision 1.32
361.33 -retrieving revision 1.33
361.34 -diff -u -r1.32 -r1.33
361.35 ---- libc/iconv/gconv_open.c 2001/11/29 04:51:58 1.32
361.36 -+++ libc/iconv/gconv_open.c 2004/02/07 15:56:32 1.33
361.37 -@@ -1,5 +1,5 @@
361.38 - /* Find matching transformation algorithms and initialize steps.
361.39 -- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
361.40 -+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
361.41 - This file is part of the GNU C Library.
361.42 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
361.43 -
361.44 -@@ -182,8 +182,13 @@
361.45 - || __builtin_expect (__gconv_translit_find (runp), 0) == 0)
361.46 - lastp = runp;
361.47 - else
361.48 -- /* This means we haven't found the module. Remove it. */
361.49 -- (lastp == NULL ? trans : lastp->next) = runp->next;
361.50 -+ {
361.51 -+ /* This means we haven't found the module. Remove it. */
361.52 -+ if (lastp == NULL)
361.53 -+ trans = runp->next;
361.54 -+ else
361.55 -+ lastp->next = runp->next;
361.56 -+ }
361.57 - }
361.58 -
361.59 - /* Allocate room for handle. */
361.60 -===================================================================
361.61 -RCS file: /cvs/glibc/libc/iconv/gconv_simple.c,v
361.62 -retrieving revision 1.59
361.63 -retrieving revision 1.63
361.64 -diff -u -r1.59 -r1.63
361.65 ---- libc/iconv/gconv_simple.c 2003/06/11 21:36:37 1.59
361.66 -+++ libc/iconv/gconv_simple.c 2004/03/09 10:00:31 1.63
361.67 -@@ -1,5 +1,5 @@
361.68 - /* Simple transformations functions.
361.69 -- Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
361.70 -+ Copyright (C) 1997-2003, 2004 Free Software Foundation, Inc.
361.71 - This file is part of the GNU C Library.
361.72 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
361.73 -
361.74 -@@ -87,12 +87,13 @@
361.75 - #if __BYTE_ORDER == __LITTLE_ENDIAN
361.76 - /* Sigh, we have to do some real work. */
361.77 - size_t cnt;
361.78 -+ uint32_t *outptr32 = (uint32_t *) outptr;
361.79 -
361.80 - for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
361.81 -- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
361.82 -+ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
361.83 -
361.84 - *inptrp = inptr;
361.85 -- *outptrp = outptr;
361.86 -+ *outptrp = (unsigned char *) outptr32;
361.87 - #elif __BYTE_ORDER == __BIG_ENDIAN
361.88 - /* Simply copy the data. */
361.89 - *inptrp = inptr + n_convert * 4;
361.90 -@@ -192,13 +193,16 @@
361.91 - (*outptrp)[2] = state->__value.__wchb[1];
361.92 - (*outptrp)[3] = state->__value.__wchb[0];
361.93 -
361.94 -- *outptrp += 4;
361.95 - #elif __BYTE_ORDER == __BIG_ENDIAN
361.96 - /* XXX unaligned */
361.97 -- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
361.98 -+ (*outptrp)[0] = state->__value.__wchb[0];
361.99 -+ (*outptrp)[1] = state->__value.__wchb[1];
361.100 -+ (*outptrp)[2] = state->__value.__wchb[2];
361.101 -+ (*outptrp)[3] = state->__value.__wchb[3];
361.102 - #else
361.103 - # error "This endianess is not supported."
361.104 - #endif
361.105 -+ *outptrp += 4;
361.106 -
361.107 - /* Clear the state buffer. */
361.108 - state->__count &= ~7;
361.109 -@@ -268,7 +272,8 @@
361.110 - return __GCONV_ILLEGAL_INPUT;
361.111 - }
361.112 -
361.113 -- *((uint32_t *) outptr)++ = inval;
361.114 -+ *((uint32_t *) outptr) = inval;
361.115 -+ outptr += sizeof (uint32_t);
361.116 - }
361.117 -
361.118 - *inptrp = inptr;
361.119 -@@ -447,9 +452,11 @@
361.120 - #if __BYTE_ORDER == __BIG_ENDIAN
361.121 - /* Sigh, we have to do some real work. */
361.122 - size_t cnt;
361.123 -+ uint32_t *outptr32 = (uint32_t *) outptr;
361.124 -
361.125 - for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
361.126 -- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
361.127 -+ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
361.128 -+ outptr = (unsigned char *) outptr32;
361.129 -
361.130 - *inptrp = inptr;
361.131 - *outptrp = outptr;
361.132 -@@ -555,12 +562,17 @@
361.133 - (*outptrp)[2] = state->__value.__wchb[1];
361.134 - (*outptrp)[3] = state->__value.__wchb[0];
361.135 -
361.136 -- *outptrp += 4;
361.137 - #else
361.138 - /* XXX unaligned */
361.139 -- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
361.140 -+ (*outptrp)[0] = state->__value.__wchb[0];
361.141 -+ (*outptrp)[1] = state->__value.__wchb[1];
361.142 -+ (*outptrp)[2] = state->__value.__wchb[2];
361.143 -+ (*outptrp)[3] = state->__value.__wchb[3];
361.144 -+
361.145 - #endif
361.146 -
361.147 -+ *outptrp += 4;
361.148 -+
361.149 - /* Clear the state buffer. */
361.150 - state->__count &= ~7;
361.151 -
361.152 -@@ -626,7 +638,8 @@
361.153 - return __GCONV_ILLEGAL_INPUT;
361.154 - }
361.155 -
361.156 -- *((uint32_t *) outptr)++ = inval;
361.157 -+ *((uint32_t *) outptr) = inval;
361.158 -+ outptr += sizeof (uint32_t);
361.159 - }
361.160 -
361.161 - *inptrp = inptr;
361.162 -@@ -808,7 +821,8 @@
361.163 - } \
361.164 - else \
361.165 - /* It's an one byte sequence. */ \
361.166 -- *((uint32_t *) outptr)++ = *inptr++; \
361.167 -+ *((uint32_t *) outptr) = *inptr++; \
361.168 -+ outptr += sizeof (uint32_t); \
361.169 - }
361.170 - #define LOOP_NEED_FLAGS
361.171 - #include <iconv/loop.c>
361.172 -@@ -838,7 +852,8 @@
361.173 - } \
361.174 - else \
361.175 - /* It's an one byte sequence. */ \
361.176 -- *outptr++ = *((const uint32_t *) inptr)++; \
361.177 -+ *outptr++ = *((const uint32_t *) inptr); \
361.178 -+ inptr += sizeof (uint32_t); \
361.179 - }
361.180 - #define LOOP_NEED_FLAGS
361.181 - #include <iconv/loop.c>
361.182 -@@ -1032,7 +1047,8 @@
361.183 - } \
361.184 - \
361.185 - /* Now adjust the pointers and store the result. */ \
361.186 -- *((uint32_t *) outptr)++ = ch; \
361.187 -+ *((uint32_t *) outptr) = ch; \
361.188 -+ outptr += sizeof (uint32_t); \
361.189 - }
361.190 - #define LOOP_NEED_FLAGS
361.191 -
361.192 -@@ -1153,7 +1169,8 @@
361.193 - STANDARD_FROM_LOOP_ERR_HANDLER (2); \
361.194 - } \
361.195 - \
361.196 -- *((uint32_t *) outptr)++ = u1; \
361.197 -+ *((uint32_t *) outptr) = u1; \
361.198 -+ outptr += sizeof (uint32_t); \
361.199 - inptr += 2; \
361.200 - }
361.201 - #define LOOP_NEED_FLAGS
361.202 -@@ -1201,7 +1218,8 @@
361.203 - } \
361.204 - else \
361.205 - { \
361.206 -- *((uint16_t *) outptr)++ = val; \
361.207 -+ *((uint16_t *) outptr) = val; \
361.208 -+ outptr += sizeof (uint16_t); \
361.209 - inptr += 4; \
361.210 - } \
361.211 - }
361.212 -@@ -1242,7 +1260,8 @@
361.213 - continue; \
361.214 - } \
361.215 - \
361.216 -- *((uint32_t *) outptr)++ = u1; \
361.217 -+ *((uint32_t *) outptr) = u1; \
361.218 -+ outptr += sizeof (uint32_t); \
361.219 - inptr += 2; \
361.220 - }
361.221 - #define LOOP_NEED_FLAGS
361.222 -@@ -1291,7 +1310,8 @@
361.223 - } \
361.224 - else \
361.225 - { \
361.226 -- *((uint16_t *) outptr)++ = bswap_16 (val); \
361.227 -+ *((uint16_t *) outptr) = bswap_16 (val); \
361.228 -+ outptr += sizeof (uint16_t); \
361.229 - inptr += 4; \
361.230 - } \
361.231 - }
362.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-msort.patch Tue Aug 14 19:32:22 2007 +0000
362.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
362.3 @@ -1,46 +0,0 @@
362.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdlib/msort.c.diff?r1=1.20&r2=1.21&cvsroot=glibc
362.5 -
362.6 -Fixes
362.7 -
362.8 -msort.c: In function `msort_with_tmp':
362.9 -msort.c:59: error: invalid lvalue in increment
362.10 -msort.c:59: error: invalid lvalue in increment
362.11 -msort.c:64: error: invalid lvalue in increment
362.12 -msort.c:64: error: invalid lvalue in increment
362.13 -
362.14 -when building with gcc-3.5.
362.15 -
362.16 -===================================================================
362.17 -RCS file: /cvs/glibc/libc/stdlib/msort.c,v
362.18 -retrieving revision 1.20
362.19 -retrieving revision 1.21
362.20 -diff -u -r1.20 -r1.21
362.21 ---- libc/stdlib/msort.c 2002/09/24 04:20:57 1.20
362.22 -+++ libc/stdlib/msort.c 2004/02/07 15:57:34 1.21
362.23 -@@ -1,6 +1,6 @@
362.24 - /* An alternative to qsort, with an identical interface.
362.25 - This file is part of the GNU C Library.
362.26 -- Copyright (C) 1992,95-97,99,2000,01,02 Free Software Foundation, Inc.
362.27 -+ Copyright (C) 1992,95-97,99,2000,01,02,04 Free Software Foundation, Inc.
362.28 - Written by Mike Haertel, September 1988.
362.29 -
362.30 - The GNU C Library is free software; you can redistribute it and/or
362.31 -@@ -56,12 +56,16 @@
362.32 - if ((*cmp) (b1, b2) <= 0)
362.33 - {
362.34 - --n1;
362.35 -- *((op_t *) tmp)++ = *((op_t *) b1)++;
362.36 -+ *((op_t *) tmp) = *((op_t *) b1);
362.37 -+ tmp += sizeof (op_t);
362.38 -+ b1 += sizeof (op_t);
362.39 - }
362.40 - else
362.41 - {
362.42 - --n2;
362.43 -- *((op_t *) tmp)++ = *((op_t *) b2)++;
362.44 -+ *((op_t *) tmp) = *((op_t *) b2);
362.45 -+ tmp += sizeof (op_t);
362.46 -+ b2 += sizeof (op_t);
362.47 - }
362.48 - }
362.49 - else
363.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-sunrpc.patch Tue Aug 14 19:32:22 2007 +0000
363.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
363.3 @@ -1,233 +0,0 @@
363.4 -http://sources.redhat.com/ml/libc-hacker/2004-02/msg00005.html
363.5 -[Also in CVS, but the original patch is easier to get.]
363.6 -
363.7 -Fixes errors like
363.8 -
363.9 -clnt_perr.c: In function `_buf':
363.10 -clnt_perr.c:67: error: invalid lvalue in assignment
363.11 -
363.12 -when building with gcc-3.5.
363.13 -
363.14 -To: libc-hacker at sources dot redhat dot com
363.15 -Subject: Fix cast as lvalue in sunrpc
363.16 -From: Andreas Schwab <schwab at suse dot de>
363.17 -X-Yow: SHHHH!! I hear SIX TATTOOED TRUCK-DRIVERS tossing ENGINE BLOCKS
363.18 - into empty OIL DRUMS dot dot
363.19 -Date: Sun, 08 Feb 2004 17:38:31 +0100
363.20 -Message-ID: <je4qu1frw8.fsf@sykes.suse.de>
363.21 -
363.22 -This fixes the uses of casts as lvalue in the sunrpc code.
363.23 -
363.24 -Andreas.
363.25 -
363.26 -2004-02-08 Andreas Schwab <schwab@suse.de>
363.27 -
363.28 - * include/rpc/rpc.h: Declare thread variables with their correct
363.29 - type.
363.30 - * sunrpc/clnt_perr.c: Don't cast thread variables.
363.31 - * sunrpc/clnt_raw.c: Likewise.
363.32 - * sunrpc/clnt_simp.c: Likewise.
363.33 - * sunrpc/key_call.c: Likewise.
363.34 - * sunrpc/svcauth_des.c: Likewise.
363.35 - * sunrpc/svc.c: Likewise.
363.36 - * sunrpc/svc_raw.c: Likewise.
363.37 - * sunrpc/svc_simple.c: Likewise.
363.38 -
363.39 -Index: include/rpc/rpc.h
363.40 -===================================================================
363.41 -RCS file: /cvs/glibc/libc/include/rpc/rpc.h,v
363.42 -retrieving revision 1.8
363.43 -diff -u -p -a -r1.8 rpc.h
363.44 ---- glibc/include/rpc/rpc.h 5 Aug 2002 22:10:59 -0000 1.8
363.45 -+++ glibc/include/rpc/rpc.h 8 Feb 2004 14:19:14 -0000
363.46 -@@ -17,24 +17,24 @@ struct rpc_thread_variables {
363.47 - struct pollfd *svc_pollfd_s; /* Global, rpc_common.c */
363.48 - int svc_max_pollfd_s; /* Global, rpc_common.c */
363.49 -
363.50 -- void *clnt_perr_buf_s; /* clnt_perr.c */
363.51 -+ char *clnt_perr_buf_s; /* clnt_perr.c */
363.52 -
363.53 -- void *clntraw_private_s; /* clnt_raw.c */
363.54 -+ struct clntraw_private_s *clntraw_private_s; /* clnt_raw.c */
363.55 -
363.56 -- void *callrpc_private_s; /* clnt_simp.c */
363.57 -+ struct callrpc_private_s *callrpc_private_s; /* clnt_simp.c */
363.58 -
363.59 -- void *key_call_private_s; /* key_call.c */
363.60 -+ struct key_call_private *key_call_private_s; /* key_call.c */
363.61 -
363.62 -- void *authdes_cache_s; /* svcauth_des.c */
363.63 -- void *authdes_lru_s; /* svcauth_des.c */
363.64 -+ struct cache_entry *authdes_cache_s; /* svcauth_des.c */
363.65 -+ int *authdes_lru_s; /* svcauth_des.c */
363.66 -
363.67 -- void *svc_xports_s; /* svc.c */
363.68 -- void *svc_head_s; /* svc.c */
363.69 -+ SVCXPRT **svc_xports_s; /* svc.c */
363.70 -+ struct svc_callout *svc_head_s; /* svc.c */
363.71 -
363.72 -- void *svcraw_private_s; /* svc_raw.c */
363.73 -+ struct svcraw_private_s *svcraw_private_s; /* svc_raw.c */
363.74 -
363.75 -- void *svcsimple_proglst_s; /* svc_simple.c */
363.76 -- void *svcsimple_transp_s; /* svc_simple.c */
363.77 -+ struct proglst_ *svcsimple_proglst_s; /* svc_simple.c */
363.78 -+ SVCXPRT *svcsimple_transp_s; /* svc_simple.c */
363.79 - };
363.80 -
363.81 - extern struct rpc_thread_variables *__rpc_thread_variables(void)
363.82 -Index: sunrpc/clnt_perr.c
363.83 -===================================================================
363.84 -RCS file: /cvs/glibc/libc/sunrpc/clnt_perr.c,v
363.85 -retrieving revision 1.19
363.86 -diff -u -p -a -r1.19 clnt_perr.c
363.87 ---- glibc/sunrpc/clnt_perr.c 1 Nov 2002 20:43:54 -0000 1.19
363.88 -+++ glibc/sunrpc/clnt_perr.c 8 Feb 2004 14:19:14 -0000
363.89 -@@ -55,7 +55,7 @@ static char *auth_errmsg (enum auth_stat
363.90 - * buf variable in a few functions. Overriding a global variable
363.91 - * with a local variable of the same name is a bad idea, anyway.
363.92 - */
363.93 --#define buf ((char *)RPC_THREAD_VARIABLE(clnt_perr_buf_s))
363.94 -+#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
363.95 - #else
363.96 - static char *buf;
363.97 - #endif
363.98 -Index: sunrpc/clnt_raw.c
363.99 -===================================================================
363.100 -RCS file: /cvs/glibc/libc/sunrpc/clnt_raw.c,v
363.101 -retrieving revision 1.10
363.102 -diff -u -p -a -r1.10 clnt_raw.c
363.103 ---- glibc/sunrpc/clnt_raw.c 15 May 2002 00:21:00 -0000 1.10
363.104 -+++ glibc/sunrpc/clnt_raw.c 8 Feb 2004 14:19:14 -0000
363.105 -@@ -61,7 +61,7 @@ struct clntraw_private_s
363.106 - u_int mcnt;
363.107 - };
363.108 - #ifdef _RPC_THREAD_SAFE_
363.109 --#define clntraw_private ((struct clntraw_private_s *)RPC_THREAD_VARIABLE(clntraw_private_s))
363.110 -+#define clntraw_private RPC_THREAD_VARIABLE(clntraw_private_s)
363.111 - #else
363.112 - static struct clntraw_private_s *clntraw_private;
363.113 - #endif
363.114 -Index: sunrpc/clnt_simp.c
363.115 -===================================================================
363.116 -RCS file: /cvs/glibc/libc/sunrpc/clnt_simp.c,v
363.117 -retrieving revision 1.14
363.118 -diff -u -p -a -r1.14 clnt_simp.c
363.119 ---- glibc/sunrpc/clnt_simp.c 15 May 2002 00:21:00 -0000 1.14
363.120 -+++ glibc/sunrpc/clnt_simp.c 8 Feb 2004 14:19:14 -0000
363.121 -@@ -55,7 +55,7 @@ struct callrpc_private_s
363.122 - char *oldhost;
363.123 - };
363.124 - #ifdef _RPC_THREAD_SAFE_
363.125 --#define callrpc_private ((struct callrpc_private_s *)RPC_THREAD_VARIABLE(callrpc_private_s))
363.126 -+#define callrpc_private RPC_THREAD_VARIABLE(callrpc_private_s)
363.127 - #else
363.128 - static struct callrpc_private_s *callrpc_private;
363.129 - #endif
363.130 -Index: sunrpc/key_call.c
363.131 -===================================================================
363.132 -RCS file: /cvs/glibc/libc/sunrpc/key_call.c,v
363.133 -retrieving revision 1.16
363.134 -diff -u -p -a -r1.16 key_call.c
363.135 ---- glibc/sunrpc/key_call.c 6 Aug 2002 06:08:50 -0000 1.16
363.136 -+++ glibc/sunrpc/key_call.c 8 Feb 2004 14:19:14 -0000
363.137 -@@ -370,7 +370,7 @@ struct key_call_private {
363.138 - uid_t uid; /* user-id at last authorization */
363.139 - };
363.140 - #ifdef _RPC_THREAD_SAFE_
363.141 --#define key_call_private_main ((struct key_call_private *)RPC_THREAD_VARIABLE(key_call_private_s))
363.142 -+#define key_call_private_main RPC_THREAD_VARIABLE(key_call_private_s)
363.143 - #else
363.144 - static struct key_call_private *key_call_private_main;
363.145 - #endif
363.146 -Index: sunrpc/svc.c
363.147 -===================================================================
363.148 -RCS file: /cvs/glibc/libc/sunrpc/svc.c,v
363.149 -retrieving revision 1.17
363.150 -diff -u -p -a -r1.17 svc.c
363.151 ---- glibc/sunrpc/svc.c 29 Aug 2003 07:45:18 -0000 1.17
363.152 -+++ glibc/sunrpc/svc.c 8 Feb 2004 14:19:14 -0000
363.153 -@@ -44,7 +44,7 @@
363.154 - #include <sys/poll.h>
363.155 -
363.156 - #ifdef _RPC_THREAD_SAFE_
363.157 --#define xports ((SVCXPRT **)RPC_THREAD_VARIABLE(svc_xports_s))
363.158 -+#define xports RPC_THREAD_VARIABLE(svc_xports_s)
363.159 - #else
363.160 - static SVCXPRT **xports;
363.161 - #endif
363.162 -@@ -63,7 +63,7 @@ struct svc_callout {
363.163 - void (*sc_dispatch) (struct svc_req *, SVCXPRT *);
363.164 - };
363.165 - #ifdef _RPC_THREAD_SAFE_
363.166 --#define svc_head ((struct svc_callout *)RPC_THREAD_VARIABLE(svc_head_s))
363.167 -+#define svc_head RPC_THREAD_VARIABLE(svc_head_s)
363.168 - #else
363.169 - static struct svc_callout *svc_head;
363.170 - #endif
363.171 -Index: sunrpc/svc_raw.c
363.172 -===================================================================
363.173 -RCS file: /cvs/glibc/libc/sunrpc/svc_raw.c,v
363.174 -retrieving revision 1.5
363.175 -diff -u -p -a -r1.5 svc_raw.c
363.176 ---- glibc/sunrpc/svc_raw.c 26 Feb 2002 01:43:56 -0000 1.5
363.177 -+++ glibc/sunrpc/svc_raw.c 8 Feb 2004 14:19:14 -0000
363.178 -@@ -54,7 +54,7 @@ struct svcraw_private_s
363.179 - char verf_body[MAX_AUTH_BYTES];
363.180 - };
363.181 - #ifdef _RPC_THREAD_SAFE_
363.182 --#define svcraw_private ((struct svcraw_private_s *)RPC_THREAD_VARIABLE(svcraw_private_s))
363.183 -+#define svcraw_private RPC_THREAD_VARIABLE(svcraw_private_s)
363.184 - #else
363.185 - static struct svcraw_private_s *svcraw_private;
363.186 - #endif
363.187 -Index: sunrpc/svc_simple.c
363.188 -===================================================================
363.189 -RCS file: /cvs/glibc/libc/sunrpc/svc_simple.c,v
363.190 -retrieving revision 1.16
363.191 -diff -u -p -a -r1.16 svc_simple.c
363.192 ---- glibc/sunrpc/svc_simple.c 6 Aug 2002 05:10:30 -0000 1.16
363.193 -+++ glibc/sunrpc/svc_simple.c 8 Feb 2004 14:19:14 -0000
363.194 -@@ -61,7 +61,7 @@ struct proglst_
363.195 - struct proglst_ *p_nxt;
363.196 - };
363.197 - #ifdef _RPC_THREAD_SAFE_
363.198 --#define proglst ((struct proglst_ *)RPC_THREAD_VARIABLE(svcsimple_proglst_s))
363.199 -+#define proglst RPC_THREAD_VARIABLE(svcsimple_proglst_s)
363.200 - #else
363.201 - static struct proglst_ *proglst;
363.202 - #endif
363.203 -@@ -69,7 +69,7 @@ static struct proglst_ *proglst;
363.204 -
363.205 - static void universal (struct svc_req *rqstp, SVCXPRT *transp_s);
363.206 - #ifdef _RPC_THREAD_SAFE_
363.207 --#define transp ((SVCXPRT *)RPC_THREAD_VARIABLE(svcsimple_transp_s))
363.208 -+#define transp RPC_THREAD_VARIABLE(svcsimple_transp_s)
363.209 - #else
363.210 - static SVCXPRT *transp;
363.211 - #endif
363.212 -Index: sunrpc/svcauth_des.c
363.213 -===================================================================
363.214 -RCS file: /cvs/glibc/libc/sunrpc/svcauth_des.c,v
363.215 -retrieving revision 1.8
363.216 -diff -u -p -a -r1.8 svcauth_des.c
363.217 ---- glibc/sunrpc/svcauth_des.c 20 Aug 2001 06:37:09 -0000 1.8
363.218 -+++ glibc/sunrpc/svcauth_des.c 8 Feb 2004 14:19:14 -0000
363.219 -@@ -72,8 +72,8 @@ struct cache_entry
363.220 - char *localcred; /* generic local credential */
363.221 - };
363.222 - #ifdef _RPC_THREAD_SAFE_
363.223 --#define authdes_cache ((struct cache_entry *)RPC_THREAD_VARIABLE(authdes_cache_s))
363.224 --#define authdes_lru ((int *)RPC_THREAD_VARIABLE(authdes_lru_s))
363.225 -+#define authdes_cache RPC_THREAD_VARIABLE(authdes_cache_s)
363.226 -+#define authdes_lru RPC_THREAD_VARIABLE(authdes_lru_s)
363.227 - #else
363.228 - static struct cache_entry *authdes_cache;
363.229 - static int *authdes_lru;
363.230 -
363.231 ---
363.232 -Andreas Schwab, SuSE Labs, schwab@suse.de
363.233 -SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
363.234 -Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
363.235 -"And now for something completely different."
363.236 -
364.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-xdr.patch Tue Aug 14 19:32:22 2007 +0000
364.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
364.3 @@ -1,44 +0,0 @@
364.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/rpc/xdr.h.diff?r1=1.27&r2=1.28&cvsroot=glibc
364.5 -(but see also http://sources.redhat.com/ml/libc-alpha/2004-03/msg00267.html
364.6 -and http://gcc.gnu.org/ml/gcc-patches/2004-03/msg02056.html)
364.7 -
364.8 -Fixes errors
364.9 -
364.10 -rpc_cmsg.c: In function `xdr_callmsg':
364.11 -rpc_cmsg.c:70: error: invalid lvalue in increment
364.12 -rpc_cmsg.c:71: error: invalid lvalue in increment
364.13 -rpc_cmsg.c:74: error: invalid lvalue in increment
364.14 -rpc_cmsg.c:77: error: invalid lvalue in increment
364.15 -rpc_cmsg.c:78: error: invalid lvalue in increment
364.16 -rpc_cmsg.c:79: error: invalid lvalue in increment
364.17 -rpc_cmsg.c:81: error: invalid lvalue in increment
364.18 -rpc_cmsg.c:89: error: invalid lvalue in increment
364.19 -rpc_cmsg.c:106: error: invalid lvalue in increment
364.20 -rpc_cmsg.c:107: error: invalid lvalue in increment
364.21 -rpc_cmsg.c:112: error: invalid lvalue in increment
364.22 -rpc_cmsg.c:117: error: invalid lvalue in increment
364.23 -rpc_cmsg.c:118: error: invalid lvalue in increment
364.24 -rpc_cmsg.c:119: error: invalid lvalue in increment
364.25 -rpc_cmsg.c:121: error: invalid lvalue in increment
364.26 -rpc_cmsg.c:160: error: invalid lvalue in increment
364.27 -
364.28 -===================================================================
364.29 -RCS file: /cvs/glibc/libc/sunrpc/rpc/xdr.h,v
364.30 -retrieving revision 1.27
364.31 -retrieving revision 1.28
364.32 -diff -u -r1.27 -r1.28
364.33 ---- libc/sunrpc/rpc/xdr.h 2002/12/16 02:05:49 1.27
364.34 -+++ libc/sunrpc/rpc/xdr.h 2004/03/22 10:52:33 1.28
364.35 -@@ -262,10 +262,8 @@
364.36 - * and shouldn't be used any longer. Code which use this defines or longs
364.37 - * in the RPC code will not work on 64bit Solaris platforms !
364.38 - */
364.39 --#define IXDR_GET_LONG(buf) \
364.40 -- ((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
364.41 --#define IXDR_PUT_LONG(buf, v) \
364.42 -- (*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
364.43 -+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
364.44 -+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
364.45 - #define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
364.46 - #define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
364.47 -
365.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-arm-fix-strlen.patch Tue Aug 14 19:32:22 2007 +0000
365.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
365.3 @@ -1,54 +0,0 @@
365.4 -See also
365.5 -http://lists.gnu.org/archive/html/bug-glibc/2002-12/msg00056.html
365.6 -http://lists.arm.linux.org.uk/pipermail/linux-arm-toolchain/2004-June/000016.html
365.7 -
365.8 -2002-12-12 Andreas Schwab <schwab@suse.de>
365.9 - * sysdeps/arm/strlen.S: Fix last word check for big endian.
365.10 -
365.11 -To: libc-alpha at sources dot redhat dot com
365.12 -Subject: [PATCH] REPOST: ARM big-endian strlen() fix
365.13 -References: <m3brjy27mo.fsf@defiant.pm.waw.pl>
365.14 -From: Krzysztof Halasa <khc at pm dot waw dot pl>
365.15 -Date: Thu, 10 Jun 2004 13:41:44 +0200
365.16 -Message-ID: <m3r7sn8wsn.fsf@defiant.pm.waw.pl>
365.17 -MIME-Version: 1.0
365.18 -Content-Type: multipart/mixed; boundary="=-=-="
365.19 -
365.20 ---=-=-=
365.21 -
365.22 -The attached patch fixes strlen() on big-endian ARM. Please apply.
365.23 -Thanks.
365.24 ---
365.25 -Krzysztof Halasa, B*FH
365.26 -
365.27 ---=-=-=
365.28 -Content-Type: text/x-patch
365.29 -Content-Disposition: inline; filename=glibc-strlen.patch
365.30 -
365.31 ---- glibc-2.3.3.old/sysdeps/arm/strlen.S 2003-04-30 00:47:20.000000000 +0200
365.32 -+++ glibc-2.3.3/sysdeps/arm/strlen.S 2004-06-06 03:21:48.351931240 +0200
365.33 -@@ -53,12 +53,21 @@
365.34 - ldrne r2, [r1], $4 @ and we continue to the next word
365.35 - bne Laligned @
365.36 - Llastword: @ drop through to here once we find a
365.37 -+#ifdef __ARMEB__
365.38 -+ tst r2, $0xff000000 @ word that has a zero byte in it
365.39 -+ addne r0, r0, $1 @
365.40 -+ tstne r2, $0x00ff0000 @ and add up to 3 bytes on to it
365.41 -+ addne r0, r0, $1 @
365.42 -+ tstne r2, $0x0000ff00 @ (if first three all non-zero, 4th
365.43 -+ addne r0, r0, $1 @ must be zero)
365.44 -+#else
365.45 - tst r2, $0x000000ff @ word that has a zero byte in it
365.46 - addne r0, r0, $1 @
365.47 - tstne r2, $0x0000ff00 @ and add up to 3 bytes on to it
365.48 - addne r0, r0, $1 @
365.49 - tstne r2, $0x00ff0000 @ (if first three all non-zero, 4th
365.50 - addne r0, r0, $1 @ must be zero)
365.51 -+#endif
365.52 - RETINSTR(mov,pc,lr)
365.53 - END(strlen)
365.54 - libc_hidden_builtin_def (strlen)
365.55 -
365.56 ---=-=-=--
365.57 -
366.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-pr139-fix.patch Tue Aug 14 19:32:22 2007 +0000
366.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
366.3 @@ -1,104 +0,0 @@
366.4 -2004-04-29 Jakub Jelinek <jakub@redhat.com>
366.5 -
366.6 - * sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c (_Qp_qtoi): Use %f31
366.7 - for single precision register, add it to __asm clobbers [BZ #139].
366.8 - * sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c (_Qp_qtoui): Use %f31
366.9 - for single precision register, add it to __asm clobbers.
366.10 - * sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c (_Qp_qtoux): Use fqtox
366.11 - instead of fqtoi in QP_HANDLE_EXCEPTIONS.
366.12 - * sysdeps/sparc/sparc64/soft-fp/qp_qtox.c (_Qp_qtox): Likewise.
366.13 - Reported by M. H. VanLeeuwen <vanl@megsinet.net>.
366.14 -
366.15 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=139
366.16 -Fixes error
366.17 -qp_qtoi.s:261: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
366.18 -plus a couple other things vanl noticed.
366.19 -
366.20 -diff -ur orig/qp_qtoi.c new/qp_qtoi.c
366.21 ---- orig/qp_qtoi.c Sat May 1 00:40:06 2004
366.22 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c Sat May 1 00:39:40 2004
366.23 -@@ -1,6 +1,6 @@
366.24 - /* Software floating-point emulation.
366.25 - Return (int)(*a)
366.26 -- Copyright (C) 1997,1999 Free Software Foundation, Inc.
366.27 -+ Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
366.28 - This file is part of the GNU C Library.
366.29 - Contributed by Richard Henderson (rth@cygnus.com) and
366.30 - Jakub Jelinek (jj@ultra.linux.cz).
366.31 -@@ -38,9 +38,9 @@
366.32 - __asm (
366.33 - " ldd [%1], %%f52\n"
366.34 - " ldd [%1+8], %%f54\n"
366.35 --" fqtoi %%f52, %%f60\n"
366.36 --" st %%f60, [%0]\n"
366.37 --" " : : "r" (&rx), "r" (a) : QP_CLOBBER);
366.38 -+" fqtoi %%f52, %%f31\n"
366.39 -+" st %%f31, [%0]\n"
366.40 -+" " : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
366.41 - r = rx);
366.42 -
366.43 - return r;
366.44 -diff -ur orig/qp_qtoui.c new/qp_qtoui.c
366.45 ---- orig/qp_qtoui.c Sat May 1 00:40:06 2004
366.46 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c Sat May 1 00:39:40 2004
366.47 -@@ -1,6 +1,6 @@
366.48 - /* Software floating-point emulation.
366.49 - Return (unsigned int)(*a)
366.50 -- Copyright (C) 1997,1999 Free Software Foundation, Inc.
366.51 -+ Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
366.52 - This file is part of the GNU C Library.
366.53 - Contributed by Richard Henderson (rth@cygnus.com) and
366.54 - Jakub Jelinek (jj@ultra.linux.cz).
366.55 -@@ -38,9 +38,9 @@
366.56 - __asm (
366.57 - " ldd [%1], %%f52\n"
366.58 - " ldd [%1+8], %%f54\n"
366.59 --" fqtoi %%f52, %%f60\n"
366.60 --" st %%f60, [%0]\n"
366.61 --" " : : "r" (&rx), "r" (a) : QP_CLOBBER);
366.62 -+" fqtoi %%f52, %%f31\n"
366.63 -+" st %%f31, [%0]\n"
366.64 -+" " : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
366.65 - r = rx);
366.66 -
366.67 - return r;
366.68 -diff -ur orig/qp_qtoux.c new/qp_qtoux.c
366.69 ---- orig/qp_qtoux.c Sat May 1 00:40:06 2004
366.70 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c Sat May 1 00:39:40 2004
366.71 -@@ -1,6 +1,6 @@
366.72 - /* Software floating-point emulation.
366.73 - Return (unsigned long)(*a)
366.74 -- Copyright (C) 1997,1999 Free Software Foundation, Inc.
366.75 -+ Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
366.76 - This file is part of the GNU C Library.
366.77 - Contributed by Richard Henderson (rth@cygnus.com) and
366.78 - Jakub Jelinek (jj@ultra.linux.cz).
366.79 -@@ -38,7 +38,7 @@
366.80 - __asm (
366.81 - " ldd [%1], %%f52\n"
366.82 - " ldd [%1+8], %%f54\n"
366.83 --" fqtoi %%f52, %%f60\n"
366.84 -+" fqtox %%f52, %%f60\n"
366.85 - " std %%f60, [%0]\n"
366.86 - " " : : "r" (&rx), "r" (a) : QP_CLOBBER);
366.87 - r = rx);
366.88 -diff -ur orig/qp_qtox.c new/qp_qtox.c
366.89 ---- orig/qp_qtox.c Sat May 1 00:40:06 2004
366.90 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtox.c Sat May 1 00:39:40 2004
366.91 -@@ -1,6 +1,6 @@
366.92 - /* Software floating-point emulation.
366.93 - Return (long)(*a)
366.94 -- Copyright (C) 1997,1999 Free Software Foundation, Inc.
366.95 -+ Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
366.96 - This file is part of the GNU C Library.
366.97 - Contributed by Richard Henderson (rth@cygnus.com) and
366.98 - Jakub Jelinek (jj@ultra.linux.cz).
366.99 -@@ -38,7 +38,7 @@
366.100 - __asm (
366.101 - " ldd [%1], %%f52\n"
366.102 - " ldd [%1+8], %%f54\n"
366.103 --" fqtoi %%f52, %%f60\n"
366.104 -+" fqtox %%f52, %%f60\n"
366.105 - " std %%f60, [%0]\n"
366.106 - " " : : "r" (&rx), "r" (a) : QP_CLOBBER);
366.107 - r = rx);
367.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-sparc32-sysdep.patch Tue Aug 14 19:32:22 2007 +0000
367.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
367.3 @@ -1,46 +0,0 @@
367.4 -Fixes the error
367.5 -
367.6 -<stdin>: Assembler messages:
367.7 -<stdin>:2: Error: junk at end of line, first unrecognized character is `1' ...
367.8 -<stdin>:2: Error: Illegal operands: PC-relative operand can't be a constant
367.9 -make[4]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/io/rtld-open.os] Error 1
367.10 -make[4]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/io'
367.11 -make[3]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/io/rtld-xstat64.os] Error 2
367.12 -make[3]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/elf'
367.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/rtld-libc.a] Error 2
367.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/elf'
367.15 -make[1]: *** [elf/subdir_lib] Error 2
367.16 -
367.17 -when building glibc-2.3.2 with gcc-3.4.0 for sparc32.
367.18 -
367.19 -The .s file left behind by -save-temps contains the big long line
367.20 -
367.21 -.text; .global __libc_open; .align 4; __libc_open:; .type __libc_open,@function;; mov 5, %g1; ta 0x10; bcs __syscall_error_handler; nop; .section .gnu.linkonce.t. 1 .get_pic.l7,"ax",@progbits; .globl 1 .get_pic.l7; .hidden 1 .get_pic.l7; .type 1 .get_pic.l7,@function; 1 .get_pic.l7: retl; add %o7, %l7, %l7; .previous; .subsection 3; __syscall_error_handler: save %sp,-96,%sp; sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; call 1 .get_pic.l7; add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; ld [%l7 + errno], %l0; st %i0, [%l0]; jmpl %i7+8, %g0; restore %g0, -1, %o0; .previous;
367.22 - retl; nop
367.23 -
367.24 -The error messages appear to refer to the '1 .get_pic.17', e.g.
367.25 - .globl 1 .get_pic.l7; .hidden 1 .get_pic.l7;
367.26 -which seems to come from
367.27 -glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
367.28 -where it appears originally as
367.29 - .globl __sparc.get_pic.l7; \
367.30 - .hidden __sparc.get_pic.l7; \
367.31 -
367.32 -Note that __sparc is a predefined symbol on Solaris and some other environments;
367.33 -it's not surprising to see it predefined on Linux, too.
367.34 -
367.35 -
367.36 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h.old 2004-05-15 10:23:11.000000000 -0700
367.37 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h 2004-05-15 10:24:12.000000000 -0700
367.38 -@@ -39,6 +39,11 @@
367.39 - #undef END
367.40 - #undef LOC
367.41 -
367.42 -+/* gcc-3.4.0 seems to expand __sparc as a predefined preprocessor symbol, which we don't want here */
367.43 -+#ifdef __sparc
367.44 -+#undef __sparc
367.45 -+#endif
367.46 -+
367.47 - #define ENTRY(name) \
367.48 - .global C_SYMBOL_NAME(name); \
367.49 - .align 4;\
368.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-sparc64-dl-machine.patch Tue Aug 14 19:32:22 2007 +0000
368.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
368.3 @@ -1,29 +0,0 @@
368.4 -See http://gcc.gnu.org/PR15345
368.5 -
368.6 -Quick kludge by H.J.Lu
368.7 -Works around gcc-3.4.0 error which shows up when building glibc-2.3.2 for sparc64:
368.8 -
368.9 -.../sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc.a(dl-reloc.o)(.text+0x4b4): In function `elf_machine_load_address.3':
368.10 -: undefined reference to `_DYNAMIC'
368.11 -collect2: ld returned 1 exit status
368.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/sln] Error 1
368.13 -
368.14 -
368.15 ---- glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h.orig Sat May 8 20:54:26 2004
368.16 -+++ glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h Sat May 8 17:18:04 2004
368.17 -@@ -65,6 +65,7 @@
368.18 - }
368.19 -
368.20 - /* Return the run-time load address of the shared object. */
368.21 -+#ifdef IS_IN_rtld
368.22 - static inline Elf64_Addr
368.23 - elf_machine_load_address (void)
368.24 - {
368.25 -@@ -84,6 +85,7 @@
368.26 - pc[3]*4 is l_addr + _GLOBAL_OFFSET_TABLE_ - (long)pc - 12 */
368.27 - return (Elf64_Addr) got - *got + (Elf32_Sword) ((pc[2] - pc[3]) * 4) - 4;
368.28 - }
368.29 -+#endif
368.30 -
368.31 - /* We have 4 cases to handle. And we code different code sequences
368.32 - for each one. I love V9 code models... */
369.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-without-fp.patch Tue Aug 14 19:32:22 2007 +0000
369.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
369.3 @@ -1,89 +0,0 @@
369.4 -Sender: libc-alpha-owner@sources.redhat.com
369.5 -Date: Tue, 29 Jul 2003 17:49:47 -0400
369.6 -From: Daniel Jacobowitz <drow@mvista.com>
369.7 -To: GNU C Library <libc-alpha@sources.redhat.com>
369.8 -Subject: Re: __sim_exceptions undefined when linking glibc-2.3.2's libm.so with --without-fp
369.9 -Message-ID: <20030729214947.GA29932@nevyn.them.org>
369.10 -
369.11 -On Tue, Jul 29, 2003 at 02:53:33PM -0700, Dan Kegel wrote:
369.12 -> On ppc405, I'm getting the following when linking glibc's libm:
369.13 -> /gcc-3.3-glibc-2.3.2/build-glibc/math/libm_pic.a(fclrexcpt.os)(.text+0x1a):
369.14 -> In function `feclearexcept@GLIBC_2.1':
369.15 -> : undefined reference to `__sim_exceptions'
369.16 ->
369.17 -> That symbol seems to be present in libc.so. nm shows
369.18 -
369.19 ---without-fp doesn't work. Try this. Make up a changelog entry if it
369.20 -works.
369.21 -
369.22 -Date: Tue, 29 Jul 2003 14:56:50 -0700
369.23 -Message-Id: <200307292156.h6TLuol24356@magilla.sf.frob.com>
369.24 -From: Roland McGrath <roland@redhat.com>
369.25 -To: Daniel Jacobowitz <drow@mvista.com>
369.26 -Cc: GNU C Library <libc-alpha@sources.redhat.com>
369.27 -Subject: Re: __sim_exceptions undefined when linking glibc-2.3.2's libm.so with --without-fp
369.28 -In-Reply-To: Daniel Jacobowitz's message of Tuesday, 29 July 2003 17:49:47 -0400 <20030729214947.GA29932@nevyn.them.org>
369.29 -
369.30 -> +int __sim_exceptions __attribute__ ((section(".bss")));
369.31 -
369.32 -Use __attribute__ ((nocommon)) instead (and please watch the standard
369.33 -whitespace conventions, i.e. ``section ('').
369.34 -
369.35 -diff -purN glibc-2.3.2.orig/sysdeps/powerpc/nofpu/sim-full.c glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c
369.36 ---- glibc-2.3.2.orig/sysdeps/powerpc/nofpu/sim-full.c 2002-10-19 16:06:29.000000000 -0400
369.37 -+++ glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c 2003-05-14 15:10:42.000000000 -0400
369.38 -@@ -24,11 +24,14 @@
369.39 -
369.40 - /* Global to store sticky exceptions. */
369.41 --int __sim_exceptions;
369.42 -+int __sim_exceptions __attribute__ ((nocommon));
369.43 -+libc_hidden_data_def (__sim_exceptions);
369.44 -
369.45 - /* By default, no exceptions should trap. */
369.46 - int __sim_disabled_exceptions = 0xffffffff;
369.47 -+libc_hidden_data_def (__sim_disabled_exceptions);
369.48 -
369.49 --int __sim_round_mode;
369.50 -+int __sim_round_mode __attribute__ ((nocommon));
369.51 -+libc_hidden_data_def (__sim_round_mode);
369.52 -
369.53 - void
369.54 - __simulate_exceptions (int x)
369.55 -diff -purN glibc-2.3.2.orig/sysdeps/powerpc/nofpu/soft-supp.h glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h
369.56 ---- glibc-2.3.2.orig/sysdeps/powerpc/nofpu/soft-supp.h 2002-10-19 16:06:29.000000000 -0400
369.57 -+++ glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h 2003-05-14 15:09:53.000000000 -0400
369.58 -@@ -27,7 +27,11 @@ typedef union
369.59 - } fenv_union_t;
369.60 -
369.61 -
369.62 --extern int __sim_exceptions attribute_hidden;
369.63 --extern int __sim_disabled_exceptions attribute_hidden;
369.64 --extern int __sim_round_mode attribute_hidden;
369.65 -+extern int __sim_exceptions;
369.66 -+libc_hidden_proto (__sim_exceptions);
369.67 -+extern int __sim_disabled_exceptions;
369.68 -+libc_hidden_proto (__sim_disabled_exceptions);
369.69 -+extern int __sim_round_mode;
369.70 -+libc_hidden_proto (__sim_round_mode);
369.71 -+
369.72 - extern void __simulate_exceptions (int x) attribute_hidden;
369.73 -diff -urp glibc-2.3.2.orig/sysdeps/powerpc/soft-fp/sfp-machine.h glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h
369.74 ---- glibc-2.3.2.orig/sysdeps/powerpc/soft-fp/sfp-machine.h 2002-10-17 18:36:14.000000000 -0400
369.75 -+++ glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h 2003-05-14 16:48:13.000000000 -0400
369.76 -@@ -52,7 +52,11 @@
369.77 - #define FP_HANDLE_EXCEPTIONS __simulate_exceptions (_fex)
369.78 - #define FP_ROUNDMODE __sim_round_mode
369.79 -
369.80 --extern int __sim_exceptions attribute_hidden;
369.81 --extern int __sim_disabled_exceptions attribute_hidden;
369.82 --extern int __sim_round_mode attribute_hidden;
369.83 -+extern int __sim_exceptions;
369.84 -+libc_hidden_proto (__sim_exceptions);
369.85 -+extern int __sim_disabled_exceptions;
369.86 -+libc_hidden_proto (__sim_disabled_exceptions);
369.87 -+extern int __sim_round_mode;
369.88 -+libc_hidden_proto (__sim_round_mode);
369.89 -+
369.90 - extern void __simulate_exceptions (int x) attribute_hidden;
369.91 -
369.92 -
370.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-configure.patch Tue Aug 14 19:32:22 2007 +0000
370.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
370.3 @@ -1,30 +0,0 @@
370.4 -Fixes following problem building glibc-2.3.3 with gcc-4.0:
370.5 -
370.6 -checking version of i686-unknown-linux-gnu-gcc ... 4.0.0, bad
370.7 -checking for gnumake... no
370.8 -checking for gmake... gmake
370.9 -checking version of gmake... 3.79.1, ok
370.10 -checking for gnumsgfmt... no
370.11 -checking for gmsgfmt... no
370.12 -checking for msgfmt... msgfmt
370.13 -checking version of msgfmt... 0.11.4, ok
370.14 -checking for makeinfo... makeinfo
370.15 -checking version of makeinfo... 4.3, ok
370.16 -checking for sed... sed
370.17 -checking version of sed... 4.0.5, ok
370.18 -checking for autoconf... autoconf
370.19 -checking whether autoconf works... yes
370.20 -configure: error:
370.21 -*** These critical programs are missing or too old: gcc
370.22 -
370.23 ---- glibc-2.3.3/configure.old Mon Mar 14 12:01:10 2005
370.24 -+++ glibc-2.3.3/configure Mon Mar 14 12:02:03 2005
370.25 -@@ -3899,7 +3899,7 @@
370.26 - ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
370.27 - case $ac_prog_version in
370.28 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
370.29 -- 3.[2-9]*)
370.30 -+ 3.[2-9]*|4.[01]*)
370.31 - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
370.32 - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
370.33 -
371.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-elf-2.patch Tue Aug 14 19:32:22 2007 +0000
371.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
371.3 @@ -1,53 +0,0 @@
371.4 -Fixes
371.5 -
371.6 -In file included from dynamic-link.h:310,
371.7 - from dl-reloc.c:265:
371.8 -do-rel.h:56: error: invalid storage class for function 'elf_dynamic_do_rela'
371.9 -In file included from dl-reloc.c:265:
371.10 -dynamic-link.h: In function '_dl_relocate_object':
371.11 -dynamic-link.h:33: error: invalid storage class for function 'elf_get_dynamic_info'
371.12 -
371.13 -when building glibc-2.3.3 with gcc-4.0
371.14 -2nd hunk is like http://sourceware.org/cgi-bin/cvsweb.cgi/libc/elf/dynamic-link.h.diff?r1=1.50&r2=1.51&cvsroot=glibc
371.15 -but works with older compilers, too
371.16 -
371.17 ---- glibc-2.3.3/elf/do-rel.h.old 2005-03-16 13:09:37.000000000 -0800
371.18 -+++ glibc-2.3.3/elf/do-rel.h 2005-03-16 13:10:50.000000000 -0800
371.19 -@@ -49,7 +49,14 @@
371.20 - relocations; they should be set up to call _dl_runtime_resolve, rather
371.21 - than fully resolved now. */
371.22 -
371.23 --static inline void __attribute__ ((always_inline))
371.24 -+#if __GNUC__ >= 4
371.25 -+ auto inline void
371.26 -+#else
371.27 -+ static inline void
371.28 -+#endif
371.29 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
371.30 -+ __attribute ((always_inline))
371.31 -+#endif
371.32 - elf_dynamic_do_rel (struct link_map *map,
371.33 - ElfW(Addr) reladdr, ElfW(Addr) relsize,
371.34 - int lazy)
371.35 ---- glibc-2.3.3/elf/dynamic-link.h.old 2005-03-16 13:22:35.000000000 -0800
371.36 -+++ glibc-2.3.3/elf/dynamic-link.h 2005-03-16 13:26:23.000000000 -0800
371.37 -@@ -27,8 +27,17 @@
371.38 -
371.39 -
371.40 - /* Read the dynamic section at DYN and fill in INFO with indices DT_*. */
371.41 --
371.42 --static inline void __attribute__ ((unused, always_inline))
371.43 -+#if !defined(RESOLVE) || __GNUC__ < 4
371.44 -+static
371.45 -+#else
371.46 -+auto
371.47 -+#endif
371.48 -+inline void
371.49 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
371.50 -+ __attribute__ ((unused, always_inline))
371.51 -+#else
371.52 -+ __attribute__ ((unused))
371.53 -+#endif
371.54 - elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
371.55 - {
371.56 - ElfW(Dyn) *dyn = l->l_ld;
372.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-elf-3.patch Tue Aug 14 19:32:22 2007 +0000
372.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
372.3 @@ -1,79 +0,0 @@
372.4 -Fixes
372.5 -In file included from ldconfig.c:136:
372.6 -../sysdeps/i386/dl-procinfo.c:53: error: static declaration of '_dl_x86_cap_flags' follows non-static declaration
372.7 -../sysdeps/i386/dl-procinfo.c:61: error: previous declaration of '_dl_x86_cap_flags' was here
372.8 -../sysdeps/i386/dl-procinfo.c:72: error: static declaration of '_dl_x86_platforms' follows non-static declaration
372.9 -../sysdeps/i386/dl-procinfo.c:77: error: previous declaration of '_dl_x86_platforms' was here
372.10 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
372.11 -when building with gcc-4.0.
372.12 -
372.13 -2004-07-10 Ulrich Drepper <drepper@redhat.com>
372.14 -
372.15 - * elf/ldconfig.c: Define PROCINFO_CLASS as static before including
372.16 - ldsodefs.h.
372.17 - * sysdeps/generic/ldsodefs.h: Only define PROCINFO_CLASS if it is not
372.18 - already defined.
372.19 - * sysdeps/i386/dl-procinfo.c: Define PROCINFO_CALLS only if not
372.20 - already defined.
372.21 -
372.22 -See
372.23 -http://sources.redhat.com/ml/glibc-cvs/2004-q3/msg00093.html
372.24 -http://sources.redhat.com/ml/glibc-cvs/2004-q3/msg00097.html
372.25 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-procinfo.c.diff?cvsroot=glibc&r1=1.1&r2=1.2
372.26 -
372.27 -rediffed against glibc-2.3.3
372.28 -
372.29 -diff -ur glibc-2.3.3.orig/elf/ldconfig.c glibc-2.3.3/elf/ldconfig.c
372.30 ---- glibc-2.3.3.orig/elf/ldconfig.c Tue Aug 26 01:07:19 2003
372.31 -+++ glibc-2.3.3/elf/ldconfig.c Sat Mar 19 12:02:08 2005
372.32 -@@ -17,6 +17,7 @@
372.33 - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
372.34 - 02111-1307 USA. */
372.35 -
372.36 -+#define PROCINFO_CLASS static
372.37 - #include <alloca.h>
372.38 - #include <argp.h>
372.39 - #include <dirent.h>
372.40 -diff -ur glibc-2.3.3.orig/sysdeps/generic/ldsodefs.h glibc-2.3.3/sysdeps/generic/ldsodefs.h
372.41 ---- glibc-2.3.3.orig/sysdeps/generic/ldsodefs.h Mon Nov 24 14:56:07 2003
372.42 -+++ glibc-2.3.3/sysdeps/generic/ldsodefs.h Sat Mar 19 12:02:08 2005
372.43 -@@ -348,7 +348,9 @@
372.44 -
372.45 - /* Get architecture specific definitions. */
372.46 - #define PROCINFO_DECL
372.47 --#define PROCINFO_CLASS EXTERN
372.48 -+#ifndef PROCINFO_CLASS
372.49 -+# define PROCINFO_CLASS EXTERN
372.50 -+#endif
372.51 - #include <dl-procinfo.c>
372.52 -
372.53 - /* Structure describing the dynamic linker itself. */
372.54 -Only in glibc-2.3.3/sysdeps/generic: ldsodefs.h~
372.55 -diff -ur glibc-2.3.3.orig/sysdeps/i386/dl-procinfo.c glibc-2.3.3/sysdeps/i386/dl-procinfo.c
372.56 ---- glibc-2.3.3.orig/sysdeps/i386/dl-procinfo.c Wed Sep 24 20:54:54 2003
372.57 -+++ glibc-2.3.3/sysdeps/i386/dl-procinfo.c Sat Mar 19 12:02:08 2005
372.58 -@@ -1,5 +1,5 @@
372.59 - /* Data for i386 version of processor capability information.
372.60 -- Copyright (C) 2001,2002,2003 Free Software Foundation, Inc.
372.61 -+ Copyright (C) 2001,2002,2003, 2004 Free Software Foundation, Inc.
372.62 - This file is part of the GNU C Library.
372.63 - Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
372.64 -
372.65 -@@ -24,7 +24,7 @@
372.66 - If anything should be added here check whether the size of each string
372.67 - is still ok with the given array size.
372.68 -
372.69 -- All the #ifdefs in the definitions ar equite irritating but
372.70 -+ All the #ifdefs in the definitions are quite irritating but
372.71 - necessary if we want to avoid duplicating the information. There
372.72 - are three different modes:
372.73 -
372.74 -@@ -41,7 +41,7 @@
372.75 - */
372.76 -
372.77 - #ifndef PROCINFO_CLASS
372.78 --#define PROCINFO_CLASS
372.79 -+# define PROCINFO_CLASS
372.80 - #endif
372.81 -
372.82 - #if !defined PROCINFO_DECL && defined SHARED
373.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-i386.patch Tue Aug 14 19:32:22 2007 +0000
373.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
373.3 @@ -1,111 +0,0 @@
373.4 -Fixes
373.5 -
373.6 -In file included from dynamic-link.h:22,
373.7 - from dl-reloc.c:265:
373.8 -../sysdeps/i386/dl-machine.h: In function '_dl_relocate_object':
373.9 -../sysdeps/i386/dl-machine.h:395: error: invalid storage class for function 'elf_machine_rel'
373.10 -../sysdeps/i386/dl-machine.h:539: error: invalid storage class for function 'elf_machine_rela'
373.11 -../sysdeps/i386/dl-machine.h:640: error: invalid storage class for function 'elf_machine_rel_relative'
373.12 -../sysdeps/i386/dl-machine.h:650: error: invalid storage class for function 'elf_machine_rela_relative'
373.13 -../sysdeps/i386/dl-machine.h:659: error: invalid storage class for function 'elf_machine_lazy_rel'
373.14 -../sysdeps/i386/dl-machine.h:680: error: invalid storage class for function 'elf_machine_lazy_rela'
373.15 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/build-glibc/elf/dl-reloc.o] Error 1
373.16 -
373.17 ---- glibc-2.3.3/sysdeps/i386/dl-machine.h.old Wed Mar 16 22:24:09 2005
373.18 -+++ glibc-2.3.3/sysdeps/i386/dl-machine.h Thu Mar 17 01:30:09 2005
373.19 -@@ -385,7 +385,14 @@
373.20 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
373.21 - MAP is the object containing the reloc. */
373.22 -
373.23 --static inline void
373.24 -+#if __GNUC__ >= 4
373.25 -+ auto inline void
373.26 -+#else
373.27 -+ static inline void
373.28 -+#endif
373.29 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
373.30 -+ __attribute ((always_inline))
373.31 -+#endif
373.32 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
373.33 - const Elf32_Sym *sym, const struct r_found_version *version,
373.34 - void *const reloc_addr_arg)
373.35 -@@ -529,7 +536,14 @@
373.36 - }
373.37 -
373.38 - #ifndef RTLD_BOOTSTRAP
373.39 --static inline void
373.40 -+#if __GNUC__ >= 4
373.41 -+ auto inline void
373.42 -+#else
373.43 -+ static inline void
373.44 -+#endif
373.45 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
373.46 -+ __attribute ((always_inline))
373.47 -+#endif
373.48 - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
373.49 - const Elf32_Sym *sym, const struct r_found_version *version,
373.50 - void *const reloc_addr_arg)
373.51 -@@ -631,7 +645,14 @@
373.52 - }
373.53 - #endif /* !RTLD_BOOTSTRAP */
373.54 -
373.55 --static inline void
373.56 -+#if __GNUC__ >= 4
373.57 -+ auto inline void
373.58 -+#else
373.59 -+ static inline void
373.60 -+#endif
373.61 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
373.62 -+ __attribute ((always_inline))
373.63 -+#endif
373.64 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
373.65 - void *const reloc_addr_arg)
373.66 - {
373.67 -@@ -641,7 +662,14 @@
373.68 - }
373.69 -
373.70 - #ifndef RTLD_BOOTSTRAP
373.71 --static inline void
373.72 -+#if __GNUC__ >= 4
373.73 -+ auto inline void
373.74 -+#else
373.75 -+ static inline void
373.76 -+#endif
373.77 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
373.78 -+ __attribute ((always_inline))
373.79 -+#endif
373.80 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
373.81 - void *const reloc_addr_arg)
373.82 - {
373.83 -@@ -650,7 +678,14 @@
373.84 - }
373.85 - #endif /* !RTLD_BOOTSTRAP */
373.86 -
373.87 --static inline void
373.88 -+#if __GNUC__ >= 4
373.89 -+ auto inline void
373.90 -+#else
373.91 -+ static inline void
373.92 -+#endif
373.93 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
373.94 -+ __attribute ((always_inline))
373.95 -+#endif
373.96 - elf_machine_lazy_rel (struct link_map *map,
373.97 - Elf32_Addr l_addr, const Elf32_Rel *reloc)
373.98 - {
373.99 -@@ -671,7 +706,14 @@
373.100 -
373.101 - #ifndef RTLD_BOOTSTRAP
373.102 -
373.103 --static inline void
373.104 -+#if __GNUC__ >= 4
373.105 -+ auto inline void
373.106 -+#else
373.107 -+ static inline void
373.108 -+#endif
373.109 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
373.110 -+ __attribute ((always_inline))
373.111 -+#endif
373.112 - elf_machine_lazy_rela (struct link_map *map,
373.113 - Elf32_Addr l_addr, const Elf32_Rela *reloc)
373.114 - {
374.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconv.patch Tue Aug 14 19:32:22 2007 +0000
374.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
374.3 @@ -1,24 +0,0 @@
374.4 -Fixes
374.5 -iconvconfig.c: In function 'write_output':
374.6 -iconvconfig.c:1014: error: invalid storage class for function 'name_insert'
374.7 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/x86_64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/iconv'
374.8 -
374.9 -Like http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/iconvconfig.c.diff?r1=1.19&r2=1.20&cvsroot=glibc
374.10 -but works with older compilers
374.11 -
374.12 ---- glibc-2.3.3/iconv/iconvconfig.c.old Thu Mar 17 01:23:04 2005
374.13 -+++ glibc-2.3.3/iconv/iconvconfig.c Thu Mar 17 01:24:56 2005
374.14 -@@ -1010,7 +1010,12 @@
374.15 - char finalname[prefix_len + sizeof (GCONV_MODULES_CACHE)];
374.16 -
374.17 - /* Function to insert the names. */
374.18 -- static void name_insert (const void *nodep, VISIT value, int level)
374.19 -+#if __GNUC__ >= 4
374.20 -+ auto void
374.21 -+#else
374.22 -+ static void
374.23 -+#endif
374.24 -+ name_insert (const void *nodep, VISIT value, int level)
374.25 - {
374.26 - struct name *name;
374.27 - unsigned int idx;
375.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconvdata-2.patch Tue Aug 14 19:32:22 2007 +0000
375.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
375.3 @@ -1,124 +0,0 @@
375.4 -To: Glibc hackers <libc-hacker at sources dot redhat dot com>
375.5 -Subject: iconvdata: Get rid of lvalue casts
375.6 -From: Andreas Jaeger <aj at suse dot de>
375.7 -Date: Sun, 07 Mar 2004 08:29:47 +0100
375.8 -Message-ID: <m3fzclt8r8.fsf@gromit.moeb>
375.9 -
375.10 -Here's one more patch to get rid of lvalues to make GCC 3.5 happy. It
375.11 -generates the same code as before on my machine and passes the
375.12 -testsuite.
375.13 -
375.14 -Ok to commit?
375.15 -
375.16 -Andreas
375.17 -
375.18 -2004-03-07 Andreas Jaeger <aj@suse.de>
375.19 -
375.20 - * iconvdata/iso-2022-cn-ext.c (BODY): Remove cast used as lvalue.
375.21 - * iconvdata/tcvn5712-1.c (EMIT_SHIFT_TO_INIT): Likewise.
375.22 - * iconvdata/euc-jisx0213.c (EMIT_SHIFT_TO_INIT): Likewise.
375.23 - * iconvdata/shift_jisx0213.c (EMIT_SHIFT_TO_INIT): Likewise.
375.24 - * iconvdata/tscii.c (EMIT_SHIFT_TO_INIT): Likewise.
375.25 -
375.26 -[rediffed to make crosstool happy]
375.27 -
375.28 -diff -ur glibc-2.3.3.orig/iconvdata/euc-jisx0213.c glibc-2.3.3.new/iconvdata/euc-jisx0213.c
375.29 ---- glibc-2.3.3.orig/iconvdata/euc-jisx0213.c Mon Dec 2 14:07:54 2002
375.30 -+++ glibc-2.3.3.new/iconvdata/euc-jisx0213.c Fri Mar 18 09:29:22 2005
375.31 -@@ -1,5 +1,5 @@
375.32 - /* Conversion from and to EUC-JISX0213.
375.33 -- Copyright (C) 2002 Free Software Foundation, Inc.
375.34 -+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
375.35 - This file is part of the GNU C Library.
375.36 - Contributed by Bruno Haible <bruno@clisp.org>, 2002.
375.37 -
375.38 -@@ -83,7 +83,8 @@
375.39 - if (__builtin_expect (outbuf + 4 <= outend, 1)) \
375.40 - { \
375.41 - /* Write out the last character. */ \
375.42 -- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
375.43 -+ *((uint32_t *) outbuf) = data->__statep->__count >> 3; \
375.44 -+ outbuf += sizeof (uint32_t); \
375.45 - data->__statep->__count = 0; \
375.46 - } \
375.47 - else \
375.48 -diff -ur glibc-2.3.3.orig/iconvdata/iso-2022-cn-ext.c glibc-2.3.3.new/iconvdata/iso-2022-cn-ext.c
375.49 ---- glibc-2.3.3.orig/iconvdata/iso-2022-cn-ext.c Fri Jun 28 14:13:14 2002
375.50 -+++ glibc-2.3.3.new/iconvdata/iso-2022-cn-ext.c Fri Mar 18 09:29:22 2005
375.51 -@@ -1,5 +1,5 @@
375.52 - /* Conversion module for ISO-2022-CN-EXT.
375.53 -- Copyright (C) 2000-2002 Free Software Foundation, Inc.
375.54 -+ Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
375.55 - This file is part of the GNU C Library.
375.56 - Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
375.57 -
375.58 -@@ -377,7 +377,8 @@
375.59 - } \
375.60 - } \
375.61 - \
375.62 -- *((uint32_t *) outptr)++ = ch; \
375.63 -+ *((uint32_t *) outptr) = ch; \
375.64 -+ outptr += sizeof (uint32_t); \
375.65 - }
375.66 - #define EXTRA_LOOP_DECLS , int *setp
375.67 - #define INIT_PARAMS int set = (*setp >> 3) & CURRENT_MASK; \
375.68 -diff -ur glibc-2.3.3.orig/iconvdata/shift_jisx0213.c glibc-2.3.3.new/iconvdata/shift_jisx0213.c
375.69 ---- glibc-2.3.3.orig/iconvdata/shift_jisx0213.c Mon Dec 2 14:07:56 2002
375.70 -+++ glibc-2.3.3.new/iconvdata/shift_jisx0213.c Fri Mar 18 09:29:22 2005
375.71 -@@ -1,5 +1,5 @@
375.72 - /* Conversion from and to Shift_JISX0213.
375.73 -- Copyright (C) 2002 Free Software Foundation, Inc.
375.74 -+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
375.75 - This file is part of the GNU C Library.
375.76 - Contributed by Bruno Haible <bruno@clisp.org>, 2002.
375.77 -
375.78 -@@ -83,7 +83,8 @@
375.79 - if (__builtin_expect (outbuf + 4 <= outend, 1)) \
375.80 - { \
375.81 - /* Write out the last character. */ \
375.82 -- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
375.83 -+ *((uint32_t *) outbuf) = data->__statep->__count >> 3; \
375.84 -+ outbuf += sizeof (uint32_t); \
375.85 - data->__statep->__count = 0; \
375.86 - } \
375.87 - else \
375.88 -diff -ur glibc-2.3.3.orig/iconvdata/tcvn5712-1.c glibc-2.3.3.new/iconvdata/tcvn5712-1.c
375.89 ---- glibc-2.3.3.orig/iconvdata/tcvn5712-1.c Mon Dec 2 14:07:52 2002
375.90 -+++ glibc-2.3.3.new/iconvdata/tcvn5712-1.c Fri Mar 18 09:29:22 2005
375.91 -@@ -1,5 +1,5 @@
375.92 - /* Conversion to and from TCVN5712-1.
375.93 -- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
375.94 -+ Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
375.95 - This file is part of the GNU C Library.
375.96 - Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
375.97 -
375.98 -@@ -68,7 +68,8 @@
375.99 - if (__builtin_expect (outbuf + 4 <= outend, 1)) \
375.100 - { \
375.101 - /* Write out the last character. */ \
375.102 -- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
375.103 -+ *((uint32_t *) outbuf) = data->__statep->__count >> 3; \
375.104 -+ outbuf += sizeof (uint32_t); \
375.105 - data->__statep->__count = 0; \
375.106 - } \
375.107 - else \
375.108 -diff -ur glibc-2.3.3.orig/iconvdata/tscii.c glibc-2.3.3.new/iconvdata/tscii.c
375.109 ---- glibc-2.3.3.orig/iconvdata/tscii.c Mon Sep 23 20:39:45 2002
375.110 -+++ glibc-2.3.3.new/iconvdata/tscii.c Fri Mar 18 09:29:22 2005
375.111 -@@ -1,5 +1,5 @@
375.112 - /* Conversion from and to TSCII.
375.113 -- Copyright (C) 2002 Free Software Foundation, Inc.
375.114 -+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
375.115 - This file is part of the GNU C Library.
375.116 - Contributed by Bruno Haible <bruno@clisp.org>, 2002.
375.117 -
375.118 -@@ -98,7 +98,8 @@
375.119 - break; \
375.120 - } \
375.121 - /* Write out the pending character. */ \
375.122 -- *((uint32_t *) outbuf)++ = data->__statep->__count >> 8; \
375.123 -+ *((uint32_t *) outbuf) = data->__statep->__count >> 8; \
375.124 -+ outbuf += sizeof (uint32_t); \
375.125 - /* Retrieve the successor state. */ \
375.126 - data->__statep->__count = \
375.127 - tscii_next_state[(data->__statep->__count >> 4) & 0x0f]; \
376.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconvdata.patch Tue Aug 14 19:32:22 2007 +0000
376.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
376.3 @@ -1,142 +0,0 @@
376.4 -Fixes
376.5 -
376.6 -In file included from jis0208.c:23:
376.7 -jis0208.h:32: error: array type has incomplete element type
376.8 -when building with gcc-4.0
376.9 -
376.10 -In file included from cp1258.c:869:
376.11 -../iconv/skeleton.c: In function 'gconv':
376.12 -../iconv/skeleton.c:323: error: invalid lvalue in increment
376.13 -
376.14 -In file included from cp1255.c:550:
376.15 -../iconv/skeleton.c: In function 'gconv':
376.16 -../iconv/skeleton.c:323: error: invalid lvalue in increment
376.17 -
376.18 -In file included from gb18030.c:22114:
376.19 -../iconv/loop.c: In function 'from_gb18030':
376.20 -../iconv/loop.c:282: error: invalid lvalue in increment
376.21 -../iconv/loop.c: In function 'from_gb18030_single':
376.22 -../iconv/loop.c:384: error: invalid lvalue in increment
376.23 -
376.24 -In file included from iso8859-1.c:43:
376.25 -../iconv/loop.c: In function 'from_iso8859_1':
376.26 -../iconv/loop.c:311: error: invalid lvalue in increment
376.27 -
376.28 -Rediffed, updated for glibc-2.3.3, added:
376.29 -
376.30 -In file included from armscii-8.c:85:
376.31 -../iconv/loop.c: In function 'from_armscii_8':
376.32 -../iconv/loop.c:311: error: invalid lvalue in increment
376.33 -../iconv/loop.c:311: error: invalid lvalue in increment
376.34 -
376.35 ---- glibc-2.3.3.orig/iconvdata/armscii-8.c Mon Dec 2 14:07:52 2002
376.36 -+++ glibc-2.3.3/iconvdata/armscii-8.c Thu Mar 17 16:01:23 2005
376.37 -@@ -57,11 +57,17 @@
376.38 - uint_fast8_t ch = *inptr; \
376.39 - \
376.40 - if (ch <= 0xa0) \
376.41 -- /* Upto and including 0xa0 the ARMSCII-8 corresponds to Unicode. */ \
376.42 -- *((uint32_t *) outptr)++ = ch; \
376.43 -+ { \
376.44 -+ /* Upto and including 0xa0 the ARMSCII-8 corresponds to Unicode. */ \
376.45 -+ *((uint32_t *) outptr) = ch; \
376.46 -+ outptr += sizeof (uint32_t); \
376.47 -+ } \
376.48 - else if (ch >= 0xa2 && ch <= 0xfe) \
376.49 -- /* Use the table. */ \
376.50 -- *((uint32_t *) outptr)++ = map_from_armscii_8[ch - 0xa2]; \
376.51 -+ { \
376.52 -+ /* Use the table. */ \
376.53 -+ *((uint32_t *) outptr) = map_from_armscii_8[ch - 0xa2]; \
376.54 -+ outptr += sizeof (uint32_t); \
376.55 -+ } \
376.56 - else \
376.57 - { \
376.58 - /* This is an illegal character. */ \
376.59 -diff -ur glibc-2.3.3.orig/iconvdata/cp1255.c glibc-2.3.3/iconvdata/cp1255.c
376.60 ---- glibc-2.3.3.orig/iconvdata/cp1255.c Mon Dec 2 14:07:52 2002
376.61 -+++ glibc-2.3.3/iconvdata/cp1255.c Thu Mar 17 08:20:13 2005
376.62 -@@ -69,7 +69,8 @@
376.63 - if (__builtin_expect (outbuf + 4 <= outend, 1)) \
376.64 - { \
376.65 - /* Write out the last character. */ \
376.66 -- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
376.67 -+ *((uint32_t *) outbuf) = data->__statep->__count >> 3; \
376.68 -+ outbuf += sizeof (uint32_t); \
376.69 - data->__statep->__count = 0; \
376.70 - } \
376.71 - else \
376.72 -diff -ur glibc-2.3.3.orig/iconvdata/cp1258.c glibc-2.3.3/iconvdata/cp1258.c
376.73 ---- glibc-2.3.3.orig/iconvdata/cp1258.c Mon Dec 2 14:07:52 2002
376.74 -+++ glibc-2.3.3/iconvdata/cp1258.c Thu Mar 17 08:20:13 2005
376.75 -@@ -70,7 +70,8 @@
376.76 - if (__builtin_expect (outbuf + 4 <= outend, 1)) \
376.77 - { \
376.78 - /* Write out the last character. */ \
376.79 -- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
376.80 -+ *((uint32_t *) outbuf) = data->__statep->__count >> 3; \
376.81 -+ outbuf += sizeof (uint32_t); \
376.82 - data->__statep->__count = 0; \
376.83 - } \
376.84 - else \
376.85 -diff -ur glibc-2.3.3.orig/iconvdata/gb18030.c glibc-2.3.3/iconvdata/gb18030.c
376.86 ---- glibc-2.3.3.orig/iconvdata/gb18030.c Mon Dec 2 14:07:54 2002
376.87 -+++ glibc-2.3.3/iconvdata/gb18030.c Thu Mar 17 08:20:13 2005
376.88 -@@ -25769,7 +25769,8 @@
376.89 - } \
376.90 - } \
376.91 - \
376.92 -- *((uint32_t *) outptr)++ = ch; \
376.93 -+ *((uint32_t *) outptr) = ch; \
376.94 -+ outptr += sizeof (uint32_t); \
376.95 - }
376.96 - #define LOOP_NEED_FLAGS
376.97 - #define ONEBYTE_BODY \
376.98 -diff -ur glibc-2.3.3.orig/iconvdata/iso8859-1.c glibc-2.3.3/iconvdata/iso8859-1.c
376.99 ---- glibc-2.3.3.orig/iconvdata/iso8859-1.c Mon Dec 2 14:07:56 2002
376.100 -+++ glibc-2.3.3/iconvdata/iso8859-1.c Thu Mar 17 08:20:47 2005
376.101 -@@ -35,7 +35,8 @@
376.102 - #define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
376.103 - #define LOOPFCT FROM_LOOP
376.104 - #define BODY \
376.105 -- *((uint32_t *) outptr)++ = *inptr++;
376.106 -+ *((uint32_t *) outptr) = *inptr++; \
376.107 -+ outptr += sizeof (uint32_t);
376.108 - #define ONEBYTE_BODY \
376.109 - { \
376.110 - return c; \
376.111 -diff -ur glibc-2.3.3.orig/iconvdata/jis0208.h glibc-2.3.3/iconvdata/jis0208.h
376.112 ---- glibc-2.3.3.orig/iconvdata/jis0208.h Wed Jun 11 14:40:42 2003
376.113 -+++ glibc-2.3.3/iconvdata/jis0208.h Thu Mar 17 08:20:13 2005
376.114 -@@ -24,15 +24,6 @@
376.115 - #include <gconv.h>
376.116 - #include <stdint.h>
376.117 -
376.118 --/* Conversion table. */
376.119 --extern const uint16_t __jis0208_to_ucs[];
376.120 --
376.121 --extern const char __jisx0208_from_ucs4_lat1[256][2];
376.122 --extern const char __jisx0208_from_ucs4_greek[0xc1][2];
376.123 --extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
376.124 --extern const char __jisx0208_from_ucs_tab[][2];
376.125 --
376.126 --
376.127 - /* Struct for table with indeces in UCS mapping table. */
376.128 - struct jisx0208_ucs_idx
376.129 - {
376.130 -@@ -40,6 +31,15 @@
376.131 - uint16_t end;
376.132 - uint16_t idx;
376.133 - };
376.134 -+
376.135 -+
376.136 -+/* Conversion table. */
376.137 -+extern const uint16_t __jis0208_to_ucs[];
376.138 -+
376.139 -+extern const char __jisx0208_from_ucs4_lat1[256][2];
376.140 -+extern const char __jisx0208_from_ucs4_greek[0xc1][2];
376.141 -+extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
376.142 -+extern const char __jisx0208_from_ucs_tab[][2];
376.143 -
376.144 -
376.145 - static inline uint32_t
377.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-locale.patch Tue Aug 14 19:32:22 2007 +0000
377.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
377.3 @@ -1,34 +0,0 @@
377.4 ---- glibc-2.3.3/locale/weight.h.old 2003-06-11 14:52:12.000000000 -0700
377.5 -+++ glibc-2.3.3/locale/weight.h 2005-03-15 12:05:37.000000000 -0800
377.6 -@@ -18,8 +18,14 @@
377.7 - 02111-1307 USA. */
377.8 -
377.9 - /* Find index of weight. */
377.10 -+#if __GNUC__ >= 4
377.11 -+auto inline int32_t
377.12 -+#else
377.13 - static inline int32_t
377.14 -+#endif
377.15 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
377.16 - __attribute ((always_inline))
377.17 -+#endif
377.18 - findidx (const unsigned char **cpp)
377.19 - {
377.20 - int_fast32_t i = table[*(*cpp)++];
377.21 ---- glibc-2.3.3/locale/weightwc.h.old 2003-06-13 13:44:58.000000000 -0700
377.22 -+++ glibc-2.3.3/locale/weightwc.h 2005-03-15 12:06:46.000000000 -0800
377.23 -@@ -18,8 +18,14 @@
377.24 - 02111-1307 USA. */
377.25 -
377.26 - /* Find index of weight. */
377.27 -+#if __GNUC__ >= 4
377.28 -+auto inline int32_t
377.29 -+#else
377.30 - static inline int32_t
377.31 -+#endif
377.32 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
377.33 - __attribute ((always_inline))
377.34 -+#endif
377.35 - findidx (const wint_t **cpp)
377.36 - {
377.37 - int32_t i;
378.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-posix.patch Tue Aug 14 19:32:22 2007 +0000
378.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
378.3 @@ -1,77 +0,0 @@
378.4 -Fixes errors
378.5 -
378.6 -regcomp.c: In function 'parse_bracket_exp':
378.7 -regcomp.c:2724: error: invalid storage class for function 'seek_collating_symbol_entry'
378.8 -regcomp.c:2757: error: invalid storage class for function 'lookup_collation_sequence_value'
378.9 -regcomp.c:2826: error: invalid storage class for function 'build_range_exp'
378.10 -regcomp.c:2913: error: invalid storage class for function 'build_collating_symbol'
378.11 -...
378.12 -make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-dev/build/x86_64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/build-glibc/posix/regex.o] Error 1
378.13 -
378.14 -See also http://sources.redhat.com/ml/glibc-cvs/2004-q3/msg01071.html
378.15 -That fix requires gcc-4.0, but the fix proposed here works with older compilers, too
378.16 -
378.17 ---- glibc-2.3.3/posix/regcomp.c.old 2005-03-16 11:40:55.000000000 -0800
378.18 -+++ glibc-2.3.3/posix/regcomp.c 2005-03-16 11:50:31.000000000 -0800
378.19 -@@ -2718,8 +2718,14 @@
378.20 - Seek the collating symbol entry correspondings to NAME.
378.21 - Return the index of the symbol in the SYMB_TABLE. */
378.22 -
378.23 -+#if __GNUC__ >= 4
378.24 -+ auto inline int32_t
378.25 -+#else
378.26 - static inline int32_t
378.27 -+#endif
378.28 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
378.29 - __attribute ((always_inline))
378.30 -+#endif
378.31 - seek_collating_symbol_entry (name, name_len)
378.32 - const unsigned char *name;
378.33 - size_t name_len;
378.34 -@@ -2751,8 +2757,14 @@
378.35 - Look up the collation sequence value of BR_ELEM.
378.36 - Return the value if succeeded, UINT_MAX otherwise. */
378.37 -
378.38 -+#if __GNUC__ >= 4
378.39 -+ auto inline unsigned int
378.40 -+#else
378.41 - static inline unsigned int
378.42 -+#endif
378.43 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
378.44 - __attribute ((always_inline))
378.45 -+#endif
378.46 - lookup_collation_sequence_value (br_elem)
378.47 - bracket_elem_t *br_elem;
378.48 - {
378.49 -@@ -2819,8 +2831,14 @@
378.50 - mbcset->range_ends, is a pointer argument sinse we may
378.51 - update it. */
378.52 -
378.53 -- static inline reg_errcode_t
378.54 -+#if __GNUC__ >= 4
378.55 -+ auto inline reg_errcode_t
378.56 -+#else
378.57 -+ static inline reg_errcode_t
378.58 -+#endif
378.59 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
378.60 - __attribute ((always_inline))
378.61 -+#endif
378.62 - # ifdef RE_ENABLE_I18N
378.63 - build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
378.64 - re_charset_t *mbcset;
378.65 -@@ -2906,8 +2924,14 @@
378.66 - COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
378.67 - pointer argument sinse we may update it. */
378.68 -
378.69 -- static inline reg_errcode_t
378.70 -+#if __GNUC__ >= 4
378.71 -+ auto inline reg_errcode_t
378.72 -+#else
378.73 -+ static inline reg_errcode_t
378.74 -+#endif
378.75 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
378.76 - __attribute ((always_inline))
378.77 -+#endif
378.78 - # ifdef RE_ENABLE_I18N
378.79 - build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
378.80 - re_charset_t *mbcset;
379.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-powerpc-procfs.patch Tue Aug 14 19:32:22 2007 +0000
379.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
379.3 @@ -1,65 +0,0 @@
379.4 -(Combined with earlier fix old/glibc-2.3.2-powerpc-procfs.patch
379.5 -from http://sources.redhat.com/ml/libc-alpha/2003-12/msg00101.html)
379.6 -
379.7 -This fix discussed here:
379.8 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
379.9 -
379.10 -Revision 1.12, Wed Mar 2 20:11:38 2005 UTC by roland
379.11 -Branch: MAIN
379.12 -CVS Tags: fedora-glibc-20050303T1335, HEAD
379.13 -Changes since 1.11: +3 -8 lines
379.14 -Diff to previous 1.11 (colored)
379.15 -
379.16 -2005-02-21 Alan Modra <amodra@bigpond.net.au>
379.17 -
379.18 - * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Don't
379.19 - use __uint128_t.
379.20 -
379.21 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h?cvsroot=glibc
379.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.diff?r1=1.11&r2=1.12&cvsroot=glibc
379.23 -
379.24 -Fixes
379.25 -
379.26 -In file included from ../linuxthreads_db/proc_service.h:20,
379.27 - from ../linuxthreads_db/thread_dbP.h:7,
379.28 - from ../linuxthreads/descr.h:44,
379.29 - from ../linuxthreads/internals.h:30,
379.30 - from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
379.31 - from ../sysdeps/generic/ldsodefs.h:38,
379.32 - from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
379.33 - from <stdin>:2:
379.34 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: error: syntax error before 'elf_vrreg_t'
379.35 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
379.36 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: data definition has no type or storage class
379.37 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: syntax error before 'elf_vrregset_t'
379.38 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
379.39 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: data definition has no type or storage class
379.40 -make[2]: make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/csu'
379.41 -
379.42 -Rediffed against glibc-2.3.3
379.43 -
379.44 ---- glibc-2.3.3.orig/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h Sun Jan 12 00:24:23 2003
379.45 -+++ glibc-2.3.3.new/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h Fri Mar 18 11:20:58 2005
379.46 -@@ -45,18 +45,13 @@
379.47 -
379.48 - typedef double elf_fpreg_t;
379.49 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
379.50 --#endif
379.51 --
379.52 --/* gcc 3.1 and newer support __uint128_t. */
379.53 --#if !__GNUC_PREREQ(3,1)
379.54 --typedef struct {
379.55 -- unsigned long u[4];
379.56 --} __attribute((aligned(16))) __uint128_t;
379.57 --#endif
379.58 -
379.59 - /* Altivec registers */
379.60 --typedef __uint128_t elf_vrreg_t;
379.61 -+typedef struct {
379.62 -+ unsigned int u[4];
379.63 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
379.64 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
379.65 -+#endif
379.66 -
379.67 - struct elf_siginfo
379.68 - {
380.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-x86_64.patch Tue Aug 14 19:32:22 2007 +0000
380.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
380.3 @@ -1,60 +0,0 @@
380.4 -Fixes
380.5 -
380.6 -In file included from dynamic-link.h:22,
380.7 - from dl-reloc.c:265:
380.8 -../sysdeps/x86_64/dl-machine.h: In function '_dl_relocate_object':
380.9 -../sysdeps/x86_64/dl-machine.h:361: error: invalid storage class for function 'elf_machine_rela'
380.10 -../sysdeps/x86_64/dl-machine.h:525: error: invalid storage class for function 'elf_machine_rela_relative'
380.11 -../sysdeps/x86_64/dl-machine.h:534: error: invalid storage class for function 'elf_machine_lazy_rel'
380.12 -make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-dev/build/x86_64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/build-glibc/elf/dl-reloc.o] Error 1
380.13 -
380.14 ---- glibc-2.3.3/sysdeps/x86_64/dl-machine.h.old Wed Mar 16 16:19:15 2005
380.15 -+++ glibc-2.3.3/sysdeps/x86_64/dl-machine.h Wed Mar 16 16:22:09 2005
380.16 -@@ -354,7 +354,14 @@
380.17 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
380.18 - MAP is the object containing the reloc. */
380.19 -
380.20 --static inline void
380.21 -+#if __GNUC__ >= 4
380.22 -+ auto inline void
380.23 -+#else
380.24 -+ static inline void
380.25 -+#endif
380.26 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
380.27 -+ __attribute ((always_inline))
380.28 -+#endif
380.29 - elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
380.30 - const Elf64_Sym *sym, const struct r_found_version *version,
380.31 - void *const reloc_addr_arg)
380.32 -@@ -519,7 +526,14 @@
380.33 - }
380.34 - }
380.35 -
380.36 --static inline void
380.37 -+#if __GNUC__ >= 4
380.38 -+ auto inline void
380.39 -+#else
380.40 -+ static inline void
380.41 -+#endif
380.42 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
380.43 -+ __attribute ((always_inline))
380.44 -+#endif
380.45 - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
380.46 - void *const reloc_addr_arg)
380.47 - {
380.48 -@@ -528,7 +542,14 @@
380.49 - *reloc_addr = l_addr + reloc->r_addend;
380.50 - }
380.51 -
380.52 --static inline void
380.53 -+#if __GNUC__ >= 4
380.54 -+ auto inline void
380.55 -+#else
380.56 -+ static inline void
380.57 -+#endif
380.58 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
380.59 -+ __attribute ((always_inline))
380.60 -+#endif
380.61 - elf_machine_lazy_rel (struct link_map *map,
380.62 - Elf64_Addr l_addr, const Elf64_Rela *reloc)
380.63 - {
381.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-alpha-pwrite64.patch Tue Aug 14 19:32:22 2007 +0000
381.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
381.3 @@ -1,41 +0,0 @@
381.4 -Fix for this error:
381.5 -
381.6 -crosstool-0.32/build/alpha-unknown-linux-gnu/gcc-3.3.5-glibc-2.3.3/build-glibc/libc_pic.os(.text+0xc8bd0): In function `__posix_fallocate64_l64':
381.7 -: undefined reference to `__GI___pwrite64'
381.8 -collect2: ld returned 1 exit status
381.9 -make[1]: *** [crosstool-0.32/build/alpha-unknown-linux-gnu/gcc-3.3.5-glibc-2.3.3/build-glibc/libc.so] Error 1
381.10 -make[1]: Leaving directory `crosstool-0.32/build/alpha-unknown-linux-gnu/gcc-3.3.5-glibc-2.3.3/glibc-2.3.3'
381.11 -make: *** [all] Error 2
381.12 -
381.13 -extracted from GLIBC CVS by Dan Kegel
381.14 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
381.15 -
381.16 -cf.
381.17 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
381.18 -
381.19 -
381.20 ---- glibc-2.3.3/sysdeps/unix/sysv/linux/alpha/sysdep.h.old 2003-06-20 09:24:36.000000000 -0700
381.21 -+++ glibc-2.3.3/sysdeps/unix/sysv/linux/alpha/sysdep.h 2005-04-27 11:23:46.000000000 -0700
381.22 -@@ -1,4 +1,4 @@
381.23 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003
381.24 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003, 2004
381.25 - Free Software Foundation, Inc.
381.26 - This file is part of the GNU C Library.
381.27 - Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
381.28 -@@ -65,6 +65,16 @@
381.29 - # define __NR_semtimedop 423
381.30 - #endif
381.31 -
381.32 -+/* This is a kludge to make syscalls.list find these under the names
381.33 -+ pread and pwrite, since some kernel headers define those names
381.34 -+ and some define the *64 names for the same system calls. */
381.35 -+#if !defined __NR_pread && defined __NR_pread64
381.36 -+# define __NR_pread __NR_pread64
381.37 -+#endif
381.38 -+#if !defined __NR_pwrite && defined __NR_pwrite64
381.39 -+# define __NR_pwrite __NR_pwrite64
381.40 -+#endif
381.41 -+
381.42 - /*
381.43 - * In order to get the hidden arguments for rt_sigaction set up
381.44 - * properly, we need to call the assembly version. This shouldn't
382.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-cygwin.patch Tue Aug 14 19:32:22 2007 +0000
382.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
382.3 @@ -1,103 +0,0 @@
382.4 -Fixes
382.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
382.6 -...
382.7 -when building glibc-2.3.3 on cygwin
382.8 -
382.9 -Idea from
382.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
382.11 -Basically, make glibc use .oST as suffix for 'object static'
382.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
382.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
382.14 -
382.15 -glibc-linuxthreads-2.3.3 also requires a patch, see
382.16 -../glibc-linuxthreads-2.3.3/glibc-linuxthreads-2.3.3-cygwin.patch
382.17 -
382.18 -[ Rediffed against glibc-2.3.3 ]
382.19 -
382.20 -
382.21 -diff -aur glibc-2.3.3/Makeconfig glibc-2.3.3-cygwin/Makeconfig
382.22 ---- glibc-2.3.3/Makeconfig 2003-09-17 01:36:10.000000000 -0700
382.23 -+++ glibc-2.3.3-cygwin/Makeconfig 2004-08-27 20:34:43.000000000 -0700
382.24 -@@ -439,13 +439,13 @@
382.25 - # run the linked programs.
382.26 - link-libc = -Wl,-rpath-link=$(rpath-link) \
382.27 - $(common-objpfx)libc.so$(libc.so-version) \
382.28 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
382.29 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
382.30 - # This is how to find at build-time things that will be installed there.
382.31 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
382.32 - else
382.33 - ifneq (,$(filter aix aix%,$(config-os)))
382.34 - link-libc = $(common-objpfx)libc.a \
382.35 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
382.36 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
382.37 - rpath-dirs = math dlfcn nss nis rt resolv crypt
382.38 - endif
382.39 - endif
382.40 -@@ -658,7 +658,7 @@
382.41 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
382.42 - # to pass different flags for each flavor.
382.43 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
382.44 --all-object-suffixes := .o .os .op .og .ob .oS
382.45 -+all-object-suffixes := .o .os .op .og .ob .oST
382.46 - object-suffixes :=
382.47 - CPPFLAGS-.o = $(pic-default)
382.48 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
382.49 -@@ -714,14 +714,14 @@
382.50 -
382.51 - ifeq (yes,$(build-shared))
382.52 - # Build special library that contains the static-only routines for libc.
382.53 --object-suffixes-for-libc += .oS
382.54 -+object-suffixes-for-libc += .oST
382.55 -
382.56 - # Must build the routines as PIC, though, because they can end up in (users')
382.57 - # shared objects. We don't want to use CFLAGS-os because users may, for
382.58 - # example, make that processor-specific.
382.59 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
382.60 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
382.61 --libtype.oS = lib%_nonshared.a
382.62 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
382.63 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
382.64 -+libtype.oST = lib%_nonshared.a
382.65 - endif
382.66 -
382.67 - # The assembler can generate debug information too.
382.68 -diff -aur glibc-2.3.3/Makerules glibc-2.3.3-cygwin/Makerules
382.69 ---- glibc-2.3.3/Makerules 2003-10-31 16:35:57.000000000 -0800
382.70 -+++ glibc-2.3.3-cygwin/Makerules 2004-08-27 20:33:47.000000000 -0700
382.71 -@@ -414,7 +414,7 @@
382.72 - # Bounded pointer thunks are only built for *.ob
382.73 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
382.74 -
382.75 --elide-routines.oS += $(filter-out $(static-only-routines),\
382.76 -+elide-routines.oST += $(filter-out $(static-only-routines),\
382.77 - $(routines) $(aux) $(sysdep_routines)) \
382.78 - $(elide-bp-thunks)
382.79 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
382.80 -@@ -934,7 +934,7 @@
382.81 - install: $(inst_libdir)/libc.so
382.82 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
382.83 - $(common-objpfx)libc.so$(libc.so-version) \
382.84 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
382.85 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
382.86 - $(libprefix)$(libc-name)) \
382.87 - $(+force)
382.88 - (echo '/* GNU ld script';\
382.89 -@@ -942,7 +942,7 @@
382.90 - echo ' the static library, so try that secondarily. */';\
382.91 - cat $<; \
382.92 - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
382.93 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
382.94 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
382.95 - ')' \
382.96 - ) > $@.new
382.97 - mv -f $@.new $@
382.98 -diff -aur glibc-2.3.3/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.3-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
382.99 ---- glibc-2.3.3/sysdeps/sparc/sparc32/sparcv9/Makefile 2002-08-29 03:41:15.000000000 -0700
382.100 -+++ glibc-2.3.3-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile 2004-08-27 20:35:43.000000000 -0700
382.101 -@@ -10,4 +10,4 @@
382.102 - ASFLAGS-.op += -Wa,-Av9a
382.103 - ASFLAGS-.og += -Wa,-Av9a
382.104 - ASFLAGS-.ob += -Wa,-Av9a
382.105 --ASFLAGS-.oS += -Wa,-Av9a
382.106 -+ASFLAGS-.oST += -Wa,-Av9a
383.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-libeh-kludge.patch Tue Aug 14 19:32:22 2007 +0000
383.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
383.3 @@ -1,75 +0,0 @@
383.4 -wget "http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2003-09&msgid=20030911190500.GE12344%40sunsite.ms.mff.cuni.cz"
383.5 -aka http://sources.redhat.com/ml/libc-alpha/2003-09/msg00104.html
383.6 -
383.7 -This seems to fix the error
383.8 - gcc-3.4.1-glibc-2.3.3/lib/gcc/powerpc-7400-linux-gnu/3.4.1/../../../../powerpc-7400-linux-gnu/bin/ld: cannot find -lgcc_eh
383.9 - make[1]: *** [build/powerpc-7400-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/libc.so] Error 1
383.10 -but I assume it might cause trouble with nptl
383.11 -FIXME: once we figure out why this patch is wrong, fix it right :-)
383.12 -
383.13 -Date: Thu, 11 Sep 2003 21:05:00 +0200
383.14 -From: Jakub Jelinek <jakub at redhat dot com>
383.15 -To: libc-alpha at sources dot redhat dot com
383.16 -Subject: Re: Another ugly bootstrapping patch for libgcc_eh
383.17 -Message-ID: <20030911190500.GE12344@sunsite.ms.mff.cuni.cz>
383.18 -Reply-To: Jakub Jelinek <jakub at redhat dot com>
383.19 -References: <20030911194944.GA6104@nevyn.them.org> <20030911180703.GD12344@sunsite.ms.mff.cuni.cz> <20030911203621.GA31503@nevyn.them.org>
383.20 -In-Reply-To: <20030911203621 dot GA31503 at nevyn dot them dot org>
383.21 -
383.22 -On Thu, Sep 11, 2003 at 04:36:21PM -0400, Daniel Jacobowitz wrote:
383.23 -> > Why exactly do you need that?
383.24 -> > What exact library needs the functions from libgcc_eh.a?
383.25 -> > There shouldn't be any these days (__register_*/__frame_state_for etc.
383.26 -> > functions should come from sysdeps/generic on arches which need them,
383.27 -> > _Unwind_* come from unwind*.c).
383.28 -> > IMHO both:
383.29 -> >
383.30 -> > # Force the backward compatibility EH functions to be linked.
383.31 -> > LDFLAGS-c.so += -u __register_frame
383.32 -> >
383.33 -> > in Makerules and -lgcc_eh in Makeconfig should go.
383.34 ->
383.35 -> If you say so. That -lgcc_eh's been in and out quite a number of
383.36 -> times. I was just assuming that it was necessary.
383.37 -
383.38 -I have been testing following patch on hammer.
383.39 -linuxthreads built just fine and NPTL libraries too,
383.40 -and in both cases libraries had the same exported symbols as without
383.41 -the patch (though its .text slightly shrunk because it no longer contained
383.42 -unneeded libgcc_eh routines (and also libc.so has fewer .plt slots).
383.43 -Unfortunately, sln in NPTL build doesn't link, as libgcc_eh.a is needed
383.44 -in this case.
383.45 -So, IMHO we need my Makerules change and Daniel's patch.
383.46 -
383.47 -2003-09-11 Jakub Jelinek <jakub@redhat.com>
383.48 -
383.49 - #* Makerules (LDFLAGS-c.so): Remove -u __register_frame.
383.50 - * Makeconfig (gnulib): Remove -lgcc_eh.
383.51 -
383.52 -# Ulrich already applied this.
383.53 -#--- libc/Makerules.jj 2003-07-23 03:56:16.000000000 -0400
383.54 -#+++ libc/Makerules 2003-09-11 16:22:44.000000000 -0400
383.55 -#@@ -572,8 +572,6 @@ LDFLAGS-c.so = -nostdlib -nostartfiles
383.56 -# LDLIBS-c.so += $(gnulib)
383.57 -# # Give libc.so an entry point and make it directly runnable itself.
383.58 -# LDFLAGS-c.so += -e __libc_main
383.59 -#-# Force the backward compatibility EH functions to be linked.
383.60 -#-LDFLAGS-c.so += -u __register_frame
383.61 -# # Pre-link the objects of libc_pic.a so that we can locally resolve
383.62 -# # COMMON symbols before we link against ld.so. This is because ld.so
383.63 -# # contains some of libc_pic.a already, which will prevent the COMMONs
383.64 ---- libc/Makeconfig.jj 2003-07-22 08:25:32.000000000 -0400
383.65 -+++ libc/Makeconfig 2003-09-11 16:23:08.000000000 -0400
383.66 -@@ -505,7 +505,7 @@ link-libc-bounded = $(common-objpfx)libc
383.67 - link-extra-libs-bounded = $(foreach lib,$(LDLIBS-$(@F:%-bp=%)),$(common-objpfx)$(lib)_b.a)
383.68 -
383.69 - ifndef gnulib
383.70 --gnulib := -lgcc -lgcc_eh
383.71 -+gnulib := -lgcc
383.72 - endif
383.73 - ifeq ($(elf),yes)
383.74 - +preinit = $(addprefix $(csu-objpfx),crti.o)
383.75 -
383.76 -
383.77 - Jakub
383.78 -
384.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-s390-fadvise64.patch Tue Aug 14 19:32:22 2007 +0000
384.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
384.3 @@ -1,128 +0,0 @@
384.4 -See http://sources.redhat.com/ml/libc-hacker/2003-12/msg00023.html
384.5 -or http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c?cvsroot=glibc
384.6 -
384.7 -Should fix error
384.8 -
384.9 -../sysdeps/unix/sysv/linux/posix_fadvise64.c: In function `__posix_fadvise64_l64':
384.10 -../sysdeps/unix/sysv/linux/posix_fadvise64.c:35: warning: implicit declaration of function `DECLARGS_6'
384.11 -../sysdeps/unix/sysv/linux/posix_fadvise64.c:35: error: parse error before "register"
384.12 -...
384.13 -../sysdeps/unix/sysv/linux/posix_fadvise64.c:35: error: parse error before "ASMFMT_6"
384.14 -make[2]: *** [crosstool-0.28-rc34/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/io/posix_fadvise64.o] Error 1
384.15 -
384.16 -
384.17 -From: Martin Schwidefsky <schwidefsky at de dot ibm dot com>
384.18 -Organization: IBM Deutschland GmbH
384.19 -To: libc-hacker at sources dot redhat dot com
384.20 -Subject: fadvise64_64 for s390-32.
384.21 -Date: Fri, 5 Dec 2003 18:46:33 +0100
384.22 -
384.23 -Hi,
384.24 -on s390* system calls can have up to 5 paramters. The generic linux
384.25 -implemenation of fadvise64_64 for 32 bit systems needs 6 parameters,
384.26 -so we need to have a s390-32 special version of posix_fadvise64.c.
384.27 -For s390-64 we do not have the problem because there fadvise64_64
384.28 -has only 4 parameters.
384.29 -
384.30 -blue skies,
384.31 - Martin.
384.32 -
384.33 -2003-12-05 Martin Schwidefsky <schwidefsky@de.ibm.com>
384.34 -
384.35 - * sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c: New file.
384.36 -
384.37 -diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
384.38 ---- libc/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
384.39 -+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c 2003-11-13 15:31:40.000000000 +0100
384.40 -@@ -0,0 +1,90 @@
384.41 -+/* Copyright (C) 2003 Free Software Foundation, Inc.
384.42 -+ This file is part of the GNU C Library.
384.43 -+
384.44 -+ The GNU C Library is free software; you can redistribute it and/or
384.45 -+ modify it under the terms of the GNU Lesser General Public
384.46 -+ License as published by the Free Software Foundation; either
384.47 -+ version 2.1 of the License, or (at your option) any later version.
384.48 -+
384.49 -+ The GNU C Library is distributed in the hope that it will be useful,
384.50 -+ but WITHOUT ANY WARRANTY; without even the implied warranty of
384.51 -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
384.52 -+ Lesser General Public License for more details.
384.53 -+
384.54 -+ You should have received a copy of the GNU Lesser General Public
384.55 -+ License along with the GNU C Library; if not, write to the Free
384.56 -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
384.57 -+ 02111-1307 USA. */
384.58 -+
384.59 -+#include <errno.h>
384.60 -+#include <fcntl.h>
384.61 -+#include <sysdep.h>
384.62 -+#include <kernel-features.h>
384.63 -+
384.64 -+int __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise);
384.65 -+int __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise);
384.66 -+
384.67 -+/* Advice the system about the expected behaviour of the application with
384.68 -+ respect to the file associated with FD. */
384.69 -+
384.70 -+struct fadvise64_64_layout
384.71 -+{
384.72 -+ int fd;
384.73 -+ off64_t offset;
384.74 -+ off64_t len;
384.75 -+ int advise;
384.76 -+};
384.77 -+
384.78 -+int
384.79 -+__posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
384.80 -+{
384.81 -+#ifdef __NR_fadvise64_64
384.82 -+ struct fadvise64_64_layout parameters;
384.83 -+ INTERNAL_SYSCALL_DECL (err);
384.84 -+
384.85 -+ parameters.fd = fd;
384.86 -+ parameters.offset = offset;
384.87 -+ parameters.len = len;
384.88 -+ parameters.advise = advise;
384.89 -+ int ret = INTERNAL_SYSCALL (fadvise64_64, err, 1, ¶meters);
384.90 -+ if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
384.91 -+ return 0;
384.92 -+# ifndef __ASSUME_FADVISE64_64_SYSCALL
384.93 -+ if (INTERNAL_SYSCALL_ERRNO (ret, err) != ENOSYS)
384.94 -+# endif
384.95 -+ return INTERNAL_SYSCALL_ERRNO (ret, err);
384.96 -+#endif
384.97 -+#ifndef __ASSUME_FADVISE64_64_SYSCALL
384.98 -+# ifdef __NR_fadvise64
384.99 -+ if (len != (off_t) len)
384.100 -+ return EOVERFLOW;
384.101 -+
384.102 -+ INTERNAL_SYSCALL_DECL (err2);
384.103 -+ int ret2 = INTERNAL_SYSCALL (fadvise64, err2, 5, fd,
384.104 -+ __LONG_LONG_PAIR ((long) (offset >> 32),
384.105 -+ (long) offset),
384.106 -+ (off_t) len, advise);
384.107 -+ if (!INTERNAL_SYSCALL_ERROR_P (ret2, err2))
384.108 -+ return 0;
384.109 -+ return INTERNAL_SYSCALL_ERRNO (ret2, err2);
384.110 -+# else
384.111 -+ return ENOSYS;
384.112 -+# endif
384.113 -+#endif
384.114 -+}
384.115 -+
384.116 -+#include <shlib-compat.h>
384.117 -+
384.118 -+#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
384.119 -+
384.120 -+int
384.121 -+__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
384.122 -+{
384.123 -+ return __posix_fadvise64_l64 (fd, offset, len, advise);
384.124 -+}
384.125 -+
384.126 -+versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3);
384.127 -+compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
384.128 -+#else
384.129 -+strong_alias (__posix_fadvise64_l64, posix_fadvise64);
384.130 -+#endif
384.131 -
385.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-unwind-dw2.patch Tue Aug 14 19:32:22 2007 +0000
385.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
385.3 @@ -1,66 +0,0 @@
385.4 -See http://sources.redhat.com/ml/libc-alpha/2004-02/msg00138.html
385.5 -aka http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2004-02&msgid=20040220044155.GE22135%40baldric.uwo.ca
385.6 -
385.7 -In CVS as
385.8 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/generic/unwind-dw2.c.diff?r1=1.7&r2=1.8&cvsroot=glibc'
385.9 -
385.10 -Revision 1.8, Sat Feb 21 09:07:29 2004 UTC (5 months, 3 weeks ago) by drepper
385.11 -
385.12 - Allow sjlj enabled compilers to build the code by removing
385.13 - __USING_SJLJ_EXCEPTIONS__ wrapper.
385.14 -
385.15 -plus
385.16 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/generic/framestate.c.diff?r1=1.3&r2=1.4&cvsroot=glibc'
385.17 -
385.18 -Revision 1.4, Sat Feb 21 09:07:05 2004 UTC (5 months, 3 weeks ago) by drepper
385.19 -
385.20 - [__USING_SJLJ_EXCEPTIONS__] (__frame_state_for): Set frame_State_for
385.21 - to abort if the compiler is using sjlj.
385.22 -
385.23 -Fixes compile error
385.24 -
385.25 -../sysdeps/generic/framestate.c: In function `__frame_state_for':
385.26 -../sysdeps/generic/framestate.c:44: error: `fallback_frame_state_for' undeclared (first use in this function)
385.27 -../sysdeps/generic/framestate.c:44: error: (Each undeclared identifier is reported only once
385.28 -../sysdeps/generic/framestate.c:44: error: for each function it appears in.)
385.29 -make[2]: *** [crosstool-0.28-rc34/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/elf/framestate.os] Error 1
385.30 -
385.31 -===================================================================
385.32 -RCS file: /cvs/glibc/libc/sysdeps/generic/unwind-dw2.c,v
385.33 -retrieving revision 1.7
385.34 -retrieving revision 1.8
385.35 -diff -u -r1.7 -r1.8
385.36 ---- libc/sysdeps/generic/unwind-dw2.c 2003/07/22 23:55:55 1.7
385.37 -+++ libc/sysdeps/generic/unwind-dw2.c 2004/02/21 09:07:29 1.8
385.38 -@@ -39,7 +39,6 @@
385.39 - #endif
385.40 -
385.41 -
385.42 --#ifndef __USING_SJLJ_EXCEPTIONS__
385.43 -
385.44 - #ifndef STACK_GROWS_DOWNWARD
385.45 - #define STACK_GROWS_DOWNWARD 0
385.46 -@@ -1287,4 +1286,3 @@
385.47 - #include "unwind.inc"
385.48 -
385.49 - #endif /* _LIBC */
385.50 --#endif /* !USING_SJLJ_EXCEPTIONS */
385.51 -===================================================================
385.52 -RCS file: /cvs/glibc/libc/sysdeps/generic/framestate.c,v
385.53 -retrieving revision 1.3
385.54 -retrieving revision 1.4
385.55 -diff -u -r1.3 -r1.4
385.56 ---- libc/sysdeps/generic/framestate.c 2003/01/08 06:46:06 1.3
385.57 -+++ libc/sysdeps/generic/framestate.c 2004/02/21 09:07:05 1.4
385.58 -@@ -41,7 +41,11 @@
385.59 - if (handle == NULL
385.60 - || (frame_state_for
385.61 - = (framesf) __libc_dlsym (handle, "__frame_state_for")) == NULL)
385.62 -+#ifndef __USING_SJLJ_EXCEPTIONS__
385.63 - frame_state_for = fallback_frame_state_for;
385.64 -+#else
385.65 -+ frame_state_for = abort;
385.66 -+#endif
385.67 - }
385.68 -
385.69 - return frame_state_for (pc, frame_state);
386.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-arm.patch Tue Aug 14 19:32:22 2007 +0000
386.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
386.3 @@ -1,117 +0,0 @@
386.4 -Fixes
386.5 -In file included from dynamic-link.h:22,
386.6 - from dl-reloc.c:265:
386.7 -../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
386.8 -../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24'
386.9 -../sysdeps/arm/dl-machine.h:406: error: invalid storage class for function 'elf_machine_rel'
386.10 -../sysdeps/arm/dl-machine.h:532: error: invalid storage class for function 'elf_machine_rela'
386.11 -../sysdeps/arm/dl-machine.h:612: error: invalid storage class for function 'elf_machine_rel_relative'
386.12 -../sysdeps/arm/dl-machine.h:621: error: invalid storage class for function 'elf_machine_rela_relative'
386.13 -../sysdeps/arm/dl-machine.h:630: error: invalid storage class for function 'elf_machine_lazy_rel'
386.14 -make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
386.15 -
386.16 -when building glibc-2.3.[34] with gcc-4.0
386.17 -
386.18 -Like
386.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc
386.20 -but works with older compilers, and fixes fix_bad_pc24.
386.21 -
386.22 -
386.23 ---- glibc-2.3.4/sysdeps/arm/dl-machine.h.old Sun Mar 20 17:54:37 2005
386.24 -+++ glibc-2.3.4/sysdeps/arm/dl-machine.h Sun Mar 20 17:57:32 2005
386.25 -@@ -359,7 +359,14 @@
386.26 - # endif
386.27 -
386.28 - /* Deal with an out-of-range PC24 reloc. */
386.29 --static Elf32_Addr
386.30 -+#if __GNUC__ >= 4
386.31 -+ auto inline Elf32_Addr
386.32 -+#else
386.33 -+ static inline Elf32_Addr
386.34 -+#endif
386.35 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
386.36 -+ __attribute ((always_inline))
386.37 -+#endif
386.38 - fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
386.39 - {
386.40 - static void *fix_page;
386.41 -@@ -392,7 +399,14 @@
386.42 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
386.43 - MAP is the object containing the reloc. */
386.44 -
386.45 --static inline void
386.46 -+#if __GNUC__ >= 4
386.47 -+ auto inline void
386.48 -+#else
386.49 -+ static inline void
386.50 -+#endif
386.51 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
386.52 -+ __attribute ((always_inline))
386.53 -+#endif
386.54 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
386.55 - const Elf32_Sym *sym, const struct r_found_version *version,
386.56 - void *const reloc_addr_arg)
386.57 -@@ -517,7 +531,14 @@
386.58 - }
386.59 -
386.60 - # ifndef RTLD_BOOTSTRAP
386.61 --static inline void
386.62 -+#if __GNUC__ >= 4
386.63 -+ auto inline void
386.64 -+#else
386.65 -+ static inline void
386.66 -+#endif
386.67 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
386.68 -+ __attribute ((always_inline))
386.69 -+#endif
386.70 - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
386.71 - const Elf32_Sym *sym, const struct r_found_version *version,
386.72 - void *const reloc_addr_arg)
386.73 -@@ -597,7 +618,14 @@
386.74 - }
386.75 - # endif
386.76 -
386.77 --static inline void
386.78 -+#if __GNUC__ >= 4
386.79 -+ auto inline void
386.80 -+#else
386.81 -+ static inline void
386.82 -+#endif
386.83 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
386.84 -+ __attribute ((always_inline))
386.85 -+#endif
386.86 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
386.87 - void *const reloc_addr_arg)
386.88 - {
386.89 -@@ -606,7 +634,14 @@
386.90 - }
386.91 -
386.92 - # ifndef RTLD_BOOTSTRAP
386.93 --static inline void
386.94 -+#if __GNUC__ >= 4
386.95 -+ auto inline void
386.96 -+#else
386.97 -+ static inline void
386.98 -+#endif
386.99 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
386.100 -+ __attribute ((always_inline))
386.101 -+#endif
386.102 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
386.103 - void *const reloc_addr_arg)
386.104 - {
386.105 -@@ -615,7 +650,14 @@
386.106 - }
386.107 - # endif
386.108 -
386.109 --static inline void
386.110 -+#if __GNUC__ >= 4
386.111 -+ auto inline void
386.112 -+#else
386.113 -+ static inline void
386.114 -+#endif
386.115 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
386.116 -+ __attribute ((always_inline))
386.117 -+#endif
386.118 - elf_machine_lazy_rel (struct link_map *map,
386.119 - Elf32_Addr l_addr, const Elf32_Rel *reloc)
386.120 - {
387.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-elf.patch Tue Aug 14 19:32:22 2007 +0000
387.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
387.3 @@ -1,61 +0,0 @@
387.4 -From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
387.5 -Fixes
387.6 - rtld.c: In function '_dl_start':
387.7 - dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
387.8 - dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
387.9 -when compiling glibc-2.3.4 with gcc-4.0
387.10 -
387.11 -But see also
387.12 -http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
387.13 -and
387.14 -http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
387.15 -which seem to propose less radical fixes?
387.16 -
387.17 -Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
387.18 -
387.19 ---- glibc-2.3-20050307/elf/dynamic-link.h.old 2005-03-12 18:12:37.000000000 -0800
387.20 -+++ glibc-2.3-20050307/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800
387.21 -@@ -19,43 +19,6 @@
387.22 -
387.23 - #include <elf.h>
387.24 - #include <assert.h>
387.25 --
387.26 --#ifdef RESOLVE
387.27 --/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
387.28 -- ElfW(Addr), because not all architectures can assume that the
387.29 -- relocated address is properly aligned, whereas the compiler is
387.30 -- entitled to assume that a pointer to a type is properly aligned for
387.31 -- the type. Even if we cast the pointer back to some other type with
387.32 -- less strict alignment requirements, the compiler might still
387.33 -- remember that the pointer was originally more aligned, thereby
387.34 -- optimizing away alignment tests or using word instructions for
387.35 -- copying memory, breaking the very code written to handle the
387.36 -- unaligned cases. */
387.37 --auto void __attribute__((always_inline))
387.38 --elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
387.39 -- const ElfW(Sym) *sym, const struct r_found_version *version,
387.40 -- void *const reloc_addr);
387.41 --auto void __attribute__((always_inline))
387.42 --elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
387.43 -- const ElfW(Sym) *sym, const struct r_found_version *version,
387.44 -- void *const reloc_addr);
387.45 --auto void __attribute__((always_inline))
387.46 --elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
387.47 -- void *const reloc_addr);
387.48 --auto void __attribute__((always_inline))
387.49 --elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
387.50 -- void *const reloc_addr);
387.51 --# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
387.52 --auto void __attribute__((always_inline))
387.53 --elf_machine_lazy_rel (struct link_map *map,
387.54 -- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
387.55 --# else
387.56 --auto void __attribute__((always_inline))
387.57 --elf_machine_lazy_rel (struct link_map *map,
387.58 -- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
387.59 --# endif
387.60 --#endif
387.61 --
387.62 - #include <dl-machine.h>
387.63 -
387.64 - #ifndef VERSYMIDX
388.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch Tue Aug 14 19:32:22 2007 +0000
388.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
388.3 @@ -1,42 +0,0 @@
388.4 -Fixes
388.5 -
388.6 -../sysdeps/powerpc/powerpc32/dl-machine.h: In function '_dl_relocate_object':
388.7 -../sysdeps/powerpc/powerpc32/dl-machine.h:461: error: invalid storage class for function 'elf_machine_rela_relative'
388.8 -../sysdeps/powerpc/powerpc32/dl-machine.h:469: error: invalid storage class for function 'elf_machine_lazy_rel'
388.9 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/elf/dl-reloc.o] Error 1
388.10 -
388.11 -diff -ur glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h
388.12 ---- glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h Wed Jul 30 23:33:52 2003
388.13 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h Thu Mar 17 13:19:16 2005
388.14 -@@ -455,7 +455,14 @@
388.15 - }
388.16 - }
388.17 -
388.18 --static inline void
388.19 -+#if __GNUC__ >= 4
388.20 -+ auto inline void
388.21 -+#else
388.22 -+ static inline void
388.23 -+#endif
388.24 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
388.25 -+ __attribute ((always_inline))
388.26 -+#endif
388.27 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
388.28 - void *const reloc_addr_arg)
388.29 - {
388.30 -@@ -463,7 +470,14 @@
388.31 - *reloc_addr = l_addr + reloc->r_addend;
388.32 - }
388.33 -
388.34 --static inline void
388.35 -+#if __GNUC__ >= 4
388.36 -+ auto inline void
388.37 -+#else
388.38 -+ static inline void
388.39 -+#endif
388.40 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
388.41 -+ __attribute ((always_inline))
388.42 -+#endif
388.43 - elf_machine_lazy_rel (struct link_map *map,
388.44 - Elf32_Addr l_addr, const Elf32_Rela *reloc)
388.45 - {
389.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch Tue Aug 14 19:32:22 2007 +0000
389.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
389.3 @@ -1,60 +0,0 @@
389.4 -Fixes:
389.5 -
389.6 -In file included from dynamic-link.h:22,
389.7 - from dl-reloc.c:269:
389.8 -../sysdeps/powerpc/powerpc64/dl-machine.h: In function '_dl_relocate_object':
389.9 -../sysdeps/powerpc/powerpc64/dl-machine.h:573: error: invalid storage class for function 'elf_machine_rela_relative'
389.10 -../sysdeps/powerpc/powerpc64/dl-machine.h:607: error: invalid storage class for function 'elf_machine_rela'
389.11 -../sysdeps/powerpc/powerpc64/dl-machine.h:889: error: invalid storage class for function 'elf_machine_lazy_rel'
389.12 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/elf'
389.13 -
389.14 ---- glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h.old Thu Mar 17 13:35:23 2005
389.15 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h Thu Mar 17 13:37:12 2005
389.16 -@@ -567,7 +567,14 @@
389.17 - const Elf64_Sym *refsym)
389.18 - attribute_hidden;
389.19 -
389.20 --static inline void
389.21 -+#if __GNUC__ >= 4
389.22 -+ auto inline void
389.23 -+#else
389.24 -+ static inline void
389.25 -+#endif
389.26 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
389.27 -+ __attribute ((always_inline))
389.28 -+#endif
389.29 - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
389.30 - void *const reloc_addr_arg)
389.31 - {
389.32 -@@ -598,7 +605,14 @@
389.33 -
389.34 - /* Perform the relocation specified by RELOC and SYM (which is fully
389.35 - resolved). MAP is the object containing the reloc. */
389.36 --static inline void
389.37 -+#if __GNUC__ >= 4
389.38 -+ auto inline void
389.39 -+#else
389.40 -+ static inline void
389.41 -+#endif
389.42 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
389.43 -+ __attribute ((always_inline))
389.44 -+#endif
389.45 - elf_machine_rela (struct link_map *map,
389.46 - const Elf64_Rela *reloc,
389.47 - const Elf64_Sym *sym,
389.48 -@@ -883,7 +897,14 @@
389.49 - MODIFIED_CODE_NOQUEUE (reloc_addr);
389.50 - }
389.51 -
389.52 --static inline void
389.53 -+#if __GNUC__ >= 4
389.54 -+ auto inline void
389.55 -+#else
389.56 -+ static inline void
389.57 -+#endif
389.58 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
389.59 -+ __attribute ((always_inline))
389.60 -+#endif
389.61 - elf_machine_lazy_rel (struct link_map *map,
389.62 - Elf64_Addr l_addr, const Elf64_Rela *reloc)
389.63 - {
390.1 --- a/patches/glibc/2.3.3/glibc-configure-apple-as.patch Tue Aug 14 19:32:22 2007 +0000
390.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
390.3 @@ -1,23 +0,0 @@
390.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
390.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
390.6 -
390.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
390.8 -where the assembler but doesn't understand the --version flag.
390.9 -
390.10 -Fixes the symptom
390.11 -checking whether ld is GNU ld... no
390.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
390.13 -checking version of /usr/libexec/gcc/darwin/ppc/as...
390.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
390.15 -
390.16 ---- glibc-2.3.2/configure~ Wed Feb 26 09:20:48 2003
390.17 -+++ glibc-2.3.2/configure Fri Feb 27 13:12:53 2004
390.18 -@@ -3789,7 +3789,7 @@
390.19 - # Found it, now check the version.
390.20 - echo "$as_me:$LINENO: checking version of $AS" >&5
390.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
390.22 -- ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
390.23 -+ ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
390.24 - case $ac_prog_version in
390.25 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
390.26 - 2.1[3-9]*)
391.1 --- a/patches/glibc/2.3.3/glibc-fp-byteorder.patch Tue Aug 14 19:32:22 2007 +0000
391.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
391.3 @@ -1,203 +0,0 @@
391.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
391.5 -Author: addsub@eyou.com
391.6 -Target: ARM
391.7 -
391.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
391.9 -and makes printf("%f", 1.0) work.
391.10 -
391.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
391.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
391.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
391.14 - It's definitely needed for hardfloat. So I'd think it's needed for
391.15 - big-endian systems in any case, and for VFP on little-endian systems
391.16 - too. Someone would have to verify that though.
391.17 -
391.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
391.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
391.20 - for this version. glibc-20040830 out-of-the-box still contains the
391.21 - following wrong assumptions:
391.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
391.23 - not on vfp systems)
391.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
391.25 - are not on big endian systems, neither on vfp systems)
391.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
391.27 - (which they are not on big endian systems)
391.28 - [This patch] seems the right solution for all of these issues.
391.29 -
391.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
391.31 - It's even needed for glibc CVS, AFAICS.
391.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
391.33 - (currently at version 1.4) is only needed for proper VFP operation.
391.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
391.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
391.36 - for proper operation of *any* FP model on big endian ARM.
391.37 -
391.38 -See also discussion in followups to
391.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
391.40 -
391.41 -Message-ID: <276985760.37584@eyou.com>
391.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
391.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
391.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
391.45 -Date: 17 Feb 2004 10:42:38 +0800
391.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
391.47 -From: "add" <addsub@eyou.com>
391.48 -To: dank@kegel.com
391.49 -Reply-To: "add" <addsub@eyou.com>
391.50 -Subject: Re: problem while building arm vfp softfloat gcc `
391.51 -
391.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
391.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
391.54 -
391.55 -
391.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
391.57 ---- glibc.old/sysdeps/arm/bits/endian.h 1999-04-12 11:59:13.000000000 -0400
391.58 -+++ glibc.new/sysdeps/arm/bits/endian.h 2004-02-12 09:15:13.000000000 -0500
391.59 -@@ -9,4 +9,9 @@
391.60 - #else
391.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
391.62 - #endif
391.63 -+
391.64 -+#ifdef __VFP_FP__
391.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
391.66 -+#else
391.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
391.68 -+#endif
391.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
391.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h 2001-07-07 15:21:19.000000000 -0400
391.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h 2004-02-12 09:15:13.000000000 -0500
391.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
391.73 - #define BITS_PER_SHORTINT 16
391.74 - #define BITS_PER_CHAR 8
391.75 -
391.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
391.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
391.78 -+#if defined(__ARMEB__)
391.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
391.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
391.81 -+#elif defined(__VFP_FP__)
391.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
391.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
391.84 -+#else
391.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
391.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
391.87 -+#endif
391.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
391.89 ---- glibc.old/sysdeps/arm/ieee754.h 2001-07-07 15:21:19.000000000 -0400
391.90 -+++ glibc.new/sysdeps/arm/ieee754.h 1969-12-31 19:00:00.000000000 -0500
391.91 -@@ -1,115 +0,0 @@
391.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
391.93 -- This file is part of the GNU C Library.
391.94 --
391.95 -- The GNU C Library is free software; you can redistribute it and/or
391.96 -- modify it under the terms of the GNU Lesser General Public
391.97 -- License as published by the Free Software Foundation; either
391.98 -- version 2.1 of the License, or (at your option) any later version.
391.99 --
391.100 -- The GNU C Library is distributed in the hope that it will be useful,
391.101 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
391.102 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
391.103 -- Lesser General Public License for more details.
391.104 --
391.105 -- You should have received a copy of the GNU Lesser General Public
391.106 -- License along with the GNU C Library; if not, write to the Free
391.107 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
391.108 -- 02111-1307 USA. */
391.109 --
391.110 --#ifndef _IEEE754_H
391.111 --
391.112 --#define _IEEE754_H 1
391.113 --#include <features.h>
391.114 --
391.115 --#include <endian.h>
391.116 --
391.117 --__BEGIN_DECLS
391.118 --
391.119 --union ieee754_float
391.120 -- {
391.121 -- float f;
391.122 --
391.123 -- /* This is the IEEE 754 single-precision format. */
391.124 -- struct
391.125 -- {
391.126 -- unsigned int mantissa:23;
391.127 -- unsigned int exponent:8;
391.128 -- unsigned int negative:1;
391.129 -- } ieee;
391.130 --
391.131 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
391.132 -- struct
391.133 -- {
391.134 -- unsigned int mantissa:22;
391.135 -- unsigned int quiet_nan:1;
391.136 -- unsigned int exponent:8;
391.137 -- unsigned int negative:1;
391.138 -- } ieee_nan;
391.139 -- };
391.140 --
391.141 --#define IEEE754_FLOAT_BIAS 0x7f /* Added to exponent. */
391.142 --
391.143 --
391.144 --union ieee754_double
391.145 -- {
391.146 -- double d;
391.147 --
391.148 -- /* This is the IEEE 754 double-precision format. */
391.149 -- struct
391.150 -- {
391.151 -- unsigned int mantissa0:20;
391.152 -- unsigned int exponent:11;
391.153 -- unsigned int negative:1;
391.154 -- unsigned int mantissa1:32;
391.155 -- } ieee;
391.156 --
391.157 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
391.158 -- struct
391.159 -- {
391.160 -- unsigned int mantissa0:19;
391.161 -- unsigned int quiet_nan:1;
391.162 -- unsigned int exponent:11;
391.163 -- unsigned int negative:1;
391.164 -- unsigned int mantissa1:32;
391.165 -- } ieee_nan;
391.166 -- };
391.167 --
391.168 --#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */
391.169 --
391.170 --
391.171 --/* The following two structures are correct for `new' floating point systems but
391.172 -- wrong for the old FPPC. The only solution seems to be to avoid their use on
391.173 -- old hardware. */
391.174 --
391.175 --union ieee854_long_double
391.176 -- {
391.177 -- long double d;
391.178 --
391.179 -- /* This is the IEEE 854 double-extended-precision format. */
391.180 -- struct
391.181 -- {
391.182 -- unsigned int exponent:15;
391.183 -- unsigned int empty:16;
391.184 -- unsigned int negative:1;
391.185 -- unsigned int mantissa1:32;
391.186 -- unsigned int mantissa0:32;
391.187 -- } ieee;
391.188 --
391.189 -- /* This is for NaNs in the IEEE 854 double-extended-precision format. */
391.190 -- struct
391.191 -- {
391.192 -- unsigned int exponent:15;
391.193 -- unsigned int empty:16;
391.194 -- unsigned int negative:1;
391.195 -- unsigned int mantissa1:32;
391.196 -- unsigned int mantissa0:30;
391.197 -- unsigned int quiet_nan:1;
391.198 -- unsigned int one:1;
391.199 -- } ieee_nan;
391.200 -- };
391.201 --
391.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
391.203 --
391.204 --__END_DECLS
391.205 --
391.206 --#endif /* ieee754.h */
392.1 --- a/patches/glibc/2.3.4/arm-ctl_bus_isa.patch Tue Aug 14 19:32:22 2007 +0000
392.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
392.3 @@ -1,51 +0,0 @@
392.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
392.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
392.6 -Fixes following error:
392.7 -
392.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
392.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
392.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
392.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
392.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
392.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
392.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
392.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
392.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
392.17 -
392.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
392.19 -
392.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
392.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
392.22 -@@ -47,6 +47,12 @@
392.23 - #include <asm/page.h>
392.24 - #include <sys/sysctl.h>
392.25 -
392.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
392.27 -+#include <linux/version.h>
392.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
392.29 -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
392.30 -+#endif
392.31 -+
392.32 - #define PATH_ARM_SYSTYPE "/etc/arm_systype"
392.33 - #define PATH_CPUINFO "/proc/cpuinfo"
392.34 -
392.35 -@@ -80,7 +86,7 @@
392.36 - * Initialize I/O system. There are several ways to get the information
392.37 - * we need. Each is tried in turn until one succeeds.
392.38 - *
392.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
392.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
392.41 - * but not all kernels support it.
392.42 - *
392.43 - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
392.44 -@@ -100,8 +106,8 @@
392.45 - {
392.46 - char systype[256];
392.47 - int i, n;
392.48 -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
392.49 -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
392.50 -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
392.51 -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
392.52 - size_t len = sizeof(io.base);
392.53 -
392.54 - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
393.1 --- a/patches/glibc/2.3.4/bad/glibc-2.3.4-cygwin.patch Tue Aug 14 19:32:22 2007 +0000
393.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
393.3 @@ -1,96 +0,0 @@
393.4 -Fixes
393.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
393.6 -...
393.7 -when building glibc-2.3.3 on cygwin
393.8 -
393.9 -Idea from
393.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
393.11 -Basically, make glibc use .oST as suffix for 'object static'
393.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
393.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
393.14 -
393.15 -glibc-linuxthreads-2.3.3 also requires a patch, see
393.16 -../glibc-linuxthreads-2.3.3/glibc-linuxthreads-2.3.3-cygwin.patch
393.17 -
393.18 -[ Rediffed against glibc-2.3.3 ]
393.19 -
393.20 -
393.21 -diff -urN glibc-2.3.4-orig/Makeconfig glibc-2.3.4/Makeconfig
393.22 ---- glibc-2.3.4-orig/Makeconfig 2004-12-15 19:51:47.000000000 +0100
393.23 -+++ glibc-2.3.4/Makeconfig 2005-03-13 18:54:58.000000000 +0100
393.24 -@@ -449,7 +449,7 @@
393.25 - # run the linked programs.
393.26 - link-libc = -Wl,-rpath-link=$(rpath-link) \
393.27 - $(common-objpfx)libc.so$(libc.so-version) \
393.28 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
393.29 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
393.30 - # This is how to find at build-time things that will be installed there.
393.31 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
393.32 - endif
393.33 -@@ -667,7 +667,7 @@
393.34 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
393.35 - # to pass different flags for each flavor.
393.36 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
393.37 --all-object-suffixes := .o .os .op .og .ob .oS
393.38 -+all-object-suffixes := .o .os .op .og .ob .oST
393.39 - object-suffixes :=
393.40 - CPPFLAGS-.o = $(pic-default)
393.41 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
393.42 -@@ -723,14 +723,14 @@
393.43 -
393.44 - ifeq (yes,$(build-shared))
393.45 - # Build special library that contains the static-only routines for libc.
393.46 --object-suffixes-for-libc += .oS
393.47 -+object-suffixes-for-libc += .oST
393.48 -
393.49 - # Must build the routines as PIC, though, because they can end up in (users')
393.50 - # shared objects. We don't want to use CFLAGS-os because users may, for
393.51 - # example, make that processor-specific.
393.52 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
393.53 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
393.54 --libtype.oS = lib%_nonshared.a
393.55 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
393.56 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
393.57 -+libtype.oST = lib%_nonshared.a
393.58 - endif
393.59 -
393.60 - # The assembler can generate debug information too.
393.61 -diff -urN glibc-2.3.4-orig/Makerules glibc-2.3.4/Makerules
393.62 ---- glibc-2.3.4-orig/Makerules 2004-12-15 19:52:39.000000000 +0100
393.63 -+++ glibc-2.3.4/Makerules 2005-03-13 18:50:09.000000000 +0100
393.64 -@@ -416,7 +416,7 @@
393.65 - # Bounded pointer thunks are only built for *.ob
393.66 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
393.67 -
393.68 --elide-routines.oS += $(filter-out $(static-only-routines),\
393.69 -+elide-routines.oST += $(filter-out $(static-only-routines),\
393.70 - $(routines) $(aux) $(sysdep_routines)) \
393.71 - $(elide-bp-thunks)
393.72 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
393.73 -@@ -961,7 +961,7 @@
393.74 - install: $(inst_libdir)/libc.so
393.75 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
393.76 - $(common-objpfx)libc.so$(libc.so-version) \
393.77 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
393.78 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
393.79 - $(libprefix)$(libc-name)) \
393.80 - $(+force)
393.81 - (echo '/* GNU ld script';\
393.82 -@@ -969,7 +969,7 @@
393.83 - echo ' the static library, so try that secondarily. */';\
393.84 - cat $<; \
393.85 - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
393.86 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
393.87 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
393.88 - ')' \
393.89 - ) > $@.new
393.90 - mv -f $@.new $@
393.91 -diff -urN glibc-2.3.4-orig/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.4/sysdeps/sparc/sparc32/sparcv9/Makefile
393.92 ---- glibc-2.3.4-orig/sysdeps/sparc/sparc32/sparcv9/Makefile 2004-08-16 08:46:14.000000000 +0200
393.93 -+++ glibc-2.3.4/sysdeps/sparc/sparc32/sparcv9/Makefile 2005-03-13 18:50:09.000000000 +0100
393.94 -@@ -10,4 +10,4 @@
393.95 - ASFLAGS-.op += -Wa,-Av9a
393.96 - ASFLAGS-.og += -Wa,-Av9a
393.97 - ASFLAGS-.ob += -Wa,-Av9a
393.98 --ASFLAGS-.oS += -Wa,-Av9a
393.99 -+ASFLAGS-.oST += -Wa,-Av9a
394.1 --- a/patches/glibc/2.3.4/fix-pr398.patch Tue Aug 14 19:32:22 2007 +0000
394.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
394.3 @@ -1,70 +0,0 @@
394.4 -Fixes error
394.5 -
394.6 -dl-runtime.c:222: error: parse error before "CFI_STARTPROC"
394.7 -make[2]: *** [crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/elf/dl-runtim
394.8 -e.o] Error 1
394.9 -make[2]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040
394.10 -822/elf'
394.11 -make[1]: *** [elf/subdir_lib] Error 2
394.12 -make[1]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040
394.13 -822'
394.14 -make: *** [all] Error 2
394.15 -
394.16 ------------------
394.17 -
394.18 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=398
394.19 -http://sources.redhat.com/ml/libc-alpha/2004-07/msg00023.html
394.20 -
394.21 ------------------
394.22 -
394.23 -CVSROOT: /cvs/glibc
394.24 -Module name: libc
394.25 -Branch: glibc-2_3-branch
394.26 -Changes by: roland@sources.redhat.com 2006-02-23 22:36:51
394.27 -
394.28 -Modified files:
394.29 - sysdeps/s390/s390-64: dl-machine.h
394.30 - sysdeps/s390/s390-32: dl-machine.h
394.31 -
394.32 -Log message:
394.33 - 2004-07-10 GOTO Masanori <gotom@debian.or.jp>
394.34 -
394.35 - [BZ #398]
394.36 - * sysdeps/s390/s390-32/dl-machine.h: Include <sysdep.h> for CFI
394.37 - directive.
394.38 - * sysdeps/s390/s390-64/dl-machine.h: Likewise.
394.39 -
394.40 -Patches:
394.41 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-64/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.19.4.1&r2=1.19.4.2
394.42 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-32/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.20.4.1&r2=1.20.4.2
394.43 -
394.44 -===================================================================
394.45 -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-64/dl-machine.h,v
394.46 -retrieving revision 1.19.4.1
394.47 -retrieving revision 1.19.4.2
394.48 -diff -u -r1.19.4.1 -r1.19.4.2
394.49 ---- libc/sysdeps/s390/s390-64/dl-machine.h 2005/10/17 04:57:27 1.19.4.1
394.50 -+++ libc/sysdeps/s390/s390-64/dl-machine.h 2006/02/23 22:36:51 1.19.4.2
394.51 -@@ -27,6 +27,7 @@
394.52 - #include <sys/param.h>
394.53 - #include <string.h>
394.54 - #include <link.h>
394.55 -+#include <sysdep.h>
394.56 -
394.57 - /* This is an older, now obsolete value. */
394.58 - #define EM_S390_OLD 0xA390
394.59 -===================================================================
394.60 -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-32/dl-machine.h,v
394.61 -retrieving revision 1.20.4.1
394.62 -retrieving revision 1.20.4.2
394.63 -diff -u -r1.20.4.1 -r1.20.4.2
394.64 ---- libc/sysdeps/s390/s390-32/dl-machine.h 2005/10/17 04:57:27 1.20.4.1
394.65 -+++ libc/sysdeps/s390/s390-32/dl-machine.h 2006/02/23 22:36:51 1.20.4.2
394.66 -@@ -27,6 +27,7 @@
394.67 - #include <sys/param.h>
394.68 - #include <string.h>
394.69 - #include <link.h>
394.70 -+#include <sysdep.h>
394.71 -
394.72 - /* This is an older, now obsolete value. */
394.73 - #define EM_S390_OLD 0xA390
395.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-arm.patch Tue Aug 14 19:32:22 2007 +0000
395.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
395.3 @@ -1,117 +0,0 @@
395.4 -Fixes
395.5 -In file included from dynamic-link.h:22,
395.6 - from dl-reloc.c:265:
395.7 -../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
395.8 -../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24'
395.9 -../sysdeps/arm/dl-machine.h:406: error: invalid storage class for function 'elf_machine_rel'
395.10 -../sysdeps/arm/dl-machine.h:532: error: invalid storage class for function 'elf_machine_rela'
395.11 -../sysdeps/arm/dl-machine.h:612: error: invalid storage class for function 'elf_machine_rel_relative'
395.12 -../sysdeps/arm/dl-machine.h:621: error: invalid storage class for function 'elf_machine_rela_relative'
395.13 -../sysdeps/arm/dl-machine.h:630: error: invalid storage class for function 'elf_machine_lazy_rel'
395.14 -make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
395.15 -
395.16 -when building glibc-2.3.[34] with gcc-4.0
395.17 -
395.18 -Like
395.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc
395.20 -but works with older compilers, and fixes fix_bad_pc24.
395.21 -
395.22 -
395.23 ---- glibc-2.3.4/sysdeps/arm/dl-machine.h.old Sun Mar 20 17:54:37 2005
395.24 -+++ glibc-2.3.4/sysdeps/arm/dl-machine.h Sun Mar 20 17:57:32 2005
395.25 -@@ -359,7 +359,14 @@
395.26 - # endif
395.27 -
395.28 - /* Deal with an out-of-range PC24 reloc. */
395.29 --static Elf32_Addr
395.30 -+#if __GNUC__ >= 4
395.31 -+ auto inline Elf32_Addr
395.32 -+#else
395.33 -+ static inline Elf32_Addr
395.34 -+#endif
395.35 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
395.36 -+ __attribute ((always_inline))
395.37 -+#endif
395.38 - fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
395.39 - {
395.40 - static void *fix_page;
395.41 -@@ -392,7 +399,14 @@
395.42 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
395.43 - MAP is the object containing the reloc. */
395.44 -
395.45 --static inline void
395.46 -+#if __GNUC__ >= 4
395.47 -+ auto inline void
395.48 -+#else
395.49 -+ static inline void
395.50 -+#endif
395.51 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
395.52 -+ __attribute ((always_inline))
395.53 -+#endif
395.54 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
395.55 - const Elf32_Sym *sym, const struct r_found_version *version,
395.56 - void *const reloc_addr_arg)
395.57 -@@ -517,7 +531,14 @@
395.58 - }
395.59 -
395.60 - # ifndef RTLD_BOOTSTRAP
395.61 --static inline void
395.62 -+#if __GNUC__ >= 4
395.63 -+ auto inline void
395.64 -+#else
395.65 -+ static inline void
395.66 -+#endif
395.67 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
395.68 -+ __attribute ((always_inline))
395.69 -+#endif
395.70 - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
395.71 - const Elf32_Sym *sym, const struct r_found_version *version,
395.72 - void *const reloc_addr_arg)
395.73 -@@ -597,7 +618,14 @@
395.74 - }
395.75 - # endif
395.76 -
395.77 --static inline void
395.78 -+#if __GNUC__ >= 4
395.79 -+ auto inline void
395.80 -+#else
395.81 -+ static inline void
395.82 -+#endif
395.83 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
395.84 -+ __attribute ((always_inline))
395.85 -+#endif
395.86 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
395.87 - void *const reloc_addr_arg)
395.88 - {
395.89 -@@ -606,7 +634,14 @@
395.90 - }
395.91 -
395.92 - # ifndef RTLD_BOOTSTRAP
395.93 --static inline void
395.94 -+#if __GNUC__ >= 4
395.95 -+ auto inline void
395.96 -+#else
395.97 -+ static inline void
395.98 -+#endif
395.99 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
395.100 -+ __attribute ((always_inline))
395.101 -+#endif
395.102 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
395.103 - void *const reloc_addr_arg)
395.104 - {
395.105 -@@ -615,7 +650,14 @@
395.106 - }
395.107 - # endif
395.108 -
395.109 --static inline void
395.110 -+#if __GNUC__ >= 4
395.111 -+ auto inline void
395.112 -+#else
395.113 -+ static inline void
395.114 -+#endif
395.115 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
395.116 -+ __attribute ((always_inline))
395.117 -+#endif
395.118 - elf_machine_lazy_rel (struct link_map *map,
395.119 - Elf32_Addr l_addr, const Elf32_Rel *reloc)
395.120 - {
396.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-elf.patch Tue Aug 14 19:32:22 2007 +0000
396.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
396.3 @@ -1,61 +0,0 @@
396.4 -From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
396.5 -Fixes
396.6 - rtld.c: In function '_dl_start':
396.7 - dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
396.8 - dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
396.9 -when compiling glibc-2.3.4 with gcc-4.0
396.10 -
396.11 -But see also
396.12 -http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
396.13 -and
396.14 -http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
396.15 -which seem to propose less radical fixes?
396.16 -
396.17 -Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
396.18 -
396.19 ---- glibc-2.3-20050307/elf/dynamic-link.h.old 2005-03-12 18:12:37.000000000 -0800
396.20 -+++ glibc-2.3-20050307/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800
396.21 -@@ -19,43 +19,6 @@
396.22 -
396.23 - #include <elf.h>
396.24 - #include <assert.h>
396.25 --
396.26 --#ifdef RESOLVE
396.27 --/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
396.28 -- ElfW(Addr), because not all architectures can assume that the
396.29 -- relocated address is properly aligned, whereas the compiler is
396.30 -- entitled to assume that a pointer to a type is properly aligned for
396.31 -- the type. Even if we cast the pointer back to some other type with
396.32 -- less strict alignment requirements, the compiler might still
396.33 -- remember that the pointer was originally more aligned, thereby
396.34 -- optimizing away alignment tests or using word instructions for
396.35 -- copying memory, breaking the very code written to handle the
396.36 -- unaligned cases. */
396.37 --auto void __attribute__((always_inline))
396.38 --elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
396.39 -- const ElfW(Sym) *sym, const struct r_found_version *version,
396.40 -- void *const reloc_addr);
396.41 --auto void __attribute__((always_inline))
396.42 --elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
396.43 -- const ElfW(Sym) *sym, const struct r_found_version *version,
396.44 -- void *const reloc_addr);
396.45 --auto void __attribute__((always_inline))
396.46 --elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
396.47 -- void *const reloc_addr);
396.48 --auto void __attribute__((always_inline))
396.49 --elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
396.50 -- void *const reloc_addr);
396.51 --# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
396.52 --auto void __attribute__((always_inline))
396.53 --elf_machine_lazy_rel (struct link_map *map,
396.54 -- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
396.55 --# else
396.56 --auto void __attribute__((always_inline))
396.57 --elf_machine_lazy_rel (struct link_map *map,
396.58 -- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
396.59 --# endif
396.60 --#endif
396.61 --
396.62 - #include <dl-machine.h>
396.63 -
396.64 - #ifndef VERSYMIDX
397.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-iconvdata.patch Tue Aug 14 19:32:22 2007 +0000
397.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
397.3 @@ -1,44 +0,0 @@
397.4 -See http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
397.5 -and http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
397.6 -
397.7 -Fixes
397.8 - In file included from jis0208.c:23:
397.9 - jis0208.h:32: error: array type has incomplete element type
397.10 -when building glibc with gcc-4.0
397.11 -The bug has been present since at least glibc-2.2.5.
397.12 -This patch applies cleanly to glibc-2.3.4
397.13 -
397.14 ---- /home/dank/downloads/glibc-2.3-20050307/iconvdata/jis0208.h 2003-06-11 14:40:42.000000000 -0700
397.15 -+++ glibc-2.3-20050307/iconvdata/jis0208.h 2005-03-13 20:55:01.784054760 -0800
397.16 -@@ -24,15 +24,6 @@
397.17 - #include <gconv.h>
397.18 - #include <stdint.h>
397.19 -
397.20 --/* Conversion table. */
397.21 --extern const uint16_t __jis0208_to_ucs[];
397.22 --
397.23 --extern const char __jisx0208_from_ucs4_lat1[256][2];
397.24 --extern const char __jisx0208_from_ucs4_greek[0xc1][2];
397.25 --extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
397.26 --extern const char __jisx0208_from_ucs_tab[][2];
397.27 --
397.28 --
397.29 - /* Struct for table with indeces in UCS mapping table. */
397.30 - struct jisx0208_ucs_idx
397.31 - {
397.32 -@@ -42,6 +33,15 @@
397.33 - };
397.34 -
397.35 -
397.36 -+/* Conversion table. */
397.37 -+extern const uint16_t __jis0208_to_ucs[];
397.38 -+
397.39 -+extern const char __jisx0208_from_ucs4_lat1[256][2];
397.40 -+extern const char __jisx0208_from_ucs4_greek[0xc1][2];
397.41 -+extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
397.42 -+extern const char __jisx0208_from_ucs_tab[][2];
397.43 -+
397.44 -+
397.45 - static inline uint32_t
397.46 - __attribute ((always_inline))
397.47 - jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
398.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc-procfs.patch Tue Aug 14 19:32:22 2007 +0000
398.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
398.3 @@ -1,62 +0,0 @@
398.4 -First discussed here:
398.5 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
398.6 -
398.7 -Revision 1.12, Wed Mar 2 20:11:38 2005 UTC by roland
398.8 -Branch: MAIN
398.9 -CVS Tags: fedora-glibc-20050303T1335, HEAD
398.10 -Changes since 1.11: +3 -8 lines
398.11 -Diff to previous 1.11 (colored)
398.12 -
398.13 -2005-02-21 Alan Modra <amodra@bigpond.net.au>
398.14 -
398.15 - * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Don't
398.16 - use __uint128_t.
398.17 -
398.18 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h?cvsroot=glibc
398.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.diff?r1=1.11&r2=1.12&cvsroot=glibc
398.20 -
398.21 -Fixes
398.22 -
398.23 -In file included from ../linuxthreads_db/proc_service.h:20,
398.24 - from ../linuxthreads_db/thread_dbP.h:7,
398.25 - from ../linuxthreads/descr.h:44,
398.26 - from ../linuxthreads/internals.h:30,
398.27 - from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
398.28 - from ../sysdeps/generic/ldsodefs.h:38,
398.29 - from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
398.30 - from <stdin>:2:
398.31 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: error: syntax error before 'elf_vrreg_t'
398.32 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
398.33 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: data definition has no type or storage class
398.34 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: syntax error before 'elf_vrregset_t'
398.35 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
398.36 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: data definition has no type or storage class
398.37 -make[2]: make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/csu'
398.38 -
398.39 -
398.40 -===================================================================
398.41 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h,v
398.42 -retrieving revision 1.11
398.43 -retrieving revision 1.12
398.44 -diff -u -r1.11 -r1.12
398.45 ---- libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h 2003/12/17 23:09:34 1.11
398.46 -+++ libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h 2005/03/02 20:11:38 1.12
398.47 -@@ -46,15 +46,10 @@
398.48 - typedef double elf_fpreg_t;
398.49 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
398.50 -
398.51 --/* gcc 3.1 and newer support __uint128_t. */
398.52 --#if !__GNUC_PREREQ(3,1)
398.53 --typedef struct {
398.54 -- unsigned long u[4];
398.55 --} __attribute((aligned(16))) __uint128_t;
398.56 --#endif
398.57 --
398.58 - /* Altivec registers */
398.59 --typedef __uint128_t elf_vrreg_t;
398.60 -+typedef struct {
398.61 -+ unsigned int u[4];
398.62 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
398.63 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
398.64 - #endif
398.65 -
399.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch Tue Aug 14 19:32:22 2007 +0000
399.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
399.3 @@ -1,42 +0,0 @@
399.4 -Fixes
399.5 -
399.6 -../sysdeps/powerpc/powerpc32/dl-machine.h: In function '_dl_relocate_object':
399.7 -../sysdeps/powerpc/powerpc32/dl-machine.h:461: error: invalid storage class for function 'elf_machine_rela_relative'
399.8 -../sysdeps/powerpc/powerpc32/dl-machine.h:469: error: invalid storage class for function 'elf_machine_lazy_rel'
399.9 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/elf/dl-reloc.o] Error 1
399.10 -
399.11 -diff -ur glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h
399.12 ---- glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h Wed Jul 30 23:33:52 2003
399.13 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h Thu Mar 17 13:19:16 2005
399.14 -@@ -455,7 +455,14 @@
399.15 - }
399.16 - }
399.17 -
399.18 --static inline void
399.19 -+#if __GNUC__ >= 4
399.20 -+ auto inline void
399.21 -+#else
399.22 -+ static inline void
399.23 -+#endif
399.24 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
399.25 -+ __attribute ((always_inline))
399.26 -+#endif
399.27 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
399.28 - void *const reloc_addr_arg)
399.29 - {
399.30 -@@ -463,7 +470,14 @@
399.31 - *reloc_addr = l_addr + reloc->r_addend;
399.32 - }
399.33 -
399.34 --static inline void
399.35 -+#if __GNUC__ >= 4
399.36 -+ auto inline void
399.37 -+#else
399.38 -+ static inline void
399.39 -+#endif
399.40 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
399.41 -+ __attribute ((always_inline))
399.42 -+#endif
399.43 - elf_machine_lazy_rel (struct link_map *map,
399.44 - Elf32_Addr l_addr, const Elf32_Rela *reloc)
399.45 - {
400.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch Tue Aug 14 19:32:22 2007 +0000
400.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
400.3 @@ -1,60 +0,0 @@
400.4 -Fixes:
400.5 -
400.6 -In file included from dynamic-link.h:22,
400.7 - from dl-reloc.c:269:
400.8 -../sysdeps/powerpc/powerpc64/dl-machine.h: In function '_dl_relocate_object':
400.9 -../sysdeps/powerpc/powerpc64/dl-machine.h:573: error: invalid storage class for function 'elf_machine_rela_relative'
400.10 -../sysdeps/powerpc/powerpc64/dl-machine.h:607: error: invalid storage class for function 'elf_machine_rela'
400.11 -../sysdeps/powerpc/powerpc64/dl-machine.h:889: error: invalid storage class for function 'elf_machine_lazy_rel'
400.12 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/elf'
400.13 -
400.14 ---- glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h.old Thu Mar 17 13:35:23 2005
400.15 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h Thu Mar 17 13:37:12 2005
400.16 -@@ -567,7 +567,14 @@
400.17 - const Elf64_Sym *refsym)
400.18 - attribute_hidden;
400.19 -
400.20 --static inline void
400.21 -+#if __GNUC__ >= 4
400.22 -+ auto inline void
400.23 -+#else
400.24 -+ static inline void
400.25 -+#endif
400.26 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
400.27 -+ __attribute ((always_inline))
400.28 -+#endif
400.29 - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
400.30 - void *const reloc_addr_arg)
400.31 - {
400.32 -@@ -598,7 +605,14 @@
400.33 -
400.34 - /* Perform the relocation specified by RELOC and SYM (which is fully
400.35 - resolved). MAP is the object containing the reloc. */
400.36 --static inline void
400.37 -+#if __GNUC__ >= 4
400.38 -+ auto inline void
400.39 -+#else
400.40 -+ static inline void
400.41 -+#endif
400.42 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
400.43 -+ __attribute ((always_inline))
400.44 -+#endif
400.45 - elf_machine_rela (struct link_map *map,
400.46 - const Elf64_Rela *reloc,
400.47 - const Elf64_Sym *sym,
400.48 -@@ -883,7 +897,14 @@
400.49 - MODIFIED_CODE_NOQUEUE (reloc_addr);
400.50 - }
400.51 -
400.52 --static inline void
400.53 -+#if __GNUC__ >= 4
400.54 -+ auto inline void
400.55 -+#else
400.56 -+ static inline void
400.57 -+#endif
400.58 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
400.59 -+ __attribute ((always_inline))
400.60 -+#endif
400.61 - elf_machine_lazy_rel (struct link_map *map,
400.62 - Elf64_Addr l_addr, const Elf64_Rela *reloc)
400.63 - {
401.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-cygwin.patch Tue Aug 14 19:32:22 2007 +0000
401.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
401.3 @@ -1,166 +0,0 @@
401.4 -Fixes
401.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
401.6 -...
401.7 -when building glibc-2.3.4 on cygwin
401.8 -
401.9 -Idea from
401.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
401.11 -Basically, make glibc use .oST as suffix for 'object static'
401.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
401.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
401.14 -
401.15 -glibc-linuxthreads-2.3.4 also requires a patch, see
401.16 -../glibc-linuxthreads-2.3.4/glibc-linuxthreads-2.3.4-cygwin.patch
401.17 -
401.18 -[ Ported to glibc-2.3.4 by steve@digidescorp.com ]
401.19 -
401.20 ---- glibc-2.3.4/Makeconfig.orig 2004-12-15 12:51:47.000000000 -0600
401.21 -+++ glibc-2.3.4/Makeconfig 2005-06-29 00:31:27.000000000 -0500
401.22 -@@ -449,7 +449,7 @@
401.23 - # run the linked programs.
401.24 - link-libc = -Wl,-rpath-link=$(rpath-link) \
401.25 - $(common-objpfx)libc.so$(libc.so-version) \
401.26 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
401.27 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
401.28 - # This is how to find at build-time things that will be installed there.
401.29 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
401.30 - endif
401.31 -@@ -667,7 +667,7 @@
401.32 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
401.33 - # to pass different flags for each flavor.
401.34 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
401.35 --all-object-suffixes := .o .os .op .og .ob .oS
401.36 -+all-object-suffixes := .o .os .op .og .ob .oST
401.37 - object-suffixes :=
401.38 - CPPFLAGS-.o = $(pic-default)
401.39 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
401.40 -@@ -723,14 +723,14 @@
401.41 -
401.42 - ifeq (yes,$(build-shared))
401.43 - # Build special library that contains the static-only routines for libc.
401.44 --object-suffixes-for-libc += .oS
401.45 -+object-suffixes-for-libc += .oST
401.46 -
401.47 - # Must build the routines as PIC, though, because they can end up in (users')
401.48 - # shared objects. We don't want to use CFLAGS-os because users may, for
401.49 - # example, make that processor-specific.
401.50 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
401.51 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
401.52 --libtype.oS = lib%_nonshared.a
401.53 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
401.54 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
401.55 -+libtype.oST = lib%_nonshared.a
401.56 - endif
401.57 -
401.58 - # The assembler can generate debug information too.
401.59 ---- glibc-2.3.4/Makerules.orig 2005-06-28 20:57:52.562500000 -0500
401.60 -+++ glibc-2.3.4/Makerules 2005-06-29 00:27:21.328125000 -0500
401.61 -@@ -416,7 +416,7 @@
401.62 - # Bounded pointer thunks are only built for *.ob
401.63 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
401.64 -
401.65 --elide-routines.oS += $(filter-out $(static-only-routines),\
401.66 -+elide-routines.oST += $(filter-out $(static-only-routines),\
401.67 - $(routines) $(aux) $(sysdep_routines)) \
401.68 - $(elide-bp-thunks)
401.69 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
401.70 -@@ -968,7 +968,7 @@
401.71 - install: $(inst_libdir)/libc.so
401.72 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
401.73 - $(common-objpfx)libc.so$(libc.so-version) \
401.74 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
401.75 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
401.76 - $(libprefix)$(libc-name)) \
401.77 - $(+force)
401.78 - (echo '/* GNU ld script';\
401.79 -@@ -976,7 +976,7 @@
401.80 - echo ' the static library, so try that secondarily. */';\
401.81 - cat $<; \
401.82 - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
401.83 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
401.84 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
401.85 - ')' \
401.86 - ) > $@.new
401.87 - mv -f $@.new $@
401.88 -diff -aur glibc-2.3.5/extra-lib.mk glibc-2.3.5-cygwin/extra-lib.mk
401.89 ---- glibc-2.3.5/extra-lib.mk 2004-12-02 23:54:47.000000000 +0100
401.90 -+++ glibc-2.3.5-cygwin/extra-lib.mk 2005-05-11 08:27:28.156250000 +0200
401.91 -@@ -13,7 +13,7 @@
401.92 -
401.93 - ifneq (,$($(lib)-static-only-routines))
401.94 - ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version)))
401.95 --object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS)
401.96 -+object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oST)
401.97 - endif
401.98 - endif
401.99 -
401.100 -@@ -29,7 +29,7 @@
401.101 -
401.102 - # Add each flavor of library to the lists of things to build and install.
401.103 - install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o)))
401.104 --extra-objs += $(foreach o,$(filter-out .os .oS,$(object-suffixes-$(lib))),\
401.105 -+extra-objs += $(foreach o,$(filter-out .os .oST,$(object-suffixes-$(lib))),\
401.106 - $(patsubst %,%$o,$(filter-out \
401.107 - $($(lib)-shared-only-routines),\
401.108 - $(all-$(lib)-routines))))
401.109 -@@ -57,7 +57,7 @@
401.110 -
401.111 -
401.112 - # Use o-iterator.mk to generate a rule for each flavor of library.
401.113 --ifneq (,$(filter-out .os .oS,$(object-suffixes-$(lib))))
401.114 -+ifneq (,$(filter-out .os .oST,$(object-suffixes-$(lib))))
401.115 - define o-iterator-doit
401.116 - $(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \
401.117 - $(patsubst %,$(objpfx)%$o,\
401.118 -@@ -65,7 +65,7 @@
401.119 - $(all-$(lib)-routines))); \
401.120 - $$(build-extra-lib)
401.121 - endef
401.122 --object-suffixes-left = $(filter-out .os .oS,$(object-suffixes-$(lib)))
401.123 -+object-suffixes-left = $(filter-out .os .oST,$(object-suffixes-$(lib)))
401.124 - include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left))
401.125 - endif
401.126 -
401.127 -@@ -77,9 +77,9 @@
401.128 - $(build-extra-lib)
401.129 - endif
401.130 -
401.131 --ifneq (,$(filter .oS,$(object-suffixes-$(lib))))
401.132 --$(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \
401.133 -- $(patsubst %,$(objpfx)%.oS,\
401.134 -+ifneq (,$(filter .oST,$(object-suffixes-$(lib))))
401.135 -+$(objpfx)$(patsubst %,$(libtype.oST),$(lib:lib%=%)): \
401.136 -+ $(patsubst %,$(objpfx)%.oST,\
401.137 - $(filter $($(lib)-static-only-routines),\
401.138 - $(all-$(lib)-routines)))
401.139 - $(build-extra-lib)
401.140 -diff -aur glibc-2.3.5/nptl/Makefile glibc-2.3.5-cygwin/nptl/Makefile
401.141 ---- glibc-2.3.5/nptl/Makefile 2005-02-16 09:45:56.000000000 +0100
401.142 -+++ glibc-2.3.5-cygwin/nptl/Makefile 2005-05-11 08:26:01.812500000 +0200
401.143 -@@ -360,7 +360,7 @@
401.144 -
401.145 - $(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \
401.146 - $(objpfx)libpthread.so$(libpthread.so-version) \
401.147 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
401.148 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
401.149 - $(libprefix)pthread) \
401.150 - $(+force)
401.151 - (echo '/* GNU ld script';\
401.152 -@@ -368,7 +368,7 @@
401.153 - echo ' the static library, so try that secondarily. */';\
401.154 - cat $<; \
401.155 - echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \
401.156 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\
401.157 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)pthread)'\
401.158 - ')' \
401.159 - ) > $@.new
401.160 - mv -f $@.new $@
401.161 -diff -aur glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
401.162 ---- glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile 2004-08-16 08:46:14.000000000 +0200
401.163 -+++ glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile 2005-05-11 08:26:25.937500000 +0200
401.164 -@@ -10,4 +10,4 @@
401.165 - ASFLAGS-.op += -Wa,-Av9a
401.166 - ASFLAGS-.og += -Wa,-Av9a
401.167 - ASFLAGS-.ob += -Wa,-Av9a
401.168 --ASFLAGS-.oS += -Wa,-Av9a
401.169 -+ASFLAGS-.oST += -Wa,-Av9a
402.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-memcmp.patch Tue Aug 14 19:32:22 2007 +0000
402.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
402.3 @@ -1,46 +0,0 @@
402.4 -Fixes
402.5 - ../sysdeps/i386/i686/memcmp.S: Assembler messages:
402.6 - ../sysdeps/i386/i686/memcmp.S:390: Error: can't resolve `.rodata' {.rodata section} - `memcmp' {.text section}
402.7 -when building on macosx.
402.8 -
402.9 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/i686/memcmp.S?cvsroot=glibc
402.10 -Revision 1.4, Thu Apr 28 18:19:25 2005 UTC by drepper
402.11 -Branch: MAIN
402.12 -CVS Tags: fedora-glibc-20050503T0852
402.13 -Changes since 1.3: +2 -2 lines
402.14 -Diff to previous 1.3 (colored)
402.15 -
402.16 -Move misplaced END.
402.17 -
402.18 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/i686/memcmp.S.diff?r1=1.3&r2=1.4&cvsroot=glibc
402.19 -
402.20 -===================================================================
402.21 -RCS file: /cvs/glibc/libc/sysdeps/i386/i686/memcmp.S,v
402.22 -retrieving revision 1.3
402.23 -retrieving revision 1.4
402.24 -diff -u -r1.3 -r1.4
402.25 ---- libc/sysdeps/i386/i686/memcmp.S 2004/04/01 23:28:37 1.3
402.26 -+++ libc/sysdeps/i386/i686/memcmp.S 2005/04/28 18:19:25 1.4
402.27 -@@ -1,5 +1,5 @@
402.28 - /* Compare two memory blocks for differences in the first COUNT bytes.
402.29 -- Copyright (C) 2004 Free Software Foundation, Inc.
402.30 -+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
402.31 - This file is part of the GNU C Library.
402.32 -
402.33 - The GNU C Library is free software; you can redistribute it and/or
402.34 -@@ -350,6 +350,7 @@
402.35 - sbbl $-1, %eax
402.36 - popl %esi
402.37 - RETURN
402.38 -+END (BP_SYM (memcmp))
402.39 -
402.40 - .section .rodata
402.41 - ALIGN (2)
402.42 -@@ -387,7 +388,6 @@
402.43 - .long L(30bytes) - . + 0x78
402.44 - .long L(31bytes) - . + 0x7c
402.45 -
402.46 --END (BP_SYM (memcmp))
402.47 -
402.48 - #undef bcmp
402.49 - weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
403.1 --- a/patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-string.patch Tue Aug 14 19:32:22 2007 +0000
403.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
403.3 @@ -1,83 +0,0 @@
403.4 -
403.5 -Fixes? the following error when building with gcc-4.0.0:
403.6 -
403.7 -../string/strcoll.c:39: error: '__EI_strcoll' aliased to undefined symbol '__GI_strcoll'
403.8 -make[2]: *** [/home/dank/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcscoll.os] Error 1
403.9 -make[2]: Leaving directory `/home/dank/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/glibc-2.3.4/wcsmbs'
403.10 -
403.11 -
403.12 -Thu Mar 17 21:06:24 2005 UTC (3 weeks, 5 days ago) by roland
403.13 -Branch: MAIN
403.14 -CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
403.15 -
403.16 -2005-03-16 Richard Henderson <rth@redhat.com>
403.17 -
403.18 - * include/wchar.h (__wcscoll): Remove.
403.19 - * wcsmbs/wcscoll.c: Define wcscoll directly instead of via __wcscoll.
403.20 - * string/strcoll.c: Don't issue libc_hidden_def STRCOLL redefined.
403.21 -
403.22 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/string/strcoll.c.diff?r1=1.33&r2=1.34&cvsroot=glibc
403.23 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/wchar.h.diff?r1=1.26&r2=1.27&cvsroot=glibc
403.24 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/wcsmbs/wcscoll.c.diff?r1=1.13&r2=1.14&cvsroot=glibc
403.25 -
403.26 -===================================================================
403.27 -RCS file: /cvs/glibc/libc/string/strcoll.c,v
403.28 -retrieving revision 1.33
403.29 -retrieving revision 1.34
403.30 -diff -u -r1.33 -r1.34
403.31 ---- libc/string/strcoll.c 2004/03/14 20:51:30 1.33
403.32 -+++ libc/string/strcoll.c 2005/03/17 21:06:24 1.34
403.33 -@@ -23,6 +23,7 @@
403.34 - # define STRING_TYPE char
403.35 - # define STRCOLL strcoll
403.36 - # define STRCOLL_L __strcoll_l
403.37 -+# define USE_HIDDEN_DEF
403.38 - #endif
403.39 -
403.40 - #include "../locale/localeinfo.h"
403.41 -@@ -35,6 +36,7 @@
403.42 - {
403.43 - return STRCOLL_L (s1, s2, _NL_CURRENT_LOCALE);
403.44 - }
403.45 --#if !defined WIDE_CHAR_VERSION
403.46 --libc_hidden_def (strcoll)
403.47 -+
403.48 -+#ifdef USE_HIDDEN_DEF
403.49 -+libc_hidden_def (STRCOLL)
403.50 - #endif
403.51 -===================================================================
403.52 -RCS file: /cvs/glibc/libc/include/wchar.h,v
403.53 -retrieving revision 1.26
403.54 -retrieving revision 1.27
403.55 -diff -u -r1.26 -r1.27
403.56 ---- libc/include/wchar.h 2004/03/14 20:45:10 1.26
403.57 -+++ libc/include/wchar.h 2005/03/17 21:06:24 1.27
403.58 -@@ -56,7 +56,6 @@
403.59 - extern int __wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
403.60 - size_t __n)
403.61 - __attribute_pure__;
403.62 --extern int __wcscoll (__const wchar_t *__s1, __const wchar_t *__s2);
403.63 - extern size_t __wcslen (__const wchar_t *__s) __attribute_pure__;
403.64 - extern size_t __wcsnlen (__const wchar_t *__s, size_t __maxlen)
403.65 - __attribute_pure__;
403.66 -===================================================================
403.67 -RCS file: /cvs/glibc/libc/wcsmbs/wcscoll.c,v
403.68 -retrieving revision 1.13
403.69 -retrieving revision 1.14
403.70 -diff -u -r1.13 -r1.14
403.71 ---- libc/wcsmbs/wcscoll.c 2004/03/14 21:05:48 1.13
403.72 -+++ libc/wcsmbs/wcscoll.c 2005/03/17 21:06:24 1.14
403.73 -@@ -22,12 +22,11 @@
403.74 -
403.75 - #define STRING_TYPE wchar_t
403.76 - #define USTRING_TYPE wint_t
403.77 --#define STRCOLL __wcscoll
403.78 -+#define STRCOLL wcscoll
403.79 - #define STRCOLL_L __wcscoll_l
403.80 -
403.81 - #include "../string/strcoll.c"
403.82 -
403.83 - #ifndef USE_IN_EXTENDED_LOCALE_MODEL
403.84 --weak_alias (__wcscoll, wcscoll)
403.85 - libc_hidden_weak (wcscoll)
403.86 - #endif
404.1 --- a/patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-symbols.patch Tue Aug 14 19:32:22 2007 +0000
404.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
404.3 @@ -1,126 +0,0 @@
404.4 -If I'm really lucky, this fixes the following error building with gcc-4.0.0:
404.5 -
404.6 -../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to undefined symbol '__isinf'
404.7 -make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/math/s_isinf.os] Error 1
404.8 -make[1]: *** [math/subdir_lib] Error 2
404.9 -make: *** [lib] Error 2
404.10 -
404.11 ----
404.12 -
404.13 -
404.14 -Revision 1.71, Thu Mar 17 21:06:27 2005 UTC (3 weeks, 5 days ago) by roland
404.15 -Branch: MAIN
404.16 -CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
404.17 -Changes since 1.70: +11 -66 lines
404.18 -Diff to previous 1.70 (colored)
404.19 -
404.20 -2005-03-16 Richard Henderson <rth@redhat.com>
404.21 -
404.22 - * include/libc-symbols.h (__hidden_proto): Remove bogus declaration
404.23 - of internal.
404.24 - (__hidden_def1, __hidden_dot_def1): Remove.
404.25 - (__hidden_def2, __hidden_def3): Remove.
404.26 - (__hidden_ver1): New.
404.27 - (hidden_ver, hidden_def, hidden_weak): Use it.
404.28 - (hidden_data_ver, hidden_data_ver, hidden_data_weak): Use non-data
404.29 - version of the macro.
404.30 -
404.31 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.70&r2=1.71&cvsroot=glibc
404.32 -
404.33 -===================================================================
404.34 -RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
404.35 -retrieving revision 1.70
404.36 -retrieving revision 1.71
404.37 -diff -u -r1.70 -r1.71
404.38 ---- libc/include/libc-symbols.h 2005/02/11 00:29:46 1.70
404.39 -+++ libc/include/libc-symbols.h 2005/03/17 21:06:27 1.71
404.40 -@@ -583,78 +583,23 @@
404.41 - # define hidden_proto(name, attrs...) \
404.42 - __hidden_proto (name, __GI_##name, ##attrs)
404.43 - # define __hidden_proto(name, internal, attrs...) \
404.44 -- extern __typeof (name) internal; \
404.45 - extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
404.46 - __hidden_proto_hiddenattr (attrs);
404.47 - # define __hidden_asmname(name) \
404.48 - __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
404.49 - # define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
404.50 - # define __hidden_asmname2(prefix, name) #prefix name
404.51 --# ifdef HAVE_ASM_SET_DIRECTIVE
404.52 --# define __hidden_def1(original, alias) \
404.53 -- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
404.54 -- .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
404.55 --# ifdef HAVE_ASM_GLOBAL_DOT_NAME
404.56 --# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \
404.57 -- ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
404.58 -- .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
404.59 --# else
404.60 --# define __hidden_dot_def1(original, alias)
404.61 --# endif
404.62 --# else
404.63 --# define __hidden_def1(original, alias) \
404.64 -- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
404.65 -- C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
404.66 --# ifdef HAVE_ASM_GLOBAL_DOT_NAME
404.67 --# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \
404.68 -- ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
404.69 -- C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
404.70 --# else
404.71 --# define __hidden_dot_def1(original, alias)
404.72 --# endif
404.73 --# endif
404.74 --# define __hidden_def2(...) #__VA_ARGS__
404.75 --# define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
404.76 --# define hidden_def(name) \
404.77 -- __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
404.78 -- __hidden_dot_def1 (__GI_##name, name)));
404.79 --# define hidden_data_def(name) \
404.80 -- __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
404.81 --# define hidden_ver(local, name) \
404.82 -- __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
404.83 -- __hidden_dot_def1 (local, __GI_##name)));
404.84 --# define hidden_data_ver(local, name) \
404.85 -- __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
404.86 --# ifdef HAVE_WEAK_SYMBOLS
404.87 --# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
404.88 --# define __hidden_weak1(original, alias) \
404.89 -- .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
404.90 --# ifdef HAVE_ASM_GLOBAL_DOT_NAME
404.91 --# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \
404.92 -- .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
404.93 --# else
404.94 --# define __hidden_dot_weak1(original, alias)
404.95 --# endif
404.96 --# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
404.97 --# define __hidden_weak1(original, alias) \
404.98 -- .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
404.99 -- C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
404.100 --# ifdef HAVE_ASM_GLOBAL_DOT_NAME
404.101 --# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \
404.102 -- .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
404.103 -- C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
404.104 --# else
404.105 --# define __hidden_dot_weak1(original, alias)
404.106 --# endif
404.107 --# endif
404.108 --# define hidden_weak(name) \
404.109 -- __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
404.110 -- __hidden_dot_weak1 (__GI_##name, name)));
404.111 --# define hidden_data_weak(name) \
404.112 -- __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
404.113 --# else
404.114 --# define hidden_weak(name) hidden_def (name)
404.115 --# endif
404.116 -+# define __hidden_ver1(local, internal, name) \
404.117 -+ extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
404.118 -+ extern __typeof (name) __EI_##name \
404.119 -+ __attribute__((alias (__hidden_asmname (#local))))
404.120 -+# define hidden_ver(local, name) __hidden_ver1(local, __GI_##name, name);
404.121 -+# define hidden_data_ver(local, name) hidden_ver(local, name)
404.122 -+# define hidden_def(name) __hidden_ver1(__GI_##name, name, name);
404.123 -+# define hidden_data_def(name) hidden_def(name)
404.124 -+# define hidden_weak(name) \
404.125 -+ __hidden_ver1(__GI_##name, name, name) __attribute__((weak));
404.126 -+# define hidden_data_weak(name) hidden_weak(name)
404.127 - # else
404.128 - /* For assembly, we need to do the opposite of what we do in C:
404.129 - in assembly gcc __REDIRECT stuff is not in place, so functions
405.1 --- a/patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-wcstol_l.patch Tue Aug 14 19:32:22 2007 +0000
405.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
405.3 @@ -1,57 +0,0 @@
405.4 -Fixes
405.5 -../sysdeps/wordsize-64/wcstol_l.c:11: error: '____wcstoll_l_internal' aliased to undefined symbol '____wcstol_l_internal'
405.6 -../sysdeps/wordsize-64/wcstol_l.c:12: error: '__wcstoll_l' aliased to undefined symbol '__wcstol_l'
405.7 -../sysdeps/wordsize-64/wcstol_l.c:13: error: 'wcstoll_l' aliased to undefined symbol '__wcstol_l'
405.8 -make[2]: *** [/home/dkegel/queue/jobdir.produser_cpsm10/crosstool-0.32/build/x86_64-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcstoul_l.o] Error 1
405.9 -
405.10 -https://www.redhat.com/archives/fedora-cvs-commits/2005-March/msg00408.html
405.11 -%changelog
405.12 -+* Fri Mar 25 2005 Jakub Jelinek <jakub redhat com> 2.3.4-18
405.13 -+- fix build on 64-bit arches with new GCC
405.14 -
405.15 -Revision 1.4.2.1, Fri Mar 25 11:59:01 2005 UTC (3 weeks, 4 days ago) by jakub
405.16 -Branch: fedora-branch
405.17 -CVS Tags: fedora-glibc-2_3_4-18
405.18 -Changes since 1.4: +2 -0 lines
405.19 -Diff to previous 1.4 (colored)
405.20 -
405.21 - * sysdeps/wordsize-64/strtol_l.c: Don't add aliases if UNSIGNED.
405.22 - * sysdeps/wordsize-64/wcstol_l.c: Likewise.
405.23 -
405.24 -
405.25 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/strtol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc
405.26 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/wcstol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc
405.27 -
405.28 -===================================================================
405.29 -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/strtol_l.c,v
405.30 -retrieving revision 1.4
405.31 -retrieving revision 1.4.2.1
405.32 -diff -u -r1.4 -r1.4.2.1
405.33 ---- libc/sysdeps/wordsize-64/strtol_l.c 2003/03/03 09:45:12 1.4
405.34 -+++ libc/sysdeps/wordsize-64/strtol_l.c 2005/03/25 11:59:01 1.4.2.1
405.35 -@@ -8,7 +8,9 @@
405.36 - #undef ____strtoll_l_internal
405.37 - #undef __strtoll_l
405.38 - #undef strtoll_l
405.39 -+#if !UNSIGNED
405.40 - strong_alias (____strtol_l_internal, ____strtoll_l_internal)
405.41 - libc_hidden_ver (____strtol_l_internal, ____strtoll_l_internal)
405.42 - weak_alias (__strtol_l, __strtoll_l)
405.43 - weak_alias (__strtol_l, strtoll_l)
405.44 -+#endif
405.45 -===================================================================
405.46 -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/wcstol_l.c,v
405.47 -retrieving revision 1.4
405.48 -retrieving revision 1.4.2.1
405.49 -diff -u -r1.4 -r1.4.2.1
405.50 ---- libc/sysdeps/wordsize-64/wcstol_l.c 2002/08/08 11:44:51 1.4
405.51 -+++ libc/sysdeps/wordsize-64/wcstol_l.c 2005/03/25 11:59:01 1.4.2.1
405.52 -@@ -8,6 +8,8 @@
405.53 - #undef ____wcstoll_l_internal
405.54 - #undef __wcstoll_l
405.55 - #undef wcstoll_l
405.56 -+#if !UNSIGNED
405.57 - strong_alias (____wcstol_l_internal, ____wcstoll_l_internal)
405.58 - weak_alias (__wcstol_l, __wcstoll_l)
405.59 - weak_alias (__wcstol_l, wcstoll_l)
405.60 -+#endif
406.1 --- a/patches/glibc/2.3.4/glibc-configure-apple-as.patch Tue Aug 14 19:32:22 2007 +0000
406.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
406.3 @@ -1,23 +0,0 @@
406.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
406.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
406.6 -
406.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
406.8 -where the assembler but doesn't understand the --version flag.
406.9 -
406.10 -Fixes the symptom
406.11 -checking whether ld is GNU ld... no
406.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
406.13 -checking version of /usr/libexec/gcc/darwin/ppc/as...
406.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
406.15 -
406.16 ---- glibc-2.3.2/configure~ Wed Feb 26 09:20:48 2003
406.17 -+++ glibc-2.3.2/configure Fri Feb 27 13:12:53 2004
406.18 -@@ -3789,7 +3789,7 @@
406.19 - # Found it, now check the version.
406.20 - echo "$as_me:$LINENO: checking version of $AS" >&5
406.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
406.22 -- ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
406.23 -+ ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
406.24 - case $ac_prog_version in
406.25 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
406.26 - 2.1[3-9]*)
407.1 --- a/patches/glibc/2.3.4/glibc-fp-byteorder.patch Tue Aug 14 19:32:22 2007 +0000
407.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
407.3 @@ -1,203 +0,0 @@
407.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
407.5 -Author: addsub@eyou.com
407.6 -Target: ARM
407.7 -
407.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
407.9 -and makes printf("%f", 1.0) work.
407.10 -
407.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
407.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
407.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
407.14 - It's definitely needed for hardfloat. So I'd think it's needed for
407.15 - big-endian systems in any case, and for VFP on little-endian systems
407.16 - too. Someone would have to verify that though.
407.17 -
407.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
407.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
407.20 - for this version. glibc-20040830 out-of-the-box still contains the
407.21 - following wrong assumptions:
407.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
407.23 - not on vfp systems)
407.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
407.25 - are not on big endian systems, neither on vfp systems)
407.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
407.27 - (which they are not on big endian systems)
407.28 - [This patch] seems the right solution for all of these issues.
407.29 -
407.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
407.31 - It's even needed for glibc CVS, AFAICS.
407.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
407.33 - (currently at version 1.4) is only needed for proper VFP operation.
407.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
407.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
407.36 - for proper operation of *any* FP model on big endian ARM.
407.37 -
407.38 -See also discussion in followups to
407.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
407.40 -
407.41 -Message-ID: <276985760.37584@eyou.com>
407.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
407.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
407.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
407.45 -Date: 17 Feb 2004 10:42:38 +0800
407.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
407.47 -From: "add" <addsub@eyou.com>
407.48 -To: dank@kegel.com
407.49 -Reply-To: "add" <addsub@eyou.com>
407.50 -Subject: Re: problem while building arm vfp softfloat gcc `
407.51 -
407.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
407.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
407.54 -
407.55 -
407.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
407.57 ---- glibc.old/sysdeps/arm/bits/endian.h 1999-04-12 11:59:13.000000000 -0400
407.58 -+++ glibc.new/sysdeps/arm/bits/endian.h 2004-02-12 09:15:13.000000000 -0500
407.59 -@@ -9,4 +9,9 @@
407.60 - #else
407.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
407.62 - #endif
407.63 -+
407.64 -+#ifdef __VFP_FP__
407.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
407.66 -+#else
407.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
407.68 -+#endif
407.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
407.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h 2001-07-07 15:21:19.000000000 -0400
407.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h 2004-02-12 09:15:13.000000000 -0500
407.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
407.73 - #define BITS_PER_SHORTINT 16
407.74 - #define BITS_PER_CHAR 8
407.75 -
407.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
407.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
407.78 -+#if defined(__ARMEB__)
407.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
407.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
407.81 -+#elif defined(__VFP_FP__)
407.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
407.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
407.84 -+#else
407.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
407.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
407.87 -+#endif
407.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
407.89 ---- glibc.old/sysdeps/arm/ieee754.h 2001-07-07 15:21:19.000000000 -0400
407.90 -+++ glibc.new/sysdeps/arm/ieee754.h 1969-12-31 19:00:00.000000000 -0500
407.91 -@@ -1,115 +0,0 @@
407.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
407.93 -- This file is part of the GNU C Library.
407.94 --
407.95 -- The GNU C Library is free software; you can redistribute it and/or
407.96 -- modify it under the terms of the GNU Lesser General Public
407.97 -- License as published by the Free Software Foundation; either
407.98 -- version 2.1 of the License, or (at your option) any later version.
407.99 --
407.100 -- The GNU C Library is distributed in the hope that it will be useful,
407.101 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
407.102 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
407.103 -- Lesser General Public License for more details.
407.104 --
407.105 -- You should have received a copy of the GNU Lesser General Public
407.106 -- License along with the GNU C Library; if not, write to the Free
407.107 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
407.108 -- 02111-1307 USA. */
407.109 --
407.110 --#ifndef _IEEE754_H
407.111 --
407.112 --#define _IEEE754_H 1
407.113 --#include <features.h>
407.114 --
407.115 --#include <endian.h>
407.116 --
407.117 --__BEGIN_DECLS
407.118 --
407.119 --union ieee754_float
407.120 -- {
407.121 -- float f;
407.122 --
407.123 -- /* This is the IEEE 754 single-precision format. */
407.124 -- struct
407.125 -- {
407.126 -- unsigned int mantissa:23;
407.127 -- unsigned int exponent:8;
407.128 -- unsigned int negative:1;
407.129 -- } ieee;
407.130 --
407.131 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
407.132 -- struct
407.133 -- {
407.134 -- unsigned int mantissa:22;
407.135 -- unsigned int quiet_nan:1;
407.136 -- unsigned int exponent:8;
407.137 -- unsigned int negative:1;
407.138 -- } ieee_nan;
407.139 -- };
407.140 --
407.141 --#define IEEE754_FLOAT_BIAS 0x7f /* Added to exponent. */
407.142 --
407.143 --
407.144 --union ieee754_double
407.145 -- {
407.146 -- double d;
407.147 --
407.148 -- /* This is the IEEE 754 double-precision format. */
407.149 -- struct
407.150 -- {
407.151 -- unsigned int mantissa0:20;
407.152 -- unsigned int exponent:11;
407.153 -- unsigned int negative:1;
407.154 -- unsigned int mantissa1:32;
407.155 -- } ieee;
407.156 --
407.157 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
407.158 -- struct
407.159 -- {
407.160 -- unsigned int mantissa0:19;
407.161 -- unsigned int quiet_nan:1;
407.162 -- unsigned int exponent:11;
407.163 -- unsigned int negative:1;
407.164 -- unsigned int mantissa1:32;
407.165 -- } ieee_nan;
407.166 -- };
407.167 --
407.168 --#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */
407.169 --
407.170 --
407.171 --/* The following two structures are correct for `new' floating point systems but
407.172 -- wrong for the old FPPC. The only solution seems to be to avoid their use on
407.173 -- old hardware. */
407.174 --
407.175 --union ieee854_long_double
407.176 -- {
407.177 -- long double d;
407.178 --
407.179 -- /* This is the IEEE 854 double-extended-precision format. */
407.180 -- struct
407.181 -- {
407.182 -- unsigned int exponent:15;
407.183 -- unsigned int empty:16;
407.184 -- unsigned int negative:1;
407.185 -- unsigned int mantissa1:32;
407.186 -- unsigned int mantissa0:32;
407.187 -- } ieee;
407.188 --
407.189 -- /* This is for NaNs in the IEEE 854 double-extended-precision format. */
407.190 -- struct
407.191 -- {
407.192 -- unsigned int exponent:15;
407.193 -- unsigned int empty:16;
407.194 -- unsigned int negative:1;
407.195 -- unsigned int mantissa1:32;
407.196 -- unsigned int mantissa0:30;
407.197 -- unsigned int quiet_nan:1;
407.198 -- unsigned int one:1;
407.199 -- } ieee_nan;
407.200 -- };
407.201 --
407.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
407.203 --
407.204 --__END_DECLS
407.205 --
407.206 --#endif /* ieee754.h */
408.1 --- a/patches/glibc/2.3.4/make-install-lib-all.patch Tue Aug 14 19:32:22 2007 +0000
408.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
408.3 @@ -1,24 +0,0 @@
408.4 -From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch
408.5 -Rule to install all needed libraries, not just the ones installed by install-lib,
408.6 -yet not install programs.
408.7 -Needed because we can't use the main install target, as we can't build programs before
408.8 -we have the final gcc installed; linking fails because libeh.a is not present,
408.9 -and glibc insists on linking programs with that library.
408.10 -
408.11 -diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules
408.12 ---- glibc-2.3.4.orig/Makerules 2004-12-15 20:52:39.000000000 +0200
408.13 -+++ glibc-2.3.4/Makerules 2005-02-19 15:16:31.415125176 +0200
408.14 -@@ -844,6 +844,13 @@
408.15 - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
408.16 - $(inst_libdir)/$(patsubst %,$(libtype$o),\
408.17 - $(libprefix)$(libc-name)))
408.18 -+
408.19 -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \
408.20 -+ $(inst_slibdir)/libc-$(version).so \
408.21 -+ $(inst_libdir)/libc.so \
408.22 -+ $(inst_libdir)/libc.a \
408.23 -+ install-lib
408.24 -+
408.25 - install: $(installed-libcs)
408.26 - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
408.27 - $(make-target-directory)
409.1 --- a/patches/glibc/2.3.4/pr758.patch Tue Aug 14 19:32:22 2007 +0000
409.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
409.3 @@ -1,256 +0,0 @@
409.4 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=758
409.5 -
409.6 -Submitted By: Jim Gifford (patches at jg555 dot com)
409.7 -Date: 2005-02-23
409.8 -Initial Package Version: 2.3.4
409.9 -Origin: Richard Sandiford
409.10 -Upstream Status: Unknown
409.11 -Description: Fixes Syscall.h generation
409.12 -
409.13 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/Makefile glibc-2.3.4/sysdeps/unix/sysv/linux/mips/Makefile
409.14 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/Makefile 2004-11-24 04:38:15 +0000
409.15 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/Makefile 2005-02-23 18:21:54 +0000
409.16 -@@ -9,11 +9,73 @@
409.17 -
409.18 - no_syscall_list_h = 1
409.19 -
409.20 --# Generate the list of SYS_* macros for the system calls (__NR_* macros).
409.21 --# We generate not only SYS_<syscall>, pointing at SYS_<abi>_<syscall> if
409.22 --# it exists, but also define SYS_<abi>_<syscall> for all ABIs.
409.23 -+# A callable macro that expands to a shell command. Preprocess file $(1)
409.24 -+# using ABI option $(2) and see which macros it defines. Print FOO for each
409.25 -+# macro of the form __NR$(3)_FOO, filtering out ABI-specific __NR macros
409.26 -+# that have a prefix other than $(3).
409.27 -+mips_list_syscalls = $(filter-out -m%,$(CC)) -E -x c $(+includes) \
409.28 -+ $(sysincludes) -D_LIBC -dM -mabi=$(2) $(1) | \
409.29 -+ sed -n 's@^\#define __NR$(3)_\([^ ]*\) .*@\1@p' | \
409.30 -+ sed -e '/^[ON]32_/d' -e '/^N64_/d' -e '/^64_/d' | \
409.31 -+ LC_ALL=C sort
409.32 -+
409.33 -+# Generate a list of SYS_* macros from the linux __NR macros.
409.34 -+#
409.35 -+# Before version 2.6, linux had separate 32-bit and 64-bit MIPS ports,
409.36 -+# each with its own set of headers. The ports were merged for 2.6 and
409.37 -+# this merged port defines the syscalls in a slightly different way.
409.38 -+# There are therefore three sets of headers that we need to consider:
409.39 -+#
409.40 -+# (1) Headers from the separate 32-bit MIPS port. They just define
409.41 -+# a single list of __NR macros.
409.42 -+#
409.43 -+# (2) Headers from the separate 64-bit MIPS port. They unconditionally
409.44 -+# define syscalls for all three ABIs, with o32 syscalls prefixed
409.45 -+# by __NR_O32, n32 syscalls prefixed by __NR_N32 and n64 syscalls
409.46 -+# prefixed by plain __NR.
409.47 -+#
409.48 -+# (3) Headers from the combined port. They use the _MIPS_SIM macro to
409.49 -+# define the right set of syscalls for the current ABI. The syscalls
409.50 -+# themselves have no special ABI prefix, but the headers also define:
409.51 -+#
409.52 -+# __NR_O32_Linux{,_syscalls}
409.53 -+# __NR_N32_Linux{,_syscalls}
409.54 -+# __NR_64_Linux{,_syscalls}
409.55 -+#
409.56 -+# In case (1) we just want a simple list of SYS_* macros. In cases (2)
409.57 -+# and (3) we want a file that will work for all three ABIs, regardless
409.58 -+# of which ABI we are currently using. We also want the file to work
409.59 -+# if the user later moves from (2) to (3). Thus the file we create
409.60 -+# for (2) and (3) has the form:
409.61 -+#
409.62 -+# #if _MIPS_SIM == _MIPS_SIM_NABI32
409.63 -+# # ifdef __NR_N32_open
409.64 -+# # define SYS_n32syscall1 __NR_N32_n32syscall1
409.65 -+# # ...
409.66 -+# # else
409.67 -+# # define SYS_n32syscall1 __NR_n32syscall1
409.68 -+# # ...
409.69 -+# # endif
409.70 -+# #elif _MIPS_SIM == _MIPS_SIM_ABI64
409.71 -+# # define SYS_n64syscall1 __NR_n64syscall1
409.72 -+# # ...
409.73 -+# #else
409.74 -+# # ifdef __NR_O32_open
409.75 -+# # define SYS_o32syscall1 __NR_O32_o32syscall1
409.76 -+# # ...
409.77 -+# # else
409.78 -+# # define SYS_o32syscall1 __NR_o32syscall1
409.79 -+# # ...
409.80 -+# # endif
409.81 -+# #endif
409.82 -+#
409.83 -+# Here, __NR_N32_open and __NR_O32_open are used to detect case (2)
409.84 -+# over case (3). The n64 SYS_* macros can always use the normal
409.85 -+# ABI-less names.
409.86 - $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/syscall.h
409.87 - $(make-target-directory)
409.88 -+ $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC $< -MD -MP \
409.89 -+ -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' > /dev/null
409.90 - { \
409.91 - echo '/* Generated at libc build time from kernel syscall list. */';\
409.92 - echo ''; \
409.93 -@@ -22,28 +84,38 @@
409.94 - echo '#endif'; \
409.95 - echo ''; \
409.96 - echo '#include <sgidefs.h>'; \
409.97 -- rm -f $(@:.d=.h).newt; \
409.98 -- $(CC) -E -MD -MP -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' \
409.99 -- -x c $(+includes) $(sysincludes) $< -D_LIBC -dM | \
409.100 -- sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' \
409.101 -- > $(@:.d=.h).newt; \
409.102 -- if grep SYS_O32_ $(@:.d=.h).newt > /dev/null; then \
409.103 -+ rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
409.104 -+ $(call mips_list_syscalls,$<,n32,_N32) > $(@:.d=.h).newn32; \
409.105 -+ if test -s $(@:.d=.h).newn32; then \
409.106 -+ if grep open $(@:.d=.h).newn32 > /dev/null; then \
409.107 -+ $(call mips_list_syscalls,$<,32,_O32) > $(@:.d=.h).new32; \
409.108 -+ $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
409.109 -+ else \
409.110 -+ $(call mips_list_syscalls,$<,32,) > $(@:.d=.h).new32; \
409.111 -+ $(call mips_list_syscalls,$<,n32,) > $(@:.d=.h).newn32; \
409.112 -+ $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
409.113 -+ fi; \
409.114 - echo '#if _MIPS_SIM == _ABIN32'; \
409.115 -- sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \
409.116 -- LC_ALL=C sort; \
409.117 -+ echo '# ifdef __NR_N32_open'; \
409.118 -+ sed 's@\(.*\)@# define SYS_\1 __NR_N32_\1@' < $(@:.d=.h).newn32; \
409.119 -+ echo '# else'; \
409.120 -+ sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).newn32; \
409.121 -+ echo '# endif'; \
409.122 - echo '#elif _MIPS_SIM == _ABI64'; \
409.123 -- sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \
409.124 -- LC_ALL=C sort; \
409.125 -+ sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).new64; \
409.126 - echo '#else'; \
409.127 -- sed -n 's/^\(#define SYS_\)O32_/\1/p' < $(@:.d=.h).newt | \
409.128 -- LC_ALL=C sort; \
409.129 -+ echo '# ifdef __NR_O32_open'; \
409.130 -+ sed 's@\(.*\)@# define SYS_\1 __NR_O32_\1@' < $(@:.d=.h).new32; \
409.131 -+ echo '# else'; \
409.132 -+ sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).new32; \
409.133 -+ echo '# endif'; \
409.134 - echo '#endif'; \
409.135 -- sed -n '/^#define SYS_\([ON]32\|N64\)_/p' < $(@:.d=.h).newt | \
409.136 -- LC_ALL=C sort +1.8; \
409.137 - else \
409.138 -- cat $(@:.d=.h).newt; \
409.139 -+ $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC -dM $< | \
409.140 -+ sed -n 's@^\#define __NR_\([^ ]*\) .*@\#define SYS_\1 __NR_\1@p' | \
409.141 -+ LC_ALL=C sort; \
409.142 - fi; \
409.143 -- rm $(@:.d=.h).newt; \
409.144 -+ rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
409.145 - } > $(@:.d=.h).new
409.146 - mv -f $(@:.d=.h).new $(@:.d=.h)
409.147 - ifneq (,$(objpfx))
409.148 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure
409.149 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure 2004-11-24 04:42:45 +0000
409.150 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure 2005-02-23 18:10:11 +0000
409.151 -@@ -18,7 +18,7 @@
409.152 - { echo "$as_me:$LINENO: WARNING: *** asm/unistd.h not found, it will not be pre-processed" >&5
409.153 - echo "$as_me: WARNING: *** asm/unistd.h not found, it will not be pre-processed" >&2;}
409.154 - echo '#include <asm/unistd.h>' > asm-unistd.h
409.155 -- else
409.156 -+ elif grep __NR_N32_open "$asm_unistd_h" > /dev/null; then
409.157 - # The point of this preprocessing is to turn __NR_<syscall> into
409.158 - # __NR_N64_<syscall>, as well as to define __NR_<syscall> to
409.159 - # __NR_<abi>_<syscall>, if __NR_<abi>_<syscall> is defined
409.160 -@@ -68,6 +68,8 @@
409.161 - {
409.162 - print;
409.163 - }'
409.164 -+ else
409.165 -+ echo '#include <asm/unistd.h>' > asm-unistd.h
409.166 - fi ;;
409.167 - mips*)
409.168 - rm -f asm-unistd.h
409.169 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure.in glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure.in
409.170 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure.in 2004-11-24 04:38:31 +0000
409.171 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure.in 2005-02-23 18:10:11 +0000
409.172 -@@ -18,7 +18,7 @@
409.173 - if test ! -f "$asm_unistd_h"; then
409.174 - AC_MSG_WARN([*** asm/unistd.h not found, it will not be pre-processed])
409.175 - echo '#include <asm/unistd.h>' > asm-unistd.h
409.176 -- else
409.177 -+ elif grep __NR_N32_open "$asm_unistd_h" > /dev/null; then
409.178 - # The point of this preprocessing is to turn __NR_<syscall> into
409.179 - # __NR_N64_<syscall>, as well as to define __NR_<syscall> to
409.180 - # __NR_<abi>_<syscall>, if __NR_<abi>_<syscall> is defined
409.181 -@@ -68,6 +68,8 @@
409.182 - {
409.183 - print;
409.184 - }'
409.185 -+ else
409.186 -+ echo '#include <asm/unistd.h>' > asm-unistd.h
409.187 - fi ;;
409.188 - mips*)
409.189 - rm -f asm-unistd.h
409.190 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h
409.191 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h 2003-03-29 08:15:29 +0000
409.192 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h 2005-02-23 18:10:11 +0000
409.193 -@@ -1,36 +0,0 @@
409.194 --/* Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
409.195 -- This file is part of the GNU C Library.
409.196 --
409.197 -- The GNU C Library is free software; you can redistribute it and/or
409.198 -- modify it under the terms of the GNU Lesser General Public
409.199 -- License as published by the Free Software Foundation; either
409.200 -- version 2.1 of the License, or (at your option) any later version.
409.201 --
409.202 -- The GNU C Library is distributed in the hope that it will be useful,
409.203 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
409.204 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
409.205 -- Lesser General Public License for more details.
409.206 --
409.207 -- You should have received a copy of the GNU Lesser General Public
409.208 -- License along with the GNU C Library; if not, write to the Free
409.209 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
409.210 -- 02111-1307 USA. */
409.211 --
409.212 --#ifndef _LINUX_MIPS_MIPS32_KERN64_SYSDEP_H
409.213 --#define _LINUX_MIPS_MIPS32_KERN64_SYSDEP_H 1
409.214 --
409.215 --/* There is some commonality. */
409.216 --#include <sysdeps/unix/sysv/linux/mips/mips32/sysdep.h>
409.217 --
409.218 --/* For Linux we can use the system call table in the header file
409.219 -- /usr/include/asm/unistd.h
409.220 -- of the kernel. But these symbols do not follow the SYS_* syntax
409.221 -- so we have to redefine the `SYS_ify' macro here. */
409.222 --#undef SYS_ify
409.223 --#ifdef __STDC__
409.224 --# define SYS_ify(syscall_name) __NR_O32_##syscall_name
409.225 --#else
409.226 --# define SYS_ify(syscall_name) __NR_O32_/**/syscall_name
409.227 --#endif
409.228 --
409.229 --#endif /* linux/mips/mips32/kern64/sysdep.h */
409.230 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
409.231 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h 2004-10-18 05:16:07 +0000
409.232 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h 2005-02-23 18:10:11 +0000
409.233 -@@ -28,9 +28,9 @@
409.234 - so we have to redefine the `SYS_ify' macro here. */
409.235 - #undef SYS_ify
409.236 - #ifdef __STDC__
409.237 --# define SYS_ify(syscall_name) __NR_N32_##syscall_name
409.238 -+# define SYS_ify(syscall_name) __NR_##syscall_name
409.239 - #else
409.240 --# define SYS_ify(syscall_name) __NR_N32_/**/syscall_name
409.241 -+# define SYS_ify(syscall_name) __NR_/**/syscall_name
409.242 - #endif
409.243 -
409.244 - #ifdef __ASSEMBLER__
409.245 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
409.246 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h 2004-10-18 05:16:08 +0000
409.247 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h 2005-02-23 18:10:11 +0000
409.248 -@@ -28,9 +28,9 @@
409.249 - so we have to redefine the `SYS_ify' macro here. */
409.250 - #undef SYS_ify
409.251 - #ifdef __STDC__
409.252 --# define SYS_ify(syscall_name) __NR_N64_##syscall_name
409.253 -+# define SYS_ify(syscall_name) __NR_##syscall_name
409.254 - #else
409.255 --# define SYS_ify(syscall_name) __NR_N64_/**/syscall_name
409.256 -+# define SYS_ify(syscall_name) __NR_/**/syscall_name
409.257 - #endif
409.258 -
409.259 - #ifdef __ASSEMBLER__
410.1 --- a/patches/glibc/2.3.5/arm-ctl_bus_isa.patch Tue Aug 14 19:32:22 2007 +0000
410.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
410.3 @@ -1,51 +0,0 @@
410.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
410.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
410.6 -Fixes following error:
410.7 -
410.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
410.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
410.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
410.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
410.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
410.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
410.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
410.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
410.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
410.17 -
410.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
410.19 -
410.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
410.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
410.22 -@@ -47,6 +47,12 @@
410.23 - #include <asm/page.h>
410.24 - #include <sys/sysctl.h>
410.25 -
410.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
410.27 -+#include <linux/version.h>
410.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
410.29 -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
410.30 -+#endif
410.31 -+
410.32 - #define PATH_ARM_SYSTYPE "/etc/arm_systype"
410.33 - #define PATH_CPUINFO "/proc/cpuinfo"
410.34 -
410.35 -@@ -80,7 +86,7 @@
410.36 - * Initialize I/O system. There are several ways to get the information
410.37 - * we need. Each is tried in turn until one succeeds.
410.38 - *
410.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
410.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
410.41 - * but not all kernels support it.
410.42 - *
410.43 - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
410.44 -@@ -100,8 +106,8 @@
410.45 - {
410.46 - char systype[256];
410.47 - int i, n;
410.48 -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
410.49 -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
410.50 -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
410.51 -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
410.52 - size_t len = sizeof(io.base);
410.53 -
410.54 - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
411.1 --- a/patches/glibc/2.3.5/fix-pr398.patch Tue Aug 14 19:32:22 2007 +0000
411.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
411.3 @@ -1,70 +0,0 @@
411.4 -Fixes error
411.5 -
411.6 -dl-runtime.c:222: error: parse error before "CFI_STARTPROC"
411.7 -make[2]: *** [crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/elf/dl-runtim
411.8 -e.o] Error 1
411.9 -make[2]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040
411.10 -822/elf'
411.11 -make[1]: *** [elf/subdir_lib] Error 2
411.12 -make[1]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040
411.13 -822'
411.14 -make: *** [all] Error 2
411.15 -
411.16 ------------------
411.17 -
411.18 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=398
411.19 -http://sources.redhat.com/ml/libc-alpha/2004-07/msg00023.html
411.20 -
411.21 ------------------
411.22 -
411.23 -CVSROOT: /cvs/glibc
411.24 -Module name: libc
411.25 -Branch: glibc-2_3-branch
411.26 -Changes by: roland@sources.redhat.com 2006-02-23 22:36:51
411.27 -
411.28 -Modified files:
411.29 - sysdeps/s390/s390-64: dl-machine.h
411.30 - sysdeps/s390/s390-32: dl-machine.h
411.31 -
411.32 -Log message:
411.33 - 2004-07-10 GOTO Masanori <gotom@debian.or.jp>
411.34 -
411.35 - [BZ #398]
411.36 - * sysdeps/s390/s390-32/dl-machine.h: Include <sysdep.h> for CFI
411.37 - directive.
411.38 - * sysdeps/s390/s390-64/dl-machine.h: Likewise.
411.39 -
411.40 -Patches:
411.41 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-64/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.19.4.1&r2=1.19.4.2
411.42 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-32/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.20.4.1&r2=1.20.4.2
411.43 -
411.44 -===================================================================
411.45 -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-64/dl-machine.h,v
411.46 -retrieving revision 1.19.4.1
411.47 -retrieving revision 1.19.4.2
411.48 -diff -u -r1.19.4.1 -r1.19.4.2
411.49 ---- libc/sysdeps/s390/s390-64/dl-machine.h 2005/10/17 04:57:27 1.19.4.1
411.50 -+++ libc/sysdeps/s390/s390-64/dl-machine.h 2006/02/23 22:36:51 1.19.4.2
411.51 -@@ -27,6 +27,7 @@
411.52 - #include <sys/param.h>
411.53 - #include <string.h>
411.54 - #include <link.h>
411.55 -+#include <sysdep.h>
411.56 -
411.57 - /* This is an older, now obsolete value. */
411.58 - #define EM_S390_OLD 0xA390
411.59 -===================================================================
411.60 -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-32/dl-machine.h,v
411.61 -retrieving revision 1.20.4.1
411.62 -retrieving revision 1.20.4.2
411.63 -diff -u -r1.20.4.1 -r1.20.4.2
411.64 ---- libc/sysdeps/s390/s390-32/dl-machine.h 2005/10/17 04:57:27 1.20.4.1
411.65 -+++ libc/sysdeps/s390/s390-32/dl-machine.h 2006/02/23 22:36:51 1.20.4.2
411.66 -@@ -27,6 +27,7 @@
411.67 - #include <sys/param.h>
411.68 - #include <string.h>
411.69 - #include <link.h>
411.70 -+#include <sysdep.h>
411.71 -
411.72 - /* This is an older, now obsolete value. */
411.73 - #define EM_S390_OLD 0xA390
412.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-arm.patch Tue Aug 14 19:32:22 2007 +0000
412.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
412.3 @@ -1,117 +0,0 @@
412.4 -Fixes
412.5 -In file included from dynamic-link.h:22,
412.6 - from dl-reloc.c:265:
412.7 -../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
412.8 -../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24'
412.9 -../sysdeps/arm/dl-machine.h:406: error: invalid storage class for function 'elf_machine_rel'
412.10 -../sysdeps/arm/dl-machine.h:532: error: invalid storage class for function 'elf_machine_rela'
412.11 -../sysdeps/arm/dl-machine.h:612: error: invalid storage class for function 'elf_machine_rel_relative'
412.12 -../sysdeps/arm/dl-machine.h:621: error: invalid storage class for function 'elf_machine_rela_relative'
412.13 -../sysdeps/arm/dl-machine.h:630: error: invalid storage class for function 'elf_machine_lazy_rel'
412.14 -make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
412.15 -
412.16 -when building glibc-2.3.[34] with gcc-4.0
412.17 -
412.18 -Like
412.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc
412.20 -but works with older compilers, and fixes fix_bad_pc24.
412.21 -
412.22 -
412.23 ---- glibc-2.3.4/sysdeps/arm/dl-machine.h.old Sun Mar 20 17:54:37 2005
412.24 -+++ glibc-2.3.4/sysdeps/arm/dl-machine.h Sun Mar 20 17:57:32 2005
412.25 -@@ -359,7 +359,14 @@
412.26 - # endif
412.27 -
412.28 - /* Deal with an out-of-range PC24 reloc. */
412.29 --static Elf32_Addr
412.30 -+#if __GNUC__ >= 4
412.31 -+ auto inline Elf32_Addr
412.32 -+#else
412.33 -+ static inline Elf32_Addr
412.34 -+#endif
412.35 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
412.36 -+ __attribute ((always_inline))
412.37 -+#endif
412.38 - fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
412.39 - {
412.40 - static void *fix_page;
412.41 -@@ -392,7 +399,14 @@
412.42 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
412.43 - MAP is the object containing the reloc. */
412.44 -
412.45 --static inline void
412.46 -+#if __GNUC__ >= 4
412.47 -+ auto inline void
412.48 -+#else
412.49 -+ static inline void
412.50 -+#endif
412.51 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
412.52 -+ __attribute ((always_inline))
412.53 -+#endif
412.54 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
412.55 - const Elf32_Sym *sym, const struct r_found_version *version,
412.56 - void *const reloc_addr_arg)
412.57 -@@ -517,7 +531,14 @@
412.58 - }
412.59 -
412.60 - # ifndef RTLD_BOOTSTRAP
412.61 --static inline void
412.62 -+#if __GNUC__ >= 4
412.63 -+ auto inline void
412.64 -+#else
412.65 -+ static inline void
412.66 -+#endif
412.67 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
412.68 -+ __attribute ((always_inline))
412.69 -+#endif
412.70 - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
412.71 - const Elf32_Sym *sym, const struct r_found_version *version,
412.72 - void *const reloc_addr_arg)
412.73 -@@ -597,7 +618,14 @@
412.74 - }
412.75 - # endif
412.76 -
412.77 --static inline void
412.78 -+#if __GNUC__ >= 4
412.79 -+ auto inline void
412.80 -+#else
412.81 -+ static inline void
412.82 -+#endif
412.83 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
412.84 -+ __attribute ((always_inline))
412.85 -+#endif
412.86 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
412.87 - void *const reloc_addr_arg)
412.88 - {
412.89 -@@ -606,7 +634,14 @@
412.90 - }
412.91 -
412.92 - # ifndef RTLD_BOOTSTRAP
412.93 --static inline void
412.94 -+#if __GNUC__ >= 4
412.95 -+ auto inline void
412.96 -+#else
412.97 -+ static inline void
412.98 -+#endif
412.99 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
412.100 -+ __attribute ((always_inline))
412.101 -+#endif
412.102 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
412.103 - void *const reloc_addr_arg)
412.104 - {
412.105 -@@ -615,7 +650,14 @@
412.106 - }
412.107 - # endif
412.108 -
412.109 --static inline void
412.110 -+#if __GNUC__ >= 4
412.111 -+ auto inline void
412.112 -+#else
412.113 -+ static inline void
412.114 -+#endif
412.115 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
412.116 -+ __attribute ((always_inline))
412.117 -+#endif
412.118 - elf_machine_lazy_rel (struct link_map *map,
412.119 - Elf32_Addr l_addr, const Elf32_Rel *reloc)
412.120 - {
413.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-elf.patch Tue Aug 14 19:32:22 2007 +0000
413.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
413.3 @@ -1,61 +0,0 @@
413.4 -From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
413.5 -Fixes
413.6 - rtld.c: In function '_dl_start':
413.7 - dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
413.8 - dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
413.9 -when compiling glibc-2.3.4 with gcc-4.0
413.10 -
413.11 -But see also
413.12 -http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
413.13 -and
413.14 -http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
413.15 -which seem to propose less radical fixes?
413.16 -
413.17 -Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
413.18 -
413.19 ---- glibc-2.3-20050307/elf/dynamic-link.h.old 2005-03-12 18:12:37.000000000 -0800
413.20 -+++ glibc-2.3-20050307/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800
413.21 -@@ -19,43 +19,6 @@
413.22 -
413.23 - #include <elf.h>
413.24 - #include <assert.h>
413.25 --
413.26 --#ifdef RESOLVE
413.27 --/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
413.28 -- ElfW(Addr), because not all architectures can assume that the
413.29 -- relocated address is properly aligned, whereas the compiler is
413.30 -- entitled to assume that a pointer to a type is properly aligned for
413.31 -- the type. Even if we cast the pointer back to some other type with
413.32 -- less strict alignment requirements, the compiler might still
413.33 -- remember that the pointer was originally more aligned, thereby
413.34 -- optimizing away alignment tests or using word instructions for
413.35 -- copying memory, breaking the very code written to handle the
413.36 -- unaligned cases. */
413.37 --auto void __attribute__((always_inline))
413.38 --elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
413.39 -- const ElfW(Sym) *sym, const struct r_found_version *version,
413.40 -- void *const reloc_addr);
413.41 --auto void __attribute__((always_inline))
413.42 --elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
413.43 -- const ElfW(Sym) *sym, const struct r_found_version *version,
413.44 -- void *const reloc_addr);
413.45 --auto void __attribute__((always_inline))
413.46 --elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
413.47 -- void *const reloc_addr);
413.48 --auto void __attribute__((always_inline))
413.49 --elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
413.50 -- void *const reloc_addr);
413.51 --# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
413.52 --auto void __attribute__((always_inline))
413.53 --elf_machine_lazy_rel (struct link_map *map,
413.54 -- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
413.55 --# else
413.56 --auto void __attribute__((always_inline))
413.57 --elf_machine_lazy_rel (struct link_map *map,
413.58 -- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
413.59 --# endif
413.60 --#endif
413.61 --
413.62 - #include <dl-machine.h>
413.63 -
413.64 - #ifndef VERSYMIDX
414.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-iconvdata.patch Tue Aug 14 19:32:22 2007 +0000
414.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
414.3 @@ -1,44 +0,0 @@
414.4 -See http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
414.5 -and http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
414.6 -
414.7 -Fixes
414.8 - In file included from jis0208.c:23:
414.9 - jis0208.h:32: error: array type has incomplete element type
414.10 -when building glibc with gcc-4.0
414.11 -The bug has been present since at least glibc-2.2.5.
414.12 -This patch applies cleanly to glibc-2.3.4
414.13 -
414.14 ---- /home/dank/downloads/glibc-2.3-20050307/iconvdata/jis0208.h 2003-06-11 14:40:42.000000000 -0700
414.15 -+++ glibc-2.3-20050307/iconvdata/jis0208.h 2005-03-13 20:55:01.784054760 -0800
414.16 -@@ -24,15 +24,6 @@
414.17 - #include <gconv.h>
414.18 - #include <stdint.h>
414.19 -
414.20 --/* Conversion table. */
414.21 --extern const uint16_t __jis0208_to_ucs[];
414.22 --
414.23 --extern const char __jisx0208_from_ucs4_lat1[256][2];
414.24 --extern const char __jisx0208_from_ucs4_greek[0xc1][2];
414.25 --extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
414.26 --extern const char __jisx0208_from_ucs_tab[][2];
414.27 --
414.28 --
414.29 - /* Struct for table with indeces in UCS mapping table. */
414.30 - struct jisx0208_ucs_idx
414.31 - {
414.32 -@@ -42,6 +33,15 @@
414.33 - };
414.34 -
414.35 -
414.36 -+/* Conversion table. */
414.37 -+extern const uint16_t __jis0208_to_ucs[];
414.38 -+
414.39 -+extern const char __jisx0208_from_ucs4_lat1[256][2];
414.40 -+extern const char __jisx0208_from_ucs4_greek[0xc1][2];
414.41 -+extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
414.42 -+extern const char __jisx0208_from_ucs_tab[][2];
414.43 -+
414.44 -+
414.45 - static inline uint32_t
414.46 - __attribute ((always_inline))
414.47 - jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
415.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc-procfs.patch Tue Aug 14 19:32:22 2007 +0000
415.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
415.3 @@ -1,62 +0,0 @@
415.4 -First discussed here:
415.5 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
415.6 -
415.7 -Revision 1.12, Wed Mar 2 20:11:38 2005 UTC by roland
415.8 -Branch: MAIN
415.9 -CVS Tags: fedora-glibc-20050303T1335, HEAD
415.10 -Changes since 1.11: +3 -8 lines
415.11 -Diff to previous 1.11 (colored)
415.12 -
415.13 -2005-02-21 Alan Modra <amodra@bigpond.net.au>
415.14 -
415.15 - * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Don't
415.16 - use __uint128_t.
415.17 -
415.18 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h?cvsroot=glibc
415.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.diff?r1=1.11&r2=1.12&cvsroot=glibc
415.20 -
415.21 -Fixes
415.22 -
415.23 -In file included from ../linuxthreads_db/proc_service.h:20,
415.24 - from ../linuxthreads_db/thread_dbP.h:7,
415.25 - from ../linuxthreads/descr.h:44,
415.26 - from ../linuxthreads/internals.h:30,
415.27 - from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
415.28 - from ../sysdeps/generic/ldsodefs.h:38,
415.29 - from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
415.30 - from <stdin>:2:
415.31 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: error: syntax error before 'elf_vrreg_t'
415.32 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
415.33 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: data definition has no type or storage class
415.34 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: syntax error before 'elf_vrregset_t'
415.35 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
415.36 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: data definition has no type or storage class
415.37 -make[2]: make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/csu'
415.38 -
415.39 -
415.40 -===================================================================
415.41 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h,v
415.42 -retrieving revision 1.11
415.43 -retrieving revision 1.12
415.44 -diff -u -r1.11 -r1.12
415.45 ---- libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h 2003/12/17 23:09:34 1.11
415.46 -+++ libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h 2005/03/02 20:11:38 1.12
415.47 -@@ -46,15 +46,10 @@
415.48 - typedef double elf_fpreg_t;
415.49 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
415.50 -
415.51 --/* gcc 3.1 and newer support __uint128_t. */
415.52 --#if !__GNUC_PREREQ(3,1)
415.53 --typedef struct {
415.54 -- unsigned long u[4];
415.55 --} __attribute((aligned(16))) __uint128_t;
415.56 --#endif
415.57 --
415.58 - /* Altivec registers */
415.59 --typedef __uint128_t elf_vrreg_t;
415.60 -+typedef struct {
415.61 -+ unsigned int u[4];
415.62 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
415.63 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
415.64 - #endif
415.65 -
416.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch Tue Aug 14 19:32:22 2007 +0000
416.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
416.3 @@ -1,42 +0,0 @@
416.4 -Fixes
416.5 -
416.6 -../sysdeps/powerpc/powerpc32/dl-machine.h: In function '_dl_relocate_object':
416.7 -../sysdeps/powerpc/powerpc32/dl-machine.h:461: error: invalid storage class for function 'elf_machine_rela_relative'
416.8 -../sysdeps/powerpc/powerpc32/dl-machine.h:469: error: invalid storage class for function 'elf_machine_lazy_rel'
416.9 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/elf/dl-reloc.o] Error 1
416.10 -
416.11 -diff -ur glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h
416.12 ---- glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h Wed Jul 30 23:33:52 2003
416.13 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h Thu Mar 17 13:19:16 2005
416.14 -@@ -455,7 +455,14 @@
416.15 - }
416.16 - }
416.17 -
416.18 --static inline void
416.19 -+#if __GNUC__ >= 4
416.20 -+ auto inline void
416.21 -+#else
416.22 -+ static inline void
416.23 -+#endif
416.24 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
416.25 -+ __attribute ((always_inline))
416.26 -+#endif
416.27 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
416.28 - void *const reloc_addr_arg)
416.29 - {
416.30 -@@ -463,7 +470,14 @@
416.31 - *reloc_addr = l_addr + reloc->r_addend;
416.32 - }
416.33 -
416.34 --static inline void
416.35 -+#if __GNUC__ >= 4
416.36 -+ auto inline void
416.37 -+#else
416.38 -+ static inline void
416.39 -+#endif
416.40 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
416.41 -+ __attribute ((always_inline))
416.42 -+#endif
416.43 - elf_machine_lazy_rel (struct link_map *map,
416.44 - Elf32_Addr l_addr, const Elf32_Rela *reloc)
416.45 - {
417.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch Tue Aug 14 19:32:22 2007 +0000
417.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
417.3 @@ -1,60 +0,0 @@
417.4 -Fixes:
417.5 -
417.6 -In file included from dynamic-link.h:22,
417.7 - from dl-reloc.c:269:
417.8 -../sysdeps/powerpc/powerpc64/dl-machine.h: In function '_dl_relocate_object':
417.9 -../sysdeps/powerpc/powerpc64/dl-machine.h:573: error: invalid storage class for function 'elf_machine_rela_relative'
417.10 -../sysdeps/powerpc/powerpc64/dl-machine.h:607: error: invalid storage class for function 'elf_machine_rela'
417.11 -../sysdeps/powerpc/powerpc64/dl-machine.h:889: error: invalid storage class for function 'elf_machine_lazy_rel'
417.12 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/elf'
417.13 -
417.14 ---- glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h.old Thu Mar 17 13:35:23 2005
417.15 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h Thu Mar 17 13:37:12 2005
417.16 -@@ -567,7 +567,14 @@
417.17 - const Elf64_Sym *refsym)
417.18 - attribute_hidden;
417.19 -
417.20 --static inline void
417.21 -+#if __GNUC__ >= 4
417.22 -+ auto inline void
417.23 -+#else
417.24 -+ static inline void
417.25 -+#endif
417.26 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
417.27 -+ __attribute ((always_inline))
417.28 -+#endif
417.29 - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
417.30 - void *const reloc_addr_arg)
417.31 - {
417.32 -@@ -598,7 +605,14 @@
417.33 -
417.34 - /* Perform the relocation specified by RELOC and SYM (which is fully
417.35 - resolved). MAP is the object containing the reloc. */
417.36 --static inline void
417.37 -+#if __GNUC__ >= 4
417.38 -+ auto inline void
417.39 -+#else
417.40 -+ static inline void
417.41 -+#endif
417.42 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
417.43 -+ __attribute ((always_inline))
417.44 -+#endif
417.45 - elf_machine_rela (struct link_map *map,
417.46 - const Elf64_Rela *reloc,
417.47 - const Elf64_Sym *sym,
417.48 -@@ -883,7 +897,14 @@
417.49 - MODIFIED_CODE_NOQUEUE (reloc_addr);
417.50 - }
417.51 -
417.52 --static inline void
417.53 -+#if __GNUC__ >= 4
417.54 -+ auto inline void
417.55 -+#else
417.56 -+ static inline void
417.57 -+#endif
417.58 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
417.59 -+ __attribute ((always_inline))
417.60 -+#endif
417.61 - elf_machine_lazy_rel (struct link_map *map,
417.62 - Elf64_Addr l_addr, const Elf64_Rela *reloc)
417.63 - {
418.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-memcmp.patch Tue Aug 14 19:32:22 2007 +0000
418.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
418.3 @@ -1,46 +0,0 @@
418.4 -Fixes
418.5 - ../sysdeps/i386/i686/memcmp.S: Assembler messages:
418.6 - ../sysdeps/i386/i686/memcmp.S:390: Error: can't resolve `.rodata' {.rodata section} - `memcmp' {.text section}
418.7 -when building on macosx.
418.8 -
418.9 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/i686/memcmp.S?cvsroot=glibc
418.10 -Revision 1.4, Thu Apr 28 18:19:25 2005 UTC by drepper
418.11 -Branch: MAIN
418.12 -CVS Tags: fedora-glibc-20050503T0852
418.13 -Changes since 1.3: +2 -2 lines
418.14 -Diff to previous 1.3 (colored)
418.15 -
418.16 -Move misplaced END.
418.17 -
418.18 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/i686/memcmp.S.diff?r1=1.3&r2=1.4&cvsroot=glibc
418.19 -
418.20 -===================================================================
418.21 -RCS file: /cvs/glibc/libc/sysdeps/i386/i686/memcmp.S,v
418.22 -retrieving revision 1.3
418.23 -retrieving revision 1.4
418.24 -diff -u -r1.3 -r1.4
418.25 ---- libc/sysdeps/i386/i686/memcmp.S 2004/04/01 23:28:37 1.3
418.26 -+++ libc/sysdeps/i386/i686/memcmp.S 2005/04/28 18:19:25 1.4
418.27 -@@ -1,5 +1,5 @@
418.28 - /* Compare two memory blocks for differences in the first COUNT bytes.
418.29 -- Copyright (C) 2004 Free Software Foundation, Inc.
418.30 -+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
418.31 - This file is part of the GNU C Library.
418.32 -
418.33 - The GNU C Library is free software; you can redistribute it and/or
418.34 -@@ -350,6 +350,7 @@
418.35 - sbbl $-1, %eax
418.36 - popl %esi
418.37 - RETURN
418.38 -+END (BP_SYM (memcmp))
418.39 -
418.40 - .section .rodata
418.41 - ALIGN (2)
418.42 -@@ -387,7 +388,6 @@
418.43 - .long L(30bytes) - . + 0x78
418.44 - .long L(31bytes) - . + 0x7c
418.45 -
418.46 --END (BP_SYM (memcmp))
418.47 -
418.48 - #undef bcmp
418.49 - weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
419.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-allow-gcc-4.0-wordexp.patch Tue Aug 14 19:32:22 2007 +0000
419.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
419.3 @@ -1,19 +0,0 @@
419.4 -../sysdeps/generic/wordexp.c: In function 'exec_comm':
419.5 -../sysdeps/generic/wordexp.c:815: sorry, unimplemented: inlining failed in call to 'exec_comm_child': function body not available
419.6 -../sysdeps/generic/wordexp.c:900: sorry, unimplemented: called from here
419.7 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/posix/wordexp.o] Error
419.8 -
419.9 -I had to add the keyword 'inline' to get it to compile:
419.10 -
419.11 ---- glibc-2.3-20050307/sysdeps/generic/wordexp.c.old 2005-03-12 08:54:15.709253928 -0800
419.12 -+++ glibc-2.3-20050307/sysdeps/generic/wordexp.c 2005-03-12 08:54:51.242852000 -0800
419.13 -@@ -809,7 +809,7 @@
419.14 - }
419.15 -
419.16 - /* Function called by child process in exec_comm() */
419.17 --static void
419.18 -+static inline void
419.19 - internal_function __attribute__ ((always_inline))
419.20 - exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
419.21 - {
419.22 -
420.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-string.patch Tue Aug 14 19:32:22 2007 +0000
420.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
420.3 @@ -1,83 +0,0 @@
420.4 -
420.5 -Fixes? the following error when building with gcc-4.0.0:
420.6 -
420.7 -../string/strcoll.c:39: error: '__EI_strcoll' aliased to undefined symbol '__GI_strcoll'
420.8 -make[2]: *** [/home/dank/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcscoll.os] Error 1
420.9 -make[2]: Leaving directory `/home/dank/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/glibc-2.3.4/wcsmbs'
420.10 -
420.11 -
420.12 -Thu Mar 17 21:06:24 2005 UTC (3 weeks, 5 days ago) by roland
420.13 -Branch: MAIN
420.14 -CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
420.15 -
420.16 -2005-03-16 Richard Henderson <rth@redhat.com>
420.17 -
420.18 - * include/wchar.h (__wcscoll): Remove.
420.19 - * wcsmbs/wcscoll.c: Define wcscoll directly instead of via __wcscoll.
420.20 - * string/strcoll.c: Don't issue libc_hidden_def STRCOLL redefined.
420.21 -
420.22 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/string/strcoll.c.diff?r1=1.33&r2=1.34&cvsroot=glibc
420.23 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/wchar.h.diff?r1=1.26&r2=1.27&cvsroot=glibc
420.24 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/wcsmbs/wcscoll.c.diff?r1=1.13&r2=1.14&cvsroot=glibc
420.25 -
420.26 -===================================================================
420.27 -RCS file: /cvs/glibc/libc/string/strcoll.c,v
420.28 -retrieving revision 1.33
420.29 -retrieving revision 1.34
420.30 -diff -u -r1.33 -r1.34
420.31 ---- libc/string/strcoll.c 2004/03/14 20:51:30 1.33
420.32 -+++ libc/string/strcoll.c 2005/03/17 21:06:24 1.34
420.33 -@@ -23,6 +23,7 @@
420.34 - # define STRING_TYPE char
420.35 - # define STRCOLL strcoll
420.36 - # define STRCOLL_L __strcoll_l
420.37 -+# define USE_HIDDEN_DEF
420.38 - #endif
420.39 -
420.40 - #include "../locale/localeinfo.h"
420.41 -@@ -35,6 +36,7 @@
420.42 - {
420.43 - return STRCOLL_L (s1, s2, _NL_CURRENT_LOCALE);
420.44 - }
420.45 --#if !defined WIDE_CHAR_VERSION
420.46 --libc_hidden_def (strcoll)
420.47 -+
420.48 -+#ifdef USE_HIDDEN_DEF
420.49 -+libc_hidden_def (STRCOLL)
420.50 - #endif
420.51 -===================================================================
420.52 -RCS file: /cvs/glibc/libc/include/wchar.h,v
420.53 -retrieving revision 1.26
420.54 -retrieving revision 1.27
420.55 -diff -u -r1.26 -r1.27
420.56 ---- libc/include/wchar.h 2004/03/14 20:45:10 1.26
420.57 -+++ libc/include/wchar.h 2005/03/17 21:06:24 1.27
420.58 -@@ -56,7 +56,6 @@
420.59 - extern int __wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
420.60 - size_t __n)
420.61 - __attribute_pure__;
420.62 --extern int __wcscoll (__const wchar_t *__s1, __const wchar_t *__s2);
420.63 - extern size_t __wcslen (__const wchar_t *__s) __attribute_pure__;
420.64 - extern size_t __wcsnlen (__const wchar_t *__s, size_t __maxlen)
420.65 - __attribute_pure__;
420.66 -===================================================================
420.67 -RCS file: /cvs/glibc/libc/wcsmbs/wcscoll.c,v
420.68 -retrieving revision 1.13
420.69 -retrieving revision 1.14
420.70 -diff -u -r1.13 -r1.14
420.71 ---- libc/wcsmbs/wcscoll.c 2004/03/14 21:05:48 1.13
420.72 -+++ libc/wcsmbs/wcscoll.c 2005/03/17 21:06:24 1.14
420.73 -@@ -22,12 +22,11 @@
420.74 -
420.75 - #define STRING_TYPE wchar_t
420.76 - #define USTRING_TYPE wint_t
420.77 --#define STRCOLL __wcscoll
420.78 -+#define STRCOLL wcscoll
420.79 - #define STRCOLL_L __wcscoll_l
420.80 -
420.81 - #include "../string/strcoll.c"
420.82 -
420.83 - #ifndef USE_IN_EXTENDED_LOCALE_MODEL
420.84 --weak_alias (__wcscoll, wcscoll)
420.85 - libc_hidden_weak (wcscoll)
420.86 - #endif
421.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-symbols.patch Tue Aug 14 19:32:22 2007 +0000
421.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
421.3 @@ -1,126 +0,0 @@
421.4 -If I'm really lucky, this fixes the following error building with gcc-4.0.0:
421.5 -
421.6 -../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to undefined symbol '__isinf'
421.7 -make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/math/s_isinf.os] Error 1
421.8 -make[1]: *** [math/subdir_lib] Error 2
421.9 -make: *** [lib] Error 2
421.10 -
421.11 ----
421.12 -
421.13 -
421.14 -Revision 1.71, Thu Mar 17 21:06:27 2005 UTC (3 weeks, 5 days ago) by roland
421.15 -Branch: MAIN
421.16 -CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
421.17 -Changes since 1.70: +11 -66 lines
421.18 -Diff to previous 1.70 (colored)
421.19 -
421.20 -2005-03-16 Richard Henderson <rth@redhat.com>
421.21 -
421.22 - * include/libc-symbols.h (__hidden_proto): Remove bogus declaration
421.23 - of internal.
421.24 - (__hidden_def1, __hidden_dot_def1): Remove.
421.25 - (__hidden_def2, __hidden_def3): Remove.
421.26 - (__hidden_ver1): New.
421.27 - (hidden_ver, hidden_def, hidden_weak): Use it.
421.28 - (hidden_data_ver, hidden_data_ver, hidden_data_weak): Use non-data
421.29 - version of the macro.
421.30 -
421.31 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.70&r2=1.71&cvsroot=glibc
421.32 -
421.33 -===================================================================
421.34 -RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
421.35 -retrieving revision 1.70
421.36 -retrieving revision 1.71
421.37 -diff -u -r1.70 -r1.71
421.38 ---- libc/include/libc-symbols.h 2005/02/11 00:29:46 1.70
421.39 -+++ libc/include/libc-symbols.h 2005/03/17 21:06:27 1.71
421.40 -@@ -583,78 +583,23 @@
421.41 - # define hidden_proto(name, attrs...) \
421.42 - __hidden_proto (name, __GI_##name, ##attrs)
421.43 - # define __hidden_proto(name, internal, attrs...) \
421.44 -- extern __typeof (name) internal; \
421.45 - extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
421.46 - __hidden_proto_hiddenattr (attrs);
421.47 - # define __hidden_asmname(name) \
421.48 - __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
421.49 - # define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
421.50 - # define __hidden_asmname2(prefix, name) #prefix name
421.51 --# ifdef HAVE_ASM_SET_DIRECTIVE
421.52 --# define __hidden_def1(original, alias) \
421.53 -- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
421.54 -- .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
421.55 --# ifdef HAVE_ASM_GLOBAL_DOT_NAME
421.56 --# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \
421.57 -- ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
421.58 -- .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
421.59 --# else
421.60 --# define __hidden_dot_def1(original, alias)
421.61 --# endif
421.62 --# else
421.63 --# define __hidden_def1(original, alias) \
421.64 -- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
421.65 -- C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
421.66 --# ifdef HAVE_ASM_GLOBAL_DOT_NAME
421.67 --# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \
421.68 -- ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
421.69 -- C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
421.70 --# else
421.71 --# define __hidden_dot_def1(original, alias)
421.72 --# endif
421.73 --# endif
421.74 --# define __hidden_def2(...) #__VA_ARGS__
421.75 --# define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
421.76 --# define hidden_def(name) \
421.77 -- __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
421.78 -- __hidden_dot_def1 (__GI_##name, name)));
421.79 --# define hidden_data_def(name) \
421.80 -- __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
421.81 --# define hidden_ver(local, name) \
421.82 -- __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
421.83 -- __hidden_dot_def1 (local, __GI_##name)));
421.84 --# define hidden_data_ver(local, name) \
421.85 -- __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
421.86 --# ifdef HAVE_WEAK_SYMBOLS
421.87 --# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
421.88 --# define __hidden_weak1(original, alias) \
421.89 -- .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
421.90 --# ifdef HAVE_ASM_GLOBAL_DOT_NAME
421.91 --# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \
421.92 -- .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
421.93 --# else
421.94 --# define __hidden_dot_weak1(original, alias)
421.95 --# endif
421.96 --# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
421.97 --# define __hidden_weak1(original, alias) \
421.98 -- .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
421.99 -- C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
421.100 --# ifdef HAVE_ASM_GLOBAL_DOT_NAME
421.101 --# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \
421.102 -- .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
421.103 -- C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
421.104 --# else
421.105 --# define __hidden_dot_weak1(original, alias)
421.106 --# endif
421.107 --# endif
421.108 --# define hidden_weak(name) \
421.109 -- __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
421.110 -- __hidden_dot_weak1 (__GI_##name, name)));
421.111 --# define hidden_data_weak(name) \
421.112 -- __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
421.113 --# else
421.114 --# define hidden_weak(name) hidden_def (name)
421.115 --# endif
421.116 -+# define __hidden_ver1(local, internal, name) \
421.117 -+ extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
421.118 -+ extern __typeof (name) __EI_##name \
421.119 -+ __attribute__((alias (__hidden_asmname (#local))))
421.120 -+# define hidden_ver(local, name) __hidden_ver1(local, __GI_##name, name);
421.121 -+# define hidden_data_ver(local, name) hidden_ver(local, name)
421.122 -+# define hidden_def(name) __hidden_ver1(__GI_##name, name, name);
421.123 -+# define hidden_data_def(name) hidden_def(name)
421.124 -+# define hidden_weak(name) \
421.125 -+ __hidden_ver1(__GI_##name, name, name) __attribute__((weak));
421.126 -+# define hidden_data_weak(name) hidden_weak(name)
421.127 - # else
421.128 - /* For assembly, we need to do the opposite of what we do in C:
421.129 - in assembly gcc __REDIRECT stuff is not in place, so functions
422.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-wcstol_l.patch Tue Aug 14 19:32:22 2007 +0000
422.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
422.3 @@ -1,57 +0,0 @@
422.4 -Fixes
422.5 -../sysdeps/wordsize-64/wcstol_l.c:11: error: '____wcstoll_l_internal' aliased to undefined symbol '____wcstol_l_internal'
422.6 -../sysdeps/wordsize-64/wcstol_l.c:12: error: '__wcstoll_l' aliased to undefined symbol '__wcstol_l'
422.7 -../sysdeps/wordsize-64/wcstol_l.c:13: error: 'wcstoll_l' aliased to undefined symbol '__wcstol_l'
422.8 -make[2]: *** [/home/dkegel/queue/jobdir.produser_cpsm10/crosstool-0.32/build/x86_64-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcstoul_l.o] Error 1
422.9 -
422.10 -https://www.redhat.com/archives/fedora-cvs-commits/2005-March/msg00408.html
422.11 -%changelog
422.12 -+* Fri Mar 25 2005 Jakub Jelinek <jakub redhat com> 2.3.4-18
422.13 -+- fix build on 64-bit arches with new GCC
422.14 -
422.15 -Revision 1.4.2.1, Fri Mar 25 11:59:01 2005 UTC (3 weeks, 4 days ago) by jakub
422.16 -Branch: fedora-branch
422.17 -CVS Tags: fedora-glibc-2_3_4-18
422.18 -Changes since 1.4: +2 -0 lines
422.19 -Diff to previous 1.4 (colored)
422.20 -
422.21 - * sysdeps/wordsize-64/strtol_l.c: Don't add aliases if UNSIGNED.
422.22 - * sysdeps/wordsize-64/wcstol_l.c: Likewise.
422.23 -
422.24 -
422.25 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/strtol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc
422.26 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/wcstol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc
422.27 -
422.28 -===================================================================
422.29 -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/strtol_l.c,v
422.30 -retrieving revision 1.4
422.31 -retrieving revision 1.4.2.1
422.32 -diff -u -r1.4 -r1.4.2.1
422.33 ---- libc/sysdeps/wordsize-64/strtol_l.c 2003/03/03 09:45:12 1.4
422.34 -+++ libc/sysdeps/wordsize-64/strtol_l.c 2005/03/25 11:59:01 1.4.2.1
422.35 -@@ -8,7 +8,9 @@
422.36 - #undef ____strtoll_l_internal
422.37 - #undef __strtoll_l
422.38 - #undef strtoll_l
422.39 -+#if !UNSIGNED
422.40 - strong_alias (____strtol_l_internal, ____strtoll_l_internal)
422.41 - libc_hidden_ver (____strtol_l_internal, ____strtoll_l_internal)
422.42 - weak_alias (__strtol_l, __strtoll_l)
422.43 - weak_alias (__strtol_l, strtoll_l)
422.44 -+#endif
422.45 -===================================================================
422.46 -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/wcstol_l.c,v
422.47 -retrieving revision 1.4
422.48 -retrieving revision 1.4.2.1
422.49 -diff -u -r1.4 -r1.4.2.1
422.50 ---- libc/sysdeps/wordsize-64/wcstol_l.c 2002/08/08 11:44:51 1.4
422.51 -+++ libc/sysdeps/wordsize-64/wcstol_l.c 2005/03/25 11:59:01 1.4.2.1
422.52 -@@ -8,6 +8,8 @@
422.53 - #undef ____wcstoll_l_internal
422.54 - #undef __wcstoll_l
422.55 - #undef wcstoll_l
422.56 -+#if !UNSIGNED
422.57 - strong_alias (____wcstol_l_internal, ____wcstoll_l_internal)
422.58 - weak_alias (__wcstol_l, __wcstoll_l)
422.59 - weak_alias (__wcstol_l, wcstoll_l)
422.60 -+#endif
423.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-cygwin.patch Tue Aug 14 19:32:22 2007 +0000
423.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
423.3 @@ -1,185 +0,0 @@
423.4 -Fixes
423.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
423.6 -...
423.7 -when building glibc-2.3.x on cygwin
423.8 -
423.9 -Idea from
423.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
423.11 -Basically, make glibc use .oST as suffix for 'object static'
423.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
423.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
423.14 -
423.15 -glibc-linuxthreads-2.3.5 also requires a patch, see
423.16 -../glibc-linuxthreads-2.3.5/glibc-linuxthreads-2.3.5-cygwin.patch
423.17 -
423.18 -[ forward ported to glibc-2.3.5 by Petr Cvachoucek:
423.19 -
423.20 -Message-ID: <4282FCBA.3040000@unicontrols.cz>
423.21 -Date: Thu, 12 May 2005 08:50:34 +0200
423.22 -From: Petr Cvachoucek <cvachoucek@unicontrols.cz>
423.23 -To: Dan Kegel <dank@kegel.com>
423.24 -CC: crossgcc@sources.redhat.com
423.25 -Subject: Patches to build gcc 3.4.3 / glibc 2.3.5 on cygwin
423.26 -
423.27 -Hi Dan,
423.28 -following patches are needed to build gcc-3.4.3/glibc-2.3.5 toolchain
423.29 -on cygwin. Tested to build toolchains for powerpc 604 and 750 targets.
423.30 -
423.31 ---
423.32 - Petr Cvachoucek
423.33 - Unicontrols a.s.
423.34 - http://www.unicontrols.cz
423.35 -]
423.36 -
423.37 -diff -aur glibc-2.3.5/Makeconfig glibc-2.3.5-cygwin/Makeconfig
423.38 ---- glibc-2.3.5/Makeconfig 2005-02-16 11:50:19.000000000 +0100
423.39 -+++ glibc-2.3.5-cygwin/Makeconfig 2005-05-11 08:24:51.046875000 +0200
423.40 -@@ -449,7 +449,7 @@
423.41 - # run the linked programs.
423.42 - link-libc = -Wl,-rpath-link=$(rpath-link) \
423.43 - $(common-objpfx)libc.so$(libc.so-version) \
423.44 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
423.45 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
423.46 - # This is how to find at build-time things that will be installed there.
423.47 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
423.48 - endif
423.49 -@@ -656,7 +656,7 @@
423.50 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
423.51 - # to pass different flags for each flavor.
423.52 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
423.53 --all-object-suffixes := .o .os .op .og .ob .oS
423.54 -+all-object-suffixes := .o .os .op .og .ob .oST
423.55 - object-suffixes :=
423.56 - CPPFLAGS-.o = $(pic-default)
423.57 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
423.58 -@@ -712,14 +712,14 @@
423.59 -
423.60 - ifeq (yes,$(build-shared))
423.61 - # Build special library that contains the static-only routines for libc.
423.62 --object-suffixes-for-libc += .oS
423.63 -+object-suffixes-for-libc += .oST
423.64 -
423.65 - # Must build the routines as PIC, though, because they can end up in (users')
423.66 - # shared objects. We don't want to use CFLAGS-os because users may, for
423.67 - # example, make that processor-specific.
423.68 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
423.69 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
423.70 --libtype.oS = lib%_nonshared.a
423.71 -+CFLAGS-.oST = $(CFLAGS-.o) $(PIC-ccflag)
423.72 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
423.73 -+libtype.oST = lib%_nonshared.a
423.74 - endif
423.75 -
423.76 - # The assembler can generate debug information too.
423.77 -diff -aur glibc-2.3.5/Makerules glibc-2.3.5-cygwin/Makerules
423.78 ---- glibc-2.3.5/Makerules 2004-12-15 19:52:39.000000000 +0100
423.79 -+++ glibc-2.3.5-cygwin/Makerules 2005-05-11 08:25:33.578125000 +0200
423.80 -@@ -416,7 +416,7 @@
423.81 - # Bounded pointer thunks are only built for *.ob
423.82 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
423.83 -
423.84 --elide-routines.oS += $(filter-out $(static-only-routines),\
423.85 -+elide-routines.oST += $(filter-out $(static-only-routines),\
423.86 - $(routines) $(aux) $(sysdep_routines)) \
423.87 - $(elide-bp-thunks)
423.88 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
423.89 -@@ -961,7 +961,7 @@
423.90 - install: $(inst_libdir)/libc.so
423.91 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
423.92 - $(common-objpfx)libc.so$(libc.so-version) \
423.93 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
423.94 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
423.95 - $(libprefix)$(libc-name)) \
423.96 - $(+force)
423.97 - (echo '/* GNU ld script';\
423.98 -@@ -969,7 +969,7 @@
423.99 - echo ' the static library, so try that secondarily. */';\
423.100 - cat $<; \
423.101 - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
423.102 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
423.103 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
423.104 - ')' \
423.105 - ) > $@.new
423.106 - mv -f $@.new $@
423.107 -diff -aur glibc-2.3.5/extra-lib.mk glibc-2.3.5-cygwin/extra-lib.mk
423.108 ---- glibc-2.3.5/extra-lib.mk 2004-12-02 23:54:47.000000000 +0100
423.109 -+++ glibc-2.3.5-cygwin/extra-lib.mk 2005-05-11 08:27:28.156250000 +0200
423.110 -@@ -13,7 +13,7 @@
423.111 -
423.112 - ifneq (,$($(lib)-static-only-routines))
423.113 - ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version)))
423.114 --object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS)
423.115 -+object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oST)
423.116 - endif
423.117 - endif
423.118 -
423.119 -@@ -29,7 +29,7 @@
423.120 -
423.121 - # Add each flavor of library to the lists of things to build and install.
423.122 - install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o)))
423.123 --extra-objs += $(foreach o,$(filter-out .os .oS,$(object-suffixes-$(lib))),\
423.124 -+extra-objs += $(foreach o,$(filter-out .os .oST,$(object-suffixes-$(lib))),\
423.125 - $(patsubst %,%$o,$(filter-out \
423.126 - $($(lib)-shared-only-routines),\
423.127 - $(all-$(lib)-routines))))
423.128 -@@ -57,7 +57,7 @@
423.129 -
423.130 -
423.131 - # Use o-iterator.mk to generate a rule for each flavor of library.
423.132 --ifneq (,$(filter-out .os .oS,$(object-suffixes-$(lib))))
423.133 -+ifneq (,$(filter-out .os .oST,$(object-suffixes-$(lib))))
423.134 - define o-iterator-doit
423.135 - $(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \
423.136 - $(patsubst %,$(objpfx)%$o,\
423.137 -@@ -65,7 +65,7 @@
423.138 - $(all-$(lib)-routines))); \
423.139 - $$(build-extra-lib)
423.140 - endef
423.141 --object-suffixes-left = $(filter-out .os .oS,$(object-suffixes-$(lib)))
423.142 -+object-suffixes-left = $(filter-out .os .oST,$(object-suffixes-$(lib)))
423.143 - include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left))
423.144 - endif
423.145 -
423.146 -@@ -77,9 +77,9 @@
423.147 - $(build-extra-lib)
423.148 - endif
423.149 -
423.150 --ifneq (,$(filter .oS,$(object-suffixes-$(lib))))
423.151 --$(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \
423.152 -- $(patsubst %,$(objpfx)%.oS,\
423.153 -+ifneq (,$(filter .oST,$(object-suffixes-$(lib))))
423.154 -+$(objpfx)$(patsubst %,$(libtype.oST),$(lib:lib%=%)): \
423.155 -+ $(patsubst %,$(objpfx)%.oST,\
423.156 - $(filter $($(lib)-static-only-routines),\
423.157 - $(all-$(lib)-routines)))
423.158 - $(build-extra-lib)
423.159 -diff -aur glibc-2.3.5/nptl/Makefile glibc-2.3.5-cygwin/nptl/Makefile
423.160 ---- glibc-2.3.5/nptl/Makefile 2005-02-16 09:45:56.000000000 +0100
423.161 -+++ glibc-2.3.5-cygwin/nptl/Makefile 2005-05-11 08:26:01.812500000 +0200
423.162 -@@ -360,7 +360,7 @@
423.163 -
423.164 - $(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \
423.165 - $(objpfx)libpthread.so$(libpthread.so-version) \
423.166 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
423.167 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
423.168 - $(libprefix)pthread) \
423.169 - $(+force)
423.170 - (echo '/* GNU ld script';\
423.171 -@@ -368,7 +368,7 @@
423.172 - echo ' the static library, so try that secondarily. */';\
423.173 - cat $<; \
423.174 - echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \
423.175 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\
423.176 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)pthread)'\
423.177 - ')' \
423.178 - ) > $@.new
423.179 - mv -f $@.new $@
423.180 -diff -aur glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
423.181 ---- glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile 2004-08-16 08:46:14.000000000 +0200
423.182 -+++ glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile 2005-05-11 08:26:25.937500000 +0200
423.183 -@@ -10,4 +10,4 @@
423.184 - ASFLAGS-.op += -Wa,-Av9a
423.185 - ASFLAGS-.og += -Wa,-Av9a
423.186 - ASFLAGS-.ob += -Wa,-Av9a
423.187 --ASFLAGS-.oS += -Wa,-Av9a
423.188 -+ASFLAGS-.oST += -Wa,-Av9a
424.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-fix-pr631.patch Tue Aug 14 19:32:22 2007 +0000
424.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
424.3 @@ -1,43 +0,0 @@
424.4 -From dank@kegel.com
424.5 -Wed Jun 15 09:12:43 PDT 2005
424.6 -
424.7 -Fixes
424.8 -
424.9 -build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r'
424.10 -build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent'
424.11 -... 53 lines deleted ...
424.12 -build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r'
424.13 -collect2: ld returned 1 exit status
424.14 -make[2]: *** [/build/gcc-3.4.3-glibc-2.3.5-hdrs-2.6.11.2/i686-unknown-linux-gnu/build-glibc/elf/ldconfig] Error 1
424.15 -
424.16 -when building glibc with --enable-static-nss.
424.17 -
424.18 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631
424.19 -
424.20 ---- glibc-2.3.5/Makeconfig.old Wed Jun 15 08:13:12 2005
424.21 -+++ glibc-2.3.5/Makeconfig Wed Jun 15 08:13:14 2005
424.22 -@@ -487,7 +487,7 @@
424.23 -
424.24 - # The static libraries.
424.25 - ifeq (yes,$(build-static))
424.26 --link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a
424.27 -+link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a
424.28 - else
424.29 - ifeq (yes,$(build-shared))
424.30 - # We can try to link the programs with lib*_pic.a...
424.31 ---- glibc-2.3.5/elf/Makefile.old Wed Jun 15 07:46:49 2005
424.32 -+++ glibc-2.3.5/elf/Makefile Wed Jun 15 08:14:00 2005
424.33 -@@ -114,6 +114,13 @@
424.34 - install-bin-script = ldd
424.35 - endif
424.36 -
424.37 -+ifeq (yes,$(build-static-nss))
424.38 -+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
424.39 -+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
424.40 -+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
424.41 -+ $(resolvobjdir)/libresolv.a
424.42 -+endif
424.43 -+
424.44 - others = sprof sln
424.45 - install-bin = sprof
424.46 - others-static = sln
425.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-sh-memset.patch Tue Aug 14 19:32:22 2007 +0000
425.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
425.3 @@ -1,69 +0,0 @@
425.4 -[http://sources.redhat.com/ml/crossgcc/2005-10/msg00035.html]
425.5 -
425.6 -Message-ID: <434576E1.6020305@sscd.de>
425.7 -Date: Thu, 06 Oct 2005 21:11:29 +0200
425.8 -From: Alexander Sieb <sieb@sscd.de>
425.9 -To: crossgcc@sourceware.org
425.10 -Subject: Crosstool sh4-linux-gcc-4.0.2-glibc-2.3.5 patches
425.11 -
425.12 -Hi,
425.13 -
425.14 -attached you find the files I needed to add to crosstool-0.38
425.15 -in order to build a sh4-linux gcc-4.0.2-glibc-2.3.5 tool chain.
425.16 -
425.17 -Files attached:
425.18 -
425.19 -sh4-gcc4.dat:
425.20 - * gcc4 needs --with-multilib-list=m4,m4-nofpu otherwise a linux
425.21 - kernel won't build as it uses the -m4-nofpu option.
425.22 -
425.23 -gcc-pr21623.patch:
425.24 - * Kaz Kojima provided a patch [really, a workaround -dank] for http://gcc.gnu.org/PR21623
425.25 -
425.26 -glibc-2.3.5-sh-memset.patch:
425.27 - * A patch for glibc-2.3.5 which corrects memset. From SUGIOKA Toshinobu.
425.28 - See content for rationale.
425.29 -
425.30 --- snip --
425.31 -
425.32 --- Here's patch 2 of 2, plus URLs showing where it is in CVS --
425.33 -
425.34 -[http://sources.redhat.com/ml/glibc-cvs/2005-q3/msg00319.html]
425.35 -
425.36 -Date: 24 Jul 2005 22:54:32 -0000
425.37 -Message-ID: <20050724225432.2111.qmail@sourceware.org>
425.38 -From: roland at sourceware dot org
425.39 -To: glibc-cvs at sources dot redhat dot com
425.40 -Subject: libc/sysdeps/sh memset.S
425.41 -
425.42 -CVSROOT: /cvs/glibc
425.43 -Module name: libc
425.44 -Changes by: roland@sources.redhat.com 2005-07-24 22:54:32
425.45 -
425.46 -Modified files:
425.47 - sysdeps/sh : memset.S
425.48 -
425.49 -Log message:
425.50 - 2005-07-24 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
425.51 -
425.52 - * sysdeps/sh/memset.S (memset): Correct 2nd argument handling.
425.53 -
425.54 -[http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/sh/memset.S.diff?cvsroot=glibc&r1=1.4&r2=1.5]
425.55 -
425.56 -RCS file: /cvs/glibc/libc/sysdeps/sh/memset.S,v
425.57 -retrieving revision 1.4
425.58 -retrieving revision 1.5
425.59 -diff -u -r1.4 -r1.5
425.60 ---- libc/sysdeps/sh/memset.S 2003/04/29 22:47:18 1.4
425.61 -+++ libc/sysdeps/sh/memset.S 2005/07/24 22:54:32 1.5
425.62 -@@ -28,6 +28,7 @@
425.63 - bt.s L_byte_loop_init
425.64 - mov r4,r7
425.65 -
425.66 -+ extu.b r5,r5
425.67 - swap.b r5,r1
425.68 - or r1,r5
425.69 - swap.w r5,r1
425.70 -
425.71 -
425.72 -[See also http://sources.redhat.com/ml/libc-alpha/2005-07/msg00051.html]
426.1 --- a/patches/glibc/2.3.5/glibc-configure-apple-as.patch Tue Aug 14 19:32:22 2007 +0000
426.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
426.3 @@ -1,23 +0,0 @@
426.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
426.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
426.6 -
426.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
426.8 -where the assembler but doesn't understand the --version flag.
426.9 -
426.10 -Fixes the symptom
426.11 -checking whether ld is GNU ld... no
426.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
426.13 -checking version of /usr/libexec/gcc/darwin/ppc/as...
426.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
426.15 -
426.16 ---- glibc-2.3.2/configure~ Wed Feb 26 09:20:48 2003
426.17 -+++ glibc-2.3.2/configure Fri Feb 27 13:12:53 2004
426.18 -@@ -3789,7 +3789,7 @@
426.19 - # Found it, now check the version.
426.20 - echo "$as_me:$LINENO: checking version of $AS" >&5
426.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
426.22 -- ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
426.23 -+ ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
426.24 - case $ac_prog_version in
426.25 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
426.26 - 2.1[3-9]*)
427.1 --- a/patches/glibc/2.3.5/glibc-fp-byteorder.patch Tue Aug 14 19:32:22 2007 +0000
427.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
427.3 @@ -1,203 +0,0 @@
427.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
427.5 -Author: addsub@eyou.com
427.6 -Target: ARM
427.7 -
427.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
427.9 -and makes printf("%f", 1.0) work.
427.10 -
427.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
427.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
427.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
427.14 - It's definitely needed for hardfloat. So I'd think it's needed for
427.15 - big-endian systems in any case, and for VFP on little-endian systems
427.16 - too. Someone would have to verify that though.
427.17 -
427.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
427.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
427.20 - for this version. glibc-20040830 out-of-the-box still contains the
427.21 - following wrong assumptions:
427.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
427.23 - not on vfp systems)
427.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
427.25 - are not on big endian systems, neither on vfp systems)
427.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
427.27 - (which they are not on big endian systems)
427.28 - [This patch] seems the right solution for all of these issues.
427.29 -
427.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
427.31 - It's even needed for glibc CVS, AFAICS.
427.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
427.33 - (currently at version 1.4) is only needed for proper VFP operation.
427.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
427.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
427.36 - for proper operation of *any* FP model on big endian ARM.
427.37 -
427.38 -See also discussion in followups to
427.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
427.40 -
427.41 -Message-ID: <276985760.37584@eyou.com>
427.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
427.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
427.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
427.45 -Date: 17 Feb 2004 10:42:38 +0800
427.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
427.47 -From: "add" <addsub@eyou.com>
427.48 -To: dank@kegel.com
427.49 -Reply-To: "add" <addsub@eyou.com>
427.50 -Subject: Re: problem while building arm vfp softfloat gcc `
427.51 -
427.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
427.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
427.54 -
427.55 -
427.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
427.57 ---- glibc.old/sysdeps/arm/bits/endian.h 1999-04-12 11:59:13.000000000 -0400
427.58 -+++ glibc.new/sysdeps/arm/bits/endian.h 2004-02-12 09:15:13.000000000 -0500
427.59 -@@ -9,4 +9,9 @@
427.60 - #else
427.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
427.62 - #endif
427.63 -+
427.64 -+#ifdef __VFP_FP__
427.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
427.66 -+#else
427.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
427.68 -+#endif
427.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
427.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h 2001-07-07 15:21:19.000000000 -0400
427.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h 2004-02-12 09:15:13.000000000 -0500
427.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
427.73 - #define BITS_PER_SHORTINT 16
427.74 - #define BITS_PER_CHAR 8
427.75 -
427.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
427.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
427.78 -+#if defined(__ARMEB__)
427.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
427.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
427.81 -+#elif defined(__VFP_FP__)
427.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
427.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
427.84 -+#else
427.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
427.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
427.87 -+#endif
427.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
427.89 ---- glibc.old/sysdeps/arm/ieee754.h 2001-07-07 15:21:19.000000000 -0400
427.90 -+++ glibc.new/sysdeps/arm/ieee754.h 1969-12-31 19:00:00.000000000 -0500
427.91 -@@ -1,115 +0,0 @@
427.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
427.93 -- This file is part of the GNU C Library.
427.94 --
427.95 -- The GNU C Library is free software; you can redistribute it and/or
427.96 -- modify it under the terms of the GNU Lesser General Public
427.97 -- License as published by the Free Software Foundation; either
427.98 -- version 2.1 of the License, or (at your option) any later version.
427.99 --
427.100 -- The GNU C Library is distributed in the hope that it will be useful,
427.101 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
427.102 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
427.103 -- Lesser General Public License for more details.
427.104 --
427.105 -- You should have received a copy of the GNU Lesser General Public
427.106 -- License along with the GNU C Library; if not, write to the Free
427.107 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
427.108 -- 02111-1307 USA. */
427.109 --
427.110 --#ifndef _IEEE754_H
427.111 --
427.112 --#define _IEEE754_H 1
427.113 --#include <features.h>
427.114 --
427.115 --#include <endian.h>
427.116 --
427.117 --__BEGIN_DECLS
427.118 --
427.119 --union ieee754_float
427.120 -- {
427.121 -- float f;
427.122 --
427.123 -- /* This is the IEEE 754 single-precision format. */
427.124 -- struct
427.125 -- {
427.126 -- unsigned int mantissa:23;
427.127 -- unsigned int exponent:8;
427.128 -- unsigned int negative:1;
427.129 -- } ieee;
427.130 --
427.131 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
427.132 -- struct
427.133 -- {
427.134 -- unsigned int mantissa:22;
427.135 -- unsigned int quiet_nan:1;
427.136 -- unsigned int exponent:8;
427.137 -- unsigned int negative:1;
427.138 -- } ieee_nan;
427.139 -- };
427.140 --
427.141 --#define IEEE754_FLOAT_BIAS 0x7f /* Added to exponent. */
427.142 --
427.143 --
427.144 --union ieee754_double
427.145 -- {
427.146 -- double d;
427.147 --
427.148 -- /* This is the IEEE 754 double-precision format. */
427.149 -- struct
427.150 -- {
427.151 -- unsigned int mantissa0:20;
427.152 -- unsigned int exponent:11;
427.153 -- unsigned int negative:1;
427.154 -- unsigned int mantissa1:32;
427.155 -- } ieee;
427.156 --
427.157 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
427.158 -- struct
427.159 -- {
427.160 -- unsigned int mantissa0:19;
427.161 -- unsigned int quiet_nan:1;
427.162 -- unsigned int exponent:11;
427.163 -- unsigned int negative:1;
427.164 -- unsigned int mantissa1:32;
427.165 -- } ieee_nan;
427.166 -- };
427.167 --
427.168 --#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */
427.169 --
427.170 --
427.171 --/* The following two structures are correct for `new' floating point systems but
427.172 -- wrong for the old FPPC. The only solution seems to be to avoid their use on
427.173 -- old hardware. */
427.174 --
427.175 --union ieee854_long_double
427.176 -- {
427.177 -- long double d;
427.178 --
427.179 -- /* This is the IEEE 854 double-extended-precision format. */
427.180 -- struct
427.181 -- {
427.182 -- unsigned int exponent:15;
427.183 -- unsigned int empty:16;
427.184 -- unsigned int negative:1;
427.185 -- unsigned int mantissa1:32;
427.186 -- unsigned int mantissa0:32;
427.187 -- } ieee;
427.188 --
427.189 -- /* This is for NaNs in the IEEE 854 double-extended-precision format. */
427.190 -- struct
427.191 -- {
427.192 -- unsigned int exponent:15;
427.193 -- unsigned int empty:16;
427.194 -- unsigned int negative:1;
427.195 -- unsigned int mantissa1:32;
427.196 -- unsigned int mantissa0:30;
427.197 -- unsigned int quiet_nan:1;
427.198 -- unsigned int one:1;
427.199 -- } ieee_nan;
427.200 -- };
427.201 --
427.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
427.203 --
427.204 --__END_DECLS
427.205 --
427.206 --#endif /* ieee754.h */
428.1 --- a/patches/glibc/2.3.5/glibc-mips-bootstrap-gcc-header-install.patch Tue Aug 14 19:32:22 2007 +0000
428.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
428.3 @@ -1,35 +0,0 @@
428.4 -http://sourceware.org/ml/crossgcc/2005-05/msg00165.html
428.5 -Fixes a MIPS build problem (unrelated to NPTL)
428.6 -
428.7 -Message-ID: <428E8B24.1000201@realitydiluted.com>
428.8 -Date: Fri, 20 May 2005 20:13:08 -0500
428.9 -From: "Steven J dot Hill" <sjhill at realitydiluted dot com>
428.10 -To: crossgcc at sources dot redhat dot com, toolchain at gentoo dot org,
428.11 - Shay_Gal-On at pmc-sierra dot com, TheNop at gmx dot net
428.12 -Subject: New NPTL patches for crosstools and MIPS NPTL patches....
428.13 -
428.14 -Greetings.
428.15 -
428.16 -I have uploaded the latest NPTL patch for crosstool-0.34. I have also
428.17 -uploaded a tarball of the patches necessary to build a MIPS NPTL
428.18 -cross toolchain. To build a MIPS NPTL toolchain you will need the
428.19 -released version of binutils-2.16 and the absolute latest GCC and
428.20 -glibc code from the HEAD of cvs. Use the 'demo-mips-nptl.sh' script
428.21 -to build the toolchain. Please report bugs or issues to the crossgcc
428.22 -mailing list. Here is the link off of my FTP site:
428.23 -
428.24 - ftp://ftp.realitydiluted.com/crosstools/crosstool-0.34/
428.25 -
428.26 -[Note: BOOTSTRAP_GCC is set by crosstool.sh when invoking make install-headers]
428.27 -
428.28 -diff -ur glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile
428.29 ---- glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile 2003-03-29 02:15:28.000000000 -0600
428.30 -+++ glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile 2005-04-12 21:36:51.318837655 -0500
428.31 -@@ -1,3 +1,7 @@
428.32 -+ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),)
428.33 - ifeq ($(filter -mabi=32,$(CC)),)
428.34 - CC += -mabi=32
428.35 - endif
428.36 -+else
428.37 -+CC += -D"_MIPS_SZPTR=32"
428.38 -+endif
429.1 --- a/patches/glibc/2.3.5/make-install-lib-all.patch Tue Aug 14 19:32:22 2007 +0000
429.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
429.3 @@ -1,24 +0,0 @@
429.4 -From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch
429.5 -Rule to install all needed libraries, not just the ones installed by install-lib,
429.6 -yet not install programs.
429.7 -Needed because we can't use the main install target, as we can't build programs before
429.8 -we have the final gcc installed; linking fails because libeh.a is not present,
429.9 -and glibc insists on linking programs with that library.
429.10 -
429.11 -diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules
429.12 ---- glibc-2.3.4.orig/Makerules 2004-12-15 20:52:39.000000000 +0200
429.13 -+++ glibc-2.3.4/Makerules 2005-02-19 15:16:31.415125176 +0200
429.14 -@@ -844,6 +844,13 @@
429.15 - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
429.16 - $(inst_libdir)/$(patsubst %,$(libtype$o),\
429.17 - $(libprefix)$(libc-name)))
429.18 -+
429.19 -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \
429.20 -+ $(inst_slibdir)/libc-$(version).so \
429.21 -+ $(inst_libdir)/libc.so \
429.22 -+ $(inst_libdir)/libc.a \
429.23 -+ install-lib
429.24 -+
429.25 - install: $(installed-libcs)
429.26 - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
429.27 - $(make-target-directory)
430.1 --- a/patches/glibc/2.3.5/pr758.patch Tue Aug 14 19:32:22 2007 +0000
430.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
430.3 @@ -1,256 +0,0 @@
430.4 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=758
430.5 -
430.6 -Submitted By: Jim Gifford (patches at jg555 dot com)
430.7 -Date: 2005-02-23
430.8 -Initial Package Version: 2.3.4
430.9 -Origin: Richard Sandiford
430.10 -Upstream Status: Unknown
430.11 -Description: Fixes Syscall.h generation
430.12 -
430.13 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/Makefile glibc-2.3.4/sysdeps/unix/sysv/linux/mips/Makefile
430.14 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/Makefile 2004-11-24 04:38:15 +0000
430.15 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/Makefile 2005-02-23 18:21:54 +0000
430.16 -@@ -9,11 +9,73 @@
430.17 -
430.18 - no_syscall_list_h = 1
430.19 -
430.20 --# Generate the list of SYS_* macros for the system calls (__NR_* macros).
430.21 --# We generate not only SYS_<syscall>, pointing at SYS_<abi>_<syscall> if
430.22 --# it exists, but also define SYS_<abi>_<syscall> for all ABIs.
430.23 -+# A callable macro that expands to a shell command. Preprocess file $(1)
430.24 -+# using ABI option $(2) and see which macros it defines. Print FOO for each
430.25 -+# macro of the form __NR$(3)_FOO, filtering out ABI-specific __NR macros
430.26 -+# that have a prefix other than $(3).
430.27 -+mips_list_syscalls = $(filter-out -m%,$(CC)) -E -x c $(+includes) \
430.28 -+ $(sysincludes) -D_LIBC -dM -mabi=$(2) $(1) | \
430.29 -+ sed -n 's@^\#define __NR$(3)_\([^ ]*\) .*@\1@p' | \
430.30 -+ sed -e '/^[ON]32_/d' -e '/^N64_/d' -e '/^64_/d' | \
430.31 -+ LC_ALL=C sort
430.32 -+
430.33 -+# Generate a list of SYS_* macros from the linux __NR macros.
430.34 -+#
430.35 -+# Before version 2.6, linux had separate 32-bit and 64-bit MIPS ports,
430.36 -+# each with its own set of headers. The ports were merged for 2.6 and
430.37 -+# this merged port defines the syscalls in a slightly different way.
430.38 -+# There are therefore three sets of headers that we need to consider:
430.39 -+#
430.40 -+# (1) Headers from the separate 32-bit MIPS port. They just define
430.41 -+# a single list of __NR macros.
430.42 -+#
430.43 -+# (2) Headers from the separate 64-bit MIPS port. They unconditionally
430.44 -+# define syscalls for all three ABIs, with o32 syscalls prefixed
430.45 -+# by __NR_O32, n32 syscalls prefixed by __NR_N32 and n64 syscalls
430.46 -+# prefixed by plain __NR.
430.47 -+#
430.48 -+# (3) Headers from the combined port. They use the _MIPS_SIM macro to
430.49 -+# define the right set of syscalls for the current ABI. The syscalls
430.50 -+# themselves have no special ABI prefix, but the headers also define:
430.51 -+#
430.52 -+# __NR_O32_Linux{,_syscalls}
430.53 -+# __NR_N32_Linux{,_syscalls}
430.54 -+# __NR_64_Linux{,_syscalls}
430.55 -+#
430.56 -+# In case (1) we just want a simple list of SYS_* macros. In cases (2)
430.57 -+# and (3) we want a file that will work for all three ABIs, regardless
430.58 -+# of which ABI we are currently using. We also want the file to work
430.59 -+# if the user later moves from (2) to (3). Thus the file we create
430.60 -+# for (2) and (3) has the form:
430.61 -+#
430.62 -+# #if _MIPS_SIM == _MIPS_SIM_NABI32
430.63 -+# # ifdef __NR_N32_open
430.64 -+# # define SYS_n32syscall1 __NR_N32_n32syscall1
430.65 -+# # ...
430.66 -+# # else
430.67 -+# # define SYS_n32syscall1 __NR_n32syscall1
430.68 -+# # ...
430.69 -+# # endif
430.70 -+# #elif _MIPS_SIM == _MIPS_SIM_ABI64
430.71 -+# # define SYS_n64syscall1 __NR_n64syscall1
430.72 -+# # ...
430.73 -+# #else
430.74 -+# # ifdef __NR_O32_open
430.75 -+# # define SYS_o32syscall1 __NR_O32_o32syscall1
430.76 -+# # ...
430.77 -+# # else
430.78 -+# # define SYS_o32syscall1 __NR_o32syscall1
430.79 -+# # ...
430.80 -+# # endif
430.81 -+# #endif
430.82 -+#
430.83 -+# Here, __NR_N32_open and __NR_O32_open are used to detect case (2)
430.84 -+# over case (3). The n64 SYS_* macros can always use the normal
430.85 -+# ABI-less names.
430.86 - $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/syscall.h
430.87 - $(make-target-directory)
430.88 -+ $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC $< -MD -MP \
430.89 -+ -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' > /dev/null
430.90 - { \
430.91 - echo '/* Generated at libc build time from kernel syscall list. */';\
430.92 - echo ''; \
430.93 -@@ -22,28 +84,38 @@
430.94 - echo '#endif'; \
430.95 - echo ''; \
430.96 - echo '#include <sgidefs.h>'; \
430.97 -- rm -f $(@:.d=.h).newt; \
430.98 -- $(CC) -E -MD -MP -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' \
430.99 -- -x c $(+includes) $(sysincludes) $< -D_LIBC -dM | \
430.100 -- sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' \
430.101 -- > $(@:.d=.h).newt; \
430.102 -- if grep SYS_O32_ $(@:.d=.h).newt > /dev/null; then \
430.103 -+ rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
430.104 -+ $(call mips_list_syscalls,$<,n32,_N32) > $(@:.d=.h).newn32; \
430.105 -+ if test -s $(@:.d=.h).newn32; then \
430.106 -+ if grep open $(@:.d=.h).newn32 > /dev/null; then \
430.107 -+ $(call mips_list_syscalls,$<,32,_O32) > $(@:.d=.h).new32; \
430.108 -+ $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
430.109 -+ else \
430.110 -+ $(call mips_list_syscalls,$<,32,) > $(@:.d=.h).new32; \
430.111 -+ $(call mips_list_syscalls,$<,n32,) > $(@:.d=.h).newn32; \
430.112 -+ $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
430.113 -+ fi; \
430.114 - echo '#if _MIPS_SIM == _ABIN32'; \
430.115 -- sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \
430.116 -- LC_ALL=C sort; \
430.117 -+ echo '# ifdef __NR_N32_open'; \
430.118 -+ sed 's@\(.*\)@# define SYS_\1 __NR_N32_\1@' < $(@:.d=.h).newn32; \
430.119 -+ echo '# else'; \
430.120 -+ sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).newn32; \
430.121 -+ echo '# endif'; \
430.122 - echo '#elif _MIPS_SIM == _ABI64'; \
430.123 -- sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \
430.124 -- LC_ALL=C sort; \
430.125 -+ sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).new64; \
430.126 - echo '#else'; \
430.127 -- sed -n 's/^\(#define SYS_\)O32_/\1/p' < $(@:.d=.h).newt | \
430.128 -- LC_ALL=C sort; \
430.129 -+ echo '# ifdef __NR_O32_open'; \
430.130 -+ sed 's@\(.*\)@# define SYS_\1 __NR_O32_\1@' < $(@:.d=.h).new32; \
430.131 -+ echo '# else'; \
430.132 -+ sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).new32; \
430.133 -+ echo '# endif'; \
430.134 - echo '#endif'; \
430.135 -- sed -n '/^#define SYS_\([ON]32\|N64\)_/p' < $(@:.d=.h).newt | \
430.136 -- LC_ALL=C sort +1.8; \
430.137 - else \
430.138 -- cat $(@:.d=.h).newt; \
430.139 -+ $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC -dM $< | \
430.140 -+ sed -n 's@^\#define __NR_\([^ ]*\) .*@\#define SYS_\1 __NR_\1@p' | \
430.141 -+ LC_ALL=C sort; \
430.142 - fi; \
430.143 -- rm $(@:.d=.h).newt; \
430.144 -+ rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
430.145 - } > $(@:.d=.h).new
430.146 - mv -f $(@:.d=.h).new $(@:.d=.h)
430.147 - ifneq (,$(objpfx))
430.148 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure
430.149 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure 2004-11-24 04:42:45 +0000
430.150 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure 2005-02-23 18:10:11 +0000
430.151 -@@ -18,7 +18,7 @@
430.152 - { echo "$as_me:$LINENO: WARNING: *** asm/unistd.h not found, it will not be pre-processed" >&5
430.153 - echo "$as_me: WARNING: *** asm/unistd.h not found, it will not be pre-processed" >&2;}
430.154 - echo '#include <asm/unistd.h>' > asm-unistd.h
430.155 -- else
430.156 -+ elif grep __NR_N32_open "$asm_unistd_h" > /dev/null; then
430.157 - # The point of this preprocessing is to turn __NR_<syscall> into
430.158 - # __NR_N64_<syscall>, as well as to define __NR_<syscall> to
430.159 - # __NR_<abi>_<syscall>, if __NR_<abi>_<syscall> is defined
430.160 -@@ -68,6 +68,8 @@
430.161 - {
430.162 - print;
430.163 - }'
430.164 -+ else
430.165 -+ echo '#include <asm/unistd.h>' > asm-unistd.h
430.166 - fi ;;
430.167 - mips*)
430.168 - rm -f asm-unistd.h
430.169 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure.in glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure.in
430.170 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure.in 2004-11-24 04:38:31 +0000
430.171 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure.in 2005-02-23 18:10:11 +0000
430.172 -@@ -18,7 +18,7 @@
430.173 - if test ! -f "$asm_unistd_h"; then
430.174 - AC_MSG_WARN([*** asm/unistd.h not found, it will not be pre-processed])
430.175 - echo '#include <asm/unistd.h>' > asm-unistd.h
430.176 -- else
430.177 -+ elif grep __NR_N32_open "$asm_unistd_h" > /dev/null; then
430.178 - # The point of this preprocessing is to turn __NR_<syscall> into
430.179 - # __NR_N64_<syscall>, as well as to define __NR_<syscall> to
430.180 - # __NR_<abi>_<syscall>, if __NR_<abi>_<syscall> is defined
430.181 -@@ -68,6 +68,8 @@
430.182 - {
430.183 - print;
430.184 - }'
430.185 -+ else
430.186 -+ echo '#include <asm/unistd.h>' > asm-unistd.h
430.187 - fi ;;
430.188 - mips*)
430.189 - rm -f asm-unistd.h
430.190 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h
430.191 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h 2003-03-29 08:15:29 +0000
430.192 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h 2005-02-23 18:10:11 +0000
430.193 -@@ -1,36 +0,0 @@
430.194 --/* Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
430.195 -- This file is part of the GNU C Library.
430.196 --
430.197 -- The GNU C Library is free software; you can redistribute it and/or
430.198 -- modify it under the terms of the GNU Lesser General Public
430.199 -- License as published by the Free Software Foundation; either
430.200 -- version 2.1 of the License, or (at your option) any later version.
430.201 --
430.202 -- The GNU C Library is distributed in the hope that it will be useful,
430.203 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
430.204 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
430.205 -- Lesser General Public License for more details.
430.206 --
430.207 -- You should have received a copy of the GNU Lesser General Public
430.208 -- License along with the GNU C Library; if not, write to the Free
430.209 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
430.210 -- 02111-1307 USA. */
430.211 --
430.212 --#ifndef _LINUX_MIPS_MIPS32_KERN64_SYSDEP_H
430.213 --#define _LINUX_MIPS_MIPS32_KERN64_SYSDEP_H 1
430.214 --
430.215 --/* There is some commonality. */
430.216 --#include <sysdeps/unix/sysv/linux/mips/mips32/sysdep.h>
430.217 --
430.218 --/* For Linux we can use the system call table in the header file
430.219 -- /usr/include/asm/unistd.h
430.220 -- of the kernel. But these symbols do not follow the SYS_* syntax
430.221 -- so we have to redefine the `SYS_ify' macro here. */
430.222 --#undef SYS_ify
430.223 --#ifdef __STDC__
430.224 --# define SYS_ify(syscall_name) __NR_O32_##syscall_name
430.225 --#else
430.226 --# define SYS_ify(syscall_name) __NR_O32_/**/syscall_name
430.227 --#endif
430.228 --
430.229 --#endif /* linux/mips/mips32/kern64/sysdep.h */
430.230 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
430.231 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h 2004-10-18 05:16:07 +0000
430.232 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h 2005-02-23 18:10:11 +0000
430.233 -@@ -28,9 +28,9 @@
430.234 - so we have to redefine the `SYS_ify' macro here. */
430.235 - #undef SYS_ify
430.236 - #ifdef __STDC__
430.237 --# define SYS_ify(syscall_name) __NR_N32_##syscall_name
430.238 -+# define SYS_ify(syscall_name) __NR_##syscall_name
430.239 - #else
430.240 --# define SYS_ify(syscall_name) __NR_N32_/**/syscall_name
430.241 -+# define SYS_ify(syscall_name) __NR_/**/syscall_name
430.242 - #endif
430.243 -
430.244 - #ifdef __ASSEMBLER__
430.245 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
430.246 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h 2004-10-18 05:16:08 +0000
430.247 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h 2005-02-23 18:10:11 +0000
430.248 -@@ -28,9 +28,9 @@
430.249 - so we have to redefine the `SYS_ify' macro here. */
430.250 - #undef SYS_ify
430.251 - #ifdef __STDC__
430.252 --# define SYS_ify(syscall_name) __NR_N64_##syscall_name
430.253 -+# define SYS_ify(syscall_name) __NR_##syscall_name
430.254 - #else
430.255 --# define SYS_ify(syscall_name) __NR_N64_/**/syscall_name
430.256 -+# define SYS_ify(syscall_name) __NR_/**/syscall_name
430.257 - #endif
430.258 -
430.259 - #ifdef __ASSEMBLER__
431.1 --- a/patches/glibc/20040827/arm-ctl_bus_isa.patch Tue Aug 14 19:32:22 2007 +0000
431.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
431.3 @@ -1,51 +0,0 @@
431.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
431.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
431.6 -Fixes following error:
431.7 -
431.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
431.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
431.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
431.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
431.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
431.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
431.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
431.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
431.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
431.17 -
431.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
431.19 -
431.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
431.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
431.22 -@@ -47,6 +47,12 @@
431.23 - #include <asm/page.h>
431.24 - #include <sys/sysctl.h>
431.25 -
431.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
431.27 -+#include <linux/version.h>
431.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
431.29 -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
431.30 -+#endif
431.31 -+
431.32 - #define PATH_ARM_SYSTYPE "/etc/arm_systype"
431.33 - #define PATH_CPUINFO "/proc/cpuinfo"
431.34 -
431.35 -@@ -80,7 +86,7 @@
431.36 - * Initialize I/O system. There are several ways to get the information
431.37 - * we need. Each is tried in turn until one succeeds.
431.38 - *
431.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
431.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
431.41 - * but not all kernels support it.
431.42 - *
431.43 - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
431.44 -@@ -100,8 +106,8 @@
431.45 - {
431.46 - char systype[256];
431.47 - int i, n;
431.48 -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
431.49 -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
431.50 -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
431.51 -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
431.52 - size_t len = sizeof(io.base);
431.53 -
431.54 - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
432.1 --- a/patches/glibc/20040827/glibc-2.3.2-sparc64-dl-machine.patch Tue Aug 14 19:32:22 2007 +0000
432.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
432.3 @@ -1,29 +0,0 @@
432.4 -See http://gcc.gnu.org/PR15345
432.5 -
432.6 -Quick kludge by H.J.Lu
432.7 -Works around gcc-3.4.0 error which shows up when building glibc-2.3.2 for sparc64:
432.8 -
432.9 -.../sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc.a(dl-reloc.o)(.text+0x4b4): In function `elf_machine_load_address.3':
432.10 -: undefined reference to `_DYNAMIC'
432.11 -collect2: ld returned 1 exit status
432.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/sln] Error 1
432.13 -
432.14 -
432.15 ---- glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h.orig Sat May 8 20:54:26 2004
432.16 -+++ glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h Sat May 8 17:18:04 2004
432.17 -@@ -65,6 +65,7 @@
432.18 - }
432.19 -
432.20 - /* Return the run-time load address of the shared object. */
432.21 -+#ifdef IS_IN_rtld
432.22 - static inline Elf64_Addr
432.23 - elf_machine_load_address (void)
432.24 - {
432.25 -@@ -84,6 +85,7 @@
432.26 - pc[3]*4 is l_addr + _GLOBAL_OFFSET_TABLE_ - (long)pc - 12 */
432.27 - return (Elf64_Addr) got - *got + (Elf32_Sword) ((pc[2] - pc[3]) * 4) - 4;
432.28 - }
432.29 -+#endif
432.30 -
432.31 - /* We have 4 cases to handle. And we code different code sequences
432.32 - for each one. I love V9 code models... */
433.1 --- a/patches/glibc/20040827/glibc-2.3.3-cygwin.patch Tue Aug 14 19:32:22 2007 +0000
433.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
433.3 @@ -1,103 +0,0 @@
433.4 -Fixes
433.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
433.6 -...
433.7 -when building glibc-2.3.3 on cygwin
433.8 -
433.9 -Idea from
433.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
433.11 -Basically, make glibc use .oST as suffix for 'object static'
433.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
433.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
433.14 -
433.15 -glibc-linuxthreads-2.3.3 also requires a patch, see
433.16 -../glibc-linuxthreads-2.3.3/glibc-linuxthreads-2.3.3-cygwin.patch
433.17 -
433.18 -[ Rediffed against glibc-2.3.3 ]
433.19 -
433.20 -
433.21 -diff -aur glibc-2.3.3/Makeconfig glibc-2.3.3-cygwin/Makeconfig
433.22 ---- glibc-2.3.3/Makeconfig 2003-09-17 01:36:10.000000000 -0700
433.23 -+++ glibc-2.3.3-cygwin/Makeconfig 2004-08-27 20:34:43.000000000 -0700
433.24 -@@ -439,13 +439,13 @@
433.25 - # run the linked programs.
433.26 - link-libc = -Wl,-rpath-link=$(rpath-link) \
433.27 - $(common-objpfx)libc.so$(libc.so-version) \
433.28 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
433.29 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
433.30 - # This is how to find at build-time things that will be installed there.
433.31 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
433.32 - else
433.33 - ifneq (,$(filter aix aix%,$(config-os)))
433.34 - link-libc = $(common-objpfx)libc.a \
433.35 -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
433.36 -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
433.37 - rpath-dirs = math dlfcn nss nis rt resolv crypt
433.38 - endif
433.39 - endif
433.40 -@@ -658,7 +658,7 @@
433.41 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
433.42 - # to pass different flags for each flavor.
433.43 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
433.44 --all-object-suffixes := .o .os .op .og .ob .oS
433.45 -+all-object-suffixes := .o .os .op .og .ob .oST
433.46 - object-suffixes :=
433.47 - CPPFLAGS-.o = $(pic-default)
433.48 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
433.49 -@@ -714,14 +714,14 @@
433.50 -
433.51 - ifeq (yes,$(build-shared))
433.52 - # Build special library that contains the static-only routines for libc.
433.53 --object-suffixes-for-libc += .oS
433.54 -+object-suffixes-for-libc += .oST
433.55 -
433.56 - # Must build the routines as PIC, though, because they can end up in (users')
433.57 - # shared objects. We don't want to use CFLAGS-os because users may, for
433.58 - # example, make that processor-specific.
433.59 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
433.60 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
433.61 --libtype.oS = lib%_nonshared.a
433.62 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
433.63 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
433.64 -+libtype.oST = lib%_nonshared.a
433.65 - endif
433.66 -
433.67 - # The assembler can generate debug information too.
433.68 -diff -aur glibc-2.3.3/Makerules glibc-2.3.3-cygwin/Makerules
433.69 ---- glibc-2.3.3/Makerules 2003-10-31 16:35:57.000000000 -0800
433.70 -+++ glibc-2.3.3-cygwin/Makerules 2004-08-27 20:33:47.000000000 -0700
433.71 -@@ -414,7 +414,7 @@
433.72 - # Bounded pointer thunks are only built for *.ob
433.73 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
433.74 -
433.75 --elide-routines.oS += $(filter-out $(static-only-routines),\
433.76 -+elide-routines.oST += $(filter-out $(static-only-routines),\
433.77 - $(routines) $(aux) $(sysdep_routines)) \
433.78 - $(elide-bp-thunks)
433.79 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
433.80 -@@ -934,7 +934,7 @@
433.81 - install: $(inst_libdir)/libc.so
433.82 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
433.83 - $(common-objpfx)libc.so$(libc.so-version) \
433.84 -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
433.85 -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
433.86 - $(libprefix)$(libc-name)) \
433.87 - $(+force)
433.88 - (echo '/* GNU ld script';\
433.89 -@@ -942,7 +942,7 @@
433.90 - echo ' the static library, so try that secondarily. */';\
433.91 - cat $<; \
433.92 - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
433.93 -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
433.94 -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
433.95 - ')' \
433.96 - ) > $@.new
433.97 - mv -f $@.new $@
433.98 -diff -aur glibc-2.3.3/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.3-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
433.99 ---- glibc-2.3.3/sysdeps/sparc/sparc32/sparcv9/Makefile 2002-08-29 03:41:15.000000000 -0700
433.100 -+++ glibc-2.3.3-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile 2004-08-27 20:35:43.000000000 -0700
433.101 -@@ -10,4 +10,4 @@
433.102 - ASFLAGS-.op += -Wa,-Av9a
433.103 - ASFLAGS-.og += -Wa,-Av9a
433.104 - ASFLAGS-.ob += -Wa,-Av9a
433.105 --ASFLAGS-.oS += -Wa,-Av9a
433.106 -+ASFLAGS-.oST += -Wa,-Av9a
434.1 --- a/patches/glibc/20040827/glibc-2.3.3-libeh-kludge.patch Tue Aug 14 19:32:22 2007 +0000
434.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
434.3 @@ -1,26 +0,0 @@
434.4 -wget "http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2003-09&msgid=20030911190500.GE12344%40sunsite.ms.mff.cuni.cz"
434.5 -aka http://sources.redhat.com/ml/libc-alpha/2003-09/msg00104.html
434.6 -
434.7 -This seems to fix the error
434.8 - gcc-3.4.1-glibc-2.3.3/lib/gcc/powerpc-7400-linux-gnu/3.4.1/../../../../powerpc-7400-linux-gnu/bin/ld: cannot find -lgcc_eh
434.9 - make[1]: *** [build/powerpc-7400-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/libc.so] Error 1
434.10 -but I assume it will cause trouble with nptl, since it's so violent
434.11 -
434.12 -FIXME: once we figure out why this patch is wrong, fix it right :-)
434.13 -
434.14 -Rediffed against glibc-20040822
434.15 -
434.16 -
434.17 ---- glibc-20040822/Makeconfig.orig 2004-08-04 20:34:28.000000000 -0700
434.18 -+++ glibc-20040822/Makeconfig 2004-08-24 07:36:49.000000000 -0700
434.19 -@@ -527,8 +527,8 @@
434.20 - libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) -Wl,--no-as-needed
434.21 - endif
434.22 - ifneq ($(have-cc-with-libunwind),yes)
434.23 -- gnulib := -lgcc $(libgcc_eh)
434.24 -- static-gnulib := -lgcc -lgcc_eh
434.25 -+ gnulib := -lgcc
434.26 -+ static-gnulib := -lgcc
434.27 - else
434.28 - gnulib := -lgcc $(libgcc_eh) -lunwind
434.29 - static-gnulib := -lgcc -lgcc_eh -lunwind
435.1 --- a/patches/glibc/20040827/glibc-configure-apple-as.patch Tue Aug 14 19:32:22 2007 +0000
435.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
435.3 @@ -1,23 +0,0 @@
435.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
435.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
435.6 -
435.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
435.8 -where the assembler but doesn't understand the --version flag.
435.9 -
435.10 -Fixes the symptom
435.11 -checking whether ld is GNU ld... no
435.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
435.13 -checking version of /usr/libexec/gcc/darwin/ppc/as...
435.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
435.15 -
435.16 ---- glibc-2.3.2/configure~ Wed Feb 26 09:20:48 2003
435.17 -+++ glibc-2.3.2/configure Fri Feb 27 13:12:53 2004
435.18 -@@ -3789,7 +3789,7 @@
435.19 - # Found it, now check the version.
435.20 - echo "$as_me:$LINENO: checking version of $AS" >&5
435.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
435.22 -- ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
435.23 -+ ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
435.24 - case $ac_prog_version in
435.25 - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
435.26 - 2.1[3-9]*)
436.1 --- a/patches/glibc/20040827/glibc-fp-byteorder.patch Tue Aug 14 19:32:22 2007 +0000
436.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
436.3 @@ -1,203 +0,0 @@
436.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
436.5 -Author: addsub@eyou.com
436.6 -Target: ARM
436.7 -
436.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
436.9 -and makes printf("%f", 1.0) work.
436.10 -
436.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
436.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
436.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
436.14 - It's definitely needed for hardfloat. So I'd think it's needed for
436.15 - big-endian systems in any case, and for VFP on little-endian systems
436.16 - too. Someone would have to verify that though.
436.17 -
436.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
436.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
436.20 - for this version. glibc-20040830 out-of-the-box still contains the
436.21 - following wrong assumptions:
436.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
436.23 - not on vfp systems)
436.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
436.25 - are not on big endian systems, neither on vfp systems)
436.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
436.27 - (which they are not on big endian systems)
436.28 - [This patch] seems the right solution for all of these issues.
436.29 -
436.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
436.31 - It's even needed for glibc CVS, AFAICS.
436.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
436.33 - (currently at version 1.4) is only needed for proper VFP operation.
436.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
436.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
436.36 - for proper operation of *any* FP model on big endian ARM.
436.37 -
436.38 -See also discussion in followups to
436.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
436.40 -
436.41 -Message-ID: <276985760.37584@eyou.com>
436.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
436.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
436.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
436.45 -Date: 17 Feb 2004 10:42:38 +0800
436.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
436.47 -From: "add" <addsub@eyou.com>
436.48 -To: dank@kegel.com
436.49 -Reply-To: "add" <addsub@eyou.com>
436.50 -Subject: Re: problem while building arm vfp softfloat gcc `
436.51 -
436.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
436.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
436.54 -
436.55 -
436.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
436.57 ---- glibc.old/sysdeps/arm/bits/endian.h 1999-04-12 11:59:13.000000000 -0400
436.58 -+++ glibc.new/sysdeps/arm/bits/endian.h 2004-02-12 09:15:13.000000000 -0500
436.59 -@@ -9,4 +9,9 @@
436.60 - #else
436.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
436.62 - #endif
436.63 -+
436.64 -+#ifdef __VFP_FP__
436.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
436.66 -+#else
436.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
436.68 -+#endif
436.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
436.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h 2001-07-07 15:21:19.000000000 -0400
436.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h 2004-02-12 09:15:13.000000000 -0500
436.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
436.73 - #define BITS_PER_SHORTINT 16
436.74 - #define BITS_PER_CHAR 8
436.75 -
436.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
436.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
436.78 -+#if defined(__ARMEB__)
436.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
436.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
436.81 -+#elif defined(__VFP_FP__)
436.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
436.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
436.84 -+#else
436.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
436.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
436.87 -+#endif
436.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
436.89 ---- glibc.old/sysdeps/arm/ieee754.h 2001-07-07 15:21:19.000000000 -0400
436.90 -+++ glibc.new/sysdeps/arm/ieee754.h 1969-12-31 19:00:00.000000000 -0500
436.91 -@@ -1,115 +0,0 @@
436.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
436.93 -- This file is part of the GNU C Library.
436.94 --
436.95 -- The GNU C Library is free software; you can redistribute it and/or
436.96 -- modify it under the terms of the GNU Lesser General Public
436.97 -- License as published by the Free Software Foundation; either
436.98 -- version 2.1 of the License, or (at your option) any later version.
436.99 --
436.100 -- The GNU C Library is distributed in the hope that it will be useful,
436.101 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
436.102 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
436.103 -- Lesser General Public License for more details.
436.104 --
436.105 -- You should have received a copy of the GNU Lesser General Public
436.106 -- License along with the GNU C Library; if not, write to the Free
436.107 -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
436.108 -- 02111-1307 USA. */
436.109 --
436.110 --#ifndef _IEEE754_H
436.111 --
436.112 --#define _IEEE754_H 1
436.113 --#include <features.h>
436.114 --
436.115 --#include <endian.h>
436.116 --
436.117 --__BEGIN_DECLS
436.118 --
436.119 --union ieee754_float
436.120 -- {
436.121 -- float f;
436.122 --
436.123 -- /* This is the IEEE 754 single-precision format. */
436.124 -- struct
436.125 -- {
436.126 -- unsigned int mantissa:23;
436.127 -- unsigned int exponent:8;
436.128 -- unsigned int negative:1;
436.129 -- } ieee;
436.130 --
436.131 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
436.132 -- struct
436.133 -- {
436.134 -- unsigned int mantissa:22;
436.135 -- unsigned int quiet_nan:1;
436.136 -- unsigned int exponent:8;
436.137 -- unsigned int negative:1;
436.138 -- } ieee_nan;
436.139 -- };
436.140 --
436.141 --#define IEEE754_FLOAT_BIAS 0x7f /* Added to exponent. */
436.142 --
436.143 --
436.144 --union ieee754_double
436.145 -- {
436.146 -- double d;
436.147 --
436.148 -- /* This is the IEEE 754 double-precision format. */
436.149 -- struct
436.150 -- {
436.151 -- unsigned int mantissa0:20;
436.152 -- unsigned int exponent:11;
436.153 -- unsigned int negative:1;
436.154 -- unsigned int mantissa1:32;
436.155 -- } ieee;
436.156 --
436.157 -- /* This format makes it easier to see if a NaN is a signalling NaN. */
436.158 -- struct
436.159 -- {
436.160 -- unsigned int mantissa0:19;
436.161 -- unsigned int quiet_nan:1;
436.162 -- unsigned int exponent:11;
436.163 -- unsigned int negative:1;
436.164 -- unsigned int mantissa1:32;
436.165 -- } ieee_nan;
436.166 -- };
436.167 --
436.168 --#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */
436.169 --
436.170 --
436.171 --/* The following two structures are correct for `new' floating point systems but
436.172 -- wrong for the old FPPC. The only solution seems to be to avoid their use on
436.173 -- old hardware. */
436.174 --
436.175 --union ieee854_long_double
436.176 -- {
436.177 -- long double d;
436.178 --
436.179 -- /* This is the IEEE 854 double-extended-precision format. */
436.180 -- struct
436.181 -- {
436.182 -- unsigned int exponent:15;
436.183 -- unsigned int empty:16;
436.184 -- unsigned int negative:1;
436.185 -- unsigned int mantissa1:32;
436.186 -- unsigned int mantissa0:32;
436.187 -- } ieee;
436.188 --
436.189 -- /* This is for NaNs in the IEEE 854 double-extended-precision format. */
436.190 -- struct
436.191 -- {
436.192 -- unsigned int exponent:15;
436.193 -- unsigned int empty:16;
436.194 -- unsigned int negative:1;
436.195 -- unsigned int mantissa1:32;
436.196 -- unsigned int mantissa0:30;
436.197 -- unsigned int quiet_nan:1;
436.198 -- unsigned int one:1;
436.199 -- } ieee_nan;
436.200 -- };
436.201 --
436.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
436.203 --
436.204 --__END_DECLS
436.205 --
436.206 --#endif /* ieee754.h */
437.1 --- a/patches/glibc/20050502/make-install-lib-all.patch Tue Aug 14 19:32:22 2007 +0000
437.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
437.3 @@ -1,24 +0,0 @@
437.4 -From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch
437.5 -Rule to install all needed libraries, not just the ones installed by install-lib,
437.6 -yet not install programs.
437.7 -Needed because we can't use the main install target, as we can't build programs before
437.8 -we have the final gcc installed; linking fails because libeh.a is not present,
437.9 -and glibc insists on linking programs with that library.
437.10 -
437.11 -diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules
437.12 ---- glibc-2.3.4.orig/Makerules 2004-12-15 20:52:39.000000000 +0200
437.13 -+++ glibc-2.3.4/Makerules 2005-02-19 15:16:31.415125176 +0200
437.14 -@@ -844,6 +844,13 @@
437.15 - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
437.16 - $(inst_libdir)/$(patsubst %,$(libtype$o),\
437.17 - $(libprefix)$(libc-name)))
437.18 -+
437.19 -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \
437.20 -+ $(inst_slibdir)/libc-$(version).so \
437.21 -+ $(inst_libdir)/libc.so \
437.22 -+ $(inst_libdir)/libc.a \
437.23 -+ install-lib
437.24 -+
437.25 - install: $(installed-libcs)
437.26 - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
437.27 - $(make-target-directory)
438.1 --- a/patches/glibc/compat-2.1/rh62-09-glibc-compat-2.1.3-security2.patch Tue Aug 14 19:32:22 2007 +0000
438.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
438.3 @@ -1,66 +0,0 @@
438.4 -2002-07-05 Tomohiro Kato <tomop@teamgedoh.net>
438.5 -
438.6 - * glibc-compat/nss_dns/dns-network.c (getanswer_r): Reduce
438.7 - linebuflen in parallel to bumping up the buffer pointer.
438.8 - * glibc-compat/nss_dns/dns-host.c (getanswer_r): Likewise.
438.9 - Compare n with linebuflen instead of buflen.
438.10 -
438.11 -2002-07-02 Andreas Schwab <schwab@suse.de>
438.12 -
438.13 - * resolv/nss_dns/dns-network.c (getanswer_r): Reduce linebuflen
438.14 - in parallel to bumping up the buffer pointer.
438.15 -
438.16 ---- libc/glibc-compat/nss_dns/dns-network.c.jj Wed Jan 10 11:58:20 2001
438.17 -+++ libc/glibc-compat/nss_dns/dns-network.c Tue Jul 9 10:31:15 2002
438.18 -@@ -283,7 +283,9 @@ getanswer_r (const querybuf *answer, int
438.19 - }
438.20 - cp += n;
438.21 - *alias_pointer++ = bp;
438.22 -- bp += strlen (bp) + 1;
438.23 -+ n = strlen (bp) + 1;
438.24 -+ bp += n;
438.25 -+ linebuflen -= n;
438.26 - result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
438.27 - ++have_answer;
438.28 - }
438.29 ---- libc/glibc-compat/nss_dns/dns-host.c.jj Wed Jan 10 11:58:20 2001
438.30 -+++ libc/glibc-compat/nss_dns/dns-host.c Tue Jul 9 10:36:41 2002
438.31 -@@ -424,7 +424,7 @@ getanswer_r (const querybuf *answer, int
438.32 - linebuflen -= n;
438.33 - /* Get canonical name. */
438.34 - n = strlen (tbuf) + 1; /* For the \0. */
438.35 -- if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
438.36 -+ if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
438.37 - {
438.38 - ++had_error;
438.39 - continue;
438.40 -@@ -447,7 +447,7 @@ getanswer_r (const querybuf *answer, int
438.41 - cp += n;
438.42 - /* Get canonical name. */
438.43 - n = strlen (tbuf) + 1; /* For the \0. */
438.44 -- if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
438.45 -+ if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
438.46 - {
438.47 - ++had_error;
438.48 - continue;
438.49 -@@ -542,6 +542,7 @@ getanswer_r (const querybuf *answer, int
438.50 - linebuflen -= nn;
438.51 - }
438.52 -
438.53 -+ linebuflen -= sizeof (align) - ((u_long) bp % sizeof (align));
438.54 - bp += sizeof (align) - ((u_long) bp % sizeof (align));
438.55 -
438.56 - if (n >= linebuflen)
438.57 -#--- libc/resolv/nss_dns/dns-network.c.jj Mon Jul 9 14:59:24 2001
438.58 -#+++ libc/resolv/nss_dns/dns-network.c Tue Jul 9 10:30:31 2002
438.59 -#@@ -328,7 +328,9 @@ getanswer_r (const querybuf *answer, int
438.60 -# }
438.61 -# cp += n;
438.62 -# *alias_pointer++ = bp;
438.63 -#- bp += strlen (bp) + 1;
438.64 -#+ n = strlen (bp) + 1;
438.65 -#+ bp += n;
438.66 -#+ linebuflen -= n;
438.67 -# result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
438.68 -# ++have_answer;
438.69 -# }
439.1 --- a/patches/glibc/compat-2.1/rh62-12-glibc-compat-2.1.3-maxpacket.patch Tue Aug 14 19:32:22 2007 +0000
439.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
439.3 @@ -1,512 +0,0 @@
439.4 -#--- libc/resolv/nss_dns/dns-host.c.jj Tue Sep 14 03:05:08 1999
439.5 -#+++ libc/resolv/nss_dns/dns-host.c Thu Oct 10 13:07:33 2002
439.6 -#@@ -129,9 +129,10 @@ _nss_dns_gethostbyname2_r (const char *n
439.7 -# char *buffer, size_t buflen, int *errnop,
439.8 -# int *h_errnop)
439.9 -# {
439.10 -#- querybuf host_buffer;
439.11 -#+ querybuf *host_buffer;
439.12 -# int size, type, n;
439.13 -# const char *cp;
439.14 -#+ enum nss_status status;
439.15 -#
439.16 -# switch (af) {
439.17 -# case AF_INET:
439.18 -#@@ -159,16 +160,25 @@ _nss_dns_gethostbyname2_r (const char *n
439.19 -# if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
439.20 -# name = cp;
439.21 -#
439.22 -#- n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
439.23 -#+ host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
439.24 -#+ if (host_buffer == NULL) {
439.25 -#+ *errnop = ENOMEM;
439.26 -#+ return NSS_STATUS_UNAVAIL;
439.27 -#+ }
439.28 -#+
439.29 -#+ n = res_search (name, C_IN, type, host_buffer->buf, sizeof (host_buffer->buf));
439.30 -# if (n < 0)
439.31 -# {
439.32 -# *h_errnop = h_errno;
439.33 -# *errnop = *h_errnop == TRY_AGAIN ? EAGAIN : ENOENT;
439.34 -#+ free (host_buffer);
439.35 -# return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.36 -# }
439.37 -#
439.38 -#- return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
439.39 -#- errnop, h_errnop);
439.40 -#+ status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
439.41 -#+ errnop, h_errnop);
439.42 -#+ free (host_buffer);
439.43 -#+ return status;
439.44 -# }
439.45 -#
439.46 -#
439.47 -#@@ -205,7 +215,7 @@ _nss_dns_gethostbyaddr_r (const char *ad
439.48 -# char *h_addr_ptrs[MAX_NR_ADDRS + 1];
439.49 -# char linebuffer[0];
439.50 -# } *host_data = (struct host_data *) buffer;
439.51 -#- querybuf host_buffer;
439.52 -#+ querybuf *host_buffer;
439.53 -# char qbuf[MAXDNAME+1], *qp;
439.54 -# size_t size;
439.55 -# int n, status;
439.56 -#@@ -257,17 +267,25 @@ _nss_dns_gethostbyaddr_r (const char *ad
439.57 -# /* Cannot happen. */
439.58 -# }
439.59 -#
439.60 -#- n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
439.61 -#- sizeof host_buffer);
439.62 -#+ host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
439.63 -#+ if (host_buffer == NULL) {
439.64 -#+ *errnop = ENOMEM;
439.65 -#+ return NSS_STATUS_UNAVAIL;
439.66 -#+ }
439.67 -#+
439.68 -#+ n = res_query (qbuf, C_IN, T_PTR, host_buffer->buf,
439.69 -#+ sizeof (host_buffer->buf));
439.70 -# if (n < 0)
439.71 -# {
439.72 -# *h_errnop = h_errno;
439.73 -# *errnop = errno;
439.74 -#+ free (host_buffer);
439.75 -# return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.76 -# }
439.77 -#
439.78 -#- status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
439.79 -#+ status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
439.80 -# errnop, h_errnop);
439.81 -#+ free (host_buffer);
439.82 -# if (status != NSS_STATUS_SUCCESS)
439.83 -# {
439.84 -# *h_errnop = h_errno;
439.85 -#--- libc/resolv/nss_dns/dns-network.c.jj Wed Jun 30 12:01:14 1999
439.86 -#+++ libc/resolv/nss_dns/dns-network.c Thu Oct 10 13:09:49 2002
439.87 -#@@ -113,24 +113,36 @@ _nss_dns_getnetbyname_r (const char *nam
439.88 -# char *buffer, size_t buflen, int *errnop)
439.89 -# {
439.90 -# /* Return entry for network with NAME. */
439.91 -#- querybuf net_buffer;
439.92 -#+ querybuf *net_buffer;
439.93 -# int anslen;
439.94 -# char *qbuf;
439.95 -#+ enum nss_status status;
439.96 -#
439.97 -# qbuf = strdupa (name);
439.98 -#- anslen = res_search (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
439.99 -#- sizeof (querybuf));
439.100 -#+
439.101 -#+ net_buffer = (querybuf *) malloc (sizeof (*net_buffer));
439.102 -#+ if (net_buffer == NULL)
439.103 -#+ {
439.104 -#+ *errnop = ENOMEM;
439.105 -#+ return NSS_STATUS_UNAVAIL;
439.106 -#+ }
439.107 -#+
439.108 -#+ anslen = res_search (qbuf, C_IN, T_PTR, net_buffer->buf,
439.109 -#+ sizeof (net_buffer->buf));
439.110 -# if (anslen < 0)
439.111 -# {
439.112 -# /* Nothing found. */
439.113 -# *errnop = errno;
439.114 -#+ free (net_buffer);
439.115 -# return (errno == ECONNREFUSED
439.116 -# || errno == EPFNOSUPPORT
439.117 -# || errno == EAFNOSUPPORT)
439.118 -# ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.119 -# }
439.120 -#
439.121 -#- return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
439.122 -#+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
439.123 -#+ free (net_buffer);
439.124 -#+ return status;
439.125 -# }
439.126 -#
439.127 -#
439.128 -#@@ -140,7 +152,7 @@ _nss_dns_getnetbyaddr_r (long net, int t
439.129 -# {
439.130 -# /* Return entry for network with NAME. */
439.131 -# enum nss_status status;
439.132 -#- querybuf net_buffer;
439.133 -#+ querybuf *net_buffer;
439.134 -# unsigned int net_bytes[4];
439.135 -# char qbuf[MAXDNAME];
439.136 -# int cnt, anslen;
439.137 -#@@ -176,19 +188,28 @@ _nss_dns_getnetbyaddr_r (long net, int t
439.138 -# break;
439.139 -# }
439.140 -#
439.141 -#- anslen = res_query (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
439.142 -#- sizeof (querybuf));
439.143 -#+ net_buffer = (querybuf *) malloc (sizeof (*net_buffer));
439.144 -#+ if (net_buffer == NULL)
439.145 -#+ {
439.146 -#+ *errnop = ENOMEM;
439.147 -#+ return NSS_STATUS_UNAVAIL;
439.148 -#+ }
439.149 -#+
439.150 -#+ anslen = res_query (qbuf, C_IN, T_PTR, net_buffer->buf,
439.151 -#+ sizeof (net_buffer->buf));
439.152 -# if (anslen < 0)
439.153 -# {
439.154 -# /* Nothing found. */
439.155 -# *errnop = errno;
439.156 -#+ free (net_buffer);
439.157 -# return (errno == ECONNREFUSED
439.158 -# || errno == EPFNOSUPPORT
439.159 -# || errno == EAFNOSUPPORT)
439.160 -# ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.161 -# }
439.162 -#
439.163 -#- status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
439.164 -#+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
439.165 -#+ free (net_buffer);
439.166 -# if (status == NSS_STATUS_SUCCESS)
439.167 -# {
439.168 -# /* Strip trailing zeros. */
439.169 -#--- libc/resolv/res_query.c.jj Wed Jun 30 12:01:06 1999
439.170 -#+++ libc/resolv/res_query.c Thu Oct 10 13:01:12 2002
439.171 -#@@ -106,7 +106,7 @@ res_query(name, class, type, answer, ans
439.172 -# u_char *answer; /* buffer to put answer */
439.173 -# int anslen; /* size of answer buffer */
439.174 -# {
439.175 -#- u_char buf[MAXPACKET];
439.176 -#+ u_char *buf;
439.177 -# register HEADER *hp = (HEADER *) answer;
439.178 -# int n;
439.179 -#
439.180 -#@@ -121,17 +121,25 @@ res_query(name, class, type, answer, ans
439.181 -# printf(";; res_query(%s, %d, %d)\n", name, class, type);
439.182 -# #endif
439.183 -#
439.184 -#+ buf = malloc (MAXPACKET);
439.185 -#+ if (buf == NULL) {
439.186 -#+ __set_h_errno (NETDB_INTERNAL);
439.187 -#+ return -1;
439.188 -#+ }
439.189 -#+
439.190 -# n = res_mkquery(QUERY, name, class, type, NULL, 0, NULL,
439.191 -#- buf, sizeof(buf));
439.192 -#+ buf, MAXPACKET);
439.193 -# if (n <= 0) {
439.194 -# #ifdef DEBUG
439.195 -# if (_res.options & RES_DEBUG)
439.196 -# printf(";; res_query: mkquery failed\n");
439.197 -# #endif
439.198 -# __set_h_errno (NO_RECOVERY);
439.199 -#+ free (buf);
439.200 -# return (n);
439.201 -# }
439.202 -# n = res_send(buf, n, answer, anslen);
439.203 -#+ free (buf);
439.204 -# if (n < 0) {
439.205 -# #ifdef DEBUG
439.206 -# if (_res.options & RES_DEBUG)
439.207 -#--- libc/resolv/gethnamaddr.c.jj Tue Dec 7 11:50:36 1999
439.208 -#+++ libc/resolv/gethnamaddr.c Thu Oct 10 15:05:50 2002
439.209 -#@@ -512,10 +512,11 @@ gethostbyname2(name, af)
439.210 -# const char *name;
439.211 -# int af;
439.212 -# {
439.213 -#- querybuf buf;
439.214 -#+ querybuf *buf;
439.215 -# register const char *cp;
439.216 -# char *bp;
439.217 -# int n, size, type, len;
439.218 -#+ struct hostent *ret;
439.219 -# extern struct hostent *_gethtbyname2();
439.220 -#
439.221 -# if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
439.222 -#@@ -617,13 +618,22 @@ gethostbyname2(name, af)
439.223 -# break;
439.224 -# }
439.225 -#
439.226 -#- if ((n = res_search(name, C_IN, type, buf.buf, sizeof(buf.buf))) < 0) {
439.227 -#+ buf = (querybuf *) malloc (sizeof (*buf));
439.228 -#+ if (buf == NULL) {
439.229 -#+ __set_h_errno (NETDB_INTERNAL);
439.230 -#+ return NULL;
439.231 -#+ }
439.232 -#+
439.233 -#+ if ((n = res_search(name, C_IN, type, buf->buf, sizeof(buf->buf))) < 0) {
439.234 -#+ free (buf);
439.235 -# dprintf("res_search failed (%d)\n", n);
439.236 -# if (errno == ECONNREFUSED)
439.237 -# return (_gethtbyname2(name, af));
439.238 -# return (NULL);
439.239 -# }
439.240 -#- return (getanswer(&buf, n, name, type));
439.241 -#+ ret = getanswer(buf, n, name, type);
439.242 -#+ free (buf);
439.243 -#+ return ret;
439.244 -# }
439.245 -#
439.246 -# struct hostent *
439.247 -#@@ -636,7 +646,7 @@ gethostbyaddr(addr, len, af)
439.248 -# static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff };
439.249 -# static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 };
439.250 -# int n, size;
439.251 -#- querybuf buf;
439.252 -#+ querybuf *buf;
439.253 -# register struct hostent *hp;
439.254 -# char qbuf[MAXDNAME+1], *qp;
439.255 -# #ifdef SUNSECURITY
439.256 -#@@ -697,14 +707,24 @@ gethostbyaddr(addr, len, af)
439.257 -# default:
439.258 -# abort();
439.259 -# }
439.260 -#- n = res_query(qbuf, C_IN, T_PTR, (u_char *)buf.buf, sizeof buf.buf);
439.261 -#+
439.262 -#+ buf = (querybuf *) malloc (sizeof (*buf));
439.263 -#+ if (buf == NULL) {
439.264 -#+ __set_h_errno (NETDB_INTERNAL);
439.265 -#+ return NULL;
439.266 -#+ }
439.267 -#+
439.268 -#+ n = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof buf->buf);
439.269 -# if (n < 0) {
439.270 -#+ free (buf);
439.271 -# dprintf("res_query failed (%d)\n", n);
439.272 -# if (errno == ECONNREFUSED)
439.273 -# return (_gethtbyaddr(addr, len, af));
439.274 -# return (NULL);
439.275 -# }
439.276 -#- if (!(hp = getanswer(&buf, n, qbuf, T_PTR)))
439.277 -#+ hp = getanswer(buf, n, qbuf, T_PTR);
439.278 -#+ free (buf);
439.279 -#+ if (!hp)
439.280 -# return (NULL); /* h_errno was set by getanswer() */
439.281 -# #ifdef SUNSECURITY
439.282 -# if (af == AF_INET) {
439.283 -#--- libc/resolv/getnetnamadr.c.jj Wed Jun 30 12:00:50 1999
439.284 -#+++ libc/resolv/getnetnamadr.c Thu Oct 10 13:14:01 2002
439.285 -#@@ -210,7 +210,7 @@ getnetbyaddr(net, net_type)
439.286 -# {
439.287 -# unsigned int netbr[4];
439.288 -# int nn, anslen;
439.289 -#- querybuf buf;
439.290 -#+ querybuf *buf;
439.291 -# char qbuf[MAXDNAME];
439.292 -# u_int32_t net2; /* Changed from unsigned long --roland */
439.293 -# struct netent *net_entry;
439.294 -#@@ -236,8 +236,15 @@ getnetbyaddr(net, net_type)
439.295 -# netbr[1], netbr[0]);
439.296 -# break;
439.297 -# }
439.298 -#- anslen = res_query(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));
439.299 -#+
439.300 -#+ buf = (querybuf *) malloc (sizeof (*buf));
439.301 -#+ if (buf == NULL) {
439.302 -#+ return NULL;
439.303 -#+ }
439.304 -#+
439.305 -#+ anslen = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof(buf->buf));
439.306 -# if (anslen < 0) {
439.307 -#+ free (buf);
439.308 -# #ifdef DEBUG
439.309 -# if (_res.options & RES_DEBUG)
439.310 -# printf("res_query failed\n");
439.311 -#@@ -246,7 +253,8 @@ getnetbyaddr(net, net_type)
439.312 -# return (_getnetbyaddr(net, net_type));
439.313 -# return (NULL);
439.314 -# }
439.315 -#- net_entry = getnetanswer(&buf, anslen, BYADDR);
439.316 -#+ net_entry = getnetanswer(buf, anslen, BYADDR);
439.317 -#+ free (buf);
439.318 -# if (net_entry) {
439.319 -# unsigned u_net = net; /* maybe net should be unsigned ? */
439.320 -#
439.321 -#@@ -264,7 +272,7 @@ getnetbyname(net)
439.322 -# register const char *net;
439.323 -# {
439.324 -# int anslen;
439.325 -#- querybuf buf;
439.326 -#+ querybuf *buf;
439.327 -# char qbuf[MAXDNAME];
439.328 -# struct netent *net_entry;
439.329 -#
439.330 -#@@ -273,8 +281,13 @@ getnetbyname(net)
439.331 -# return (NULL);
439.332 -# }
439.333 -# strcpy(&qbuf[0], net);
439.334 -#- anslen = res_search(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));
439.335 -#+ buf = (querybuf *) malloc (sizeof (*buf));
439.336 -#+ if (buf == NULL) {
439.337 -#+ return NULL;
439.338 -#+ }
439.339 -#+ anslen = res_search(qbuf, C_IN, T_PTR, buf->buf, sizeof(buf->buf));
439.340 -# if (anslen < 0) {
439.341 -#+ free (buf);
439.342 -# #ifdef DEBUG
439.343 -# if (_res.options & RES_DEBUG)
439.344 -# printf("res_query failed\n");
439.345 -#@@ -283,7 +296,8 @@ getnetbyname(net)
439.346 -# return (_getnetbyname(net));
439.347 -# return (_getnetbyname(net));
439.348 -# }
439.349 -#- net_entry = getnetanswer(&buf, anslen, BYNAME);
439.350 -#+ net_entry = getnetanswer(buf, anslen, BYNAME);
439.351 -#+ free (buf);
439.352 -# if (net_entry)
439.353 -# return (net_entry);
439.354 -# return (_getnetbyname(net));
439.355 ---- libc/glibc-compat/nss_dns/dns-host.c.jj Mon Jan 3 20:07:08 2000
439.356 -+++ libc/glibc-compat/nss_dns/dns-host.c Thu Oct 10 12:46:24 2002
439.357 -@@ -126,9 +126,10 @@ enum nss_status
439.358 - _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result,
439.359 - char *buffer, size_t buflen, int *h_errnop)
439.360 - {
439.361 -- querybuf host_buffer;
439.362 -+ querybuf *host_buffer;
439.363 - int size, type, n;
439.364 - const char *cp;
439.365 -+ enum nss_status status;
439.366 -
439.367 - switch (af) {
439.368 - case AF_INET:
439.369 -@@ -156,15 +157,22 @@ _nss_dns_gethostbyname2_r (const char *n
439.370 - if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
439.371 - name = cp;
439.372 -
439.373 -- n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
439.374 -+ host_buffer = (querybuf *) malloc (sizeof (querybuf));
439.375 -+ if (host_buffer == NULL)
439.376 -+ return NSS_STATUS_UNAVAIL;
439.377 -+
439.378 -+ n = res_search (name, C_IN, type, host_buffer->buf, sizeof (host_buffer->buf));
439.379 - if (n < 0)
439.380 - {
439.381 - *h_errnop = h_errno;
439.382 -+ free (host_buffer);
439.383 - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.384 - }
439.385 -
439.386 -- return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
439.387 -- h_errnop);
439.388 -+ status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
439.389 -+ h_errnop);
439.390 -+ free (host_buffer);
439.391 -+ return status;
439.392 - }
439.393 -
439.394 -
439.395 -@@ -200,7 +208,7 @@ _nss_dns_gethostbyaddr_r (const char *ad
439.396 - char *h_addr_ptrs[MAX_NR_ADDRS + 1];
439.397 - char linebuffer[0];
439.398 - } *host_data = (struct host_data *) buffer;
439.399 -- querybuf host_buffer;
439.400 -+ querybuf *host_buffer;
439.401 - char qbuf[MAXDNAME+1], *qp;
439.402 - int size, n, status;
439.403 -
439.404 -@@ -251,16 +259,22 @@ _nss_dns_gethostbyaddr_r (const char *ad
439.405 - /* Cannot happen. */
439.406 - }
439.407 -
439.408 -- n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
439.409 -- sizeof host_buffer);
439.410 -+ host_buffer = (querybuf *) malloc (sizeof (querybuf));
439.411 -+ if (host_buffer == NULL)
439.412 -+ return NSS_STATUS_UNAVAIL;
439.413 -+
439.414 -+ n = res_query (qbuf, C_IN, T_PTR, host_buffer->buf,
439.415 -+ sizeof (host_buffer->buf));
439.416 - if (n < 0)
439.417 - {
439.418 - *h_errnop = h_errno;
439.419 -+ free (host_buffer);
439.420 - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.421 - }
439.422 -
439.423 -- status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
439.424 -+ status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
439.425 - h_errnop);
439.426 -+ free (host_buffer);
439.427 - if (status != NSS_STATUS_SUCCESS)
439.428 - {
439.429 - *h_errnop = h_errno;
439.430 ---- libc/glibc-compat/nss_dns/dns-network.c.jj Mon Jan 3 20:07:08 2000
439.431 -+++ libc/glibc-compat/nss_dns/dns-network.c Thu Oct 10 12:46:24 2002
439.432 -@@ -107,21 +107,32 @@ _nss_dns_getnetbyname_r (const char *nam
439.433 - char *buffer, size_t buflen)
439.434 - {
439.435 - /* Return entry for network with NAME. */
439.436 -- querybuf net_buffer;
439.437 -+ querybuf *net_buffer;
439.438 - int anslen;
439.439 - char *qbuf;
439.440 -+ enum nss_status status;
439.441 -
439.442 - qbuf = strdupa (name);
439.443 -- anslen = res_search (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
439.444 -- sizeof (querybuf));
439.445 -+
439.446 -+ net_buffer = (querybuf *) malloc (sizeof (querybuf));
439.447 -+ if (net_buffer == NULL)
439.448 -+ return NSS_STATUS_UNAVAIL;
439.449 -+
439.450 -+ anslen = res_search (qbuf, C_IN, T_PTR, net_buffer->buf,
439.451 -+ sizeof (net_buffer->buf));
439.452 - if (anslen < 0)
439.453 -- /* Nothing found. */
439.454 -- return (errno == ECONNREFUSED
439.455 -- || errno == EPFNOSUPPORT
439.456 -- || errno == EAFNOSUPPORT)
439.457 -- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.458 -+ {
439.459 -+ free (net_buffer);
439.460 -+ /* Nothing found. */
439.461 -+ return (errno == ECONNREFUSED
439.462 -+ || errno == EPFNOSUPPORT
439.463 -+ || errno == EAFNOSUPPORT)
439.464 -+ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.465 -+ }
439.466 -
439.467 -- return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
439.468 -+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
439.469 -+ free (net_buffer);
439.470 -+ return status;
439.471 - }
439.472 -
439.473 -
439.474 -@@ -131,7 +142,7 @@ _nss_dns_getnetbyaddr_r (long net, int t
439.475 - {
439.476 - /* Return entry for network with NAME. */
439.477 - enum nss_status status;
439.478 -- querybuf net_buffer;
439.479 -+ querybuf *net_buffer;
439.480 - unsigned int net_bytes[4];
439.481 - char qbuf[MAXDNAME];
439.482 - int cnt, anslen;
439.483 -@@ -167,16 +178,24 @@ _nss_dns_getnetbyaddr_r (long net, int t
439.484 - break;
439.485 - }
439.486 -
439.487 -- anslen = res_query (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
439.488 -- sizeof (querybuf));
439.489 -+ net_buffer = (querybuf *) malloc (sizeof (querybuf));
439.490 -+ if (net_buffer == NULL)
439.491 -+ return NSS_STATUS_UNAVAIL;
439.492 -+
439.493 -+ anslen = res_query (qbuf, C_IN, T_PTR, net_buffer->buf,
439.494 -+ sizeof (net_buffer->buf));
439.495 - if (anslen < 0)
439.496 -- /* Nothing found. */
439.497 -- return (errno == ECONNREFUSED
439.498 -- || errno == EPFNOSUPPORT
439.499 -- || errno == EAFNOSUPPORT)
439.500 -- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.501 -+ {
439.502 -+ free (net_buffer);
439.503 -+ /* Nothing found. */
439.504 -+ return (errno == ECONNREFUSED
439.505 -+ || errno == EPFNOSUPPORT
439.506 -+ || errno == EAFNOSUPPORT)
439.507 -+ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
439.508 -+ }
439.509 -
439.510 -- status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
439.511 -+ status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
439.512 -+ free (net_buffer);
439.513 - if (status == NSS_STATUS_SUCCESS)
439.514 - {
439.515 - /* Strip trailing zeros. */