diff options
author | Adrian Dudau <adrian.dudau@enea.com> | 2013-12-12 13:38:32 +0100 |
---|---|---|
committer | Adrian Dudau <adrian.dudau@enea.com> | 2013-12-12 13:50:20 +0100 |
commit | e2e6f6fe07049f33cb6348780fa975162752e421 (patch) | |
tree | b1813295411235d1297a0ed642b1346b24fdfb12 /meta/recipes-core/eglibc | |
download | poky-e2e6f6fe07049f33cb6348780fa975162752e421.tar.gz |
initial commit of Enea Linux 3.1
Migrated from the internal git server on the dora-enea branch
Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
Diffstat (limited to 'meta/recipes-core/eglibc')
92 files changed, 21652 insertions, 0 deletions
diff --git a/meta/recipes-core/eglibc/cross-localedef-native_2.17.bb b/meta/recipes-core/eglibc/cross-localedef-native_2.17.bb new file mode 100644 index 0000000000..1d3c22bf57 --- /dev/null +++ b/meta/recipes-core/eglibc/cross-localedef-native_2.17.bb | |||
@@ -0,0 +1,49 @@ | |||
1 | DESCRIPTION = "Cross locale generation tool for eglibc" | ||
2 | HOMEPAGE = "http://www.eglibc.org/home" | ||
3 | SECTION = "libs" | ||
4 | LICENSE = "LGPL-2.1" | ||
5 | |||
6 | LIC_DIR = "${WORKDIR}/eglibc-${PV}/libc" | ||
7 | LIC_FILES_CHKSUM = "file://${LIC_DIR}/LICENSES;md5=e9a558e243b36d3209f380deb394b213 \ | ||
8 | file://${LIC_DIR}/COPYING;md5=393a5ca445f6965873eca0259a17f833 \ | ||
9 | file://${LIC_DIR}/posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ | ||
10 | file://${LIC_DIR}/COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff " | ||
11 | |||
12 | |||
13 | inherit native | ||
14 | inherit autotools | ||
15 | |||
16 | # pick up an eglibc patch | ||
17 | FILESPATH = "${FILE_DIRNAME}/eglibc-${PV}" | ||
18 | |||
19 | SRC_URI = "http://downloads.yoctoproject.org/releases/eglibc/eglibc-${PV}-svnr22064.tar.bz2 \ | ||
20 | file://fix_for_centos_5.8.patch;patchdir=.. \ | ||
21 | " | ||
22 | SRC_URI[md5sum] = "1464af54779c2c7d1078df9ce2e41791" | ||
23 | SRC_URI[sha256sum] = "97c3991a3772f513cf704841d20c275ac48895fad2e27802dda557c0196cba6b" | ||
24 | |||
25 | S = "${WORKDIR}/eglibc-${PV}/localedef" | ||
26 | |||
27 | do_unpack_append() { | ||
28 | bb.build.exec_func('do_move_ports', d) | ||
29 | } | ||
30 | |||
31 | do_move_ports() { | ||
32 | if test -d ${WORKDIR}/eglibc-${PV}/ports ; then | ||
33 | rm -rf ${WORKDIR}/libc/ports | ||
34 | mv ${WORKDIR}/eglibc-${PV}/ports ${WORKDIR}/libc/ | ||
35 | fi | ||
36 | } | ||
37 | |||
38 | EXTRA_OECONF = "--with-glibc=${WORKDIR}/eglibc-${PV}/libc" | ||
39 | CFLAGS += "-DNOT_IN_libc=1" | ||
40 | |||
41 | do_configure () { | ||
42 | ${S}/configure ${EXTRA_OECONF} | ||
43 | } | ||
44 | |||
45 | |||
46 | do_install() { | ||
47 | install -d ${D}${bindir} | ||
48 | install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef | ||
49 | } | ||
diff --git a/meta/recipes-core/eglibc/cross-localedef-native_2.18.bb b/meta/recipes-core/eglibc/cross-localedef-native_2.18.bb new file mode 100644 index 0000000000..62296b5276 --- /dev/null +++ b/meta/recipes-core/eglibc/cross-localedef-native_2.18.bb | |||
@@ -0,0 +1,49 @@ | |||
1 | DESCRIPTION = "Cross locale generation tool for eglibc" | ||
2 | HOMEPAGE = "http://www.eglibc.org/home" | ||
3 | SECTION = "libs" | ||
4 | LICENSE = "LGPL-2.1" | ||
5 | |||
6 | LIC_DIR = "${WORKDIR}/eglibc-${PV}/libc" | ||
7 | LIC_FILES_CHKSUM = "file://${LIC_DIR}/LICENSES;md5=e9a558e243b36d3209f380deb394b213 \ | ||
8 | file://${LIC_DIR}/COPYING;md5=393a5ca445f6965873eca0259a17f833 \ | ||
9 | file://${LIC_DIR}/posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ | ||
10 | file://${LIC_DIR}/COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff " | ||
11 | |||
12 | |||
13 | inherit native | ||
14 | inherit autotools | ||
15 | |||
16 | # pick up an eglibc patch | ||
17 | FILESPATH = "${FILE_DIRNAME}/eglibc-${PV}" | ||
18 | |||
19 | SRC_URI = "http://downloads.yoctoproject.org/releases/eglibc/eglibc-${PV}-svnr23787.tar.bz2 \ | ||
20 | file://fix_for_centos_5.8.patch;patchdir=.. \ | ||
21 | " | ||
22 | SRC_URI[md5sum] = "b395b021422a027d89884992e91734fc" | ||
23 | SRC_URI[sha256sum] = "15f564b45dc5dd65faf0875579e3447961ae61e876933384ae05d19328539ad4" | ||
24 | |||
25 | S = "${WORKDIR}/eglibc-${PV}/localedef" | ||
26 | |||
27 | do_unpack_append() { | ||
28 | bb.build.exec_func('do_move_ports', d) | ||
29 | } | ||
30 | |||
31 | do_move_ports() { | ||
32 | if test -d ${WORKDIR}/eglibc-${PV}/ports ; then | ||
33 | rm -rf ${WORKDIR}/libc/ports | ||
34 | mv ${WORKDIR}/eglibc-${PV}/ports ${WORKDIR}/libc/ | ||
35 | fi | ||
36 | } | ||
37 | |||
38 | EXTRA_OECONF = "--with-glibc=${WORKDIR}/eglibc-${PV}/libc" | ||
39 | CFLAGS += "-DNOT_IN_libc=1" | ||
40 | |||
41 | do_configure () { | ||
42 | ${S}/configure ${EXTRA_OECONF} | ||
43 | } | ||
44 | |||
45 | |||
46 | do_install() { | ||
47 | install -d ${D}${bindir} | ||
48 | install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef | ||
49 | } | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/0001-R_ARM_TLS_DTPOFF32.patch b/meta/recipes-core/eglibc/eglibc-2.17/0001-R_ARM_TLS_DTPOFF32.patch new file mode 100644 index 0000000000..b4489e9ae9 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/0001-R_ARM_TLS_DTPOFF32.patch | |||
@@ -0,0 +1,56 @@ | |||
1 | |||
2 | Quote from bug 1443 which explains what the patch does : | ||
3 | |||
4 | We build some random program and link it with -lust. When we run it, | ||
5 | it dies with a SIGSEGV before reaching main(). | ||
6 | |||
7 | Libust.so depends on liburcu-bp.so from the usermode-rcu package. | ||
8 | Although libust.so is not prelinked, liburcu-bp.so IS prelinked; this | ||
9 | is critical. | ||
10 | |||
11 | Libust.so uses a TLS / __thread variable that is defined in liburcu- | ||
12 | bp.so. There are special ARM-specific relocation types that allow two | ||
13 | shared libraries to share thread-specific data. This is critical too. | ||
14 | |||
15 | One more critical issue: although liburcu-bp.so is prelinked, we can't | ||
16 | load it at its prelinked address, because we also link against | ||
17 | librt.so, and librt.so uses that address. | ||
18 | |||
19 | The dynamic linker is forced to relink liburcu-bp.so at a different | ||
20 | address. In the course of relinking, it processes the special ARM | ||
21 | relocation record mentioned above. The prelinker has already filled | ||
22 | in the information, which is a short offset into a table of thread- | ||
23 | specific data that is allocated per-thread for each library that uses | ||
24 | TLS. Because the normal behavior of a relocation is to add the symbol | ||
25 | value to an addend stored at the address being relocated, we end up | ||
26 | adding the short offset to itself, doubling it. | ||
27 | |||
28 | Now we have an awkward situation. The libust.so library doesn't know | ||
29 | about the addend, so its TLS data for this element is correct. The | ||
30 | liburcu-bp.so library has a different offset for the element. When we | ||
31 | go to initialize the element for the first time in liburcu-bp.so, we | ||
32 | write the address of the result at the doubled (broken) offset. | ||
33 | Later, when we refer to the address from libust.so, we check the value | ||
34 | at the correct offset, but it's NULL, so we eat hot SIGSEGV. | ||
35 | |||
36 | Upstream-Status: Pending | ||
37 | |||
38 | Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com> | ||
39 | --- | ||
40 | .../libc/ports/sysdeps/arm/dl-machine.h | 2 +- | ||
41 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
42 | |||
43 | ndex 8d905e8..dcfa71e 100644 | ||
44 | --- libc.orig/ports/sysdeps/arm/dl-machine.h | ||
45 | +++ libc/ports/sysdeps/arm/dl-machine.h | ||
46 | @@ -503,7 +503,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, | ||
47 | |||
48 | case R_ARM_TLS_DTPOFF32: | ||
49 | if (sym != NULL) | ||
50 | - *reloc_addr += sym->st_value; | ||
51 | + *reloc_addr = sym->st_value; | ||
52 | break; | ||
53 | |||
54 | case R_ARM_TLS_TPOFF32: | ||
55 | -- | ||
56 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/0001-eglibc-menuconfig-support.patch b/meta/recipes-core/eglibc/eglibc-2.17/0001-eglibc-menuconfig-support.patch new file mode 100644 index 0000000000..624392666a --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/0001-eglibc-menuconfig-support.patch | |||
@@ -0,0 +1,1007 @@ | |||
1 | Pulled from | ||
2 | http://www.eglibc.org/archives/patches/msg01042.html | ||
3 | |||
4 | Upstream-Status: Pending | ||
5 | Signed-off-by: Khem | ||
6 | |||
7 | Hi, | ||
8 | |||
9 | This patch adds 'make menuconfig' support to EGLIBC. | ||
10 | |||
11 | |||
12 | EGLIBC can re-use the Linux kernel kconfig host tools ('conf' and 'mconf') unmodified, by passing appropriate environment variables and with some pre- and post-processing on the input/output config files. | ||
13 | |||
14 | There are three new make targets supported, which all are defined in the new libc/options-config/Makefile, which is included by the top-level libc/Makefile: | ||
15 | |||
16 | - 'make defconfig'. This passes 'libc/option-groups.defaults' to 'conf' as a default config, and outputs 'option-groups.config' to the top-level build directory, which will be the same as the default config. | ||
17 | |||
18 | - 'make config'. This is the same line-oriented interface as in the Linux kernel. Input and output is 'option-groups.config' in the top-level build directory. | ||
19 | |||
20 | - 'make menuconfig'. This is the same menu-based interface as in the Linux kernel. Input and output is 'option-groups.config' in the top-level build directory. | ||
21 | |||
22 | |||
23 | Pre-Processing: | ||
24 | |||
25 | |||
26 | The Linux kernel kconfig tools expect a prefix of "CONFIG_" on all config option names, but EGLIBC expects a prefix of "OPTION_". The pre-processing script, libc/options-config/config-preproc.pl, simply replaces "CONFIG_ with "OPTION_" in the given config file. The libc/options-config/Makefile passes the script output to a temporary config file, which is then passed to 'conf' or 'mconf'. | ||
27 | |||
28 | Post-Processing (libc/options-config/config-postproc.pl): | ||
29 | |||
30 | |||
31 | - Disabled options are output as a comment line of the form "# CONFIG_FOO is not set". This needs to be changed to an explicit "CONFIG_FOO=n" in order to be compatible with 'option-groups.awk' which generates the option-groups.h header. | ||
32 | |||
33 | - "CONFIG_" prefix is changed back to "OPTION_". | ||
34 | |||
35 | |||
36 | - The kconfig tools will not output anything for options that depend on a parent option, when the parent option is disabled. This implicit disable must be converted to an explicit "CONFIG_FOO=n" in order to be compatible with the way EGLIBC overrides the default option settings in 'libc/option-groups.defaults' with those in 'option-groups.config'. | ||
37 | |||
38 | |||
39 | A new configure option, '--with-kconfig=<PATH>', tells EGLIBC where to find the pre-built 'conf' and 'mconf' host tools from Linux kernel builds. | ||
40 | |||
41 | libc/EGLIBC.cross-building is updated to include instructions for using '--with-kconfig' for the final EGLIBC build, and shows how and when to run 'make *config'. | ||
42 | |||
43 | libc/EGLIBC.option-groups is updated to include new information on the menuconfig support. | ||
44 | |||
45 | Thanks, | ||
46 | |||
47 | attached is the updated patch to address above issues. | ||
48 | |||
49 | Steve | ||
50 | |||
51 | -- | ||
52 | Steve Longerbeam | Senior Embedded Engineer, ESD Services | ||
53 | Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538 | ||
54 | P 510.354.5838 | M 408.410.2735 | ||
55 | Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS | ||
56 | |||
57 | |||
58 | Index: libc/EGLIBC.cross-building | ||
59 | =================================================================== | ||
60 | --- libc.orig/EGLIBC.cross-building 2012-08-21 22:25:49.000000000 -0700 | ||
61 | +++ libc/EGLIBC.cross-building 2012-09-05 21:44:09.749577576 -0700 | ||
62 | @@ -243,9 +243,29 @@ | ||
63 | > $src/libc/configure \ | ||
64 | > --prefix=/usr \ | ||
65 | > --with-headers=$sysroot/usr/include \ | ||
66 | + > --with-kconfig=$obj/linux/scripts/kconfig \ | ||
67 | > --build=$build \ | ||
68 | > --host=$target \ | ||
69 | > --disable-profile --without-gd --without-cvs --enable-add-ons | ||
70 | + | ||
71 | +Note the additional '--with-kconfig' option. This tells EGLIBC where to | ||
72 | +find the host config tools used by the kernel 'make config' and 'make | ||
73 | +menuconfig'. These tools can be re-used by EGLIBC for its own 'make | ||
74 | +*config' support, which will create 'option-groups.config' for you. | ||
75 | +But first make sure those tools have been built by running some | ||
76 | +dummy 'make *config' calls in the kernel directory: | ||
77 | + | ||
78 | + $ cd $obj/linux | ||
79 | + $ PATH=$tools/bin:$PATH make config \ | ||
80 | + > ARCH=$linux_arch CROSS_COMPILE=$target- \ | ||
81 | + $ PATH=$tools/bin:$PATH make menuconfig \ | ||
82 | + > ARCH=$linux_arch CROSS_COMPILE=$target- \ | ||
83 | + | ||
84 | +Now we can configure and build the full EGLIBC: | ||
85 | + | ||
86 | + $ cd $obj/eglibc | ||
87 | + $ PATH=$tools/bin:$PATH make defconfig | ||
88 | + $ PATH=$tools/bin:$PATH make menuconfig | ||
89 | $ PATH=$tools/bin:$PATH make | ||
90 | $ PATH=$tools/bin:$PATH make install install_root=$sysroot | ||
91 | |||
92 | Index: libc/configure.in | ||
93 | =================================================================== | ||
94 | --- libc.orig/configure.in 2012-09-05 21:40:19.000000000 -0700 | ||
95 | +++ libc/configure.in 2012-09-05 21:44:09.769577577 -0700 | ||
96 | @@ -96,6 +96,16 @@ | ||
97 | [sysheaders=$withval], | ||
98 | [sysheaders='']) | ||
99 | |||
100 | +AC_ARG_WITH([kconfig], | ||
101 | + AC_HELP_STRING([--with-kconfig=PATH], | ||
102 | + [location of kconfig tools to use (from Linux | ||
103 | + kernel builds) to re-use for configuring EGLIBC | ||
104 | + option groups]), | ||
105 | + [KCONFIG_TOOLS=$withval], | ||
106 | + [KCONFIG_TOOLS='']) | ||
107 | +AC_SUBST(KCONFIG_TOOLS) | ||
108 | + | ||
109 | + | ||
110 | AC_SUBST(use_default_link) | ||
111 | AC_ARG_WITH([default-link], | ||
112 | AC_HELP_STRING([--with-default-link], | ||
113 | Index: libc/config.make.in | ||
114 | =================================================================== | ||
115 | --- libc.orig/config.make.in 2012-08-21 22:25:55.000000000 -0700 | ||
116 | +++ libc/config.make.in 2012-09-05 21:45:16.253579810 -0700 | ||
117 | @@ -48,6 +48,8 @@ | ||
118 | c++-sysincludes = @CXX_SYSINCLUDES@ | ||
119 | all-warnings = @all_warnings@ | ||
120 | |||
121 | +kconfig_tools = @KCONFIG_TOOLS@ | ||
122 | + | ||
123 | have-z-combreloc = @libc_cv_z_combreloc@ | ||
124 | have-z-execstack = @libc_cv_z_execstack@ | ||
125 | have-Bgroup = @libc_cv_Bgroup@ | ||
126 | Index: libc/options-config/config-postproc.pl | ||
127 | =================================================================== | ||
128 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
129 | +++ libc/options-config/config-postproc.pl 2012-09-05 21:44:09.769577577 -0700 | ||
130 | @@ -0,0 +1,54 @@ | ||
131 | +#!/usr/bin/perl | ||
132 | + | ||
133 | +$usage = "usage: $0 <default config file> <config file>\n"; | ||
134 | + | ||
135 | +die "$usage" unless @ARGV; | ||
136 | +$defaults = shift @ARGV; | ||
137 | +die "$usage" unless @ARGV; | ||
138 | +die "Could not open $ARGV[0]" unless -T $ARGV[0]; | ||
139 | + | ||
140 | +sub yank { | ||
141 | + @option = grep($_ ne $_[0], @option); | ||
142 | +} | ||
143 | + | ||
144 | +open(DEFAULTS, $defaults) || die "Could not open $defaults\n"; | ||
145 | + | ||
146 | +# get the full list of available options using the default config file | ||
147 | +$i = 0; | ||
148 | +while (<DEFAULTS>) { | ||
149 | + if (/^\s*OPTION_(\w+)\s*=/) { | ||
150 | + $option[$i++] = $1; | ||
151 | + } | ||
152 | +} | ||
153 | + | ||
154 | +# now go through the config file, making the necessary changes | ||
155 | +while (<>) { | ||
156 | + if (/Linux Kernel Configuration/) { | ||
157 | + # change title | ||
158 | + s/Linux Kernel/Option Groups/; | ||
159 | + print; | ||
160 | + } elsif (/^\s*CONFIG_(\w+)\s*=/) { | ||
161 | + # this is an explicit option set line, change CONFIG_ to OPTION_ | ||
162 | + # before printing and remove this option from option list | ||
163 | + $opt = $1; | ||
164 | + yank($opt); | ||
165 | + s/CONFIG_/OPTION_/g; | ||
166 | + print; | ||
167 | + } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) { | ||
168 | + # this is a comment line, change CONFIG_ to OPTION_, remove this | ||
169 | + # option from option list, and convert to explicit OPTION_FOO=n | ||
170 | + $opt = $1; | ||
171 | + yank($opt); | ||
172 | + s/CONFIG_/OPTION_/g; | ||
173 | + print "OPTION_$opt=n\n"; | ||
174 | + } else { | ||
175 | + print; | ||
176 | + } | ||
177 | +} | ||
178 | + | ||
179 | +# any options left in @options, are options that were not mentioned in | ||
180 | +# the config file, and implicitly that means the option must be set =n, | ||
181 | +# so do that here. | ||
182 | +foreach $opt (@option) { | ||
183 | + print "OPTION_$opt=n\n"; | ||
184 | +} | ||
185 | Index: libc/options-config/config-preproc.pl | ||
186 | =================================================================== | ||
187 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
188 | +++ libc/options-config/config-preproc.pl 2012-09-05 21:44:09.769577577 -0700 | ||
189 | @@ -0,0 +1,8 @@ | ||
190 | +#!/usr/bin/perl | ||
191 | + | ||
192 | +if (@ARGV) { | ||
193 | + while (<>) { | ||
194 | + s/OPTION_/CONFIG_/g; | ||
195 | + print; | ||
196 | + } | ||
197 | +} | ||
198 | Index: libc/options-config/Makefile | ||
199 | =================================================================== | ||
200 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
201 | +++ libc/options-config/Makefile 2012-09-05 21:44:09.769577577 -0700 | ||
202 | @@ -0,0 +1,55 @@ | ||
203 | +# =========================================================================== | ||
204 | +# EGLIBC option-groups configuration targets | ||
205 | +# These targets are included from top-level makefile | ||
206 | + | ||
207 | +ifneq ($(kconfig_tools),) | ||
208 | +ifneq (no,$(PERL)) | ||
209 | + | ||
210 | +ocdir := options-config | ||
211 | + | ||
212 | +OconfigDefaults := option-groups.defaults | ||
213 | +OconfigDefaults_tmp := $(common-objpfx).tmp.defconfig | ||
214 | +OconfigDef := option-groups.def | ||
215 | +Oconfig := $(common-objpfx)option-groups.config | ||
216 | +Oconfig_tmp := $(common-objpfx).tmp.config | ||
217 | + | ||
218 | +conf := $(kconfig_tools)/conf | ||
219 | +mconf := $(kconfig_tools)/mconf | ||
220 | + | ||
221 | +preproc := $(PERL) $(ocdir)/config-preproc.pl | ||
222 | +postproc := $(PERL) $(ocdir)/config-postproc.pl | ||
223 | + | ||
224 | +PHONY += defconfig config menuconfig | ||
225 | + | ||
226 | +defconfig: $(conf) $(OconfigDefaults) $(OconfigDef) | ||
227 | + rm -f $(OconfigDefaults_tmp) | ||
228 | + rm -f $(Oconfig_tmp) | ||
229 | + $(preproc) $(OconfigDefaults) > $(OconfigDefaults_tmp) | ||
230 | + KCONFIG_CONFIG=$(Oconfig_tmp) $< --defconfig=$(OconfigDefaults_tmp) \ | ||
231 | + $(OconfigDef) | ||
232 | + $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) | ||
233 | + rm $(Oconfig_tmp) | ||
234 | + rm $(OconfigDefaults_tmp) | ||
235 | + | ||
236 | +config: $(conf) $(OconfigDefaults) $(OconfigDef) | ||
237 | + rm -f $(Oconfig_tmp) | ||
238 | + $(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp) | ||
239 | + KCONFIG_CONFIG=$(Oconfig_tmp) $< --oldaskconfig $(OconfigDef) | ||
240 | + $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) | ||
241 | + rm $(Oconfig_tmp) | ||
242 | + | ||
243 | +menuconfig: $(mconf) $(OconfigDefaults) $(OconfigDef) | ||
244 | + rm -f $(Oconfig_tmp) | ||
245 | + $(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp) | ||
246 | + KCONFIG_CONFIG=$(Oconfig_tmp) $< $(OconfigDef) | ||
247 | + $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) | ||
248 | + rm $(Oconfig_tmp) | ||
249 | + | ||
250 | +# Help text used by make help | ||
251 | +help: | ||
252 | + @echo ' defconfig - New config with default from default config' | ||
253 | + @echo ' config - Update current config utilising a line-oriented program' | ||
254 | + @echo ' menuconfig - Update current config utilising a menu based program' | ||
255 | + | ||
256 | +endif | ||
257 | +endif | ||
258 | Index: libc/option-groups.defaults | ||
259 | =================================================================== | ||
260 | --- libc.orig/option-groups.defaults 2012-08-21 22:26:18.000000000 -0700 | ||
261 | +++ libc/option-groups.defaults 2012-09-05 21:44:09.769577577 -0700 | ||
262 | @@ -8,41 +8,41 @@ | ||
263 | # are to be changed. | ||
264 | # | ||
265 | # By default, all option groups are enabled. | ||
266 | -OPTION_EGLIBC_ADVANCED_INET6 = y | ||
267 | -OPTION_EGLIBC_BACKTRACE = y | ||
268 | -OPTION_EGLIBC_BIG_MACROS = y | ||
269 | -OPTION_EGLIBC_BSD = y | ||
270 | -OPTION_EGLIBC_CXX_TESTS = y | ||
271 | -OPTION_EGLIBC_CATGETS = y | ||
272 | -OPTION_EGLIBC_CHARSETS = y | ||
273 | -OPTION_EGLIBC_CRYPT = y | ||
274 | -OPTION_EGLIBC_CRYPT_UFC = y | ||
275 | -OPTION_EGLIBC_DB_ALIASES = y | ||
276 | -OPTION_EGLIBC_ENVZ = y | ||
277 | -OPTION_EGLIBC_FCVT = y | ||
278 | -OPTION_EGLIBC_FMTMSG = y | ||
279 | -OPTION_EGLIBC_FSTAB = y | ||
280 | -OPTION_EGLIBC_FTRAVERSE = y | ||
281 | -OPTION_EGLIBC_GETLOGIN = y | ||
282 | -OPTION_EGLIBC_IDN = y | ||
283 | -OPTION_EGLIBC_INET = y | ||
284 | -OPTION_EGLIBC_INET_ANL = y | ||
285 | -OPTION_EGLIBC_LIBM = y | ||
286 | -OPTION_EGLIBC_LIBM_BIG = y | ||
287 | -OPTION_EGLIBC_LOCALES = y | ||
288 | -OPTION_EGLIBC_LOCALE_CODE = y | ||
289 | -OPTION_EGLIBC_MEMUSAGE = y | ||
290 | -OPTION_EGLIBC_NIS = y | ||
291 | -OPTION_EGLIBC_NSSWITCH = y | ||
292 | -OPTION_EGLIBC_RCMD = y | ||
293 | -OPTION_EGLIBC_RTLD_DEBUG = y | ||
294 | -OPTION_EGLIBC_SPAWN = y | ||
295 | -OPTION_EGLIBC_STREAMS = y | ||
296 | -OPTION_EGLIBC_SUNRPC = y | ||
297 | -OPTION_EGLIBC_UTMP = y | ||
298 | -OPTION_EGLIBC_UTMPX = y | ||
299 | -OPTION_EGLIBC_WORDEXP = y | ||
300 | -OPTION_POSIX_C_LANG_WIDE_CHAR = y | ||
301 | -OPTION_POSIX_REGEXP = y | ||
302 | -OPTION_POSIX_REGEXP_GLIBC = y | ||
303 | -OPTION_POSIX_WIDE_CHAR_DEVICE_IO = y | ||
304 | +OPTION_EGLIBC_ADVANCED_INET6=y | ||
305 | +OPTION_EGLIBC_BACKTRACE=y | ||
306 | +OPTION_EGLIBC_BIG_MACROS=y | ||
307 | +OPTION_EGLIBC_BSD=y | ||
308 | +OPTION_EGLIBC_CXX_TESTS=y | ||
309 | +OPTION_EGLIBC_CATGETS=y | ||
310 | +OPTION_EGLIBC_CHARSETS=y | ||
311 | +OPTION_EGLIBC_CRYPT=y | ||
312 | +OPTION_EGLIBC_CRYPT_UFC=y | ||
313 | +OPTION_EGLIBC_DB_ALIASES=y | ||
314 | +OPTION_EGLIBC_ENVZ=y | ||
315 | +OPTION_EGLIBC_FCVT=y | ||
316 | +OPTION_EGLIBC_FMTMSG=y | ||
317 | +OPTION_EGLIBC_FSTAB=y | ||
318 | +OPTION_EGLIBC_FTRAVERSE=y | ||
319 | +OPTION_EGLIBC_GETLOGIN=y | ||
320 | +OPTION_EGLIBC_IDN=y | ||
321 | +OPTION_EGLIBC_INET=y | ||
322 | +OPTION_EGLIBC_INET_ANL=y | ||
323 | +OPTION_EGLIBC_LIBM=y | ||
324 | +OPTION_EGLIBC_LIBM_BIG=y | ||
325 | +OPTION_EGLIBC_LOCALES=y | ||
326 | +OPTION_EGLIBC_LOCALE_CODE=y | ||
327 | +OPTION_EGLIBC_MEMUSAGE=y | ||
328 | +OPTION_EGLIBC_NIS=y | ||
329 | +OPTION_EGLIBC_NSSWITCH=y | ||
330 | +OPTION_EGLIBC_RCMD=y | ||
331 | +OPTION_EGLIBC_RTLD_DEBUG=y | ||
332 | +OPTION_EGLIBC_SPAWN=y | ||
333 | +OPTION_EGLIBC_STREAMS=y | ||
334 | +OPTION_EGLIBC_SUNRPC=y | ||
335 | +OPTION_EGLIBC_UTMP=y | ||
336 | +OPTION_EGLIBC_UTMPX=y | ||
337 | +OPTION_EGLIBC_WORDEXP=y | ||
338 | +OPTION_POSIX_C_LANG_WIDE_CHAR=y | ||
339 | +OPTION_POSIX_REGEXP=y | ||
340 | +OPTION_POSIX_REGEXP_GLIBC=y | ||
341 | +OPTION_POSIX_WIDE_CHAR_DEVICE_IO=y | ||
342 | Index: libc/option-groups.def | ||
343 | =================================================================== | ||
344 | --- libc.orig/option-groups.def 2012-08-21 22:25:45.000000000 -0700 | ||
345 | +++ libc/option-groups.def 2012-09-05 21:44:09.773577578 -0700 | ||
346 | @@ -4,19 +4,19 @@ | ||
347 | # | ||
348 | # An entry of the form: | ||
349 | # | ||
350 | -# config OPTION_GROUP_NAME | ||
351 | +# config GROUP_NAME | ||
352 | # bool "one-line explanation of what this option group controls" | ||
353 | # help | ||
354 | # Multi-line help explaining the option group's meaning in | ||
355 | # some detail, terminated by indentation level. | ||
356 | # | ||
357 | -# defines an option group whose variable is OPTION_GROUP_NAME, with | ||
358 | +# defines an option group whose variable is GROUP_NAME, with | ||
359 | # meaningful values 'y' (enabled) and 'n' (disabled). The | ||
360 | # documentation is formatted to be consumed by some sort of | ||
361 | # interactive configuration interface, but EGLIBC doesn't have such an | ||
362 | # interface yet. | ||
363 | # | ||
364 | -# An option may have a 'depends' line, indicating which other options | ||
365 | +# An option may have a 'depends on' line, indicating which other options | ||
366 | # must also be enabled if this option is. At present, EGLIBC doesn't | ||
367 | # check that these dependencies are satisfied. | ||
368 | # | ||
369 | @@ -41,9 +41,9 @@ | ||
370 | # although this simply reestablishes the value already set by | ||
371 | # 'option-groups.defaults'. | ||
372 | |||
373 | -config OPTION_EGLIBC_ADVANCED_INET6 | ||
374 | +config EGLIBC_ADVANCED_INET6 | ||
375 | bool "IPv6 Advanced Sockets API support (RFC3542)" | ||
376 | - depends OPTION_EGLIBC_INET | ||
377 | + depends on EGLIBC_INET | ||
378 | help | ||
379 | This option group includes the functions specified by RFC 3542, | ||
380 | "Advanced Sockets Application Program Interface (API) for | ||
381 | @@ -71,7 +71,7 @@ | ||
382 | inet6_rth_segments | ||
383 | inet6_rth_space | ||
384 | |||
385 | -config OPTION_EGLIBC_BACKTRACE | ||
386 | +config EGLIBC_BACKTRACE | ||
387 | bool "Functions for producing backtraces" | ||
388 | help | ||
389 | This option group includes functions for producing a list of | ||
390 | @@ -85,7 +85,7 @@ | ||
391 | backtrace_symbols | ||
392 | backtrace_symbols_fd | ||
393 | |||
394 | -config OPTION_EGLIBC_BIG_MACROS | ||
395 | +config EGLIBC_BIG_MACROS | ||
396 | bool "Use extensive inline code" | ||
397 | help | ||
398 | This option group specifies whether certain pieces of code | ||
399 | @@ -93,7 +93,7 @@ | ||
400 | group is not selected, function calls will be used instead, | ||
401 | hence reducing the library footprint. | ||
402 | |||
403 | -config OPTION_EGLIBC_BSD | ||
404 | +config EGLIBC_BSD | ||
405 | bool "BSD-specific functions, and their compatibility stubs" | ||
406 | help | ||
407 | This option group includes functions specific to BSD kernels. | ||
408 | @@ -109,10 +109,9 @@ | ||
409 | revoke | ||
410 | setlogin | ||
411 | |||
412 | -config OPTION_EGLIBC_CXX_TESTS | ||
413 | +config EGLIBC_CXX_TESTS | ||
414 | bool "Tests that link against the standard C++ library." | ||
415 | - depends OPTION_POSIX_WIDE_CHAR_DEVICE_IO | ||
416 | - depends OPTION_EGLIBC_LIBM | ||
417 | + depends on POSIX_WIDE_CHAR_DEVICE_IO && EGLIBC_LIBM | ||
418 | help | ||
419 | This option group does not include any C library functions; | ||
420 | instead, it controls which EGLIBC tests an ordinary 'make | ||
421 | @@ -121,23 +120,22 @@ | ||
422 | run. | ||
423 | |||
424 | The standard C++ library depends on the math library 'libm' and | ||
425 | - the wide character I/O functions included in EGLIBC. If those | ||
426 | - option groups are disabled, this test must also be disabled. | ||
427 | + the wide character I/O functions included in EGLIBC. So those | ||
428 | + option groups must be enabled if this test is enabled. | ||
429 | |||
430 | -config OPTION_EGLIBC_CATGETS | ||
431 | +config EGLIBC_CATGETS | ||
432 | bool "Functions for accessing message catalogs" | ||
433 | - depends OPTION_EGLIBC_LOCALE_CODE | ||
434 | + depends on EGLIBC_LOCALE_CODE | ||
435 | help | ||
436 | This option group includes functions for accessing message | ||
437 | catalogs: catopen, catclose, and catgets. | ||
438 | |||
439 | - This option group depends on the OPTION_EGLIBC_LOCALE_CODE | ||
440 | - option group; if you disable that, you must also disable this. | ||
441 | + This option group depends on the EGLIBC_LOCALE_CODE | ||
442 | + option group. | ||
443 | |||
444 | -config OPTION_EGLIBC_CHARSETS | ||
445 | +config EGLIBC_CHARSETS | ||
446 | bool "iconv/gconv character set conversion libraries" | ||
447 | help | ||
448 | - | ||
449 | This option group includes support for character sets other | ||
450 | than ASCII (ANSI_X3.4-1968) and Unicode and ISO-10646 in their | ||
451 | various encodings. This affects both the character sets | ||
452 | @@ -198,16 +196,16 @@ | ||
453 | WCHAR_T - EGLIBC's internal form (target-endian, | ||
454 | 32-bit ISO 10646) | ||
455 | |||
456 | -config OPTION_EGLIBC_CRYPT | ||
457 | +config EGLIBC_CRYPT | ||
458 | bool "Encryption library" | ||
459 | help | ||
460 | This option group includes the `libcrypt' library which | ||
461 | provides functions for one-way encryption. Supported | ||
462 | encryption algorithms include MD5, SHA-256, SHA-512 and DES. | ||
463 | |||
464 | -config OPTION_EGLIBC_CRYPT_UFC | ||
465 | +config EGLIBC_CRYPT_UFC | ||
466 | bool "Ultra fast `crypt' implementation" | ||
467 | - depends OPTION_EGLIBC_CRYPT | ||
468 | + depends on EGLIBC_CRYPT | ||
469 | help | ||
470 | This option group provides ultra fast DES-based implementation of | ||
471 | the `crypt' function. When this option group is disabled, | ||
472 | @@ -216,7 +214,7 @@ | ||
473 | errno to ENOSYS if /salt/ passed does not correspond to either MD5, | ||
474 | SHA-256 or SHA-512 algorithm. | ||
475 | |||
476 | -config OPTION_EGLIBC_DB_ALIASES | ||
477 | +config EGLIBC_DB_ALIASES | ||
478 | bool "Functions for accessing the mail aliases database" | ||
479 | help | ||
480 | This option group includues functions for looking up mail | ||
481 | @@ -233,7 +231,7 @@ | ||
482 | When this option group is disabled, the NSS service libraries | ||
483 | also lack support for querying their mail alias tables. | ||
484 | |||
485 | -config OPTION_EGLIBC_ENVZ | ||
486 | +config EGLIBC_ENVZ | ||
487 | bool "Functions for handling envz-style environment vectors." | ||
488 | help | ||
489 | This option group contains functions for creating and operating | ||
490 | @@ -248,7 +246,7 @@ | ||
491 | envz_entry envz_remove | ||
492 | envz_get envz_strip | ||
493 | |||
494 | -config OPTION_EGLIBC_FCVT | ||
495 | +config EGLIBC_FCVT | ||
496 | bool "Functions for converting floating-point numbers to strings" | ||
497 | help | ||
498 | This option group includes functions for converting | ||
499 | @@ -262,14 +260,14 @@ | ||
500 | fcvt_r qfcvt_r | ||
501 | gcvt qgcvt | ||
502 | |||
503 | -config OPTION_EGLIBC_FMTMSG | ||
504 | +config EGLIBC_FMTMSG | ||
505 | bool "Functions for formatting messages" | ||
506 | help | ||
507 | This option group includes the following functions: | ||
508 | |||
509 | addseverity fmtmsg | ||
510 | |||
511 | -config OPTION_EGLIBC_FSTAB | ||
512 | +config EGLIBC_FSTAB | ||
513 | bool "Access functions for 'fstab'" | ||
514 | help | ||
515 | This option group includes functions for reading the mount | ||
516 | @@ -283,7 +281,7 @@ | ||
517 | getfsent setfsent | ||
518 | getfsfile | ||
519 | |||
520 | -config OPTION_EGLIBC_FTRAVERSE | ||
521 | +config EGLIBC_FTRAVERSE | ||
522 | bool "Functions for traversing file hierarchies" | ||
523 | help | ||
524 | This option group includes functions for traversing file | ||
525 | @@ -297,9 +295,9 @@ | ||
526 | fts_set nftw64 | ||
527 | fts_close | ||
528 | |||
529 | -config OPTION_EGLIBC_GETLOGIN | ||
530 | +config EGLIBC_GETLOGIN | ||
531 | bool "The getlogin function" | ||
532 | - depends OPTION_EGLIBC_UTMP | ||
533 | + depends on EGLIBC_UTMP | ||
534 | help | ||
535 | This function group includes the 'getlogin' and 'getlogin_r' | ||
536 | functions, which return the user name associated by the login | ||
537 | @@ -309,17 +307,17 @@ | ||
538 | fall back on 'getlogin' to find the user's login name for tilde | ||
539 | expansion when the 'HOME' environment variable is not set. | ||
540 | |||
541 | -config OPTION_EGLIBC_IDN | ||
542 | +config EGLIBC_IDN | ||
543 | bool "International domain names support" | ||
544 | help | ||
545 | This option group includes the `libcidn' library which | ||
546 | provides support for international domain names. | ||
547 | |||
548 | -config OPTION_EGLIBC_INET | ||
549 | +config EGLIBC_INET | ||
550 | bool "Networking support" | ||
551 | help | ||
552 | This option group includes networking-specific functions and | ||
553 | - data. With OPTION_EGLIBC_INET disabled, the EGLIBC | ||
554 | + data. With EGLIBC_INET disabled, the EGLIBC | ||
555 | installation and API changes as follows: | ||
556 | |||
557 | - The following libraries are not installed: | ||
558 | @@ -439,14 +437,14 @@ | ||
559 | use Unix-domain sockets to communicate with the syslog daemon; | ||
560 | syslog is valuable in non-networked contexts. | ||
561 | |||
562 | -config OPTION_EGLIBC_INET_ANL | ||
563 | +config EGLIBC_INET_ANL | ||
564 | bool "Asynchronous name lookup" | ||
565 | - depends OPTION_EGLIBC_INET | ||
566 | + depends on EGLIBC_INET | ||
567 | help | ||
568 | This option group includes the `libanl' library which | ||
569 | provides support for asynchronous name lookup. | ||
570 | |||
571 | -config OPTION_EGLIBC_LIBM | ||
572 | +config EGLIBC_LIBM | ||
573 | bool "libm (math library)" | ||
574 | help | ||
575 | This option group includes the 'libm' library, containing | ||
576 | @@ -464,8 +462,9 @@ | ||
577 | group, you will not be able to build 'libstdc++' against the | ||
578 | resulting EGLIBC installation. | ||
579 | |||
580 | -config OPTION_EGLIBC_LIBM_BIG | ||
581 | +config EGLIBC_LIBM_BIG | ||
582 | bool "Math library size" | ||
583 | + depends on EGLIBC_LIBM | ||
584 | help | ||
585 | This option group enables default configuration of the math library. | ||
586 | Not selecting this option group removes most of the extended and | ||
587 | @@ -477,7 +476,7 @@ | ||
588 | This option group is useful for systems that do not rely on precise | ||
589 | floating point math. | ||
590 | |||
591 | -config OPTION_EGLIBC_LOCALES | ||
592 | +config EGLIBC_LOCALES | ||
593 | bool "Locale definitions" | ||
594 | help | ||
595 | This option group includes all locale definitions other than | ||
596 | @@ -485,17 +484,17 @@ | ||
597 | only the "C" locale is supported. | ||
598 | |||
599 | |||
600 | -config OPTION_EGLIBC_LOCALE_CODE | ||
601 | +config EGLIBC_LOCALE_CODE | ||
602 | bool "Locale functions" | ||
603 | - depends OPTION_POSIX_C_LANG_WIDE_CHAR | ||
604 | + depends on POSIX_C_LANG_WIDE_CHAR | ||
605 | help | ||
606 | This option group includes locale support functions, programs, | ||
607 | - and libraries. With OPTION_EGLIBC_LOCALE_FUNCTIONS disabled, | ||
608 | + and libraries. With EGLIBC_LOCALE_CODE disabled, | ||
609 | EGLIBC supports only the 'C' locale (also known as 'POSIX'), | ||
610 | and ignores the settings of the 'LANG' and 'LC_*' environment | ||
611 | variables. | ||
612 | |||
613 | - With OPTION_EGLIBC_LOCALE_CODE disabled, the following | ||
614 | + With EGLIBC_LOCALE_CODE disabled, the following | ||
615 | functions are omitted from libc: | ||
616 | |||
617 | duplocale localeconv nl_langinfo rpmatch strfmon_l | ||
618 | @@ -504,46 +503,43 @@ | ||
619 | Furthermore, only the LC_CTYPE and LC_TIME categories of the | ||
620 | standard "C" locale are available. | ||
621 | |||
622 | - The OPTION_EGLIBC_CATGETS option group depends on this option | ||
623 | - group; if you disable OPTION_EGLIBC_LOCALE_CODE, you must also | ||
624 | - disable OPTION_EGLIBC_CATGETS. | ||
625 | + The EGLIBC_CATGETS option group depends on this option group. | ||
626 | + | ||
627 | |||
628 | -config OPTION_EGLIBC_MEMUSAGE | ||
629 | +config EGLIBC_MEMUSAGE | ||
630 | bool "Memory profiling library" | ||
631 | help | ||
632 | This option group includes the `libmemusage' library and | ||
633 | the `memusage' and `memusagestat' utilities. | ||
634 | These components provide memory profiling functions. | ||
635 | |||
636 | - OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
637 | + EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
638 | |||
639 | Libmemusage library buffers the profiling data in memory | ||
640 | before writing it out to disk. By default, the library | ||
641 | allocates 1.5M buffer, which can be substantial for some | ||
642 | - systems. OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option | ||
643 | + systems. EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option | ||
644 | allows to change the default buffer size. It specifies | ||
645 | the number of entries the buffer should have. | ||
646 | On most architectures one buffer entry amounts to 48 bytes, | ||
647 | so setting this option to the value of 512 will reduce the size of | ||
648 | the memory buffer to 24K. | ||
649 | |||
650 | -config OPTION_EGLIBC_NIS | ||
651 | +config EGLIBC_NIS | ||
652 | bool "Support for NIS, NIS+, and the special 'compat' services." | ||
653 | - depends OPTION_EGLIBC_INET | ||
654 | - depends OPTION_EGLIBC_SUNRPC | ||
655 | + depends on EGLIBC_INET && EGLIBC_SUNRPC | ||
656 | help | ||
657 | This option group includes the NIS, NIS+, and 'compat' Name | ||
658 | Service Switch service libraries. When it is disabled, those | ||
659 | services libraries are not installed; you should remove any | ||
660 | references to them from your 'nsswitch.conf' file. | ||
661 | |||
662 | - This option group depends on the OPTION_EGLIBC_INET option | ||
663 | + This option group depends on the EGLIBC_INET option | ||
664 | group; you must enable that to enable this option group. | ||
665 | |||
666 | -config OPTION_EGLIBC_NSSWITCH | ||
667 | +config EGLIBC_NSSWITCH | ||
668 | bool "Name service switch (nsswitch) support" | ||
669 | help | ||
670 | - | ||
671 | This option group includes support for the 'nsswitch' facility. | ||
672 | With this option group enabled, all EGLIBC functions for | ||
673 | accessing various system databases (passwords and groups; | ||
674 | @@ -557,12 +553,12 @@ | ||
675 | 'option-groups.config' file must set the following two | ||
676 | variables: | ||
677 | |||
678 | - OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG | ||
679 | + EGLIBC_NSSWITCH_FIXED_CONFIG | ||
680 | |||
681 | Set this to the name of a file whose contents observe the | ||
682 | same syntax as an ordinary '/etc/nsswitch.conf' file. The | ||
683 | EGLIBC build process parses this file just as EGLIBC would | ||
684 | - at run time if OPTION_EGLIBC_NSSWITCH were enabled, and | ||
685 | + at run time if EGLIBC_NSSWITCH were enabled, and | ||
686 | produces a C library that uses the nsswitch service | ||
687 | libraries to search for database entries as this file | ||
688 | specifies, instead of consulting '/etc/nsswitch.conf' at run | ||
689 | @@ -580,7 +576,7 @@ | ||
690 | you will probably want to delete references to databases not | ||
691 | needed on your system. | ||
692 | |||
693 | - OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS | ||
694 | + EGLIBC_NSSWITCH_FIXED_FUNCTIONS | ||
695 | |||
696 | The EGLIBC build process uses this file to decide which | ||
697 | functions to make available from which service libraries. | ||
698 | @@ -598,28 +594,28 @@ | ||
699 | Be sure to mention each function in each service you wish to | ||
700 | use. If you do not mention a service's function here, the | ||
701 | EGLIBC database access functions will not find it, even if | ||
702 | - it is listed in the OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG | ||
703 | + it is listed in the EGLIBC_NSSWITCH_FIXED_CONFIG | ||
704 | file. | ||
705 | |||
706 | - In this arrangement, EGLIBC will not use the 'dlopen' and | ||
707 | - 'dlsym' functions to find database access functions. Instead, | ||
708 | - libc hard-codes references to the service libraries' database | ||
709 | - access functions. You must explicitly link your program | ||
710 | - against the name service libraries (those whose names start | ||
711 | - with 'libnss_', in the sysroot's '/lib' directory) whose | ||
712 | - functions you intend to use. This arrangement helps | ||
713 | - system-wide static analysis tools decide which functions a | ||
714 | - system actually uses. | ||
715 | - | ||
716 | - Note that some nsswitch service libraries require other option | ||
717 | - groups to be enabled; for example, the OPTION_EGLIBC_INET | ||
718 | - option group must be enabled to use the 'libnss_dns.so.2' | ||
719 | - service library, which uses the Domain Name System network | ||
720 | - protocol to answer queries. | ||
721 | + In this arrangement, EGLIBC will not use the 'dlopen' and | ||
722 | + 'dlsym' functions to find database access functions. Instead, | ||
723 | + libc hard-codes references to the service libraries' database | ||
724 | + access functions. You must explicitly link your program | ||
725 | + against the name service libraries (those whose names start | ||
726 | + with 'libnss_', in the sysroot's '/lib' directory) whose | ||
727 | + functions you intend to use. This arrangement helps | ||
728 | + system-wide static analysis tools decide which functions a | ||
729 | + system actually uses. | ||
730 | + | ||
731 | + Note that some nsswitch service libraries require other option | ||
732 | + groups to be enabled; for example, the EGLIBC_INET | ||
733 | + option group must be enabled to use the 'libnss_dns.so.2' | ||
734 | + service library, which uses the Domain Name System network | ||
735 | + protocol to answer queries. | ||
736 | |||
737 | -config OPTION_EGLIBC_RCMD | ||
738 | +config EGLIBC_RCMD | ||
739 | bool "Support for 'rcmd' and related library functions" | ||
740 | - depends OPTION_EGLIBC_INET | ||
741 | + depends on EGLIBC_INET | ||
742 | help | ||
743 | This option group includes functions for running commands on | ||
744 | remote machines via the 'rsh' protocol, and doing authentication | ||
745 | @@ -635,7 +631,7 @@ | ||
746 | rresvport ruserpass | ||
747 | rresvport_af | ||
748 | |||
749 | -config OPTION_EGLIBC_RTLD_DEBUG | ||
750 | +config EGLIBC_RTLD_DEBUG | ||
751 | bool "Runtime linker debug print outs" | ||
752 | help | ||
753 | This option group enables debug output of the runtime linker | ||
754 | @@ -646,7 +642,7 @@ | ||
755 | the `ldd' utility which may also be used by the prelinker. | ||
756 | In particular, the `--unused' ldd option will not work correctly. | ||
757 | |||
758 | -config OPTION_EGLIBC_SPAWN | ||
759 | +config EGLIBC_SPAWN | ||
760 | bool "Support for POSIX posix_spawn functions" | ||
761 | help | ||
762 | This option group includes the POSIX functions for executing | ||
763 | @@ -682,7 +678,7 @@ | ||
764 | disabled, those programs will only operate on uncompressed | ||
765 | charmap files. | ||
766 | |||
767 | -config OPTION_EGLIBC_STREAMS | ||
768 | +config EGLIBC_STREAMS | ||
769 | bool "Support for accessing STREAMS." | ||
770 | help | ||
771 | This option group includes functions for reading and writing | ||
772 | @@ -698,14 +694,14 @@ | ||
773 | isastream fdetach | ||
774 | putmsg | ||
775 | |||
776 | -config OPTION_EGLIBC_SUNRPC | ||
777 | +config EGLIBC_SUNRPC | ||
778 | bool "Support for the Sun 'RPC' protocol." | ||
779 | - depends OPTION_EGLIBC_INET | ||
780 | + depends on EGLIBC_INET | ||
781 | help | ||
782 | This option group includes support for the Sun RPC protocols, | ||
783 | including the 'rpcgen' and 'rpcinfo' programs. | ||
784 | |||
785 | -config OPTION_EGLIBC_UTMP | ||
786 | +config EGLIBC_UTMP | ||
787 | bool "Older access functions for 'utmp' login records" | ||
788 | help | ||
789 | This option group includes the older 'utent' family of | ||
790 | @@ -732,9 +728,9 @@ | ||
791 | |||
792 | libutil.so (and libutil.a) | ||
793 | |||
794 | -config OPTION_EGLIBC_UTMPX | ||
795 | +config EGLIBC_UTMPX | ||
796 | bool "POSIX access functions for 'utmp' login records" | ||
797 | - depends OPTION_EGLIBC_UTMP | ||
798 | + depends on EGLIBC_UTMP | ||
799 | help | ||
800 | This option group includes the POSIX functions for reading and | ||
801 | writing user login records in the 'utmp' file (usually | ||
802 | @@ -755,21 +751,21 @@ | ||
803 | updwtmpx | ||
804 | utmpxname | ||
805 | |||
806 | -config OPTION_EGLIBC_WORDEXP | ||
807 | +config EGLIBC_WORDEXP | ||
808 | bool "Shell-style word expansion" | ||
809 | help | ||
810 | This option group includes the 'wordexp' function for | ||
811 | performing word expansion in the manner of the shell, and the | ||
812 | accompanying 'wordfree' function. | ||
813 | |||
814 | -config OPTION_POSIX_C_LANG_WIDE_CHAR | ||
815 | +config POSIX_C_LANG_WIDE_CHAR | ||
816 | bool "ISO C library wide character functions, excluding I/O" | ||
817 | help | ||
818 | This option group includes the functions defined by the ISO C | ||
819 | standard for working with wide and multibyte characters in | ||
820 | memory. Functions for reading and writing wide and multibyte | ||
821 | characters from and to files call in the | ||
822 | - OPTION_POSIX_WIDE_CHAR_DEVICE_IO option group. | ||
823 | + POSIX_WIDE_CHAR_DEVICE_IO option group. | ||
824 | |||
825 | This option group includes the following functions: | ||
826 | |||
827 | @@ -791,14 +787,14 @@ | ||
828 | mbrlen wcscoll wcstol | ||
829 | mbrtowc wcscpy wcstold | ||
830 | |||
831 | -config OPTION_POSIX_REGEXP | ||
832 | +config POSIX_REGEXP | ||
833 | bool "Regular expressions" | ||
834 | help | ||
835 | This option group includes the POSIX regular expression | ||
836 | functions, and the associated non-POSIX extensions and | ||
837 | compatibility functions. | ||
838 | |||
839 | - With OPTION_POSIX_REGEXP disabled, the following functions are | ||
840 | + With POSIX_REGEXP disabled, the following functions are | ||
841 | omitted from libc: | ||
842 | |||
843 | re_comp re_max_failures regcomp | ||
844 | @@ -812,9 +808,9 @@ | ||
845 | <regexp.h> header file, 'compile', 'step', and 'advance', is | ||
846 | omitted. | ||
847 | |||
848 | -config OPTION_POSIX_REGEXP_GLIBC | ||
849 | +config POSIX_REGEXP_GLIBC | ||
850 | bool "Regular expressions from GLIBC" | ||
851 | - depends OPTION_POSIX_REGEXP | ||
852 | + depends on POSIX_REGEXP | ||
853 | help | ||
854 | This option group specifies which regular expression | ||
855 | library to use. The choice is between regex | ||
856 | @@ -823,9 +819,9 @@ | ||
857 | optimized for speed; regex from libiberty is more than twice | ||
858 | as small while still is enough for most practical purposes. | ||
859 | |||
860 | -config OPTION_POSIX_WIDE_CHAR_DEVICE_IO | ||
861 | +config POSIX_WIDE_CHAR_DEVICE_IO | ||
862 | bool "Input and output functions for wide characters" | ||
863 | - depends OPTION_POSIX_C_LANG_WIDE_CHAR | ||
864 | + depends on POSIX_C_LANG_WIDE_CHAR | ||
865 | help | ||
866 | This option group includes functions for reading and writing | ||
867 | wide characters to and from <stdio.h> streams. | ||
868 | Index: libc/Makefile | ||
869 | =================================================================== | ||
870 | --- libc.orig/Makefile 2012-08-21 22:25:54.000000000 -0700 | ||
871 | +++ libc/Makefile 2012-09-05 21:44:09.773577578 -0700 | ||
872 | @@ -24,6 +24,7 @@ | ||
873 | |||
874 | include Makeconfig | ||
875 | |||
876 | +include options-config/Makefile | ||
877 | |||
878 | # This is the default target; it makes everything except the tests. | ||
879 | .PHONY: all | ||
880 | Index: libc/configure | ||
881 | =================================================================== | ||
882 | --- libc.orig/configure 2012-09-05 21:40:19.000000000 -0700 | ||
883 | +++ libc/configure 2012-09-05 21:44:09.777577578 -0700 | ||
884 | @@ -628,6 +628,7 @@ | ||
885 | libc_cv_have_bash2 | ||
886 | BASH_SHELL | ||
887 | libc_cv_gcc_static_libgcc | ||
888 | +KCONFIG_TOOLS | ||
889 | CXX_SYSINCLUDES | ||
890 | SYSINCLUDES | ||
891 | AUTOCONF | ||
892 | @@ -735,6 +736,7 @@ | ||
893 | with_binutils | ||
894 | with_selinux | ||
895 | with_headers | ||
896 | +with_kconfig | ||
897 | with_default_link | ||
898 | enable_sanity_checks | ||
899 | enable_shared | ||
900 | @@ -1425,6 +1427,9 @@ | ||
901 | --with-selinux if building with SELinux support | ||
902 | --with-headers=PATH location of system headers to use (for example | ||
903 | /usr/src/linux/include) [default=compiler default] | ||
904 | + --with-kconfig=PATH location of kconfig tools to use (from Linux kernel | ||
905 | + builds) to re-use for configuring EGLIBC option | ||
906 | + groups | ||
907 | --with-default-link do not use explicit linker scripts | ||
908 | --with-pkgversion=PKG Use PKG in the version string in place of "EGLIBC" | ||
909 | --with-bugurl=URL Direct users to URL to report a bug | ||
910 | @@ -3485,6 +3490,14 @@ | ||
911 | |||
912 | |||
913 | |||
914 | +# Check whether --with-kconfig was given. | ||
915 | +if test "${with_kconfig+set}" = set; then | ||
916 | + withval=$with_kconfig; KCONFIG_TOOLS=$withval | ||
917 | +else | ||
918 | + KCONFIG_TOOLS='' | ||
919 | +fi | ||
920 | + | ||
921 | + | ||
922 | |||
923 | # Check whether --with-default-link was given. | ||
924 | if test "${with_default_link+set}" = set; then : | ||
925 | Index: libc/EGLIBC.option-groups | ||
926 | =================================================================== | ||
927 | --- libc.orig/EGLIBC.option-groups 2012-08-21 22:26:20.000000000 -0700 | ||
928 | +++ libc/EGLIBC.option-groups 2012-09-05 21:44:09.777577578 -0700 | ||
929 | @@ -56,33 +56,9 @@ | ||
930 | |||
931 | The Option Groups | ||
932 | |||
933 | -EGLIBC currently implements the following option groups, also | ||
934 | -documented in the file 'option-groups.def': | ||
935 | - | ||
936 | -OPTION_EGLIBC_CATGETS | ||
937 | - This option group includes functions for accessing message | ||
938 | - catalogs: catopen, catclose, and catgets. | ||
939 | - | ||
940 | -OPTION_EGLIBC_LOCALES | ||
941 | - This option group includes all locale definitions other than | ||
942 | - those for the "C" locale. If this option group is omitted, then | ||
943 | - only the "C" locale is supported. | ||
944 | - | ||
945 | -OPTION_EGLIBC_LIBM | ||
946 | - This option group includes the 'libm' library, containing | ||
947 | - mathematical functions. If this option group is omitted, then | ||
948 | - an EGLIBC installation does not include shared or unshared versions | ||
949 | - of the math library. | ||
950 | - | ||
951 | - Note that this does not remove all floating-point related | ||
952 | - functionality from EGLIBC; for example, 'printf' and 'scanf' | ||
953 | - can still print and read floating-point values with this option | ||
954 | - group disabled. | ||
955 | - | ||
956 | - Note that the ISO Standard C++ library 'libstdc++' depends on | ||
957 | - EGLIBC's math library 'libm'. If you disable this option | ||
958 | - group, you will not be able to build 'libstdc++' against the | ||
959 | - resulting EGLIBC installation. | ||
960 | +To see the current full list of implemented option groups, refer to the | ||
961 | +file 'option-groups.def' at the top of the source tree, or run | ||
962 | +'make menuconfig' from the top-level build directory. | ||
963 | |||
964 | The POSIX.1-2001 specification includes a suggested partition of all | ||
965 | the functions in the POSIX C API into option groups: math functions | ||
966 | @@ -110,6 +86,18 @@ | ||
967 | OPTION_EGLIBC_LOCALES = n | ||
968 | OPTION_EGLIBC_LIBM = y | ||
969 | |||
970 | +Like the Linux kernel, EGLIBC supports a similar set of '*config' make | ||
971 | +targets to make it easier to create 'option-groups.config', with all | ||
972 | +dependencies between option groups automatically satisfied. Run | ||
973 | +'make help' to see the list of supported make config targets. For | ||
974 | +example, 'make menuconfig' will update the current config utilising a | ||
975 | +menu based program. | ||
976 | + | ||
977 | +The option group names and their type (boolean, int, hex, string), help | ||
978 | +description, and dependencies with other option groups, are described by | ||
979 | +'option-groups.def' at the top of the source tree, analogous to the | ||
980 | +'Kconfig' files in the Linux kernel. | ||
981 | + | ||
982 | In general, each option group variable controls whether a given set of | ||
983 | object files in EGLIBC is compiled and included in the final | ||
984 | libraries, or omitted from the build. | ||
985 | @@ -132,22 +120,3 @@ | ||
986 | |||
987 | We have used the system to subset some portions of EGLIBC's | ||
988 | functionality. It needs to be extended to cover more of the library. | ||
989 | - | ||
990 | -At the moment, EGLIBC performs no sanity checks on the contents of | ||
991 | -'option-groups.config'; if an option group's name is mistyped, the | ||
992 | -option group is silently included in the build. EGLIBC should check | ||
993 | -that all variables set in 'option-groups.config' are proper option | ||
994 | -group names, and that their values are appropriate. | ||
995 | - | ||
996 | -Some portions of EGLIBC depend on others; for example, the Sun Remote | ||
997 | -Procedure Call functions in 'sunrpc' depend on the networking | ||
998 | -functions in 'inet'. The sanity checking described above should check | ||
999 | -that the selection configuration satisfies dependencies within EGLIBC, | ||
1000 | -and produce a legible error message if it does not. At the moment, | ||
1001 | -inconsistent configurations produce link errors late in the build | ||
1002 | -process. | ||
1003 | - | ||
1004 | -The Linux kernel's configuration system provides interactive | ||
1005 | -interfaces for creating and modifying configuration files (which also | ||
1006 | -perform the sanity checking and dependency tracking described above). | ||
1007 | -EGLIBC should provide similar interfaces. | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/meta/recipes-core/eglibc/eglibc-2.17/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch new file mode 100644 index 0000000000..a8463ea915 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From 713d822908d1b2ae8403af7f9375c7054ed3dd49 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ting Liu <b28495@freescale.com> | ||
3 | Date: Wed, 19 Dec 2012 04:39:57 -0600 | ||
4 | Subject: [PATCH] eglibc: run libm-err-tab.pl with specific dirs in ${S} | ||
5 | |||
6 | libm-err-tab.pl will parse all the files named "libm-test-ulps" | ||
7 | in the given dir recursively. To avoid parsing the one in | ||
8 | ${S}/.pc/ (it does exist after eglibc adds aarch64 support, | ||
9 | ${S}/.pc/aarch64-0001-glibc-fsf-v1-eaf6f205.patch/ports/sysdeps/ | ||
10 | aarch64/libm-test-ulps), run libm-err-tab.pl with specific dirs | ||
11 | in ${S}. | ||
12 | |||
13 | Upstream-Status: inappropriate [OE specific] | ||
14 | |||
15 | Signed-off-by: Ting Liu <b28495@freescale.com> | ||
16 | --- | ||
17 | manual/Makefile | 3 ++- | ||
18 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
19 | |||
20 | diff --git a/manual/Makefile b/manual/Makefile | ||
21 | index 6fddff0..7af242e 100644 | ||
22 | --- a/manual/Makefile | ||
23 | +++ b/manual/Makefile | ||
24 | @@ -109,7 +109,8 @@ $(objpfx)libm-err.texi: $(objpfx)stamp-libm-err | ||
25 | $(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ | ||
26 | $(dir)/libm-test-ulps)) | ||
27 | pwd=`pwd`; \ | ||
28 | - $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp | ||
29 | + $(PERL) $< $$pwd/../ports > $(objpfx)libm-err-tmp | ||
30 | + $(PERL) $< $$pwd/../sysdeps >> $(objpfx)libm-err-tmp | ||
31 | $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi | ||
32 | touch $@ | ||
33 | |||
34 | -- | ||
35 | 1.7.9.7 | ||
36 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/0002-eglibc-menuconfig-hex-string-options.patch b/meta/recipes-core/eglibc/eglibc-2.17/0002-eglibc-menuconfig-hex-string-options.patch new file mode 100644 index 0000000000..7caba48112 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/0002-eglibc-menuconfig-hex-string-options.patch | |||
@@ -0,0 +1,169 @@ | |||
1 | pulled from | ||
2 | |||
3 | http://www.eglibc.org/archives/patches/msg01043.html | ||
4 | |||
5 | |||
6 | Upstream-Status: Pending | ||
7 | Signed-off-by: Khem | ||
8 | |||
9 | |||
10 | This patch builds on the menuconfig patch for EGLIBC. | ||
11 | |||
12 | |||
13 | There are a few options that have non-boolean types, that would benefit from the new 'make *config' support: | ||
14 | |||
15 | EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE (int) | ||
16 | EGLIBC_NSSWITCH_FIXED_CONFIG (string) | ||
17 | EGLIBC_NSSWITCH_FIXED_FUNCTIONS (string) | ||
18 | |||
19 | |||
20 | The patch converts these to real options in libc/option-groups.def. Also, libc/scripts/option-groups.awk is modified to output a '#define' line for int, hex, or string options encountered in the config file. | ||
21 | |||
22 | In the post-processing script config-postproc.pl, a small change is needed: for any boolean option FOO that is implicitly disabled in the kconfig output, make sure that option is indeed a boolean before printing the explicit OPTION_FOO=n. | ||
23 | |||
24 | Finally, libc/malloc/Makefile passes __OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE as a CPPFLAGS, which is not necessary anymore because this macro will now be present in the generated header. | ||
25 | |||
26 | attached is the updated patch to address above issues. | ||
27 | |||
28 | Steve | ||
29 | |||
30 | -- | ||
31 | Steve Longerbeam | Senior Embedded Engineer, ESD Services | ||
32 | Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538 | ||
33 | P 510.354.5838 | M 408.410.2735 | ||
34 | Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS | ||
35 | |||
36 | |||
37 | Index: libc/malloc/Makefile | ||
38 | =================================================================== | ||
39 | --- libc.orig/malloc/Makefile 2012-01-04 22:06:18.000000000 -0800 | ||
40 | +++ libc/malloc/Makefile 2012-05-09 19:35:28.598682105 -0700 | ||
41 | @@ -48,10 +48,6 @@ | ||
42 | ifeq ($(OPTION_EGLIBC_MEMUSAGE),y) | ||
43 | extra-libs = libmemusage | ||
44 | extra-libs-others = $(extra-libs) | ||
45 | - | ||
46 | -ifdef OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
47 | -CPPFLAGS-memusage += -D__OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE=$(OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE) | ||
48 | -endif | ||
49 | endif | ||
50 | |||
51 | libmemusage-routines = memusage | ||
52 | Index: libc/option-groups.def | ||
53 | =================================================================== | ||
54 | --- libc.orig/option-groups.def 2012-05-09 19:33:48.398677256 -0700 | ||
55 | +++ libc/option-groups.def 2012-05-09 19:35:28.610682107 -0700 | ||
56 | @@ -513,8 +513,11 @@ | ||
57 | the `memusage' and `memusagestat' utilities. | ||
58 | These components provide memory profiling functions. | ||
59 | |||
60 | - EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
61 | - | ||
62 | +config EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
63 | + int "Memory profiling library buffer size" | ||
64 | + depends on EGLIBC_MEMUSAGE | ||
65 | + default "32768" | ||
66 | + help | ||
67 | Libmemusage library buffers the profiling data in memory | ||
68 | before writing it out to disk. By default, the library | ||
69 | allocates 1.5M buffer, which can be substantial for some | ||
70 | @@ -553,8 +556,11 @@ | ||
71 | 'option-groups.config' file must set the following two | ||
72 | variables: | ||
73 | |||
74 | - EGLIBC_NSSWITCH_FIXED_CONFIG | ||
75 | - | ||
76 | +config EGLIBC_NSSWITCH_FIXED_CONFIG | ||
77 | + string "Nsswitch fixed config filename" | ||
78 | + depends on !EGLIBC_NSSWITCH | ||
79 | + default "" | ||
80 | + help | ||
81 | Set this to the name of a file whose contents observe the | ||
82 | same syntax as an ordinary '/etc/nsswitch.conf' file. The | ||
83 | EGLIBC build process parses this file just as EGLIBC would | ||
84 | @@ -576,8 +582,11 @@ | ||
85 | you will probably want to delete references to databases not | ||
86 | needed on your system. | ||
87 | |||
88 | - EGLIBC_NSSWITCH_FIXED_FUNCTIONS | ||
89 | - | ||
90 | +config EGLIBC_NSSWITCH_FIXED_FUNCTIONS | ||
91 | + string "Nsswitch fixed functions filename" | ||
92 | + depends on !EGLIBC_NSSWITCH | ||
93 | + default "" | ||
94 | + help | ||
95 | The EGLIBC build process uses this file to decide which | ||
96 | functions to make available from which service libraries. | ||
97 | The file 'nss/fixed-nsswitch.functions' serves as a sample | ||
98 | Index: libc/options-config/config-postproc.pl | ||
99 | =================================================================== | ||
100 | --- libc.orig/options-config/config-postproc.pl 2012-05-09 19:33:36.530676681 -0700 | ||
101 | +++ libc/options-config/config-postproc.pl 2012-05-09 19:35:28.610682107 -0700 | ||
102 | @@ -8,7 +8,7 @@ | ||
103 | die "Could not open $ARGV[0]" unless -T $ARGV[0]; | ||
104 | |||
105 | sub yank { | ||
106 | - @option = grep($_ ne $_[0], @option); | ||
107 | + @option = grep(!($_ =~ /$_[0]\s*=/), @option); | ||
108 | } | ||
109 | |||
110 | open(DEFAULTS, $defaults) || die "Could not open $defaults\n"; | ||
111 | @@ -16,7 +16,7 @@ | ||
112 | # get the full list of available options using the default config file | ||
113 | $i = 0; | ||
114 | while (<DEFAULTS>) { | ||
115 | - if (/^\s*OPTION_(\w+)\s*=/) { | ||
116 | + if (/^\s*OPTION_(\w+\s*=.*$)/) { | ||
117 | $option[$i++] = $1; | ||
118 | } | ||
119 | } | ||
120 | @@ -35,8 +35,9 @@ | ||
121 | s/CONFIG_/OPTION_/g; | ||
122 | print; | ||
123 | } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) { | ||
124 | - # this is a comment line, change CONFIG_ to OPTION_, remove this | ||
125 | - # option from option list, and convert to explicit OPTION_FOO=n | ||
126 | + # this is a comment line for an unset boolean option, change CONFIG_ | ||
127 | + # to OPTION_, remove this option from option list, and convert to | ||
128 | + # explicit OPTION_FOO=n | ||
129 | $opt = $1; | ||
130 | yank($opt); | ||
131 | s/CONFIG_/OPTION_/g; | ||
132 | @@ -46,9 +47,12 @@ | ||
133 | } | ||
134 | } | ||
135 | |||
136 | -# any options left in @options, are options that were not mentioned in | ||
137 | +# any boolean options left in @options, are options that were not mentioned in | ||
138 | # the config file, and implicitly that means the option must be set =n, | ||
139 | # so do that here. | ||
140 | foreach $opt (@option) { | ||
141 | - print "OPTION_$opt=n\n"; | ||
142 | + if ($opt =~ /=\s*[yn]/) { | ||
143 | + $opt =~ s/=\s*[yn]/=n/; | ||
144 | + print "OPTION_$opt\n"; | ||
145 | + } | ||
146 | } | ||
147 | Index: libc/scripts/option-groups.awk | ||
148 | =================================================================== | ||
149 | --- libc.orig/scripts/option-groups.awk 2012-01-04 22:06:00.000000000 -0800 | ||
150 | +++ libc/scripts/option-groups.awk 2012-05-09 19:35:28.610682107 -0700 | ||
151 | @@ -46,9 +46,15 @@ | ||
152 | print "#define __" var " 1" | ||
153 | else if (vars[var] == "n") | ||
154 | print "/* #undef __" var " */" | ||
155 | - # Ignore variables that don't have boolean values. | ||
156 | - # Ideally, this would be driven by the types given in | ||
157 | - # option-groups.def. | ||
158 | + else if (vars[var] ~ /^[0-9]+/ || | ||
159 | + vars[var] ~ /^0x[0-9aAbBcCdDeEfF]+/ || | ||
160 | + vars[var] ~ /^\"/) | ||
161 | + print "#define __" var " " vars[var] | ||
162 | + else | ||
163 | + print "/* #undef __" var " */" | ||
164 | + # Ignore variables that don't have boolean, int, hex, or | ||
165 | + # string values. Ideally, this would be driven by the types | ||
166 | + # given in option-groups.def. | ||
167 | } | ||
168 | } | ||
169 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch b/meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch new file mode 100644 index 0000000000..d137f5b318 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/0003-eglibc-menuconfig-build-instructions.patch | |||
@@ -0,0 +1,176 @@ | |||
1 | Pulled from | ||
2 | |||
3 | http://www.eglibc.org/archives/patches/msg01035.html | ||
4 | |||
5 | Upstream-Status: Pending | ||
6 | Signed-off-by: Khem | ||
7 | |||
8 | As part of the menuconfig development, I encountered some outdated information in the cross-build instructions, libc/EGLIBC.cross-building. This patch updates the file with new (and tested) instructions. It is unrelated to the menuconfig support, but applies after. | ||
9 | |||
10 | My testing was done with an ARM target, and an x86_64 Linux host, so I converted the instructions to use those host/target types from the original i686/powerpc. Hope that's ok. | ||
11 | |||
12 | |||
13 | Thanks, | ||
14 | |||
15 | -- | ||
16 | Steve Longerbeam | Senior Embedded Engineer, ESD Services | ||
17 | Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538 | ||
18 | P 510.354.5838 | M 408.410.2735 | ||
19 | Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS | ||
20 | |||
21 | |||
22 | EGLIBC.cross-building | 59 +++++++++++++++++++++++++++++--------------------- | ||
23 | 1 file changed, 35 insertions(+), 24 deletions(-) | ||
24 | |||
25 | Index: libc/EGLIBC.cross-building | ||
26 | =================================================================== | ||
27 | --- libc.orig/EGLIBC.cross-building 2012-05-09 19:33:36.522676681 -0700 | ||
28 | +++ libc/EGLIBC.cross-building 2012-05-09 19:36:13.918684298 -0700 | ||
29 | @@ -47,31 +47,34 @@ | ||
30 | EGLIBC requires recent versions of the GNU binutils, GCC, and the | ||
31 | Linux kernel. The web page <http://www.eglibc.org/prerequisites> | ||
32 | documents the current requirements, and lists patches needed for | ||
33 | -certain target architectures. As of this writing, EGLIBC required | ||
34 | -binutils 2.17, GCC 4.1, and Linux 2.6.19.1. | ||
35 | +certain target architectures. As of this writing, these build | ||
36 | +instructions have been tested with binutils 2.22.51, GCC 4.6.2, | ||
37 | +and Linux 3.1. | ||
38 | |||
39 | First, let's set some variables, to simplify later commands. We'll | ||
40 | -build EGLIBC and GCC for a PowerPC target, known to the Linux kernel | ||
41 | -as 'powerpc', and we'll do the build on an Intel Linux box: | ||
42 | +build EGLIBC and GCC for an ARM target, known to the Linux kernel | ||
43 | +as 'arm', and we'll do the build on an Intel x86_64 Linux box: | ||
44 | |||
45 | - $ build=i686-pc-linux-gnu | ||
46 | + $ build=x86_64-pc-linux-gnu | ||
47 | $ host=$build | ||
48 | - $ target=powerpc-none-linux-gnu | ||
49 | - $ linux_arch=powerpc | ||
50 | + $ target=arm-none-linux-gnueabi | ||
51 | + $ linux_arch=arm | ||
52 | |||
53 | We're using the aforementioned versions of Binutils, GCC, and Linux: | ||
54 | |||
55 | - $ binutilsv=binutils-2.17 | ||
56 | - $ gccv=gcc-4.1.1 | ||
57 | - $ linuxv=linux-2.6.20 | ||
58 | + $ binutilsv=binutils-2.22.51 | ||
59 | + $ gccv=gcc-4.6.2 | ||
60 | + $ linuxv=linux-3.1 | ||
61 | |||
62 | We're carrying out the entire process under '~/cross-build', which | ||
63 | -contains unpacked source trees: | ||
64 | +contains unpacked source trees for binutils, gcc, and linux kernel, | ||
65 | +along with EGLIBC svn trunk (which can be checked-out with | ||
66 | +'svn co http://www.eglibc.org/svn/trunk eglibc'): | ||
67 | |||
68 | - $ top=$HOME/cross-build/ppc | ||
69 | + $ top=$HOME/cross-build/$target | ||
70 | $ src=$HOME/cross-build/src | ||
71 | $ ls $src | ||
72 | - binutils-2.17 gcc-4.1.1 libc linux-2.6.20 | ||
73 | + binutils-2.22.51 eglibc gcc-4.6.2 linux-3.1 | ||
74 | |||
75 | We're going to place our build directories in a subdirectory 'obj', | ||
76 | we'll install the cross-development toolchain in 'tools', and we'll | ||
77 | @@ -99,7 +102,7 @@ | ||
78 | |||
79 | The First GCC | ||
80 | |||
81 | -For our work, we need a cross-compiler targeting a PowerPC Linux | ||
82 | +For our work, we need a cross-compiler targeting an ARM Linux | ||
83 | system. However, that configuration includes the shared library | ||
84 | 'libgcc_s.so', which is compiled against the EGLIBC headers (which we | ||
85 | haven't installed yet) and linked against 'libc.so' (which we haven't | ||
86 | @@ -125,7 +128,8 @@ | ||
87 | > --prefix=$tools \ | ||
88 | > --without-headers --with-newlib \ | ||
89 | > --disable-shared --disable-threads --disable-libssp \ | ||
90 | - > --disable-libgomp --disable-libmudflap \ | ||
91 | + > --disable-libgomp --disable-libmudflap --disable-libquadmath \ | ||
92 | + > --disable-decimal-float --disable-libffi \ | ||
93 | > --enable-languages=c | ||
94 | $ PATH=$tools/bin:$PATH make | ||
95 | $ PATH=$tools/bin:$PATH make install | ||
96 | @@ -162,12 +166,13 @@ | ||
97 | > CXX=$tools/bin/$target-g++ \ | ||
98 | > AR=$tools/bin/$target-ar \ | ||
99 | > RANLIB=$tools/bin/$target-ranlib \ | ||
100 | - > $src/libc/configure \ | ||
101 | + > $src/eglibc/libc/configure \ | ||
102 | > --prefix=/usr \ | ||
103 | > --with-headers=$sysroot/usr/include \ | ||
104 | > --build=$build \ | ||
105 | > --host=$target \ | ||
106 | - > --disable-profile --without-gd --without-cvs --enable-add-ons | ||
107 | + > --disable-profile --without-gd --without-cvs \ | ||
108 | + > --enable-add-ons=nptl,libidn,../ports | ||
109 | |||
110 | The option '--prefix=/usr' may look strange, but you should never | ||
111 | configure EGLIBC with a prefix other than '/usr': in various places, | ||
112 | @@ -181,6 +186,11 @@ | ||
113 | The '--with-headers' option tells EGLIBC where the Linux headers have | ||
114 | been installed. | ||
115 | |||
116 | +The '--enable-add-ons=nptl,libidn,../ports' option tells EGLIBC to look | ||
117 | +for the listed glibc add-ons. Most notably the ports add-on (located | ||
118 | +just above the libc sources in the EGLIBC svn tree) is required to | ||
119 | +support ARM targets. | ||
120 | + | ||
121 | We can now use the 'install-headers' makefile target to install the | ||
122 | headers: | ||
123 | |||
124 | @@ -223,6 +233,7 @@ | ||
125 | > --prefix=$tools \ | ||
126 | > --with-sysroot=$sysroot \ | ||
127 | > --disable-libssp --disable-libgomp --disable-libmudflap \ | ||
128 | + > --disable-libffi --disable-libquadmath \ | ||
129 | > --enable-languages=c | ||
130 | $ PATH=$tools/bin:$PATH make | ||
131 | $ PATH=$tools/bin:$PATH make install | ||
132 | @@ -240,13 +251,14 @@ | ||
133 | > CXX=$tools/bin/$target-g++ \ | ||
134 | > AR=$tools/bin/$target-ar \ | ||
135 | > RANLIB=$tools/bin/$target-ranlib \ | ||
136 | - > $src/libc/configure \ | ||
137 | + > $src/eglibc/libc/configure \ | ||
138 | > --prefix=/usr \ | ||
139 | > --with-headers=$sysroot/usr/include \ | ||
140 | > --with-kconfig=$obj/linux/scripts/kconfig \ | ||
141 | > --build=$build \ | ||
142 | > --host=$target \ | ||
143 | - > --disable-profile --without-gd --without-cvs --enable-add-ons | ||
144 | + > --disable-profile --without-gd --without-cvs \ | ||
145 | + > --enable-add-ons=nptl,libidn,../ports | ||
146 | |||
147 | Note the additional '--with-kconfig' option. This tells EGLIBC where to | ||
148 | find the host config tools used by the kernel 'make config' and 'make | ||
149 | @@ -337,15 +349,15 @@ | ||
150 | ELF Header: | ||
151 | ... | ||
152 | Type: EXEC (Executable file) | ||
153 | - Machine: PowerPC | ||
154 | + Machine: ARM | ||
155 | |||
156 | ... | ||
157 | Program Headers: | ||
158 | Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align | ||
159 | PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 | ||
160 | - INTERP 0x000134 0x10000134 0x10000134 0x0000d 0x0000d R 0x1 | ||
161 | - [Requesting program interpreter: /lib/ld.so.1] | ||
162 | - LOAD 0x000000 0x10000000 0x10000000 0x008f0 0x008f0 R E 0x10000 | ||
163 | + INTERP 0x000134 0x00008134 0x00008134 0x00013 0x00013 R 0x1 | ||
164 | + [Requesting program interpreter: /lib/ld-linux.so.3] | ||
165 | + LOAD 0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000 | ||
166 | ... | ||
167 | |||
168 | Looking at the dynamic section of the installed 'libgcc_s.so', we see | ||
169 | @@ -357,7 +369,6 @@ | ||
170 | Dynamic section at offset 0x1083c contains 24 entries: | ||
171 | Tag Type Name/Value | ||
172 | 0x00000001 (NEEDED) Shared library: [libc.so.6] | ||
173 | - 0x00000001 (NEEDED) Shared library: [ld.so.1] | ||
174 | 0x0000000e (SONAME) Library soname: [libgcc_s.so.1] | ||
175 | ... | ||
176 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/GLRO_dl_debug_mask.patch b/meta/recipes-core/eglibc/eglibc-2.17/GLRO_dl_debug_mask.patch new file mode 100644 index 0000000000..7258c82418 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/GLRO_dl_debug_mask.patch | |||
@@ -0,0 +1,143 @@ | |||
1 | Its controlled by __OPTION_EGLIBC_RTLD_DEBUG | ||
2 | so we should use GLRO_dl_debug_mask | ||
3 | |||
4 | Singed-off-by: Khem Raj <raj.khem@gmail.com> | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | Index: libc/elf/dl-open.c | ||
8 | =================================================================== | ||
9 | --- libc.orig/elf/dl-open.c 2012-10-25 10:18:12.000000000 -0700 | ||
10 | +++ libc/elf/dl-open.c 2013-01-09 11:49:02.635577870 -0800 | ||
11 | @@ -155,7 +155,7 @@ | ||
12 | ns->_ns_main_searchlist->r_list[new_nlist++] = map; | ||
13 | |||
14 | /* We modify the global scope. Report this. */ | ||
15 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) | ||
16 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0)) | ||
17 | _dl_debug_printf ("\nadd %s [%lu] to global scope\n", | ||
18 | map->l_name, map->l_ns); | ||
19 | } | ||
20 | @@ -298,7 +298,7 @@ | ||
21 | LIBC_PROBE (map_complete, 3, args->nsid, r, new); | ||
22 | |||
23 | /* Print scope information. */ | ||
24 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) | ||
25 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0)) | ||
26 | _dl_show_scope (new, 0); | ||
27 | |||
28 | /* Only do lazy relocation if `LD_BIND_NOW' is not set. */ | ||
29 | @@ -515,7 +515,7 @@ | ||
30 | } | ||
31 | |||
32 | /* Print scope information. */ | ||
33 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) | ||
34 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0)) | ||
35 | _dl_show_scope (imap, from_scope); | ||
36 | } | ||
37 | |||
38 | Index: libc/ports/sysdeps/mips/dl-lookup.c | ||
39 | =================================================================== | ||
40 | --- libc.orig/ports/sysdeps/mips/dl-lookup.c 2012-08-17 12:39:53.000000000 -0700 | ||
41 | +++ libc/ports/sysdeps/mips/dl-lookup.c 2013-01-09 11:49:02.635577870 -0800 | ||
42 | @@ -111,7 +111,7 @@ | ||
43 | continue; | ||
44 | |||
45 | /* Print some debugging info if wanted. */ | ||
46 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SYMBOLS, 0)) | ||
47 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SYMBOLS, 0)) | ||
48 | _dl_debug_printf ("symbol=%s; lookup in file=%s [%lu]\n", | ||
49 | undef_name, | ||
50 | map->l_name[0] ? map->l_name : rtld_progname, | ||
51 | @@ -432,7 +432,7 @@ | ||
52 | hash table. */ | ||
53 | if (__builtin_expect (tab->size, 0)) | ||
54 | { | ||
55 | - assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK); | ||
56 | + assert (GLRO_dl_debug_mask & DL_DEBUG_PRELINK); | ||
57 | __rtld_lock_unlock_recursive (tab->lock); | ||
58 | goto success; | ||
59 | } | ||
60 | @@ -681,7 +681,7 @@ | ||
61 | } | ||
62 | |||
63 | /* Display information if we are debugging. */ | ||
64 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)) | ||
65 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0)) | ||
66 | _dl_debug_printf ("\ | ||
67 | \nfile=%s [%lu]; needed by %s [%lu] (relocation dependency)\n\n", | ||
68 | map->l_name[0] ? map->l_name : rtld_progname, | ||
69 | @@ -788,7 +788,7 @@ | ||
70 | { | ||
71 | if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) | ||
72 | && skip_map == NULL | ||
73 | - && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) | ||
74 | + && !(GLRO_dl_debug_mask & DL_DEBUG_UNUSED)) | ||
75 | { | ||
76 | /* We could find no value for a strong reference. */ | ||
77 | const char *reference_name = undef_map ? undef_map->l_name : ""; | ||
78 | @@ -861,7 +861,7 @@ | ||
79 | if (__builtin_expect (current_value.m->l_used == 0, 0)) | ||
80 | current_value.m->l_used = 1; | ||
81 | |||
82 | - if (__builtin_expect (GLRO(dl_debug_mask) | ||
83 | + if (__builtin_expect (GLRO_dl_debug_mask | ||
84 | & (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0)) | ||
85 | _dl_debug_bindings (undef_name, undef_map, ref, | ||
86 | ¤t_value, version, type_class, protected); | ||
87 | @@ -926,7 +926,7 @@ | ||
88 | { | ||
89 | const char *reference_name = undef_map->l_name; | ||
90 | |||
91 | - if (GLRO(dl_debug_mask) & DL_DEBUG_BINDINGS) | ||
92 | + if (GLRO_dl_debug_mask & DL_DEBUG_BINDINGS) | ||
93 | { | ||
94 | _dl_debug_printf ("binding file %s [%lu] to %s [%lu]: %s symbol `%s'", | ||
95 | (reference_name[0] | ||
96 | @@ -942,7 +942,7 @@ | ||
97 | _dl_debug_printf_c ("\n"); | ||
98 | } | ||
99 | #ifdef SHARED | ||
100 | - if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) | ||
101 | + if (GLRO_dl_debug_mask & DL_DEBUG_PRELINK) | ||
102 | { | ||
103 | int conflict = 0; | ||
104 | struct sym_val val = { NULL, NULL }; | ||
105 | Index: libc/elf/rtld.c | ||
106 | =================================================================== | ||
107 | --- libc.orig/elf/rtld.c 2012-10-10 08:35:46.000000000 -0700 | ||
108 | +++ libc/elf/rtld.c 2013-01-09 11:49:02.635577870 -0800 | ||
109 | @@ -2118,7 +2118,7 @@ | ||
110 | GLRO(dl_init_all_dirs) = GL(dl_all_dirs); | ||
111 | |||
112 | /* Print scope information. */ | ||
113 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) | ||
114 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0)) | ||
115 | { | ||
116 | _dl_debug_printf ("\nInitial object scopes\n"); | ||
117 | |||
118 | Index: libc/elf/dl-lookup.c | ||
119 | =================================================================== | ||
120 | --- libc.orig/elf/dl-lookup.c 2012-08-17 12:39:53.000000000 -0700 | ||
121 | +++ libc/elf/dl-lookup.c 2013-01-09 11:49:02.635577870 -0800 | ||
122 | @@ -771,7 +771,7 @@ | ||
123 | { | ||
124 | if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) | ||
125 | && skip_map == NULL | ||
126 | - && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) | ||
127 | + && !(GLRO_dl_debug_mask & DL_DEBUG_UNUSED)) | ||
128 | { | ||
129 | /* We could find no value for a strong reference. */ | ||
130 | const char *reference_name = undef_map ? undef_map->l_name : ""; | ||
131 | Index: libc/elf/get-dynamic-info.h | ||
132 | =================================================================== | ||
133 | --- libc.orig/elf/get-dynamic-info.h 2012-12-02 13:11:45.000000000 -0800 | ||
134 | +++ libc/elf/get-dynamic-info.h 2013-01-09 12:53:51.015657653 -0800 | ||
135 | @@ -157,7 +157,7 @@ | ||
136 | them. Therefore to avoid breaking existing applications the | ||
137 | best we can do is add a warning during debugging with the | ||
138 | intent of notifying the user of the problem. */ | ||
139 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0) | ||
140 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0) | ||
141 | && l->l_flags_1 & ~DT_1_SUPPORTED_MASK) | ||
142 | _dl_debug_printf ("\nWARNING: Unsupported flag value(s) of 0x%x in DT_FLAGS_1.\n", | ||
143 | l->l_flags_1 & ~DT_1_SUPPORTED_MASK); | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/IO-acquire-lock-fix.patch b/meta/recipes-core/eglibc/eglibc-2.17/IO-acquire-lock-fix.patch new file mode 100644 index 0000000000..cf5803585c --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/IO-acquire-lock-fix.patch | |||
@@ -0,0 +1,17 @@ | |||
1 | import http://sourceware.org/ml/libc-ports/2007-12/msg00000.html | ||
2 | |||
3 | Upstream-Status: Pending | ||
4 | |||
5 | Index: libc/bits/stdio-lock.h | ||
6 | =================================================================== | ||
7 | --- libc.orig/bits/stdio-lock.h 2009-10-28 14:34:19.000000000 -0700 | ||
8 | +++ libc/bits/stdio-lock.h 2009-10-28 14:34:54.000000000 -0700 | ||
9 | @@ -50,6 +50,8 @@ __libc_lock_define_recursive (typedef, _ | ||
10 | _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \ | ||
11 | _IO_flockfile (_fp) | ||
12 | |||
13 | +# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp) | ||
14 | + | ||
15 | # define _IO_release_lock(_fp) \ | ||
16 | _IO_funlockfile (_fp); \ | ||
17 | _IO_cleanup_region_end (0) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/add_resource_h_to_wait_h.patch b/meta/recipes-core/eglibc/eglibc-2.17/add_resource_h_to_wait_h.patch new file mode 100644 index 0000000000..f5023c08d4 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/add_resource_h_to_wait_h.patch | |||
@@ -0,0 +1,20 @@ | |||
1 | The older versions of perf still require sys/resource.h to be | ||
2 | present in this header, the newer version of perf in 3.2 and | ||
3 | beyond directly include sys/resource.h | ||
4 | |||
5 | Upstream-Status: Inapproriate [older kernel/perf specific] | ||
6 | |||
7 | Signed-off-by: Saul Wold <sgw@linux.intel.com> | ||
8 | |||
9 | Index: libc/posix/sys/wait.h | ||
10 | =================================================================== | ||
11 | --- libc.orig/posix/sys/wait.h | ||
12 | +++ libc/posix/sys/wait.h | ||
13 | @@ -28,6 +28,7 @@ | ||
14 | __BEGIN_DECLS | ||
15 | |||
16 | #include <signal.h> | ||
17 | +#include <sys/resource.h> | ||
18 | |||
19 | /* These macros could also be defined in <stdlib.h>. */ | ||
20 | #if !defined _STDLIB_H || (!defined __USE_XOPEN && !defined __USE_XOPEN2K8) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/eglibc-2.17-PR15003-r22243.patch b/meta/recipes-core/eglibc/eglibc-2.17/eglibc-2.17-PR15003-r22243.patch new file mode 100644 index 0000000000..a69302bb7d --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/eglibc-2.17-PR15003-r22243.patch | |||
@@ -0,0 +1,207 @@ | |||
1 | Index: libc/NEWS | ||
2 | =================================================================== | ||
3 | --- libc/NEWS (revision 22242) | ||
4 | +++ libc/NEWS (revision 22243) | ||
5 | @@ -23,7 +23,7 @@ | ||
6 | 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803, 14805, | ||
7 | 14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833, 14835, | ||
8 | 14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872, 14879, | ||
9 | - 14889, 14893, 14898, 14914. | ||
10 | + 14889, 14893, 14898, 14914, 15003. | ||
11 | |||
12 | * Optimization of memcpy for MIPS. | ||
13 | |||
14 | Index: libc/ChangeLog | ||
15 | =================================================================== | ||
16 | --- libc/ChangeLog (revision 22242) | ||
17 | +++ libc/ChangeLog (revision 22243) | ||
18 | @@ -1,3 +1,29 @@ | ||
19 | +2013-01-11 Andreas Jaeger <aj@suse.de> | ||
20 | + | ||
21 | + [BZ #15003] | ||
22 | + * sysdeps/unix/sysv/linux/bits/socket.h (MSG_FASTOPEN): New | ||
23 | + value. Sync with Linux 3.7. | ||
24 | + | ||
25 | +2013-01-09 David S. Miller <davem@davemloft.net> | ||
26 | + | ||
27 | + [BZ# 15003] | ||
28 | + * sysdeps/gnu/netinet/tcp.h (TCP_COOKIE_TRANSACTIONS, | ||
29 | + TCP_THIN_LINEAR_TIMEOUTS, TCP_THIN_DUPACK, TCP_USER_TIMEOUT, | ||
30 | + TCP_REPAIR, TCP_REPAIR_QUEUE, TCP_QUEUE_SEQ, TCP_REPAIR_OPTIONS, | ||
31 | + TCP_FASTOPEN): Define. | ||
32 | + (tcp_repair_opt): New structure. | ||
33 | + (TCP_NO_QUEUE, TCP_RECV_QUEUE, TCP_SEND_QUEUE, TCP_QUEUES_NR): New | ||
34 | + enum values. | ||
35 | + (TCP_COOKIE_MIN, TCP_COOKIE_MAX, TCP_COOKIE_PAIR_SIZE, | ||
36 | + TCP_COOKIE_IN_ALWAYS, TCP_COOKIE_OUT_NEVER, TCP_S_DATA_IN, | ||
37 | + TCP_S_DATA_OUT, TCP_MSS_DEFAULT, TCP_MSS_DESIRED): Define. | ||
38 | + (tcp_cookie_transactions): New structure. | ||
39 | + | ||
40 | +2013-01-09 Andreas Jaeger <aj@suse.de> | ||
41 | + | ||
42 | + * sysdeps/gnu/netinet/tcp.h (TCPI_OPT_SYN_DATA) | ||
43 | + (TCPI_OPT_ECN_SEEN): Define. Sync with Linux 3.7. | ||
44 | + | ||
45 | 2013-01-01 David S. Miller <davem@davemloft.net> | ||
46 | |||
47 | * po/fr.po: Update from translation team. | ||
48 | Index: libc/sysdeps/unix/sysv/linux/bits/socket.h | ||
49 | =================================================================== | ||
50 | --- libc/sysdeps/unix/sysv/linux/bits/socket.h (revision 22242) | ||
51 | +++ libc/sysdeps/unix/sysv/linux/bits/socket.h (revision 22243) | ||
52 | @@ -1,6 +1,5 @@ | ||
53 | /* System-specific socket constants and types. Linux version. | ||
54 | - Copyright (C) 1991, 1992, 1994-2001, 2004, 2006-2010, 2011, 2012 | ||
55 | - Free Software Foundation, Inc. | ||
56 | + Copyright (C) 1991-2013 Free Software Foundation, Inc. | ||
57 | This file is part of the GNU C Library. | ||
58 | |||
59 | The GNU C Library is free software; you can redistribute it and/or | ||
60 | @@ -208,6 +207,8 @@ | ||
61 | #define MSG_MORE MSG_MORE | ||
62 | MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/ | ||
63 | #define MSG_WAITFORONE MSG_WAITFORONE | ||
64 | + MSG_FASTOPEN = 0x20000000, /* Send data in TCP SYN. */ | ||
65 | +#define MSG_FASTOPEN MSG_FASTOPEN | ||
66 | |||
67 | MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file | ||
68 | descriptor received through | ||
69 | Index: libc/sysdeps/gnu/netinet/tcp.h | ||
70 | =================================================================== | ||
71 | --- libc/sysdeps/gnu/netinet/tcp.h (revision 22242) | ||
72 | +++ libc/sysdeps/gnu/netinet/tcp.h (revision 22243) | ||
73 | @@ -37,20 +37,29 @@ | ||
74 | /* | ||
75 | * User-settable options (used with setsockopt). | ||
76 | */ | ||
77 | -#define TCP_NODELAY 1 /* Don't delay send to coalesce packets */ | ||
78 | -#define TCP_MAXSEG 2 /* Set maximum segment size */ | ||
79 | -#define TCP_CORK 3 /* Control sending of partial frames */ | ||
80 | -#define TCP_KEEPIDLE 4 /* Start keeplives after this period */ | ||
81 | -#define TCP_KEEPINTVL 5 /* Interval between keepalives */ | ||
82 | -#define TCP_KEEPCNT 6 /* Number of keepalives before death */ | ||
83 | -#define TCP_SYNCNT 7 /* Number of SYN retransmits */ | ||
84 | -#define TCP_LINGER2 8 /* Life time of orphaned FIN-WAIT-2 state */ | ||
85 | -#define TCP_DEFER_ACCEPT 9 /* Wake up listener only when data arrive */ | ||
86 | -#define TCP_WINDOW_CLAMP 10 /* Bound advertised window */ | ||
87 | -#define TCP_INFO 11 /* Information about this connection. */ | ||
88 | -#define TCP_QUICKACK 12 /* Bock/reenable quick ACKs. */ | ||
89 | -#define TCP_CONGESTION 13 /* Congestion control algorithm. */ | ||
90 | -#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ | ||
91 | +#define TCP_NODELAY 1 /* Don't delay send to coalesce packets */ | ||
92 | +#define TCP_MAXSEG 2 /* Set maximum segment size */ | ||
93 | +#define TCP_CORK 3 /* Control sending of partial frames */ | ||
94 | +#define TCP_KEEPIDLE 4 /* Start keeplives after this period */ | ||
95 | +#define TCP_KEEPINTVL 5 /* Interval between keepalives */ | ||
96 | +#define TCP_KEEPCNT 6 /* Number of keepalives before death */ | ||
97 | +#define TCP_SYNCNT 7 /* Number of SYN retransmits */ | ||
98 | +#define TCP_LINGER2 8 /* Life time of orphaned FIN-WAIT-2 state */ | ||
99 | +#define TCP_DEFER_ACCEPT 9 /* Wake up listener only when data arrive */ | ||
100 | +#define TCP_WINDOW_CLAMP 10 /* Bound advertised window */ | ||
101 | +#define TCP_INFO 11 /* Information about this connection. */ | ||
102 | +#define TCP_QUICKACK 12 /* Bock/reenable quick ACKs. */ | ||
103 | +#define TCP_CONGESTION 13 /* Congestion control algorithm. */ | ||
104 | +#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ | ||
105 | +#define TCP_COOKIE_TRANSACTIONS 15 /* TCP Cookie Transactions */ | ||
106 | +#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/ | ||
107 | +#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */ | ||
108 | +#define TCP_USER_TIMEOUT 18 /* How long for loss retry before timeout */ | ||
109 | +#define TCP_REPAIR 19 /* TCP sock is under repair right now */ | ||
110 | +#define TCP_REPAIR_QUEUE 20 /* Set TCP queue to repair */ | ||
111 | +#define TCP_QUEUE_SEQ 21 /* Set sequence number of repaired queue. */ | ||
112 | +#define TCP_REPAIR_OPTIONS 22 /* Repair TCP connection options */ | ||
113 | +#define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */ | ||
114 | |||
115 | #ifdef __USE_MISC | ||
116 | # include <sys/types.h> | ||
117 | @@ -173,7 +182,9 @@ | ||
118 | # define TCPI_OPT_TIMESTAMPS 1 | ||
119 | # define TCPI_OPT_SACK 2 | ||
120 | # define TCPI_OPT_WSCALE 4 | ||
121 | -# define TCPI_OPT_ECN 8 | ||
122 | +# define TCPI_OPT_ECN 8 /* ECN was negociated at TCP session init */ | ||
123 | +# define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */ | ||
124 | +# define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */ | ||
125 | |||
126 | /* Values for tcpi_state. */ | ||
127 | enum tcp_ca_state | ||
128 | @@ -241,6 +252,49 @@ | ||
129 | u_int8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* Key (binary). */ | ||
130 | }; | ||
131 | |||
132 | +/* For socket repair options. */ | ||
133 | +struct tcp_repair_opt | ||
134 | +{ | ||
135 | + u_int32_t opt_code; | ||
136 | + u_int32_t opt_val; | ||
137 | +}; | ||
138 | + | ||
139 | +/* Queue to repair, for TCP_REPAIR_QUEUE. */ | ||
140 | +enum | ||
141 | +{ | ||
142 | + TCP_NO_QUEUE, | ||
143 | + TCP_RECV_QUEUE, | ||
144 | + TCP_SEND_QUEUE, | ||
145 | + TCP_QUEUES_NR, | ||
146 | +}; | ||
147 | + | ||
148 | +/* For cookie transactions socket options. */ | ||
149 | +#define TCP_COOKIE_MIN 8 /* 64-bits */ | ||
150 | +#define TCP_COOKIE_MAX 16 /* 128-bits */ | ||
151 | +#define TCP_COOKIE_PAIR_SIZE (2*TCP_COOKIE_MAX) | ||
152 | + | ||
153 | +/* Flags for both getsockopt and setsockopt */ | ||
154 | +#define TCP_COOKIE_IN_ALWAYS (1 << 0) /* Discard SYN without cookie */ | ||
155 | +#define TCP_COOKIE_OUT_NEVER (1 << 1) /* Prohibit outgoing cookies, | ||
156 | + * supercedes everything. */ | ||
157 | + | ||
158 | +/* Flags for getsockopt */ | ||
159 | +#define TCP_S_DATA_IN (1 << 2) /* Was data received? */ | ||
160 | +#define TCP_S_DATA_OUT (1 << 3) /* Was data sent? */ | ||
161 | + | ||
162 | +#define TCP_MSS_DEFAULT 536U /* IPv4 (RFC1122, RFC2581) */ | ||
163 | +#define TCP_MSS_DESIRED 1220U /* IPv6 (tunneled), EDNS0 (RFC3226) */ | ||
164 | + | ||
165 | +struct tcp_cookie_transactions | ||
166 | +{ | ||
167 | + u_int16_t tcpct_flags; | ||
168 | + u_int8_t __tcpct_pad1; | ||
169 | + u_int8_t tcpct_cookie_desired; | ||
170 | + u_int16_t tcpct_s_data_desired; | ||
171 | + u_int16_t tcpct_used; | ||
172 | + u_int8_t tcpct_value[TCP_MSS_DEFAULT]; | ||
173 | +}; | ||
174 | + | ||
175 | #endif /* Misc. */ | ||
176 | |||
177 | #endif /* netinet/tcp.h */ | ||
178 | |||
179 | Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data | ||
180 | ___________________________________________________________________ | ||
181 | Modified: svn:mergeinfo | ||
182 | Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data:r22178-22242 | ||
183 | |||
184 | |||
185 | Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data | ||
186 | ___________________________________________________________________ | ||
187 | Modified: svn:mergeinfo | ||
188 | Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data:r22178-22242 | ||
189 | |||
190 | |||
191 | Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data | ||
192 | ___________________________________________________________________ | ||
193 | Modified: svn:mergeinfo | ||
194 | Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data:r22178-22242 | ||
195 | |||
196 | |||
197 | Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data | ||
198 | ___________________________________________________________________ | ||
199 | Modified: svn:mergeinfo | ||
200 | Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data:r22178-22242 | ||
201 | |||
202 | |||
203 | Property changes on: . | ||
204 | ___________________________________________________________________ | ||
205 | Modified: svn:mergeinfo | ||
206 | Merged /fsf/glibc-2_17-branch:r22178-22242 | ||
207 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/eglibc-2.17-r22178.patch b/meta/recipes-core/eglibc/eglibc-2.17/eglibc-2.17-r22178.patch new file mode 100644 index 0000000000..2ad1e23bcf --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/eglibc-2.17-r22178.patch | |||
@@ -0,0 +1,9472 @@ | |||
1 | Index: libc/ChangeLog | ||
2 | =================================================================== | ||
3 | --- libc/ChangeLog (revision 22177) | ||
4 | +++ libc/ChangeLog (revision 22178) | ||
5 | @@ -1,3 +1,8 @@ | ||
6 | +2013-01-01 David S. Miller <davem@davemloft.net> | ||
7 | + | ||
8 | + * po/fr.po: Update from translation team. | ||
9 | + * po/ca.po: Likewise. | ||
10 | + | ||
11 | 2012-12-21 David S. Miller <davem@davemloft.net> | ||
12 | |||
13 | * po/hr.po: Update from translation team. | ||
14 | |||
15 | Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data | ||
16 | ___________________________________________________________________ | ||
17 | Modified: svn:mergeinfo | ||
18 | Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data:r22064-22177 | ||
19 | |||
20 | |||
21 | Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data | ||
22 | ___________________________________________________________________ | ||
23 | Modified: svn:mergeinfo | ||
24 | Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data:r22064-22177 | ||
25 | |||
26 | |||
27 | Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data | ||
28 | ___________________________________________________________________ | ||
29 | Modified: svn:mergeinfo | ||
30 | Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data:r22064-22177 | ||
31 | |||
32 | |||
33 | Property changes on: libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data | ||
34 | ___________________________________________________________________ | ||
35 | Modified: svn:mergeinfo | ||
36 | Merged /fsf/glibc-2_17-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data:r22064-22177 | ||
37 | |||
38 | Index: libc/po/fr.po | ||
39 | =================================================================== | ||
40 | --- libc/po/fr.po (revision 22177) | ||
41 | +++ libc/po/fr.po (revision 22178) | ||
42 | @@ -7,9 +7,9 @@ | ||
43 | # kerb <traduc@traduc.org>, 2008, 2009. | ||
44 | msgid "" | ||
45 | msgstr "" | ||
46 | -"Project-Id-Version: libc-2.16-pre1\n" | ||
47 | -"POT-Creation-Date: 2012-06-21 07:51-0700\n" | ||
48 | -"PO-Revision-Date: 2012-07-12 08:16+0100\n" | ||
49 | +"Project-Id-Version: libc-2.17-pre1\n" | ||
50 | +"POT-Creation-Date: 2012-12-07 15:10-0500\n" | ||
51 | +"PO-Revision-Date: 2012-12-30 17:20+0100\n" | ||
52 | "Last-Translator: kerb <y.kerb@laposte.net>\n" | ||
53 | "Language-Team: French <traduc@traduc.org>\n" | ||
54 | "Language: fr\n" | ||
55 | @@ -19,45 +19,45 @@ | ||
56 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" | ||
57 | "X-Generator: KBabel 1.11.4\n" | ||
58 | |||
59 | -#: argp/argp-help.c:226 | ||
60 | +#: argp/argp-help.c:227 | ||
61 | #, c-format | ||
62 | msgid "%.*s: ARGP_HELP_FMT parameter requires a value" | ||
63 | msgstr "%.*s : le paramètre ARGP_HELP_FMT requiert une valeur" | ||
64 | |||
65 | -#: argp/argp-help.c:236 | ||
66 | +#: argp/argp-help.c:237 | ||
67 | #, c-format | ||
68 | msgid "%.*s: Unknown ARGP_HELP_FMT parameter" | ||
69 | msgstr "% *s : paramètre ARGP_HELP_FMT inconnu" | ||
70 | |||
71 | -#: argp/argp-help.c:249 | ||
72 | +#: argp/argp-help.c:250 | ||
73 | #, c-format | ||
74 | msgid "Garbage in ARGP_HELP_FMT: %s" | ||
75 | msgstr "Rebut dans l'argument ARGP_HELP_FMT : %s" | ||
76 | |||
77 | -#: argp/argp-help.c:1213 | ||
78 | +#: argp/argp-help.c:1214 | ||
79 | msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." | ||
80 | msgstr "" | ||
81 | "Les arguments obligatoires ou optionnels pour les options de formes longues\n" | ||
82 | "le sont aussi pour les options de forme courtes." | ||
83 | |||
84 | -#: argp/argp-help.c:1599 | ||
85 | +#: argp/argp-help.c:1600 | ||
86 | msgid "Usage:" | ||
87 | msgstr "Usage :" | ||
88 | |||
89 | -#: argp/argp-help.c:1603 | ||
90 | +#: argp/argp-help.c:1604 | ||
91 | msgid " or: " | ||
92 | msgstr " ou : " | ||
93 | |||
94 | -#: argp/argp-help.c:1615 | ||
95 | +#: argp/argp-help.c:1616 | ||
96 | msgid " [OPTION...]" | ||
97 | msgstr " [OPTION...]" | ||
98 | |||
99 | -#: argp/argp-help.c:1642 | ||
100 | +#: argp/argp-help.c:1643 | ||
101 | #, c-format | ||
102 | msgid "Try `%s --help' or `%s --usage' for more information.\n" | ||
103 | msgstr "Pour en savoir davantage, faites : «%s --help » ou «%s --usage».\n" | ||
104 | |||
105 | -#: argp/argp-help.c:1670 | ||
106 | +#: argp/argp-help.c:1671 | ||
107 | #, c-format | ||
108 | msgid "Report bugs to %s.\n" | ||
109 | msgstr "Rapporter toutes anomalies à %s.\n" | ||
110 | @@ -109,7 +109,7 @@ | ||
111 | "%s%s%s :%u : %s%s l'assertion « %s » a échoué.\n" | ||
112 | "%n" | ||
113 | |||
114 | -#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:115 nss/makedb.c:118 | ||
115 | +#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:115 nss/makedb.c:119 | ||
116 | msgid "NAME" | ||
117 | msgstr "NOM" | ||
118 | |||
119 | @@ -121,7 +121,7 @@ | ||
120 | msgid "Do not use existing catalog, force new output file" | ||
121 | msgstr "Ne pas utiliser le catalogue existant, forcer la génération d'un autre fichier" | ||
122 | |||
123 | -#: catgets/gencat.c:113 nss/makedb.c:118 | ||
124 | +#: catgets/gencat.c:113 nss/makedb.c:119 | ||
125 | msgid "Write output to file NAME" | ||
126 | msgstr "Écrit en sortie dans le FICHIER" | ||
127 | |||
128 | @@ -141,28 +141,27 @@ | ||
129 | "-o FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...\n" | ||
130 | "[FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...]" | ||
131 | |||
132 | -#: catgets/gencat.c:234 debug/pcprofiledump.c:207 debug/xtrace.sh:57 | ||
133 | -#: elf/ldconfig.c:301 elf/ldd.bash.in:55 elf/pldd.c:56 elf/sln.c:85 | ||
134 | -#: elf/sotruss.ksh:49 elf/sprof.c:370 iconv/iconv_prog.c:407 | ||
135 | -#: iconv/iconvconfig.c:382 locale/programs/locale.c:278 | ||
136 | -#: locale/programs/localedef.c:367 login/programs/pt_chown.c:91 | ||
137 | -#: malloc/memusage.sh:64 malloc/memusagestat.c:538 nscd/nscd.c:456 | ||
138 | -#: nss/getent.c:965 nss/makedb.c:369 posix/getconf.c:1121 | ||
139 | -#: sunrpc/rpc_main.c:1446 sunrpc/rpcinfo.c:691 | ||
140 | +#: catgets/gencat.c:235 debug/pcprofiledump.c:208 elf/ldconfig.c:302 | ||
141 | +#: elf/pldd.c:222 elf/sln.c:85 elf/sprof.c:371 iconv/iconv_prog.c:408 | ||
142 | +#: iconv/iconvconfig.c:383 locale/programs/locale.c:279 | ||
143 | +#: locale/programs/localedef.c:363 login/programs/pt_chown.c:88 | ||
144 | +#: malloc/memusagestat.c:536 nscd/nscd.c:459 nss/getent.c:965 nss/makedb.c:371 | ||
145 | +#: posix/getconf.c:1121 sunrpc/rpcinfo.c:691 | ||
146 | #: sysdeps/unix/sysv/linux/lddlibc4.c:61 | ||
147 | +#, c-format | ||
148 | msgid "" | ||
149 | "For bug reporting instructions, please see:\n" | ||
150 | -"<http://www.gnu.org/software/libc/bugs.html>.\n" | ||
151 | +"%s.\n" | ||
152 | msgstr "" | ||
153 | "Pour les instructions de rapport de bug, SVP voyez là : \n" | ||
154 | -"<http://www.gnu.org/software/libc/bugs.html>.\n" | ||
155 | +"%s.\n" | ||
156 | |||
157 | -#: catgets/gencat.c:248 debug/pcprofiledump.c:221 debug/xtrace.sh:65 | ||
158 | -#: elf/ldconfig.c:315 elf/ldd.bash.in:38 elf/pldd.c:220 elf/sotruss.ksh:76 | ||
159 | -#: elf/sprof.c:385 iconv/iconv_prog.c:422 iconv/iconvconfig.c:397 | ||
160 | -#: locale/programs/locale.c:293 locale/programs/localedef.c:383 | ||
161 | -#: login/programs/pt_chown.c:62 malloc/memusage.sh:72 | ||
162 | -#: malloc/memusagestat.c:556 nscd/nscd.c:470 nss/getent.c:86 nss/makedb.c:383 | ||
163 | +#: catgets/gencat.c:251 debug/pcprofiledump.c:224 debug/xtrace.sh:64 | ||
164 | +#: elf/ldconfig.c:318 elf/ldd.bash.in:38 elf/pldd.c:238 elf/sotruss.ksh:75 | ||
165 | +#: elf/sprof.c:388 iconv/iconv_prog.c:425 iconv/iconvconfig.c:400 | ||
166 | +#: locale/programs/locale.c:296 locale/programs/localedef.c:389 | ||
167 | +#: login/programs/pt_chown.c:62 malloc/memusage.sh:71 | ||
168 | +#: malloc/memusagestat.c:552 nscd/nscd.c:475 nss/getent.c:86 nss/makedb.c:387 | ||
169 | #: posix/getconf.c:1103 sysdeps/unix/sysv/linux/lddlibc4.c:68 | ||
170 | #, c-format | ||
171 | msgid "" | ||
172 | @@ -175,96 +174,96 @@ | ||
173 | "reproduction. AUCUNE garantie n'est donnée; tant pour des raisons\n" | ||
174 | "COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n" | ||
175 | |||
176 | -#: catgets/gencat.c:253 debug/pcprofiledump.c:226 debug/xtrace.sh:69 | ||
177 | -#: elf/ldconfig.c:320 elf/pldd.c:225 elf/sprof.c:391 iconv/iconv_prog.c:427 | ||
178 | -#: iconv/iconvconfig.c:402 locale/programs/locale.c:298 | ||
179 | -#: locale/programs/localedef.c:388 malloc/memusage.sh:76 | ||
180 | -#: malloc/memusagestat.c:561 nscd/nscd.c:475 nss/getent.c:91 nss/makedb.c:388 | ||
181 | +#: catgets/gencat.c:256 debug/pcprofiledump.c:229 debug/xtrace.sh:68 | ||
182 | +#: elf/ldconfig.c:323 elf/pldd.c:243 elf/sprof.c:394 iconv/iconv_prog.c:430 | ||
183 | +#: iconv/iconvconfig.c:405 locale/programs/locale.c:301 | ||
184 | +#: locale/programs/localedef.c:394 malloc/memusage.sh:75 | ||
185 | +#: malloc/memusagestat.c:557 nscd/nscd.c:480 nss/getent.c:91 nss/makedb.c:392 | ||
186 | #: posix/getconf.c:1108 | ||
187 | #, c-format | ||
188 | msgid "Written by %s.\n" | ||
189 | msgstr "Écrit par %s.\n" | ||
190 | |||
191 | -#: catgets/gencat.c:284 | ||
192 | +#: catgets/gencat.c:287 | ||
193 | msgid "*standard input*" | ||
194 | msgstr "*entrée standard*" | ||
195 | |||
196 | -#: catgets/gencat.c:290 iconv/iconv_charmap.c:171 iconv/iconv_prog.c:293 | ||
197 | -#: nss/makedb.c:247 | ||
198 | +#: catgets/gencat.c:293 iconv/iconv_charmap.c:169 iconv/iconv_prog.c:293 | ||
199 | +#: nss/makedb.c:248 | ||
200 | #, c-format | ||
201 | msgid "cannot open input file `%s'" | ||
202 | msgstr "ne peut ouvrir le fichier d'entrée « %s »" | ||
203 | |||
204 | -#: catgets/gencat.c:419 catgets/gencat.c:494 | ||
205 | +#: catgets/gencat.c:422 catgets/gencat.c:497 | ||
206 | msgid "illegal set number" | ||
207 | msgstr "numéro d'ensemble non permis" | ||
208 | |||
209 | -#: catgets/gencat.c:446 | ||
210 | +#: catgets/gencat.c:449 | ||
211 | msgid "duplicate set definition" | ||
212 | msgstr "double définitions d'ensemble" | ||
213 | |||
214 | -#: catgets/gencat.c:448 catgets/gencat.c:620 catgets/gencat.c:672 | ||
215 | +#: catgets/gencat.c:451 catgets/gencat.c:623 catgets/gencat.c:675 | ||
216 | msgid "this is the first definition" | ||
217 | msgstr "ceci est la première définition" | ||
218 | |||
219 | -#: catgets/gencat.c:519 | ||
220 | +#: catgets/gencat.c:522 | ||
221 | #, c-format | ||
222 | msgid "unknown set `%s'" | ||
223 | msgstr "ensemble inconnu « %s »" | ||
224 | |||
225 | -#: catgets/gencat.c:560 | ||
226 | +#: catgets/gencat.c:563 | ||
227 | msgid "invalid quote character" | ||
228 | msgstr "caractère de citation (quote) invalide" | ||
229 | |||
230 | -#: catgets/gencat.c:573 | ||
231 | +#: catgets/gencat.c:576 | ||
232 | #, c-format | ||
233 | msgid "unknown directive `%s': line ignored" | ||
234 | msgstr "directive inconnue « %s » : ligne ignorée" | ||
235 | |||
236 | -#: catgets/gencat.c:618 | ||
237 | +#: catgets/gencat.c:621 | ||
238 | msgid "duplicated message number" | ||
239 | msgstr "numéro de message en double" | ||
240 | |||
241 | -#: catgets/gencat.c:669 | ||
242 | +#: catgets/gencat.c:672 | ||
243 | msgid "duplicated message identifier" | ||
244 | msgstr "identifiant de message en double" | ||
245 | |||
246 | -#: catgets/gencat.c:726 | ||
247 | +#: catgets/gencat.c:729 | ||
248 | msgid "invalid character: message ignored" | ||
249 | msgstr "caractère invalide : message ignoré" | ||
250 | |||
251 | -#: catgets/gencat.c:769 | ||
252 | +#: catgets/gencat.c:772 | ||
253 | msgid "invalid line" | ||
254 | msgstr "ligne invalide" | ||
255 | |||
256 | -#: catgets/gencat.c:823 | ||
257 | +#: catgets/gencat.c:826 | ||
258 | msgid "malformed line ignored" | ||
259 | msgstr "ligne incorrecte ignorée" | ||
260 | |||
261 | -#: catgets/gencat.c:987 catgets/gencat.c:1028 | ||
262 | +#: catgets/gencat.c:990 catgets/gencat.c:1031 | ||
263 | #, c-format | ||
264 | msgid "cannot open output file `%s'" | ||
265 | msgstr "ne peut ouvrir le fichier de sortie « %s »" | ||
266 | |||
267 | -#: catgets/gencat.c:1190 locale/programs/linereader.c:559 | ||
268 | +#: catgets/gencat.c:1193 locale/programs/linereader.c:559 | ||
269 | msgid "invalid escape sequence" | ||
270 | msgstr "séquence d'échappement invalide" | ||
271 | |||
272 | -#: catgets/gencat.c:1212 | ||
273 | +#: catgets/gencat.c:1215 | ||
274 | msgid "unterminated message" | ||
275 | msgstr "message non terminé" | ||
276 | |||
277 | -#: catgets/gencat.c:1236 | ||
278 | +#: catgets/gencat.c:1239 | ||
279 | #, c-format | ||
280 | msgid "while opening old catalog file" | ||
281 | msgstr "lors de l'ouverture de l'ancien fichier catalogue" | ||
282 | |||
283 | -#: catgets/gencat.c:1327 | ||
284 | +#: catgets/gencat.c:1330 | ||
285 | #, c-format | ||
286 | msgid "conversion modules not available" | ||
287 | msgstr "modules de conversion indisponibles" | ||
288 | |||
289 | -#: catgets/gencat.c:1353 | ||
290 | +#: catgets/gencat.c:1356 | ||
291 | #, c-format | ||
292 | msgid "cannot determine escape character" | ||
293 | msgstr "ne peut déterminer le caractère d'échappement" | ||
294 | @@ -300,8 +299,8 @@ | ||
295 | msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" | ||
296 | msgstr "Usage : xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" | ||
297 | |||
298 | -#: debug/xtrace.sh:32 elf/sotruss.ksh:57 elf/sotruss.ksh:68 | ||
299 | -#: elf/sotruss.ksh:136 malloc/memusage.sh:26 | ||
300 | +#: debug/xtrace.sh:32 elf/sotruss.ksh:56 elf/sotruss.ksh:67 | ||
301 | +#: elf/sotruss.ksh:135 malloc/memusage.sh:26 | ||
302 | msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n" | ||
303 | msgstr "Pour en savoir davantage, faites : «%s --help » ou «%s --usage».\\n" | ||
304 | |||
305 | @@ -335,20 +334,25 @@ | ||
306 | "les options de formes courtes.\n" | ||
307 | "\n" | ||
308 | |||
309 | -#: debug/xtrace.sh:126 | ||
310 | +#: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.ksh:49 | ||
311 | +#: malloc/memusage.sh:64 | ||
312 | +msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n" | ||
313 | +msgstr "Pour les instructions de rapport de bug, SVP voyez là : \\\\n%s.\\\\n" | ||
314 | + | ||
315 | +#: debug/xtrace.sh:125 | ||
316 | msgid "xtrace: unrecognized option \\`$1'\\n" | ||
317 | msgstr "xtrace : option non reconnue\\`$1'\\n" | ||
318 | |||
319 | -#: debug/xtrace.sh:139 | ||
320 | +#: debug/xtrace.sh:138 | ||
321 | msgid "No program name given\\n" | ||
322 | msgstr "Le nom de programme n'est pas indiqué\\n" | ||
323 | |||
324 | -#: debug/xtrace.sh:147 | ||
325 | +#: debug/xtrace.sh:146 | ||
326 | #, sh-format | ||
327 | msgid "executable \\`$program' not found\\n" | ||
328 | msgstr "exécutable \\`$program' non trouvé\\n" | ||
329 | |||
330 | -#: debug/xtrace.sh:151 | ||
331 | +#: debug/xtrace.sh:150 | ||
332 | #, sh-format | ||
333 | msgid "\\`$program' is no executable\\n" | ||
334 | msgstr "\\`$program' n'est pas un exécutable\\n" | ||
335 | @@ -377,85 +381,85 @@ | ||
336 | msgid "unknown" | ||
337 | msgstr "inconnu" | ||
338 | |||
339 | -#: elf/cache.c:115 | ||
340 | +#: elf/cache.c:121 | ||
341 | msgid "Unknown OS" | ||
342 | msgstr "Système d'exploitation inconnu" | ||
343 | |||
344 | -#: elf/cache.c:120 | ||
345 | +#: elf/cache.c:126 | ||
346 | #, c-format | ||
347 | msgid ", OS ABI: %s %d.%d.%d" | ||
348 | msgstr ", Système d'exploitation ABI : %s %d.%d.%d" | ||
349 | |||
350 | -#: elf/cache.c:137 elf/ldconfig.c:1306 | ||
351 | +#: elf/cache.c:143 elf/ldconfig.c:1309 | ||
352 | #, c-format | ||
353 | msgid "Can't open cache file %s\n" | ||
354 | msgstr "Ne peut ouvrir le fichier de cache %s\n" | ||
355 | |||
356 | -#: elf/cache.c:151 | ||
357 | +#: elf/cache.c:157 | ||
358 | #, c-format | ||
359 | msgid "mmap of cache file failed.\n" | ||
360 | msgstr "la procédure mmap sur le fichier de cache a échouée\n" | ||
361 | |||
362 | -#: elf/cache.c:155 elf/cache.c:169 | ||
363 | +#: elf/cache.c:161 elf/cache.c:175 | ||
364 | #, c-format | ||
365 | msgid "File is not a cache file.\n" | ||
366 | msgstr "Fichier n'est pas un fichier de cache.\n" | ||
367 | |||
368 | -#: elf/cache.c:202 elf/cache.c:212 | ||
369 | +#: elf/cache.c:208 elf/cache.c:218 | ||
370 | #, c-format | ||
371 | msgid "%d libs found in cache `%s'\n" | ||
372 | msgstr "%d libs trouvé dans le cache « %s »\n" | ||
373 | |||
374 | -#: elf/cache.c:406 | ||
375 | +#: elf/cache.c:412 | ||
376 | #, c-format | ||
377 | msgid "Can't create temporary cache file %s" | ||
378 | msgstr "Ne peut créer un fichier de cache temporaire %s" | ||
379 | |||
380 | -#: elf/cache.c:414 elf/cache.c:424 elf/cache.c:428 elf/cache.c:433 | ||
381 | +#: elf/cache.c:420 elf/cache.c:430 elf/cache.c:434 elf/cache.c:439 | ||
382 | #, c-format | ||
383 | msgid "Writing of cache data failed" | ||
384 | msgstr "Échec d'écriture des données du cache" | ||
385 | |||
386 | -#: elf/cache.c:438 | ||
387 | +#: elf/cache.c:444 | ||
388 | #, c-format | ||
389 | msgid "Changing access rights of %s to %#o failed" | ||
390 | msgstr "Échec de la modification des droits d'accès de %s à %#o" | ||
391 | |||
392 | -#: elf/cache.c:443 | ||
393 | +#: elf/cache.c:449 | ||
394 | #, c-format | ||
395 | msgid "Renaming of %s to %s failed" | ||
396 | msgstr "Échec du changement de nom de %s vers %s" | ||
397 | |||
398 | -#: elf/dl-close.c:386 elf/dl-open.c:460 | ||
399 | +#: elf/dl-close.c:378 elf/dl-open.c:474 | ||
400 | msgid "cannot create scope list" | ||
401 | msgstr "ne peut créer une liste panorama" | ||
402 | |||
403 | -#: elf/dl-close.c:773 | ||
404 | +#: elf/dl-close.c:771 | ||
405 | msgid "shared object not open" | ||
406 | msgstr "objet partagé non ouvert" | ||
407 | |||
408 | -#: elf/dl-deps.c:114 | ||
409 | +#: elf/dl-deps.c:112 | ||
410 | msgid "DST not allowed in SUID/SGID programs" | ||
411 | msgstr "DST non permis dans un programme SUID/SGID" | ||
412 | |||
413 | -#: elf/dl-deps.c:127 | ||
414 | +#: elf/dl-deps.c:125 | ||
415 | msgid "empty dynamic string token substitution" | ||
416 | msgstr "la chaîne dynamique d'un jeton de substitution est vide" | ||
417 | |||
418 | -#: elf/dl-deps.c:133 | ||
419 | +#: elf/dl-deps.c:131 | ||
420 | #, c-format | ||
421 | msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n" | ||
422 | msgstr "ne peut charger l'auxiliaire « %s » en raison d'une chaîne dynamique de substitution de jeton vide\n" | ||
423 | |||
424 | -#: elf/dl-deps.c:486 | ||
425 | +#: elf/dl-deps.c:483 | ||
426 | msgid "cannot allocate dependency list" | ||
427 | msgstr "ne peut allouer une liste de dépendances" | ||
428 | |||
429 | -#: elf/dl-deps.c:522 elf/dl-deps.c:582 | ||
430 | +#: elf/dl-deps.c:520 elf/dl-deps.c:580 | ||
431 | msgid "cannot allocate symbol search list" | ||
432 | msgstr "ne peut allouer la liste des symboles à rechercher" | ||
433 | |||
434 | -#: elf/dl-deps.c:562 | ||
435 | +#: elf/dl-deps.c:560 | ||
436 | msgid "Filters not supported with LD_TRACE_PRELINKING" | ||
437 | msgstr "Filtres non supportés avec LD_TRACE_PRELINKING" | ||
438 | |||
439 | @@ -479,187 +483,191 @@ | ||
440 | msgid "internal error: symidx out of range of fptr table" | ||
441 | msgstr "erreur interne : symidx en dehors de la table fptr " | ||
442 | |||
443 | -#: elf/dl-load.c:470 | ||
444 | +#: elf/dl-hwcaps.c:173 elf/dl-hwcaps.c:185 | ||
445 | +msgid "cannot create capability list" | ||
446 | +msgstr "ne peut créer une liste des possibilités" | ||
447 | + | ||
448 | +#: elf/dl-load.c:471 | ||
449 | msgid "cannot allocate name record" | ||
450 | msgstr "ne peut allouer un enregistrement de nom" | ||
451 | |||
452 | -#: elf/dl-load.c:547 elf/dl-load.c:663 elf/dl-load.c:748 elf/dl-load.c:861 | ||
453 | +#: elf/dl-load.c:548 elf/dl-load.c:664 elf/dl-load.c:749 elf/dl-load.c:862 | ||
454 | msgid "cannot create cache for search path" | ||
455 | msgstr "ne peut créer le cache pour le chemin de recherche" | ||
456 | |||
457 | -#: elf/dl-load.c:638 | ||
458 | +#: elf/dl-load.c:639 | ||
459 | msgid "cannot create RUNPATH/RPATH copy" | ||
460 | msgstr "ne peut créer une copie RUNPATH/RPATH" | ||
461 | |||
462 | -#: elf/dl-load.c:734 | ||
463 | +#: elf/dl-load.c:735 | ||
464 | msgid "cannot create search path array" | ||
465 | msgstr "ne peut créer un tableau des chemins de recherche" | ||
466 | |||
467 | -#: elf/dl-load.c:932 | ||
468 | +#: elf/dl-load.c:934 | ||
469 | msgid "cannot stat shared object" | ||
470 | msgstr "ne peut évaluer par stat() l'objet partagé" | ||
471 | |||
472 | -#: elf/dl-load.c:1010 | ||
473 | +#: elf/dl-load.c:1012 | ||
474 | msgid "cannot open zero fill device" | ||
475 | msgstr "ne peut ouvrir le fichier de périphérique rempli de zéros" | ||
476 | |||
477 | -#: elf/dl-load.c:1056 elf/dl-load.c:2317 | ||
478 | +#: elf/dl-load.c:1059 elf/dl-load.c:2339 | ||
479 | msgid "cannot create shared object descriptor" | ||
480 | msgstr "ne peut créer un descripteur d'objet partagé" | ||
481 | |||
482 | -#: elf/dl-load.c:1075 elf/dl-load.c:1731 elf/dl-load.c:1834 | ||
483 | +#: elf/dl-load.c:1078 elf/dl-load.c:1751 elf/dl-load.c:1854 | ||
484 | msgid "cannot read file data" | ||
485 | msgstr "ne peut lire les données du fichier" | ||
486 | |||
487 | -#: elf/dl-load.c:1121 | ||
488 | +#: elf/dl-load.c:1124 | ||
489 | msgid "ELF load command alignment not page-aligned" | ||
490 | msgstr "Commande de chargement sur une page ELF qui n'est pas alignée" | ||
491 | |||
492 | -#: elf/dl-load.c:1128 | ||
493 | +#: elf/dl-load.c:1131 | ||
494 | msgid "ELF load command address/offset not properly aligned" | ||
495 | msgstr "Commande de chargement sur une adresse ELF incorrectement alignée" | ||
496 | |||
497 | -#: elf/dl-load.c:1211 | ||
498 | +#: elf/dl-load.c:1216 | ||
499 | msgid "cannot allocate TLS data structures for initial thread" | ||
500 | msgstr "ne peut allouer une structure de données TLS pour un thread initial" | ||
501 | |||
502 | -#: elf/dl-load.c:1234 | ||
503 | +#: elf/dl-load.c:1239 | ||
504 | msgid "cannot handle TLS data" | ||
505 | msgstr "ne peut traiter les données TLS" | ||
506 | |||
507 | -#: elf/dl-load.c:1253 | ||
508 | +#: elf/dl-load.c:1258 | ||
509 | msgid "object file has no loadable segments" | ||
510 | msgstr "le fichier objet n'a pas de segment chargeable" | ||
511 | |||
512 | -#: elf/dl-load.c:1289 | ||
513 | +#: elf/dl-load.c:1294 | ||
514 | msgid "failed to map segment from shared object" | ||
515 | msgstr "échec d'adressage (mapping) du segment de l'objet partagé" | ||
516 | |||
517 | -#: elf/dl-load.c:1315 | ||
518 | +#: elf/dl-load.c:1320 | ||
519 | msgid "cannot dynamically load executable" | ||
520 | msgstr "ne peut dynamiquement charger un exécutable" | ||
521 | |||
522 | -#: elf/dl-load.c:1377 | ||
523 | +#: elf/dl-load.c:1383 | ||
524 | msgid "cannot change memory protections" | ||
525 | msgstr "ne peut modifier les protections de mémoire" | ||
526 | |||
527 | -#: elf/dl-load.c:1396 | ||
528 | +#: elf/dl-load.c:1402 | ||
529 | msgid "cannot map zero-fill pages" | ||
530 | msgstr "ne peut adresser des pages remplies de zéros" | ||
531 | |||
532 | -#: elf/dl-load.c:1410 | ||
533 | +#: elf/dl-load.c:1416 | ||
534 | msgid "object file has no dynamic section" | ||
535 | msgstr "le fichier objet n'a pas de section dynamique" | ||
536 | |||
537 | -#: elf/dl-load.c:1433 | ||
538 | +#: elf/dl-load.c:1439 | ||
539 | msgid "shared object cannot be dlopen()ed" | ||
540 | msgstr "l'objet partagé ne peut pas être ouvert via dlopen()" | ||
541 | |||
542 | -#: elf/dl-load.c:1446 | ||
543 | +#: elf/dl-load.c:1452 | ||
544 | msgid "cannot allocate memory for program header" | ||
545 | msgstr "ne peut allouer de la mémoire pour une en-tête de programme" | ||
546 | |||
547 | -#: elf/dl-load.c:1463 elf/dl-open.c:178 | ||
548 | +#: elf/dl-load.c:1469 elf/dl-open.c:180 | ||
549 | msgid "invalid caller" | ||
550 | msgstr "appelant invalide" | ||
551 | |||
552 | -#: elf/dl-load.c:1502 | ||
553 | +#: elf/dl-load.c:1508 | ||
554 | msgid "cannot enable executable stack as shared object requires" | ||
555 | msgstr "ne peut activer une pile exécutable comme l'objet partagé le requiert" | ||
556 | |||
557 | -#: elf/dl-load.c:1515 | ||
558 | +#: elf/dl-load.c:1521 | ||
559 | msgid "cannot close file descriptor" | ||
560 | msgstr "ne peut pas fermer le descripteur de fichier" | ||
561 | |||
562 | -#: elf/dl-load.c:1731 | ||
563 | +#: elf/dl-load.c:1751 | ||
564 | msgid "file too short" | ||
565 | msgstr "fichier trop court" | ||
566 | |||
567 | -#: elf/dl-load.c:1767 | ||
568 | +#: elf/dl-load.c:1787 | ||
569 | msgid "invalid ELF header" | ||
570 | msgstr "en-tête ELF invalide" | ||
571 | |||
572 | -#: elf/dl-load.c:1779 | ||
573 | +#: elf/dl-load.c:1799 | ||
574 | msgid "ELF file data encoding not big-endian" | ||
575 | msgstr "l'encodage des données du fichier ELF n'est pas big-endian" | ||
576 | |||
577 | -#: elf/dl-load.c:1781 | ||
578 | +#: elf/dl-load.c:1801 | ||
579 | msgid "ELF file data encoding not little-endian" | ||
580 | msgstr "l'encodage des données du fichier ELF n'est pas little-endian" | ||
581 | |||
582 | -#: elf/dl-load.c:1785 | ||
583 | +#: elf/dl-load.c:1805 | ||
584 | msgid "ELF file version ident does not match current one" | ||
585 | msgstr "l'identifiant de version du fichier ELF ne concorde pas avec la version courante" | ||
586 | |||
587 | -#: elf/dl-load.c:1789 | ||
588 | +#: elf/dl-load.c:1809 | ||
589 | msgid "ELF file OS ABI invalid" | ||
590 | msgstr "Système d'exploitation du fichier ELF ABI invalide" | ||
591 | |||
592 | -#: elf/dl-load.c:1792 | ||
593 | +#: elf/dl-load.c:1812 | ||
594 | msgid "ELF file ABI version invalid" | ||
595 | msgstr "Version du fichier ELF ABI invalide" | ||
596 | |||
597 | -#: elf/dl-load.c:1795 | ||
598 | +#: elf/dl-load.c:1815 | ||
599 | msgid "nonzero padding in e_ident" | ||
600 | msgstr "remplissage sans zéro dans e_ident" | ||
601 | |||
602 | -#: elf/dl-load.c:1798 | ||
603 | +#: elf/dl-load.c:1818 | ||
604 | msgid "internal error" | ||
605 | msgstr "Erreur interne" | ||
606 | |||
607 | -#: elf/dl-load.c:1805 | ||
608 | +#: elf/dl-load.c:1825 | ||
609 | msgid "ELF file version does not match current one" | ||
610 | msgstr "Version du fichier ELF ne concorde pas avec la version courante" | ||
611 | |||
612 | -#: elf/dl-load.c:1813 | ||
613 | +#: elf/dl-load.c:1833 | ||
614 | msgid "only ET_DYN and ET_EXEC can be loaded" | ||
615 | msgstr "Seuls ET_DYN et ET_EXEC peuvent être chargés" | ||
616 | |||
617 | -#: elf/dl-load.c:1819 | ||
618 | +#: elf/dl-load.c:1839 | ||
619 | msgid "ELF file's phentsize not the expected size" | ||
620 | msgstr "« Phentize » du fichier ELF ne concorde pas avec la taille prévue" | ||
621 | |||
622 | -#: elf/dl-load.c:2336 | ||
623 | +#: elf/dl-load.c:2358 | ||
624 | msgid "wrong ELF class: ELFCLASS64" | ||
625 | msgstr "mauvaise classe ELF : ELFCLASS64" | ||
626 | |||
627 | -#: elf/dl-load.c:2337 | ||
628 | +#: elf/dl-load.c:2359 | ||
629 | msgid "wrong ELF class: ELFCLASS32" | ||
630 | msgstr "mauvaise classe ELF : ELFCLASS32" | ||
631 | |||
632 | -#: elf/dl-load.c:2340 | ||
633 | +#: elf/dl-load.c:2362 | ||
634 | msgid "cannot open shared object file" | ||
635 | msgstr "Ne peut ouvrir le fichier d'objet partagé" | ||
636 | |||
637 | -#: elf/dl-lookup.c:756 ports/sysdeps/mips/dl-lookup.c:773 | ||
638 | +#: elf/dl-lookup.c:757 ports/sysdeps/mips/dl-lookup.c:774 | ||
639 | msgid "relocation error" | ||
640 | msgstr "erreur de réaffectation" | ||
641 | |||
642 | -#: elf/dl-lookup.c:785 ports/sysdeps/mips/dl-lookup.c:802 | ||
643 | +#: elf/dl-lookup.c:786 ports/sysdeps/mips/dl-lookup.c:803 | ||
644 | msgid "symbol lookup error" | ||
645 | msgstr "erreur de recherche de symbole" | ||
646 | |||
647 | -#: elf/dl-open.c:108 | ||
648 | +#: elf/dl-open.c:110 | ||
649 | msgid "cannot extend global scope" | ||
650 | msgstr "ne peut augmenter l'étendue de la plage globale" | ||
651 | |||
652 | -#: elf/dl-open.c:510 | ||
653 | +#: elf/dl-open.c:524 | ||
654 | msgid "TLS generation counter wrapped! Please report this." | ||
655 | msgstr "Le compteur de génération TLS a bouclé ! SVP expédier un rapport avec le script 'glibcbug'." | ||
656 | |||
657 | -#: elf/dl-open.c:532 | ||
658 | +#: elf/dl-open.c:546 | ||
659 | msgid "cannot load any more object with static TLS" | ||
660 | msgstr "ne peut pas charger plus d'objets avec TLS statique" | ||
661 | |||
662 | -#: elf/dl-open.c:581 | ||
663 | +#: elf/dl-open.c:599 | ||
664 | msgid "invalid mode for dlopen()" | ||
665 | msgstr "mode invalide pour dlopen()" | ||
666 | |||
667 | -#: elf/dl-open.c:598 | ||
668 | +#: elf/dl-open.c:616 | ||
669 | msgid "no more namespaces available for dlmopen()" | ||
670 | msgstr "plus d'espace de nommage disponible pour dlmopen()" | ||
671 | |||
672 | -#: elf/dl-open.c:616 | ||
673 | +#: elf/dl-open.c:634 | ||
674 | msgid "invalid target namespace in dlmopen()" | ||
675 | msgstr "espace de nommage cible invalide dans dlmopen()" | ||
676 | |||
677 | @@ -689,23 +697,19 @@ | ||
678 | msgid "cannot apply additional memory protection after relocation" | ||
679 | msgstr "ne peut appliquer les protections additionnelle de mémoire après la réaffectation" | ||
680 | |||
681 | -#: elf/dl-sym.c:162 | ||
682 | +#: elf/dl-sym.c:163 | ||
683 | msgid "RTLD_NEXT used in code not dynamically loaded" | ||
684 | msgstr "RTLD_NEXT est utilisé dans du code qui n'est pas chargé dynamiquement" | ||
685 | |||
686 | -#: elf/dl-sysdep.c:488 elf/dl-sysdep.c:500 | ||
687 | -msgid "cannot create capability list" | ||
688 | -msgstr "ne peut créer une liste des possibilités" | ||
689 | - | ||
690 | -#: elf/dl-tls.c:872 | ||
691 | +#: elf/dl-tls.c:875 | ||
692 | msgid "cannot create TLS data structures" | ||
693 | msgstr "ne peut créer les structures de données TLS" | ||
694 | |||
695 | -#: elf/dl-version.c:171 | ||
696 | +#: elf/dl-version.c:166 | ||
697 | msgid "version lookup error" | ||
698 | msgstr "erreur de recherche de version" | ||
699 | |||
700 | -#: elf/dl-version.c:302 | ||
701 | +#: elf/dl-version.c:297 | ||
702 | msgid "cannot allocate version reference table" | ||
703 | msgstr "ne peut allouer la table de référence des versions" | ||
704 | |||
705 | @@ -773,156 +777,156 @@ | ||
706 | msgid "Configure Dynamic Linker Run Time Bindings." | ||
707 | msgstr "Configuration dynamique des éditions de liens lors de l'exécution." | ||
708 | |||
709 | -#: elf/ldconfig.c:338 | ||
710 | +#: elf/ldconfig.c:341 | ||
711 | #, c-format | ||
712 | msgid "Path `%s' given more than once" | ||
713 | msgstr "Chemin « %s » donné plus d'une fois" | ||
714 | |||
715 | -#: elf/ldconfig.c:378 | ||
716 | +#: elf/ldconfig.c:381 | ||
717 | #, c-format | ||
718 | msgid "%s is not a known library type" | ||
719 | msgstr "%s n'est pas un type de librairie connu" | ||
720 | |||
721 | -#: elf/ldconfig.c:406 | ||
722 | +#: elf/ldconfig.c:409 | ||
723 | #, c-format | ||
724 | msgid "Can't stat %s" | ||
725 | msgstr "Ne peut évaluer par stat %s" | ||
726 | |||
727 | -#: elf/ldconfig.c:480 | ||
728 | +#: elf/ldconfig.c:483 | ||
729 | #, c-format | ||
730 | msgid "Can't stat %s\n" | ||
731 | msgstr "Ne peut évaluer par stat %s\n" | ||
732 | |||
733 | -#: elf/ldconfig.c:490 | ||
734 | +#: elf/ldconfig.c:493 | ||
735 | #, c-format | ||
736 | msgid "%s is not a symbolic link\n" | ||
737 | msgstr "%s n'est pas un lien symbolique\n" | ||
738 | |||
739 | -#: elf/ldconfig.c:509 | ||
740 | +#: elf/ldconfig.c:512 | ||
741 | #, c-format | ||
742 | msgid "Can't unlink %s" | ||
743 | msgstr "Ne peut enlever le lien (unlink) %s" | ||
744 | |||
745 | -#: elf/ldconfig.c:515 | ||
746 | +#: elf/ldconfig.c:518 | ||
747 | #, c-format | ||
748 | msgid "Can't link %s to %s" | ||
749 | msgstr "Ne peut établir un lien entre %s et %s" | ||
750 | |||
751 | -#: elf/ldconfig.c:521 | ||
752 | +#: elf/ldconfig.c:524 | ||
753 | msgid " (changed)\n" | ||
754 | msgstr " (a été modifié)\n" | ||
755 | |||
756 | -#: elf/ldconfig.c:523 | ||
757 | +#: elf/ldconfig.c:526 | ||
758 | msgid " (SKIPPED)\n" | ||
759 | msgstr " (ESCAMOTÉ)\n" | ||
760 | |||
761 | -#: elf/ldconfig.c:578 | ||
762 | +#: elf/ldconfig.c:581 | ||
763 | #, c-format | ||
764 | msgid "Can't find %s" | ||
765 | msgstr "Ne peut repérer %s" | ||
766 | |||
767 | -#: elf/ldconfig.c:594 elf/ldconfig.c:767 elf/ldconfig.c:826 elf/ldconfig.c:860 | ||
768 | +#: elf/ldconfig.c:597 elf/ldconfig.c:770 elf/ldconfig.c:829 elf/ldconfig.c:863 | ||
769 | #, c-format | ||
770 | msgid "Cannot lstat %s" | ||
771 | msgstr "Ne peut évaluer par lstat %s" | ||
772 | |||
773 | -#: elf/ldconfig.c:601 | ||
774 | +#: elf/ldconfig.c:604 | ||
775 | #, c-format | ||
776 | msgid "Ignored file %s since it is not a regular file." | ||
777 | msgstr "A ignoré le fichier %s parce que ce n'est pas un fichier régulier." | ||
778 | |||
779 | -#: elf/ldconfig.c:610 | ||
780 | +#: elf/ldconfig.c:613 | ||
781 | #, c-format | ||
782 | msgid "No link created since soname could not be found for %s" | ||
783 | msgstr "Aucun lien créé étant donné que n'a pas été repéré %s" | ||
784 | |||
785 | -#: elf/ldconfig.c:693 | ||
786 | +#: elf/ldconfig.c:696 | ||
787 | #, c-format | ||
788 | msgid "Can't open directory %s" | ||
789 | msgstr "Ne peut ouvrir le dossier %s" | ||
790 | |||
791 | -#: elf/ldconfig.c:785 elf/ldconfig.c:847 elf/readlib.c:90 | ||
792 | +#: elf/ldconfig.c:788 elf/ldconfig.c:850 elf/readlib.c:90 | ||
793 | #, c-format | ||
794 | msgid "Input file %s not found.\n" | ||
795 | msgstr "Fichier d'entrée %s non repéré\n" | ||
796 | |||
797 | -#: elf/ldconfig.c:792 | ||
798 | +#: elf/ldconfig.c:795 | ||
799 | #, c-format | ||
800 | msgid "Cannot stat %s" | ||
801 | msgstr "Ne peut évaluer par stat %s" | ||
802 | |||
803 | -#: elf/ldconfig.c:921 | ||
804 | +#: elf/ldconfig.c:924 | ||
805 | #, c-format | ||
806 | msgid "libc5 library %s in wrong directory" | ||
807 | msgstr "librairie libc5 %s est dans le mauvais dossier" | ||
808 | |||
809 | -#: elf/ldconfig.c:924 | ||
810 | +#: elf/ldconfig.c:927 | ||
811 | #, c-format | ||
812 | msgid "libc6 library %s in wrong directory" | ||
813 | msgstr "librairie libc6 %s est dans le mauvais dossier" | ||
814 | |||
815 | -#: elf/ldconfig.c:927 | ||
816 | +#: elf/ldconfig.c:930 | ||
817 | #, c-format | ||
818 | msgid "libc4 library %s in wrong directory" | ||
819 | msgstr "librairie libc4 %s est dans le mauvais dossier" | ||
820 | |||
821 | -#: elf/ldconfig.c:955 | ||
822 | +#: elf/ldconfig.c:958 | ||
823 | #, c-format | ||
824 | msgid "libraries %s and %s in directory %s have same soname but different type." | ||
825 | msgstr "Les librairies %s et %s du dossier %s ont le même nom mais sont de types différents." | ||
826 | |||
827 | -#: elf/ldconfig.c:1064 | ||
828 | +#: elf/ldconfig.c:1067 | ||
829 | #, c-format | ||
830 | msgid "Warning: ignoring configuration file that cannot be opened: %s" | ||
831 | msgstr "Attention : ignore tout fichier de configuration qui ne peut s'ouvrir : %s" | ||
832 | |||
833 | -#: elf/ldconfig.c:1130 | ||
834 | +#: elf/ldconfig.c:1133 | ||
835 | #, c-format | ||
836 | msgid "%s:%u: bad syntax in hwcap line" | ||
837 | msgstr "%s:%u : mauvaise syntaxe dans la ligne hwcap" | ||
838 | |||
839 | -#: elf/ldconfig.c:1136 | ||
840 | +#: elf/ldconfig.c:1139 | ||
841 | #, c-format | ||
842 | msgid "%s:%u: hwcap index %lu above maximum %u" | ||
843 | msgstr "%s:%u : l'index hwcap %lu dépasse le maximum %u" | ||
844 | |||
845 | -#: elf/ldconfig.c:1143 elf/ldconfig.c:1151 | ||
846 | +#: elf/ldconfig.c:1146 elf/ldconfig.c:1154 | ||
847 | #, c-format | ||
848 | msgid "%s:%u: hwcap index %lu already defined as %s" | ||
849 | msgstr "%s:%u : l'index hwcap %lu déjà défini comme %s" | ||
850 | |||
851 | -#: elf/ldconfig.c:1154 | ||
852 | +#: elf/ldconfig.c:1157 | ||
853 | #, c-format | ||
854 | msgid "%s:%u: duplicate hwcap %lu %s" | ||
855 | msgstr "%s:%u : hwcap en doublon %lu %s" | ||
856 | |||
857 | -#: elf/ldconfig.c:1176 | ||
858 | +#: elf/ldconfig.c:1179 | ||
859 | #, c-format | ||
860 | msgid "need absolute file name for configuration file when using -r" | ||
861 | msgstr "nécessite un nom de fichier absolu pour le fichier de configuration quand on utilise -r" | ||
862 | |||
863 | -#: elf/ldconfig.c:1183 locale/programs/xmalloc.c:65 malloc/obstack.c:433 | ||
864 | +#: elf/ldconfig.c:1186 locale/programs/xmalloc.c:65 malloc/obstack.c:433 | ||
865 | #: malloc/obstack.c:435 posix/getconf.c:1076 posix/getconf.c:1296 | ||
866 | #, c-format | ||
867 | msgid "memory exhausted" | ||
868 | msgstr "mémoire épuisée" | ||
869 | |||
870 | -#: elf/ldconfig.c:1215 | ||
871 | +#: elf/ldconfig.c:1218 | ||
872 | #, c-format | ||
873 | msgid "%s:%u: cannot read directory %s" | ||
874 | msgstr "%s:%u : ne peut lire le dossier %s" | ||
875 | |||
876 | -#: elf/ldconfig.c:1259 | ||
877 | +#: elf/ldconfig.c:1262 | ||
878 | #, c-format | ||
879 | msgid "relative path `%s' used to build cache" | ||
880 | msgstr "chemin relatif `%s' utilisé pour construire le cache" | ||
881 | |||
882 | -#: elf/ldconfig.c:1285 | ||
883 | +#: elf/ldconfig.c:1288 | ||
884 | #, c-format | ||
885 | msgid "Can't chdir to /" | ||
886 | msgstr "Ne peut se positionner (chdir) dans /" | ||
887 | |||
888 | -#: elf/ldconfig.c:1326 | ||
889 | +#: elf/ldconfig.c:1329 | ||
890 | #, c-format | ||
891 | msgid "Can't open cache file directory %s\n" | ||
892 | msgstr "Ne peut ouvrir le dossier des fichiers de cache %s\n" | ||
893 | @@ -949,46 +953,46 @@ | ||
894 | " -u, --unused affiche les dépendances directes non utilisées\n" | ||
895 | " -v, --verbose affiche toutes les informations\n" | ||
896 | |||
897 | -#: elf/ldd.bash.in:81 | ||
898 | +#: elf/ldd.bash.in:80 | ||
899 | msgid "ldd: option \\`$1' is ambiguous" | ||
900 | msgstr "ldd : option \\`$1' est ambiguë" | ||
901 | |||
902 | -#: elf/ldd.bash.in:88 | ||
903 | +#: elf/ldd.bash.in:87 | ||
904 | msgid "unrecognized option" | ||
905 | msgstr "option non reconnue" | ||
906 | |||
907 | -#: elf/ldd.bash.in:89 elf/ldd.bash.in:127 | ||
908 | +#: elf/ldd.bash.in:88 elf/ldd.bash.in:126 | ||
909 | msgid "Try \\`ldd --help' for more information." | ||
910 | msgstr "Pour en savoir davantage, faites : \\`ldd --help'." | ||
911 | |||
912 | -#: elf/ldd.bash.in:126 | ||
913 | +#: elf/ldd.bash.in:125 | ||
914 | msgid "missing file arguments" | ||
915 | msgstr "arguments de fichier manquants" | ||
916 | |||
917 | #. TRANS No such file or directory. This is a ``file doesn't exist'' error | ||
918 | #. TRANS for ordinary files that are referenced in contexts where they are | ||
919 | #. TRANS expected to already exist. | ||
920 | -#: elf/ldd.bash.in:149 sysdeps/gnu/errlist.c:36 | ||
921 | +#: elf/ldd.bash.in:148 sysdeps/gnu/errlist.c:36 | ||
922 | msgid "No such file or directory" | ||
923 | msgstr "Aucun fichier ou dossier de ce type" | ||
924 | |||
925 | -#: elf/ldd.bash.in:152 inet/rcmd.c:488 | ||
926 | +#: elf/ldd.bash.in:151 inet/rcmd.c:488 | ||
927 | msgid "not regular file" | ||
928 | msgstr "n'est pas un fichier régulier" | ||
929 | |||
930 | -#: elf/ldd.bash.in:155 | ||
931 | +#: elf/ldd.bash.in:154 | ||
932 | msgid "warning: you do not have execution permission for" | ||
933 | msgstr "attention : vous n'avez pas la permission d'exécution pour" | ||
934 | |||
935 | -#: elf/ldd.bash.in:184 | ||
936 | +#: elf/ldd.bash.in:183 | ||
937 | msgid "\tnot a dynamic executable" | ||
938 | msgstr "\tn'est pas un exécutable dynamique" | ||
939 | |||
940 | -#: elf/ldd.bash.in:192 | ||
941 | +#: elf/ldd.bash.in:191 | ||
942 | msgid "exited with unknown exit code" | ||
943 | msgstr "a quitté avec un code retour inconnu" | ||
944 | |||
945 | -#: elf/ldd.bash.in:197 | ||
946 | +#: elf/ldd.bash.in:196 | ||
947 | msgid "error: you do not have read permission for" | ||
948 | msgstr "erreur : vous n'avez pas de permission de lecture pour" | ||
949 | |||
950 | @@ -1027,55 +1031,55 @@ | ||
951 | msgid "cannot read object name" | ||
952 | msgstr "ne peut lire le nom d'objet" | ||
953 | |||
954 | -#: elf/pldd.c:67 | ||
955 | +#: elf/pldd.c:65 | ||
956 | msgid "List dynamic shared objects loaded into process." | ||
957 | msgstr "Liste les objets partagés dynamiques chargés dans le process." | ||
958 | |||
959 | -#: elf/pldd.c:71 | ||
960 | +#: elf/pldd.c:69 | ||
961 | msgid "PID" | ||
962 | msgstr "PID" | ||
963 | |||
964 | -#: elf/pldd.c:102 | ||
965 | +#: elf/pldd.c:100 | ||
966 | #, c-format | ||
967 | msgid "Exactly one parameter with process ID required.\n" | ||
968 | msgstr "Un paramètre exactement avec le process ID est requis.\n" | ||
969 | |||
970 | -#: elf/pldd.c:114 | ||
971 | +#: elf/pldd.c:112 | ||
972 | #, c-format | ||
973 | msgid "invalid process ID '%s'" | ||
974 | msgstr "process ID invalide '%s'" | ||
975 | |||
976 | -#: elf/pldd.c:122 | ||
977 | +#: elf/pldd.c:120 | ||
978 | #, c-format | ||
979 | msgid "cannot open %s" | ||
980 | msgstr "Ne peut ouvrir %s" | ||
981 | |||
982 | -#: elf/pldd.c:147 | ||
983 | +#: elf/pldd.c:145 | ||
984 | #, c-format | ||
985 | msgid "cannot open %s/task" | ||
986 | msgstr "Ne peut ouvrir %s/tâche" | ||
987 | |||
988 | -#: elf/pldd.c:150 | ||
989 | +#: elf/pldd.c:148 | ||
990 | #, c-format | ||
991 | msgid "cannot prepare reading %s/task" | ||
992 | msgstr "ne peut préparer la lecture %s/tâche" | ||
993 | |||
994 | -#: elf/pldd.c:163 | ||
995 | +#: elf/pldd.c:161 | ||
996 | #, c-format | ||
997 | msgid "invalid thread ID '%s'" | ||
998 | msgstr "ID de fil (thread) invalide '%s'" | ||
999 | |||
1000 | -#: elf/pldd.c:174 | ||
1001 | +#: elf/pldd.c:172 | ||
1002 | #, c-format | ||
1003 | msgid "cannot attach to process %lu" | ||
1004 | msgstr "ne peut s'attacher au process %lu" | ||
1005 | |||
1006 | -#: elf/pldd.c:246 | ||
1007 | +#: elf/pldd.c:264 | ||
1008 | #, c-format | ||
1009 | msgid "cannot get information about process %lu" | ||
1010 | msgstr "ne peut récupérer l'information à propos du process %lu" | ||
1011 | |||
1012 | -#: elf/pldd.c:259 | ||
1013 | +#: elf/pldd.c:277 | ||
1014 | #, c-format | ||
1015 | msgid "process %lu is no ELF program" | ||
1016 | msgstr "le process %lu n'est pas un programme ELF" | ||
1017 | @@ -1209,19 +1213,19 @@ | ||
1018 | "Les arguments obligatoires pour options de formes longues\n" | ||
1019 | "sont aussi obligatoires pour options de forme courtes correspondantes." | ||
1020 | |||
1021 | -#: elf/sotruss.ksh:56 | ||
1022 | +#: elf/sotruss.ksh:55 | ||
1023 | msgid "%s: option requires an argument -- '%s'\\n" | ||
1024 | msgstr "%s : l'option requiert un argument -- '%s'\\n" | ||
1025 | |||
1026 | -#: elf/sotruss.ksh:62 | ||
1027 | +#: elf/sotruss.ksh:61 | ||
1028 | msgid "%s: option is ambiguous; possibilities:" | ||
1029 | msgstr "%s : l'option est ambiguë; possibilités:" | ||
1030 | |||
1031 | -#: elf/sotruss.ksh:80 | ||
1032 | +#: elf/sotruss.ksh:79 | ||
1033 | msgid "Written by %s.\\n" | ||
1034 | msgstr "Écrit par %s.\\n" | ||
1035 | |||
1036 | -#: elf/sotruss.ksh:87 | ||
1037 | +#: elf/sotruss.ksh:86 | ||
1038 | msgid "" | ||
1039 | "Usage: %s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n" | ||
1040 | "\t [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\n" | ||
1041 | @@ -1233,7 +1237,7 @@ | ||
1042 | "\t [--help] [--usage] [--version] [--]\n" | ||
1043 | "\t EXECUTABLE [EXECUTABLE-OPTION...]\\n" | ||
1044 | |||
1045 | -#: elf/sotruss.ksh:135 | ||
1046 | +#: elf/sotruss.ksh:134 | ||
1047 | msgid "%s: unrecognized option '%c%s'\\n" | ||
1048 | msgstr "%s : option non reconnue « %c%s »\\n" | ||
1049 | |||
1050 | @@ -1261,97 +1265,97 @@ | ||
1051 | msgid "SHOBJ [PROFDATA]" | ||
1052 | msgstr "SHOBJ [PROFDATA]" | ||
1053 | |||
1054 | -#: elf/sprof.c:429 | ||
1055 | +#: elf/sprof.c:432 | ||
1056 | #, c-format | ||
1057 | msgid "failed to load shared object `%s'" | ||
1058 | msgstr "échec de chargement de l'objet partagé « %s »" | ||
1059 | |||
1060 | -#: elf/sprof.c:438 | ||
1061 | +#: elf/sprof.c:441 | ||
1062 | #, c-format | ||
1063 | msgid "cannot create internal descriptors" | ||
1064 | msgstr "ne peut créer les descripteurs internes" | ||
1065 | |||
1066 | -#: elf/sprof.c:550 | ||
1067 | +#: elf/sprof.c:553 | ||
1068 | #, c-format | ||
1069 | msgid "Reopening shared object `%s' failed" | ||
1070 | msgstr "Échec de réouverture de l'objet partagé « %s »" | ||
1071 | |||
1072 | -#: elf/sprof.c:557 elf/sprof.c:652 | ||
1073 | +#: elf/sprof.c:560 elf/sprof.c:655 | ||
1074 | #, c-format | ||
1075 | msgid "reading of section headers failed" | ||
1076 | msgstr "Échec de la lecture d'en-têtes de section" | ||
1077 | |||
1078 | -#: elf/sprof.c:565 elf/sprof.c:660 | ||
1079 | +#: elf/sprof.c:568 elf/sprof.c:663 | ||
1080 | #, c-format | ||
1081 | msgid "reading of section header string table failed" | ||
1082 | msgstr "Échec de lecture de la table des chaînes d'en-têtes de section" | ||
1083 | |||
1084 | -#: elf/sprof.c:591 | ||
1085 | +#: elf/sprof.c:594 | ||
1086 | #, c-format | ||
1087 | msgid "*** Cannot read debuginfo file name: %m\n" | ||
1088 | msgstr "*** Ne peut lire le nom de fichier de debuginfo : %m\n" | ||
1089 | |||
1090 | -#: elf/sprof.c:612 | ||
1091 | +#: elf/sprof.c:615 | ||
1092 | #, c-format | ||
1093 | msgid "cannot determine file name" | ||
1094 | msgstr "Ne peut déterminer le nom de fichier" | ||
1095 | |||
1096 | -#: elf/sprof.c:645 | ||
1097 | +#: elf/sprof.c:648 | ||
1098 | #, c-format | ||
1099 | msgid "reading of ELF header failed" | ||
1100 | msgstr "Échec de lecture de l'en-tête ELF" | ||
1101 | |||
1102 | -#: elf/sprof.c:681 | ||
1103 | +#: elf/sprof.c:684 | ||
1104 | #, c-format | ||
1105 | msgid "*** The file `%s' is stripped: no detailed analysis possible\n" | ||
1106 | msgstr "*** Le fichier « %s » a été élagué : aucune analyse détaillée possible\n" | ||
1107 | |||
1108 | -#: elf/sprof.c:711 | ||
1109 | +#: elf/sprof.c:714 | ||
1110 | #, c-format | ||
1111 | msgid "failed to load symbol data" | ||
1112 | msgstr "échec du chargement de données de symbole" | ||
1113 | |||
1114 | -#: elf/sprof.c:776 | ||
1115 | +#: elf/sprof.c:779 | ||
1116 | #, c-format | ||
1117 | msgid "cannot load profiling data" | ||
1118 | msgstr "ne peut charger les données de profilage" | ||
1119 | |||
1120 | -#: elf/sprof.c:785 | ||
1121 | +#: elf/sprof.c:788 | ||
1122 | #, c-format | ||
1123 | msgid "while stat'ing profiling data file" | ||
1124 | msgstr "lors de l'évaluation par stat() du fichier de données de profilage" | ||
1125 | |||
1126 | -#: elf/sprof.c:793 | ||
1127 | +#: elf/sprof.c:796 | ||
1128 | #, c-format | ||
1129 | msgid "profiling data file `%s' does not match shared object `%s'" | ||
1130 | msgstr "Le fichier de données de profilage « %s » ne concorde pas avec l'objet partagé « %s »" | ||
1131 | |||
1132 | -#: elf/sprof.c:804 | ||
1133 | +#: elf/sprof.c:807 | ||
1134 | #, c-format | ||
1135 | msgid "failed to mmap the profiling data file" | ||
1136 | msgstr "Échec de la procédure mmap sur le fichier de données de profilage" | ||
1137 | |||
1138 | -#: elf/sprof.c:812 | ||
1139 | +#: elf/sprof.c:815 | ||
1140 | #, c-format | ||
1141 | msgid "error while closing the profiling data file" | ||
1142 | msgstr "erreur lors de la fermeture du fichier de données de profilage" | ||
1143 | |||
1144 | -#: elf/sprof.c:821 elf/sprof.c:919 | ||
1145 | +#: elf/sprof.c:824 elf/sprof.c:922 | ||
1146 | #, c-format | ||
1147 | msgid "cannot create internal descriptor" | ||
1148 | msgstr "ne peut créer un descripteur interne" | ||
1149 | |||
1150 | -#: elf/sprof.c:895 | ||
1151 | +#: elf/sprof.c:898 | ||
1152 | #, c-format | ||
1153 | msgid "`%s' is no correct profile data file for `%s'" | ||
1154 | msgstr "« %s » est un fichier de profilage incorrect pour « %s »" | ||
1155 | |||
1156 | -#: elf/sprof.c:1076 elf/sprof.c:1134 | ||
1157 | +#: elf/sprof.c:1079 elf/sprof.c:1137 | ||
1158 | #, c-format | ||
1159 | msgid "cannot allocate symbol data" | ||
1160 | msgstr "ne peut allouer les données des symboles" | ||
1161 | |||
1162 | -#: iconv/iconv_charmap.c:143 iconv/iconv_prog.c:445 | ||
1163 | +#: iconv/iconv_charmap.c:143 iconv/iconv_prog.c:448 | ||
1164 | #, c-format | ||
1165 | msgid "cannot open output file" | ||
1166 | msgstr "ne peut ouvrir le fichier de sortie" | ||
1167 | @@ -1366,18 +1370,18 @@ | ||
1168 | msgid "illegal input sequence at position %Zd" | ||
1169 | msgstr "séquence d'échappement d'entrée non permise à la position %Zd" | ||
1170 | |||
1171 | -#: iconv/iconv_charmap.c:482 iconv/iconv_prog.c:536 | ||
1172 | +#: iconv/iconv_charmap.c:482 iconv/iconv_prog.c:539 | ||
1173 | #, c-format | ||
1174 | msgid "incomplete character or shift sequence at end of buffer" | ||
1175 | msgstr "caractère ou séquence de changement incomplet à la fin du tampon" | ||
1176 | |||
1177 | -#: iconv/iconv_charmap.c:527 iconv/iconv_charmap.c:563 iconv/iconv_prog.c:579 | ||
1178 | -#: iconv/iconv_prog.c:615 | ||
1179 | +#: iconv/iconv_charmap.c:527 iconv/iconv_charmap.c:563 iconv/iconv_prog.c:582 | ||
1180 | +#: iconv/iconv_prog.c:618 | ||
1181 | #, c-format | ||
1182 | msgid "error while reading the input" | ||
1183 | msgstr "erreur lors de la lecture de l'entrée" | ||
1184 | |||
1185 | -#: iconv/iconv_charmap.c:545 iconv/iconv_prog.c:597 | ||
1186 | +#: iconv/iconv_charmap.c:545 iconv/iconv_prog.c:600 | ||
1187 | #, c-format | ||
1188 | msgid "unable to allocate buffer for input" | ||
1189 | msgstr "incapable d'allouer un tampon pour l'entrée" | ||
1190 | @@ -1460,27 +1464,27 @@ | ||
1191 | msgid "error while closing output file" | ||
1192 | msgstr "erreur lors de la fermeture du fichier de sortie" | ||
1193 | |||
1194 | -#: iconv/iconv_prog.c:455 | ||
1195 | +#: iconv/iconv_prog.c:458 | ||
1196 | #, c-format | ||
1197 | msgid "conversion stopped due to problem in writing the output" | ||
1198 | msgstr "conversion stoppée en raison d'un problème d'écriture à la sortie" | ||
1199 | |||
1200 | -#: iconv/iconv_prog.c:532 | ||
1201 | +#: iconv/iconv_prog.c:535 | ||
1202 | #, c-format | ||
1203 | msgid "illegal input sequence at position %ld" | ||
1204 | msgstr "séquence d'échappement non permise à la position %ld" | ||
1205 | |||
1206 | -#: iconv/iconv_prog.c:540 | ||
1207 | +#: iconv/iconv_prog.c:543 | ||
1208 | #, c-format | ||
1209 | msgid "internal error (illegal descriptor)" | ||
1210 | msgstr "erreur interne (descripteur non permis)" | ||
1211 | |||
1212 | -#: iconv/iconv_prog.c:543 | ||
1213 | +#: iconv/iconv_prog.c:546 | ||
1214 | #, c-format | ||
1215 | msgid "unknown iconv() error %d" | ||
1216 | msgstr "erreur inconnue de iconv() %d" | ||
1217 | |||
1218 | -#: iconv/iconv_prog.c:788 | ||
1219 | +#: iconv/iconv_prog.c:791 | ||
1220 | msgid "" | ||
1221 | "The following list contain all the coded character sets known. This does\n" | ||
1222 | "not necessarily mean that all combinations of these names can be used for\n" | ||
1223 | @@ -1526,12 +1530,12 @@ | ||
1224 | msgid "no output file produced because warnings were issued" | ||
1225 | msgstr "aucun fichier de sortie généré en raison d'avertissements émis" | ||
1226 | |||
1227 | -#: iconv/iconvconfig.c:431 | ||
1228 | +#: iconv/iconvconfig.c:434 | ||
1229 | #, c-format | ||
1230 | msgid "while inserting in search tree" | ||
1231 | msgstr "lors d'une insertion dans un arbre de recherche" | ||
1232 | |||
1233 | -#: iconv/iconvconfig.c:1240 | ||
1234 | +#: iconv/iconvconfig.c:1243 | ||
1235 | #, c-format | ||
1236 | msgid "cannot generate output file" | ||
1237 | msgstr "ne peut générer le fichier de sortie" | ||
1238 | @@ -2636,7 +2640,7 @@ | ||
1239 | msgid "Cannot set LC_ALL to default locale" | ||
1240 | msgstr "Ne peut initialiser LC_ALL à la locale par défaut" | ||
1241 | |||
1242 | -#: locale/programs/locale.c:518 | ||
1243 | +#: locale/programs/locale.c:521 | ||
1244 | #, c-format | ||
1245 | msgid "while preparing output" | ||
1246 | msgstr "lors de la préparation de la sortie" | ||
1247 | @@ -2734,7 +2738,7 @@ | ||
1248 | msgstr "ERREUR FATALE : le système ne peut définir « _POSIX2_LOCALEDEF »" | ||
1249 | |||
1250 | #: locale/programs/localedef.c:253 locale/programs/localedef.c:269 | ||
1251 | -#: locale/programs/localedef.c:595 locale/programs/localedef.c:615 | ||
1252 | +#: locale/programs/localedef.c:601 locale/programs/localedef.c:621 | ||
1253 | #, c-format | ||
1254 | msgid "cannot open locale definition file `%s'" | ||
1255 | msgstr "Ne peut ouvrir le fichier des particularisations « %s »" | ||
1256 | @@ -2744,7 +2748,7 @@ | ||
1257 | msgid "cannot write output files to `%s'" | ||
1258 | msgstr "Ne peut écrire dans les fichiers de sortie vers « %s »" | ||
1259 | |||
1260 | -#: locale/programs/localedef.c:362 | ||
1261 | +#: locale/programs/localedef.c:367 | ||
1262 | #, c-format | ||
1263 | msgid "" | ||
1264 | "System's directory for character maps : %s\n" | ||
1265 | @@ -2757,18 +2761,18 @@ | ||
1266 | "\t\t du chemin des particularisations : %s\n" | ||
1267 | "%s" | ||
1268 | |||
1269 | -#: locale/programs/localedef.c:563 | ||
1270 | +#: locale/programs/localedef.c:569 | ||
1271 | #, c-format | ||
1272 | msgid "circular dependencies between locale definitions" | ||
1273 | msgstr "Dépendance circulaires entre les définitions de locales" | ||
1274 | |||
1275 | -#: locale/programs/localedef.c:569 | ||
1276 | +#: locale/programs/localedef.c:575 | ||
1277 | #, c-format | ||
1278 | msgid "cannot add already read locale `%s' a second time" | ||
1279 | msgstr "Ne peut ajouter une locale déjà lu « %s » une seconde fois" | ||
1280 | |||
1281 | #: locale/programs/locarchive.c:113 locale/programs/locarchive.c:347 | ||
1282 | -#: nss/makedb.c:289 | ||
1283 | +#: nss/makedb.c:290 | ||
1284 | #, c-format | ||
1285 | msgid "cannot create temporary file" | ||
1286 | msgstr "ne peut créer un fichier temporaire" | ||
1287 | @@ -2962,12 +2966,12 @@ | ||
1288 | msgid "repertoire map file `%s' not found" | ||
1289 | msgstr "Fichier de la table des caractères « %s » non repérable" | ||
1290 | |||
1291 | -#: login/programs/pt_chown.c:77 | ||
1292 | +#: login/programs/pt_chown.c:78 | ||
1293 | #, c-format | ||
1294 | msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n" | ||
1295 | msgstr "Etablit les permissions d'accès, le propriétaire et le groupe du pseudo terminal esclave correspondant au pseudo terminal maître passé au descripteur de fichier`%d'. Ceci est le programme d'aide de la fonction `grantpt'. Il n'est pas prévu pour être lancé depuis la ligne de commande.\n" | ||
1296 | |||
1297 | -#: login/programs/pt_chown.c:87 | ||
1298 | +#: login/programs/pt_chown.c:92 | ||
1299 | #, c-format | ||
1300 | msgid "" | ||
1301 | "The owner is set to the current user, the group is set to `%s', and the access permission is set to `%o'.\n" | ||
1302 | @@ -2978,33 +2982,33 @@ | ||
1303 | "\n" | ||
1304 | "%s" | ||
1305 | |||
1306 | -#: login/programs/pt_chown.c:191 | ||
1307 | +#: login/programs/pt_chown.c:198 | ||
1308 | #, c-format | ||
1309 | msgid "too many arguments" | ||
1310 | msgstr "trop d'arguments" | ||
1311 | |||
1312 | -#: login/programs/pt_chown.c:199 | ||
1313 | +#: login/programs/pt_chown.c:206 | ||
1314 | #, c-format | ||
1315 | msgid "needs to be installed setuid `root'" | ||
1316 | msgstr "nécessite d'être installé avec setuid `root'" | ||
1317 | |||
1318 | -#: malloc/mcheck.c:349 | ||
1319 | +#: malloc/mcheck.c:348 | ||
1320 | msgid "memory is consistent, library is buggy\n" | ||
1321 | msgstr "La mémoire est consistente, la librairie est fautive.\n" | ||
1322 | |||
1323 | -#: malloc/mcheck.c:352 | ||
1324 | +#: malloc/mcheck.c:351 | ||
1325 | msgid "memory clobbered before allocated block\n" | ||
1326 | msgstr "Mémoire écrasée avant le bloc alloué\n" | ||
1327 | |||
1328 | -#: malloc/mcheck.c:355 | ||
1329 | +#: malloc/mcheck.c:354 | ||
1330 | msgid "memory clobbered past end of allocated block\n" | ||
1331 | msgstr "Mémoire écrasée après la fin du bloc alloué\n" | ||
1332 | |||
1333 | -#: malloc/mcheck.c:358 | ||
1334 | +#: malloc/mcheck.c:357 | ||
1335 | msgid "block freed twice\n" | ||
1336 | msgstr "Bloc libéré deux fois\n" | ||
1337 | |||
1338 | -#: malloc/mcheck.c:361 | ||
1339 | +#: malloc/mcheck.c:360 | ||
1340 | msgid "bogus mcheck_status, library is buggy\n" | ||
1341 | msgstr "Statut de « mcheck_status » erroné, la librarie est erronée.\n" | ||
1342 | |||
1343 | @@ -3066,7 +3070,7 @@ | ||
1344 | "le sont aussi pour les options de forme courtes.\n" | ||
1345 | "\n" | ||
1346 | |||
1347 | -#: malloc/memusage.sh:100 | ||
1348 | +#: malloc/memusage.sh:99 | ||
1349 | msgid "" | ||
1350 | "Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n" | ||
1351 | "\t [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n" | ||
1352 | @@ -3078,47 +3082,47 @@ | ||
1353 | "\t [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n" | ||
1354 | "\t PROGRAM [PROGRAMOPTION]..." | ||
1355 | |||
1356 | -#: malloc/memusage.sh:192 | ||
1357 | +#: malloc/memusage.sh:191 | ||
1358 | msgid "memusage: option \\`${1##*=}' is ambiguous" | ||
1359 | msgstr "memusage : l'option \\`${1##*=}' est ambiguë" | ||
1360 | |||
1361 | -#: malloc/memusage.sh:201 | ||
1362 | +#: malloc/memusage.sh:200 | ||
1363 | msgid "memusage: unrecognized option \\`$1'" | ||
1364 | msgstr "memusage : option non reconnue \\`$1'" | ||
1365 | |||
1366 | -#: malloc/memusage.sh:214 | ||
1367 | +#: malloc/memusage.sh:213 | ||
1368 | msgid "No program name given" | ||
1369 | msgstr "Le nom de programme n'a pas été indiqué" | ||
1370 | |||
1371 | -#: malloc/memusagestat.c:56 | ||
1372 | +#: malloc/memusagestat.c:55 | ||
1373 | msgid "Name output file" | ||
1374 | msgstr "Nommer le fichier de sortie" | ||
1375 | |||
1376 | -#: malloc/memusagestat.c:57 | ||
1377 | +#: malloc/memusagestat.c:56 | ||
1378 | msgid "Title string used in output graphic" | ||
1379 | msgstr "Chaîne de titre utilisé dans le graphique de sortie" | ||
1380 | |||
1381 | -#: malloc/memusagestat.c:58 | ||
1382 | +#: malloc/memusagestat.c:57 | ||
1383 | msgid "Generate output linear to time (default is linear to number of function calls)" | ||
1384 | msgstr "Génération de sortie linéaire au temps (par défaut linéaire au nombre d'appels de fonction)" | ||
1385 | |||
1386 | -#: malloc/memusagestat.c:60 | ||
1387 | +#: malloc/memusagestat.c:59 | ||
1388 | msgid "Also draw graph for total memory consumption" | ||
1389 | msgstr "Afficher aussi le graphe de l'utilisation totale de la mémoire" | ||
1390 | |||
1391 | -#: malloc/memusagestat.c:61 | ||
1392 | +#: malloc/memusagestat.c:60 | ||
1393 | msgid "Make output graphic VALUE pixels wide" | ||
1394 | msgstr "Génère un graphe ayant pour largeur VALUE pixels" | ||
1395 | |||
1396 | -#: malloc/memusagestat.c:62 | ||
1397 | +#: malloc/memusagestat.c:61 | ||
1398 | msgid "Make output graphic VALUE pixels high" | ||
1399 | msgstr "Génère un graphe ayant VALUE pixels de hauteur" | ||
1400 | |||
1401 | -#: malloc/memusagestat.c:67 | ||
1402 | +#: malloc/memusagestat.c:66 | ||
1403 | msgid "Generate graphic from memory profiling data" | ||
1404 | msgstr "Génération du graphique des données de profilage de la mémoire" | ||
1405 | |||
1406 | -#: malloc/memusagestat.c:70 | ||
1407 | +#: malloc/memusagestat.c:69 | ||
1408 | msgid "DATAFILE [OUTFILE]" | ||
1409 | msgstr "DATAFILE [FICHIER_DE_SORTIE]" | ||
1410 | |||
1411 | @@ -4016,23 +4020,23 @@ | ||
1412 | msgid "setgroups failed" | ||
1413 | msgstr "échec de setgroups" | ||
1414 | |||
1415 | -#: nscd/grpcache.c:390 nscd/hstcache.c:440 nscd/initgrcache.c:411 | ||
1416 | +#: nscd/grpcache.c:407 nscd/hstcache.c:440 nscd/initgrcache.c:411 | ||
1417 | #: nscd/pwdcache.c:383 nscd/servicescache.c:338 | ||
1418 | #, c-format | ||
1419 | msgid "short write in %s: %s" | ||
1420 | msgstr "Écriture écourtée dans %s : %s" | ||
1421 | |||
1422 | -#: nscd/grpcache.c:435 nscd/initgrcache.c:77 | ||
1423 | +#: nscd/grpcache.c:452 nscd/initgrcache.c:77 | ||
1424 | #, c-format | ||
1425 | msgid "Haven't found \"%s\" in group cache!" | ||
1426 | msgstr "N'a pas trouvé « %s » dans la cache du groupe !" | ||
1427 | |||
1428 | -#: nscd/grpcache.c:437 nscd/initgrcache.c:79 | ||
1429 | +#: nscd/grpcache.c:454 nscd/initgrcache.c:79 | ||
1430 | #, c-format | ||
1431 | msgid "Reloading \"%s\" in group cache!" | ||
1432 | msgstr "Recharge « %s » dans le cache groupe !" | ||
1433 | |||
1434 | -#: nscd/grpcache.c:516 | ||
1435 | +#: nscd/grpcache.c:533 | ||
1436 | #, c-format | ||
1437 | msgid "Invalid numeric gid \"%s\"!" | ||
1438 | msgstr "gid numérique invalide « %s » !" | ||
1439 | @@ -4115,7 +4119,7 @@ | ||
1440 | msgid "Name Service Cache Daemon." | ||
1441 | msgstr "« Daemon » du cache du service de noms." | ||
1442 | |||
1443 | -#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:207 | ||
1444 | +#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:208 | ||
1445 | #, c-format | ||
1446 | msgid "wrong number of arguments" | ||
1447 | msgstr "Mauvais nombre d'arguments" | ||
1448 | @@ -4144,32 +4148,32 @@ | ||
1449 | msgid "Could not create log file" | ||
1450 | msgstr "N'a pu créé le fichier journal" | ||
1451 | |||
1452 | -#: nscd/nscd.c:346 nscd/nscd.c:371 nscd/nscd_stat.c:173 | ||
1453 | +#: nscd/nscd.c:348 nscd/nscd.c:373 nscd/nscd_stat.c:173 | ||
1454 | #, c-format | ||
1455 | msgid "Only root is allowed to use this option!" | ||
1456 | msgstr "Seul ROOT est autorisé à utiliser cette option !" | ||
1457 | |||
1458 | -#: nscd/nscd.c:386 | ||
1459 | +#: nscd/nscd.c:388 | ||
1460 | #, c-format | ||
1461 | msgid "'%s' is not a known database" | ||
1462 | msgstr "'%s' n'est pas une base de donnée connue" | ||
1463 | |||
1464 | -#: nscd/nscd.c:411 nscd/nscd_stat.c:192 | ||
1465 | +#: nscd/nscd.c:413 nscd/nscd_stat.c:192 | ||
1466 | #, c-format | ||
1467 | msgid "write incomplete" | ||
1468 | msgstr "écriture incomplète" | ||
1469 | |||
1470 | -#: nscd/nscd.c:422 | ||
1471 | +#: nscd/nscd.c:424 | ||
1472 | #, c-format | ||
1473 | msgid "cannot read invalidate ACK" | ||
1474 | msgstr "ne peut lire les ACK invalidés" | ||
1475 | |||
1476 | -#: nscd/nscd.c:428 | ||
1477 | +#: nscd/nscd.c:430 | ||
1478 | #, c-format | ||
1479 | msgid "invalidation failed" | ||
1480 | msgstr "l'invalidation a échoué" | ||
1481 | |||
1482 | -#: nscd/nscd.c:438 | ||
1483 | +#: nscd/nscd.c:440 | ||
1484 | #, c-format | ||
1485 | msgid "secure services not implemented anymore" | ||
1486 | msgstr "les services de sécurité ne sont plus implémentés" | ||
1487 | @@ -4504,31 +4508,31 @@ | ||
1488 | msgid "Unknown database: %s\n" | ||
1489 | msgstr "Base de données inconnue : « %s »\n" | ||
1490 | |||
1491 | -#: nss/makedb.c:117 | ||
1492 | +#: nss/makedb.c:118 | ||
1493 | msgid "Convert key to lower case" | ||
1494 | msgstr "Conversion des caractères en minuscules" | ||
1495 | |||
1496 | -#: nss/makedb.c:120 | ||
1497 | +#: nss/makedb.c:121 | ||
1498 | msgid "Do not print messages while building database" | ||
1499 | msgstr "Ne pas afficher de message lors de la génération de la base de données" | ||
1500 | |||
1501 | -#: nss/makedb.c:122 | ||
1502 | +#: nss/makedb.c:123 | ||
1503 | msgid "Print content of database file, one entry a line" | ||
1504 | msgstr "Afficher le contenu du fichier de base de données, une entrée par ligne" | ||
1505 | |||
1506 | -#: nss/makedb.c:123 | ||
1507 | +#: nss/makedb.c:124 | ||
1508 | msgid "CHAR" | ||
1509 | msgstr "CHAR" | ||
1510 | |||
1511 | -#: nss/makedb.c:124 | ||
1512 | +#: nss/makedb.c:125 | ||
1513 | msgid "Generated line not part of iteration" | ||
1514 | msgstr "La ligne générée ne fait pas partie de l'itération" | ||
1515 | |||
1516 | -#: nss/makedb.c:129 | ||
1517 | +#: nss/makedb.c:130 | ||
1518 | msgid "Create simple database from textual input." | ||
1519 | msgstr "Crée une base de données simple à partir des entrées textuelles." | ||
1520 | |||
1521 | -#: nss/makedb.c:132 | ||
1522 | +#: nss/makedb.c:133 | ||
1523 | msgid "" | ||
1524 | "INPUT-FILE OUTPUT-FILE\n" | ||
1525 | "-o OUTPUT-FILE INPUT-FILE\n" | ||
1526 | @@ -4538,66 +4542,66 @@ | ||
1527 | "-o FICHIER_DE_SORTIE FICHIER_D_ENTRÉE\n" | ||
1528 | "-u FICHIER_D_ENTRÉE" | ||
1529 | |||
1530 | -#: nss/makedb.c:228 | ||
1531 | +#: nss/makedb.c:229 | ||
1532 | #, c-format | ||
1533 | msgid "cannot open database file `%s'" | ||
1534 | msgstr "Ne peut ouvrir le fichier de base de données `%s'" | ||
1535 | |||
1536 | -#: nss/makedb.c:273 | ||
1537 | +#: nss/makedb.c:274 | ||
1538 | #, c-format | ||
1539 | msgid "no entries to be processed" | ||
1540 | msgstr "pas d'entrée à traiter" | ||
1541 | |||
1542 | -#: nss/makedb.c:283 | ||
1543 | +#: nss/makedb.c:284 | ||
1544 | #, c-format | ||
1545 | msgid "cannot create temporary file name" | ||
1546 | msgstr "ne peut créer un nom de fichier temporaire" | ||
1547 | |||
1548 | -#: nss/makedb.c:305 | ||
1549 | +#: nss/makedb.c:306 | ||
1550 | #, c-format | ||
1551 | msgid "cannot stat newly created file" | ||
1552 | msgstr "pas de stat pour un fichier nouvellement créé" | ||
1553 | |||
1554 | -#: nss/makedb.c:316 | ||
1555 | +#: nss/makedb.c:317 | ||
1556 | #, c-format | ||
1557 | msgid "cannot rename temporary file" | ||
1558 | msgstr "ne peut renommer un fichier temporaire" | ||
1559 | |||
1560 | -#: nss/makedb.c:529 nss/makedb.c:552 | ||
1561 | +#: nss/makedb.c:533 nss/makedb.c:556 | ||
1562 | #, c-format | ||
1563 | msgid "cannot create search tree" | ||
1564 | msgstr "ne peut créer un arbre de recherche" | ||
1565 | |||
1566 | -#: nss/makedb.c:558 | ||
1567 | +#: nss/makedb.c:562 | ||
1568 | msgid "duplicate key" | ||
1569 | msgstr "Duplicité de clé" | ||
1570 | |||
1571 | -#: nss/makedb.c:570 | ||
1572 | +#: nss/makedb.c:574 | ||
1573 | #, c-format | ||
1574 | msgid "problems while reading `%s'" | ||
1575 | msgstr "Problème lors de la lecture de `%s'" | ||
1576 | |||
1577 | -#: nss/makedb.c:794 | ||
1578 | +#: nss/makedb.c:801 | ||
1579 | #, c-format | ||
1580 | msgid "failed to write new database file" | ||
1581 | msgstr "échec à l'écriture du fichier de database" | ||
1582 | |||
1583 | -#: nss/makedb.c:807 | ||
1584 | +#: nss/makedb.c:814 | ||
1585 | #, c-format | ||
1586 | msgid "cannot stat database file" | ||
1587 | msgstr "pas de stat pour le fichier de database" | ||
1588 | |||
1589 | -#: nss/makedb.c:812 | ||
1590 | +#: nss/makedb.c:819 | ||
1591 | #, c-format | ||
1592 | msgid "cannot map database file" | ||
1593 | msgstr "Ne peut corréler (mapper) le fichier de database" | ||
1594 | |||
1595 | -#: nss/makedb.c:815 | ||
1596 | +#: nss/makedb.c:822 | ||
1597 | #, c-format | ||
1598 | msgid "file not a database file" | ||
1599 | msgstr "le fichier n'est pas un fichier de database" | ||
1600 | |||
1601 | -#: nss/makedb.c:866 | ||
1602 | +#: nss/makedb.c:873 | ||
1603 | #, c-format | ||
1604 | msgid "cannot set file creation context for `%s'" | ||
1605 | msgstr "Ne peut établir le contexte de création de fichier pour `%s'" | ||
1606 | @@ -4779,7 +4783,7 @@ | ||
1607 | msgid "No previous regular expression" | ||
1608 | msgstr "Aucune expression régulière précédente" | ||
1609 | |||
1610 | -#: posix/wordexp.c:1829 | ||
1611 | +#: posix/wordexp.c:1830 | ||
1612 | msgid "parameter null or not set" | ||
1613 | msgstr "paramètre nul ou non initialisé" | ||
1614 | |||
1615 | @@ -5045,8 +5049,8 @@ | ||
1616 | msgstr "Signal inconnu %d" | ||
1617 | |||
1618 | #: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:134 | ||
1619 | -#: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:171 sunrpc/svc_tcp.c:216 | ||
1620 | -#: sunrpc/svc_udp.c:145 sunrpc/svc_unix.c:171 sunrpc/svc_unix.c:212 | ||
1621 | +#: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:188 sunrpc/svc_tcp.c:233 | ||
1622 | +#: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229 | ||
1623 | #: sunrpc/xdr.c:630 sunrpc/xdr.c:790 sunrpc/xdr_array.c:97 | ||
1624 | #: sunrpc/xdr_rec.c:151 sunrpc/xdr_ref.c:76 | ||
1625 | msgid "out of memory\n" | ||
1626 | @@ -5211,242 +5215,249 @@ | ||
1627 | msgid "Cannot receive reply to broadcast" | ||
1628 | msgstr "Ne peut recevoir l'accusé réception à la requête faite par diffusion" | ||
1629 | |||
1630 | -#: sunrpc/rpc_main.c:280 | ||
1631 | +#: sunrpc/rpc_main.c:277 | ||
1632 | #, c-format | ||
1633 | msgid "%s: output would overwrite %s\n" | ||
1634 | msgstr "%s : la sortie écraserait %s\n" | ||
1635 | |||
1636 | -#: sunrpc/rpc_main.c:287 | ||
1637 | +#: sunrpc/rpc_main.c:284 | ||
1638 | #, c-format | ||
1639 | msgid "%s: unable to open %s: %m\n" | ||
1640 | msgstr "%s : incapable d'ouvrir %s : %m\n" | ||
1641 | |||
1642 | -#: sunrpc/rpc_main.c:299 | ||
1643 | +#: sunrpc/rpc_main.c:296 | ||
1644 | #, c-format | ||
1645 | msgid "%s: while writing output %s: %m" | ||
1646 | msgstr "%s : lors de l'écriture sur la sortie %s : %m" | ||
1647 | |||
1648 | -#: sunrpc/rpc_main.c:334 | ||
1649 | +#: sunrpc/rpc_main.c:332 sunrpc/rpc_main.c:371 | ||
1650 | #, c-format | ||
1651 | -msgid "cannot find C preprocessor: %s \n" | ||
1652 | -msgstr "Ne peut trouver le préprocesseur C : %s\n" | ||
1653 | +msgid "cannot find C preprocessor: %s\n" | ||
1654 | +msgstr "Ne peut trouver le préprocesseur C : %s\n" | ||
1655 | |||
1656 | -#: sunrpc/rpc_main.c:342 | ||
1657 | -msgid "cannot find any C preprocessor (cpp)\n" | ||
1658 | -msgstr "Ne peut trouver un préprocesseur C (cpp)\n" | ||
1659 | - | ||
1660 | -#: sunrpc/rpc_main.c:411 | ||
1661 | +#: sunrpc/rpc_main.c:407 | ||
1662 | #, c-format | ||
1663 | msgid "%s: C preprocessor failed with signal %d\n" | ||
1664 | msgstr "%s : échec du préprocesseur C -- code de terminaison : %d\n" | ||
1665 | |||
1666 | -#: sunrpc/rpc_main.c:414 | ||
1667 | +#: sunrpc/rpc_main.c:410 | ||
1668 | #, c-format | ||
1669 | msgid "%s: C preprocessor failed with exit code %d\n" | ||
1670 | msgstr "%s : échec du préprocesseur C -- code de terminaison : %d\n" | ||
1671 | |||
1672 | -#: sunrpc/rpc_main.c:454 | ||
1673 | +#: sunrpc/rpc_main.c:450 | ||
1674 | #, c-format | ||
1675 | msgid "illegal nettype: `%s'\n" | ||
1676 | msgstr "« nettype » non permis :« %s »\n" | ||
1677 | |||
1678 | -#: sunrpc/rpc_main.c:1089 | ||
1679 | +#: sunrpc/rpc_main.c:1085 | ||
1680 | #, c-format | ||
1681 | msgid "rpcgen: too many defines\n" | ||
1682 | msgstr "rpcgen : trop de définitions\n" | ||
1683 | |||
1684 | -#: sunrpc/rpc_main.c:1101 | ||
1685 | +#: sunrpc/rpc_main.c:1097 | ||
1686 | #, c-format | ||
1687 | msgid "rpcgen: arglist coding error\n" | ||
1688 | msgstr "rpcgen : erreur dans la liste d'arguments de codage\n" | ||
1689 | |||
1690 | #. TRANS: the file will not be removed; this is an | ||
1691 | #. TRANS: informative message. | ||
1692 | -#: sunrpc/rpc_main.c:1134 | ||
1693 | +#: sunrpc/rpc_main.c:1130 | ||
1694 | #, c-format | ||
1695 | msgid "file `%s' already exists and may be overwritten\n" | ||
1696 | msgstr "Le fichier « %s » existe déjà et peut avoir été écrasé.\n" | ||
1697 | |||
1698 | -#: sunrpc/rpc_main.c:1179 | ||
1699 | +#: sunrpc/rpc_main.c:1175 | ||
1700 | #, c-format | ||
1701 | msgid "Cannot specify more than one input file!\n" | ||
1702 | msgstr "Ne peut spécifier plus d'un fichier d'entrée !\n" | ||
1703 | |||
1704 | -#: sunrpc/rpc_main.c:1349 | ||
1705 | +#: sunrpc/rpc_main.c:1345 | ||
1706 | #, c-format | ||
1707 | msgid "This implementation doesn't support newstyle or MT-safe code!\n" | ||
1708 | msgstr "Cette implantation ne supporte pas le nouveau style ou le code MT-safe !\n" | ||
1709 | |||
1710 | -#: sunrpc/rpc_main.c:1358 | ||
1711 | +#: sunrpc/rpc_main.c:1354 | ||
1712 | #, c-format | ||
1713 | msgid "Cannot use netid flag with inetd flag!\n" | ||
1714 | msgstr "Ne utiliser le sémaphore « netid » avec le sémaphore « inetd » !\n" | ||
1715 | |||
1716 | -#: sunrpc/rpc_main.c:1367 | ||
1717 | +#: sunrpc/rpc_main.c:1363 | ||
1718 | #, c-format | ||
1719 | msgid "Cannot use netid flag without TIRPC!\n" | ||
1720 | msgstr "Ne peut utiliser le sémaphore « netid » sans « TIRPC » !\n" | ||
1721 | |||
1722 | -#: sunrpc/rpc_main.c:1374 | ||
1723 | +#: sunrpc/rpc_main.c:1370 | ||
1724 | #, c-format | ||
1725 | msgid "Cannot use table flags with newstyle!\n" | ||
1726 | msgstr "Ne peut utiliser la table des sémaphores avec « newstyle » !\n" | ||
1727 | |||
1728 | -#: sunrpc/rpc_main.c:1393 | ||
1729 | +#: sunrpc/rpc_main.c:1389 | ||
1730 | #, c-format | ||
1731 | msgid "\"infile\" is required for template generation flags.\n" | ||
1732 | msgstr "« fichier-en-entrée » est requis pour la génération du gabarit des indicateurs.\n" | ||
1733 | |||
1734 | -#: sunrpc/rpc_main.c:1398 | ||
1735 | +#: sunrpc/rpc_main.c:1394 | ||
1736 | #, c-format | ||
1737 | msgid "Cannot have more than one file generation flag!\n" | ||
1738 | msgstr "Ne peut avoir plus d'un fichier de génération de sémaphores !\n" | ||
1739 | |||
1740 | -#: sunrpc/rpc_main.c:1407 | ||
1741 | +#: sunrpc/rpc_main.c:1403 | ||
1742 | #, c-format | ||
1743 | msgid "usage: %s infile\n" | ||
1744 | msgstr "usage : %s fichier-en-entrée\n" | ||
1745 | |||
1746 | -#: sunrpc/rpc_main.c:1408 | ||
1747 | +#: sunrpc/rpc_main.c:1404 | ||
1748 | #, c-format | ||
1749 | msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n" | ||
1750 | msgstr "\t%s [-abkCLNTM][-Dname[=valeur]] [-i taille] [-I [-K secondes]] [-Y chemin] fichier\n" | ||
1751 | |||
1752 | -#: sunrpc/rpc_main.c:1410 | ||
1753 | +#: sunrpc/rpc_main.c:1406 | ||
1754 | #, c-format | ||
1755 | msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n" | ||
1756 | msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o fichier_de_sortie] [fichier_d_entrée]\n" | ||
1757 | |||
1758 | -#: sunrpc/rpc_main.c:1412 | ||
1759 | +#: sunrpc/rpc_main.c:1408 | ||
1760 | #, c-format | ||
1761 | msgid "\t%s [-s nettype]* [-o outfile] [infile]\n" | ||
1762 | msgstr "\t%s [-s type_réseau]* [-o fichier_de_sortie] [fichier_d_entrée]\n" | ||
1763 | |||
1764 | -#: sunrpc/rpc_main.c:1413 | ||
1765 | +#: sunrpc/rpc_main.c:1409 | ||
1766 | #, c-format | ||
1767 | msgid "\t%s [-n netid]* [-o outfile] [infile]\n" | ||
1768 | msgstr "\t%s [-n id_réseau]* [-o fichier_de_sortie] [fichier_d_entrée]\n" | ||
1769 | |||
1770 | -#: sunrpc/rpc_main.c:1421 | ||
1771 | +#: sunrpc/rpc_main.c:1417 | ||
1772 | #, c-format | ||
1773 | msgid "options:\n" | ||
1774 | msgstr "options :\n" | ||
1775 | |||
1776 | -#: sunrpc/rpc_main.c:1422 | ||
1777 | +#: sunrpc/rpc_main.c:1418 | ||
1778 | #, c-format | ||
1779 | msgid "-a\t\tgenerate all files, including samples\n" | ||
1780 | msgstr "-a\t\tgénère tout fichiers, y compris exemples\n" | ||
1781 | |||
1782 | -#: sunrpc/rpc_main.c:1423 | ||
1783 | +#: sunrpc/rpc_main.c:1419 | ||
1784 | #, c-format | ||
1785 | msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n" | ||
1786 | msgstr "-b\t\tmode de compatibilité descendante (génère du code pour Sun0S 4.1)\n" | ||
1787 | |||
1788 | -#: sunrpc/rpc_main.c:1424 | ||
1789 | +#: sunrpc/rpc_main.c:1420 | ||
1790 | #, c-format | ||
1791 | msgid "-c\t\tgenerate XDR routines\n" | ||
1792 | msgstr "-c\t\tgénère des routines XDR\n" | ||
1793 | |||
1794 | -#: sunrpc/rpc_main.c:1425 | ||
1795 | +#: sunrpc/rpc_main.c:1421 | ||
1796 | #, c-format | ||
1797 | msgid "-C\t\tANSI C mode\n" | ||
1798 | msgstr "-C\t\tmode ANSI C\n" | ||
1799 | |||
1800 | -#: sunrpc/rpc_main.c:1426 | ||
1801 | +#: sunrpc/rpc_main.c:1422 | ||
1802 | #, c-format | ||
1803 | msgid "-Dname[=value]\tdefine a symbol (same as #define)\n" | ||
1804 | msgstr "-Dname[=valeur]\tdéfinit un symbole (pareil que #define)\n" | ||
1805 | |||
1806 | -#: sunrpc/rpc_main.c:1427 | ||
1807 | +#: sunrpc/rpc_main.c:1423 | ||
1808 | #, c-format | ||
1809 | msgid "-h\t\tgenerate header file\n" | ||
1810 | msgstr "-h\t\tgénère le fichier d'entête\n" | ||
1811 | |||
1812 | -#: sunrpc/rpc_main.c:1428 | ||
1813 | +#: sunrpc/rpc_main.c:1424 | ||
1814 | #, c-format | ||
1815 | msgid "-i size\t\tsize at which to start generating inline code\n" | ||
1816 | msgstr "-i size\t\ttaille à laquelle débute la génération du code en ligne\n" | ||
1817 | |||
1818 | -#: sunrpc/rpc_main.c:1429 | ||
1819 | +#: sunrpc/rpc_main.c:1425 | ||
1820 | #, c-format | ||
1821 | msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n" | ||
1822 | msgstr "-I\t\tgénère du code pour le support de inetd sur serveur (pour SunOS 4.1)\n" | ||
1823 | |||
1824 | -#: sunrpc/rpc_main.c:1430 | ||
1825 | +#: sunrpc/rpc_main.c:1426 | ||
1826 | #, c-format | ||
1827 | msgid "-K seconds\tserver exits after K seconds of inactivity\n" | ||
1828 | msgstr "-K secondes\tserveur quitte après K secondes d'inactivité\n" | ||
1829 | |||
1830 | -#: sunrpc/rpc_main.c:1431 | ||
1831 | +#: sunrpc/rpc_main.c:1427 | ||
1832 | #, c-format | ||
1833 | msgid "-l\t\tgenerate client side stubs\n" | ||
1834 | msgstr "-l\t\tgénère des squelettes de code du côté client\n" | ||
1835 | |||
1836 | -#: sunrpc/rpc_main.c:1432 | ||
1837 | +#: sunrpc/rpc_main.c:1428 | ||
1838 | #, c-format | ||
1839 | msgid "-L\t\tserver errors will be printed to syslog\n" | ||
1840 | msgstr "-L\t\tles erreurs du serveur seront dirigées vers syslog\n" | ||
1841 | |||
1842 | -#: sunrpc/rpc_main.c:1433 | ||
1843 | +#: sunrpc/rpc_main.c:1429 | ||
1844 | #, c-format | ||
1845 | msgid "-m\t\tgenerate server side stubs\n" | ||
1846 | msgstr "-m\t\tgénère des squelettes de code du côté serveur\n" | ||
1847 | |||
1848 | -#: sunrpc/rpc_main.c:1434 | ||
1849 | +#: sunrpc/rpc_main.c:1430 | ||
1850 | #, c-format | ||
1851 | msgid "-M\t\tgenerate MT-safe code\n" | ||
1852 | msgstr "-M\t\tgénère le code MT-safe\n" | ||
1853 | |||
1854 | -#: sunrpc/rpc_main.c:1435 | ||
1855 | +#: sunrpc/rpc_main.c:1431 | ||
1856 | #, c-format | ||
1857 | msgid "-n netid\tgenerate server code that supports named netid\n" | ||
1858 | msgstr "-n netid\tgénère le code serveur qui supporte netid nommé\n" | ||
1859 | |||
1860 | -#: sunrpc/rpc_main.c:1436 | ||
1861 | +#: sunrpc/rpc_main.c:1432 | ||
1862 | #, c-format | ||
1863 | msgid "-N\t\tsupports multiple arguments and call-by-value\n" | ||
1864 | msgstr "-N\t\tsupporte des arguments multiples et call-by-value\n" | ||
1865 | |||
1866 | -#: sunrpc/rpc_main.c:1437 | ||
1867 | +#: sunrpc/rpc_main.c:1433 | ||
1868 | #, c-format | ||
1869 | msgid "-o outfile\tname of the output file\n" | ||
1870 | msgstr "-o outfile\tnom du fichier de sortie\n" | ||
1871 | |||
1872 | -#: sunrpc/rpc_main.c:1438 | ||
1873 | +#: sunrpc/rpc_main.c:1434 | ||
1874 | #, c-format | ||
1875 | msgid "-s nettype\tgenerate server code that supports named nettype\n" | ||
1876 | msgstr "-s nettype\tgénère le code serveur qui supporte nettype nommé\n" | ||
1877 | |||
1878 | -#: sunrpc/rpc_main.c:1439 | ||
1879 | +#: sunrpc/rpc_main.c:1435 | ||
1880 | #, c-format | ||
1881 | msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n" | ||
1882 | msgstr "-Sc\t\tgénère du code échantillon client qui utilise des procédures éloignées\n" | ||
1883 | |||
1884 | -#: sunrpc/rpc_main.c:1440 | ||
1885 | +#: sunrpc/rpc_main.c:1436 | ||
1886 | #, c-format | ||
1887 | msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n" | ||
1888 | msgstr "-Ss\t\tgénère du code échantillon serveur qui définit des procédures éloignées\n" | ||
1889 | |||
1890 | -#: sunrpc/rpc_main.c:1441 | ||
1891 | +#: sunrpc/rpc_main.c:1437 | ||
1892 | #, c-format | ||
1893 | msgid "-Sm \t\tgenerate makefile template \n" | ||
1894 | msgstr "-Sm \t\tgénère un patron de makefile\n" | ||
1895 | |||
1896 | -#: sunrpc/rpc_main.c:1442 | ||
1897 | +#: sunrpc/rpc_main.c:1438 | ||
1898 | #, c-format | ||
1899 | msgid "-t\t\tgenerate RPC dispatch table\n" | ||
1900 | msgstr "-t\t\tgénère la table de distribution RPC\n" | ||
1901 | |||
1902 | -#: sunrpc/rpc_main.c:1443 | ||
1903 | +#: sunrpc/rpc_main.c:1439 | ||
1904 | #, c-format | ||
1905 | msgid "-T\t\tgenerate code to support RPC dispatch tables\n" | ||
1906 | msgstr "-T\t\tgénère le code qui supporte les tables de distribution RPC\n" | ||
1907 | |||
1908 | -#: sunrpc/rpc_main.c:1444 | ||
1909 | +#: sunrpc/rpc_main.c:1440 | ||
1910 | #, c-format | ||
1911 | msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n" | ||
1912 | msgstr "-Y path\t\tnom de répertoire pour trouver un préprocesseur C (cpp)\n" | ||
1913 | |||
1914 | +#: sunrpc/rpc_main.c:1442 | ||
1915 | +#, c-format | ||
1916 | +msgid "" | ||
1917 | +"\n" | ||
1918 | +"For bug reporting instructions, please see:\n" | ||
1919 | +"%s.\n" | ||
1920 | +msgstr "" | ||
1921 | +"\n" | ||
1922 | +"Pour les instructions de rapport de bug, SVP voyez là : \n" | ||
1923 | +"%s.\n" | ||
1924 | + | ||
1925 | #: sunrpc/rpc_scan.c:112 | ||
1926 | msgid "constant or identifier expected" | ||
1927 | msgstr "Constante ou identificateur attendu" | ||
1928 | @@ -5580,59 +5591,59 @@ | ||
1929 | msgid "never registered prog %d\n" | ||
1930 | msgstr "Le programme %d n'a jamais été enregistré.\n" | ||
1931 | |||
1932 | -#: sunrpc/svc_tcp.c:147 | ||
1933 | +#: sunrpc/svc_tcp.c:164 | ||
1934 | msgid "svc_tcp.c - tcp socket creation problem" | ||
1935 | msgstr "svc_tcp.c - problème de création d'un socket TCP" | ||
1936 | |||
1937 | -#: sunrpc/svc_tcp.c:162 | ||
1938 | +#: sunrpc/svc_tcp.c:179 | ||
1939 | msgid "svc_tcp.c - cannot getsockname or listen" | ||
1940 | msgstr "svc_tcp.c - ne peut repérer le nom du socket par getsockname() ou listen()" | ||
1941 | |||
1942 | -#: sunrpc/svc_udp.c:120 | ||
1943 | +#: sunrpc/svc_udp.c:137 | ||
1944 | msgid "svcudp_create: socket creation problem" | ||
1945 | msgstr "svcudp_create : problème de création du socket" | ||
1946 | |||
1947 | -#: sunrpc/svc_udp.c:134 | ||
1948 | +#: sunrpc/svc_udp.c:151 | ||
1949 | msgid "svcudp_create - cannot getsockname" | ||
1950 | msgstr "svcudp_create - ne peut repérer le nom du socket par getsockname()" | ||
1951 | |||
1952 | -#: sunrpc/svc_udp.c:166 | ||
1953 | +#: sunrpc/svc_udp.c:183 | ||
1954 | msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n" | ||
1955 | msgstr "svcudp_create : xp_pad est trop petit pour IP_PKTINFO\n" | ||
1956 | |||
1957 | -#: sunrpc/svc_udp.c:474 | ||
1958 | +#: sunrpc/svc_udp.c:495 | ||
1959 | msgid "enablecache: cache already enabled" | ||
1960 | msgstr "enablecache : cache déjà activée" | ||
1961 | |||
1962 | -#: sunrpc/svc_udp.c:480 | ||
1963 | +#: sunrpc/svc_udp.c:501 | ||
1964 | msgid "enablecache: could not allocate cache" | ||
1965 | msgstr "enablecache : ne peut allouer une cache" | ||
1966 | |||
1967 | -#: sunrpc/svc_udp.c:489 | ||
1968 | +#: sunrpc/svc_udp.c:510 | ||
1969 | msgid "enablecache: could not allocate cache data" | ||
1970 | msgstr "enablecache : ne peut allouer une cache de données" | ||
1971 | |||
1972 | -#: sunrpc/svc_udp.c:497 | ||
1973 | +#: sunrpc/svc_udp.c:518 | ||
1974 | msgid "enablecache: could not allocate cache fifo" | ||
1975 | msgstr "enablecache : ne peut allouer une cache de type fifo" | ||
1976 | |||
1977 | -#: sunrpc/svc_udp.c:533 | ||
1978 | +#: sunrpc/svc_udp.c:554 | ||
1979 | msgid "cache_set: victim not found" | ||
1980 | msgstr "cache_set : « victim » non repéré" | ||
1981 | |||
1982 | -#: sunrpc/svc_udp.c:544 | ||
1983 | +#: sunrpc/svc_udp.c:565 | ||
1984 | msgid "cache_set: victim alloc failed" | ||
1985 | msgstr "cache_set : échec d'allocation de « victim »" | ||
1986 | |||
1987 | -#: sunrpc/svc_udp.c:551 | ||
1988 | +#: sunrpc/svc_udp.c:572 | ||
1989 | msgid "cache_set: could not allocate new rpc_buffer" | ||
1990 | msgstr "cache_set : ne peut allouer une nouveau tampon rpc_buffer" | ||
1991 | |||
1992 | -#: sunrpc/svc_unix.c:145 | ||
1993 | +#: sunrpc/svc_unix.c:162 | ||
1994 | msgid "svc_unix.c - AF_UNIX socket creation problem" | ||
1995 | msgstr "svc_unix.c - problème de création d'un socket « AF_UNIX »" | ||
1996 | |||
1997 | -#: sunrpc/svc_unix.c:161 | ||
1998 | +#: sunrpc/svc_unix.c:178 | ||
1999 | msgid "svc_unix.c - cannot getsockname or listen" | ||
2000 | msgstr "svc_unix.c - ne peut repérer le nom du socket par getsockname() ou listen()" | ||
2001 | |||
2002 | @@ -5742,41 +5753,41 @@ | ||
2003 | msgstr "Expiration de la minuterie durant l'établissement du profile" | ||
2004 | |||
2005 | #: sysdeps/generic/siglist.h:53 | ||
2006 | -msgid "Window changed" | ||
2007 | -msgstr "La fenêtre a changée" | ||
2008 | - | ||
2009 | -#: sysdeps/generic/siglist.h:54 | ||
2010 | msgid "User defined signal 1" | ||
2011 | msgstr "Signal #1 défini par l'usager" | ||
2012 | |||
2013 | -#: sysdeps/generic/siglist.h:55 | ||
2014 | +#: sysdeps/generic/siglist.h:54 | ||
2015 | msgid "User defined signal 2" | ||
2016 | msgstr "Signal #2 défini par l'usager" | ||
2017 | |||
2018 | -#: sysdeps/generic/siglist.h:59 | ||
2019 | +#: sysdeps/generic/siglist.h:58 | ||
2020 | msgid "EMT trap" | ||
2021 | msgstr "Trappe EMT" | ||
2022 | |||
2023 | -#: sysdeps/generic/siglist.h:62 | ||
2024 | +#: sysdeps/generic/siglist.h:61 | ||
2025 | msgid "Bad system call" | ||
2026 | msgstr "Appel système erroné" | ||
2027 | |||
2028 | -#: sysdeps/generic/siglist.h:65 | ||
2029 | +#: sysdeps/generic/siglist.h:64 | ||
2030 | msgid "Stack fault" | ||
2031 | msgstr "Erreur sur la pile" | ||
2032 | |||
2033 | -#: sysdeps/generic/siglist.h:68 | ||
2034 | +#: sysdeps/generic/siglist.h:67 | ||
2035 | msgid "Information request" | ||
2036 | msgstr "Requête d'information" | ||
2037 | |||
2038 | -#: sysdeps/generic/siglist.h:70 | ||
2039 | +#: sysdeps/generic/siglist.h:69 | ||
2040 | msgid "Power failure" | ||
2041 | msgstr "Panne d'alimentation" | ||
2042 | |||
2043 | -#: sysdeps/generic/siglist.h:73 | ||
2044 | +#: sysdeps/generic/siglist.h:72 | ||
2045 | msgid "Resource lost" | ||
2046 | msgstr "Ressource perdue" | ||
2047 | |||
2048 | +#: sysdeps/generic/siglist.h:75 | ||
2049 | +msgid "Window changed" | ||
2050 | +msgstr "La fenêtre a changée" | ||
2051 | + | ||
2052 | #. TRANS Operation not permitted; only the owner of the file (or other resource) | ||
2053 | #. TRANS or processes with special privileges can perform the operation. | ||
2054 | #: sysdeps/gnu/errlist.c:25 | ||
2055 | @@ -6710,424 +6721,427 @@ | ||
2056 | msgid "cannot read header from `%s'" | ||
2057 | msgstr "Ne peut lire l'en-tête de « %s »" | ||
2058 | |||
2059 | -#: timezone/zdump.c:215 | ||
2060 | +#: timezone/zdump.c:246 | ||
2061 | msgid "lacks alphabetic at start" | ||
2062 | msgstr "Il manque un lettre de l'alphabet au début" | ||
2063 | |||
2064 | -#: timezone/zdump.c:217 | ||
2065 | +#: timezone/zdump.c:248 | ||
2066 | msgid "has fewer than 3 alphabetics" | ||
2067 | msgstr "a moins de 3 lettres alphabétiques" | ||
2068 | |||
2069 | -#: timezone/zdump.c:219 | ||
2070 | +#: timezone/zdump.c:250 | ||
2071 | msgid "has more than 6 alphabetics" | ||
2072 | msgstr "a plus de 6 lettres alphabétiques" | ||
2073 | |||
2074 | -#: timezone/zdump.c:227 | ||
2075 | +#: timezone/zdump.c:258 | ||
2076 | msgid "differs from POSIX standard" | ||
2077 | msgstr "diffère du standard POSIX" | ||
2078 | |||
2079 | -#: timezone/zdump.c:233 | ||
2080 | +#: timezone/zdump.c:264 | ||
2081 | #, c-format | ||
2082 | msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" | ||
2083 | msgstr "%s : attention : zone \"%s\" abréviation \"%s\" %s\n" | ||
2084 | |||
2085 | -#: timezone/zdump.c:244 | ||
2086 | +#: timezone/zdump.c:273 | ||
2087 | #, c-format | ||
2088 | msgid "" | ||
2089 | "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n" | ||
2090 | "\n" | ||
2091 | -"Report bugs to tz@elsie.nci.nih.gov.\n" | ||
2092 | +"Report bugs to %s.\n" | ||
2093 | msgstr "" | ||
2094 | "%s : usage est %s [ --version ] [ --help ] [ -v ] [ -c [AnnéeBasse,]AnnéeHaute ] nom_fuseau_horaire ...\n" | ||
2095 | "\n" | ||
2096 | -"Envoyer bugs à tz@elsie.nci.nih.gov.\n" | ||
2097 | +"Rapporter les bugs à %s.\n" | ||
2098 | |||
2099 | -#: timezone/zdump.c:313 | ||
2100 | +#: timezone/zdump.c:340 | ||
2101 | #, c-format | ||
2102 | msgid "%s: wild -c argument %s\n" | ||
2103 | msgstr "%s : argument -c intempestif %s\n" | ||
2104 | |||
2105 | -#: timezone/zdump.c:400 | ||
2106 | +#: timezone/zdump.c:426 | ||
2107 | msgid "Error writing to standard output" | ||
2108 | msgstr "Erreur d'écriture sur la sortie standard" | ||
2109 | |||
2110 | -#: timezone/zdump.c:423 | ||
2111 | +#: timezone/zdump.c:439 | ||
2112 | #, c-format | ||
2113 | msgid "%s: use of -v on system with floating time_t other than float or double\n" | ||
2114 | msgstr "%s : usage de -v sur un système avec time_t flottant autre que float ou double\n" | ||
2115 | |||
2116 | -#: timezone/zic.c:388 | ||
2117 | +#: timezone/zic.c:361 | ||
2118 | #, c-format | ||
2119 | msgid "%s: Memory exhausted: %s\n" | ||
2120 | msgstr "%s : mémoire épuisée : %s\n" | ||
2121 | |||
2122 | -#: timezone/zic.c:434 | ||
2123 | +#: timezone/zic.c:401 | ||
2124 | #, c-format | ||
2125 | msgid "\"%s\", line %d: %s" | ||
2126 | msgstr "« %s », ligne %d : %s" | ||
2127 | |||
2128 | -#: timezone/zic.c:437 | ||
2129 | +#: timezone/zic.c:404 | ||
2130 | #, c-format | ||
2131 | msgid " (rule from \"%s\", line %d)" | ||
2132 | msgstr " (règles de « %s », ligne %d)" | ||
2133 | |||
2134 | -#: timezone/zic.c:449 | ||
2135 | +#: timezone/zic.c:415 | ||
2136 | msgid "warning: " | ||
2137 | msgstr "AVERTISSEMENT : " | ||
2138 | |||
2139 | -#: timezone/zic.c:459 | ||
2140 | +#: timezone/zic.c:425 | ||
2141 | #, c-format | ||
2142 | msgid "" | ||
2143 | "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n" | ||
2144 | "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" | ||
2145 | "\n" | ||
2146 | -"Report bugs to tz@elsie.nci.nih.gov.\n" | ||
2147 | +"Report bugs to %s.\n" | ||
2148 | msgstr "" | ||
2149 | "%s : l'usage is %s [ --version ] [ --help ] [ -v ] [ -l temps_local ] [ -p règles_posix ] \\\n" | ||
2150 | "\t[ -d dossier ] [ -L secondes_écoulées ] [ -y type_année ] [ fichier ... ]\n" | ||
2151 | "\n" | ||
2152 | -"Envoyer bugs à tz@elsie.nci.nih.gov.\n" | ||
2153 | +"Rapporter les bugs à %s.\n" | ||
2154 | |||
2155 | -#: timezone/zic.c:496 | ||
2156 | +#: timezone/zic.c:460 | ||
2157 | msgid "wild compilation-time specification of zic_t" | ||
2158 | msgstr "spécification approximative de zic_t au moment de la compilation" | ||
2159 | |||
2160 | -#: timezone/zic.c:515 | ||
2161 | +#: timezone/zic.c:479 | ||
2162 | #, c-format | ||
2163 | msgid "%s: More than one -d option specified\n" | ||
2164 | msgstr "%s : option -d spécifiée plus d'une fois\n" | ||
2165 | |||
2166 | -#: timezone/zic.c:525 | ||
2167 | +#: timezone/zic.c:489 | ||
2168 | #, c-format | ||
2169 | msgid "%s: More than one -l option specified\n" | ||
2170 | msgstr "%s : option -l spécifiée plus d'une fois\n" | ||
2171 | |||
2172 | -#: timezone/zic.c:535 | ||
2173 | +#: timezone/zic.c:499 | ||
2174 | #, c-format | ||
2175 | msgid "%s: More than one -p option specified\n" | ||
2176 | msgstr "%s : option -p spécifiée plus d'une fois\n" | ||
2177 | |||
2178 | -#: timezone/zic.c:545 | ||
2179 | +#: timezone/zic.c:509 | ||
2180 | #, c-format | ||
2181 | msgid "%s: More than one -y option specified\n" | ||
2182 | msgstr "%s : option -y spécifiée plus d'une fois\n" | ||
2183 | |||
2184 | -#: timezone/zic.c:555 | ||
2185 | +#: timezone/zic.c:519 | ||
2186 | #, c-format | ||
2187 | msgid "%s: More than one -L option specified\n" | ||
2188 | msgstr "%s : option -L spécifiée plus d'une fois\n" | ||
2189 | |||
2190 | -#: timezone/zic.c:604 | ||
2191 | +#: timezone/zic.c:566 | ||
2192 | msgid "link to link" | ||
2193 | msgstr "lien à lien" | ||
2194 | |||
2195 | -#: timezone/zic.c:669 | ||
2196 | +#: timezone/zic.c:629 | ||
2197 | msgid "hard link failed, symbolic link used" | ||
2198 | msgstr "Échec de création du lien direct, création d'un lien symbolique" | ||
2199 | |||
2200 | -#: timezone/zic.c:677 | ||
2201 | +#: timezone/zic.c:637 | ||
2202 | #, c-format | ||
2203 | msgid "%s: Can't link from %s to %s: %s\n" | ||
2204 | msgstr "%s : ne peut établir un lien entre %s et %s : %s\n" | ||
2205 | |||
2206 | -#: timezone/zic.c:749 timezone/zic.c:751 | ||
2207 | +#: timezone/zic.c:697 timezone/zic.c:699 | ||
2208 | msgid "same rule name in multiple files" | ||
2209 | msgstr "Même nom de règle dans plusieurs fichiers" | ||
2210 | |||
2211 | -#: timezone/zic.c:792 | ||
2212 | +#: timezone/zic.c:740 | ||
2213 | msgid "unruly zone" | ||
2214 | msgstr "Zone sans règle" | ||
2215 | |||
2216 | -#: timezone/zic.c:799 | ||
2217 | +#: timezone/zic.c:747 | ||
2218 | #, c-format | ||
2219 | msgid "%s in ruleless zone" | ||
2220 | msgstr "%s est dans une zone sans règle" | ||
2221 | |||
2222 | -#: timezone/zic.c:820 | ||
2223 | +#: timezone/zic.c:767 | ||
2224 | msgid "standard input" | ||
2225 | msgstr "entrée standard" | ||
2226 | |||
2227 | -#: timezone/zic.c:825 | ||
2228 | +#: timezone/zic.c:772 | ||
2229 | #, c-format | ||
2230 | msgid "%s: Can't open %s: %s\n" | ||
2231 | msgstr "%s : ne peut ouvrir %s : %s\n" | ||
2232 | |||
2233 | -#: timezone/zic.c:836 | ||
2234 | +#: timezone/zic.c:783 | ||
2235 | msgid "line too long" | ||
2236 | msgstr "Ligne trop longue" | ||
2237 | |||
2238 | -#: timezone/zic.c:856 | ||
2239 | +#: timezone/zic.c:803 | ||
2240 | msgid "input line of unknown type" | ||
2241 | msgstr "Ligne d'entrée de type inconnu" | ||
2242 | |||
2243 | -#: timezone/zic.c:872 | ||
2244 | +#: timezone/zic.c:819 | ||
2245 | #, c-format | ||
2246 | msgid "%s: Leap line in non leap seconds file %s\n" | ||
2247 | msgstr "" | ||
2248 | "%s : ligne de type « Leap » dans un fichier qui n'a pas\n" | ||
2249 | "de délai en secondes %s\n" | ||
2250 | |||
2251 | -#: timezone/zic.c:879 timezone/zic.c:1316 timezone/zic.c:1338 | ||
2252 | +#: timezone/zic.c:826 timezone/zic.c:1243 timezone/zic.c:1265 | ||
2253 | #, c-format | ||
2254 | msgid "%s: panic: Invalid l_value %d\n" | ||
2255 | msgstr "%s : panique : valeur %d de type « l_value » invalide\n" | ||
2256 | |||
2257 | -#: timezone/zic.c:887 | ||
2258 | +#: timezone/zic.c:834 | ||
2259 | #, c-format | ||
2260 | msgid "%s: Error reading %s\n" | ||
2261 | msgstr "%s : erreur de lecture de %s\n" | ||
2262 | |||
2263 | -#: timezone/zic.c:894 | ||
2264 | +#: timezone/zic.c:841 | ||
2265 | #, c-format | ||
2266 | msgid "%s: Error closing %s: %s\n" | ||
2267 | msgstr "%s : erreur lors de la fermeture de %s : %s\n" | ||
2268 | |||
2269 | -#: timezone/zic.c:899 | ||
2270 | +#: timezone/zic.c:846 | ||
2271 | msgid "expected continuation line not found" | ||
2272 | msgstr "ligne de continuation attendue, non repérée" | ||
2273 | |||
2274 | -#: timezone/zic.c:943 timezone/zic.c:2541 timezone/zic.c:2560 | ||
2275 | +#: timezone/zic.c:887 timezone/zic.c:2411 timezone/zic.c:2425 | ||
2276 | msgid "time overflow" | ||
2277 | msgstr "Débordement du temps alloué" | ||
2278 | |||
2279 | -#: timezone/zic.c:947 | ||
2280 | +#: timezone/zic.c:891 | ||
2281 | msgid "24:00 not handled by pre-1998 versions of zic" | ||
2282 | msgstr "24 : 00 non pris en charge par les versions de zic antérieures à1998 " | ||
2283 | |||
2284 | -#: timezone/zic.c:950 | ||
2285 | +#: timezone/zic.c:894 | ||
2286 | msgid "values over 24 hours not handled by pre-2007 versions of zic" | ||
2287 | msgstr "valeurs au-delà de 24 heures non prises en charge par les versions de zic antérieures à 2007" | ||
2288 | |||
2289 | -#: timezone/zic.c:963 | ||
2290 | +#: timezone/zic.c:905 | ||
2291 | msgid "wrong number of fields on Rule line" | ||
2292 | msgstr "Mauvais nombre de champs sur la ligne de type « Rule »" | ||
2293 | |||
2294 | -#: timezone/zic.c:967 | ||
2295 | +#: timezone/zic.c:909 | ||
2296 | msgid "nameless rule" | ||
2297 | msgstr "Règle sans nom" | ||
2298 | |||
2299 | -#: timezone/zic.c:972 | ||
2300 | +#: timezone/zic.c:914 | ||
2301 | msgid "invalid saved time" | ||
2302 | msgstr "Temps sauvegardé invalide" | ||
2303 | |||
2304 | -#: timezone/zic.c:993 | ||
2305 | +#: timezone/zic.c:932 | ||
2306 | msgid "wrong number of fields on Zone line" | ||
2307 | msgstr "Mauvais nombre de champs sur la ligne de type « Zone »" | ||
2308 | |||
2309 | -#: timezone/zic.c:999 | ||
2310 | +#: timezone/zic.c:938 | ||
2311 | #, c-format | ||
2312 | msgid "\"Zone %s\" line and -l option are mutually exclusive" | ||
2313 | msgstr "La ligne \"Zone %s\" et l'option -l sont mutuellement exclusifs" | ||
2314 | |||
2315 | -#: timezone/zic.c:1007 | ||
2316 | +#: timezone/zic.c:946 | ||
2317 | #, c-format | ||
2318 | msgid "\"Zone %s\" line and -p option are mutually exclusive" | ||
2319 | msgstr "La ligne « Zone %s » et l'option -p sont mutuellement exclusifs" | ||
2320 | |||
2321 | -#: timezone/zic.c:1019 | ||
2322 | +#: timezone/zic.c:958 | ||
2323 | #, c-format | ||
2324 | msgid "duplicate zone name %s (file \"%s\", line %d)" | ||
2325 | msgstr "Double noms de zone %s (fichier « %s », ligne %d)" | ||
2326 | |||
2327 | -#: timezone/zic.c:1035 | ||
2328 | +#: timezone/zic.c:972 | ||
2329 | msgid "wrong number of fields on Zone continuation line" | ||
2330 | msgstr "Mauvais nombre de champs sur la ligne de type continuation de « Zone »" | ||
2331 | |||
2332 | -#: timezone/zic.c:1075 | ||
2333 | +#: timezone/zic.c:1009 | ||
2334 | msgid "invalid UTC offset" | ||
2335 | msgstr "Adressage relatif GMT invalide" | ||
2336 | |||
2337 | -#: timezone/zic.c:1078 | ||
2338 | +#: timezone/zic.c:1012 | ||
2339 | msgid "invalid abbreviation format" | ||
2340 | msgstr "Format d'abréviation invalide" | ||
2341 | |||
2342 | -#: timezone/zic.c:1107 | ||
2343 | +#: timezone/zic.c:1041 | ||
2344 | msgid "Zone continuation line end time is not after end time of previous line" | ||
2345 | msgstr "" | ||
2346 | "Temps final de la ligne de continuation du fuseau horaire est antérieur\n" | ||
2347 | "au temps final de la ligne précédente" | ||
2348 | |||
2349 | -#: timezone/zic.c:1135 | ||
2350 | +#: timezone/zic.c:1066 | ||
2351 | msgid "wrong number of fields on Leap line" | ||
2352 | msgstr "Mauvais nombre de champs sur la ligne de type « Leap »" | ||
2353 | |||
2354 | -#: timezone/zic.c:1144 | ||
2355 | +#: timezone/zic.c:1075 | ||
2356 | msgid "invalid leaping year" | ||
2357 | msgstr "Année bissextile invalide" | ||
2358 | |||
2359 | -#: timezone/zic.c:1164 timezone/zic.c:1270 | ||
2360 | +#: timezone/zic.c:1095 timezone/zic.c:1197 | ||
2361 | msgid "invalid month name" | ||
2362 | msgstr "Nom de mois invalide" | ||
2363 | |||
2364 | -#: timezone/zic.c:1177 timezone/zic.c:1383 timezone/zic.c:1397 | ||
2365 | +#: timezone/zic.c:1108 timezone/zic.c:1310 timezone/zic.c:1324 | ||
2366 | msgid "invalid day of month" | ||
2367 | msgstr "Jour du mois invalide" | ||
2368 | |||
2369 | # time/zic.c:1120A | ||
2370 | -#: timezone/zic.c:1182 | ||
2371 | +#: timezone/zic.c:1113 | ||
2372 | msgid "time before zero" | ||
2373 | msgstr "Temps défini avant le zéro" | ||
2374 | |||
2375 | -#: timezone/zic.c:1186 | ||
2376 | +#: timezone/zic.c:1117 | ||
2377 | msgid "time too small" | ||
2378 | msgstr "valeur de temps trop petite" | ||
2379 | |||
2380 | -#: timezone/zic.c:1190 | ||
2381 | +#: timezone/zic.c:1121 | ||
2382 | msgid "time too large" | ||
2383 | msgstr "valeur de temps trop grande" | ||
2384 | |||
2385 | -#: timezone/zic.c:1194 timezone/zic.c:1299 | ||
2386 | +#: timezone/zic.c:1125 timezone/zic.c:1226 | ||
2387 | msgid "invalid time of day" | ||
2388 | msgstr "Heure du jour invalide" | ||
2389 | |||
2390 | -#: timezone/zic.c:1213 | ||
2391 | +#: timezone/zic.c:1144 | ||
2392 | msgid "illegal CORRECTION field on Leap line" | ||
2393 | msgstr "champ CORRECTION non permis dans la ligne de type « Leap »" | ||
2394 | |||
2395 | -#: timezone/zic.c:1218 | ||
2396 | +#: timezone/zic.c:1149 | ||
2397 | msgid "illegal Rolling/Stationary field on Leap line" | ||
2398 | msgstr "Champ « Rolling/Stationary » non permis sur la ligne de type « Leap »" | ||
2399 | |||
2400 | -#: timezone/zic.c:1234 | ||
2401 | +#: timezone/zic.c:1163 | ||
2402 | msgid "wrong number of fields on Link line" | ||
2403 | msgstr "Mauvais nombre de champs sur la ligne de type « Link »" | ||
2404 | |||
2405 | -#: timezone/zic.c:1238 | ||
2406 | +#: timezone/zic.c:1167 | ||
2407 | msgid "blank FROM field on Link line" | ||
2408 | msgstr "Champ « FROM » vide dans la ligne de type « Link »" | ||
2409 | |||
2410 | -#: timezone/zic.c:1242 | ||
2411 | +#: timezone/zic.c:1171 | ||
2412 | msgid "blank TO field on Link line" | ||
2413 | msgstr "Champ « TO » vide dans la ligne de type « Link »" | ||
2414 | |||
2415 | -#: timezone/zic.c:1320 | ||
2416 | +#: timezone/zic.c:1247 | ||
2417 | msgid "invalid starting year" | ||
2418 | msgstr "Année initiale invalide" | ||
2419 | |||
2420 | -#: timezone/zic.c:1342 | ||
2421 | +#: timezone/zic.c:1269 | ||
2422 | msgid "invalid ending year" | ||
2423 | msgstr "Année finale invalide" | ||
2424 | |||
2425 | -#: timezone/zic.c:1346 | ||
2426 | +#: timezone/zic.c:1273 | ||
2427 | msgid "starting year greater than ending year" | ||
2428 | msgstr "année initiale plus grande que l'année finale" | ||
2429 | |||
2430 | -#: timezone/zic.c:1353 | ||
2431 | +#: timezone/zic.c:1280 | ||
2432 | msgid "typed single year" | ||
2433 | msgstr "une seule année fournie" | ||
2434 | |||
2435 | -#: timezone/zic.c:1388 | ||
2436 | +#: timezone/zic.c:1315 | ||
2437 | msgid "invalid weekday name" | ||
2438 | msgstr "Nom du jour de semaine invalide" | ||
2439 | |||
2440 | -#: timezone/zic.c:1566 | ||
2441 | +#: timezone/zic.c:1481 | ||
2442 | #, c-format | ||
2443 | msgid "%s: Can't remove %s: %s\n" | ||
2444 | msgstr "%s : ne peut enlever %s : %s\n" | ||
2445 | |||
2446 | -#: timezone/zic.c:1576 | ||
2447 | +#: timezone/zic.c:1491 | ||
2448 | #, c-format | ||
2449 | msgid "%s: Can't create %s: %s\n" | ||
2450 | msgstr "%s : ne peut créer %s : %s\n" | ||
2451 | |||
2452 | -#: timezone/zic.c:1773 | ||
2453 | +#: timezone/zic.c:1683 | ||
2454 | #, c-format | ||
2455 | msgid "%s: Error writing %s\n" | ||
2456 | msgstr "%s : erreur d'écriture de %s\n" | ||
2457 | |||
2458 | -#: timezone/zic.c:2070 | ||
2459 | +#: timezone/zic.c:1964 | ||
2460 | msgid "no POSIX environment variable for zone" | ||
2461 | msgstr "pas de variable d'environnement POSIX pour zone" | ||
2462 | |||
2463 | -#: timezone/zic.c:2237 | ||
2464 | +#: timezone/zic.c:2131 | ||
2465 | msgid "can't determine time zone abbreviation to use just after until time" | ||
2466 | msgstr "" | ||
2467 | "Ne peut déterminer l'abréviation du fuseau horaire à utiliser\n" | ||
2468 | "juste après telle date" | ||
2469 | |||
2470 | -#: timezone/zic.c:2283 | ||
2471 | +#: timezone/zic.c:2175 | ||
2472 | msgid "too many transitions?!" | ||
2473 | msgstr "trop de transitions définies ? !" | ||
2474 | |||
2475 | -#: timezone/zic.c:2302 | ||
2476 | +#: timezone/zic.c:2190 | ||
2477 | msgid "internal error - addtype called with bad isdst" | ||
2478 | msgstr "Erreur interne - addtype() appellé avec un mauvais bloc de type « isdst »" | ||
2479 | |||
2480 | -#: timezone/zic.c:2306 | ||
2481 | +#: timezone/zic.c:2194 | ||
2482 | msgid "internal error - addtype called with bad ttisstd" | ||
2483 | msgstr "Erreur interne - addtype() appellé avec un mauvais bloc de type « ttisstd »" | ||
2484 | |||
2485 | -#: timezone/zic.c:2310 | ||
2486 | +#: timezone/zic.c:2198 | ||
2487 | msgid "internal error - addtype called with bad ttisgmt" | ||
2488 | msgstr "Erreur interne - addtype() appellé avec un mauvais bloc de type « ttisgmt »" | ||
2489 | |||
2490 | -#: timezone/zic.c:2329 | ||
2491 | +#: timezone/zic.c:2217 | ||
2492 | msgid "too many local time types" | ||
2493 | msgstr "trop de types localisés pour la représentation du temps" | ||
2494 | |||
2495 | -#: timezone/zic.c:2333 | ||
2496 | +#: timezone/zic.c:2221 | ||
2497 | msgid "UTC offset out of range" | ||
2498 | msgstr "UTC décalage en dehors de la plage" | ||
2499 | |||
2500 | -#: timezone/zic.c:2361 | ||
2501 | +#: timezone/zic.c:2245 | ||
2502 | msgid "too many leap seconds" | ||
2503 | msgstr "trop de délai en secondes" | ||
2504 | |||
2505 | -#: timezone/zic.c:2367 | ||
2506 | +#: timezone/zic.c:2251 | ||
2507 | msgid "repeated leap second moment" | ||
2508 | msgstr "Répétition du délai une seconde fois" | ||
2509 | |||
2510 | -#: timezone/zic.c:2419 | ||
2511 | +#: timezone/zic.c:2301 | ||
2512 | msgid "Wild result from command execution" | ||
2513 | msgstr "Résultat anarchique résultant de l'exécution de la commande" | ||
2514 | |||
2515 | -#: timezone/zic.c:2420 | ||
2516 | +#: timezone/zic.c:2302 | ||
2517 | #, c-format | ||
2518 | msgid "%s: command was '%s', result was %d\n" | ||
2519 | msgstr "%s : la commande était « %s », le résultat était %d\n" | ||
2520 | |||
2521 | -#: timezone/zic.c:2518 | ||
2522 | +#: timezone/zic.c:2393 | ||
2523 | msgid "Odd number of quotation marks" | ||
2524 | msgstr "Nombre impair de caractères apostrophe" | ||
2525 | |||
2526 | -#: timezone/zic.c:2607 | ||
2527 | +#: timezone/zic.c:2470 | ||
2528 | msgid "use of 2/29 in non leap-year" | ||
2529 | msgstr "Utiliser 2/29 pour les années non-bissextiles" | ||
2530 | |||
2531 | -#: timezone/zic.c:2642 | ||
2532 | +#: timezone/zic.c:2505 | ||
2533 | msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic" | ||
2534 | msgstr "la règle en dehors de début/fin du mois--ne fonctionnera pas avec les versions de zic antérieures à 2004" | ||
2535 | |||
2536 | -#: timezone/zic.c:2674 | ||
2537 | +#: timezone/zic.c:2536 | ||
2538 | msgid "time zone abbreviation lacks alphabetic at start" | ||
2539 | msgstr "l'abréviation du nom de fuseau horaire n'a pas de caractère alphabétique au début" | ||
2540 | |||
2541 | -#: timezone/zic.c:2676 | ||
2542 | -msgid "time zone abbreviation has more than 3 alphabetics" | ||
2543 | -msgstr "l'abréviation du nom de fuseau horaire a plus de 3 caractères alphabétiques" | ||
2544 | +#: timezone/zic.c:2538 | ||
2545 | +msgid "time zone abbreviation has fewer than 3 alphabetics" | ||
2546 | +msgstr "l'abréviation du nom de fuseau horaire a moins de 3 caractères alphabétiques" | ||
2547 | |||
2548 | -#: timezone/zic.c:2678 | ||
2549 | +#: timezone/zic.c:2540 | ||
2550 | msgid "time zone abbreviation has too many alphabetics" | ||
2551 | msgstr "l'abréviation du nom de fuseau horaire a trop de caractères alphabétiques" | ||
2552 | |||
2553 | -#: timezone/zic.c:2688 | ||
2554 | +#: timezone/zic.c:2550 | ||
2555 | msgid "time zone abbreviation differs from POSIX standard" | ||
2556 | msgstr "l'abréviation du nom de fuseau horaire diffère du standard POSIX" | ||
2557 | |||
2558 | -#: timezone/zic.c:2700 | ||
2559 | +#: timezone/zic.c:2562 | ||
2560 | msgid "too many, or too long, time zone abbreviations" | ||
2561 | msgstr "trop ou de trop longues abréviations de fuseaux horaires" | ||
2562 | |||
2563 | -#: timezone/zic.c:2741 | ||
2564 | +#: timezone/zic.c:2602 | ||
2565 | #, c-format | ||
2566 | msgid "%s: Can't create directory %s: %s\n" | ||
2567 | msgstr "%s : ne peut créer le dossier %s : %s\n" | ||
2568 | |||
2569 | -#: timezone/zic.c:2763 | ||
2570 | +#: timezone/zic.c:2623 | ||
2571 | #, c-format | ||
2572 | msgid "%s: %d did not sign extend correctly\n" | ||
2573 | msgstr "%s : %d n'a pas fait correctement l'expansion de la valeur signée\n" | ||
2574 | |||
2575 | +#~ msgid "cannot find any C preprocessor (cpp)\n" | ||
2576 | +#~ msgstr "Ne peut trouver un préprocesseur C (cpp)\n" | ||
2577 | + | ||
2578 | #~ msgid "Try \\`%s --help' or `%s --usage' for more information.\\n" | ||
2579 | #~ msgstr "Pour en savoir davantage, faites : «%s --help » ou «%s --usage».\\n" | ||
2580 | |||
2581 | Index: libc/po/ca.po | ||
2582 | =================================================================== | ||
2583 | --- libc/po/ca.po (revision 22177) | ||
2584 | +++ libc/po/ca.po (revision 22178) | ||
2585 | @@ -1,7 +1,7 @@ | ||
2586 | # Catalan messages for GNU libc. | ||
2587 | -# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011 Free Software Foundation, Inc. | ||
2588 | +# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013 Free Software Foundation, Inc. | ||
2589 | # This file is distributed under the same license as the glibc package. | ||
2590 | -# Ivan Vilata i Balaguer <ivan@selidor.net>, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011. | ||
2591 | +# Ivan Vilata i Balaguer <ivan@selidor.net>, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009, 2011, 2012, 2013. | ||
2592 | # | ||
2593 | # Sóc Ivan, aquestes són les convencions que adopte per a la 2.4: | ||
2594 | # | ||
2595 | @@ -47,9 +47,9 @@ | ||
2596 | # bonic, excepte quan quede realment horrend o porte a confusió). | ||
2597 | msgid "" | ||
2598 | msgstr "" | ||
2599 | -"Project-Id-Version: libc 2.14\n" | ||
2600 | -"POT-Creation-Date: 2011-05-31 00:06-0400\n" | ||
2601 | -"PO-Revision-Date: 2011-09-30 12:49+0200\n" | ||
2602 | +"Project-Id-Version: libc 2.17-pre1\n" | ||
2603 | +"POT-Creation-Date: 2012-12-07 15:10-0500\n" | ||
2604 | +"PO-Revision-Date: 2013-01-01 14:00+0100\n" | ||
2605 | "Last-Translator: Ivan Vilata i Balaguer <ivan@selidor.net>\n" | ||
2606 | "Language-Team: Catalan <ca@dodds.net>\n" | ||
2607 | "Language: ca\n" | ||
2608 | @@ -57,89 +57,89 @@ | ||
2609 | "Content-Type: text/plain; charset=UTF-8\n" | ||
2610 | "Content-Transfer-Encoding: 8bit\n" | ||
2611 | |||
2612 | -#: argp/argp-help.c:228 | ||
2613 | +#: argp/argp-help.c:227 | ||
2614 | #, c-format | ||
2615 | msgid "%.*s: ARGP_HELP_FMT parameter requires a value" | ||
2616 | msgstr "%.*s: el paràmetre ARGP_HELP_FMT necessita un valor" | ||
2617 | |||
2618 | -#: argp/argp-help.c:238 | ||
2619 | +#: argp/argp-help.c:237 | ||
2620 | #, c-format | ||
2621 | msgid "%.*s: Unknown ARGP_HELP_FMT parameter" | ||
2622 | msgstr "%.*s: el paràmetre d’ARGP_HELP_FMT no és conegut" | ||
2623 | |||
2624 | -#: argp/argp-help.c:251 | ||
2625 | +#: argp/argp-help.c:250 | ||
2626 | #, c-format | ||
2627 | msgid "Garbage in ARGP_HELP_FMT: %s" | ||
2628 | msgstr "brossa a ARGP_HELP_FMT: %s" | ||
2629 | |||
2630 | -#: argp/argp-help.c:1215 | ||
2631 | +#: argp/argp-help.c:1214 | ||
2632 | msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." | ||
2633 | msgstr "Els arguments obligatoris o opcionals per a les opcions llargues també ho són per a les opcions curtes corresponents." | ||
2634 | |||
2635 | -#: argp/argp-help.c:1601 | ||
2636 | +#: argp/argp-help.c:1600 | ||
2637 | msgid "Usage:" | ||
2638 | msgstr "Forma d’ús:" | ||
2639 | |||
2640 | -#: argp/argp-help.c:1605 | ||
2641 | +#: argp/argp-help.c:1604 | ||
2642 | msgid " or: " | ||
2643 | msgstr " o bé: " | ||
2644 | |||
2645 | -#: argp/argp-help.c:1617 | ||
2646 | +#: argp/argp-help.c:1616 | ||
2647 | msgid " [OPTION...]" | ||
2648 | msgstr " [OPCIÓ…]" | ||
2649 | |||
2650 | -#: argp/argp-help.c:1644 | ||
2651 | +#: argp/argp-help.c:1643 | ||
2652 | #, c-format | ||
2653 | msgid "Try `%s --help' or `%s --usage' for more information.\n" | ||
2654 | msgstr "Proveu «%s --help» o «%s --usage» per a obtenir més informació.\n" | ||
2655 | |||
2656 | -#: argp/argp-help.c:1672 | ||
2657 | +#: argp/argp-help.c:1671 | ||
2658 | #, c-format | ||
2659 | msgid "Report bugs to %s.\n" | ||
2660 | msgstr "Informeu dels errors a %s.\n" | ||
2661 | |||
2662 | # Més ajudes. ivb | ||
2663 | -#: argp/argp-parse.c:102 | ||
2664 | +#: argp/argp-parse.c:101 | ||
2665 | msgid "Give this help list" | ||
2666 | msgstr "Mostra aquest llistat d’ajuda." | ||
2667 | |||
2668 | -#: argp/argp-parse.c:103 | ||
2669 | +#: argp/argp-parse.c:102 | ||
2670 | msgid "Give a short usage message" | ||
2671 | msgstr "Mostra un missatge breu amb la forma d’ús." | ||
2672 | |||
2673 | -#: argp/argp-parse.c:104 | ||
2674 | +#: argp/argp-parse.c:103 | ||
2675 | msgid "Set the program name" | ||
2676 | msgstr "Estableix el nom del programa." | ||
2677 | |||
2678 | # ivb (2002/10/21) | ||
2679 | # ivb La cadena «SECS» no està traduïda en l'estructura d'opcions. | ||
2680 | -#: argp/argp-parse.c:106 | ||
2681 | +#: argp/argp-parse.c:105 | ||
2682 | msgid "Hang for SECS seconds (default 3600)" | ||
2683 | msgstr "Espera durant un nombre de segons (3600 per defecte)." | ||
2684 | |||
2685 | -#: argp/argp-parse.c:167 | ||
2686 | +#: argp/argp-parse.c:166 | ||
2687 | msgid "Print program version" | ||
2688 | msgstr "Mostra la versió del programa." | ||
2689 | |||
2690 | -#: argp/argp-parse.c:183 | ||
2691 | +#: argp/argp-parse.c:182 | ||
2692 | msgid "(PROGRAM ERROR) No version known!?" | ||
2693 | msgstr "(ERROR DEL PROGRAMA) No es coneix cap versió!?" | ||
2694 | |||
2695 | -#: argp/argp-parse.c:623 | ||
2696 | +#: argp/argp-parse.c:622 | ||
2697 | #, c-format | ||
2698 | msgid "%s: Too many arguments\n" | ||
2699 | msgstr "%s: Sobren arguments\n" | ||
2700 | |||
2701 | -#: argp/argp-parse.c:766 | ||
2702 | +#: argp/argp-parse.c:765 | ||
2703 | msgid "(PROGRAM ERROR) Option should have been recognized!?" | ||
2704 | msgstr "(ERROR DEL PROGRAMA) L’opció hauria d’haver estat reconeguda!?" | ||
2705 | |||
2706 | -#: assert/assert-perr.c:37 | ||
2707 | +#: assert/assert-perr.c:36 | ||
2708 | #, c-format | ||
2709 | msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" | ||
2710 | msgstr "%s%s%s:%u: %s%sError inesperat: %s.\n" | ||
2711 | |||
2712 | -#: assert/assert.c:105 | ||
2713 | +#: assert/assert.c:101 | ||
2714 | #, c-format | ||
2715 | msgid "" | ||
2716 | "%s%s%s:%u: %s%sAssertion `%s' failed.\n" | ||
2717 | @@ -148,25 +148,25 @@ | ||
2718 | "%s%s%s:%u: %s%sL’asserció «%s» ha fallat.\n" | ||
2719 | "%n" | ||
2720 | |||
2721 | -#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:100 nss/makedb.c:61 | ||
2722 | +#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:115 nss/makedb.c:119 | ||
2723 | msgid "NAME" | ||
2724 | msgstr "NOM" | ||
2725 | |||
2726 | # Més ajudes. ivb | ||
2727 | -#: catgets/gencat.c:111 | ||
2728 | +#: catgets/gencat.c:110 | ||
2729 | msgid "Create C header file NAME containing symbol definitions" | ||
2730 | msgstr "Crea el fitxer capçalera C NOM que contindrà les definicions de símbols." | ||
2731 | |||
2732 | -#: catgets/gencat.c:113 | ||
2733 | +#: catgets/gencat.c:112 | ||
2734 | msgid "Do not use existing catalog, force new output file" | ||
2735 | msgstr "No empra el catàleg existent, i crea un nou fitxer d’eixida." | ||
2736 | |||
2737 | -#: catgets/gencat.c:114 nss/makedb.c:61 | ||
2738 | +#: catgets/gencat.c:113 nss/makedb.c:119 | ||
2739 | msgid "Write output to file NAME" | ||
2740 | msgstr "Escriu l’eixida al fitxer NOM." | ||
2741 | |||
2742 | # FIXME: Don't use \v. | ||
2743 | -#: catgets/gencat.c:119 | ||
2744 | +#: catgets/gencat.c:118 | ||
2745 | msgid "" | ||
2746 | "Generate message catalog.\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" | ||
2747 | "is -, output is written to standard output.\n" | ||
2748 | @@ -176,7 +176,7 @@ | ||
2749 | "Si FITXER_ENTRADA és «-», l’entrada es llegirà de l’entrada estàndard.\n" | ||
2750 | "Si FITXER_EIXIDA és «-», l’eixida s’escriurà a l’eixida estàndard.\n" | ||
2751 | |||
2752 | -#: catgets/gencat.c:124 | ||
2753 | +#: catgets/gencat.c:123 | ||
2754 | msgid "" | ||
2755 | "-o OUTPUT-FILE [INPUT-FILE]...\n" | ||
2756 | "[OUTPUT-FILE [INPUT-FILE]...]" | ||
2757 | @@ -184,28 +184,29 @@ | ||
2758 | "-o FITXER_EIXIDA [FITXER_ENTRADA]…\n" | ||
2759 | "[FITXER_EIXIDA [FITXER_ENTRADA]…]" | ||
2760 | |||
2761 | -#: catgets/gencat.c:232 debug/pcprofiledump.c:208 debug/xtrace.sh:58 | ||
2762 | -#: elf/ldconfig.c:302 elf/ldd.bash.in:56 elf/sln.c:86 elf/sotruss.ksh:49 | ||
2763 | -#: elf/sprof.c:371 iconv/iconv_prog.c:408 iconv/iconvconfig.c:380 | ||
2764 | -#: locale/programs/locale.c:278 locale/programs/localedef.c:371 | ||
2765 | -#: login/programs/pt_chown.c:92 malloc/memusage.sh:65 | ||
2766 | -#: malloc/memusagestat.c:539 nscd/nscd.c:415 nss/getent.c:918 nss/makedb.c:231 | ||
2767 | -#: posix/getconf.c:1122 sunrpc/rpc_main.c:1492 sunrpc/rpcinfo.c:691 | ||
2768 | -#: sysdeps/unix/sysv/linux/lddlibc4.c:62 | ||
2769 | +# L’adreça es veu millor així. ivb | ||
2770 | +#: catgets/gencat.c:235 debug/pcprofiledump.c:208 elf/ldconfig.c:302 | ||
2771 | +#: elf/pldd.c:222 elf/sln.c:85 elf/sprof.c:371 iconv/iconv_prog.c:408 | ||
2772 | +#: iconv/iconvconfig.c:383 locale/programs/locale.c:279 | ||
2773 | +#: locale/programs/localedef.c:363 login/programs/pt_chown.c:88 | ||
2774 | +#: malloc/memusagestat.c:536 nscd/nscd.c:459 nss/getent.c:965 nss/makedb.c:371 | ||
2775 | +#: posix/getconf.c:1121 sunrpc/rpcinfo.c:691 | ||
2776 | +#: sysdeps/unix/sysv/linux/lddlibc4.c:61 | ||
2777 | +#, c-format | ||
2778 | msgid "" | ||
2779 | "For bug reporting instructions, please see:\n" | ||
2780 | -"<http://www.gnu.org/software/libc/bugs.html>.\n" | ||
2781 | +"%s.\n" | ||
2782 | msgstr "" | ||
2783 | "Per a obtenir instruccions sobre com informar d’un error, vegeu\n" | ||
2784 | -"<http://www.gnu.org/software/libc/bugs.html>.\n" | ||
2785 | +"<%s>.\n" | ||
2786 | |||
2787 | -#: catgets/gencat.c:246 debug/pcprofiledump.c:222 debug/xtrace.sh:66 | ||
2788 | -#: elf/ldconfig.c:316 elf/ldd.bash.in:39 elf/sotruss.ksh:76 elf/sprof.c:386 | ||
2789 | -#: iconv/iconv_prog.c:423 iconv/iconvconfig.c:395 locale/programs/locale.c:293 | ||
2790 | -#: locale/programs/localedef.c:387 login/programs/pt_chown.c:63 | ||
2791 | -#: malloc/memusage.sh:73 malloc/memusagestat.c:557 nscd/nscd.c:429 | ||
2792 | -#: nss/getent.c:87 nss/makedb.c:245 posix/getconf.c:1104 | ||
2793 | -#: sysdeps/unix/sysv/linux/lddlibc4.c:69 | ||
2794 | +#: catgets/gencat.c:251 debug/pcprofiledump.c:224 debug/xtrace.sh:64 | ||
2795 | +#: elf/ldconfig.c:318 elf/ldd.bash.in:38 elf/pldd.c:238 elf/sotruss.ksh:75 | ||
2796 | +#: elf/sprof.c:388 iconv/iconv_prog.c:425 iconv/iconvconfig.c:400 | ||
2797 | +#: locale/programs/locale.c:296 locale/programs/localedef.c:389 | ||
2798 | +#: login/programs/pt_chown.c:62 malloc/memusage.sh:71 | ||
2799 | +#: malloc/memusagestat.c:552 nscd/nscd.c:475 nss/getent.c:86 nss/makedb.c:387 | ||
2800 | +#: posix/getconf.c:1103 sysdeps/unix/sysv/linux/lddlibc4.c:68 | ||
2801 | #, c-format | ||
2802 | msgid "" | ||
2803 | "Copyright (C) %s Free Software Foundation, Inc.\n" | ||
2804 | @@ -217,35 +218,35 @@ | ||
2805 | "de còpia. No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o\n" | ||
2806 | "ADEQUACIÓ PER A UN PROPÒSIT PARTICULAR.\n" | ||
2807 | |||
2808 | -#: catgets/gencat.c:251 debug/pcprofiledump.c:227 debug/xtrace.sh:70 | ||
2809 | -#: elf/ldconfig.c:321 elf/sprof.c:392 iconv/iconv_prog.c:428 | ||
2810 | -#: iconv/iconvconfig.c:400 locale/programs/locale.c:298 | ||
2811 | -#: locale/programs/localedef.c:392 malloc/memusage.sh:77 | ||
2812 | -#: malloc/memusagestat.c:562 nscd/nscd.c:434 nss/getent.c:92 nss/makedb.c:250 | ||
2813 | -#: posix/getconf.c:1109 | ||
2814 | +#: catgets/gencat.c:256 debug/pcprofiledump.c:229 debug/xtrace.sh:68 | ||
2815 | +#: elf/ldconfig.c:323 elf/pldd.c:243 elf/sprof.c:394 iconv/iconv_prog.c:430 | ||
2816 | +#: iconv/iconvconfig.c:405 locale/programs/locale.c:301 | ||
2817 | +#: locale/programs/localedef.c:394 malloc/memusage.sh:75 | ||
2818 | +#: malloc/memusagestat.c:557 nscd/nscd.c:480 nss/getent.c:91 nss/makedb.c:392 | ||
2819 | +#: posix/getconf.c:1108 | ||
2820 | #, c-format | ||
2821 | msgid "Written by %s.\n" | ||
2822 | msgstr "Escrit per %s.\n" | ||
2823 | |||
2824 | -#: catgets/gencat.c:282 | ||
2825 | +#: catgets/gencat.c:287 | ||
2826 | msgid "*standard input*" | ||
2827 | msgstr "*entrada estàndard*" | ||
2828 | |||
2829 | -#: catgets/gencat.c:288 iconv/iconv_charmap.c:170 iconv/iconv_prog.c:294 | ||
2830 | -#: nss/makedb.c:170 | ||
2831 | +#: catgets/gencat.c:293 iconv/iconv_charmap.c:169 iconv/iconv_prog.c:293 | ||
2832 | +#: nss/makedb.c:248 | ||
2833 | #, c-format | ||
2834 | msgid "cannot open input file `%s'" | ||
2835 | msgstr "no s’ha pogut obrir el fitxer d’entrada «%s»" | ||
2836 | |||
2837 | -#: catgets/gencat.c:417 catgets/gencat.c:494 | ||
2838 | +#: catgets/gencat.c:422 catgets/gencat.c:497 | ||
2839 | msgid "illegal set number" | ||
2840 | msgstr "el número de joc de missatges no és vàlid" | ||
2841 | |||
2842 | -#: catgets/gencat.c:444 | ||
2843 | +#: catgets/gencat.c:449 | ||
2844 | msgid "duplicate set definition" | ||
2845 | msgstr "la definició del joc de missatges és duplicada" | ||
2846 | |||
2847 | -#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677 | ||
2848 | +#: catgets/gencat.c:451 catgets/gencat.c:623 catgets/gencat.c:675 | ||
2849 | msgid "this is the first definition" | ||
2850 | msgstr "aquesta és la primera definició" | ||
2851 | |||
2852 | @@ -267,52 +268,52 @@ | ||
2853 | msgid "duplicated message number" | ||
2854 | msgstr "el número de missatge és duplicat" | ||
2855 | |||
2856 | -#: catgets/gencat.c:674 | ||
2857 | +#: catgets/gencat.c:672 | ||
2858 | msgid "duplicated message identifier" | ||
2859 | msgstr "l’identificador de missatge és duplicat" | ||
2860 | |||
2861 | -#: catgets/gencat.c:731 | ||
2862 | +#: catgets/gencat.c:729 | ||
2863 | msgid "invalid character: message ignored" | ||
2864 | msgstr "el caràcter no és vàlid: es descarta el missatge" | ||
2865 | |||
2866 | -#: catgets/gencat.c:774 | ||
2867 | +#: catgets/gencat.c:772 | ||
2868 | msgid "invalid line" | ||
2869 | msgstr "la línia no és vàlida" | ||
2870 | |||
2871 | -#: catgets/gencat.c:828 | ||
2872 | +#: catgets/gencat.c:826 | ||
2873 | msgid "malformed line ignored" | ||
2874 | msgstr "es descarta la línia en mal estat" | ||
2875 | |||
2876 | -#: catgets/gencat.c:992 catgets/gencat.c:1033 nss/makedb.c:183 | ||
2877 | +#: catgets/gencat.c:990 catgets/gencat.c:1031 | ||
2878 | #, c-format | ||
2879 | msgid "cannot open output file `%s'" | ||
2880 | msgstr "no s’ha pogut obrir el fitxer d’eixida «%s»" | ||
2881 | |||
2882 | -#: catgets/gencat.c:1195 locale/programs/linereader.c:560 | ||
2883 | +#: catgets/gencat.c:1193 locale/programs/linereader.c:559 | ||
2884 | msgid "invalid escape sequence" | ||
2885 | msgstr "la seqüència d’escapada no és vàlida" | ||
2886 | |||
2887 | -#: catgets/gencat.c:1217 | ||
2888 | +#: catgets/gencat.c:1215 | ||
2889 | msgid "unterminated message" | ||
2890 | msgstr "el missatge no està acabat" | ||
2891 | |||
2892 | -#: catgets/gencat.c:1241 | ||
2893 | +#: catgets/gencat.c:1239 | ||
2894 | #, c-format | ||
2895 | msgid "while opening old catalog file" | ||
2896 | msgstr "en obrir el fitxer antic de catàleg" | ||
2897 | |||
2898 | -#: catgets/gencat.c:1332 | ||
2899 | +#: catgets/gencat.c:1330 | ||
2900 | #, c-format | ||
2901 | msgid "conversion modules not available" | ||
2902 | msgstr "els mòduls de conversió no es troben disponibles" | ||
2903 | |||
2904 | -#: catgets/gencat.c:1358 | ||
2905 | +#: catgets/gencat.c:1356 | ||
2906 | #, c-format | ||
2907 | msgid "cannot determine escape character" | ||
2908 | msgstr "no s’ha pogut determinar el caràcter d’escapada" | ||
2909 | |||
2910 | # Més ajudes. ivb | ||
2911 | -#: debug/pcprofiledump.c:53 | ||
2912 | +#: debug/pcprofiledump.c:52 | ||
2913 | msgid "Don't buffer output" | ||
2914 | msgstr "No empra memòria intermèdia per a l’eixida." | ||
2915 | |||
2916 | @@ -324,42 +325,43 @@ | ||
2917 | # ivb tot i que el codi del programa cada volta que fa referència a «pc» | ||
2918 | # ivb o «PC» parla del «lowpc» i del «highpc», sempre en referència al | ||
2919 | # ivb segment de text (codi) del programa. | ||
2920 | -#: debug/pcprofiledump.c:58 | ||
2921 | +#: debug/pcprofiledump.c:57 | ||
2922 | msgid "Dump information generated by PC profiling." | ||
2923 | msgstr "Bolca la informació generada en perfilar el comptador de programa." | ||
2924 | |||
2925 | -#: debug/pcprofiledump.c:61 | ||
2926 | +#: debug/pcprofiledump.c:60 | ||
2927 | msgid "[FILE]" | ||
2928 | msgstr "[FITXER]" | ||
2929 | |||
2930 | -#: debug/pcprofiledump.c:108 | ||
2931 | +#: debug/pcprofiledump.c:107 | ||
2932 | #, c-format | ||
2933 | msgid "cannot open input file" | ||
2934 | msgstr "no s’ha pogut obrir el fitxer d’entrada" | ||
2935 | |||
2936 | -#: debug/pcprofiledump.c:115 | ||
2937 | +#: debug/pcprofiledump.c:114 | ||
2938 | #, c-format | ||
2939 | msgid "cannot read header" | ||
2940 | msgstr "no s’ha pogut llegir la capçalera" | ||
2941 | |||
2942 | -#: debug/pcprofiledump.c:179 | ||
2943 | +#: debug/pcprofiledump.c:178 | ||
2944 | #, c-format | ||
2945 | msgid "invalid pointer size" | ||
2946 | msgstr "la mida del punter no és vàlida" | ||
2947 | |||
2948 | -#: debug/xtrace.sh:27 debug/xtrace.sh:45 | ||
2949 | +#: debug/xtrace.sh:26 debug/xtrace.sh:44 | ||
2950 | msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" | ||
2951 | msgstr "Forma d’ús: xtrace [OPCIÓ]… PROGRAMA [OPCIÓ_DE_PROGRAMA]…\\n" | ||
2952 | |||
2953 | -#: debug/xtrace.sh:33 malloc/memusage.sh:27 | ||
2954 | -msgid "Try \\`%s --help' or `%s --usage' for more information.\\n" | ||
2955 | +#: debug/xtrace.sh:32 elf/sotruss.ksh:56 elf/sotruss.ksh:67 | ||
2956 | +#: elf/sotruss.ksh:135 malloc/memusage.sh:26 | ||
2957 | +msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n" | ||
2958 | msgstr "Proveu «%s --help» o «%s --usage» per a obtenir més informació.\\n" | ||
2959 | |||
2960 | -#: debug/xtrace.sh:39 | ||
2961 | +#: debug/xtrace.sh:38 | ||
2962 | msgid "%s: option '%s' requires an argument.\\n" | ||
2963 | msgstr "%s: l’opció «%s» necessita un argument\\n" | ||
2964 | |||
2965 | -#: debug/xtrace.sh:46 | ||
2966 | +#: debug/xtrace.sh:45 | ||
2967 | msgid "" | ||
2968 | "Trace execution of program by printing currently executed function.\n" | ||
2969 | "\n" | ||
2970 | @@ -387,163 +389,173 @@ | ||
2971 | "opcions curtes corresponents.\n" | ||
2972 | "\n" | ||
2973 | |||
2974 | -#: debug/xtrace.sh:127 | ||
2975 | +# L’adreça es veu millor així. ivb | ||
2976 | +#: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.ksh:49 | ||
2977 | +#: malloc/memusage.sh:64 | ||
2978 | +msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n" | ||
2979 | +msgstr "Per a obtenir instruccions sobre com informar d’un error, vegeu\\\\n<%s>.\\\\n" | ||
2980 | + | ||
2981 | +#: debug/xtrace.sh:125 | ||
2982 | msgid "xtrace: unrecognized option \\`$1'\\n" | ||
2983 | msgstr "xtrace: l’opció «$1» no és reconeguda\\n" | ||
2984 | |||
2985 | -#: debug/xtrace.sh:140 | ||
2986 | +#: debug/xtrace.sh:138 | ||
2987 | msgid "No program name given\\n" | ||
2988 | msgstr "no s’ha indicat un nom de programa\\n" | ||
2989 | |||
2990 | -#: debug/xtrace.sh:148 | ||
2991 | +#: debug/xtrace.sh:146 | ||
2992 | #, sh-format | ||
2993 | msgid "executable \\`$program' not found\\n" | ||
2994 | msgstr "no s’ha trobat l’executable «$program»\\n" | ||
2995 | |||
2996 | -#: debug/xtrace.sh:152 | ||
2997 | +#: debug/xtrace.sh:150 | ||
2998 | #, sh-format | ||
2999 | msgid "\\`$program' is no executable\\n" | ||
3000 | msgstr "«$program» no és executable\\n" | ||
3001 | |||
3002 | -#: dlfcn/dlinfo.c:64 | ||
3003 | +#: dlfcn/dlinfo.c:63 | ||
3004 | msgid "RTLD_SELF used in code not dynamically loaded" | ||
3005 | msgstr "S’ha emprat RTLD_SELF en un codi no carregat dinàmicament" | ||
3006 | |||
3007 | -#: dlfcn/dlinfo.c:73 | ||
3008 | +#: dlfcn/dlinfo.c:72 | ||
3009 | msgid "unsupported dlinfo request" | ||
3010 | msgstr "dlinfo() no permet l’ús d’aquesta petició" | ||
3011 | |||
3012 | -#: dlfcn/dlmopen.c:64 | ||
3013 | +#: dlfcn/dlmopen.c:63 | ||
3014 | msgid "invalid namespace" | ||
3015 | msgstr "l’espai de noms no és vàlid" | ||
3016 | |||
3017 | -#: dlfcn/dlmopen.c:69 | ||
3018 | +#: dlfcn/dlmopen.c:68 | ||
3019 | msgid "invalid mode" | ||
3020 | msgstr "el mode no és vàlid" | ||
3021 | |||
3022 | -#: dlfcn/dlopen.c:65 | ||
3023 | +#: dlfcn/dlopen.c:64 | ||
3024 | msgid "invalid mode parameter" | ||
3025 | msgstr "el paràmetre de mode no és vàlid" | ||
3026 | |||
3027 | # ivb (2001/11/01) | ||
3028 | # ivb Es refereix al tipus de la biblioteca (libc{4,5,6}) -> masculí. | ||
3029 | -#: elf/cache.c:69 | ||
3030 | +#: elf/cache.c:68 | ||
3031 | msgid "unknown" | ||
3032 | msgstr "desconegut" | ||
3033 | |||
3034 | # ivb (2001/11/06) | ||
3035 | # ivb Cal mantenir-ho curt... | ||
3036 | -#: elf/cache.c:112 | ||
3037 | +#: elf/cache.c:121 | ||
3038 | msgid "Unknown OS" | ||
3039 | msgstr "SO desconegut" | ||
3040 | |||
3041 | # ivb (2001/11/06) | ||
3042 | # ivb Cal mantenir-ho curt... | ||
3043 | -#: elf/cache.c:117 | ||
3044 | +#: elf/cache.c:126 | ||
3045 | #, c-format | ||
3046 | msgid ", OS ABI: %s %d.%d.%d" | ||
3047 | msgstr ", ABI del SO: %s %d.%d.%d" | ||
3048 | |||
3049 | -#: elf/cache.c:134 elf/ldconfig.c:1305 | ||
3050 | +#: elf/cache.c:143 elf/ldconfig.c:1309 | ||
3051 | #, c-format | ||
3052 | msgid "Can't open cache file %s\n" | ||
3053 | msgstr "no s’ha pogut obrir el fitxer «%s» de memòria cau\n" | ||
3054 | |||
3055 | -#: elf/cache.c:148 | ||
3056 | +#: elf/cache.c:157 | ||
3057 | #, c-format | ||
3058 | msgid "mmap of cache file failed.\n" | ||
3059 | msgstr "ha fallat mmap() sobre el fitxer de memòria cau\n" | ||
3060 | |||
3061 | -#: elf/cache.c:152 elf/cache.c:166 | ||
3062 | +#: elf/cache.c:161 elf/cache.c:175 | ||
3063 | #, c-format | ||
3064 | msgid "File is not a cache file.\n" | ||
3065 | msgstr "el fitxer no és un fitxer de memòria cau\n" | ||
3066 | |||
3067 | # No és un error. ivb | ||
3068 | -#: elf/cache.c:199 elf/cache.c:209 | ||
3069 | +#: elf/cache.c:208 elf/cache.c:218 | ||
3070 | #, c-format | ||
3071 | msgid "%d libs found in cache `%s'\n" | ||
3072 | msgstr "S’han trobat %d biblioteques a la memòria cau «%s».\n" | ||
3073 | |||
3074 | -#: elf/cache.c:403 | ||
3075 | +#: elf/cache.c:412 | ||
3076 | #, c-format | ||
3077 | msgid "Can't create temporary cache file %s" | ||
3078 | msgstr "no s’ha pogut crear el fitxer temporal de memòria cau «%s»" | ||
3079 | |||
3080 | -#: elf/cache.c:411 elf/cache.c:421 elf/cache.c:425 elf/cache.c:430 | ||
3081 | +#: elf/cache.c:420 elf/cache.c:430 elf/cache.c:434 elf/cache.c:439 | ||
3082 | #, c-format | ||
3083 | msgid "Writing of cache data failed" | ||
3084 | msgstr "no s’han pogut escriure les dades de la memòria cau" | ||
3085 | |||
3086 | -#: elf/cache.c:435 | ||
3087 | +#: elf/cache.c:444 | ||
3088 | #, c-format | ||
3089 | msgid "Changing access rights of %s to %#o failed" | ||
3090 | msgstr "no s’ha pogut canviar els drets d’accés de «%s» a %#o" | ||
3091 | |||
3092 | -#: elf/cache.c:440 | ||
3093 | +#: elf/cache.c:449 | ||
3094 | #, c-format | ||
3095 | msgid "Renaming of %s to %s failed" | ||
3096 | msgstr "no s’ha pogut reanomenar «%s» a «%s»" | ||
3097 | |||
3098 | -#: elf/dl-close.c:387 elf/dl-open.c:397 | ||
3099 | +#: elf/dl-close.c:378 elf/dl-open.c:474 | ||
3100 | msgid "cannot create scope list" | ||
3101 | msgstr "no s’ha pogut crear la llista d’àmbits" | ||
3102 | |||
3103 | -#: elf/dl-close.c:767 | ||
3104 | +#: elf/dl-close.c:771 | ||
3105 | msgid "shared object not open" | ||
3106 | msgstr "l’objecte compartit no és obert" | ||
3107 | |||
3108 | # ivb (2001/11/05) | ||
3109 | # ivb DST = Dynamic String Token (component cadena dinàmica) | ||
3110 | -#: elf/dl-deps.c:114 | ||
3111 | +#: elf/dl-deps.c:112 | ||
3112 | msgid "DST not allowed in SUID/SGID programs" | ||
3113 | msgstr "no es permeten components cadena dinàmica (DST) en programes SUID/SGID" | ||
3114 | |||
3115 | -#: elf/dl-deps.c:127 | ||
3116 | +#: elf/dl-deps.c:125 | ||
3117 | msgid "empty dynamic string token substitution" | ||
3118 | msgstr "la substitució del component cadena dinàmica és buida" | ||
3119 | |||
3120 | # ivb (2002/10/21) | ||
3121 | # ivb Es refereix a _objectes_ auxiliars, segons el codi. | ||
3122 | -#: elf/dl-deps.c:133 | ||
3123 | +#: elf/dl-deps.c:131 | ||
3124 | #, c-format | ||
3125 | msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n" | ||
3126 | msgstr "no s’ha pogut carregar l’objecte auxiliar «%s» perquè la substitució del component cadena dinàmica és buida\n" | ||
3127 | |||
3128 | -#: elf/dl-deps.c:474 | ||
3129 | +#: elf/dl-deps.c:483 | ||
3130 | msgid "cannot allocate dependency list" | ||
3131 | msgstr "no s’ha pogut reservar la llista de dependències" | ||
3132 | |||
3133 | -#: elf/dl-deps.c:514 elf/dl-deps.c:574 | ||
3134 | +#: elf/dl-deps.c:520 elf/dl-deps.c:580 | ||
3135 | msgid "cannot allocate symbol search list" | ||
3136 | msgstr "no s’ha pogut reservar la llista de cerca de símbols" | ||
3137 | |||
3138 | # ivb (2002/10/21) | ||
3139 | # ivb LD_TRACE_PRELINKING és una variable d'entorn, no és part del filtre. | ||
3140 | -#: elf/dl-deps.c:554 | ||
3141 | +#: elf/dl-deps.c:560 | ||
3142 | msgid "Filters not supported with LD_TRACE_PRELINKING" | ||
3143 | msgstr "LD_TRACE_PRELINKING no permet l’ús de filtres" | ||
3144 | |||
3145 | -#: elf/dl-error.c:77 | ||
3146 | +#: elf/dl-error.c:76 | ||
3147 | msgid "DYNAMIC LINKER BUG!!!" | ||
3148 | msgstr "ERROR A L’ENLLAÇADOR DINÀMIC!!!" | ||
3149 | |||
3150 | -#: elf/dl-error.c:124 | ||
3151 | +#: elf/dl-error.c:123 | ||
3152 | msgid "error while loading shared libraries" | ||
3153 | msgstr "error en carregar les biblioteques dinàmiques" | ||
3154 | |||
3155 | -#: elf/dl-fptr.c:88 | ||
3156 | +#: elf/dl-fptr.c:87 ports/sysdeps/hppa/dl-fptr.c:93 | ||
3157 | msgid "cannot map pages for fdesc table" | ||
3158 | msgstr "no s’han pogut mapar pàgines per a la taula «fdesc»" | ||
3159 | |||
3160 | -#: elf/dl-fptr.c:192 | ||
3161 | +#: elf/dl-fptr.c:191 ports/sysdeps/hppa/dl-fptr.c:206 | ||
3162 | msgid "cannot map pages for fptr table" | ||
3163 | msgstr "no s’han pogut mapar pàgines per a la taula «fptr»" | ||
3164 | |||
3165 | -#: elf/dl-fptr.c:221 | ||
3166 | +#: elf/dl-fptr.c:220 ports/sysdeps/hppa/dl-fptr.c:235 | ||
3167 | msgid "internal error: symidx out of range of fptr table" | ||
3168 | msgstr "error intern: «symidx» és fora de rang respecte la taula «fptr»" | ||
3169 | |||
3170 | +#: elf/dl-hwcaps.c:173 elf/dl-hwcaps.c:185 | ||
3171 | +msgid "cannot create capability list" | ||
3172 | +msgstr "no s’ha pogut crear la llista de capacitats" | ||
3173 | + | ||
3174 | #: elf/dl-load.c:471 | ||
3175 | msgid "cannot allocate name record" | ||
3176 | msgstr "no s’ha pogut reservar el registre de nom" | ||
3177 | @@ -560,181 +572,181 @@ | ||
3178 | msgid "cannot create search path array" | ||
3179 | msgstr "no s’ha pogut crear el vector de camins de cerca" | ||
3180 | |||
3181 | -#: elf/dl-load.c:931 | ||
3182 | +#: elf/dl-load.c:934 | ||
3183 | msgid "cannot stat shared object" | ||
3184 | msgstr "ha fallat stat() sobre l’objecte compartit" | ||
3185 | |||
3186 | # ivb (2001/10/28) | ||
3187 | # ivb Es refereix a /dev/zero . | ||
3188 | -#: elf/dl-load.c:1009 | ||
3189 | +#: elf/dl-load.c:1012 | ||
3190 | msgid "cannot open zero fill device" | ||
3191 | msgstr "no s’ha pogut obrir el dispositiu de zeros" | ||
3192 | |||
3193 | -#: elf/dl-load.c:1055 elf/dl-load.c:2313 | ||
3194 | +#: elf/dl-load.c:1059 elf/dl-load.c:2339 | ||
3195 | msgid "cannot create shared object descriptor" | ||
3196 | msgstr "no s’ha pogut crear el descriptor d’objecte compartit" | ||
3197 | |||
3198 | -#: elf/dl-load.c:1074 elf/dl-load.c:1730 elf/dl-load.c:1833 | ||
3199 | +#: elf/dl-load.c:1078 elf/dl-load.c:1751 elf/dl-load.c:1854 | ||
3200 | msgid "cannot read file data" | ||
3201 | msgstr "no s’han pogut llegir les dades del fitxer" | ||
3202 | |||
3203 | -#: elf/dl-load.c:1120 | ||
3204 | +#: elf/dl-load.c:1124 | ||
3205 | msgid "ELF load command alignment not page-aligned" | ||
3206 | msgstr "l’alineament de l’ordre ELF de càrrega no està alineada amb la pàgina" | ||
3207 | |||
3208 | -#: elf/dl-load.c:1127 | ||
3209 | +#: elf/dl-load.c:1131 | ||
3210 | msgid "ELF load command address/offset not properly aligned" | ||
3211 | msgstr "l’adreça o desplaçament de l’ordre ELF de càrrega no està correctament alineada" | ||
3212 | |||
3213 | -#: elf/dl-load.c:1210 | ||
3214 | +#: elf/dl-load.c:1216 | ||
3215 | msgid "cannot allocate TLS data structures for initial thread" | ||
3216 | msgstr "no s’han pogut reservar les estructures de dades TLS per al fil inicial" | ||
3217 | |||
3218 | -#: elf/dl-load.c:1233 | ||
3219 | +#: elf/dl-load.c:1239 | ||
3220 | msgid "cannot handle TLS data" | ||
3221 | msgstr "no es pot tractar amb dades TLS" | ||
3222 | |||
3223 | -#: elf/dl-load.c:1252 | ||
3224 | +#: elf/dl-load.c:1258 | ||
3225 | msgid "object file has no loadable segments" | ||
3226 | msgstr "el fitxer objecte no té segments carregables" | ||
3227 | |||
3228 | -#: elf/dl-load.c:1288 | ||
3229 | +#: elf/dl-load.c:1294 | ||
3230 | msgid "failed to map segment from shared object" | ||
3231 | msgstr "no s’ha pogut mapar un segment de l’objecte compartit" | ||
3232 | |||
3233 | -#: elf/dl-load.c:1314 | ||
3234 | +#: elf/dl-load.c:1320 | ||
3235 | msgid "cannot dynamically load executable" | ||
3236 | msgstr "no s’ha pogut carregar dinàmicament l’executable" | ||
3237 | |||
3238 | -#: elf/dl-load.c:1376 | ||
3239 | +#: elf/dl-load.c:1383 | ||
3240 | msgid "cannot change memory protections" | ||
3241 | msgstr "no s’han pogut canviar les proteccions de memòria" | ||
3242 | |||
3243 | -#: elf/dl-load.c:1395 | ||
3244 | +#: elf/dl-load.c:1402 | ||
3245 | msgid "cannot map zero-fill pages" | ||
3246 | msgstr "no s’han pogut mapar les pàgines plenes de zeros" | ||
3247 | |||
3248 | -#: elf/dl-load.c:1409 | ||
3249 | +#: elf/dl-load.c:1416 | ||
3250 | msgid "object file has no dynamic section" | ||
3251 | msgstr "el fitxer objecte no té secció dinàmica" | ||
3252 | |||
3253 | -#: elf/dl-load.c:1432 | ||
3254 | +#: elf/dl-load.c:1439 | ||
3255 | msgid "shared object cannot be dlopen()ed" | ||
3256 | msgstr "ha fallat dlopen() sobre l’objecte compartit" | ||
3257 | |||
3258 | -#: elf/dl-load.c:1445 | ||
3259 | +#: elf/dl-load.c:1452 | ||
3260 | msgid "cannot allocate memory for program header" | ||
3261 | msgstr "no s’ha pogut reservar memòria per a la capçalera del programa" | ||
3262 | |||
3263 | -#: elf/dl-load.c:1462 elf/dl-open.c:180 | ||
3264 | +#: elf/dl-load.c:1469 elf/dl-open.c:180 | ||
3265 | msgid "invalid caller" | ||
3266 | msgstr "la biblioteca que ha fet la crida no és vàlida" | ||
3267 | |||
3268 | -#: elf/dl-load.c:1501 | ||
3269 | +#: elf/dl-load.c:1508 | ||
3270 | msgid "cannot enable executable stack as shared object requires" | ||
3271 | msgstr "no s’ha pogut habilitar la pila executable a requeriment de l’objecte compartit" | ||
3272 | |||
3273 | -#: elf/dl-load.c:1514 | ||
3274 | +#: elf/dl-load.c:1521 | ||
3275 | msgid "cannot close file descriptor" | ||
3276 | msgstr "no s’ha pogut tancar un descriptor de fitxer" | ||
3277 | |||
3278 | -#: elf/dl-load.c:1730 | ||
3279 | +#: elf/dl-load.c:1751 | ||
3280 | msgid "file too short" | ||
3281 | msgstr "el fitxer és massa curt" | ||
3282 | |||
3283 | -#: elf/dl-load.c:1766 | ||
3284 | +#: elf/dl-load.c:1787 | ||
3285 | msgid "invalid ELF header" | ||
3286 | msgstr "la capçalera ELF no és vàlida" | ||
3287 | |||
3288 | -#: elf/dl-load.c:1778 | ||
3289 | +#: elf/dl-load.c:1799 | ||
3290 | msgid "ELF file data encoding not big-endian" | ||
3291 | msgstr "la codificació de les dades del fitxer ELF no és big‐endian" | ||
3292 | |||
3293 | -#: elf/dl-load.c:1780 | ||
3294 | +#: elf/dl-load.c:1801 | ||
3295 | msgid "ELF file data encoding not little-endian" | ||
3296 | msgstr "la codificació de les dades del fitxer ELF no és little‐endian" | ||
3297 | |||
3298 | -#: elf/dl-load.c:1784 | ||
3299 | +#: elf/dl-load.c:1805 | ||
3300 | msgid "ELF file version ident does not match current one" | ||
3301 | msgstr "la identificació de la versió del fitxer ELF no concorda amb l’actual" | ||
3302 | |||
3303 | # ivb (2001/11(06) | ||
3304 | # ivb ABI = Application Binary Interface (interfície binària d'aplicació) | ||
3305 | -#: elf/dl-load.c:1788 | ||
3306 | +#: elf/dl-load.c:1809 | ||
3307 | msgid "ELF file OS ABI invalid" | ||
3308 | msgstr "l’ABI de sistema operatiu del fitxer ELF no és vàlida" | ||
3309 | |||
3310 | -#: elf/dl-load.c:1791 | ||
3311 | +#: elf/dl-load.c:1812 | ||
3312 | msgid "ELF file ABI version invalid" | ||
3313 | msgstr "la versió de l’ABI del fitxer ELF no és vàlida" | ||
3314 | |||
3315 | -#: elf/dl-load.c:1794 | ||
3316 | +#: elf/dl-load.c:1815 | ||
3317 | msgid "nonzero padding in e_ident" | ||
3318 | msgstr "el replè d’«e_ident» no conté només zeros" | ||
3319 | |||
3320 | -#: elf/dl-load.c:1797 | ||
3321 | +#: elf/dl-load.c:1818 | ||
3322 | msgid "internal error" | ||
3323 | msgstr "error intern" | ||
3324 | |||
3325 | -#: elf/dl-load.c:1804 | ||
3326 | +#: elf/dl-load.c:1825 | ||
3327 | msgid "ELF file version does not match current one" | ||
3328 | msgstr "la versió del fitxer ELF no concorda amb l’actual" | ||
3329 | |||
3330 | -#: elf/dl-load.c:1812 | ||
3331 | +#: elf/dl-load.c:1833 | ||
3332 | msgid "only ET_DYN and ET_EXEC can be loaded" | ||
3333 | msgstr "només es poden carregar els tipus ET_DYN i ET_EXEC" | ||
3334 | |||
3335 | # ivb (2001/11/01) | ||
3336 | # ivb La traducció completa de «phentsize» vindria a ser: mida d'entrada | ||
3337 | # ivb de taula de la capçalera de programa. | ||
3338 | -#: elf/dl-load.c:1818 | ||
3339 | +#: elf/dl-load.c:1839 | ||
3340 | msgid "ELF file's phentsize not the expected size" | ||
3341 | msgstr "el valor de «phentsize» del fitxer ELF no és l’esperat" | ||
3342 | |||
3343 | -#: elf/dl-load.c:2332 | ||
3344 | +#: elf/dl-load.c:2358 | ||
3345 | msgid "wrong ELF class: ELFCLASS64" | ||
3346 | msgstr "la classe ELF no és vàlida: ELFCLASS64" | ||
3347 | |||
3348 | -#: elf/dl-load.c:2333 | ||
3349 | +#: elf/dl-load.c:2359 | ||
3350 | msgid "wrong ELF class: ELFCLASS32" | ||
3351 | msgstr "la classe ELF no és vàlida: ELFCLASS32" | ||
3352 | |||
3353 | -#: elf/dl-load.c:2336 | ||
3354 | +#: elf/dl-load.c:2362 | ||
3355 | msgid "cannot open shared object file" | ||
3356 | msgstr "no s’ha pogut obrir el fitxer objecte compartit" | ||
3357 | |||
3358 | -#: elf/dl-lookup.c:757 | ||
3359 | +#: elf/dl-lookup.c:757 ports/sysdeps/mips/dl-lookup.c:774 | ||
3360 | msgid "relocation error" | ||
3361 | msgstr "error de reubicació" | ||
3362 | |||
3363 | -#: elf/dl-lookup.c:785 | ||
3364 | +#: elf/dl-lookup.c:786 ports/sysdeps/mips/dl-lookup.c:803 | ||
3365 | msgid "symbol lookup error" | ||
3366 | msgstr "error en cercar el símbol" | ||
3367 | |||
3368 | -#: elf/dl-open.c:115 | ||
3369 | +#: elf/dl-open.c:110 | ||
3370 | msgid "cannot extend global scope" | ||
3371 | msgstr "no s’ha pogut estendre l’àmbit global" | ||
3372 | |||
3373 | # ivb (2002/10/29) | ||
3374 | # ivb TLS = Thread Local Storage | ||
3375 | -#: elf/dl-open.c:440 | ||
3376 | +#: elf/dl-open.c:524 | ||
3377 | msgid "TLS generation counter wrapped! Please report this." | ||
3378 | msgstr "El comptador de generació de TLS s’ha esgotat! Per favor, informeu d’açò." | ||
3379 | |||
3380 | # Cas general. ivb | ||
3381 | -#: elf/dl-open.c:462 | ||
3382 | +#: elf/dl-open.c:546 | ||
3383 | msgid "cannot load any more object with static TLS" | ||
3384 | msgstr "no es poden carregar més objectes amb el TLS estàtic" | ||
3385 | |||
3386 | -#: elf/dl-open.c:511 | ||
3387 | +#: elf/dl-open.c:599 | ||
3388 | msgid "invalid mode for dlopen()" | ||
3389 | msgstr "el mode de dlopen() no és vàlid" | ||
3390 | |||
3391 | -#: elf/dl-open.c:528 | ||
3392 | +#: elf/dl-open.c:616 | ||
3393 | msgid "no more namespaces available for dlmopen()" | ||
3394 | msgstr "no resten espais de noms disponibles per a dlmopen()" | ||
3395 | |||
3396 | -#: elf/dl-open.c:547 | ||
3397 | +#: elf/dl-open.c:634 | ||
3398 | msgid "invalid target namespace in dlmopen()" | ||
3399 | msgstr "l’espai de noms destí de dlmopen() no és vàlid" | ||
3400 | |||
3401 | @@ -742,280 +754,276 @@ | ||
3402 | msgid "cannot allocate memory in static TLS block" | ||
3403 | msgstr "no s’ha pogut reservar memòria al bloc TLS estàtic" | ||
3404 | |||
3405 | -#: elf/dl-reloc.c:212 | ||
3406 | +#: elf/dl-reloc.c:213 | ||
3407 | msgid "cannot make segment writable for relocation" | ||
3408 | msgstr "no s’ha pogut fer escrivible el segment per a reubicar‐lo" | ||
3409 | |||
3410 | # ivb (2002/10/21) | ||
3411 | # ivb PLT = Procedure Linkage Table, Taula d'Enllaçat de Procediments | ||
3412 | # ivb PLTREL = tipus de reubicació usada per la PLT | ||
3413 | -#: elf/dl-reloc.c:275 | ||
3414 | +#: elf/dl-reloc.c:276 | ||
3415 | #, c-format | ||
3416 | msgid "%s: no PLTREL found in object %s\n" | ||
3417 | msgstr "%s: no s’ha trobat el PLTREL de l’objecte «%s»\n" | ||
3418 | |||
3419 | -#: elf/dl-reloc.c:286 | ||
3420 | +#: elf/dl-reloc.c:287 | ||
3421 | #, c-format | ||
3422 | msgid "%s: out of memory to store relocation results for %s\n" | ||
3423 | msgstr "%s: no resta memòria per a guardar els resultats de reubicar «%s»\n" | ||
3424 | |||
3425 | -#: elf/dl-reloc.c:302 | ||
3426 | +#: elf/dl-reloc.c:303 | ||
3427 | msgid "cannot restore segment prot after reloc" | ||
3428 | msgstr "no s’ha pogut restaurar la protecció del segment després de reubicar‐lo" | ||
3429 | |||
3430 | -#: elf/dl-reloc.c:331 | ||
3431 | +#: elf/dl-reloc.c:332 | ||
3432 | msgid "cannot apply additional memory protection after relocation" | ||
3433 | msgstr "no s’ha pogut protegir la memòria després de reubicar" | ||
3434 | |||
3435 | -#: elf/dl-sym.c:162 | ||
3436 | +#: elf/dl-sym.c:163 | ||
3437 | msgid "RTLD_NEXT used in code not dynamically loaded" | ||
3438 | msgstr "s’ha emprat RTLD_NEXT en un codi no carregat dinàmicament" | ||
3439 | |||
3440 | -#: elf/dl-sysdep.c:488 elf/dl-sysdep.c:500 | ||
3441 | -msgid "cannot create capability list" | ||
3442 | -msgstr "no s’ha pogut crear la llista de capacitats" | ||
3443 | - | ||
3444 | -#: elf/dl-tls.c:861 | ||
3445 | +#: elf/dl-tls.c:875 | ||
3446 | msgid "cannot create TLS data structures" | ||
3447 | msgstr "no s’han pogut crear les estructures de dades TLS" | ||
3448 | |||
3449 | -#: elf/dl-version.c:172 | ||
3450 | +#: elf/dl-version.c:166 | ||
3451 | msgid "version lookup error" | ||
3452 | msgstr "error en cercar la versió" | ||
3453 | |||
3454 | -#: elf/dl-version.c:303 | ||
3455 | +#: elf/dl-version.c:297 | ||
3456 | msgid "cannot allocate version reference table" | ||
3457 | msgstr "no s’ha pogut reservar la taula de referències de versions" | ||
3458 | |||
3459 | # Més ajudes. ivb | ||
3460 | -#: elf/ldconfig.c:141 | ||
3461 | +#: elf/ldconfig.c:140 | ||
3462 | msgid "Print cache" | ||
3463 | msgstr "Mostra la memòria cau." | ||
3464 | |||
3465 | -#: elf/ldconfig.c:142 | ||
3466 | +#: elf/ldconfig.c:141 | ||
3467 | msgid "Generate verbose messages" | ||
3468 | msgstr "Genera missatges detallats." | ||
3469 | |||
3470 | -#: elf/ldconfig.c:143 | ||
3471 | +#: elf/ldconfig.c:142 | ||
3472 | msgid "Don't build cache" | ||
3473 | msgstr "No construeix la memòria cau." | ||
3474 | |||
3475 | -#: elf/ldconfig.c:144 | ||
3476 | +#: elf/ldconfig.c:143 | ||
3477 | msgid "Don't generate links" | ||
3478 | msgstr "No genera enllaços." | ||
3479 | |||
3480 | -#: elf/ldconfig.c:145 | ||
3481 | +#: elf/ldconfig.c:144 | ||
3482 | msgid "Change to and use ROOT as root directory" | ||
3483 | msgstr "Canvia a i empra ARREL com a directori arrel." | ||
3484 | |||
3485 | -#: elf/ldconfig.c:145 | ||
3486 | +#: elf/ldconfig.c:144 | ||
3487 | msgid "ROOT" | ||
3488 | msgstr "ARREL" | ||
3489 | |||
3490 | -#: elf/ldconfig.c:146 | ||
3491 | +#: elf/ldconfig.c:145 | ||
3492 | msgid "CACHE" | ||
3493 | msgstr "CACHE" | ||
3494 | |||
3495 | -#: elf/ldconfig.c:146 | ||
3496 | +#: elf/ldconfig.c:145 | ||
3497 | msgid "Use CACHE as cache file" | ||
3498 | msgstr "Empra CACHE com a fitxer de memòria cau." | ||
3499 | |||
3500 | -#: elf/ldconfig.c:147 | ||
3501 | +#: elf/ldconfig.c:146 | ||
3502 | msgid "CONF" | ||
3503 | msgstr "CONF" | ||
3504 | |||
3505 | -#: elf/ldconfig.c:147 | ||
3506 | +#: elf/ldconfig.c:146 | ||
3507 | msgid "Use CONF as configuration file" | ||
3508 | msgstr "Empra CONF com a fitxer de configuració." | ||
3509 | |||
3510 | -#: elf/ldconfig.c:148 | ||
3511 | +#: elf/ldconfig.c:147 | ||
3512 | msgid "Only process directories specified on the command line. Don't build cache." | ||
3513 | msgstr "Només processa els directoris especificats a la línia d’ordres. No construeix la memòria cau." | ||
3514 | |||
3515 | -#: elf/ldconfig.c:149 | ||
3516 | +#: elf/ldconfig.c:148 | ||
3517 | msgid "Manually link individual libraries." | ||
3518 | msgstr "Per a enllaçar les biblioteques manualment." | ||
3519 | |||
3520 | -#: elf/ldconfig.c:150 | ||
3521 | +#: elf/ldconfig.c:149 | ||
3522 | msgid "FORMAT" | ||
3523 | msgstr "FORMAT" | ||
3524 | |||
3525 | -#: elf/ldconfig.c:150 | ||
3526 | +#: elf/ldconfig.c:149 | ||
3527 | msgid "Format to use: new, old or compat (default)" | ||
3528 | msgstr "FORMAT a emprar: «new» (nou), «old» (antic) o «compat» (compatible, per defecte)." | ||
3529 | |||
3530 | -#: elf/ldconfig.c:151 | ||
3531 | +#: elf/ldconfig.c:150 | ||
3532 | msgid "Ignore auxiliary cache file" | ||
3533 | msgstr "No té en compte el fitxer de memòria cau auxilar." | ||
3534 | |||
3535 | -#: elf/ldconfig.c:159 | ||
3536 | +#: elf/ldconfig.c:158 | ||
3537 | msgid "Configure Dynamic Linker Run Time Bindings." | ||
3538 | msgstr "Configura els vincles en temps d’execució de l’enllaçador dinàmic." | ||
3539 | |||
3540 | -#: elf/ldconfig.c:339 | ||
3541 | +#: elf/ldconfig.c:341 | ||
3542 | #, c-format | ||
3543 | msgid "Path `%s' given more than once" | ||
3544 | msgstr "s’ha indicat el camí «%s» més d’una volta" | ||
3545 | |||
3546 | -#: elf/ldconfig.c:379 | ||
3547 | +#: elf/ldconfig.c:381 | ||
3548 | #, c-format | ||
3549 | msgid "%s is not a known library type" | ||
3550 | msgstr "«%s» no és un tipus conegut de biblioteca" | ||
3551 | |||
3552 | -#: elf/ldconfig.c:407 | ||
3553 | +#: elf/ldconfig.c:409 | ||
3554 | #, c-format | ||
3555 | msgid "Can't stat %s" | ||
3556 | msgstr "ha fallat stat() sobre «%s»" | ||
3557 | |||
3558 | -#: elf/ldconfig.c:481 | ||
3559 | +#: elf/ldconfig.c:483 | ||
3560 | #, c-format | ||
3561 | msgid "Can't stat %s\n" | ||
3562 | msgstr "ha fallat stat() sobre «%s»\n" | ||
3563 | |||
3564 | -#: elf/ldconfig.c:491 | ||
3565 | +#: elf/ldconfig.c:493 | ||
3566 | #, c-format | ||
3567 | msgid "%s is not a symbolic link\n" | ||
3568 | msgstr "«%s» no és un enllaç simbòlic\n" | ||
3569 | |||
3570 | -#: elf/ldconfig.c:510 | ||
3571 | +#: elf/ldconfig.c:512 | ||
3572 | #, c-format | ||
3573 | msgid "Can't unlink %s" | ||
3574 | msgstr "no s’ha pogut desenllaçar «%s»" | ||
3575 | |||
3576 | -#: elf/ldconfig.c:516 | ||
3577 | +#: elf/ldconfig.c:518 | ||
3578 | #, c-format | ||
3579 | msgid "Can't link %s to %s" | ||
3580 | msgstr "no s’ha pogut crear un enllaç des de «%s» cap a «%s»" | ||
3581 | |||
3582 | # ivb (2001/10/28) | ||
3583 | # ivb Es refereix a un enllaç -> masculí. | ||
3584 | -#: elf/ldconfig.c:522 | ||
3585 | +#: elf/ldconfig.c:524 | ||
3586 | msgid " (changed)\n" | ||
3587 | msgstr " (canviat)\n" | ||
3588 | |||
3589 | # ivb (2001/10/28) | ||
3590 | # ivb Es refereix a fer o no l'enllaç, no importa el gènere. | ||
3591 | -#: elf/ldconfig.c:524 | ||
3592 | +#: elf/ldconfig.c:526 | ||
3593 | msgid " (SKIPPED)\n" | ||
3594 | msgstr " (SALTAT)\n" | ||
3595 | |||
3596 | -#: elf/ldconfig.c:579 | ||
3597 | +#: elf/ldconfig.c:581 | ||
3598 | #, c-format | ||
3599 | msgid "Can't find %s" | ||
3600 | msgstr "no s’ha pogut trobar «%s»" | ||
3601 | |||
3602 | -#: elf/ldconfig.c:595 elf/ldconfig.c:768 elf/ldconfig.c:827 elf/ldconfig.c:861 | ||
3603 | +#: elf/ldconfig.c:597 elf/ldconfig.c:770 elf/ldconfig.c:829 elf/ldconfig.c:863 | ||
3604 | #, c-format | ||
3605 | msgid "Cannot lstat %s" | ||
3606 | msgstr "ha fallat lstat() sobre «%s»" | ||
3607 | |||
3608 | -#: elf/ldconfig.c:602 | ||
3609 | +#: elf/ldconfig.c:604 | ||
3610 | #, c-format | ||
3611 | msgid "Ignored file %s since it is not a regular file." | ||
3612 | msgstr "es descarta el fitxer «%s» que no és un fitxer ordinari" | ||
3613 | |||
3614 | -#: elf/ldconfig.c:611 | ||
3615 | +#: elf/ldconfig.c:613 | ||
3616 | #, c-format | ||
3617 | msgid "No link created since soname could not be found for %s" | ||
3618 | msgstr "no s’ha creat l’enllaç perquè no s’ha trobat el nom d’objecte compartit de «%s»" | ||
3619 | |||
3620 | -#: elf/ldconfig.c:694 | ||
3621 | +#: elf/ldconfig.c:696 | ||
3622 | #, c-format | ||
3623 | msgid "Can't open directory %s" | ||
3624 | msgstr "no s’ha pogut obrir el directori «%s»" | ||
3625 | |||
3626 | -#: elf/ldconfig.c:786 elf/ldconfig.c:848 elf/readlib.c:91 | ||
3627 | +#: elf/ldconfig.c:788 elf/ldconfig.c:850 elf/readlib.c:90 | ||
3628 | #, c-format | ||
3629 | msgid "Input file %s not found.\n" | ||
3630 | msgstr "no s’ha trobat el fitxer d’entrada «%s»\n" | ||
3631 | |||
3632 | -#: elf/ldconfig.c:793 | ||
3633 | +#: elf/ldconfig.c:795 | ||
3634 | #, c-format | ||
3635 | msgid "Cannot stat %s" | ||
3636 | msgstr "ha fallat stat() sobre «%s»" | ||
3637 | |||
3638 | -#: elf/ldconfig.c:922 | ||
3639 | +#: elf/ldconfig.c:924 | ||
3640 | #, c-format | ||
3641 | msgid "libc5 library %s in wrong directory" | ||
3642 | msgstr "la biblioteca «%s» per a libc5 es troba en un directori incorrecte" | ||
3643 | |||
3644 | -#: elf/ldconfig.c:925 | ||
3645 | +#: elf/ldconfig.c:927 | ||
3646 | #, c-format | ||
3647 | msgid "libc6 library %s in wrong directory" | ||
3648 | msgstr "la biblioteca «%s» per a libc6 es troba en un directori incorrecte" | ||
3649 | |||
3650 | -#: elf/ldconfig.c:928 | ||
3651 | +#: elf/ldconfig.c:930 | ||
3652 | #, c-format | ||
3653 | msgid "libc4 library %s in wrong directory" | ||
3654 | msgstr "la biblioteca «%s» per a libc4 es troba en un directori incorrecte" | ||
3655 | |||
3656 | -#: elf/ldconfig.c:956 | ||
3657 | +#: elf/ldconfig.c:958 | ||
3658 | #, c-format | ||
3659 | msgid "libraries %s and %s in directory %s have same soname but different type." | ||
3660 | msgstr "les biblioteques «%s» i «%s» del directori «%s» tenen el mateix nom d’objecte compartit però diferent tipus." | ||
3661 | |||
3662 | -#: elf/ldconfig.c:1065 | ||
3663 | +#: elf/ldconfig.c:1067 | ||
3664 | #, c-format | ||
3665 | -msgid "Can't open configuration file %s" | ||
3666 | -msgstr "no s’ha pogut obrir el fitxer «%s» de configuració" | ||
3667 | +msgid "Warning: ignoring configuration file that cannot be opened: %s" | ||
3668 | +msgstr "avís: es descarta el fitxer de configuració que no s’ha pogut obrir: %s" | ||
3669 | |||
3670 | -#: elf/ldconfig.c:1129 | ||
3671 | +#: elf/ldconfig.c:1133 | ||
3672 | #, c-format | ||
3673 | msgid "%s:%u: bad syntax in hwcap line" | ||
3674 | msgstr "%s:%u: la sintaxi de la línia «hwcap» no és vàlida" | ||
3675 | |||
3676 | -#: elf/ldconfig.c:1135 | ||
3677 | +#: elf/ldconfig.c:1139 | ||
3678 | #, c-format | ||
3679 | msgid "%s:%u: hwcap index %lu above maximum %u" | ||
3680 | msgstr "%s:%u: la «hwcap» amb índex %lu està sobre el màxim %u" | ||
3681 | |||
3682 | # La substitució final és per un nom. ivb | ||
3683 | -#: elf/ldconfig.c:1142 elf/ldconfig.c:1150 | ||
3684 | +#: elf/ldconfig.c:1146 elf/ldconfig.c:1154 | ||
3685 | #, c-format | ||
3686 | msgid "%s:%u: hwcap index %lu already defined as %s" | ||
3687 | msgstr "%s:%u: la «hwcap» amb índex %lu ja ha estat definida com a «%s»" | ||
3688 | |||
3689 | -#: elf/ldconfig.c:1153 | ||
3690 | +#: elf/ldconfig.c:1157 | ||
3691 | #, c-format | ||
3692 | msgid "%s:%u: duplicate hwcap %lu %s" | ||
3693 | msgstr "%s:%u: la «hwcap» %lu amb nom «%s» està duplicada" | ||
3694 | |||
3695 | -#: elf/ldconfig.c:1175 | ||
3696 | +#: elf/ldconfig.c:1179 | ||
3697 | #, c-format | ||
3698 | msgid "need absolute file name for configuration file when using -r" | ||
3699 | msgstr "cal indicar el camí absolut del fitxer de configuració en emprar «-r»" | ||
3700 | |||
3701 | -#: elf/ldconfig.c:1182 locale/programs/xmalloc.c:70 malloc/obstack.c:434 | ||
3702 | -#: malloc/obstack.c:436 posix/getconf.c:1077 posix/getconf.c:1297 | ||
3703 | +#: elf/ldconfig.c:1186 locale/programs/xmalloc.c:65 malloc/obstack.c:433 | ||
3704 | +#: malloc/obstack.c:435 posix/getconf.c:1076 posix/getconf.c:1296 | ||
3705 | #, c-format | ||
3706 | msgid "memory exhausted" | ||
3707 | msgstr "la memòria s’ha exhaurit" | ||
3708 | |||
3709 | -#: elf/ldconfig.c:1214 | ||
3710 | +#: elf/ldconfig.c:1218 | ||
3711 | #, c-format | ||
3712 | msgid "%s:%u: cannot read directory %s" | ||
3713 | msgstr "%s:%u: no s’ha pogut llegir el directori «%s»" | ||
3714 | |||
3715 | -#: elf/ldconfig.c:1258 | ||
3716 | +#: elf/ldconfig.c:1262 | ||
3717 | #, c-format | ||
3718 | msgid "relative path `%s' used to build cache" | ||
3719 | msgstr "s’ha indicat el camí relatiu «%s» per a construir la memòria cau" | ||
3720 | |||
3721 | -#: elf/ldconfig.c:1284 | ||
3722 | +#: elf/ldconfig.c:1288 | ||
3723 | #, c-format | ||
3724 | msgid "Can't chdir to /" | ||
3725 | msgstr "no s’ha pogut canviar al directori arrel" | ||
3726 | |||
3727 | -#: elf/ldconfig.c:1325 | ||
3728 | +#: elf/ldconfig.c:1329 | ||
3729 | #, c-format | ||
3730 | msgid "Can't open cache file directory %s\n" | ||
3731 | msgstr "no s’ha pogut obrir el directori «%s» de fitxers de memòria cau\n" | ||
3732 | |||
3733 | -#: elf/ldd.bash.in:43 | ||
3734 | +#: elf/ldd.bash.in:42 | ||
3735 | msgid "Written by %s and %s.\n" | ||
3736 | msgstr "Escrit per %s i %s.\n" | ||
3737 | |||
3738 | -#: elf/ldd.bash.in:48 | ||
3739 | +#: elf/ldd.bash.in:47 | ||
3740 | msgid "" | ||
3741 | "Usage: ldd [OPTION]... FILE...\n" | ||
3742 | " --help print this help and exit\n" | ||
3743 | @@ -1035,110 +1043,203 @@ | ||
3744 | " --version Mostra informació sobre la versió i ix.\n" | ||
3745 | "\n" | ||
3746 | |||
3747 | -#: elf/ldd.bash.in:82 | ||
3748 | +#: elf/ldd.bash.in:80 | ||
3749 | msgid "ldd: option \\`$1' is ambiguous" | ||
3750 | msgstr "ldd: l’opció «$1» és ambígua" | ||
3751 | |||
3752 | -#: elf/ldd.bash.in:89 | ||
3753 | +#: elf/ldd.bash.in:87 | ||
3754 | msgid "unrecognized option" | ||
3755 | msgstr "l’opció no és reconeguda" | ||
3756 | |||
3757 | -#: elf/ldd.bash.in:90 elf/ldd.bash.in:128 | ||
3758 | +#: elf/ldd.bash.in:88 elf/ldd.bash.in:126 | ||
3759 | msgid "Try \\`ldd --help' for more information." | ||
3760 | msgstr "Proveu «ldd --help» per a obtenir més informació." | ||
3761 | |||
3762 | -#: elf/ldd.bash.in:127 | ||
3763 | +#: elf/ldd.bash.in:125 | ||
3764 | msgid "missing file arguments" | ||
3765 | msgstr "manquen arguments fitxer" | ||
3766 | |||
3767 | #. TRANS No such file or directory. This is a ``file doesn't exist'' error | ||
3768 | #. TRANS for ordinary files that are referenced in contexts where they are | ||
3769 | #. TRANS expected to already exist. | ||
3770 | -#: elf/ldd.bash.in:150 sysdeps/gnu/errlist.c:36 | ||
3771 | +#: elf/ldd.bash.in:148 sysdeps/gnu/errlist.c:36 | ||
3772 | msgid "No such file or directory" | ||
3773 | msgstr "El fitxer o directori no existeix" | ||
3774 | |||
3775 | # ivb (2001/10/31) | ||
3776 | # ivb Cal tenir en compte que «ordinary» a l'anglés és cosa pler diferent ;) | ||
3777 | -#: elf/ldd.bash.in:153 inet/rcmd.c:488 | ||
3778 | +#: elf/ldd.bash.in:151 inet/rcmd.c:488 | ||
3779 | msgid "not regular file" | ||
3780 | msgstr "no és un fitxer ordinari" | ||
3781 | |||
3782 | # Darrere va el nom de fitxer, no puc canviar les cometes. :( ivb | ||
3783 | -#: elf/ldd.bash.in:156 | ||
3784 | +#: elf/ldd.bash.in:154 | ||
3785 | msgid "warning: you do not have execution permission for" | ||
3786 | msgstr "avís: no teniu permís d’execució per a" | ||
3787 | |||
3788 | -#: elf/ldd.bash.in:185 | ||
3789 | +#: elf/ldd.bash.in:183 | ||
3790 | msgid "\tnot a dynamic executable" | ||
3791 | msgstr "\tno és un executable dinàmic" | ||
3792 | |||
3793 | # Davant va el nom de fitxer, no puc canviar les cometes. :( ivb | ||
3794 | -#: elf/ldd.bash.in:193 | ||
3795 | +#: elf/ldd.bash.in:191 | ||
3796 | msgid "exited with unknown exit code" | ||
3797 | msgstr "ha finalitzat amb un codi d’eixida desconegut" | ||
3798 | |||
3799 | # Darrere va el nom de fitxer, no puc canviar les cometes. :( ivb | ||
3800 | -#: elf/ldd.bash.in:198 | ||
3801 | +#: elf/ldd.bash.in:196 | ||
3802 | msgid "error: you do not have read permission for" | ||
3803 | msgstr "error: no teniu permís de lectura per a" | ||
3804 | |||
3805 | -#: elf/readelflib.c:35 | ||
3806 | +#: elf/pldd-xx.c:105 | ||
3807 | #, c-format | ||
3808 | +msgid "cannot find program header of process" | ||
3809 | +msgstr "no s’ha trobat la capçalera de programa del procés" | ||
3810 | + | ||
3811 | +#: elf/pldd-xx.c:110 | ||
3812 | +#, c-format | ||
3813 | +msgid "cannot read program header" | ||
3814 | +msgstr "no s’ha pogut llegir la capçalera de programa" | ||
3815 | + | ||
3816 | +#: elf/pldd-xx.c:135 | ||
3817 | +#, c-format | ||
3818 | +msgid "cannot read dynamic section" | ||
3819 | +msgstr "no s’ha pogut llegir la secció dinàmica" | ||
3820 | + | ||
3821 | +#: elf/pldd-xx.c:147 | ||
3822 | +#, c-format | ||
3823 | +msgid "cannot read r_debug" | ||
3824 | +msgstr "no s’ha pogut llegir «r_debug»" | ||
3825 | + | ||
3826 | +#: elf/pldd-xx.c:167 | ||
3827 | +#, c-format | ||
3828 | +msgid "cannot read program interpreter" | ||
3829 | +msgstr "no s’ha pogut llegir l’intèrpret del programa" | ||
3830 | + | ||
3831 | +#: elf/pldd-xx.c:196 | ||
3832 | +#, c-format | ||
3833 | +msgid "cannot read link map" | ||
3834 | +msgstr "no s’ha pogut llegir el mapa d’enllaçat" | ||
3835 | + | ||
3836 | +#: elf/pldd-xx.c:207 | ||
3837 | +#, c-format | ||
3838 | +msgid "cannot read object name" | ||
3839 | +msgstr "no s’ha pogut llegir el nom de l’objecte" | ||
3840 | + | ||
3841 | +# Descripció del programa. ivb | ||
3842 | +#: elf/pldd.c:65 | ||
3843 | +msgid "List dynamic shared objects loaded into process." | ||
3844 | +msgstr "Llista els objectes compatits dinàmics carregats en un procés." | ||
3845 | + | ||
3846 | +# Crec que el terme és suficient conegut. ivb | ||
3847 | +#: elf/pldd.c:69 | ||
3848 | +msgid "PID" | ||
3849 | +msgstr "PID" | ||
3850 | + | ||
3851 | +#: elf/pldd.c:100 | ||
3852 | +#, c-format | ||
3853 | +msgid "Exactly one parameter with process ID required.\n" | ||
3854 | +msgstr "cal exactament un paràmetre amb l’identificador de procés\n" | ||
3855 | + | ||
3856 | +#: elf/pldd.c:112 | ||
3857 | +#, c-format | ||
3858 | +msgid "invalid process ID '%s'" | ||
3859 | +msgstr "l’identificador de procés «%s» no és vàlid" | ||
3860 | + | ||
3861 | +# No usa quote(). ivb | ||
3862 | +#: elf/pldd.c:120 | ||
3863 | +#, c-format | ||
3864 | +msgid "cannot open %s" | ||
3865 | +msgstr "no s’ha pogut obrir «%s»" | ||
3866 | + | ||
3867 | +# No usa quote. ivb | ||
3868 | +#: elf/pldd.c:145 | ||
3869 | +#, c-format | ||
3870 | +msgid "cannot open %s/task" | ||
3871 | +msgstr "no s’ha pogut obrir «%s/task»" | ||
3872 | + | ||
3873 | +# No usa quote(). ivb | ||
3874 | +#: elf/pldd.c:148 | ||
3875 | +#, c-format | ||
3876 | +msgid "cannot prepare reading %s/task" | ||
3877 | +msgstr "no s’ha pogut preparar la lectura de «%s/task»" | ||
3878 | + | ||
3879 | +#: elf/pldd.c:161 | ||
3880 | +#, c-format | ||
3881 | +msgid "invalid thread ID '%s'" | ||
3882 | +msgstr "l’identificador de fil «%s» no és vàlid" | ||
3883 | + | ||
3884 | +#: elf/pldd.c:172 | ||
3885 | +#, c-format | ||
3886 | +msgid "cannot attach to process %lu" | ||
3887 | +msgstr "no s’ha pogut associar al procés %lu" | ||
3888 | + | ||
3889 | +#: elf/pldd.c:264 | ||
3890 | +#, c-format | ||
3891 | +msgid "cannot get information about process %lu" | ||
3892 | +msgstr "no s’ha pogut obtenir informació sobre el procés %lu" | ||
3893 | + | ||
3894 | +#: elf/pldd.c:277 | ||
3895 | +#, c-format | ||
3896 | +msgid "process %lu is no ELF program" | ||
3897 | +msgstr "el procés %lu no pertany a un programa ELF" | ||
3898 | + | ||
3899 | +#: elf/readelflib.c:34 | ||
3900 | +#, c-format | ||
3901 | msgid "file %s is truncated\n" | ||
3902 | msgstr "el fitxer «%s» està truncat\n" | ||
3903 | |||
3904 | -#: elf/readelflib.c:67 | ||
3905 | +#: elf/readelflib.c:66 | ||
3906 | #, c-format | ||
3907 | msgid "%s is a 32 bit ELF file.\n" | ||
3908 | msgstr "«%s» és un fitxer ELF de 32 bits\n" | ||
3909 | |||
3910 | -#: elf/readelflib.c:69 | ||
3911 | +#: elf/readelflib.c:68 | ||
3912 | #, c-format | ||
3913 | msgid "%s is a 64 bit ELF file.\n" | ||
3914 | msgstr "«%s» és un fitxer ELF de 64 bits\n" | ||
3915 | |||
3916 | -#: elf/readelflib.c:71 | ||
3917 | +#: elf/readelflib.c:70 | ||
3918 | #, c-format | ||
3919 | msgid "Unknown ELFCLASS in file %s.\n" | ||
3920 | msgstr "la classe ELF del fitxer «%s» no és coneguda\n" | ||
3921 | |||
3922 | -#: elf/readelflib.c:78 | ||
3923 | +#: elf/readelflib.c:77 | ||
3924 | #, c-format | ||
3925 | msgid "%s is not a shared object file (Type: %d).\n" | ||
3926 | msgstr "«%s» no és un fitxer objecte compartit (tipus: %d)\n" | ||
3927 | |||
3928 | -#: elf/readelflib.c:109 | ||
3929 | +#: elf/readelflib.c:108 | ||
3930 | #, c-format | ||
3931 | msgid "more than one dynamic segment\n" | ||
3932 | msgstr "hi ha més d’un segment dinàmic\n" | ||
3933 | |||
3934 | -#: elf/readlib.c:97 | ||
3935 | +#: elf/readlib.c:96 | ||
3936 | #, c-format | ||
3937 | msgid "Cannot fstat file %s.\n" | ||
3938 | msgstr "ha fallat fstat() sobre el fitxer «%s»\n" | ||
3939 | |||
3940 | -#: elf/readlib.c:108 | ||
3941 | +#: elf/readlib.c:107 | ||
3942 | #, c-format | ||
3943 | msgid "File %s is empty, not checked." | ||
3944 | msgstr "el fitxer «%s» és buit, no es comprova" | ||
3945 | |||
3946 | -#: elf/readlib.c:114 | ||
3947 | +#: elf/readlib.c:113 | ||
3948 | #, c-format | ||
3949 | msgid "File %s is too small, not checked." | ||
3950 | msgstr "el fitxer «%s» és massa menut, no es comprova" | ||
3951 | |||
3952 | -#: elf/readlib.c:124 | ||
3953 | +#: elf/readlib.c:123 | ||
3954 | #, c-format | ||
3955 | msgid "Cannot mmap file %s.\n" | ||
3956 | msgstr "ha fallat mmap() sobre el fitxer «%s»\n" | ||
3957 | |||
3958 | -#: elf/readlib.c:162 | ||
3959 | +#: elf/readlib.c:161 | ||
3960 | #, c-format | ||
3961 | msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" | ||
3962 | msgstr "«%s» no és un fitxer ELF: els octets màgics del començament no són correctes\n" | ||
3963 | |||
3964 | -#: elf/sln.c:85 | ||
3965 | +#: elf/sln.c:84 | ||
3966 | #, c-format | ||
3967 | msgid "" | ||
3968 | "Usage: sln src dest|file\n" | ||
3969 | @@ -1147,50 +1248,51 @@ | ||
3970 | "Forma d’ús: sln ORIGEN DESTÍ|FITXER\n" | ||
3971 | "\n" | ||
3972 | |||
3973 | -#: elf/sln.c:110 | ||
3974 | +#: elf/sln.c:109 | ||
3975 | #, c-format | ||
3976 | msgid "%s: file open error: %m\n" | ||
3977 | msgstr "%s: error en obrir el fitxer: %m\n" | ||
3978 | |||
3979 | -#: elf/sln.c:147 | ||
3980 | +#: elf/sln.c:146 | ||
3981 | #, c-format | ||
3982 | msgid "No target in line %d\n" | ||
3983 | msgstr "manca un destí a la línia %d\n" | ||
3984 | |||
3985 | -#: elf/sln.c:179 | ||
3986 | +#: elf/sln.c:178 | ||
3987 | #, c-format | ||
3988 | msgid "%s: destination must not be a directory\n" | ||
3989 | msgstr "%s: el destí no ha de ser un directori\n" | ||
3990 | |||
3991 | -#: elf/sln.c:185 | ||
3992 | +#: elf/sln.c:184 | ||
3993 | #, c-format | ||
3994 | msgid "%s: failed to remove the old destination\n" | ||
3995 | msgstr "%s: no s’ha pogut esborrar el destí antic\n" | ||
3996 | |||
3997 | -#: elf/sln.c:193 | ||
3998 | +#: elf/sln.c:192 | ||
3999 | #, c-format | ||
4000 | msgid "%s: invalid destination: %s\n" | ||
4001 | msgstr "%s: el destí no és vàlid: %s\n" | ||
4002 | |||
4003 | -#: elf/sln.c:208 elf/sln.c:217 | ||
4004 | +#: elf/sln.c:207 elf/sln.c:216 | ||
4005 | #, c-format | ||
4006 | msgid "Invalid link from \"%s\" to \"%s\": %s\n" | ||
4007 | msgstr "l’enllaç des de «%s» cap a «%s» no és vàlid: %s\n" | ||
4008 | |||
4009 | -#: elf/sotruss.ksh:33 | ||
4010 | +#: elf/sotruss.ksh:32 | ||
4011 | #, sh-format | ||
4012 | msgid "" | ||
4013 | "Usage: sotruss [OPTION...] [--] EXECUTABLE [EXECUTABLE-OPTION...]\n" | ||
4014 | -" -F, --from FROMLIST trace calls from objects on FORMLIST\n" | ||
4015 | -" -T, --to TOLIST trace calls to objects on TOLIST\n" | ||
4016 | +" -F, --from FROMLIST Trace calls from objects on FROMLIST\n" | ||
4017 | +" -T, --to TOLIST Trace calls to objects on TOLIST\n" | ||
4018 | "\n" | ||
4019 | -" -e, --exit also show exits from the function calls\n" | ||
4020 | -" -f, --follow trace child processes\n" | ||
4021 | -" -o, --output FILENAME write output to FILENAME (or FILENAME.$PID in case\n" | ||
4022 | +" -e, --exit Also show exits from the function calls\n" | ||
4023 | +" -f, --follow Trace child processes\n" | ||
4024 | +" -o, --output FILENAME Write output to FILENAME (or FILENAME.$PID in case\n" | ||
4025 | "\t\t\t -f is also used) instead of standard error\n" | ||
4026 | "\n" | ||
4027 | -" --help print this help and exit\n" | ||
4028 | -" --version print version information and exit" | ||
4029 | +" -?, --help Give this help list\n" | ||
4030 | +" --usage Give a short usage message\n" | ||
4031 | +" --version Print program version" | ||
4032 | msgstr "" | ||
4033 | "Forma d’ús: sotruss [OPCIÓ…] [--] EXECUTABLE [OPCIÓ_EXECUTABLE…]\n" | ||
4034 | "\n" | ||
4035 | @@ -1202,288 +1304,289 @@ | ||
4036 | " -o, --output FITXER Escriu l’eixida al FITXER (o a FITXER.$PID si s’empra\n" | ||
4037 | " l’opció «-f») en lloc de l’eixida estàndard d’errors.\n" | ||
4038 | "\n" | ||
4039 | -" --help Mostra aquesta ajuda i surt.\n" | ||
4040 | +" -?, --help Mostra aquesta ajuda i surt.\n" | ||
4041 | +" --usage Mostra un missatge breu amb la forma d’ús.\n" | ||
4042 | " --version Mostra informació sobre la versió i surt." | ||
4043 | |||
4044 | #: elf/sotruss.ksh:46 | ||
4045 | msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n" | ||
4046 | msgstr "Els arguments obligatoris o opcionals per a les opcions llargues també ho són\\nper a les opcions curtes corresponents.\\n" | ||
4047 | |||
4048 | -#: elf/sotruss.ksh:56 | ||
4049 | +#: elf/sotruss.ksh:55 | ||
4050 | msgid "%s: option requires an argument -- '%s'\\n" | ||
4051 | msgstr "%s: l’opció «%c» necessita un argument\\n" | ||
4052 | |||
4053 | -#: elf/sotruss.ksh:57 elf/sotruss.ksh:68 elf/sotruss.ksh:134 | ||
4054 | -msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n" | ||
4055 | -msgstr "Proveu «%s --help» o «%s --usage» per a obtenir més informació.\\n" | ||
4056 | - | ||
4057 | -#: elf/sotruss.ksh:62 | ||
4058 | +#: elf/sotruss.ksh:61 | ||
4059 | msgid "%s: option is ambiguous; possibilities:" | ||
4060 | msgstr "%s: l’opció és ambígua; possibilitats:" | ||
4061 | |||
4062 | -#: elf/sotruss.ksh:80 | ||
4063 | +#: elf/sotruss.ksh:79 | ||
4064 | msgid "Written by %s.\\n" | ||
4065 | msgstr "Escrit per %s.\\n" | ||
4066 | |||
4067 | -#: elf/sotruss.ksh:87 | ||
4068 | +#: elf/sotruss.ksh:86 | ||
4069 | msgid "" | ||
4070 | "Usage: %s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n" | ||
4071 | -"\t [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\\n" | ||
4072 | +"\t [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\n" | ||
4073 | +"\t [--help] [--usage] [--version] [--]\n" | ||
4074 | +"\t EXECUTABLE [EXECUTABLE-OPTION...]\\n" | ||
4075 | msgstr "" | ||
4076 | "Forma d’ús: %s [-ef] [-F LLISTA_DE] [-o FITXER] [-T LLISTA_A]\n" | ||
4077 | " [--exit] [--follow]\n" | ||
4078 | -" [--from LLISTA_DE] [--output FITXER] [--to LLISTA_A]\\n" | ||
4079 | +" [--from LLISTA_DE] [--output FITXER] [--to LLISTA_A]\n" | ||
4080 | +" [--help] [--usage] [--version] [--]\n" | ||
4081 | +" EXECUTABLE [OPCIÓ_EXECUTABLE…]\\n" | ||
4082 | |||
4083 | -#: elf/sotruss.ksh:133 | ||
4084 | +#: elf/sotruss.ksh:134 | ||
4085 | msgid "%s: unrecognized option '%c%s'\\n" | ||
4086 | msgstr "%s: l’opció «%c%s» no és reconeguda\\n" | ||
4087 | |||
4088 | # Més ajudes. ivb | ||
4089 | -#: elf/sprof.c:77 | ||
4090 | +#: elf/sprof.c:76 | ||
4091 | msgid "Output selection:" | ||
4092 | msgstr "Selecció de l’eixida:" | ||
4093 | |||
4094 | -#: elf/sprof.c:79 | ||
4095 | +#: elf/sprof.c:78 | ||
4096 | msgid "print list of count paths and their number of use" | ||
4097 | msgstr "Mostra una llista de camins de recompte i les voltes que han estat emprats." | ||
4098 | |||
4099 | -#: elf/sprof.c:81 | ||
4100 | +#: elf/sprof.c:80 | ||
4101 | msgid "generate flat profile with counts and ticks" | ||
4102 | msgstr "Genera un perfil pla amb recomptes i unitats de temps." | ||
4103 | |||
4104 | -#: elf/sprof.c:82 | ||
4105 | +#: elf/sprof.c:81 | ||
4106 | msgid "generate call graph" | ||
4107 | msgstr "Genera un gràfic de crides." | ||
4108 | |||
4109 | -#: elf/sprof.c:89 | ||
4110 | +#: elf/sprof.c:88 | ||
4111 | msgid "Read and display shared object profiling data." | ||
4112 | msgstr "Llig i mostra les dades de perfilat d’un objecte compartit." | ||
4113 | |||
4114 | -#: elf/sprof.c:94 | ||
4115 | +#: elf/sprof.c:93 | ||
4116 | msgid "SHOBJ [PROFDATA]" | ||
4117 | msgstr "OBJECTE_COMPARTIT [DADES_PERFILAT]" | ||
4118 | |||
4119 | -#: elf/sprof.c:431 | ||
4120 | +#: elf/sprof.c:432 | ||
4121 | #, c-format | ||
4122 | msgid "failed to load shared object `%s'" | ||
4123 | msgstr "no s’ha pogut carregar l’objecte compartit «%s»" | ||
4124 | |||
4125 | -#: elf/sprof.c:440 | ||
4126 | +#: elf/sprof.c:441 | ||
4127 | #, c-format | ||
4128 | msgid "cannot create internal descriptors" | ||
4129 | msgstr "no s’han pogut crear els descriptors interns" | ||
4130 | |||
4131 | -#: elf/sprof.c:559 | ||
4132 | +#: elf/sprof.c:553 | ||
4133 | #, c-format | ||
4134 | msgid "Reopening shared object `%s' failed" | ||
4135 | msgstr "no s’ha pogut reobrir l’objecte compartit «%s»" | ||
4136 | |||
4137 | -#: elf/sprof.c:566 elf/sprof.c:660 | ||
4138 | +#: elf/sprof.c:560 elf/sprof.c:655 | ||
4139 | #, c-format | ||
4140 | msgid "reading of section headers failed" | ||
4141 | msgstr "la lectura de les capçaleres de secció ha fallat" | ||
4142 | |||
4143 | -#: elf/sprof.c:574 elf/sprof.c:668 | ||
4144 | +#: elf/sprof.c:568 elf/sprof.c:663 | ||
4145 | #, c-format | ||
4146 | msgid "reading of section header string table failed" | ||
4147 | msgstr "la lectura de la taula de cadenes de capçalera de secció ha fallat" | ||
4148 | |||
4149 | -#: elf/sprof.c:600 | ||
4150 | +#: elf/sprof.c:594 | ||
4151 | #, c-format | ||
4152 | msgid "*** Cannot read debuginfo file name: %m\n" | ||
4153 | msgstr "*** No s’ha pogut llegir el nom del fitxer d’informació de depuració: %m\n" | ||
4154 | |||
4155 | -#: elf/sprof.c:620 | ||
4156 | +#: elf/sprof.c:615 | ||
4157 | #, c-format | ||
4158 | msgid "cannot determine file name" | ||
4159 | msgstr "no s’ha pogut determinar un nom de fitxer" | ||
4160 | |||
4161 | -#: elf/sprof.c:653 | ||
4162 | +#: elf/sprof.c:648 | ||
4163 | #, c-format | ||
4164 | msgid "reading of ELF header failed" | ||
4165 | msgstr "la lectura de la capçalera ELF ha fallat" | ||
4166 | |||
4167 | -#: elf/sprof.c:689 | ||
4168 | +#: elf/sprof.c:684 | ||
4169 | #, c-format | ||
4170 | msgid "*** The file `%s' is stripped: no detailed analysis possible\n" | ||
4171 | msgstr "*** El fitxer «%s» no conté símbols: no és possible l’anàlisi detallada\n" | ||
4172 | |||
4173 | -#: elf/sprof.c:719 | ||
4174 | +#: elf/sprof.c:714 | ||
4175 | #, c-format | ||
4176 | msgid "failed to load symbol data" | ||
4177 | msgstr "no s’han pogut carregar les dades simbòliques" | ||
4178 | |||
4179 | -#: elf/sprof.c:784 | ||
4180 | +#: elf/sprof.c:779 | ||
4181 | #, c-format | ||
4182 | msgid "cannot load profiling data" | ||
4183 | msgstr "no s’han pogut carregar les dades de perfilat" | ||
4184 | |||
4185 | -#: elf/sprof.c:793 | ||
4186 | +#: elf/sprof.c:788 | ||
4187 | #, c-format | ||
4188 | msgid "while stat'ing profiling data file" | ||
4189 | msgstr "en cridar stat() sobre el fitxer de dades de perfilat" | ||
4190 | |||
4191 | -#: elf/sprof.c:801 | ||
4192 | +#: elf/sprof.c:796 | ||
4193 | #, c-format | ||
4194 | msgid "profiling data file `%s' does not match shared object `%s'" | ||
4195 | msgstr "el fitxer «%s» de dades de perfilat no correspon a l’objecte compartit «%s»" | ||
4196 | |||
4197 | -#: elf/sprof.c:812 | ||
4198 | +#: elf/sprof.c:807 | ||
4199 | #, c-format | ||
4200 | msgid "failed to mmap the profiling data file" | ||
4201 | msgstr "ha fallat mmap() sobre el fitxer de dades de perfilat" | ||
4202 | |||
4203 | -#: elf/sprof.c:820 | ||
4204 | +#: elf/sprof.c:815 | ||
4205 | #, c-format | ||
4206 | msgid "error while closing the profiling data file" | ||
4207 | msgstr "error en tancar el fitxer de dades de perfilat" | ||
4208 | |||
4209 | -#: elf/sprof.c:829 elf/sprof.c:927 | ||
4210 | +#: elf/sprof.c:824 elf/sprof.c:922 | ||
4211 | #, c-format | ||
4212 | msgid "cannot create internal descriptor" | ||
4213 | msgstr "no s’ha pogut crear un descriptor intern" | ||
4214 | |||
4215 | -#: elf/sprof.c:903 | ||
4216 | +#: elf/sprof.c:898 | ||
4217 | #, c-format | ||
4218 | msgid "`%s' is no correct profile data file for `%s'" | ||
4219 | msgstr "«%s» no és un fitxer vàlid de perfilat de «%s»" | ||
4220 | |||
4221 | -#: elf/sprof.c:1084 elf/sprof.c:1142 | ||
4222 | +#: elf/sprof.c:1079 elf/sprof.c:1137 | ||
4223 | #, c-format | ||
4224 | msgid "cannot allocate symbol data" | ||
4225 | msgstr "no s’han pogut reservar les dades de símbols" | ||
4226 | |||
4227 | -#: iconv/iconv_charmap.c:142 iconv/iconv_prog.c:446 | ||
4228 | +#: iconv/iconv_charmap.c:143 iconv/iconv_prog.c:448 | ||
4229 | #, c-format | ||
4230 | msgid "cannot open output file" | ||
4231 | msgstr "no s’ha pogut obrir el fitxer d’eixida" | ||
4232 | |||
4233 | -#: iconv/iconv_charmap.c:188 iconv/iconv_prog.c:312 | ||
4234 | +#: iconv/iconv_charmap.c:189 iconv/iconv_prog.c:311 | ||
4235 | #, c-format | ||
4236 | msgid "error while closing input `%s'" | ||
4237 | msgstr "error en tancar l’entrada «%s»" | ||
4238 | |||
4239 | -#: iconv/iconv_charmap.c:462 | ||
4240 | +#: iconv/iconv_charmap.c:463 | ||
4241 | #, c-format | ||
4242 | msgid "illegal input sequence at position %Zd" | ||
4243 | msgstr "hi ha una seqüència d’entrada no vàlida a la posició %Zd" | ||
4244 | |||
4245 | -#: iconv/iconv_charmap.c:481 iconv/iconv_prog.c:537 | ||
4246 | +#: iconv/iconv_charmap.c:482 iconv/iconv_prog.c:539 | ||
4247 | #, c-format | ||
4248 | msgid "incomplete character or shift sequence at end of buffer" | ||
4249 | msgstr "hi ha un caràcter o seqüència de desplaçament incompleta al final de la memòria intermèdia" | ||
4250 | |||
4251 | -#: iconv/iconv_charmap.c:526 iconv/iconv_charmap.c:562 iconv/iconv_prog.c:580 | ||
4252 | -#: iconv/iconv_prog.c:616 | ||
4253 | +#: iconv/iconv_charmap.c:527 iconv/iconv_charmap.c:563 iconv/iconv_prog.c:582 | ||
4254 | +#: iconv/iconv_prog.c:618 | ||
4255 | #, c-format | ||
4256 | msgid "error while reading the input" | ||
4257 | msgstr "error en llegir l’entrada" | ||
4258 | |||
4259 | -#: iconv/iconv_charmap.c:544 iconv/iconv_prog.c:598 | ||
4260 | +#: iconv/iconv_charmap.c:545 iconv/iconv_prog.c:600 | ||
4261 | #, c-format | ||
4262 | msgid "unable to allocate buffer for input" | ||
4263 | msgstr "no s’ha pogut reservar memòria intermèdia per a l’entrada" | ||
4264 | |||
4265 | -#: iconv/iconv_prog.c:60 | ||
4266 | +#: iconv/iconv_prog.c:59 | ||
4267 | msgid "Input/Output format specification:" | ||
4268 | msgstr "Especificació de format de l’entrada/eixida:" | ||
4269 | |||
4270 | # Els següents són missatges d'ajuda. ivb | ||
4271 | -#: iconv/iconv_prog.c:61 | ||
4272 | +#: iconv/iconv_prog.c:60 | ||
4273 | msgid "encoding of original text" | ||
4274 | msgstr "Codificació del text original." | ||
4275 | |||
4276 | -#: iconv/iconv_prog.c:62 | ||
4277 | +#: iconv/iconv_prog.c:61 | ||
4278 | msgid "encoding for output" | ||
4279 | msgstr "Codificació de l’eixida." | ||
4280 | |||
4281 | -#: iconv/iconv_prog.c:63 | ||
4282 | +#: iconv/iconv_prog.c:62 | ||
4283 | msgid "Information:" | ||
4284 | msgstr "Informació:" | ||
4285 | |||
4286 | -#: iconv/iconv_prog.c:64 | ||
4287 | +#: iconv/iconv_prog.c:63 | ||
4288 | msgid "list all known coded character sets" | ||
4289 | msgstr "Llista tots els jocs de caràcters codificats coneguts." | ||
4290 | |||
4291 | -#: iconv/iconv_prog.c:65 locale/programs/localedef.c:127 | ||
4292 | +#: iconv/iconv_prog.c:64 locale/programs/localedef.c:126 | ||
4293 | msgid "Output control:" | ||
4294 | msgstr "Control de l’eixida:" | ||
4295 | |||
4296 | -#: iconv/iconv_prog.c:66 | ||
4297 | +#: iconv/iconv_prog.c:65 | ||
4298 | msgid "omit invalid characters from output" | ||
4299 | msgstr "Omet a l’eixida els caràcters no vàlids." | ||
4300 | |||
4301 | -#: iconv/iconv_prog.c:67 | ||
4302 | +#: iconv/iconv_prog.c:66 | ||
4303 | msgid "output file" | ||
4304 | msgstr "Fitxer d’eixida." | ||
4305 | |||
4306 | -#: iconv/iconv_prog.c:68 | ||
4307 | +#: iconv/iconv_prog.c:67 | ||
4308 | msgid "suppress warnings" | ||
4309 | msgstr "Elimina els avisos." | ||
4310 | |||
4311 | -#: iconv/iconv_prog.c:69 | ||
4312 | +#: iconv/iconv_prog.c:68 | ||
4313 | msgid "print progress information" | ||
4314 | msgstr "Mostra informació del progrés." | ||
4315 | |||
4316 | -#: iconv/iconv_prog.c:74 | ||
4317 | +#: iconv/iconv_prog.c:73 | ||
4318 | msgid "Convert encoding of given files from one encoding to another." | ||
4319 | msgstr "Converteix els fitxers especificats d’una codificació a una altra." | ||
4320 | |||
4321 | -#: iconv/iconv_prog.c:78 | ||
4322 | +#: iconv/iconv_prog.c:77 | ||
4323 | msgid "[FILE...]" | ||
4324 | msgstr "[FITXER…]" | ||
4325 | |||
4326 | -#: iconv/iconv_prog.c:234 | ||
4327 | +#: iconv/iconv_prog.c:233 | ||
4328 | #, c-format | ||
4329 | msgid "conversions from `%s' and to `%s' are not supported" | ||
4330 | msgstr "les conversions de «%s» i a «%s» no estan implementades" | ||
4331 | |||
4332 | -#: iconv/iconv_prog.c:239 | ||
4333 | +#: iconv/iconv_prog.c:238 | ||
4334 | #, c-format | ||
4335 | msgid "conversion from `%s' is not supported" | ||
4336 | msgstr "la conversió de «%s» no està implementada" | ||
4337 | |||
4338 | -#: iconv/iconv_prog.c:246 | ||
4339 | +#: iconv/iconv_prog.c:245 | ||
4340 | #, c-format | ||
4341 | msgid "conversion to `%s' is not supported" | ||
4342 | msgstr "la conversió a «%s» no està implementada" | ||
4343 | |||
4344 | -#: iconv/iconv_prog.c:250 | ||
4345 | +#: iconv/iconv_prog.c:249 | ||
4346 | #, c-format | ||
4347 | msgid "conversion from `%s' to `%s' is not supported" | ||
4348 | msgstr "la conversió de «%s» a «%s» no està implementada" | ||
4349 | |||
4350 | -#: iconv/iconv_prog.c:260 | ||
4351 | +#: iconv/iconv_prog.c:259 | ||
4352 | #, c-format | ||
4353 | msgid "failed to start conversion processing" | ||
4354 | msgstr "no s’ha pogut començar a processar la conversió" | ||
4355 | |||
4356 | -#: iconv/iconv_prog.c:358 | ||
4357 | +#: iconv/iconv_prog.c:357 | ||
4358 | #, c-format | ||
4359 | msgid "error while closing output file" | ||
4360 | msgstr "error en tancar el fitxer d’eixida" | ||
4361 | |||
4362 | -#: iconv/iconv_prog.c:456 | ||
4363 | +#: iconv/iconv_prog.c:458 | ||
4364 | #, c-format | ||
4365 | msgid "conversion stopped due to problem in writing the output" | ||
4366 | msgstr "la conversió s’ha detingut a causa d’un problema en escriure l’eixida" | ||
4367 | |||
4368 | -#: iconv/iconv_prog.c:533 | ||
4369 | +#: iconv/iconv_prog.c:535 | ||
4370 | #, c-format | ||
4371 | msgid "illegal input sequence at position %ld" | ||
4372 | msgstr "hi ha una seqüència d’entrada no vàlida a la posició %ld" | ||
4373 | |||
4374 | -#: iconv/iconv_prog.c:541 | ||
4375 | +#: iconv/iconv_prog.c:543 | ||
4376 | #, c-format | ||
4377 | msgid "internal error (illegal descriptor)" | ||
4378 | msgstr "error intern (el descriptor no és vàlid)" | ||
4379 | |||
4380 | -#: iconv/iconv_prog.c:544 | ||
4381 | +#: iconv/iconv_prog.c:546 | ||
4382 | #, c-format | ||
4383 | msgid "unknown iconv() error %d" | ||
4384 | msgstr "error desconegut %d a iconv()" | ||
4385 | |||
4386 | -#: iconv/iconv_prog.c:790 | ||
4387 | +#: iconv/iconv_prog.c:791 | ||
4388 | msgid "" | ||
4389 | "The following list contain all the coded character sets known. This does\n" | ||
4390 | "not necessarily mean that all combinations of these names can be used for\n" | ||
4391 | @@ -1501,43 +1604,43 @@ | ||
4392 | |||
4393 | # ivb (2001/10/28) | ||
4394 | # ivb Ostres, açò pareix una frase del M-x spook! | ||
4395 | -#: iconv/iconvconfig.c:110 | ||
4396 | +#: iconv/iconvconfig.c:109 | ||
4397 | msgid "Create fastloading iconv module configuration file." | ||
4398 | msgstr "Crea un fitxer de configuració de càrrega ràpida per al mòdul iconv." | ||
4399 | |||
4400 | -#: iconv/iconvconfig.c:114 | ||
4401 | +#: iconv/iconvconfig.c:113 | ||
4402 | msgid "[DIR...]" | ||
4403 | msgstr " [DIRECTORI…]" | ||
4404 | |||
4405 | # És un missatge d'ajuda. ivb | ||
4406 | -#: iconv/iconvconfig.c:127 | ||
4407 | +#: iconv/iconvconfig.c:126 | ||
4408 | msgid "Prefix used for all file accesses" | ||
4409 | msgstr "Prefix a emprar per a tots els accessos a fitxer." | ||
4410 | |||
4411 | -#: iconv/iconvconfig.c:128 | ||
4412 | +#: iconv/iconvconfig.c:127 | ||
4413 | msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)" | ||
4414 | msgstr "Desa l’eixida en el FITXER en lloc de la ubicació d’instaŀlació («--prefix» no s’aplica al FITXER)." | ||
4415 | |||
4416 | -#: iconv/iconvconfig.c:132 | ||
4417 | +#: iconv/iconvconfig.c:131 | ||
4418 | msgid "Do not search standard directories, only those on the command line" | ||
4419 | msgstr "No cerca en els directoris estàndard, només en els indicats a la línia d’ordres." | ||
4420 | |||
4421 | -#: iconv/iconvconfig.c:301 | ||
4422 | +#: iconv/iconvconfig.c:303 | ||
4423 | #, c-format | ||
4424 | msgid "Directory arguments required when using --nostdlib" | ||
4425 | msgstr "Cal proporcionar arguments directori en emprar «--nostdlib»." | ||
4426 | |||
4427 | -#: iconv/iconvconfig.c:343 locale/programs/localedef.c:291 | ||
4428 | +#: iconv/iconvconfig.c:345 locale/programs/localedef.c:287 | ||
4429 | #, c-format | ||
4430 | msgid "no output file produced because warnings were issued" | ||
4431 | msgstr "no s’ha generat el fitxer d’eixida perquè s’han produït avisos" | ||
4432 | |||
4433 | -#: iconv/iconvconfig.c:429 | ||
4434 | +#: iconv/iconvconfig.c:434 | ||
4435 | #, c-format | ||
4436 | msgid "while inserting in search tree" | ||
4437 | msgstr "en inserir a l’arbre de cerca" | ||
4438 | |||
4439 | -#: iconv/iconvconfig.c:1238 | ||
4440 | +#: iconv/iconvconfig.c:1243 | ||
4441 | #, c-format | ||
4442 | msgid "cannot generate output file" | ||
4443 | msgstr "no s’ha pogut generar el fitxer d’eixida" | ||
4444 | @@ -1624,217 +1727,217 @@ | ||
4445 | msgid "Unknown .netrc keyword %s" | ||
4446 | msgstr "la paraula clau «%s» de «.netrc» no és coneguda" | ||
4447 | |||
4448 | -#: libidn/nfkc.c:464 | ||
4449 | +#: libidn/nfkc.c:462 | ||
4450 | msgid "Character out of range for UTF-8" | ||
4451 | msgstr "el caràcter és fora de rang respecte UTF-8" | ||
4452 | |||
4453 | -#: locale/programs/charmap-dir.c:59 | ||
4454 | +#: locale/programs/charmap-dir.c:58 | ||
4455 | #, c-format | ||
4456 | msgid "cannot read character map directory `%s'" | ||
4457 | msgstr "no s’ha pogut llegir el directori «%s» de taules de caràcters" | ||
4458 | |||
4459 | -#: locale/programs/charmap.c:138 | ||
4460 | +#: locale/programs/charmap.c:137 | ||
4461 | #, c-format | ||
4462 | msgid "character map file `%s' not found" | ||
4463 | msgstr "no s’ha trobat el fitxer «%s» de mapa de caràcters" | ||
4464 | |||
4465 | -#: locale/programs/charmap.c:195 | ||
4466 | +#: locale/programs/charmap.c:194 | ||
4467 | #, c-format | ||
4468 | msgid "default character map file `%s' not found" | ||
4469 | msgstr "no s’ha trobat el fitxer «%s» de mapa de caràcters per defecte" | ||
4470 | |||
4471 | -#: locale/programs/charmap.c:258 | ||
4472 | +#: locale/programs/charmap.c:257 | ||
4473 | #, c-format | ||
4474 | msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n" | ||
4475 | msgstr "el mapa de caràcters «%s» no és compatible amb ASCII, el locale no és conforme amb ISO C\n" | ||
4476 | |||
4477 | # La variable porta els símbols inclosos. ivb | ||
4478 | -#: locale/programs/charmap.c:337 | ||
4479 | +#: locale/programs/charmap.c:336 | ||
4480 | #, c-format | ||
4481 | msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n" | ||
4482 | msgstr "%s: <mb_cur_max> ha de ser major que <mb_cur_min>\n" | ||
4483 | |||
4484 | -#: locale/programs/charmap.c:357 locale/programs/charmap.c:374 | ||
4485 | -#: locale/programs/repertoire.c:174 | ||
4486 | +#: locale/programs/charmap.c:356 locale/programs/charmap.c:373 | ||
4487 | +#: locale/programs/repertoire.c:173 | ||
4488 | #, c-format | ||
4489 | msgid "syntax error in prolog: %s" | ||
4490 | msgstr "error de sintaxi al pròleg: %s" | ||
4491 | |||
4492 | -#: locale/programs/charmap.c:358 | ||
4493 | +#: locale/programs/charmap.c:357 | ||
4494 | msgid "invalid definition" | ||
4495 | msgstr "la definició no és vàlida" | ||
4496 | |||
4497 | -#: locale/programs/charmap.c:375 locale/programs/locfile.c:126 | ||
4498 | -#: locale/programs/locfile.c:153 locale/programs/repertoire.c:175 | ||
4499 | +#: locale/programs/charmap.c:374 locale/programs/locfile.c:125 | ||
4500 | +#: locale/programs/locfile.c:152 locale/programs/repertoire.c:174 | ||
4501 | msgid "bad argument" | ||
4502 | msgstr "l’argument no és vàlid" | ||
4503 | |||
4504 | # Les variables inclouen els símbols «<>». ivb | ||
4505 | -#: locale/programs/charmap.c:403 | ||
4506 | +#: locale/programs/charmap.c:402 | ||
4507 | #, c-format | ||
4508 | msgid "duplicate definition of <%s>" | ||
4509 | msgstr "la definició de <%s> és duplicada" | ||
4510 | |||
4511 | -#: locale/programs/charmap.c:410 | ||
4512 | +#: locale/programs/charmap.c:409 | ||
4513 | #, c-format | ||
4514 | msgid "value for <%s> must be 1 or greater" | ||
4515 | msgstr "el valor de <%s> ha de ser 1 o major" | ||
4516 | |||
4517 | -#: locale/programs/charmap.c:422 | ||
4518 | +#: locale/programs/charmap.c:421 | ||
4519 | #, c-format | ||
4520 | msgid "value of <%s> must be greater or equal than the value of <%s>" | ||
4521 | msgstr "el valor de «%s» ha de ser major o igual que el de «%s»" | ||
4522 | |||
4523 | -#: locale/programs/charmap.c:445 locale/programs/repertoire.c:183 | ||
4524 | +#: locale/programs/charmap.c:444 locale/programs/repertoire.c:182 | ||
4525 | #, c-format | ||
4526 | msgid "argument to <%s> must be a single character" | ||
4527 | msgstr "l’argument de «%s» ha de ser un sol caràcter" | ||
4528 | |||
4529 | -#: locale/programs/charmap.c:471 | ||
4530 | +#: locale/programs/charmap.c:470 | ||
4531 | msgid "character sets with locking states are not supported" | ||
4532 | msgstr "l’ús de jocs de caràcters amb estats blocadors no està implementat" | ||
4533 | |||
4534 | # El primer és el nom d'una variable (en majúscules). ivb | ||
4535 | -#: locale/programs/charmap.c:498 locale/programs/charmap.c:552 | ||
4536 | -#: locale/programs/charmap.c:584 locale/programs/charmap.c:678 | ||
4537 | -#: locale/programs/charmap.c:733 locale/programs/charmap.c:774 | ||
4538 | -#: locale/programs/charmap.c:815 | ||
4539 | +#: locale/programs/charmap.c:497 locale/programs/charmap.c:551 | ||
4540 | +#: locale/programs/charmap.c:583 locale/programs/charmap.c:677 | ||
4541 | +#: locale/programs/charmap.c:732 locale/programs/charmap.c:773 | ||
4542 | +#: locale/programs/charmap.c:814 | ||
4543 | #, c-format | ||
4544 | msgid "syntax error in %s definition: %s" | ||
4545 | msgstr "error de sintaxi a la definició %s: %s" | ||
4546 | |||
4547 | -#: locale/programs/charmap.c:499 locale/programs/charmap.c:679 | ||
4548 | -#: locale/programs/charmap.c:775 locale/programs/repertoire.c:230 | ||
4549 | +#: locale/programs/charmap.c:498 locale/programs/charmap.c:678 | ||
4550 | +#: locale/programs/charmap.c:774 locale/programs/repertoire.c:229 | ||
4551 | msgid "no symbolic name given" | ||
4552 | msgstr "no s’ha indicat un nom simbòlic" | ||
4553 | |||
4554 | -#: locale/programs/charmap.c:553 | ||
4555 | +#: locale/programs/charmap.c:552 | ||
4556 | msgid "invalid encoding given" | ||
4557 | msgstr "la codificació especificada no és vàlida" | ||
4558 | |||
4559 | -#: locale/programs/charmap.c:562 | ||
4560 | +#: locale/programs/charmap.c:561 | ||
4561 | msgid "too few bytes in character encoding" | ||
4562 | msgstr "manquen octets a la codificació del caràcter" | ||
4563 | |||
4564 | -#: locale/programs/charmap.c:564 | ||
4565 | +#: locale/programs/charmap.c:563 | ||
4566 | msgid "too many bytes in character encoding" | ||
4567 | msgstr "sobren octets a la codificació del caràcter" | ||
4568 | |||
4569 | -#: locale/programs/charmap.c:586 locale/programs/charmap.c:734 | ||
4570 | -#: locale/programs/charmap.c:817 locale/programs/repertoire.c:296 | ||
4571 | +#: locale/programs/charmap.c:585 locale/programs/charmap.c:733 | ||
4572 | +#: locale/programs/charmap.c:816 locale/programs/repertoire.c:295 | ||
4573 | msgid "no symbolic name given for end of range" | ||
4574 | msgstr "no s’ha indicat un nom simbòlic per a la fi del rang" | ||
4575 | |||
4576 | -#: locale/programs/charmap.c:610 locale/programs/ld-address.c:602 | ||
4577 | -#: locale/programs/ld-collate.c:2769 locale/programs/ld-collate.c:3927 | ||
4578 | -#: locale/programs/ld-ctype.c:2257 locale/programs/ld-ctype.c:3009 | ||
4579 | -#: locale/programs/ld-identification.c:452 | ||
4580 | -#: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332 | ||
4581 | -#: locale/programs/ld-monetary.c:943 locale/programs/ld-name.c:307 | ||
4582 | -#: locale/programs/ld-numeric.c:368 locale/programs/ld-paper.c:241 | ||
4583 | -#: locale/programs/ld-telephone.c:313 locale/programs/ld-time.c:1221 | ||
4584 | -#: locale/programs/repertoire.c:313 | ||
4585 | +#: locale/programs/charmap.c:609 locale/programs/ld-address.c:601 | ||
4586 | +#: locale/programs/ld-collate.c:2766 locale/programs/ld-collate.c:3924 | ||
4587 | +#: locale/programs/ld-ctype.c:2255 locale/programs/ld-ctype.c:3006 | ||
4588 | +#: locale/programs/ld-identification.c:451 | ||
4589 | +#: locale/programs/ld-measurement.c:237 locale/programs/ld-messages.c:331 | ||
4590 | +#: locale/programs/ld-monetary.c:942 locale/programs/ld-name.c:306 | ||
4591 | +#: locale/programs/ld-numeric.c:367 locale/programs/ld-paper.c:240 | ||
4592 | +#: locale/programs/ld-telephone.c:312 locale/programs/ld-time.c:1220 | ||
4593 | +#: locale/programs/repertoire.c:312 | ||
4594 | #, c-format | ||
4595 | msgid "%1$s: definition does not end with `END %1$s'" | ||
4596 | msgstr "%1$s: la definició no acaba en «END %1$s»" | ||
4597 | |||
4598 | -#: locale/programs/charmap.c:643 | ||
4599 | +#: locale/programs/charmap.c:642 | ||
4600 | msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" | ||
4601 | msgstr "només es permeten definicions WIDTH després de la definició CHARMAP" | ||
4602 | |||
4603 | # El primer és el nom d'una variable (en majúscules). ivb | ||
4604 | -#: locale/programs/charmap.c:651 locale/programs/charmap.c:714 | ||
4605 | +#: locale/programs/charmap.c:650 locale/programs/charmap.c:713 | ||
4606 | #, c-format | ||
4607 | msgid "value for %s must be an integer" | ||
4608 | msgstr "el valor de %s ha de ser un enter" | ||
4609 | |||
4610 | -#: locale/programs/charmap.c:842 | ||
4611 | +#: locale/programs/charmap.c:841 | ||
4612 | #, c-format | ||
4613 | msgid "%s: error in state machine" | ||
4614 | msgstr "%s: error a la màquina d’estats" | ||
4615 | |||
4616 | -#: locale/programs/charmap.c:850 locale/programs/ld-address.c:618 | ||
4617 | -#: locale/programs/ld-collate.c:2766 locale/programs/ld-collate.c:4120 | ||
4618 | -#: locale/programs/ld-ctype.c:2254 locale/programs/ld-ctype.c:3026 | ||
4619 | -#: locale/programs/ld-identification.c:468 | ||
4620 | -#: locale/programs/ld-measurement.c:254 locale/programs/ld-messages.c:348 | ||
4621 | -#: locale/programs/ld-monetary.c:959 locale/programs/ld-name.c:323 | ||
4622 | -#: locale/programs/ld-numeric.c:384 locale/programs/ld-paper.c:257 | ||
4623 | -#: locale/programs/ld-telephone.c:329 locale/programs/ld-time.c:1237 | ||
4624 | -#: locale/programs/locfile.c:826 locale/programs/repertoire.c:324 | ||
4625 | +#: locale/programs/charmap.c:849 locale/programs/ld-address.c:617 | ||
4626 | +#: locale/programs/ld-collate.c:2763 locale/programs/ld-collate.c:4117 | ||
4627 | +#: locale/programs/ld-ctype.c:2252 locale/programs/ld-ctype.c:3023 | ||
4628 | +#: locale/programs/ld-identification.c:467 | ||
4629 | +#: locale/programs/ld-measurement.c:253 locale/programs/ld-messages.c:347 | ||
4630 | +#: locale/programs/ld-monetary.c:958 locale/programs/ld-name.c:322 | ||
4631 | +#: locale/programs/ld-numeric.c:383 locale/programs/ld-paper.c:256 | ||
4632 | +#: locale/programs/ld-telephone.c:328 locale/programs/ld-time.c:1236 | ||
4633 | +#: locale/programs/locfile.c:825 locale/programs/repertoire.c:323 | ||
4634 | #, c-format | ||
4635 | msgid "%s: premature end of file" | ||
4636 | msgstr "%s: final prematur del fitxer" | ||
4637 | |||
4638 | -#: locale/programs/charmap.c:869 locale/programs/charmap.c:880 | ||
4639 | +#: locale/programs/charmap.c:868 locale/programs/charmap.c:879 | ||
4640 | #, c-format | ||
4641 | msgid "unknown character `%s'" | ||
4642 | msgstr "el caràcter «%s» no és conegut" | ||
4643 | |||
4644 | -#: locale/programs/charmap.c:888 | ||
4645 | +#: locale/programs/charmap.c:887 | ||
4646 | #, c-format | ||
4647 | msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" | ||
4648 | msgstr "el nombre d’octets de les seqüències d’inici i final del rang no són iguals: %d i %d" | ||
4649 | |||
4650 | -#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3046 | ||
4651 | -#: locale/programs/repertoire.c:419 | ||
4652 | +#: locale/programs/charmap.c:992 locale/programs/ld-collate.c:3043 | ||
4653 | +#: locale/programs/repertoire.c:418 | ||
4654 | msgid "invalid names for character range" | ||
4655 | msgstr "els noms del rang de caràcters no són vàlids" | ||
4656 | |||
4657 | # ivb (2001/11/05) | ||
4658 | # ivb El rang també pot contenir dígits. El text original pot fer pensar | ||
4659 | # ivb que _només_ s'accepten lletres majúscules. | ||
4660 | -#: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431 | ||
4661 | +#: locale/programs/charmap.c:1004 locale/programs/repertoire.c:430 | ||
4662 | msgid "hexadecimal range format should use only capital characters" | ||
4663 | msgstr "les lletres emprades en un rang amb format hexadecimal han de ser majúscules" | ||
4664 | |||
4665 | -#: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449 | ||
4666 | +#: locale/programs/charmap.c:1022 locale/programs/repertoire.c:448 | ||
4667 | #, c-format | ||
4668 | msgid "<%s> and <%s> are invalid names for range" | ||
4669 | msgstr "<%s> i <%s> no són noms de rang vàlids" | ||
4670 | |||
4671 | -#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456 | ||
4672 | +#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:455 | ||
4673 | msgid "upper limit in range is smaller than lower limit" | ||
4674 | msgstr "el límit superior del rang és menor que l’inferior" | ||
4675 | |||
4676 | -#: locale/programs/charmap.c:1087 | ||
4677 | +#: locale/programs/charmap.c:1086 | ||
4678 | msgid "resulting bytes for range not representable." | ||
4679 | msgstr "els octets resultants del rang no són representables" | ||
4680 | |||
4681 | -#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1558 | ||
4682 | -#: locale/programs/ld-ctype.c:421 locale/programs/ld-identification.c:133 | ||
4683 | -#: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 | ||
4684 | -#: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:94 | ||
4685 | -#: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91 | ||
4686 | -#: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159 | ||
4687 | +#: locale/programs/ld-address.c:134 locale/programs/ld-collate.c:1557 | ||
4688 | +#: locale/programs/ld-ctype.c:420 locale/programs/ld-identification.c:132 | ||
4689 | +#: locale/programs/ld-measurement.c:93 locale/programs/ld-messages.c:96 | ||
4690 | +#: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:93 | ||
4691 | +#: locale/programs/ld-numeric.c:97 locale/programs/ld-paper.c:90 | ||
4692 | +#: locale/programs/ld-telephone.c:93 locale/programs/ld-time.c:158 | ||
4693 | #, c-format | ||
4694 | msgid "No definition for %s category found" | ||
4695 | msgstr "no s’ha trobat cap definició de la categoria «%s»" | ||
4696 | |||
4697 | -#: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184 | ||
4698 | -#: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231 | ||
4699 | -#: locale/programs/ld-address.c:303 locale/programs/ld-address.c:322 | ||
4700 | -#: locale/programs/ld-address.c:335 locale/programs/ld-identification.c:146 | ||
4701 | -#: locale/programs/ld-measurement.c:105 locale/programs/ld-monetary.c:206 | ||
4702 | -#: locale/programs/ld-monetary.c:250 locale/programs/ld-monetary.c:266 | ||
4703 | -#: locale/programs/ld-monetary.c:278 locale/programs/ld-name.c:105 | ||
4704 | -#: locale/programs/ld-name.c:142 locale/programs/ld-numeric.c:112 | ||
4705 | -#: locale/programs/ld-numeric.c:126 locale/programs/ld-paper.c:102 | ||
4706 | -#: locale/programs/ld-paper.c:111 locale/programs/ld-telephone.c:105 | ||
4707 | -#: locale/programs/ld-telephone.c:162 locale/programs/ld-time.c:175 | ||
4708 | -#: locale/programs/ld-time.c:196 | ||
4709 | +#: locale/programs/ld-address.c:145 locale/programs/ld-address.c:183 | ||
4710 | +#: locale/programs/ld-address.c:201 locale/programs/ld-address.c:230 | ||
4711 | +#: locale/programs/ld-address.c:302 locale/programs/ld-address.c:321 | ||
4712 | +#: locale/programs/ld-address.c:334 locale/programs/ld-identification.c:145 | ||
4713 | +#: locale/programs/ld-measurement.c:104 locale/programs/ld-monetary.c:205 | ||
4714 | +#: locale/programs/ld-monetary.c:249 locale/programs/ld-monetary.c:265 | ||
4715 | +#: locale/programs/ld-monetary.c:277 locale/programs/ld-name.c:104 | ||
4716 | +#: locale/programs/ld-name.c:141 locale/programs/ld-numeric.c:111 | ||
4717 | +#: locale/programs/ld-numeric.c:125 locale/programs/ld-paper.c:101 | ||
4718 | +#: locale/programs/ld-paper.c:110 locale/programs/ld-telephone.c:104 | ||
4719 | +#: locale/programs/ld-telephone.c:161 locale/programs/ld-time.c:174 | ||
4720 | +#: locale/programs/ld-time.c:195 | ||
4721 | #, c-format | ||
4722 | msgid "%s: field `%s' not defined" | ||
4723 | msgstr "%s: no s’ha definit el camp «%s»" | ||
4724 | |||
4725 | -#: locale/programs/ld-address.c:158 locale/programs/ld-address.c:210 | ||
4726 | -#: locale/programs/ld-address.c:240 locale/programs/ld-address.c:278 | ||
4727 | -#: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117 | ||
4728 | +#: locale/programs/ld-address.c:157 locale/programs/ld-address.c:209 | ||
4729 | +#: locale/programs/ld-address.c:239 locale/programs/ld-address.c:277 | ||
4730 | +#: locale/programs/ld-name.c:116 locale/programs/ld-telephone.c:116 | ||
4731 | #, c-format | ||
4732 | msgid "%s: field `%s' must not be empty" | ||
4733 | msgstr "%s: el camp «%s» no ha d’estar buit" | ||
4734 | |||
4735 | -#: locale/programs/ld-address.c:170 | ||
4736 | +#: locale/programs/ld-address.c:169 | ||
4737 | #, c-format | ||
4738 | msgid "%s: invalid escape `%%%c' sequence in field `%s'" | ||
4739 | msgstr "%s: la seqüència d’escapada «%%%c» del camp «%s» no és vàlida" | ||
4740 | @@ -1843,744 +1946,744 @@ | ||
4741 | # ivb Pel que sembla hi ha un codi terminològic de llengua i un | ||
4742 | # ivb codi bibliogràfic de llengua. | ||
4743 | # ivb http://anubis.dkuug.dk/i18n/iso-639-2-dis.txt | ||
4744 | -#: locale/programs/ld-address.c:221 | ||
4745 | +#: locale/programs/ld-address.c:220 | ||
4746 | #, c-format | ||
4747 | msgid "%s: terminology language code `%s' not defined" | ||
4748 | msgstr "%s: no s’ha definit el codi terminològic de llengua «%s»" | ||
4749 | |||
4750 | -#: locale/programs/ld-address.c:246 | ||
4751 | +#: locale/programs/ld-address.c:245 | ||
4752 | #, c-format | ||
4753 | msgid "%s: field `%s' must not be defined" | ||
4754 | msgstr "%s: no s’ha de definir el camp «%s»" | ||
4755 | |||
4756 | -#: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289 | ||
4757 | +#: locale/programs/ld-address.c:259 locale/programs/ld-address.c:288 | ||
4758 | #, c-format | ||
4759 | msgid "%s: language abbreviation `%s' not defined" | ||
4760 | msgstr "%s: no s’ha definit l’abreviatura de llengua «%s»" | ||
4761 | |||
4762 | -#: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295 | ||
4763 | -#: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341 | ||
4764 | +#: locale/programs/ld-address.c:266 locale/programs/ld-address.c:294 | ||
4765 | +#: locale/programs/ld-address.c:328 locale/programs/ld-address.c:340 | ||
4766 | #, c-format | ||
4767 | msgid "%s: `%s' value does not match `%s' value" | ||
4768 | msgstr "%s: el valor de «%s» no concorda amb el valor de «%s»" | ||
4769 | |||
4770 | -#: locale/programs/ld-address.c:314 | ||
4771 | +#: locale/programs/ld-address.c:313 | ||
4772 | #, c-format | ||
4773 | msgid "%s: numeric country code `%d' not valid" | ||
4774 | msgstr "%s: el codi numèric de país «%d» no és vàlid" | ||
4775 | |||
4776 | -#: locale/programs/ld-address.c:510 locale/programs/ld-address.c:547 | ||
4777 | -#: locale/programs/ld-address.c:585 locale/programs/ld-ctype.c:2633 | ||
4778 | -#: locale/programs/ld-identification.c:364 | ||
4779 | -#: locale/programs/ld-measurement.c:221 locale/programs/ld-messages.c:301 | ||
4780 | -#: locale/programs/ld-monetary.c:701 locale/programs/ld-monetary.c:736 | ||
4781 | -#: locale/programs/ld-monetary.c:777 locale/programs/ld-name.c:280 | ||
4782 | -#: locale/programs/ld-numeric.c:263 locale/programs/ld-paper.c:224 | ||
4783 | -#: locale/programs/ld-telephone.c:288 locale/programs/ld-time.c:1126 | ||
4784 | -#: locale/programs/ld-time.c:1168 | ||
4785 | +#: locale/programs/ld-address.c:509 locale/programs/ld-address.c:546 | ||
4786 | +#: locale/programs/ld-address.c:584 locale/programs/ld-ctype.c:2630 | ||
4787 | +#: locale/programs/ld-identification.c:363 | ||
4788 | +#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:300 | ||
4789 | +#: locale/programs/ld-monetary.c:700 locale/programs/ld-monetary.c:735 | ||
4790 | +#: locale/programs/ld-monetary.c:776 locale/programs/ld-name.c:279 | ||
4791 | +#: locale/programs/ld-numeric.c:262 locale/programs/ld-paper.c:223 | ||
4792 | +#: locale/programs/ld-telephone.c:287 locale/programs/ld-time.c:1125 | ||
4793 | +#: locale/programs/ld-time.c:1167 | ||
4794 | #, c-format | ||
4795 | msgid "%s: field `%s' declared more than once" | ||
4796 | msgstr "%s: el camp «%s» ha estat declarat més d’una volta" | ||
4797 | |||
4798 | -#: locale/programs/ld-address.c:514 locale/programs/ld-address.c:552 | ||
4799 | -#: locale/programs/ld-identification.c:368 locale/programs/ld-messages.c:311 | ||
4800 | -#: locale/programs/ld-monetary.c:705 locale/programs/ld-monetary.c:740 | ||
4801 | -#: locale/programs/ld-name.c:284 locale/programs/ld-numeric.c:267 | ||
4802 | -#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:1020 | ||
4803 | -#: locale/programs/ld-time.c:1089 locale/programs/ld-time.c:1131 | ||
4804 | +#: locale/programs/ld-address.c:513 locale/programs/ld-address.c:551 | ||
4805 | +#: locale/programs/ld-identification.c:367 locale/programs/ld-messages.c:310 | ||
4806 | +#: locale/programs/ld-monetary.c:704 locale/programs/ld-monetary.c:739 | ||
4807 | +#: locale/programs/ld-name.c:283 locale/programs/ld-numeric.c:266 | ||
4808 | +#: locale/programs/ld-telephone.c:291 locale/programs/ld-time.c:1019 | ||
4809 | +#: locale/programs/ld-time.c:1088 locale/programs/ld-time.c:1130 | ||
4810 | #, c-format | ||
4811 | msgid "%s: unknown character in field `%s'" | ||
4812 | msgstr "%s: el camp «%s» conté un caràcter desconegut" | ||
4813 | |||
4814 | -#: locale/programs/ld-address.c:599 locale/programs/ld-collate.c:3925 | ||
4815 | -#: locale/programs/ld-ctype.c:3006 locale/programs/ld-identification.c:449 | ||
4816 | -#: locale/programs/ld-measurement.c:235 locale/programs/ld-messages.c:330 | ||
4817 | -#: locale/programs/ld-monetary.c:941 locale/programs/ld-name.c:305 | ||
4818 | -#: locale/programs/ld-numeric.c:366 locale/programs/ld-paper.c:239 | ||
4819 | -#: locale/programs/ld-telephone.c:311 locale/programs/ld-time.c:1219 | ||
4820 | +#: locale/programs/ld-address.c:598 locale/programs/ld-collate.c:3922 | ||
4821 | +#: locale/programs/ld-ctype.c:3003 locale/programs/ld-identification.c:448 | ||
4822 | +#: locale/programs/ld-measurement.c:234 locale/programs/ld-messages.c:329 | ||
4823 | +#: locale/programs/ld-monetary.c:940 locale/programs/ld-name.c:304 | ||
4824 | +#: locale/programs/ld-numeric.c:365 locale/programs/ld-paper.c:238 | ||
4825 | +#: locale/programs/ld-telephone.c:310 locale/programs/ld-time.c:1218 | ||
4826 | #, c-format | ||
4827 | msgid "%s: incomplete `END' line" | ||
4828 | msgstr "%s: la línia «END» és incompleta" | ||
4829 | |||
4830 | -#: locale/programs/ld-address.c:609 locale/programs/ld-collate.c:544 | ||
4831 | -#: locale/programs/ld-collate.c:596 locale/programs/ld-collate.c:892 | ||
4832 | -#: locale/programs/ld-collate.c:905 locale/programs/ld-collate.c:2735 | ||
4833 | -#: locale/programs/ld-collate.c:2756 locale/programs/ld-collate.c:4110 | ||
4834 | -#: locale/programs/ld-ctype.c:1985 locale/programs/ld-ctype.c:2244 | ||
4835 | -#: locale/programs/ld-ctype.c:2831 locale/programs/ld-ctype.c:3017 | ||
4836 | -#: locale/programs/ld-identification.c:459 | ||
4837 | -#: locale/programs/ld-measurement.c:245 locale/programs/ld-messages.c:339 | ||
4838 | -#: locale/programs/ld-monetary.c:950 locale/programs/ld-name.c:314 | ||
4839 | -#: locale/programs/ld-numeric.c:375 locale/programs/ld-paper.c:248 | ||
4840 | -#: locale/programs/ld-telephone.c:320 locale/programs/ld-time.c:1228 | ||
4841 | +#: locale/programs/ld-address.c:608 locale/programs/ld-collate.c:543 | ||
4842 | +#: locale/programs/ld-collate.c:595 locale/programs/ld-collate.c:891 | ||
4843 | +#: locale/programs/ld-collate.c:904 locale/programs/ld-collate.c:2732 | ||
4844 | +#: locale/programs/ld-collate.c:2753 locale/programs/ld-collate.c:4107 | ||
4845 | +#: locale/programs/ld-ctype.c:1984 locale/programs/ld-ctype.c:2242 | ||
4846 | +#: locale/programs/ld-ctype.c:2828 locale/programs/ld-ctype.c:3014 | ||
4847 | +#: locale/programs/ld-identification.c:458 | ||
4848 | +#: locale/programs/ld-measurement.c:244 locale/programs/ld-messages.c:338 | ||
4849 | +#: locale/programs/ld-monetary.c:949 locale/programs/ld-name.c:313 | ||
4850 | +#: locale/programs/ld-numeric.c:374 locale/programs/ld-paper.c:247 | ||
4851 | +#: locale/programs/ld-telephone.c:319 locale/programs/ld-time.c:1227 | ||
4852 | #, c-format | ||
4853 | msgid "%s: syntax error" | ||
4854 | msgstr "%s: error de sintaxi" | ||
4855 | |||
4856 | -#: locale/programs/ld-collate.c:419 | ||
4857 | +#: locale/programs/ld-collate.c:418 | ||
4858 | #, c-format | ||
4859 | msgid "`%.*s' already defined in charmap" | ||
4860 | msgstr "«%.*s» ja ha estat definit al mapa de caràcters" | ||
4861 | |||
4862 | -#: locale/programs/ld-collate.c:428 | ||
4863 | +#: locale/programs/ld-collate.c:427 | ||
4864 | #, c-format | ||
4865 | msgid "`%.*s' already defined in repertoire" | ||
4866 | msgstr "«%.*s» ja ha estat definit al repertori" | ||
4867 | |||
4868 | -#: locale/programs/ld-collate.c:435 | ||
4869 | +#: locale/programs/ld-collate.c:434 | ||
4870 | #, c-format | ||
4871 | msgid "`%.*s' already defined as collating symbol" | ||
4872 | msgstr "«%.*s» ja ha estat definit com a símbol d’ordenació" | ||
4873 | |||
4874 | -#: locale/programs/ld-collate.c:442 | ||
4875 | +#: locale/programs/ld-collate.c:441 | ||
4876 | #, c-format | ||
4877 | msgid "`%.*s' already defined as collating element" | ||
4878 | msgstr "«%.*s» ja ha estat definit com a element d’ordenació" | ||
4879 | |||
4880 | -#: locale/programs/ld-collate.c:473 locale/programs/ld-collate.c:499 | ||
4881 | +#: locale/programs/ld-collate.c:472 locale/programs/ld-collate.c:498 | ||
4882 | #, c-format | ||
4883 | msgid "%s: `forward' and `backward' are mutually excluding each other" | ||
4884 | msgstr "%s: «forward» i «backward» són mútuament excloents" | ||
4885 | |||
4886 | -#: locale/programs/ld-collate.c:483 locale/programs/ld-collate.c:509 | ||
4887 | -#: locale/programs/ld-collate.c:525 | ||
4888 | +#: locale/programs/ld-collate.c:482 locale/programs/ld-collate.c:508 | ||
4889 | +#: locale/programs/ld-collate.c:524 | ||
4890 | #, c-format | ||
4891 | msgid "%s: `%s' mentioned more than once in definition of weight %d" | ||
4892 | msgstr "%s: s’ha mencionat «%s» més d’una volta a la definició de pes %d" | ||
4893 | |||
4894 | -#: locale/programs/ld-collate.c:581 | ||
4895 | +#: locale/programs/ld-collate.c:580 | ||
4896 | #, c-format | ||
4897 | msgid "%s: too many rules; first entry only had %d" | ||
4898 | msgstr "%s: sobren regles; la primera entrada només en tenia %d" | ||
4899 | |||
4900 | -#: locale/programs/ld-collate.c:617 | ||
4901 | +#: locale/programs/ld-collate.c:616 | ||
4902 | #, c-format | ||
4903 | msgid "%s: not enough sorting rules" | ||
4904 | msgstr "%s: no hi ha suficients regles d’ordenació" | ||
4905 | |||
4906 | -#: locale/programs/ld-collate.c:782 | ||
4907 | +#: locale/programs/ld-collate.c:781 | ||
4908 | #, c-format | ||
4909 | msgid "%s: empty weight string not allowed" | ||
4910 | msgstr "%s: no es permet la cadena buida com a nom de pes" | ||
4911 | |||
4912 | -#: locale/programs/ld-collate.c:877 | ||
4913 | +#: locale/programs/ld-collate.c:876 | ||
4914 | #, c-format | ||
4915 | msgid "%s: weights must use the same ellipsis symbol as the name" | ||
4916 | msgstr "%s: els pesos han d’emprar el mateix símbol d’eŀlipsi que el nom" | ||
4917 | |||
4918 | -#: locale/programs/ld-collate.c:933 | ||
4919 | +#: locale/programs/ld-collate.c:932 | ||
4920 | #, c-format | ||
4921 | msgid "%s: too many values" | ||
4922 | msgstr "%s: sobren valors" | ||
4923 | |||
4924 | -#: locale/programs/ld-collate.c:1053 locale/programs/ld-collate.c:1228 | ||
4925 | +#: locale/programs/ld-collate.c:1052 locale/programs/ld-collate.c:1227 | ||
4926 | #, c-format | ||
4927 | msgid "order for `%.*s' already defined at %s:%Zu" | ||
4928 | msgstr "l’ordre de «%.*s» ja ha estat definit a %s:%Zu" | ||
4929 | |||
4930 | -#: locale/programs/ld-collate.c:1103 | ||
4931 | +#: locale/programs/ld-collate.c:1102 | ||
4932 | #, c-format | ||
4933 | msgid "%s: the start and the end symbol of a range must stand for characters" | ||
4934 | msgstr "%s: els símbols inicial i final d’un rang han de representar caràcters" | ||
4935 | |||
4936 | -#: locale/programs/ld-collate.c:1130 | ||
4937 | +#: locale/programs/ld-collate.c:1129 | ||
4938 | #, c-format | ||
4939 | msgid "%s: byte sequences of first and last character must have the same length" | ||
4940 | msgstr "%s: les seqüències d’octets del primer i darrer caràcter han de tenir la mateixa longitud" | ||
4941 | |||
4942 | -#: locale/programs/ld-collate.c:1172 | ||
4943 | +#: locale/programs/ld-collate.c:1171 | ||
4944 | #, c-format | ||
4945 | msgid "%s: byte sequence of first character of range is not lower than that of the last character" | ||
4946 | msgstr "%s: la seqüència d’octets del primer caràcter del rang no és menor que la del darrer caràcter" | ||
4947 | |||
4948 | -#: locale/programs/ld-collate.c:1297 | ||
4949 | +#: locale/programs/ld-collate.c:1296 | ||
4950 | #, c-format | ||
4951 | msgid "%s: symbolic range ellipsis must not directly follow `order_start'" | ||
4952 | msgstr "%s: un rang simbòlic amb eŀlipsi no pot anar just darrere d’«order_start»" | ||
4953 | |||
4954 | -#: locale/programs/ld-collate.c:1301 | ||
4955 | +#: locale/programs/ld-collate.c:1300 | ||
4956 | #, c-format | ||
4957 | msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" | ||
4958 | msgstr "%s: un rang simbòlic amb eŀlipsi no pot anar just davant d’«order_end»" | ||
4959 | |||
4960 | -#: locale/programs/ld-collate.c:1321 locale/programs/ld-ctype.c:1502 | ||
4961 | +#: locale/programs/ld-collate.c:1320 locale/programs/ld-ctype.c:1501 | ||
4962 | #, c-format | ||
4963 | msgid "`%s' and `%.*s' are not valid names for symbolic range" | ||
4964 | msgstr "«%s» i «%.*s» no són noms vàlids de rangs simbòlics" | ||
4965 | |||
4966 | -#: locale/programs/ld-collate.c:1371 locale/programs/ld-collate.c:3861 | ||
4967 | +#: locale/programs/ld-collate.c:1370 locale/programs/ld-collate.c:3858 | ||
4968 | #, c-format | ||
4969 | msgid "%s: order for `%.*s' already defined at %s:%Zu" | ||
4970 | msgstr "%s: l’ordre de «%.*s» ja ha estat definit a %s:%Zu" | ||
4971 | |||
4972 | -#: locale/programs/ld-collate.c:1380 | ||
4973 | +#: locale/programs/ld-collate.c:1379 | ||
4974 | #, c-format | ||
4975 | msgid "%s: `%s' must be a character" | ||
4976 | msgstr "%s: «%s» ha de ser un caràcter" | ||
4977 | |||
4978 | -#: locale/programs/ld-collate.c:1575 | ||
4979 | +#: locale/programs/ld-collate.c:1574 | ||
4980 | #, c-format | ||
4981 | msgid "%s: `position' must be used for a specific level in all sections or none" | ||
4982 | msgstr "%s: cal emprar «position» per a un nivell específic a totes les seccions o a cap" | ||
4983 | |||
4984 | -#: locale/programs/ld-collate.c:1600 | ||
4985 | +#: locale/programs/ld-collate.c:1599 | ||
4986 | #, c-format | ||
4987 | msgid "symbol `%s' not defined" | ||
4988 | msgstr "el símbol «%s» no ha estat definit" | ||
4989 | |||
4990 | -#: locale/programs/ld-collate.c:1676 locale/programs/ld-collate.c:1782 | ||
4991 | +#: locale/programs/ld-collate.c:1675 locale/programs/ld-collate.c:1781 | ||
4992 | #, c-format | ||
4993 | msgid "symbol `%s' has the same encoding as" | ||
4994 | msgstr "el símbol «%s» té la mateixa codificació que" | ||
4995 | |||
4996 | -#: locale/programs/ld-collate.c:1680 locale/programs/ld-collate.c:1786 | ||
4997 | +#: locale/programs/ld-collate.c:1679 locale/programs/ld-collate.c:1785 | ||
4998 | #, c-format | ||
4999 | msgid "symbol `%s'" | ||
5000 | msgstr "el símbol «%s»" | ||
5001 | |||
5002 | -#: locale/programs/ld-collate.c:1828 | ||
5003 | +#: locale/programs/ld-collate.c:1827 | ||
5004 | #, c-format | ||
5005 | msgid "no definition of `UNDEFINED'" | ||
5006 | msgstr "no s’ha definit «UNDEFINED»" | ||
5007 | |||
5008 | -#: locale/programs/ld-collate.c:1857 | ||
5009 | +#: locale/programs/ld-collate.c:1856 | ||
5010 | #, c-format | ||
5011 | msgid "too many errors; giving up" | ||
5012 | msgstr "hi ha massa errors: s’abandona" | ||
5013 | |||
5014 | -#: locale/programs/ld-collate.c:2661 locale/programs/ld-collate.c:4049 | ||
5015 | +#: locale/programs/ld-collate.c:2658 locale/programs/ld-collate.c:4046 | ||
5016 | #, c-format | ||
5017 | msgid "%s: nested conditionals not supported" | ||
5018 | msgstr "%s: no es permeten els condicionals niats" | ||
5019 | |||
5020 | -#: locale/programs/ld-collate.c:2679 | ||
5021 | +#: locale/programs/ld-collate.c:2676 | ||
5022 | #, c-format | ||
5023 | msgid "%s: more then one 'else'" | ||
5024 | msgstr "%s: hi ha més d’una clàusula «else»" | ||
5025 | |||
5026 | -#: locale/programs/ld-collate.c:2854 | ||
5027 | +#: locale/programs/ld-collate.c:2851 | ||
5028 | #, c-format | ||
5029 | msgid "%s: duplicate definition of `%s'" | ||
5030 | msgstr "%s: la definició de «%s» és duplicada" | ||
5031 | |||
5032 | -#: locale/programs/ld-collate.c:2890 | ||
5033 | +#: locale/programs/ld-collate.c:2887 | ||
5034 | #, c-format | ||
5035 | msgid "%s: duplicate declaration of section `%s'" | ||
5036 | msgstr "%s: la declaració de la secció «%s» és duplicada" | ||
5037 | |||
5038 | -#: locale/programs/ld-collate.c:3026 | ||
5039 | +#: locale/programs/ld-collate.c:3023 | ||
5040 | #, c-format | ||
5041 | msgid "%s: unknown character in collating symbol name" | ||
5042 | msgstr "%s: el nom del símbol d’ordenació conté un caràcter desconegut" | ||
5043 | |||
5044 | -#: locale/programs/ld-collate.c:3155 | ||
5045 | +#: locale/programs/ld-collate.c:3152 | ||
5046 | #, c-format | ||
5047 | msgid "%s: unknown character in equivalent definition name" | ||
5048 | msgstr "%s: el nom de la definició equivalent conté un caràcter desconegut" | ||
5049 | |||
5050 | -#: locale/programs/ld-collate.c:3166 | ||
5051 | +#: locale/programs/ld-collate.c:3163 | ||
5052 | #, c-format | ||
5053 | msgid "%s: unknown character in equivalent definition value" | ||
5054 | msgstr "%s: el valor de la definició equivalent conté un caràcter desconegut" | ||
5055 | |||
5056 | -#: locale/programs/ld-collate.c:3176 | ||
5057 | +#: locale/programs/ld-collate.c:3173 | ||
5058 | #, c-format | ||
5059 | msgid "%s: unknown symbol `%s' in equivalent definition" | ||
5060 | msgstr "%s: la definició equivalent conté el símbol desconegut «%s»" | ||
5061 | |||
5062 | -#: locale/programs/ld-collate.c:3185 | ||
5063 | +#: locale/programs/ld-collate.c:3182 | ||
5064 | msgid "error while adding equivalent collating symbol" | ||
5065 | msgstr "error en afegir un símbol d’ordenació equivalent" | ||
5066 | |||
5067 | -#: locale/programs/ld-collate.c:3223 | ||
5068 | +#: locale/programs/ld-collate.c:3220 | ||
5069 | #, c-format | ||
5070 | msgid "duplicate definition of script `%s'" | ||
5071 | msgstr "la definició de l’escriptura «%s» és duplicada" | ||
5072 | |||
5073 | -#: locale/programs/ld-collate.c:3271 | ||
5074 | +#: locale/programs/ld-collate.c:3268 | ||
5075 | #, c-format | ||
5076 | msgid "%s: unknown section name `%.*s'" | ||
5077 | msgstr "%s: el nom de secció «%.*s» no és conegut" | ||
5078 | |||
5079 | -#: locale/programs/ld-collate.c:3300 | ||
5080 | +#: locale/programs/ld-collate.c:3297 | ||
5081 | #, c-format | ||
5082 | msgid "%s: multiple order definitions for section `%s'" | ||
5083 | msgstr "%s: hi ha múltiples definicions d’ordre de la secció «%s»" | ||
5084 | |||
5085 | -#: locale/programs/ld-collate.c:3328 | ||
5086 | +#: locale/programs/ld-collate.c:3325 | ||
5087 | #, c-format | ||
5088 | msgid "%s: invalid number of sorting rules" | ||
5089 | msgstr "%s: el nombre de regles d’ordenació no és vàlid" | ||
5090 | |||
5091 | -#: locale/programs/ld-collate.c:3355 | ||
5092 | +#: locale/programs/ld-collate.c:3352 | ||
5093 | #, c-format | ||
5094 | msgid "%s: multiple order definitions for unnamed section" | ||
5095 | msgstr "%s: hi ha múltiples definicions d’ordre a la secció sense nom" | ||
5096 | |||
5097 | -#: locale/programs/ld-collate.c:3410 locale/programs/ld-collate.c:3540 | ||
5098 | -#: locale/programs/ld-collate.c:3903 | ||
5099 | +#: locale/programs/ld-collate.c:3407 locale/programs/ld-collate.c:3537 | ||
5100 | +#: locale/programs/ld-collate.c:3900 | ||
5101 | #, c-format | ||
5102 | msgid "%s: missing `order_end' keyword" | ||
5103 | msgstr "%s: manca la paraula clau «order_end»" | ||
5104 | |||
5105 | -#: locale/programs/ld-collate.c:3473 | ||
5106 | +#: locale/programs/ld-collate.c:3470 | ||
5107 | #, c-format | ||
5108 | msgid "%s: order for collating symbol %.*s not yet defined" | ||
5109 | msgstr "%s: l’ordre del símbol d’ordenació «%.*s» encara no ha estat definit" | ||
5110 | |||
5111 | -#: locale/programs/ld-collate.c:3491 | ||
5112 | +#: locale/programs/ld-collate.c:3488 | ||
5113 | #, c-format | ||
5114 | msgid "%s: order for collating element %.*s not yet defined" | ||
5115 | msgstr "%s: l’ordre de l’element d’ordenació «%.*s» encara no ha estat definit" | ||
5116 | |||
5117 | -#: locale/programs/ld-collate.c:3502 | ||
5118 | +#: locale/programs/ld-collate.c:3499 | ||
5119 | #, c-format | ||
5120 | msgid "%s: cannot reorder after %.*s: symbol not known" | ||
5121 | msgstr "%s: no s’ha pogut reordenar després de «%.*s»: el símbol no és conegut" | ||
5122 | |||
5123 | -#: locale/programs/ld-collate.c:3554 locale/programs/ld-collate.c:3915 | ||
5124 | +#: locale/programs/ld-collate.c:3551 locale/programs/ld-collate.c:3912 | ||
5125 | #, c-format | ||
5126 | msgid "%s: missing `reorder-end' keyword" | ||
5127 | msgstr "%s: manca la paraula clau «reorder-end»" | ||
5128 | |||
5129 | -#: locale/programs/ld-collate.c:3588 locale/programs/ld-collate.c:3786 | ||
5130 | +#: locale/programs/ld-collate.c:3585 locale/programs/ld-collate.c:3783 | ||
5131 | #, c-format | ||
5132 | msgid "%s: section `%.*s' not known" | ||
5133 | msgstr "%s: la secció «%.*s» no és coneguda" | ||
5134 | |||
5135 | -#: locale/programs/ld-collate.c:3653 | ||
5136 | +#: locale/programs/ld-collate.c:3650 | ||
5137 | #, c-format | ||
5138 | msgid "%s: bad symbol <%.*s>" | ||
5139 | msgstr "%s: el símbol <%.*s> no és vàlid" | ||
5140 | |||
5141 | -#: locale/programs/ld-collate.c:3849 | ||
5142 | +#: locale/programs/ld-collate.c:3846 | ||
5143 | #, c-format | ||
5144 | msgid "%s: cannot have `%s' as end of ellipsis range" | ||
5145 | msgstr "%s: «%s» no es pot trobar al final d’un rang amb eŀlipsi" | ||
5146 | |||
5147 | -#: locale/programs/ld-collate.c:3899 | ||
5148 | +#: locale/programs/ld-collate.c:3896 | ||
5149 | #, c-format | ||
5150 | msgid "%s: empty category description not allowed" | ||
5151 | msgstr "%s: no es permet una descripció buida de la categoria" | ||
5152 | |||
5153 | -#: locale/programs/ld-collate.c:3918 | ||
5154 | +#: locale/programs/ld-collate.c:3915 | ||
5155 | #, c-format | ||
5156 | msgid "%s: missing `reorder-sections-end' keyword" | ||
5157 | msgstr "%s: manca la paraula clau «reorder-sections-end»" | ||
5158 | |||
5159 | -#: locale/programs/ld-collate.c:4082 | ||
5160 | +#: locale/programs/ld-collate.c:4079 | ||
5161 | #, c-format | ||
5162 | msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" | ||
5163 | msgstr "%s: s’ha trobat un «%s» sense el corresponent «ifdef» o «ifndef»" | ||
5164 | |||
5165 | -#: locale/programs/ld-collate.c:4100 | ||
5166 | +#: locale/programs/ld-collate.c:4097 | ||
5167 | #, c-format | ||
5168 | msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" | ||
5169 | msgstr "%s: s’ha trobat un «endif» sense el corresponent «ifdef» o «ifndef»" | ||
5170 | |||
5171 | -#: locale/programs/ld-ctype.c:440 | ||
5172 | +#: locale/programs/ld-ctype.c:439 | ||
5173 | #, c-format | ||
5174 | msgid "No character set name specified in charmap" | ||
5175 | msgstr "no s’ha indicat cap nom de joc de caràcters al mapa de caràcters" | ||
5176 | |||
5177 | -#: locale/programs/ld-ctype.c:469 | ||
5178 | +#: locale/programs/ld-ctype.c:468 | ||
5179 | #, c-format | ||
5180 | msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" | ||
5181 | msgstr "el caràcter L«\\u%0*x» de la classe «%s» ha de ser a la classe «%s»" | ||
5182 | |||
5183 | -#: locale/programs/ld-ctype.c:484 | ||
5184 | +#: locale/programs/ld-ctype.c:483 | ||
5185 | #, c-format | ||
5186 | msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" | ||
5187 | msgstr "el caràcter L«\\u%0*x» de la classe «%s» no ha de ser a la classe «%s»" | ||
5188 | |||
5189 | -#: locale/programs/ld-ctype.c:498 locale/programs/ld-ctype.c:556 | ||
5190 | +#: locale/programs/ld-ctype.c:497 locale/programs/ld-ctype.c:555 | ||
5191 | #, c-format | ||
5192 | msgid "internal error in %s, line %u" | ||
5193 | msgstr "error intern a «%s», línia %u" | ||
5194 | |||
5195 | -#: locale/programs/ld-ctype.c:527 | ||
5196 | +#: locale/programs/ld-ctype.c:526 | ||
5197 | #, c-format | ||
5198 | msgid "character '%s' in class `%s' must be in class `%s'" | ||
5199 | msgstr "el caràcter «%s» de la classe «%s» ha de ser a la classe «%s»" | ||
5200 | |||
5201 | -#: locale/programs/ld-ctype.c:543 | ||
5202 | +#: locale/programs/ld-ctype.c:542 | ||
5203 | #, c-format | ||
5204 | msgid "character '%s' in class `%s' must not be in class `%s'" | ||
5205 | msgstr "el caràcter «%s» de la classe «%s» no ha de ser a la classe «%s»" | ||
5206 | |||
5207 | -#: locale/programs/ld-ctype.c:573 locale/programs/ld-ctype.c:611 | ||
5208 | +#: locale/programs/ld-ctype.c:572 locale/programs/ld-ctype.c:610 | ||
5209 | #, c-format | ||
5210 | msgid "<SP> character not in class `%s'" | ||
5211 | msgstr "el caràcter <SP> no és a la classe «%s»" | ||
5212 | |||
5213 | -#: locale/programs/ld-ctype.c:585 locale/programs/ld-ctype.c:622 | ||
5214 | +#: locale/programs/ld-ctype.c:584 locale/programs/ld-ctype.c:621 | ||
5215 | #, c-format | ||
5216 | msgid "<SP> character must not be in class `%s'" | ||
5217 | msgstr "el caràcter <SP> no ha de ser a la classe «%s»" | ||
5218 | |||
5219 | -#: locale/programs/ld-ctype.c:600 | ||
5220 | +#: locale/programs/ld-ctype.c:599 | ||
5221 | #, c-format | ||
5222 | msgid "character <SP> not defined in character map" | ||
5223 | msgstr "el caràcter <SP> no ha estat definit a la taula de caràcters" | ||
5224 | |||
5225 | -#: locale/programs/ld-ctype.c:736 | ||
5226 | +#: locale/programs/ld-ctype.c:735 | ||
5227 | #, c-format | ||
5228 | msgid "`digit' category has not entries in groups of ten" | ||
5229 | msgstr "les entrades de la categoria «digit» no estan agrupades de deu en deu" | ||
5230 | |||
5231 | -#: locale/programs/ld-ctype.c:785 | ||
5232 | +#: locale/programs/ld-ctype.c:784 | ||
5233 | #, c-format | ||
5234 | msgid "no input digits defined and none of the standard names in the charmap" | ||
5235 | msgstr "no s’han definit dígits d’entrada i cap dels noms estàndard es troba al mapa de caràcters" | ||
5236 | |||
5237 | -#: locale/programs/ld-ctype.c:850 | ||
5238 | +#: locale/programs/ld-ctype.c:849 | ||
5239 | #, c-format | ||
5240 | msgid "not all characters used in `outdigit' are available in the charmap" | ||
5241 | msgstr "no tots els caràcters emprats a «outdigit» es troben al mapa de caràcters" | ||
5242 | |||
5243 | -#: locale/programs/ld-ctype.c:867 | ||
5244 | +#: locale/programs/ld-ctype.c:866 | ||
5245 | #, c-format | ||
5246 | msgid "not all characters used in `outdigit' are available in the repertoire" | ||
5247 | msgstr "no tots els caràcters emprats a «outdigit» es troben al repertori" | ||
5248 | |||
5249 | -#: locale/programs/ld-ctype.c:1270 | ||
5250 | +#: locale/programs/ld-ctype.c:1269 | ||
5251 | #, c-format | ||
5252 | msgid "character class `%s' already defined" | ||
5253 | msgstr "la classe de caràcters «%s» ja ha estat definida" | ||
5254 | |||
5255 | -#: locale/programs/ld-ctype.c:1276 | ||
5256 | +#: locale/programs/ld-ctype.c:1275 | ||
5257 | #, c-format | ||
5258 | msgid "implementation limit: no more than %Zd character classes allowed" | ||
5259 | msgstr "límit d’implementació: no es permeten més de %Zd classes de caràcters" | ||
5260 | |||
5261 | -#: locale/programs/ld-ctype.c:1302 | ||
5262 | +#: locale/programs/ld-ctype.c:1301 | ||
5263 | #, c-format | ||
5264 | msgid "character map `%s' already defined" | ||
5265 | msgstr "el mapa de caràcters «%s» ja ha estat definit" | ||
5266 | |||
5267 | -#: locale/programs/ld-ctype.c:1308 | ||
5268 | +#: locale/programs/ld-ctype.c:1307 | ||
5269 | #, c-format | ||
5270 | msgid "implementation limit: no more than %d character maps allowed" | ||
5271 | msgstr "límit d’implementació: no es permeten més de %d taules de caràcters" | ||
5272 | |||
5273 | -#: locale/programs/ld-ctype.c:1573 locale/programs/ld-ctype.c:1698 | ||
5274 | -#: locale/programs/ld-ctype.c:1804 locale/programs/ld-ctype.c:2496 | ||
5275 | -#: locale/programs/ld-ctype.c:3492 | ||
5276 | +#: locale/programs/ld-ctype.c:1572 locale/programs/ld-ctype.c:1697 | ||
5277 | +#: locale/programs/ld-ctype.c:1803 locale/programs/ld-ctype.c:2493 | ||
5278 | +#: locale/programs/ld-ctype.c:3489 | ||
5279 | #, c-format | ||
5280 | msgid "%s: field `%s' does not contain exactly ten entries" | ||
5281 | msgstr "%s: el camp «%s» no conté deu entrades exactament" | ||
5282 | |||
5283 | -#: locale/programs/ld-ctype.c:1601 locale/programs/ld-ctype.c:2175 | ||
5284 | +#: locale/programs/ld-ctype.c:1600 locale/programs/ld-ctype.c:2174 | ||
5285 | #, c-format | ||
5286 | msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>" | ||
5287 | msgstr "el valor final <U%0*X> del rang és menor que l’inicial <U%0*X>" | ||
5288 | |||
5289 | -#: locale/programs/ld-ctype.c:1728 | ||
5290 | +#: locale/programs/ld-ctype.c:1727 | ||
5291 | msgid "start and end character sequence of range must have the same length" | ||
5292 | msgstr "les seqüències de caràcters inicial i final del rang han de tenir la mateixa longitud" | ||
5293 | |||
5294 | -#: locale/programs/ld-ctype.c:1735 | ||
5295 | +#: locale/programs/ld-ctype.c:1734 | ||
5296 | msgid "to-value character sequence is smaller than from-value sequence" | ||
5297 | msgstr "la seqüència de caràcters final és menor que la seqüència inicial" | ||
5298 | |||
5299 | -#: locale/programs/ld-ctype.c:2095 locale/programs/ld-ctype.c:2146 | ||
5300 | +#: locale/programs/ld-ctype.c:2094 locale/programs/ld-ctype.c:2145 | ||
5301 | msgid "premature end of `translit_ignore' definition" | ||
5302 | msgstr "fi prematura de la definició «translit_ignore»" | ||
5303 | |||
5304 | -#: locale/programs/ld-ctype.c:2101 locale/programs/ld-ctype.c:2152 | ||
5305 | -#: locale/programs/ld-ctype.c:2194 | ||
5306 | +#: locale/programs/ld-ctype.c:2100 locale/programs/ld-ctype.c:2151 | ||
5307 | +#: locale/programs/ld-ctype.c:2193 | ||
5308 | msgid "syntax error" | ||
5309 | msgstr "error de sintaxi" | ||
5310 | |||
5311 | -#: locale/programs/ld-ctype.c:2328 | ||
5312 | +#: locale/programs/ld-ctype.c:2326 | ||
5313 | #, c-format | ||
5314 | msgid "%s: syntax error in definition of new character class" | ||
5315 | msgstr "%s: error de sintaxi a la definició de nova classe de caràcters" | ||
5316 | |||
5317 | -#: locale/programs/ld-ctype.c:2343 | ||
5318 | +#: locale/programs/ld-ctype.c:2341 | ||
5319 | #, c-format | ||
5320 | msgid "%s: syntax error in definition of new character map" | ||
5321 | msgstr "%s: error de sintaxi a la definició de nou mapa de caràcters" | ||
5322 | |||
5323 | -#: locale/programs/ld-ctype.c:2518 | ||
5324 | +#: locale/programs/ld-ctype.c:2515 | ||
5325 | msgid "ellipsis range must be marked by two operands of same type" | ||
5326 | msgstr "el rang amb eŀlipsi ha d’estar marcat per dos operands del mateix tipus" | ||
5327 | |||
5328 | -#: locale/programs/ld-ctype.c:2527 | ||
5329 | +#: locale/programs/ld-ctype.c:2524 | ||
5330 | msgid "with symbolic name range values the absolute ellipsis `...' must not be used" | ||
5331 | msgstr "no s’ha d’emprar l’eŀlipsi absoluta «...» amb els valors de rang de noms simbòlics" | ||
5332 | |||
5333 | -#: locale/programs/ld-ctype.c:2542 | ||
5334 | +#: locale/programs/ld-ctype.c:2539 | ||
5335 | msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" | ||
5336 | msgstr "cal emprar l’eŀlipsi simbòlica hexadecimal «..» amb els valors de rang UCS" | ||
5337 | |||
5338 | -#: locale/programs/ld-ctype.c:2556 | ||
5339 | +#: locale/programs/ld-ctype.c:2553 | ||
5340 | msgid "with character code range values one must use the absolute ellipsis `...'" | ||
5341 | msgstr "cal emprar l’eŀlispi absoluta «...» amb els valors de rang de codis de caràcters" | ||
5342 | |||
5343 | -#: locale/programs/ld-ctype.c:2707 | ||
5344 | +#: locale/programs/ld-ctype.c:2704 | ||
5345 | #, c-format | ||
5346 | msgid "duplicated definition for mapping `%s'" | ||
5347 | msgstr "la definició del mapa «%s» és duplicada" | ||
5348 | |||
5349 | -#: locale/programs/ld-ctype.c:2793 locale/programs/ld-ctype.c:2937 | ||
5350 | +#: locale/programs/ld-ctype.c:2790 locale/programs/ld-ctype.c:2934 | ||
5351 | #, c-format | ||
5352 | msgid "%s: `translit_start' section does not end with `translit_end'" | ||
5353 | msgstr "%s: la secció «translit_start» no acaba amb «translit_end»" | ||
5354 | |||
5355 | -#: locale/programs/ld-ctype.c:2888 | ||
5356 | +#: locale/programs/ld-ctype.c:2885 | ||
5357 | #, c-format | ||
5358 | msgid "%s: duplicate `default_missing' definition" | ||
5359 | msgstr "%s: la definició de «default_missing» és duplicada" | ||
5360 | |||
5361 | -#: locale/programs/ld-ctype.c:2893 | ||
5362 | +#: locale/programs/ld-ctype.c:2890 | ||
5363 | msgid "previous definition was here" | ||
5364 | msgstr "la definició prèvia es troba ací" | ||
5365 | |||
5366 | -#: locale/programs/ld-ctype.c:2915 | ||
5367 | +#: locale/programs/ld-ctype.c:2912 | ||
5368 | #, c-format | ||
5369 | msgid "%s: no representable `default_missing' definition found" | ||
5370 | msgstr "%s: no s’ha trobat cap definició representable de «default_missing»" | ||
5371 | |||
5372 | -#: locale/programs/ld-ctype.c:3068 locale/programs/ld-ctype.c:3152 | ||
5373 | -#: locale/programs/ld-ctype.c:3172 locale/programs/ld-ctype.c:3193 | ||
5374 | -#: locale/programs/ld-ctype.c:3214 locale/programs/ld-ctype.c:3235 | ||
5375 | -#: locale/programs/ld-ctype.c:3256 locale/programs/ld-ctype.c:3296 | ||
5376 | -#: locale/programs/ld-ctype.c:3317 locale/programs/ld-ctype.c:3384 | ||
5377 | -#: locale/programs/ld-ctype.c:3426 locale/programs/ld-ctype.c:3451 | ||
5378 | +#: locale/programs/ld-ctype.c:3065 locale/programs/ld-ctype.c:3149 | ||
5379 | +#: locale/programs/ld-ctype.c:3169 locale/programs/ld-ctype.c:3190 | ||
5380 | +#: locale/programs/ld-ctype.c:3211 locale/programs/ld-ctype.c:3232 | ||
5381 | +#: locale/programs/ld-ctype.c:3253 locale/programs/ld-ctype.c:3293 | ||
5382 | +#: locale/programs/ld-ctype.c:3314 locale/programs/ld-ctype.c:3381 | ||
5383 | +#: locale/programs/ld-ctype.c:3423 locale/programs/ld-ctype.c:3448 | ||
5384 | #, c-format | ||
5385 | msgid "%s: character `%s' not defined while needed as default value" | ||
5386 | msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no ha estat definit" | ||
5387 | |||
5388 | -#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3157 | ||
5389 | -#: locale/programs/ld-ctype.c:3177 locale/programs/ld-ctype.c:3198 | ||
5390 | -#: locale/programs/ld-ctype.c:3219 locale/programs/ld-ctype.c:3240 | ||
5391 | -#: locale/programs/ld-ctype.c:3261 locale/programs/ld-ctype.c:3301 | ||
5392 | -#: locale/programs/ld-ctype.c:3322 locale/programs/ld-ctype.c:3389 | ||
5393 | +#: locale/programs/ld-ctype.c:3070 locale/programs/ld-ctype.c:3154 | ||
5394 | +#: locale/programs/ld-ctype.c:3174 locale/programs/ld-ctype.c:3195 | ||
5395 | +#: locale/programs/ld-ctype.c:3216 locale/programs/ld-ctype.c:3237 | ||
5396 | +#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3298 | ||
5397 | +#: locale/programs/ld-ctype.c:3319 locale/programs/ld-ctype.c:3386 | ||
5398 | #, c-format | ||
5399 | msgid "%s: character `%s' in charmap not representable with one byte" | ||
5400 | msgstr "%s: el caràcter «%s» del mapa de caràcters no es pot representar amb un sol octet" | ||
5401 | |||
5402 | -#: locale/programs/ld-ctype.c:3433 locale/programs/ld-ctype.c:3458 | ||
5403 | +#: locale/programs/ld-ctype.c:3430 locale/programs/ld-ctype.c:3455 | ||
5404 | #, c-format | ||
5405 | msgid "%s: character `%s' needed as default value not representable with one byte" | ||
5406 | msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no es pot representar amb un sol octet" | ||
5407 | |||
5408 | -#: locale/programs/ld-ctype.c:3514 | ||
5409 | +#: locale/programs/ld-ctype.c:3511 | ||
5410 | #, c-format | ||
5411 | msgid "no output digits defined and none of the standard names in the charmap" | ||
5412 | msgstr "no s’han definit dígits d’eixida i cap del noms estàndard es troba al mapa de caràcters" | ||
5413 | |||
5414 | -#: locale/programs/ld-ctype.c:3805 | ||
5415 | +#: locale/programs/ld-ctype.c:3802 | ||
5416 | #, c-format | ||
5417 | msgid "%s: transliteration data from locale `%s' not available" | ||
5418 | msgstr "%s: les dades de transliteració del locale «%s» no es troben disponibles" | ||
5419 | |||
5420 | -#: locale/programs/ld-ctype.c:3906 | ||
5421 | +#: locale/programs/ld-ctype.c:3903 | ||
5422 | #, c-format | ||
5423 | msgid "%s: table for class \"%s\": %lu bytes\n" | ||
5424 | msgstr "%s: taula de la classe «%s»: %lu octets\n" | ||
5425 | |||
5426 | -#: locale/programs/ld-ctype.c:3975 | ||
5427 | +#: locale/programs/ld-ctype.c:3972 | ||
5428 | #, c-format | ||
5429 | msgid "%s: table for map \"%s\": %lu bytes\n" | ||
5430 | msgstr "%s: taula del mapa «%s»: %lu octets\n" | ||
5431 | |||
5432 | -#: locale/programs/ld-ctype.c:4108 | ||
5433 | +#: locale/programs/ld-ctype.c:4105 | ||
5434 | #, c-format | ||
5435 | msgid "%s: table for width: %lu bytes\n" | ||
5436 | msgstr "%s: taula d’amplada: %lu bytes\n" | ||
5437 | |||
5438 | -#: locale/programs/ld-identification.c:170 | ||
5439 | +#: locale/programs/ld-identification.c:169 | ||
5440 | #, c-format | ||
5441 | msgid "%s: no identification for category `%s'" | ||
5442 | msgstr "%s: no hi ha cap identificació per a la categoria «%s»" | ||
5443 | |||
5444 | -#: locale/programs/ld-identification.c:435 | ||
5445 | +#: locale/programs/ld-identification.c:434 | ||
5446 | #, c-format | ||
5447 | msgid "%s: duplicate category version definition" | ||
5448 | msgstr "%s: la definició de versió de categoria és duplicada" | ||
5449 | |||
5450 | -#: locale/programs/ld-measurement.c:113 | ||
5451 | +#: locale/programs/ld-measurement.c:112 | ||
5452 | #, c-format | ||
5453 | msgid "%s: invalid value for field `%s'" | ||
5454 | msgstr "%s: el valor del camp «%s» no és vàlid" | ||
5455 | |||
5456 | -#: locale/programs/ld-messages.c:114 locale/programs/ld-messages.c:148 | ||
5457 | +#: locale/programs/ld-messages.c:113 locale/programs/ld-messages.c:147 | ||
5458 | #, c-format | ||
5459 | msgid "%s: field `%s' undefined" | ||
5460 | msgstr "%s: no s’ha definit el camp «%s»" | ||
5461 | |||
5462 | -#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:155 | ||
5463 | -#: locale/programs/ld-monetary.c:256 locale/programs/ld-numeric.c:118 | ||
5464 | +#: locale/programs/ld-messages.c:120 locale/programs/ld-messages.c:154 | ||
5465 | +#: locale/programs/ld-monetary.c:255 locale/programs/ld-numeric.c:117 | ||
5466 | #, c-format | ||
5467 | msgid "%s: value for field `%s' must not be an empty string" | ||
5468 | msgstr "%s: el valor del camp «%s» no ha de ser la cadena buida" | ||
5469 | |||
5470 | -#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:171 | ||
5471 | +#: locale/programs/ld-messages.c:136 locale/programs/ld-messages.c:170 | ||
5472 | #, c-format | ||
5473 | msgid "%s: no correct regular expression for field `%s': %s" | ||
5474 | msgstr "%s: no hi ha cap expressió regular correcta per al camp «%s»: %s" | ||
5475 | |||
5476 | -#: locale/programs/ld-monetary.c:224 | ||
5477 | +#: locale/programs/ld-monetary.c:223 | ||
5478 | #, c-format | ||
5479 | msgid "%s: value of field `int_curr_symbol' has wrong length" | ||
5480 | msgstr "%s: el valor del camp «int_curr_symbol» té una longitud incorrecta" | ||
5481 | |||
5482 | -#: locale/programs/ld-monetary.c:237 | ||
5483 | +#: locale/programs/ld-monetary.c:236 | ||
5484 | #, c-format | ||
5485 | msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217" | ||
5486 | msgstr "%s: el valor del camp «int_curr_symbol» no és un nom vàlid de l’estàndard ISO 4217" | ||
5487 | |||
5488 | -#: locale/programs/ld-monetary.c:285 locale/programs/ld-monetary.c:315 | ||
5489 | +#: locale/programs/ld-monetary.c:284 locale/programs/ld-monetary.c:314 | ||
5490 | #, c-format | ||
5491 | msgid "%s: value for field `%s' must be in range %d...%d" | ||
5492 | msgstr "%s: el valor del camp «%s» ha d’estar dins el rang %d...%d" | ||
5493 | |||
5494 | -#: locale/programs/ld-monetary.c:747 locale/programs/ld-numeric.c:274 | ||
5495 | +#: locale/programs/ld-monetary.c:746 locale/programs/ld-numeric.c:273 | ||
5496 | #, c-format | ||
5497 | msgid "%s: value for field `%s' must be a single character" | ||
5498 | msgstr "%s: el valor del camp «%s» ha de ser un sol caràcter" | ||
5499 | |||
5500 | -#: locale/programs/ld-monetary.c:844 locale/programs/ld-numeric.c:318 | ||
5501 | +#: locale/programs/ld-monetary.c:843 locale/programs/ld-numeric.c:317 | ||
5502 | #, c-format | ||
5503 | msgid "%s: `-1' must be last entry in `%s' field" | ||
5504 | msgstr "%s: «-1» ha de ser la darrera entrada del camp «%s»" | ||
5505 | |||
5506 | -#: locale/programs/ld-monetary.c:866 locale/programs/ld-numeric.c:335 | ||
5507 | +#: locale/programs/ld-monetary.c:865 locale/programs/ld-numeric.c:334 | ||
5508 | #, c-format | ||
5509 | msgid "%s: values for field `%s' must be smaller than 127" | ||
5510 | msgstr "%s: els valors del camp «%s» han de ser menors que 127" | ||
5511 | |||
5512 | -#: locale/programs/ld-monetary.c:909 | ||
5513 | +#: locale/programs/ld-monetary.c:908 | ||
5514 | msgid "conversion rate value cannot be zero" | ||
5515 | msgstr "el valor de la taxa de conversió no pot ser zero" | ||
5516 | |||
5517 | -#: locale/programs/ld-name.c:129 locale/programs/ld-telephone.c:126 | ||
5518 | -#: locale/programs/ld-telephone.c:149 | ||
5519 | +#: locale/programs/ld-name.c:128 locale/programs/ld-telephone.c:125 | ||
5520 | +#: locale/programs/ld-telephone.c:148 | ||
5521 | #, c-format | ||
5522 | msgid "%s: invalid escape sequence in field `%s'" | ||
5523 | msgstr "%s: la seqüència d’escapada del camp «%s» no és vàlida" | ||
5524 | |||
5525 | -#: locale/programs/ld-time.c:247 | ||
5526 | +#: locale/programs/ld-time.c:246 | ||
5527 | #, c-format | ||
5528 | msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'" | ||
5529 | msgstr "%s: el senyalador de direcció de la cadena %Zd del camp «era» no és ni «+» ni «-»" | ||
5530 | |||
5531 | -#: locale/programs/ld-time.c:258 | ||
5532 | +#: locale/programs/ld-time.c:257 | ||
5533 | #, c-format | ||
5534 | msgid "%s: direction flag in string %Zd in `era' field is not a single character" | ||
5535 | msgstr "%s: el senyalador de direcció de la cadena %Zd del camp «era» no és un sol caràcter" | ||
5536 | |||
5537 | -#: locale/programs/ld-time.c:271 | ||
5538 | +#: locale/programs/ld-time.c:270 | ||
5539 | #, c-format | ||
5540 | msgid "%s: invalid number for offset in string %Zd in `era' field" | ||
5541 | msgstr "%s: el número de desplaçament de la cadena %Zd del camp «era» no és vàlid" | ||
5542 | |||
5543 | -#: locale/programs/ld-time.c:279 | ||
5544 | +#: locale/programs/ld-time.c:278 | ||
5545 | #, c-format | ||
5546 | msgid "%s: garbage at end of offset value in string %Zd in `era' field" | ||
5547 | msgstr "%s: brossa al final del valor de desplaçament de la cadena %Zd del camp «era»" | ||
5548 | |||
5549 | -#: locale/programs/ld-time.c:330 | ||
5550 | +#: locale/programs/ld-time.c:329 | ||
5551 | #, c-format | ||
5552 | msgid "%s: invalid starting date in string %Zd in `era' field" | ||
5553 | msgstr "%s: la data de començament de la cadena %Zd del camp «era» no és vàlida" | ||
5554 | |||
5555 | -#: locale/programs/ld-time.c:339 | ||
5556 | +#: locale/programs/ld-time.c:338 | ||
5557 | #, c-format | ||
5558 | msgid "%s: garbage at end of starting date in string %Zd in `era' field " | ||
5559 | msgstr "%s: brossa al final de la data de començament de la cadena %Zd del camp «era» " | ||
5560 | |||
5561 | -#: locale/programs/ld-time.c:358 | ||
5562 | +#: locale/programs/ld-time.c:357 | ||
5563 | #, c-format | ||
5564 | msgid "%s: starting date is invalid in string %Zd in `era' field" | ||
5565 | msgstr "%s: la data de començament de la cadena %Zd del camp «era» no és vàlida" | ||
5566 | |||
5567 | -#: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435 | ||
5568 | +#: locale/programs/ld-time.c:406 locale/programs/ld-time.c:434 | ||
5569 | #, c-format | ||
5570 | msgid "%s: invalid stopping date in string %Zd in `era' field" | ||
5571 | msgstr "%s: la data d’acabament de la cadena %Zd del camp «era» no és vàlida" | ||
5572 | |||
5573 | -#: locale/programs/ld-time.c:416 | ||
5574 | +#: locale/programs/ld-time.c:415 | ||
5575 | #, c-format | ||
5576 | msgid "%s: garbage at end of stopping date in string %Zd in `era' field" | ||
5577 | msgstr "%s: brossa al final de la data d’acabament de la cadena %Zd del camp «era»" | ||
5578 | |||
5579 | -#: locale/programs/ld-time.c:444 | ||
5580 | +#: locale/programs/ld-time.c:443 | ||
5581 | #, c-format | ||
5582 | msgid "%s: missing era name in string %Zd in `era' field" | ||
5583 | msgstr "%s: manca el nom de l’era a la cadena %Zd del camp «era»" | ||
5584 | |||
5585 | -#: locale/programs/ld-time.c:456 | ||
5586 | +#: locale/programs/ld-time.c:455 | ||
5587 | #, c-format | ||
5588 | msgid "%s: missing era format in string %Zd in `era' field" | ||
5589 | msgstr "%s: manca el format de l’era a la cadena %Zd del camp «era»" | ||
5590 | |||
5591 | -#: locale/programs/ld-time.c:497 | ||
5592 | +#: locale/programs/ld-time.c:496 | ||
5593 | #, c-format | ||
5594 | msgid "%s: third operand for value of field `%s' must not be larger than %d" | ||
5595 | msgstr "%s: el tercer operand del valor del camp «%s» no ha de ser major que %d" | ||
5596 | |||
5597 | -#: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513 | ||
5598 | -#: locale/programs/ld-time.c:521 | ||
5599 | +#: locale/programs/ld-time.c:504 locale/programs/ld-time.c:512 | ||
5600 | +#: locale/programs/ld-time.c:520 | ||
5601 | #, c-format | ||
5602 | msgid "%s: values for field `%s' must not be larger than %d" | ||
5603 | msgstr "%s: els valors del camp «%s» no han de ser majors que %d" | ||
5604 | |||
5605 | -#: locale/programs/ld-time.c:1004 | ||
5606 | +#: locale/programs/ld-time.c:1003 | ||
5607 | #, c-format | ||
5608 | msgid "%s: too few values for field `%s'" | ||
5609 | msgstr "%s: manquen valors al camp «%s»" | ||
5610 | |||
5611 | -#: locale/programs/ld-time.c:1049 | ||
5612 | +#: locale/programs/ld-time.c:1048 | ||
5613 | msgid "extra trailing semicolon" | ||
5614 | msgstr "hi ha un punt i coma sobrant al final" | ||
5615 | |||
5616 | -#: locale/programs/ld-time.c:1052 | ||
5617 | +#: locale/programs/ld-time.c:1051 | ||
5618 | #, c-format | ||
5619 | msgid "%s: too many values for field `%s'" | ||
5620 | msgstr "%s: sobren valors al camp «%s»" | ||
5621 | |||
5622 | -#: locale/programs/linereader.c:130 | ||
5623 | +#: locale/programs/linereader.c:129 | ||
5624 | msgid "trailing garbage at end of line" | ||
5625 | msgstr "brossa al final de la línia" | ||
5626 | |||
5627 | -#: locale/programs/linereader.c:298 | ||
5628 | +#: locale/programs/linereader.c:297 | ||
5629 | msgid "garbage at end of number" | ||
5630 | msgstr "brossa al final del número" | ||
5631 | |||
5632 | -#: locale/programs/linereader.c:410 | ||
5633 | +#: locale/programs/linereader.c:409 | ||
5634 | msgid "garbage at end of character code specification" | ||
5635 | msgstr "brossa al final de l’especificació de codi de caràcter" | ||
5636 | |||
5637 | -#: locale/programs/linereader.c:496 | ||
5638 | +#: locale/programs/linereader.c:495 | ||
5639 | msgid "unterminated symbolic name" | ||
5640 | msgstr "el nom simbòlic no està acabat" | ||
5641 | |||
5642 | -#: locale/programs/linereader.c:623 | ||
5643 | +#: locale/programs/linereader.c:622 | ||
5644 | msgid "illegal escape sequence at end of string" | ||
5645 | msgstr "hi ha una seqüència d’escapada no permesa al final de la cadena" | ||
5646 | |||
5647 | -#: locale/programs/linereader.c:627 locale/programs/linereader.c:855 | ||
5648 | +#: locale/programs/linereader.c:626 locale/programs/linereader.c:854 | ||
5649 | msgid "unterminated string" | ||
5650 | msgstr "la cadena no està acabada" | ||
5651 | |||
5652 | -#: locale/programs/linereader.c:669 | ||
5653 | +#: locale/programs/linereader.c:668 | ||
5654 | msgid "non-symbolic character value should not be used" | ||
5655 | msgstr "no s’han d’emprar valors de caràcters no simbòlics" | ||
5656 | |||
5657 | -#: locale/programs/linereader.c:816 | ||
5658 | +#: locale/programs/linereader.c:815 | ||
5659 | #, c-format | ||
5660 | msgid "symbol `%.*s' not in charmap" | ||
5661 | msgstr "el símbol «%.*s» no es troba al mapa de caràcters" | ||
5662 | |||
5663 | -#: locale/programs/linereader.c:837 | ||
5664 | +#: locale/programs/linereader.c:836 | ||
5665 | #, c-format | ||
5666 | msgid "symbol `%.*s' not in repertoire map" | ||
5667 | msgstr "el símbol «%.*s» no es troba al mapa de repertori" | ||
5668 | |||
5669 | -#: locale/programs/locale-spec.c:131 | ||
5670 | +#: locale/programs/locale-spec.c:130 | ||
5671 | #, c-format | ||
5672 | msgid "unknown name \"%s\"" | ||
5673 | msgstr "el nom «%s» no és conegut" | ||
5674 | @@ -2648,33 +2751,33 @@ | ||
5675 | msgid "Cannot set LC_ALL to default locale" | ||
5676 | msgstr "no s’ha pogut establir LC_ALL al locale per defecte" | ||
5677 | |||
5678 | -#: locale/programs/locale.c:518 | ||
5679 | +#: locale/programs/locale.c:521 | ||
5680 | #, c-format | ||
5681 | msgid "while preparing output" | ||
5682 | msgstr "en preparar l’eixida" | ||
5683 | |||
5684 | # Més ajudes. ivb | ||
5685 | -#: locale/programs/localedef.c:120 | ||
5686 | +#: locale/programs/localedef.c:119 | ||
5687 | msgid "Input Files:" | ||
5688 | msgstr "Fitxers d’entrada:" | ||
5689 | |||
5690 | -#: locale/programs/localedef.c:122 | ||
5691 | +#: locale/programs/localedef.c:121 | ||
5692 | msgid "Symbolic character names defined in FILE" | ||
5693 | msgstr "Els noms simbòlics dels caràcters es defineixen al FITXER." | ||
5694 | |||
5695 | -#: locale/programs/localedef.c:123 | ||
5696 | +#: locale/programs/localedef.c:122 | ||
5697 | msgid "Source definitions are found in FILE" | ||
5698 | msgstr "Les definicions font es troben al FITXER." | ||
5699 | |||
5700 | -#: locale/programs/localedef.c:125 | ||
5701 | +#: locale/programs/localedef.c:124 | ||
5702 | msgid "FILE contains mapping from symbolic names to UCS4 values" | ||
5703 | msgstr "El FITXER conté un mapa de noms simbòlics a valors UCS4." | ||
5704 | |||
5705 | -#: locale/programs/localedef.c:129 | ||
5706 | +#: locale/programs/localedef.c:128 | ||
5707 | msgid "Create output even if warning messages were issued" | ||
5708 | msgstr "Crea fitxers d’eixida encara que s’hagen emès missatges d’avís." | ||
5709 | |||
5710 | -#: locale/programs/localedef.c:130 | ||
5711 | +#: locale/programs/localedef.c:129 | ||
5712 | msgid "Create old-style tables" | ||
5713 | msgstr "Crea taules de l’estil antic." | ||
5714 | |||
5715 | @@ -2682,57 +2785,57 @@ | ||
5716 | # ivb Localedef crea diversos fitxers en un directori: és plural. | ||
5717 | # ivb Però, el prefix és un prefix d'un camí, com «/usr/local» en | ||
5718 | # ivb «/usr/local/share/doc». | ||
5719 | -#: locale/programs/localedef.c:131 | ||
5720 | +#: locale/programs/localedef.c:130 | ||
5721 | msgid "Optional output file prefix" | ||
5722 | msgstr "Prefix opcional dels fitxers d’eixida." | ||
5723 | |||
5724 | -#: locale/programs/localedef.c:132 | ||
5725 | +#: locale/programs/localedef.c:131 | ||
5726 | msgid "Be strictly POSIX conform" | ||
5727 | msgstr "S’ajusta estrictament a POSIX." | ||
5728 | |||
5729 | -#: locale/programs/localedef.c:134 | ||
5730 | +#: locale/programs/localedef.c:133 | ||
5731 | msgid "Suppress warnings and information messages" | ||
5732 | msgstr "Descarta els avisos i els missatges informatius." | ||
5733 | |||
5734 | -#: locale/programs/localedef.c:135 | ||
5735 | +#: locale/programs/localedef.c:134 | ||
5736 | msgid "Print more messages" | ||
5737 | msgstr "Mostra més missatges." | ||
5738 | |||
5739 | -#: locale/programs/localedef.c:136 | ||
5740 | +#: locale/programs/localedef.c:135 | ||
5741 | msgid "Archive control:" | ||
5742 | msgstr "Control d’arxius:" | ||
5743 | |||
5744 | -#: locale/programs/localedef.c:138 | ||
5745 | +#: locale/programs/localedef.c:137 | ||
5746 | msgid "Don't add new data to archive" | ||
5747 | msgstr "No afegeix dades noves a l’arxiu." | ||
5748 | |||
5749 | -#: locale/programs/localedef.c:140 | ||
5750 | +#: locale/programs/localedef.c:139 | ||
5751 | msgid "Add locales named by parameters to archive" | ||
5752 | msgstr "Afegeix a l’arxiu els locales esmentats pels paràmetres." | ||
5753 | |||
5754 | -#: locale/programs/localedef.c:141 | ||
5755 | +#: locale/programs/localedef.c:140 | ||
5756 | msgid "Replace existing archive content" | ||
5757 | msgstr "Reemplaça el contingut existent a l’arxiu." | ||
5758 | |||
5759 | -#: locale/programs/localedef.c:143 | ||
5760 | +#: locale/programs/localedef.c:142 | ||
5761 | msgid "Remove locales named by parameters from archive" | ||
5762 | msgstr "Elimina de l’arxiu els locales esmentats pels paràmetres." | ||
5763 | |||
5764 | -#: locale/programs/localedef.c:144 | ||
5765 | +#: locale/programs/localedef.c:143 | ||
5766 | msgid "List content of archive" | ||
5767 | msgstr "Llista el contingut de l’arxiu." | ||
5768 | |||
5769 | -#: locale/programs/localedef.c:146 | ||
5770 | +#: locale/programs/localedef.c:145 | ||
5771 | msgid "locale.alias file to consult when making archive" | ||
5772 | msgstr "Fitxer «locale.alias» a consultar en crear l’arxiu." | ||
5773 | |||
5774 | # ivb (2001/10/28) | ||
5775 | # ivb Pose el punt final pq és la descripció curta de l'ordre. | ||
5776 | -#: locale/programs/localedef.c:151 | ||
5777 | +#: locale/programs/localedef.c:150 | ||
5778 | msgid "Compile locale specification" | ||
5779 | msgstr "Compiŀla una especificació de locale." | ||
5780 | |||
5781 | -#: locale/programs/localedef.c:154 | ||
5782 | +#: locale/programs/localedef.c:153 | ||
5783 | msgid "" | ||
5784 | "NAME\n" | ||
5785 | "[--add-to-archive|--delete-from-archive] FILE...\n" | ||
5786 | @@ -2742,28 +2845,28 @@ | ||
5787 | "[--add-to-archive | --delete-from-archive] FITXER…\n" | ||
5788 | "--list-archive [FITXER]" | ||
5789 | |||
5790 | -#: locale/programs/localedef.c:232 | ||
5791 | +#: locale/programs/localedef.c:228 | ||
5792 | #, c-format | ||
5793 | msgid "cannot create directory for output files" | ||
5794 | msgstr "no s’ha pogut crear el directori per als fitxers d’eixida" | ||
5795 | |||
5796 | -#: locale/programs/localedef.c:243 | ||
5797 | +#: locale/programs/localedef.c:239 | ||
5798 | #, c-format | ||
5799 | msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'" | ||
5800 | msgstr "FATAL: el sistema no defineix «_POSIX2_LOCALEDEF»" | ||
5801 | |||
5802 | -#: locale/programs/localedef.c:257 locale/programs/localedef.c:273 | ||
5803 | -#: locale/programs/localedef.c:599 locale/programs/localedef.c:619 | ||
5804 | +#: locale/programs/localedef.c:253 locale/programs/localedef.c:269 | ||
5805 | +#: locale/programs/localedef.c:601 locale/programs/localedef.c:621 | ||
5806 | #, c-format | ||
5807 | msgid "cannot open locale definition file `%s'" | ||
5808 | msgstr "no s’ha pogut obrir el fitxer «%s» de definició del locale" | ||
5809 | |||
5810 | -#: locale/programs/localedef.c:285 | ||
5811 | +#: locale/programs/localedef.c:281 | ||
5812 | #, c-format | ||
5813 | msgid "cannot write output files to `%s'" | ||
5814 | msgstr "no s’han pogut escriure els fitxers d’eixida a «%s»" | ||
5815 | |||
5816 | -#: locale/programs/localedef.c:366 | ||
5817 | +#: locale/programs/localedef.c:367 | ||
5818 | #, c-format | ||
5819 | msgid "" | ||
5820 | "System's directory for character maps : %s\n" | ||
5821 | @@ -2776,214 +2879,215 @@ | ||
5822 | " camí als locales : %s\n" | ||
5823 | "%s" | ||
5824 | |||
5825 | -#: locale/programs/localedef.c:567 | ||
5826 | +#: locale/programs/localedef.c:569 | ||
5827 | #, c-format | ||
5828 | msgid "circular dependencies between locale definitions" | ||
5829 | msgstr "hi ha dependències circulars entre les definicions dels locales" | ||
5830 | |||
5831 | -#: locale/programs/localedef.c:573 | ||
5832 | +#: locale/programs/localedef.c:575 | ||
5833 | #, c-format | ||
5834 | msgid "cannot add already read locale `%s' a second time" | ||
5835 | msgstr "no es pot afegir una altra volta el locale ja llegit «%s»" | ||
5836 | |||
5837 | -#: locale/programs/locarchive.c:92 locale/programs/locarchive.c:338 | ||
5838 | +#: locale/programs/locarchive.c:113 locale/programs/locarchive.c:347 | ||
5839 | +#: nss/makedb.c:290 | ||
5840 | #, c-format | ||
5841 | msgid "cannot create temporary file" | ||
5842 | msgstr "no s’ha pogut crear un fitxer temporal" | ||
5843 | |||
5844 | -#: locale/programs/locarchive.c:122 locale/programs/locarchive.c:384 | ||
5845 | +#: locale/programs/locarchive.c:143 locale/programs/locarchive.c:393 | ||
5846 | #, c-format | ||
5847 | msgid "cannot initialize archive file" | ||
5848 | msgstr "no s’ha pogut iniciar el fitxer arxiu" | ||
5849 | |||
5850 | -#: locale/programs/locarchive.c:129 locale/programs/locarchive.c:391 | ||
5851 | +#: locale/programs/locarchive.c:150 locale/programs/locarchive.c:400 | ||
5852 | #, c-format | ||
5853 | msgid "cannot resize archive file" | ||
5854 | msgstr "no s’ha pogut redimensionar el fitxer arxiu" | ||
5855 | |||
5856 | -#: locale/programs/locarchive.c:152 locale/programs/locarchive.c:414 | ||
5857 | -#: locale/programs/locarchive.c:633 | ||
5858 | +#: locale/programs/locarchive.c:163 locale/programs/locarchive.c:413 | ||
5859 | +#: locale/programs/locarchive.c:619 | ||
5860 | #, c-format | ||
5861 | msgid "cannot map archive header" | ||
5862 | msgstr "no s’ha pogut mapar la capçalera de l’arxiu" | ||
5863 | |||
5864 | # ivb (2002/10/21) | ||
5865 | # ivb Un «locale archive» conté diversos locales -> «arxiu de locales». | ||
5866 | -#: locale/programs/locarchive.c:174 | ||
5867 | +#: locale/programs/locarchive.c:185 | ||
5868 | #, c-format | ||
5869 | msgid "failed to create new locale archive" | ||
5870 | msgstr "no s’ha pogut crear el nou arxiu de locales" | ||
5871 | |||
5872 | -#: locale/programs/locarchive.c:186 | ||
5873 | +#: locale/programs/locarchive.c:197 | ||
5874 | #, c-format | ||
5875 | msgid "cannot change mode of new locale archive" | ||
5876 | msgstr "no s’ha pogut canviar el mode del nou arxiu de locales" | ||
5877 | |||
5878 | -#: locale/programs/locarchive.c:285 | ||
5879 | +#: locale/programs/locarchive.c:296 | ||
5880 | #, c-format | ||
5881 | msgid "cannot read data from locale archive" | ||
5882 | msgstr "no s’han pogut llegir les dades de l’arxiu de locales" | ||
5883 | |||
5884 | -#: locale/programs/locarchive.c:318 | ||
5885 | +#: locale/programs/locarchive.c:327 | ||
5886 | #, c-format | ||
5887 | msgid "cannot map locale archive file" | ||
5888 | msgstr "no s’ha pogut mapar el fitxer arxiu de locales" | ||
5889 | |||
5890 | -#: locale/programs/locarchive.c:422 | ||
5891 | +#: locale/programs/locarchive.c:421 | ||
5892 | #, c-format | ||
5893 | msgid "cannot lock new archive" | ||
5894 | msgstr "no s’ha pogut blocar el nou arxiu" | ||
5895 | |||
5896 | -#: locale/programs/locarchive.c:488 | ||
5897 | +#: locale/programs/locarchive.c:485 | ||
5898 | #, c-format | ||
5899 | msgid "cannot extend locale archive file" | ||
5900 | msgstr "no s’ha pogut estendre el fitxer arxiu de locales" | ||
5901 | |||
5902 | -#: locale/programs/locarchive.c:497 | ||
5903 | +#: locale/programs/locarchive.c:494 | ||
5904 | #, c-format | ||
5905 | msgid "cannot change mode of resized locale archive" | ||
5906 | msgstr "no s’ha pogut canviar el mode de l’arxiu de locales redimensionat" | ||
5907 | |||
5908 | -#: locale/programs/locarchive.c:505 | ||
5909 | +#: locale/programs/locarchive.c:502 | ||
5910 | #, c-format | ||
5911 | msgid "cannot rename new archive" | ||
5912 | msgstr "no s’ha pogut reanomenar el nou arxiu" | ||
5913 | |||
5914 | -#: locale/programs/locarchive.c:558 | ||
5915 | +#: locale/programs/locarchive.c:555 | ||
5916 | #, c-format | ||
5917 | msgid "cannot open locale archive \"%s\"" | ||
5918 | msgstr "no s’ha pogut obrir l’arxiu «%s» de locales" | ||
5919 | |||
5920 | -#: locale/programs/locarchive.c:563 | ||
5921 | +#: locale/programs/locarchive.c:560 | ||
5922 | #, c-format | ||
5923 | msgid "cannot stat locale archive \"%s\"" | ||
5924 | msgstr "ha fallat stat() sobre l’arxiu «%s» de locales" | ||
5925 | |||
5926 | -#: locale/programs/locarchive.c:582 | ||
5927 | +#: locale/programs/locarchive.c:579 | ||
5928 | #, c-format | ||
5929 | msgid "cannot lock locale archive \"%s\"" | ||
5930 | msgstr "no s’ha pogut blocar l’arxiu «%s» de locales" | ||
5931 | |||
5932 | -#: locale/programs/locarchive.c:605 | ||
5933 | +#: locale/programs/locarchive.c:602 | ||
5934 | #, c-format | ||
5935 | msgid "cannot read archive header" | ||
5936 | msgstr "no s’ha pogut llegir la capçalera de l’arxiu" | ||
5937 | |||
5938 | -#: locale/programs/locarchive.c:680 | ||
5939 | +#: locale/programs/locarchive.c:666 | ||
5940 | #, c-format | ||
5941 | msgid "locale '%s' already exists" | ||
5942 | msgstr "el locale «%s» ja existeix" | ||
5943 | |||
5944 | -#: locale/programs/locarchive.c:942 locale/programs/locarchive.c:957 | ||
5945 | -#: locale/programs/locarchive.c:969 locale/programs/locarchive.c:981 | ||
5946 | -#: locale/programs/locfile.c:344 | ||
5947 | +#: locale/programs/locarchive.c:928 locale/programs/locarchive.c:943 | ||
5948 | +#: locale/programs/locarchive.c:955 locale/programs/locarchive.c:967 | ||
5949 | +#: locale/programs/locfile.c:343 | ||
5950 | #, c-format | ||
5951 | msgid "cannot add to locale archive" | ||
5952 | msgstr "no s’ha pogut afegir a l’arxiu de locales" | ||
5953 | |||
5954 | # ivb (2002/10/21) | ||
5955 | # ivb El fitxer conté àlies de diversos locales (locale.alias). | ||
5956 | -#: locale/programs/locarchive.c:1139 | ||
5957 | +#: locale/programs/locarchive.c:1125 | ||
5958 | #, c-format | ||
5959 | msgid "locale alias file `%s' not found" | ||
5960 | msgstr "no s’ha trobat el fitxer «%s» d’àlies de locales" | ||
5961 | |||
5962 | # ivb (2002/10/21) | ||
5963 | # ivb És un missatge, no un error. | ||
5964 | -#: locale/programs/locarchive.c:1289 | ||
5965 | +#: locale/programs/locarchive.c:1275 | ||
5966 | #, c-format | ||
5967 | msgid "Adding %s\n" | ||
5968 | msgstr "S’està afegint «%s»\n" | ||
5969 | |||
5970 | -#: locale/programs/locarchive.c:1295 | ||
5971 | +#: locale/programs/locarchive.c:1281 | ||
5972 | #, c-format | ||
5973 | msgid "stat of \"%s\" failed: %s: ignored" | ||
5974 | msgstr "ha fallat stat() sobre «%s»: %s: es descarta" | ||
5975 | |||
5976 | -#: locale/programs/locarchive.c:1301 | ||
5977 | +#: locale/programs/locarchive.c:1287 | ||
5978 | #, c-format | ||
5979 | msgid "\"%s\" is no directory; ignored" | ||
5980 | msgstr "«%s» no és un directori: es descarta" | ||
5981 | |||
5982 | -#: locale/programs/locarchive.c:1308 | ||
5983 | +#: locale/programs/locarchive.c:1294 | ||
5984 | #, c-format | ||
5985 | msgid "cannot open directory \"%s\": %s: ignored" | ||
5986 | msgstr "no s’ha pogut obrir el directori «%s»: %s: es descarta" | ||
5987 | |||
5988 | -#: locale/programs/locarchive.c:1380 | ||
5989 | +#: locale/programs/locarchive.c:1366 | ||
5990 | #, c-format | ||
5991 | msgid "incomplete set of locale files in \"%s\"" | ||
5992 | msgstr "el joc de fitxers de locale a «%s» no és complet" | ||
5993 | |||
5994 | -#: locale/programs/locarchive.c:1444 | ||
5995 | +#: locale/programs/locarchive.c:1430 | ||
5996 | #, c-format | ||
5997 | msgid "cannot read all files in \"%s\": ignored" | ||
5998 | msgstr "no s’han pogut llegir tots els fitxers de «%s»: es descarta" | ||
5999 | |||
6000 | -#: locale/programs/locarchive.c:1514 | ||
6001 | +#: locale/programs/locarchive.c:1500 | ||
6002 | #, c-format | ||
6003 | msgid "locale \"%s\" not in archive" | ||
6004 | msgstr "el locale «%s» no es troba a l’arxiu" | ||
6005 | |||
6006 | -#: locale/programs/locfile.c:132 | ||
6007 | +#: locale/programs/locfile.c:131 | ||
6008 | #, c-format | ||
6009 | msgid "argument to `%s' must be a single character" | ||
6010 | msgstr "l’argument de «%s» ha de ser un sol caràcter" | ||
6011 | |||
6012 | -#: locale/programs/locfile.c:252 | ||
6013 | +#: locale/programs/locfile.c:251 | ||
6014 | msgid "syntax error: not inside a locale definition section" | ||
6015 | msgstr "error de sintaxi: no és a dins d’una secció de definició de locale" | ||
6016 | |||
6017 | -#: locale/programs/locfile.c:626 | ||
6018 | +#: locale/programs/locfile.c:625 | ||
6019 | #, c-format | ||
6020 | msgid "cannot open output file `%s' for category `%s'" | ||
6021 | msgstr "no s’ha pogut obrir el fitxer d’eixida «%s» de la categoria «%s»" | ||
6022 | |||
6023 | -#: locale/programs/locfile.c:650 | ||
6024 | +#: locale/programs/locfile.c:649 | ||
6025 | #, c-format | ||
6026 | msgid "failure while writing data for category `%s'" | ||
6027 | msgstr "no s’han pogut escriure les dades de la categoria «%s»" | ||
6028 | |||
6029 | -#: locale/programs/locfile.c:746 | ||
6030 | +#: locale/programs/locfile.c:745 | ||
6031 | #, c-format | ||
6032 | msgid "cannot create output file `%s' for category `%s'" | ||
6033 | msgstr "no s’ha pogut crear el fitxer d’eixida «%s» de la categoria «%s»" | ||
6034 | |||
6035 | -#: locale/programs/locfile.c:782 | ||
6036 | +#: locale/programs/locfile.c:781 | ||
6037 | msgid "expecting string argument for `copy'" | ||
6038 | msgstr "cal una cadena com a argument de «copy»" | ||
6039 | |||
6040 | -#: locale/programs/locfile.c:786 | ||
6041 | +#: locale/programs/locfile.c:785 | ||
6042 | msgid "locale name should consist only of portable characters" | ||
6043 | msgstr "el nom del locale només ha de contenir caràcters portables" | ||
6044 | |||
6045 | -#: locale/programs/locfile.c:805 | ||
6046 | +#: locale/programs/locfile.c:804 | ||
6047 | msgid "no other keyword shall be specified when `copy' is used" | ||
6048 | msgstr "no s’ha d’indicar cap altra paraula clau quan s’empre «copy»" | ||
6049 | |||
6050 | -#: locale/programs/locfile.c:819 | ||
6051 | +#: locale/programs/locfile.c:818 | ||
6052 | #, c-format | ||
6053 | msgid "`%1$s' definition does not end with `END %1$s'" | ||
6054 | msgstr "la definició «%1$s» no acaba en «END %1$s»" | ||
6055 | |||
6056 | -#: locale/programs/repertoire.c:229 locale/programs/repertoire.c:270 | ||
6057 | -#: locale/programs/repertoire.c:295 | ||
6058 | +#: locale/programs/repertoire.c:228 locale/programs/repertoire.c:269 | ||
6059 | +#: locale/programs/repertoire.c:294 | ||
6060 | #, c-format | ||
6061 | msgid "syntax error in repertoire map definition: %s" | ||
6062 | msgstr "error de sintaxi a la definició del mapa de repertori: %s" | ||
6063 | |||
6064 | -#: locale/programs/repertoire.c:271 | ||
6065 | +#: locale/programs/repertoire.c:270 | ||
6066 | msgid "no <Uxxxx> or <Uxxxxxxxx> value given" | ||
6067 | msgstr "no s’ha especificat un valor <Uxxxx> o <Uxxxxxxxx>" | ||
6068 | |||
6069 | # ivb (2001/11/05) | ||
6070 | # ivb Apareix quan no es troba el repertori en un arbre de repertoris. | ||
6071 | -#: locale/programs/repertoire.c:331 | ||
6072 | +#: locale/programs/repertoire.c:330 | ||
6073 | #, c-format | ||
6074 | msgid "cannot save new repertoire map" | ||
6075 | msgstr "no s’ha pogut afegir el nou mapa de repertori" | ||
6076 | |||
6077 | -#: locale/programs/repertoire.c:342 | ||
6078 | +#: locale/programs/repertoire.c:341 | ||
6079 | #, c-format | ||
6080 | msgid "repertoire map file `%s' not found" | ||
6081 | msgstr "no s’ha trobat el fitxer «%s» de mapa de repertori" | ||
6082 | @@ -2993,7 +3097,7 @@ | ||
6083 | msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n" | ||
6084 | msgstr "Estableix el propietari, grup i permissos d’accés del pseudo‐terminal esclau corresponent al pseudo‐terminal mestre passat en el descriptor de fitxer %d. Aquest és el programa auxiliar per a la funció grantpt(), i no està pensat per a ser executat directament des de la línia d’ordres.\n" | ||
6085 | |||
6086 | -#: login/programs/pt_chown.c:88 | ||
6087 | +#: login/programs/pt_chown.c:92 | ||
6088 | #, c-format | ||
6089 | msgid "" | ||
6090 | "The owner is set to the current user, the group is set to `%s', and the access permission is set to `%o'.\n" | ||
6091 | @@ -3004,41 +3108,41 @@ | ||
6092 | "\n" | ||
6093 | "%s" | ||
6094 | |||
6095 | -#: login/programs/pt_chown.c:192 | ||
6096 | +#: login/programs/pt_chown.c:198 | ||
6097 | #, c-format | ||
6098 | msgid "too many arguments" | ||
6099 | msgstr "sobren arguments" | ||
6100 | |||
6101 | -#: login/programs/pt_chown.c:200 | ||
6102 | +#: login/programs/pt_chown.c:206 | ||
6103 | #, c-format | ||
6104 | msgid "needs to be installed setuid `root'" | ||
6105 | msgstr "ha d’estar instaŀlat amb setuid a «root»" | ||
6106 | |||
6107 | -#: malloc/mcheck.c:350 | ||
6108 | +#: malloc/mcheck.c:348 | ||
6109 | msgid "memory is consistent, library is buggy\n" | ||
6110 | msgstr "la memòria és consistent; la biblioteca té errors\n" | ||
6111 | |||
6112 | -#: malloc/mcheck.c:353 | ||
6113 | +#: malloc/mcheck.c:351 | ||
6114 | msgid "memory clobbered before allocated block\n" | ||
6115 | msgstr "s’ha sobreescrit la memòria d’abans del bloc reservat\n" | ||
6116 | |||
6117 | -#: malloc/mcheck.c:356 | ||
6118 | +#: malloc/mcheck.c:354 | ||
6119 | msgid "memory clobbered past end of allocated block\n" | ||
6120 | msgstr "s’ha sobreescrit la memòria de després del bloc reservat\n" | ||
6121 | |||
6122 | -#: malloc/mcheck.c:359 | ||
6123 | +#: malloc/mcheck.c:357 | ||
6124 | msgid "block freed twice\n" | ||
6125 | msgstr "s’ha alliberat el bloc dues voltes\n" | ||
6126 | |||
6127 | -#: malloc/mcheck.c:362 | ||
6128 | +#: malloc/mcheck.c:360 | ||
6129 | msgid "bogus mcheck_status, library is buggy\n" | ||
6130 | msgstr "el valor d’«mcheck_status» és estrany; la biblioteca té errors\n" | ||
6131 | |||
6132 | -#: malloc/memusage.sh:33 | ||
6133 | +#: malloc/memusage.sh:32 | ||
6134 | msgid "%s: option '%s' requires an argument\\n" | ||
6135 | msgstr "%s: l’opció «%s» necessita un argument\\n" | ||
6136 | |||
6137 | -#: malloc/memusage.sh:39 | ||
6138 | +#: malloc/memusage.sh:38 | ||
6139 | msgid "" | ||
6140 | "Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]...\n" | ||
6141 | "Profile memory usage of PROGRAM.\n" | ||
6142 | @@ -3093,7 +3197,7 @@ | ||
6143 | "opcions curtes corresponents.\n" | ||
6144 | "\n" | ||
6145 | |||
6146 | -#: malloc/memusage.sh:101 | ||
6147 | +#: malloc/memusage.sh:99 | ||
6148 | msgid "" | ||
6149 | "Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n" | ||
6150 | "\t [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n" | ||
6151 | @@ -3105,60 +3209,60 @@ | ||
6152 | " [--total] [--title=CADENA] [--x-size=MIDA] [--y-size=MIDA]\n" | ||
6153 | " PROGRAMA [OPCIÓ_DE_PROGRAMA]…" | ||
6154 | |||
6155 | -#: malloc/memusage.sh:193 | ||
6156 | +#: malloc/memusage.sh:191 | ||
6157 | msgid "memusage: option \\`${1##*=}' is ambiguous" | ||
6158 | msgstr "memusage: l’opció «${1##*=}» és ambígua" | ||
6159 | |||
6160 | -#: malloc/memusage.sh:202 | ||
6161 | +#: malloc/memusage.sh:200 | ||
6162 | msgid "memusage: unrecognized option \\`$1'" | ||
6163 | msgstr "memusage: l’opció «$1» no és reconeguda" | ||
6164 | |||
6165 | -#: malloc/memusage.sh:215 | ||
6166 | +#: malloc/memusage.sh:213 | ||
6167 | msgid "No program name given" | ||
6168 | msgstr "No s’ha indicat un nom de programa" | ||
6169 | |||
6170 | # Més ajudes. ivb | ||
6171 | -#: malloc/memusagestat.c:57 | ||
6172 | +#: malloc/memusagestat.c:55 | ||
6173 | msgid "Name output file" | ||
6174 | msgstr "Especifica el fitxer d’eixida." | ||
6175 | |||
6176 | -#: malloc/memusagestat.c:58 | ||
6177 | +#: malloc/memusagestat.c:56 | ||
6178 | msgid "Title string used in output graphic" | ||
6179 | msgstr "Cadena amb el títol a emprar al gràfic d’eixida." | ||
6180 | |||
6181 | -#: malloc/memusagestat.c:59 | ||
6182 | +#: malloc/memusagestat.c:57 | ||
6183 | msgid "Generate output linear to time (default is linear to number of function calls)" | ||
6184 | msgstr "Genera una eixida lineal respecte el temps (per defecte és lineal respecte el nombre de crides a funció)." | ||
6185 | |||
6186 | -#: malloc/memusagestat.c:61 | ||
6187 | +#: malloc/memusagestat.c:59 | ||
6188 | msgid "Also draw graph for total memory consumption" | ||
6189 | msgstr "També mostra un gràfic del consum total de memòria." | ||
6190 | |||
6191 | -#: malloc/memusagestat.c:62 | ||
6192 | +#: malloc/memusagestat.c:60 | ||
6193 | msgid "Make output graphic VALUE pixels wide" | ||
6194 | msgstr "Fa el gràfic d’eixida de VALOR píxels d’amplada." | ||
6195 | |||
6196 | -#: malloc/memusagestat.c:63 | ||
6197 | +#: malloc/memusagestat.c:61 | ||
6198 | msgid "Make output graphic VALUE pixels high" | ||
6199 | msgstr "Fa el gràfic d’eixida de VALOR píxels d’altura." | ||
6200 | |||
6201 | -#: malloc/memusagestat.c:68 | ||
6202 | +#: malloc/memusagestat.c:66 | ||
6203 | msgid "Generate graphic from memory profiling data" | ||
6204 | msgstr "Genera un gràfic amb les dades de perfilat de memòria." | ||
6205 | |||
6206 | -#: malloc/memusagestat.c:71 | ||
6207 | +#: malloc/memusagestat.c:69 | ||
6208 | msgid "DATAFILE [OUTFILE]" | ||
6209 | msgstr "FITXER_DADES [FITXER_EIXIDA]" | ||
6210 | |||
6211 | -#: misc/error.c:118 | ||
6212 | +#: misc/error.c:117 | ||
6213 | msgid "Unknown system error" | ||
6214 | msgstr "error desconegut del sistema" | ||
6215 | |||
6216 | -#: nis/nis_callback.c:189 | ||
6217 | +#: nis/nis_callback.c:188 | ||
6218 | msgid "unable to free arguments" | ||
6219 | msgstr "no s’han pogut alliberar els arguments" | ||
6220 | |||
6221 | -#: nis/nis_error.h:1 nis/ypclnt.c:833 nis/ypclnt.c:921 posix/regcomp.c:132 | ||
6222 | +#: nis/nis_error.h:1 nis/ypclnt.c:832 nis/ypclnt.c:920 posix/regcomp.c:131 | ||
6223 | #: sysdeps/gnu/errlist.c:20 | ||
6224 | msgid "Success" | ||
6225 | msgstr "Èxit" | ||
6226 | @@ -3200,7 +3304,7 @@ | ||
6227 | msgstr "S’ha trencat la cadena de primer/següent" | ||
6228 | |||
6229 | #. TRANS Permission denied; the file permissions do not allow the attempted operation. | ||
6230 | -#: nis/nis_error.h:11 nis/ypclnt.c:878 sysdeps/gnu/errlist.c:157 | ||
6231 | +#: nis/nis_error.h:11 nis/ypclnt.c:877 sysdeps/gnu/errlist.c:157 | ||
6232 | msgid "Permission denied" | ||
6233 | msgstr "S’ha denegat el permís" | ||
6234 | |||
6235 | @@ -3356,138 +3460,138 @@ | ||
6236 | msgid "Master server busy, full dump rescheduled." | ||
6237 | msgstr "El servidor mestre es troba ocupat, es replanifica el bolcat complet" | ||
6238 | |||
6239 | -#: nis/nis_local_names.c:122 | ||
6240 | +#: nis/nis_local_names.c:121 | ||
6241 | #, c-format | ||
6242 | msgid "LOCAL entry for UID %d in directory %s not unique\n" | ||
6243 | msgstr "L’entrada LOCAL de l’UID %d al directori «%s» no és única\n" | ||
6244 | |||
6245 | # ivb (2001/10/30) | ||
6246 | # ivb Crec que es refereix a un tipus de servei de noms -> masculí. | ||
6247 | -#: nis/nis_print.c:51 | ||
6248 | +#: nis/nis_print.c:50 | ||
6249 | msgid "UNKNOWN" | ||
6250 | msgstr "DESCONEGUT" | ||
6251 | |||
6252 | # ivb (2001/11/01) | ||
6253 | # ivb D'acord amb «nis/rpcsvc/nis_object.x». | ||
6254 | -#: nis/nis_print.c:109 | ||
6255 | +#: nis/nis_print.c:108 | ||
6256 | msgid "BOGUS OBJECT\n" | ||
6257 | msgstr "OBJECTE NO INICIAT\n" | ||
6258 | |||
6259 | -#: nis/nis_print.c:112 | ||
6260 | +#: nis/nis_print.c:111 | ||
6261 | msgid "NO OBJECT\n" | ||
6262 | msgstr "CAP OBJECTE\n" | ||
6263 | |||
6264 | -#: nis/nis_print.c:115 | ||
6265 | +#: nis/nis_print.c:114 | ||
6266 | msgid "DIRECTORY\n" | ||
6267 | msgstr "DIRECTORI\n" | ||
6268 | |||
6269 | -#: nis/nis_print.c:118 | ||
6270 | +#: nis/nis_print.c:117 | ||
6271 | msgid "GROUP\n" | ||
6272 | msgstr "GRUP\n" | ||
6273 | |||
6274 | -#: nis/nis_print.c:121 | ||
6275 | +#: nis/nis_print.c:120 | ||
6276 | msgid "TABLE\n" | ||
6277 | msgstr "TAULA\n" | ||
6278 | |||
6279 | -#: nis/nis_print.c:124 | ||
6280 | +#: nis/nis_print.c:123 | ||
6281 | msgid "ENTRY\n" | ||
6282 | msgstr "ENTRADA\n" | ||
6283 | |||
6284 | -#: nis/nis_print.c:127 | ||
6285 | +#: nis/nis_print.c:126 | ||
6286 | msgid "LINK\n" | ||
6287 | msgstr "ENLLAÇ\n" | ||
6288 | |||
6289 | -#: nis/nis_print.c:130 | ||
6290 | +#: nis/nis_print.c:129 | ||
6291 | msgid "PRIVATE\n" | ||
6292 | msgstr "PRIVAT\n" | ||
6293 | |||
6294 | -#: nis/nis_print.c:133 | ||
6295 | +#: nis/nis_print.c:132 | ||
6296 | msgid "(Unknown object)\n" | ||
6297 | msgstr "(Objecte desconegut)\n" | ||
6298 | |||
6299 | -#: nis/nis_print.c:167 | ||
6300 | +#: nis/nis_print.c:166 | ||
6301 | #, c-format | ||
6302 | msgid "Name : `%s'\n" | ||
6303 | msgstr "Nom : «%s»\n" | ||
6304 | |||
6305 | -#: nis/nis_print.c:168 | ||
6306 | +#: nis/nis_print.c:167 | ||
6307 | #, c-format | ||
6308 | msgid "Type : %s\n" | ||
6309 | msgstr "Tipus : %s\n" | ||
6310 | |||
6311 | -#: nis/nis_print.c:173 | ||
6312 | +#: nis/nis_print.c:172 | ||
6313 | msgid "Master Server :\n" | ||
6314 | msgstr "Servidor mestre :\n" | ||
6315 | |||
6316 | # ivb (2001/10/28) | ||
6317 | # ivb Es refereix a un servidor rèplica, no a replicar. | ||
6318 | -#: nis/nis_print.c:175 | ||
6319 | +#: nis/nis_print.c:174 | ||
6320 | msgid "Replicate :\n" | ||
6321 | msgstr "Rèplica :\n" | ||
6322 | |||
6323 | -#: nis/nis_print.c:176 | ||
6324 | +#: nis/nis_print.c:175 | ||
6325 | #, c-format | ||
6326 | msgid "\tName : %s\n" | ||
6327 | msgstr "\tNom : %s\n" | ||
6328 | |||
6329 | -#: nis/nis_print.c:177 | ||
6330 | +#: nis/nis_print.c:176 | ||
6331 | msgid "\tPublic Key : " | ||
6332 | msgstr "\tClau pública: " | ||
6333 | |||
6334 | -#: nis/nis_print.c:181 | ||
6335 | +#: nis/nis_print.c:180 | ||
6336 | msgid "None.\n" | ||
6337 | msgstr "Cap.\n" | ||
6338 | |||
6339 | # ivb (2001/10/28) | ||
6340 | # ivb Xicoteta diferència-Home de l'infern ;) | ||
6341 | -#: nis/nis_print.c:184 | ||
6342 | +#: nis/nis_print.c:183 | ||
6343 | #, c-format | ||
6344 | msgid "Diffie-Hellmann (%d bits)\n" | ||
6345 | msgstr "Diffie‐Hellmann (%d bits)\n" | ||
6346 | |||
6347 | -#: nis/nis_print.c:189 | ||
6348 | +#: nis/nis_print.c:188 | ||
6349 | #, c-format | ||
6350 | msgid "RSA (%d bits)\n" | ||
6351 | msgstr "RSA (%d bits)\n" | ||
6352 | |||
6353 | -#: nis/nis_print.c:192 | ||
6354 | +#: nis/nis_print.c:191 | ||
6355 | msgid "Kerberos.\n" | ||
6356 | msgstr "Kerberos.\n" | ||
6357 | |||
6358 | # ivb (2001/10/30) | ||
6359 | # ivb Es refereix a una clau pública -> femení. | ||
6360 | -#: nis/nis_print.c:195 | ||
6361 | +#: nis/nis_print.c:194 | ||
6362 | #, c-format | ||
6363 | msgid "Unknown (type = %d, bits = %d)\n" | ||
6364 | msgstr "Desconeguda (tipus = %d, bits = %d)\n" | ||
6365 | |||
6366 | -#: nis/nis_print.c:206 | ||
6367 | +#: nis/nis_print.c:205 | ||
6368 | #, c-format | ||
6369 | msgid "\tUniversal addresses (%u)\n" | ||
6370 | msgstr "\tAdreces universals (%u)\n" | ||
6371 | |||
6372 | -#: nis/nis_print.c:228 | ||
6373 | +#: nis/nis_print.c:227 | ||
6374 | msgid "Time to live : " | ||
6375 | msgstr "Temps de vida : " | ||
6376 | |||
6377 | -#: nis/nis_print.c:230 | ||
6378 | +#: nis/nis_print.c:229 | ||
6379 | msgid "Default Access rights :\n" | ||
6380 | msgstr "Drets d’accés per defecte :\n" | ||
6381 | |||
6382 | -#: nis/nis_print.c:239 | ||
6383 | +#: nis/nis_print.c:238 | ||
6384 | #, c-format | ||
6385 | msgid "\tType : %s\n" | ||
6386 | msgstr "\tTipus : %s\n" | ||
6387 | |||
6388 | -#: nis/nis_print.c:240 | ||
6389 | +#: nis/nis_print.c:239 | ||
6390 | msgid "\tAccess rights: " | ||
6391 | msgstr "\tDrets d’accés: " | ||
6392 | |||
6393 | -#: nis/nis_print.c:254 | ||
6394 | +#: nis/nis_print.c:253 | ||
6395 | msgid "Group Flags :" | ||
6396 | msgstr "Senyaladors del grup :" | ||
6397 | |||
6398 | -#: nis/nis_print.c:257 | ||
6399 | +#: nis/nis_print.c:256 | ||
6400 | msgid "" | ||
6401 | "\n" | ||
6402 | "Group Members :\n" | ||
6403 | @@ -3495,12 +3599,12 @@ | ||
6404 | "\n" | ||
6405 | "Membres del grup :\n" | ||
6406 | |||
6407 | -#: nis/nis_print.c:269 | ||
6408 | +#: nis/nis_print.c:268 | ||
6409 | #, c-format | ||
6410 | msgid "Table Type : %s\n" | ||
6411 | msgstr "Tipus de taula : %s\n" | ||
6412 | |||
6413 | -#: nis/nis_print.c:270 | ||
6414 | +#: nis/nis_print.c:269 | ||
6415 | #, c-format | ||
6416 | msgid "Number of Columns : %d\n" | ||
6417 | msgstr "Nombre de columnes : %d\n" | ||
6418 | @@ -3508,85 +3612,85 @@ | ||
6419 | # ivb (2000/10/28) | ||
6420 | # ivb Açò és correcte segons nis/rpcsvc/nis_object.x, és «caràcter | ||
6421 | # ivb separador» i no «separador de caràcters». | ||
6422 | -#: nis/nis_print.c:271 | ||
6423 | +#: nis/nis_print.c:270 | ||
6424 | #, c-format | ||
6425 | msgid "Character Separator : %c\n" | ||
6426 | msgstr "Caràcter separador : %c\n" | ||
6427 | |||
6428 | -#: nis/nis_print.c:272 | ||
6429 | +#: nis/nis_print.c:271 | ||
6430 | #, c-format | ||
6431 | msgid "Search Path : %s\n" | ||
6432 | msgstr "Camí de cerca : %s\n" | ||
6433 | |||
6434 | -#: nis/nis_print.c:273 | ||
6435 | +#: nis/nis_print.c:272 | ||
6436 | msgid "Columns :\n" | ||
6437 | msgstr "Columnes :\n" | ||
6438 | |||
6439 | -#: nis/nis_print.c:276 | ||
6440 | +#: nis/nis_print.c:275 | ||
6441 | #, c-format | ||
6442 | msgid "\t[%d]\tName : %s\n" | ||
6443 | msgstr "\t[%d]\tNom : %s\n" | ||
6444 | |||
6445 | -#: nis/nis_print.c:278 | ||
6446 | +#: nis/nis_print.c:277 | ||
6447 | msgid "\t\tAttributes : " | ||
6448 | msgstr "\t\tAtributs : " | ||
6449 | |||
6450 | -#: nis/nis_print.c:280 | ||
6451 | +#: nis/nis_print.c:279 | ||
6452 | msgid "\t\tAccess Rights : " | ||
6453 | msgstr "\t\tDrets d’accés : " | ||
6454 | |||
6455 | -#: nis/nis_print.c:290 | ||
6456 | +#: nis/nis_print.c:289 | ||
6457 | msgid "Linked Object Type : " | ||
6458 | msgstr "Tipus de l’objecte enllaçat : " | ||
6459 | |||
6460 | -#: nis/nis_print.c:292 | ||
6461 | +#: nis/nis_print.c:291 | ||
6462 | #, c-format | ||
6463 | msgid "Linked to : %s\n" | ||
6464 | msgstr "Enllaçat amb : %s\n" | ||
6465 | |||
6466 | -#: nis/nis_print.c:302 | ||
6467 | +#: nis/nis_print.c:301 | ||
6468 | #, c-format | ||
6469 | msgid "\tEntry data of type %s\n" | ||
6470 | msgstr "\tDades de l’entrada de tipus «%s»\n" | ||
6471 | |||
6472 | -#: nis/nis_print.c:305 | ||
6473 | +#: nis/nis_print.c:304 | ||
6474 | #, c-format | ||
6475 | msgid "\t[%u] - [%u bytes] " | ||
6476 | msgstr "\t[%u] — [%u octets] " | ||
6477 | |||
6478 | -#: nis/nis_print.c:308 | ||
6479 | +#: nis/nis_print.c:307 | ||
6480 | msgid "Encrypted data\n" | ||
6481 | msgstr "Dades xifrades\n" | ||
6482 | |||
6483 | -#: nis/nis_print.c:310 | ||
6484 | +#: nis/nis_print.c:309 | ||
6485 | msgid "Binary data\n" | ||
6486 | msgstr "Dades binàries\n" | ||
6487 | |||
6488 | -#: nis/nis_print.c:326 | ||
6489 | +#: nis/nis_print.c:325 | ||
6490 | #, c-format | ||
6491 | msgid "Object Name : %s\n" | ||
6492 | msgstr "Nom de l’objecte : %s\n" | ||
6493 | |||
6494 | -#: nis/nis_print.c:327 | ||
6495 | +#: nis/nis_print.c:326 | ||
6496 | #, c-format | ||
6497 | msgid "Directory : %s\n" | ||
6498 | msgstr "Directori : %s\n" | ||
6499 | |||
6500 | -#: nis/nis_print.c:328 | ||
6501 | +#: nis/nis_print.c:327 | ||
6502 | #, c-format | ||
6503 | msgid "Owner : %s\n" | ||
6504 | msgstr "Propietari : %s\n" | ||
6505 | |||
6506 | -#: nis/nis_print.c:329 | ||
6507 | +#: nis/nis_print.c:328 | ||
6508 | #, c-format | ||
6509 | msgid "Group : %s\n" | ||
6510 | msgstr "Grup : %s\n" | ||
6511 | |||
6512 | -#: nis/nis_print.c:330 | ||
6513 | +#: nis/nis_print.c:329 | ||
6514 | msgid "Access Rights : " | ||
6515 | msgstr "Drets d’accés : " | ||
6516 | |||
6517 | -#: nis/nis_print.c:332 | ||
6518 | +#: nis/nis_print.c:331 | ||
6519 | #, c-format | ||
6520 | msgid "" | ||
6521 | "\n" | ||
6522 | @@ -3595,36 +3699,36 @@ | ||
6523 | "\n" | ||
6524 | "Temps de vida : " | ||
6525 | |||
6526 | -#: nis/nis_print.c:335 | ||
6527 | +#: nis/nis_print.c:334 | ||
6528 | #, c-format | ||
6529 | msgid "Creation Time : %s" | ||
6530 | msgstr "Data de creació : %s" | ||
6531 | |||
6532 | -#: nis/nis_print.c:337 | ||
6533 | +#: nis/nis_print.c:336 | ||
6534 | #, c-format | ||
6535 | msgid "Mod. Time : %s" | ||
6536 | msgstr "Data modificació : %s" | ||
6537 | |||
6538 | -#: nis/nis_print.c:338 | ||
6539 | +#: nis/nis_print.c:337 | ||
6540 | msgid "Object Type : " | ||
6541 | msgstr "Tipus d’objecte : " | ||
6542 | |||
6543 | -#: nis/nis_print.c:358 | ||
6544 | +#: nis/nis_print.c:357 | ||
6545 | #, c-format | ||
6546 | msgid " Data Length = %u\n" | ||
6547 | msgstr " Longitud de les dades = %u\n" | ||
6548 | |||
6549 | -#: nis/nis_print.c:372 | ||
6550 | +#: nis/nis_print.c:371 | ||
6551 | #, c-format | ||
6552 | msgid "Status : %s\n" | ||
6553 | msgstr "Estat : %s\n" | ||
6554 | |||
6555 | -#: nis/nis_print.c:373 | ||
6556 | +#: nis/nis_print.c:372 | ||
6557 | #, c-format | ||
6558 | msgid "Number of objects : %u\n" | ||
6559 | msgstr "Nombre d’objectes : %u\n" | ||
6560 | |||
6561 | -#: nis/nis_print.c:377 | ||
6562 | +#: nis/nis_print.c:376 | ||
6563 | #, c-format | ||
6564 | msgid "Object #%d:\n" | ||
6565 | msgstr "Objecte #%d:\n" | ||
6566 | @@ -3682,279 +3786,287 @@ | ||
6567 | msgid " No recursive nonmembers\n" | ||
6568 | msgstr " No hi ha no‐membres recursius.\n" | ||
6569 | |||
6570 | -#: nis/nss_nisplus/nisplus-publickey.c:101 | ||
6571 | -#: nis/nss_nisplus/nisplus-publickey.c:183 | ||
6572 | +#: nis/nss_nisplus/nisplus-publickey.c:100 | ||
6573 | +#: nis/nss_nisplus/nisplus-publickey.c:182 | ||
6574 | #, c-format | ||
6575 | msgid "DES entry for netname %s not unique\n" | ||
6576 | msgstr "l’entrada DES per al nom de xarxa «%s» no és única\n" | ||
6577 | |||
6578 | -#: nis/nss_nisplus/nisplus-publickey.c:220 | ||
6579 | +#: nis/nss_nisplus/nisplus-publickey.c:219 | ||
6580 | #, c-format | ||
6581 | msgid "netname2user: missing group id list in `%s'" | ||
6582 | msgstr "netname2user: manca la llista d’identificadors de grup a «%s»." | ||
6583 | |||
6584 | -#: nis/nss_nisplus/nisplus-publickey.c:302 | ||
6585 | -#: nis/nss_nisplus/nisplus-publickey.c:308 | ||
6586 | -#: nis/nss_nisplus/nisplus-publickey.c:373 | ||
6587 | -#: nis/nss_nisplus/nisplus-publickey.c:382 | ||
6588 | +#: nis/nss_nisplus/nisplus-publickey.c:301 | ||
6589 | +#: nis/nss_nisplus/nisplus-publickey.c:307 | ||
6590 | +#: nis/nss_nisplus/nisplus-publickey.c:372 | ||
6591 | +#: nis/nss_nisplus/nisplus-publickey.c:381 | ||
6592 | #, c-format | ||
6593 | msgid "netname2user: (nis+ lookup): %s\n" | ||
6594 | msgstr "netname2user: (cerca nis+): %s\n" | ||
6595 | |||
6596 | -#: nis/nss_nisplus/nisplus-publickey.c:321 | ||
6597 | +#: nis/nss_nisplus/nisplus-publickey.c:320 | ||
6598 | #, c-format | ||
6599 | msgid "netname2user: DES entry for %s in directory %s not unique" | ||
6600 | msgstr "netname2user: l’entrada DES de «%s» al directori «%s» no és única" | ||
6601 | |||
6602 | -#: nis/nss_nisplus/nisplus-publickey.c:339 | ||
6603 | +#: nis/nss_nisplus/nisplus-publickey.c:338 | ||
6604 | #, c-format | ||
6605 | msgid "netname2user: principal name `%s' too long" | ||
6606 | msgstr "netname2user: el nom principal «%s» és massa llarg" | ||
6607 | |||
6608 | -#: nis/nss_nisplus/nisplus-publickey.c:395 | ||
6609 | +#: nis/nss_nisplus/nisplus-publickey.c:394 | ||
6610 | #, c-format | ||
6611 | msgid "netname2user: LOCAL entry for %s in directory %s not unique" | ||
6612 | msgstr "netname2user: l’entrada LOCAL de «%s» al directori «%s» no és única" | ||
6613 | |||
6614 | -#: nis/nss_nisplus/nisplus-publickey.c:402 | ||
6615 | +#: nis/nss_nisplus/nisplus-publickey.c:401 | ||
6616 | msgid "netname2user: should not have uid 0" | ||
6617 | msgstr "netname2user: no ha de tenir l’UID 0" | ||
6618 | |||
6619 | -#: nis/ypclnt.c:836 | ||
6620 | +#: nis/ypclnt.c:835 | ||
6621 | msgid "Request arguments bad" | ||
6622 | msgstr "Els arguments de la petició són incorrectes" | ||
6623 | |||
6624 | -#: nis/ypclnt.c:839 | ||
6625 | +#: nis/ypclnt.c:838 | ||
6626 | msgid "RPC failure on NIS operation" | ||
6627 | msgstr "El procediment RPC ha fallat en una operació NIS" | ||
6628 | |||
6629 | -#: nis/ypclnt.c:842 | ||
6630 | +#: nis/ypclnt.c:841 | ||
6631 | msgid "Can't bind to server which serves this domain" | ||
6632 | msgstr "No s’ha pogut enllaçar amb el servidor d’aquest domini" | ||
6633 | |||
6634 | -#: nis/ypclnt.c:845 | ||
6635 | +#: nis/ypclnt.c:844 | ||
6636 | msgid "No such map in server's domain" | ||
6637 | msgstr "El mapa no és al domini del servidor" | ||
6638 | |||
6639 | -#: nis/ypclnt.c:848 | ||
6640 | +#: nis/ypclnt.c:847 | ||
6641 | msgid "No such key in map" | ||
6642 | msgstr "La clau no és al mapa" | ||
6643 | |||
6644 | -#: nis/ypclnt.c:851 | ||
6645 | +#: nis/ypclnt.c:850 | ||
6646 | msgid "Internal NIS error" | ||
6647 | msgstr "Error intern de NIS" | ||
6648 | |||
6649 | -#: nis/ypclnt.c:854 | ||
6650 | +#: nis/ypclnt.c:853 | ||
6651 | msgid "Local resource allocation failure" | ||
6652 | msgstr "No s’ha pogut assignar un recurs local" | ||
6653 | |||
6654 | -#: nis/ypclnt.c:857 | ||
6655 | +#: nis/ypclnt.c:856 | ||
6656 | msgid "No more records in map database" | ||
6657 | msgstr "No hi ha més registres a la base de dades del mapa" | ||
6658 | |||
6659 | -#: nis/ypclnt.c:860 | ||
6660 | +#: nis/ypclnt.c:859 | ||
6661 | msgid "Can't communicate with portmapper" | ||
6662 | msgstr "No s’ha pogut comunicar amb el mapador de ports" | ||
6663 | |||
6664 | -#: nis/ypclnt.c:863 | ||
6665 | +#: nis/ypclnt.c:862 | ||
6666 | msgid "Can't communicate with ypbind" | ||
6667 | msgstr "No s’ha pogut comunicar amb «ypbind»" | ||
6668 | |||
6669 | -#: nis/ypclnt.c:866 | ||
6670 | +#: nis/ypclnt.c:865 | ||
6671 | msgid "Can't communicate with ypserv" | ||
6672 | msgstr "No s’ha pogut comunicar amb «ypserv»" | ||
6673 | |||
6674 | -#: nis/ypclnt.c:869 | ||
6675 | +#: nis/ypclnt.c:868 | ||
6676 | msgid "Local domain name not set" | ||
6677 | msgstr "No s’ha establert nom del domini local" | ||
6678 | |||
6679 | -#: nis/ypclnt.c:872 | ||
6680 | +#: nis/ypclnt.c:871 | ||
6681 | msgid "NIS map database is bad" | ||
6682 | msgstr "La base de dades de mapes NIS és feta malbé" | ||
6683 | |||
6684 | -#: nis/ypclnt.c:875 | ||
6685 | +#: nis/ypclnt.c:874 | ||
6686 | msgid "NIS client/server version mismatch - can't supply service" | ||
6687 | msgstr "Les versions de client i servidor NIS difereixen; no es pot donar servei" | ||
6688 | |||
6689 | -#: nis/ypclnt.c:881 | ||
6690 | +#: nis/ypclnt.c:880 | ||
6691 | msgid "Database is busy" | ||
6692 | msgstr "La base de dades es troba ocupada" | ||
6693 | |||
6694 | -#: nis/ypclnt.c:884 | ||
6695 | +#: nis/ypclnt.c:883 | ||
6696 | msgid "Unknown NIS error code" | ||
6697 | msgstr "Codi d’error desconegut de NIS" | ||
6698 | |||
6699 | -#: nis/ypclnt.c:924 | ||
6700 | +#: nis/ypclnt.c:923 | ||
6701 | msgid "Internal ypbind error" | ||
6702 | msgstr "Error intern d’«ypbind»" | ||
6703 | |||
6704 | -#: nis/ypclnt.c:927 | ||
6705 | +#: nis/ypclnt.c:926 | ||
6706 | msgid "Domain not bound" | ||
6707 | msgstr "El domini no és vinculat" | ||
6708 | |||
6709 | -#: nis/ypclnt.c:930 | ||
6710 | +#: nis/ypclnt.c:929 | ||
6711 | msgid "System resource allocation failure" | ||
6712 | msgstr "No s’han pogut assignar recursos del sistema" | ||
6713 | |||
6714 | -#: nis/ypclnt.c:933 | ||
6715 | +#: nis/ypclnt.c:932 | ||
6716 | msgid "Unknown ypbind error" | ||
6717 | msgstr "Error desconegut d’«ypbind»" | ||
6718 | |||
6719 | -#: nis/ypclnt.c:974 | ||
6720 | +#: nis/ypclnt.c:973 | ||
6721 | msgid "yp_update: cannot convert host to netname\n" | ||
6722 | msgstr "yp_update: no s’ha pogut convertir el nom d’estació a nom de xarxa\n" | ||
6723 | |||
6724 | -#: nis/ypclnt.c:992 | ||
6725 | +#: nis/ypclnt.c:991 | ||
6726 | msgid "yp_update: cannot get server address\n" | ||
6727 | msgstr "yp_update: no s’ha pogut obtenir l’adreça del servidor\n" | ||
6728 | |||
6729 | # El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
6730 | -#: nscd/aicache.c:83 nscd/hstcache.c:492 | ||
6731 | +#: nscd/aicache.c:82 nscd/hstcache.c:493 | ||
6732 | #, c-format | ||
6733 | msgid "Haven't found \"%s\" in hosts cache!" | ||
6734 | msgstr "no s’ha trobat «%s» a la memòria cau de «hosts»" | ||
6735 | |||
6736 | # El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
6737 | -#: nscd/aicache.c:85 nscd/hstcache.c:494 | ||
6738 | +#: nscd/aicache.c:84 nscd/hstcache.c:495 | ||
6739 | #, c-format | ||
6740 | msgid "Reloading \"%s\" in hosts cache!" | ||
6741 | msgstr "es torna a carregar «%s» a la memòria cau de «hosts»" | ||
6742 | |||
6743 | # La 2a. és de l’estil de «GETPWBYNAME», la 3a. com «passwd». ivb | ||
6744 | # Al darrere pot anar « (first)» o no. ivb | ||
6745 | -#: nscd/cache.c:150 | ||
6746 | +#: nscd/cache.c:151 | ||
6747 | #, c-format | ||
6748 | msgid "add new entry \"%s\" of type %s for %s to cache%s" | ||
6749 | msgstr "s’afegeix una nova entrada «%s» de tipus %s a la memòria cau de «%s»%s" | ||
6750 | |||
6751 | # FIXME: language-dependent construct ivb | ||
6752 | # Supose que vol dir «abans». ivb | ||
6753 | -#: nscd/cache.c:152 | ||
6754 | +#: nscd/cache.c:153 | ||
6755 | msgid " (first)" | ||
6756 | msgstr " (primer)" | ||
6757 | |||
6758 | -#: nscd/cache.c:276 nscd/connections.c:861 | ||
6759 | +#: nscd/cache.c:285 nscd/connections.c:1002 | ||
6760 | #, c-format | ||
6761 | msgid "cannot stat() file `%s': %s" | ||
6762 | msgstr "ha fallat stat() sobre el fitxer «%s»: %s" | ||
6763 | |||
6764 | -#: nscd/cache.c:318 | ||
6765 | +#: nscd/cache.c:331 | ||
6766 | #, c-format | ||
6767 | msgid "pruning %s cache; time %ld" | ||
6768 | msgstr "neteja de la memòria cau de «%s», hora %ld" | ||
6769 | |||
6770 | # La 2a. és de l’estil de «GETPWBYNAME». ivb | ||
6771 | -#: nscd/cache.c:347 | ||
6772 | +#: nscd/cache.c:360 | ||
6773 | #, c-format | ||
6774 | msgid "considering %s entry \"%s\", timeout %<PRIu64>" | ||
6775 | msgstr "es considera l’entrada %s «%s», expiració %<PRIu64>" | ||
6776 | |||
6777 | -#: nscd/connections.c:565 | ||
6778 | +#: nscd/connections.c:570 | ||
6779 | #, c-format | ||
6780 | msgid "invalid persistent database file \"%s\": %s" | ||
6781 | msgstr "el fitxer de base de dades persistent «%s» no és vàlid: %s" | ||
6782 | |||
6783 | -#: nscd/connections.c:573 | ||
6784 | +#: nscd/connections.c:578 | ||
6785 | msgid "uninitialized header" | ||
6786 | msgstr "la capçalera no es troba iniciada" | ||
6787 | |||
6788 | -#: nscd/connections.c:578 | ||
6789 | +#: nscd/connections.c:583 | ||
6790 | msgid "header size does not match" | ||
6791 | msgstr "la mida de la capçalera no concorda" | ||
6792 | |||
6793 | -#: nscd/connections.c:588 | ||
6794 | +#: nscd/connections.c:593 | ||
6795 | msgid "file size does not match" | ||
6796 | msgstr "la mida del fitxer no concorda" | ||
6797 | |||
6798 | -#: nscd/connections.c:605 | ||
6799 | +#: nscd/connections.c:610 | ||
6800 | msgid "verification failed" | ||
6801 | msgstr "la verificació ha fallat" | ||
6802 | |||
6803 | -#: nscd/connections.c:619 | ||
6804 | +#: nscd/connections.c:624 | ||
6805 | #, c-format | ||
6806 | msgid "suggested size of table for database %s larger than the persistent database's table" | ||
6807 | msgstr "la mida de taula suggerida per a la base de dades «%s» és major que la de la base de dades persistent" | ||
6808 | |||
6809 | -#: nscd/connections.c:630 nscd/connections.c:715 | ||
6810 | +#: nscd/connections.c:635 nscd/connections.c:720 | ||
6811 | #, c-format | ||
6812 | msgid "cannot create read-only descriptor for \"%s\"; no mmap" | ||
6813 | msgstr "no s’ha pogut crear un descriptor de només lectura per a «%s»; no s’emprarà mmap()" | ||
6814 | |||
6815 | -#: nscd/connections.c:646 | ||
6816 | +#: nscd/connections.c:651 | ||
6817 | #, c-format | ||
6818 | msgid "cannot access '%s'" | ||
6819 | msgstr "no s’ha pogut accedir a «%s»" | ||
6820 | |||
6821 | -#: nscd/connections.c:694 | ||
6822 | +#: nscd/connections.c:699 | ||
6823 | #, c-format | ||
6824 | msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart" | ||
6825 | msgstr "la base de dades de «%s» està corrupta o sent emprada concurrentment; elimineu «%s» manualment si cal i reinicieu" | ||
6826 | |||
6827 | -#: nscd/connections.c:701 | ||
6828 | +#: nscd/connections.c:706 | ||
6829 | #, c-format | ||
6830 | msgid "cannot create %s; no persistent database used" | ||
6831 | msgstr "no s’ha pogut crear «%s»; no s’emprarà una base de dades persistent" | ||
6832 | |||
6833 | -#: nscd/connections.c:704 | ||
6834 | +#: nscd/connections.c:709 | ||
6835 | #, c-format | ||
6836 | msgid "cannot create %s; no sharing possible" | ||
6837 | msgstr "no s’ha pogut crear «%s»; no es podrà compartir" | ||
6838 | |||
6839 | -#: nscd/connections.c:775 | ||
6840 | +#: nscd/connections.c:780 | ||
6841 | #, c-format | ||
6842 | msgid "cannot write to database file %s: %s" | ||
6843 | msgstr "no s’ha pogut escriure al fitxer de base de dades «%s»: %s" | ||
6844 | |||
6845 | -#: nscd/connections.c:814 | ||
6846 | +#: nscd/connections.c:819 | ||
6847 | #, c-format | ||
6848 | msgid "cannot set socket to close on exec: %s; disabling paranoia mode" | ||
6849 | msgstr "no s’ha pogut indicar que el connector es tanque en fer exec(): %s; s’inhabilita el mode paranoic" | ||
6850 | |||
6851 | -#: nscd/connections.c:897 | ||
6852 | +#: nscd/connections.c:868 | ||
6853 | #, c-format | ||
6854 | msgid "cannot open socket: %s" | ||
6855 | msgstr "no s’ha pogut obrir el connector: %s" | ||
6856 | |||
6857 | -#: nscd/connections.c:917 | ||
6858 | +#: nscd/connections.c:888 nscd/connections.c:952 | ||
6859 | #, c-format | ||
6860 | msgid "cannot change socket to nonblocking mode: %s" | ||
6861 | msgstr "no s’ha pogut canviar el connector al mode no blocador: %s" | ||
6862 | |||
6863 | -#: nscd/connections.c:925 | ||
6864 | +#: nscd/connections.c:896 nscd/connections.c:962 | ||
6865 | #, c-format | ||
6866 | msgid "cannot set socket to close on exec: %s" | ||
6867 | msgstr "no s’ha pogut indicar que el connector es tanque en fer exec(): %s" | ||
6868 | |||
6869 | -#: nscd/connections.c:938 | ||
6870 | +#: nscd/connections.c:909 | ||
6871 | #, c-format | ||
6872 | msgid "cannot enable socket to accept connections: %s" | ||
6873 | msgstr "no s’ha pogut habilitar el connector per a acceptar connexions: %s" | ||
6874 | |||
6875 | -#: nscd/connections.c:1039 | ||
6876 | +# Cap usa quote(). ivb | ||
6877 | +# Missatge de depuració. ivb | ||
6878 | +# Allò traçat és el fitxer, segons el codi. ivb | ||
6879 | +#: nscd/connections.c:986 | ||
6880 | #, c-format | ||
6881 | +msgid "register trace file %s for database %s" | ||
6882 | +msgstr "es registra el fitxer traçat «%s» per a la base de dades «%s»" | ||
6883 | + | ||
6884 | +#: nscd/connections.c:1116 | ||
6885 | +#, c-format | ||
6886 | msgid "provide access to FD %d, for %s" | ||
6887 | msgstr "es proporciona accés al descriptor de fitxer %d, per a «%s»" | ||
6888 | |||
6889 | -#: nscd/connections.c:1051 | ||
6890 | +#: nscd/connections.c:1128 | ||
6891 | #, c-format | ||
6892 | msgid "cannot handle old request version %d; current version is %d" | ||
6893 | msgstr "no s’ha pogut atendre la petició amb versió antiga %d; la versió actual és %d" | ||
6894 | |||
6895 | -#: nscd/connections.c:1073 | ||
6896 | +#: nscd/connections.c:1150 | ||
6897 | #, c-format | ||
6898 | msgid "request from %ld not handled due to missing permission" | ||
6899 | msgstr "no s’atén la petició de %ld per manca de permissos" | ||
6900 | |||
6901 | -#: nscd/connections.c:1078 | ||
6902 | +#: nscd/connections.c:1155 | ||
6903 | #, c-format | ||
6904 | msgid "request from '%s' [%ld] not handled due to missing permission" | ||
6905 | msgstr "no s’atén la petició de «%s» (%ld) per manca de permissos" | ||
6906 | |||
6907 | -#: nscd/connections.c:1083 | ||
6908 | +#: nscd/connections.c:1160 | ||
6909 | msgid "request not handled due to missing permission" | ||
6910 | msgstr "no s’atén la petició per manca de permissos" | ||
6911 | |||
6912 | -#: nscd/connections.c:1121 nscd/connections.c:1174 | ||
6913 | +#: nscd/connections.c:1198 nscd/connections.c:1251 | ||
6914 | #, c-format | ||
6915 | msgid "cannot write result: %s" | ||
6916 | msgstr "no s’ha pogut escriure el resultat: %s" | ||
6917 | @@ -3964,245 +4076,273 @@ | ||
6918 | # ivb dimoni «nscd» per consultar la memòria cau o invalidar-la. Per | ||
6919 | # ivb això faig servir «programa de control» (com «ndc» amb «named» o | ||
6920 | # ivb «chronyc» amb «chronyd»). | ||
6921 | -#: nscd/connections.c:1257 | ||
6922 | +#: nscd/connections.c:1342 | ||
6923 | #, c-format | ||
6924 | msgid "error getting caller's id: %s" | ||
6925 | msgstr "error en obtenir l’identificador del programa de control: %s" | ||
6926 | |||
6927 | -#: nscd/connections.c:1316 | ||
6928 | +#: nscd/connections.c:1402 | ||
6929 | #, c-format | ||
6930 | msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" | ||
6931 | msgstr "no s’ha pogut obrir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic" | ||
6932 | |||
6933 | -#: nscd/connections.c:1330 | ||
6934 | +#: nscd/connections.c:1416 | ||
6935 | #, c-format | ||
6936 | msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" | ||
6937 | msgstr "no s’ha pogut llegir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic" | ||
6938 | |||
6939 | -#: nscd/connections.c:1370 | ||
6940 | +#: nscd/connections.c:1456 | ||
6941 | #, c-format | ||
6942 | msgid "cannot change to old UID: %s; disabling paranoia mode" | ||
6943 | msgstr "no s’ha pogut tornar a l’UID vell: %s; s’inhabilita el mode paranoic" | ||
6944 | |||
6945 | -#: nscd/connections.c:1380 | ||
6946 | +#: nscd/connections.c:1466 | ||
6947 | #, c-format | ||
6948 | msgid "cannot change to old GID: %s; disabling paranoia mode" | ||
6949 | msgstr "no s’ha pogut tornar al GID vell: %s; s’inhabilita el mode paranoic" | ||
6950 | |||
6951 | -#: nscd/connections.c:1393 | ||
6952 | +#: nscd/connections.c:1479 | ||
6953 | #, c-format | ||
6954 | msgid "cannot change to old working directory: %s; disabling paranoia mode" | ||
6955 | msgstr "no s’ha pogut tornar al directori vell de treball: %s; s’inhabilita el mode paranoic" | ||
6956 | |||
6957 | -#: nscd/connections.c:1439 | ||
6958 | +#: nscd/connections.c:1525 | ||
6959 | #, c-format | ||
6960 | msgid "re-exec failed: %s; disabling paranoia mode" | ||
6961 | msgstr "ha fallat la reexecució: %s; s’inhabilita el mode paranoic" | ||
6962 | |||
6963 | -#: nscd/connections.c:1448 | ||
6964 | +#: nscd/connections.c:1534 | ||
6965 | #, c-format | ||
6966 | msgid "cannot change current working directory to \"/\": %s" | ||
6967 | msgstr "no s’ha pogut canviar el directori de treball a «/»: %s" | ||
6968 | |||
6969 | -#: nscd/connections.c:1641 | ||
6970 | +#: nscd/connections.c:1727 | ||
6971 | #, c-format | ||
6972 | msgid "short read while reading request: %s" | ||
6973 | msgstr "lectura incompleta en llegir la petició: %s" | ||
6974 | |||
6975 | -#: nscd/connections.c:1674 | ||
6976 | +#: nscd/connections.c:1760 | ||
6977 | #, c-format | ||
6978 | msgid "key length in request too long: %d" | ||
6979 | msgstr "la longitud de la clau de la petició és massa gran: %d" | ||
6980 | |||
6981 | -#: nscd/connections.c:1687 | ||
6982 | +#: nscd/connections.c:1773 | ||
6983 | #, c-format | ||
6984 | msgid "short read while reading request key: %s" | ||
6985 | msgstr "lectura incompleta en llegir la clau de la petició: %s" | ||
6986 | |||
6987 | -#: nscd/connections.c:1696 | ||
6988 | +#: nscd/connections.c:1782 | ||
6989 | #, c-format | ||
6990 | msgid "handle_request: request received (Version = %d) from PID %ld" | ||
6991 | msgstr "handle_request: s’ha rebut una petició (amb versió %d) del PID %ld" | ||
6992 | |||
6993 | -#: nscd/connections.c:1701 | ||
6994 | +#: nscd/connections.c:1787 | ||
6995 | #, c-format | ||
6996 | msgid "handle_request: request received (Version = %d)" | ||
6997 | msgstr "handle_request: s’ha rebut una petició (amb versió %d)" | ||
6998 | |||
6999 | -#: nscd/connections.c:1901 nscd/connections.c:2099 | ||
7000 | +#: nscd/connections.c:1999 nscd/connections.c:2227 | ||
7001 | #, c-format | ||
7002 | msgid "disabled inotify after read error %d" | ||
7003 | msgstr "s’inhabilita «inotify» per l’error de lectura amb codi %d" | ||
7004 | |||
7005 | -#: nscd/connections.c:2228 | ||
7006 | +#: nscd/connections.c:2374 | ||
7007 | msgid "could not initialize conditional variable" | ||
7008 | msgstr "no s’ha pogut iniciar la variable condicional" | ||
7009 | |||
7010 | -#: nscd/connections.c:2236 | ||
7011 | +#: nscd/connections.c:2382 | ||
7012 | msgid "could not start clean-up thread; terminating" | ||
7013 | msgstr "no s’ha pogut iniciar el fil d’execució de neteja; s’està finalitzant" | ||
7014 | |||
7015 | -#: nscd/connections.c:2250 | ||
7016 | +#: nscd/connections.c:2396 | ||
7017 | msgid "could not start any worker thread; terminating" | ||
7018 | msgstr "no s’ha pogut iniciar cap fil d’execució treballador; s’està finalitzant" | ||
7019 | |||
7020 | -#: nscd/connections.c:2301 nscd/connections.c:2302 nscd/connections.c:2319 | ||
7021 | -#: nscd/connections.c:2328 nscd/connections.c:2346 nscd/connections.c:2357 | ||
7022 | -#: nscd/connections.c:2368 | ||
7023 | +#: nscd/connections.c:2447 nscd/connections.c:2448 nscd/connections.c:2465 | ||
7024 | +#: nscd/connections.c:2474 nscd/connections.c:2492 nscd/connections.c:2503 | ||
7025 | +#: nscd/connections.c:2514 | ||
7026 | #, c-format | ||
7027 | msgid "Failed to run nscd as user '%s'" | ||
7028 | msgstr "no s’ha pogut executar «nscd» com a l’usuari «%s»" | ||
7029 | |||
7030 | -#: nscd/connections.c:2320 | ||
7031 | +#: nscd/connections.c:2466 | ||
7032 | #, c-format | ||
7033 | msgid "initial getgrouplist failed" | ||
7034 | msgstr "ha fallat getgrouplist() inicial" | ||
7035 | |||
7036 | -#: nscd/connections.c:2329 | ||
7037 | +#: nscd/connections.c:2475 | ||
7038 | #, c-format | ||
7039 | msgid "getgrouplist failed" | ||
7040 | msgstr "ha fallat getgrouplist()" | ||
7041 | |||
7042 | -#: nscd/connections.c:2347 | ||
7043 | +#: nscd/connections.c:2493 | ||
7044 | #, c-format | ||
7045 | msgid "setgroups failed" | ||
7046 | msgstr "ha fallat setgroups()" | ||
7047 | |||
7048 | -#: nscd/grpcache.c:383 nscd/hstcache.c:439 nscd/initgrcache.c:406 | ||
7049 | -#: nscd/pwdcache.c:378 nscd/servicescache.c:332 | ||
7050 | +#: nscd/grpcache.c:407 nscd/hstcache.c:440 nscd/initgrcache.c:411 | ||
7051 | +#: nscd/pwdcache.c:383 nscd/servicescache.c:338 | ||
7052 | #, c-format | ||
7053 | msgid "short write in %s: %s" | ||
7054 | msgstr "escriptura incompleta a «%s»: %s" | ||
7055 | |||
7056 | # El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7057 | -#: nscd/grpcache.c:428 nscd/initgrcache.c:78 | ||
7058 | +#: nscd/grpcache.c:452 nscd/initgrcache.c:77 | ||
7059 | #, c-format | ||
7060 | msgid "Haven't found \"%s\" in group cache!" | ||
7061 | msgstr "no s’ha trobat «%s» a la memòria cau de «group»" | ||
7062 | |||
7063 | # El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7064 | -#: nscd/grpcache.c:430 nscd/initgrcache.c:80 | ||
7065 | +#: nscd/grpcache.c:454 nscd/initgrcache.c:79 | ||
7066 | #, c-format | ||
7067 | msgid "Reloading \"%s\" in group cache!" | ||
7068 | msgstr "es torna a carregar «%s» a la memòria cau de «group»" | ||
7069 | |||
7070 | -#: nscd/grpcache.c:509 | ||
7071 | +#: nscd/grpcache.c:533 | ||
7072 | #, c-format | ||
7073 | msgid "Invalid numeric gid \"%s\"!" | ||
7074 | msgstr "«%s» no és un identificador numèric de grup vàlid" | ||
7075 | |||
7076 | -#: nscd/mem.c:431 | ||
7077 | +#: nscd/mem.c:425 | ||
7078 | #, c-format | ||
7079 | msgid "freed %zu bytes in %s cache" | ||
7080 | msgstr "s’han alliberat %zu octets de la memòria cau de «%s»" | ||
7081 | |||
7082 | -#: nscd/mem.c:574 | ||
7083 | +#: nscd/mem.c:568 | ||
7084 | #, c-format | ||
7085 | msgid "no more memory for database '%s'" | ||
7086 | msgstr "no resta memòria per a la base de dades «%s»" | ||
7087 | |||
7088 | +# El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7089 | +#: nscd/netgroupcache.c:77 | ||
7090 | +#, c-format | ||
7091 | +msgid "Haven't found \"%s\" in netgroup cache!" | ||
7092 | +msgstr "no s’ha trobat «%s» a la memòria cau de «netgroup»" | ||
7093 | + | ||
7094 | +# El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7095 | +#: nscd/netgroupcache.c:79 | ||
7096 | +#, c-format | ||
7097 | +msgid "Reloading \"%s\" in netgroup cache!" | ||
7098 | +msgstr "es torna a carregar «%s» a la memòria cau de «netgroup»" | ||
7099 | + | ||
7100 | +# El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7101 | +#: nscd/netgroupcache.c:467 | ||
7102 | +#, c-format | ||
7103 | +msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!" | ||
7104 | +msgstr "no s’ha trobat «%s (%s,%s,%s)» a la memòria cau de «netgroup»" | ||
7105 | + | ||
7106 | +# El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7107 | +#: nscd/netgroupcache.c:470 | ||
7108 | +#, c-format | ||
7109 | +msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!" | ||
7110 | +msgstr "es torna a carregar «%s (%s,%s,%s)» a la memòria cau de «netgroup»" | ||
7111 | + | ||
7112 | # Més ajudes. ivb | ||
7113 | -#: nscd/nscd.c:101 | ||
7114 | +#: nscd/nscd.c:116 | ||
7115 | msgid "Read configuration data from NAME" | ||
7116 | msgstr "Llegeix les dades de configuració de NOM." | ||
7117 | |||
7118 | -#: nscd/nscd.c:103 | ||
7119 | +#: nscd/nscd.c:118 | ||
7120 | msgid "Do not fork and display messages on the current tty" | ||
7121 | msgstr "No fa fork() i mostra els missatges al terminal actual." | ||
7122 | |||
7123 | +#: nscd/nscd.c:120 | ||
7124 | +msgid "Do not fork, but otherwise behave like a daemon" | ||
7125 | +msgstr "No fa fork() però continua comportant‐se com un dimoni." | ||
7126 | + | ||
7127 | # ivb (2001/10/30) | ||
7128 | # ivb Es refereix al _nombre_ de fils a llançar. | ||
7129 | -#: nscd/nscd.c:104 | ||
7130 | +#: nscd/nscd.c:121 | ||
7131 | msgid "NUMBER" | ||
7132 | msgstr "NOMBRE" | ||
7133 | |||
7134 | -#: nscd/nscd.c:104 | ||
7135 | +#: nscd/nscd.c:121 | ||
7136 | msgid "Start NUMBER threads" | ||
7137 | msgstr "Llança NOMBRE fils d’exeució." | ||
7138 | |||
7139 | -#: nscd/nscd.c:105 | ||
7140 | +#: nscd/nscd.c:122 | ||
7141 | msgid "Shut the server down" | ||
7142 | msgstr "Finalitza el servidor." | ||
7143 | |||
7144 | -#: nscd/nscd.c:106 | ||
7145 | +#: nscd/nscd.c:123 | ||
7146 | msgid "Print current configuration statistics" | ||
7147 | msgstr "Mostra estadístiques de la configuració actual." | ||
7148 | |||
7149 | -#: nscd/nscd.c:107 | ||
7150 | +#: nscd/nscd.c:124 | ||
7151 | msgid "TABLE" | ||
7152 | msgstr "TAULA" | ||
7153 | |||
7154 | -#: nscd/nscd.c:108 | ||
7155 | +#: nscd/nscd.c:125 | ||
7156 | msgid "Invalidate the specified cache" | ||
7157 | msgstr "Invalida la memòria cau especificada." | ||
7158 | |||
7159 | -#: nscd/nscd.c:109 | ||
7160 | +#: nscd/nscd.c:126 | ||
7161 | msgid "TABLE,yes" | ||
7162 | msgstr "TAULA,yes" | ||
7163 | |||
7164 | -#: nscd/nscd.c:110 | ||
7165 | +#: nscd/nscd.c:127 | ||
7166 | msgid "Use separate cache for each user" | ||
7167 | msgstr "Empra una memòria cau diferent per a cada usuari." | ||
7168 | |||
7169 | -#: nscd/nscd.c:115 | ||
7170 | +#: nscd/nscd.c:132 | ||
7171 | msgid "Name Service Cache Daemon." | ||
7172 | msgstr "Dimoni de memòria cau del servei de noms." | ||
7173 | |||
7174 | -#: nscd/nscd.c:147 nss/getent.c:952 nss/makedb.c:123 | ||
7175 | +#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:208 | ||
7176 | #, c-format | ||
7177 | msgid "wrong number of arguments" | ||
7178 | msgstr "el nombre d’arguments és incorrecte" | ||
7179 | |||
7180 | -#: nscd/nscd.c:157 | ||
7181 | +#: nscd/nscd.c:174 | ||
7182 | #, c-format | ||
7183 | msgid "failure while reading configuration file; this is fatal" | ||
7184 | msgstr "error en llegir el fitxer de configuració; açò és fatal" | ||
7185 | |||
7186 | -#: nscd/nscd.c:166 | ||
7187 | +#: nscd/nscd.c:183 | ||
7188 | #, c-format | ||
7189 | msgid "already running" | ||
7190 | msgstr "ja es troba en marxa" | ||
7191 | |||
7192 | -#: nscd/nscd.c:181 nscd/nscd.c:236 | ||
7193 | +#: nscd/nscd.c:201 nscd/nscd.c:259 | ||
7194 | #, c-format | ||
7195 | msgid "cannot fork" | ||
7196 | msgstr "ha fallat fork()" | ||
7197 | |||
7198 | -#: nscd/nscd.c:244 | ||
7199 | +#: nscd/nscd.c:268 | ||
7200 | #, c-format | ||
7201 | msgid "cannot change current working directory to \"/\"" | ||
7202 | msgstr "no s’ha pogut canviar el directori de treball a «/»" | ||
7203 | |||
7204 | -#: nscd/nscd.c:252 | ||
7205 | +#: nscd/nscd.c:276 | ||
7206 | msgid "Could not create log file" | ||
7207 | msgstr "no s’ha pogut crear el fitxer de registre" | ||
7208 | |||
7209 | -#: nscd/nscd.c:305 nscd/nscd.c:330 nscd/nscd_stat.c:174 | ||
7210 | +#: nscd/nscd.c:348 nscd/nscd.c:373 nscd/nscd_stat.c:173 | ||
7211 | #, c-format | ||
7212 | msgid "Only root is allowed to use this option!" | ||
7213 | msgstr "només root pot emprar aquesta opció" | ||
7214 | |||
7215 | -#: nscd/nscd.c:345 | ||
7216 | +#: nscd/nscd.c:388 | ||
7217 | #, c-format | ||
7218 | msgid "'%s' is not a known database" | ||
7219 | msgstr "«%s» no és una base de dades coneguda" | ||
7220 | |||
7221 | -#: nscd/nscd.c:370 nscd/nscd_stat.c:193 | ||
7222 | +#: nscd/nscd.c:413 nscd/nscd_stat.c:192 | ||
7223 | #, c-format | ||
7224 | msgid "write incomplete" | ||
7225 | msgstr "escriptura incompleta" | ||
7226 | |||
7227 | -#: nscd/nscd.c:381 | ||
7228 | +#: nscd/nscd.c:424 | ||
7229 | #, c-format | ||
7230 | msgid "cannot read invalidate ACK" | ||
7231 | msgstr "no s’ha pogut llegir l’ACK d’invalidació" | ||
7232 | |||
7233 | -#: nscd/nscd.c:387 | ||
7234 | +#: nscd/nscd.c:430 | ||
7235 | #, c-format | ||
7236 | msgid "invalidation failed" | ||
7237 | msgstr "la invalidació ha fallat" | ||
7238 | |||
7239 | -#: nscd/nscd.c:397 | ||
7240 | +#: nscd/nscd.c:440 | ||
7241 | #, c-format | ||
7242 | msgid "secure services not implemented anymore" | ||
7243 | msgstr "ja no s’implementen els serveis segurs" | ||
7244 | @@ -4227,60 +4367,55 @@ | ||
7245 | msgid "Must specify user name for stat-user option" | ||
7246 | msgstr "cal especificar un nom d’usuari per a l’opció «stat-user»" | ||
7247 | |||
7248 | -#: nscd/nscd_conf.c:245 | ||
7249 | +#: nscd/nscd_conf.c:258 | ||
7250 | #, c-format | ||
7251 | -msgid "invalid value for 'reload-count': %u" | ||
7252 | -msgstr "el valor de «reload-count» no és vàlid: %u" | ||
7253 | - | ||
7254 | -#: nscd/nscd_conf.c:260 | ||
7255 | -#, c-format | ||
7256 | msgid "Must specify value for restart-interval option" | ||
7257 | msgstr "cal especificar un valor per a l’opció «restart-interval»" | ||
7258 | |||
7259 | -#: nscd/nscd_conf.c:274 | ||
7260 | +#: nscd/nscd_conf.c:272 | ||
7261 | #, c-format | ||
7262 | msgid "Unknown option: %s %s %s" | ||
7263 | msgstr "l’opció no és coneguda: %s %s %s" | ||
7264 | |||
7265 | -#: nscd/nscd_conf.c:287 | ||
7266 | +#: nscd/nscd_conf.c:285 | ||
7267 | #, c-format | ||
7268 | msgid "cannot get current working directory: %s; disabling paranoia mode" | ||
7269 | msgstr "no s’ha pogut obtenir el directori de treball actual: %s; s’inhabilita el mode paranoic" | ||
7270 | |||
7271 | -#: nscd/nscd_conf.c:307 | ||
7272 | +#: nscd/nscd_conf.c:305 | ||
7273 | #, c-format | ||
7274 | msgid "maximum file size for %s database too small" | ||
7275 | msgstr "la mida màxima de fitxer per a la base de dades «%s» és massa menuda" | ||
7276 | |||
7277 | -#: nscd/nscd_stat.c:143 | ||
7278 | +#: nscd/nscd_stat.c:142 | ||
7279 | #, c-format | ||
7280 | msgid "cannot write statistics: %s" | ||
7281 | msgstr "no s’han pogut escriure les estadístiques: %s" | ||
7282 | |||
7283 | -#: nscd/nscd_stat.c:158 | ||
7284 | +#: nscd/nscd_stat.c:157 | ||
7285 | msgid "yes" | ||
7286 | msgstr "sí" | ||
7287 | |||
7288 | -#: nscd/nscd_stat.c:159 | ||
7289 | +#: nscd/nscd_stat.c:158 | ||
7290 | msgid "no" | ||
7291 | msgstr "no" | ||
7292 | |||
7293 | -#: nscd/nscd_stat.c:170 | ||
7294 | +#: nscd/nscd_stat.c:169 | ||
7295 | #, c-format | ||
7296 | msgid "Only root or %s is allowed to use this option!" | ||
7297 | msgstr "només root o %s pot emprar aquesta opció" | ||
7298 | |||
7299 | -#: nscd/nscd_stat.c:181 | ||
7300 | +#: nscd/nscd_stat.c:180 | ||
7301 | #, c-format | ||
7302 | msgid "nscd not running!\n" | ||
7303 | msgstr "nscd no està en marxa\n" | ||
7304 | |||
7305 | -#: nscd/nscd_stat.c:205 | ||
7306 | +#: nscd/nscd_stat.c:204 | ||
7307 | #, c-format | ||
7308 | msgid "cannot read statistics data" | ||
7309 | msgstr "no s’han pogut llegir les dades estadístiques" | ||
7310 | |||
7311 | -#: nscd/nscd_stat.c:208 | ||
7312 | +#: nscd/nscd_stat.c:207 | ||
7313 | #, c-format | ||
7314 | msgid "" | ||
7315 | "nscd configuration:\n" | ||
7316 | @@ -4291,28 +4426,28 @@ | ||
7317 | "\n" | ||
7318 | "%15d nivell de depuració del servidor\n" | ||
7319 | |||
7320 | -#: nscd/nscd_stat.c:232 | ||
7321 | +#: nscd/nscd_stat.c:231 | ||
7322 | #, c-format | ||
7323 | msgid "%3ud %2uh %2um %2lus server runtime\n" | ||
7324 | msgstr "%3ud %2uh %2um %2lus de funcionament del servidor\n" | ||
7325 | |||
7326 | -#: nscd/nscd_stat.c:235 | ||
7327 | +#: nscd/nscd_stat.c:234 | ||
7328 | #, c-format | ||
7329 | msgid " %2uh %2um %2lus server runtime\n" | ||
7330 | msgstr " %2uh %2um %2lus de funcionament del servidor\n" | ||
7331 | |||
7332 | -#: nscd/nscd_stat.c:237 | ||
7333 | +#: nscd/nscd_stat.c:236 | ||
7334 | #, c-format | ||
7335 | msgid " %2um %2lus server runtime\n" | ||
7336 | msgstr " %2um %2lus de funcionament del servidor\n" | ||
7337 | |||
7338 | -#: nscd/nscd_stat.c:239 | ||
7339 | +#: nscd/nscd_stat.c:238 | ||
7340 | #, c-format | ||
7341 | msgid " %2lus server runtime\n" | ||
7342 | msgstr " %2lus de funcionament del servidor\n" | ||
7343 | |||
7344 | # FIXME: interval, not internal. ivb | ||
7345 | -#: nscd/nscd_stat.c:241 | ||
7346 | +#: nscd/nscd_stat.c:240 | ||
7347 | #, c-format | ||
7348 | msgid "" | ||
7349 | "%15d current number of threads\n" | ||
7350 | @@ -4330,7 +4465,7 @@ | ||
7351 | "%15u nombre de recàrregues\n" | ||
7352 | |||
7353 | # El primer camp és passwd, group, shadow... ivb | ||
7354 | -#: nscd/nscd_stat.c:276 | ||
7355 | +#: nscd/nscd_stat.c:275 | ||
7356 | #, c-format | ||
7357 | msgid "" | ||
7358 | "\n" | ||
7359 | @@ -4382,98 +4517,98 @@ | ||
7360 | "%15s comprovar «/etc/%s» per si hi ha hagut canvis?\n" | ||
7361 | |||
7362 | # El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7363 | -#: nscd/pwdcache.c:423 | ||
7364 | +#: nscd/pwdcache.c:428 | ||
7365 | #, c-format | ||
7366 | msgid "Haven't found \"%s\" in password cache!" | ||
7367 | msgstr "no s’ha trobat «%s» a la memòria cau de «passwd»" | ||
7368 | |||
7369 | # El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7370 | -#: nscd/pwdcache.c:425 | ||
7371 | +#: nscd/pwdcache.c:430 | ||
7372 | #, c-format | ||
7373 | msgid "Reloading \"%s\" in password cache!" | ||
7374 | msgstr "es torna a carregar «%s» a la memòria cau de «passwd»" | ||
7375 | |||
7376 | -#: nscd/pwdcache.c:506 | ||
7377 | +#: nscd/pwdcache.c:511 | ||
7378 | #, c-format | ||
7379 | msgid "Invalid numeric uid \"%s\"!" | ||
7380 | msgstr "«%s» no és un identificador numèric d’usuari vàlid" | ||
7381 | |||
7382 | -#: nscd/selinux.c:156 | ||
7383 | +#: nscd/selinux.c:160 | ||
7384 | #, c-format | ||
7385 | msgid "Failed opening connection to the audit subsystem: %m" | ||
7386 | msgstr "no s’ha pogut obrir una connexió amb el sub‐sistema d’auditoria: %m" | ||
7387 | |||
7388 | -#: nscd/selinux.c:177 | ||
7389 | +#: nscd/selinux.c:181 | ||
7390 | msgid "Failed to set keep-capabilities" | ||
7391 | msgstr "no s’han pogut establir les capacitats a mantenir" | ||
7392 | |||
7393 | -#: nscd/selinux.c:178 nscd/selinux.c:241 | ||
7394 | +#: nscd/selinux.c:182 nscd/selinux.c:245 | ||
7395 | #, c-format | ||
7396 | msgid "prctl(KEEPCAPS) failed" | ||
7397 | msgstr "ha fallat prctl(KEEPCAPS)" | ||
7398 | |||
7399 | -#: nscd/selinux.c:192 | ||
7400 | +#: nscd/selinux.c:196 | ||
7401 | msgid "Failed to initialize drop of capabilities" | ||
7402 | msgstr "no s’ha pogut començar a renunciar a capacitats" | ||
7403 | |||
7404 | -#: nscd/selinux.c:193 | ||
7405 | +#: nscd/selinux.c:197 | ||
7406 | #, c-format | ||
7407 | msgid "cap_init failed" | ||
7408 | msgstr "ha fallat cap_init()" | ||
7409 | |||
7410 | -#: nscd/selinux.c:214 nscd/selinux.c:231 | ||
7411 | +#: nscd/selinux.c:218 nscd/selinux.c:235 | ||
7412 | msgid "Failed to drop capabilities" | ||
7413 | msgstr "no s’ha pogunt renunciar a les capacitats" | ||
7414 | |||
7415 | -#: nscd/selinux.c:215 nscd/selinux.c:232 | ||
7416 | +#: nscd/selinux.c:219 nscd/selinux.c:236 | ||
7417 | #, c-format | ||
7418 | msgid "cap_set_proc failed" | ||
7419 | msgstr "ha fallat cap_set_proc()" | ||
7420 | |||
7421 | -#: nscd/selinux.c:240 | ||
7422 | +#: nscd/selinux.c:244 | ||
7423 | msgid "Failed to unset keep-capabilities" | ||
7424 | msgstr "no s’han pogut desestablir les capacitats a mantenir" | ||
7425 | |||
7426 | -#: nscd/selinux.c:256 | ||
7427 | +#: nscd/selinux.c:260 | ||
7428 | msgid "Failed to determine if kernel supports SELinux" | ||
7429 | msgstr "no s’ha pogut determinar si el nucli accepta SELinux" | ||
7430 | |||
7431 | -#: nscd/selinux.c:271 | ||
7432 | +#: nscd/selinux.c:275 | ||
7433 | #, c-format | ||
7434 | msgid "Failed to start AVC thread" | ||
7435 | msgstr "no s’ha pogut iniciar el fil d’execució de l’AVC" | ||
7436 | |||
7437 | -#: nscd/selinux.c:293 | ||
7438 | +#: nscd/selinux.c:297 | ||
7439 | #, c-format | ||
7440 | msgid "Failed to create AVC lock" | ||
7441 | msgstr "no s’ha pogut crear el blocatge de l’AVC" | ||
7442 | |||
7443 | -#: nscd/selinux.c:333 | ||
7444 | +#: nscd/selinux.c:337 | ||
7445 | #, c-format | ||
7446 | msgid "Failed to start AVC" | ||
7447 | msgstr "no s’ha pogut iniciar l’AVC" | ||
7448 | |||
7449 | -#: nscd/selinux.c:335 | ||
7450 | +#: nscd/selinux.c:339 | ||
7451 | msgid "Access Vector Cache (AVC) started" | ||
7452 | msgstr "s’ha iniciat la memòria cau de vectors d’accés (AVC)" | ||
7453 | |||
7454 | -#: nscd/selinux.c:356 | ||
7455 | +#: nscd/selinux.c:360 | ||
7456 | msgid "Error getting context of socket peer" | ||
7457 | msgstr "error en obtenir el context de l’extrem remot del connector" | ||
7458 | |||
7459 | -#: nscd/selinux.c:361 | ||
7460 | +#: nscd/selinux.c:365 | ||
7461 | msgid "Error getting context of nscd" | ||
7462 | msgstr "error en obtenir el context d’«nscd»" | ||
7463 | |||
7464 | -#: nscd/selinux.c:367 | ||
7465 | +#: nscd/selinux.c:371 | ||
7466 | msgid "Error getting sid from context" | ||
7467 | msgstr "error en obtenir el SID del context" | ||
7468 | |||
7469 | -#: nscd/selinux.c:374 | ||
7470 | +#: nscd/selinux.c:378 | ||
7471 | msgid "compile-time support for database policy missing" | ||
7472 | msgstr "no s’ha compiŀlat la compatibilitat amb polítiques de bases de dades" | ||
7473 | |||
7474 | -#: nscd/selinux.c:407 | ||
7475 | +#: nscd/selinux.c:411 | ||
7476 | #, c-format | ||
7477 | msgid "" | ||
7478 | "\n" | ||
7479 | @@ -4501,70 +4636,79 @@ | ||
7480 | "%15u fallades de CAV\n" | ||
7481 | |||
7482 | # El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7483 | -#: nscd/servicescache.c:381 | ||
7484 | +#: nscd/servicescache.c:387 | ||
7485 | #, c-format | ||
7486 | msgid "Haven't found \"%s\" in services cache!" | ||
7487 | msgstr "no s’ha trobat «%s» a la memòria cau de «services»" | ||
7488 | |||
7489 | # El nom de la base de dades s’usa més a sovint que la descripció. ivb | ||
7490 | -#: nscd/servicescache.c:383 | ||
7491 | +#: nscd/servicescache.c:389 | ||
7492 | #, c-format | ||
7493 | msgid "Reloading \"%s\" in services cache!" | ||
7494 | msgstr "es torna a carregar «%s» a la memòria cau de «services»" | ||
7495 | |||
7496 | -#: nss/getent.c:54 | ||
7497 | +#: nss/getent.c:53 | ||
7498 | msgid "database [key ...]" | ||
7499 | msgstr "BASE_DE_DADES [CLAU…]" | ||
7500 | |||
7501 | # Més ajudes. ivb | ||
7502 | -#: nss/getent.c:59 | ||
7503 | +#: nss/getent.c:58 | ||
7504 | msgid "Service configuration to be used" | ||
7505 | msgstr "Configuració a emprar del servei." | ||
7506 | |||
7507 | -#: nss/getent.c:60 | ||
7508 | +#: nss/getent.c:59 | ||
7509 | msgid "disable IDN encoding" | ||
7510 | msgstr "Inhabilita la codificació IDN." | ||
7511 | |||
7512 | -#: nss/getent.c:65 | ||
7513 | +#: nss/getent.c:64 | ||
7514 | msgid "Get entries from administrative database." | ||
7515 | msgstr "Obté entrades de les bases de dades d’administració." | ||
7516 | |||
7517 | -#: nss/getent.c:149 nss/getent.c:479 | ||
7518 | +#: nss/getent.c:148 nss/getent.c:477 nss/getent.c:522 | ||
7519 | #, c-format | ||
7520 | msgid "Enumeration not supported on %s\n" | ||
7521 | msgstr "no es permet l’enumeració sobre «%s»\n" | ||
7522 | |||
7523 | -#: nss/getent.c:866 | ||
7524 | +#: nss/getent.c:913 | ||
7525 | #, c-format | ||
7526 | msgid "Unknown database name" | ||
7527 | msgstr "el nom de la base de dades no és conegut" | ||
7528 | |||
7529 | -#: nss/getent.c:896 | ||
7530 | +#: nss/getent.c:943 | ||
7531 | msgid "Supported databases:\n" | ||
7532 | msgstr "Bases de dades acceptades:\n" | ||
7533 | |||
7534 | -#: nss/getent.c:962 | ||
7535 | +#: nss/getent.c:1009 | ||
7536 | #, c-format | ||
7537 | msgid "Unknown database: %s\n" | ||
7538 | msgstr "la base de dades no és coneguda: %s\n" | ||
7539 | |||
7540 | -#: nss/makedb.c:60 | ||
7541 | +#: nss/makedb.c:118 | ||
7542 | msgid "Convert key to lower case" | ||
7543 | msgstr "Converteix la clau a minúscules." | ||
7544 | |||
7545 | -#: nss/makedb.c:63 | ||
7546 | +#: nss/makedb.c:121 | ||
7547 | msgid "Do not print messages while building database" | ||
7548 | msgstr "No mostra cap missatge mentre es crea la base de dades." | ||
7549 | |||
7550 | -#: nss/makedb.c:65 | ||
7551 | +#: nss/makedb.c:123 | ||
7552 | msgid "Print content of database file, one entry a line" | ||
7553 | msgstr "Mostra el contingut del fitxer de base de dades, a entrada per línia." | ||
7554 | |||
7555 | -#: nss/makedb.c:70 | ||
7556 | -msgid "Create simple DB database from textual input." | ||
7557 | -msgstr "Crea una base de dades DB simple partint de l’entrada textual." | ||
7558 | +#: nss/makedb.c:124 | ||
7559 | +msgid "CHAR" | ||
7560 | +msgstr "CARÀCTER" | ||
7561 | |||
7562 | -#: nss/makedb.c:73 | ||
7563 | +# No tinc massa clar el significat. ivb | ||
7564 | +#: nss/makedb.c:125 | ||
7565 | +msgid "Generated line not part of iteration" | ||
7566 | +msgstr "Línia generada a excloure de la iteració." | ||
7567 | + | ||
7568 | +#: nss/makedb.c:130 | ||
7569 | +msgid "Create simple database from textual input." | ||
7570 | +msgstr "Crea una base de dades simple partint de l’entrada textual." | ||
7571 | + | ||
7572 | +#: nss/makedb.c:133 | ||
7573 | msgid "" | ||
7574 | "INPUT-FILE OUTPUT-FILE\n" | ||
7575 | "-o OUTPUT-FILE INPUT-FILE\n" | ||
7576 | @@ -4574,51 +4718,87 @@ | ||
7577 | "-o FITXER_EIXIDA FITXER_ENTRADA\n" | ||
7578 | "-u FITXER_ENTRADA" | ||
7579 | |||
7580 | -#: nss/makedb.c:142 | ||
7581 | +#: nss/makedb.c:229 | ||
7582 | #, c-format | ||
7583 | -msgid "No usable database library found." | ||
7584 | -msgstr "no s’ha trobat cap biblioteca usable de base de dades" | ||
7585 | +msgid "cannot open database file `%s'" | ||
7586 | +msgstr "no s’ha pogut obrir el fitxer de base de dades «%s»" | ||
7587 | |||
7588 | -#: nss/makedb.c:149 | ||
7589 | +#: nss/makedb.c:274 | ||
7590 | #, c-format | ||
7591 | -msgid "cannot open database file `%s': %s" | ||
7592 | -msgstr "no s’ha pogut obrir el fitxer de base de dades «%s»: %s" | ||
7593 | +msgid "no entries to be processed" | ||
7594 | +msgstr "no hi ha cap entrada que processar" | ||
7595 | |||
7596 | -#: nss/makedb.c:151 | ||
7597 | -msgid "incorrectly formatted file" | ||
7598 | -msgstr "el fitxer no té un format vàlid" | ||
7599 | +#: nss/makedb.c:284 | ||
7600 | +#, c-format | ||
7601 | +msgid "cannot create temporary file name" | ||
7602 | +msgstr "no s’ha pogut crear un nom de fitxer temporal" | ||
7603 | |||
7604 | -#: nss/makedb.c:331 | ||
7605 | +#: nss/makedb.c:306 | ||
7606 | +#, c-format | ||
7607 | +msgid "cannot stat newly created file" | ||
7608 | +msgstr "ha fallat stat() sobre el nou fitxer temporal" | ||
7609 | + | ||
7610 | +#: nss/makedb.c:317 | ||
7611 | +#, c-format | ||
7612 | +msgid "cannot rename temporary file" | ||
7613 | +msgstr "no s’ha pogut reanomenar el fitxer temporal" | ||
7614 | + | ||
7615 | +#: nss/makedb.c:533 nss/makedb.c:556 | ||
7616 | +#, c-format | ||
7617 | +msgid "cannot create search tree" | ||
7618 | +msgstr "no s’ha pogut crear l’arbre de cerca" | ||
7619 | + | ||
7620 | +#: nss/makedb.c:562 | ||
7621 | msgid "duplicate key" | ||
7622 | msgstr "la clau és duplicada" | ||
7623 | |||
7624 | -#: nss/makedb.c:337 | ||
7625 | +#: nss/makedb.c:574 | ||
7626 | #, c-format | ||
7627 | -msgid "while writing database file" | ||
7628 | -msgstr "en escriure el fitxer de base dades" | ||
7629 | - | ||
7630 | -#: nss/makedb.c:348 | ||
7631 | -#, c-format | ||
7632 | msgid "problems while reading `%s'" | ||
7633 | msgstr "problemes en llegir «%s»" | ||
7634 | |||
7635 | -#: nss/makedb.c:368 nss/makedb.c:385 | ||
7636 | +#: nss/makedb.c:801 | ||
7637 | #, c-format | ||
7638 | -msgid "while reading database" | ||
7639 | -msgstr "en llegir la base de dades" | ||
7640 | +msgid "failed to write new database file" | ||
7641 | +msgstr "no s’ha pogut escriure el nou fitxer de base de dades" | ||
7642 | |||
7643 | -#: posix/getconf.c:1036 | ||
7644 | +#: nss/makedb.c:814 | ||
7645 | #, c-format | ||
7646 | +msgid "cannot stat database file" | ||
7647 | +msgstr "ha fallat stat() sobre el fitxer de base de dades" | ||
7648 | + | ||
7649 | +#: nss/makedb.c:819 | ||
7650 | +#, c-format | ||
7651 | +msgid "cannot map database file" | ||
7652 | +msgstr "no s’ha pogut mapar el fitxer de base de dades" | ||
7653 | + | ||
7654 | +#: nss/makedb.c:822 | ||
7655 | +#, c-format | ||
7656 | +msgid "file not a database file" | ||
7657 | +msgstr "el fitxer no és un fitxer de base dades" | ||
7658 | + | ||
7659 | +#: nss/makedb.c:873 | ||
7660 | +#, c-format | ||
7661 | +msgid "cannot set file creation context for `%s'" | ||
7662 | +msgstr "no s’ha pogut establir el context de creació per a «%s»" | ||
7663 | + | ||
7664 | +#: ports/sysdeps/unix/sysv/linux/ia64/makecontext.c:62 | ||
7665 | +#, c-format | ||
7666 | +msgid "makecontext: does not know how to handle more than 8 arguments\n" | ||
7667 | +msgstr "makecontext: no es poden tractar més de 8 arguments\n" | ||
7668 | + | ||
7669 | +#: posix/getconf.c:1035 | ||
7670 | +#, c-format | ||
7671 | msgid "Usage: %s [-v specification] variable_name [pathname]\n" | ||
7672 | msgstr "Forma d’ús: %s [-v ESPECIFICACIÓ] NOM_DE_VARIABLE [CAMÍ]\n" | ||
7673 | |||
7674 | # S’alinea amb el nom de programa de dalt. ivb | ||
7675 | -#: posix/getconf.c:1039 | ||
7676 | +#: posix/getconf.c:1038 | ||
7677 | #, c-format | ||
7678 | msgid " %s -a [pathname]\n" | ||
7679 | msgstr " %s -a [CAMÍ]\n" | ||
7680 | |||
7681 | -#: posix/getconf.c:1115 | ||
7682 | +#: posix/getconf.c:1114 | ||
7683 | #, c-format | ||
7684 | msgid "" | ||
7685 | "Usage: getconf [-v SPEC] VAR\n" | ||
7686 | @@ -4637,152 +4817,152 @@ | ||
7687 | "de compiŀlació indicat.\n" | ||
7688 | "\n" | ||
7689 | |||
7690 | -#: posix/getconf.c:1173 | ||
7691 | +#: posix/getconf.c:1172 | ||
7692 | #, c-format | ||
7693 | msgid "unknown specification \"%s\"" | ||
7694 | msgstr "l’especificació «%s» no és coneguda" | ||
7695 | |||
7696 | -#: posix/getconf.c:1225 | ||
7697 | +#: posix/getconf.c:1224 | ||
7698 | #, c-format | ||
7699 | msgid "Couldn't execute %s" | ||
7700 | msgstr "no s’ha pogut executar «%s»" | ||
7701 | |||
7702 | # ivb (2001/11/01) | ||
7703 | # ivb Es refereix a variables de configuració -> femení. | ||
7704 | -#: posix/getconf.c:1269 posix/getconf.c:1285 | ||
7705 | +#: posix/getconf.c:1268 posix/getconf.c:1284 | ||
7706 | msgid "undefined" | ||
7707 | msgstr "indefinida" | ||
7708 | |||
7709 | -#: posix/getconf.c:1307 | ||
7710 | +#: posix/getconf.c:1306 | ||
7711 | #, c-format | ||
7712 | msgid "Unrecognized variable `%s'" | ||
7713 | msgstr "la variable «%s» no és reconeguda" | ||
7714 | |||
7715 | -#: posix/getopt.c:594 posix/getopt.c:623 | ||
7716 | +#: posix/getopt.c:593 posix/getopt.c:622 | ||
7717 | #, c-format | ||
7718 | msgid "%s: option '%s' is ambiguous; possibilities:" | ||
7719 | msgstr "%s: l’opció «%s» és ambígua; possibilitats:" | ||
7720 | |||
7721 | -#: posix/getopt.c:664 posix/getopt.c:668 | ||
7722 | +#: posix/getopt.c:663 posix/getopt.c:667 | ||
7723 | #, c-format | ||
7724 | msgid "%s: option '--%s' doesn't allow an argument\n" | ||
7725 | msgstr "%s: l’opció «--%s» no admet arguments\n" | ||
7726 | |||
7727 | -#: posix/getopt.c:677 posix/getopt.c:682 | ||
7728 | +#: posix/getopt.c:676 posix/getopt.c:681 | ||
7729 | #, c-format | ||
7730 | msgid "%s: option '%c%s' doesn't allow an argument\n" | ||
7731 | msgstr "%s: l’opció «%c%s» no admet arguments\n" | ||
7732 | |||
7733 | -#: posix/getopt.c:725 posix/getopt.c:744 | ||
7734 | +#: posix/getopt.c:724 posix/getopt.c:743 | ||
7735 | #, c-format | ||
7736 | msgid "%s: option '--%s' requires an argument\n" | ||
7737 | msgstr "%s: l’opció «--%s» necessita un argument\n" | ||
7738 | |||
7739 | -#: posix/getopt.c:782 posix/getopt.c:785 | ||
7740 | +#: posix/getopt.c:781 posix/getopt.c:784 | ||
7741 | #, c-format | ||
7742 | msgid "%s: unrecognized option '--%s'\n" | ||
7743 | msgstr "%s: l’opció «--%s» no és reconeguda\n" | ||
7744 | |||
7745 | -#: posix/getopt.c:793 posix/getopt.c:796 | ||
7746 | +#: posix/getopt.c:792 posix/getopt.c:795 | ||
7747 | #, c-format | ||
7748 | msgid "%s: unrecognized option '%c%s'\n" | ||
7749 | msgstr "%s: l’opció «%c%s» no és reconeguda\n" | ||
7750 | |||
7751 | -#: posix/getopt.c:845 posix/getopt.c:848 | ||
7752 | +#: posix/getopt.c:844 posix/getopt.c:847 | ||
7753 | #, c-format | ||
7754 | msgid "%s: invalid option -- '%c'\n" | ||
7755 | msgstr "%s: l’opció «%c» no és vàlida\n" | ||
7756 | |||
7757 | -#: posix/getopt.c:898 posix/getopt.c:915 posix/getopt.c:1123 | ||
7758 | -#: posix/getopt.c:1141 | ||
7759 | +#: posix/getopt.c:900 posix/getopt.c:917 posix/getopt.c:1127 | ||
7760 | +#: posix/getopt.c:1145 | ||
7761 | #, c-format | ||
7762 | msgid "%s: option requires an argument -- '%c'\n" | ||
7763 | msgstr "%s: l’opció «%c» necessita un argument\n" | ||
7764 | |||
7765 | -#: posix/getopt.c:971 posix/getopt.c:987 | ||
7766 | +#: posix/getopt.c:973 posix/getopt.c:989 | ||
7767 | #, c-format | ||
7768 | msgid "%s: option '-W %s' is ambiguous\n" | ||
7769 | msgstr "%s: l’opció «-W %s» és ambígua\n" | ||
7770 | |||
7771 | -#: posix/getopt.c:1011 posix/getopt.c:1029 | ||
7772 | +#: posix/getopt.c:1013 posix/getopt.c:1031 | ||
7773 | #, c-format | ||
7774 | msgid "%s: option '-W %s' doesn't allow an argument\n" | ||
7775 | msgstr "%s: l’opció «-W %s» no admet arguments\n" | ||
7776 | |||
7777 | -#: posix/getopt.c:1050 posix/getopt.c:1068 | ||
7778 | +#: posix/getopt.c:1052 posix/getopt.c:1070 | ||
7779 | #, c-format | ||
7780 | msgid "%s: option '-W %s' requires an argument\n" | ||
7781 | msgstr "%s: l’opció «-W %s» necessita un argument\n" | ||
7782 | |||
7783 | -#: posix/regcomp.c:135 | ||
7784 | +#: posix/regcomp.c:134 | ||
7785 | msgid "No match" | ||
7786 | msgstr "No hi ha cap coincidència" | ||
7787 | |||
7788 | -#: posix/regcomp.c:138 | ||
7789 | +#: posix/regcomp.c:137 | ||
7790 | msgid "Invalid regular expression" | ||
7791 | msgstr "L’expressió regular no és vàlida" | ||
7792 | |||
7793 | -#: posix/regcomp.c:141 | ||
7794 | +#: posix/regcomp.c:140 | ||
7795 | msgid "Invalid collation character" | ||
7796 | msgstr "El caràcter d’ordenació no és vàlid" | ||
7797 | |||
7798 | -#: posix/regcomp.c:144 | ||
7799 | +#: posix/regcomp.c:143 | ||
7800 | msgid "Invalid character class name" | ||
7801 | msgstr "El nom de la classe de caràcters no és vàlid" | ||
7802 | |||
7803 | -#: posix/regcomp.c:147 | ||
7804 | +#: posix/regcomp.c:146 | ||
7805 | msgid "Trailing backslash" | ||
7806 | msgstr "Hi ha una barra invertida sobrant al final" | ||
7807 | |||
7808 | -#: posix/regcomp.c:150 | ||
7809 | +#: posix/regcomp.c:149 | ||
7810 | msgid "Invalid back reference" | ||
7811 | msgstr "La referència cap enrere no és vàlida" | ||
7812 | |||
7813 | -#: posix/regcomp.c:153 | ||
7814 | +#: posix/regcomp.c:152 | ||
7815 | msgid "Unmatched [ or [^" | ||
7816 | msgstr "«[» o «[^» desaparellat" | ||
7817 | |||
7818 | -#: posix/regcomp.c:156 | ||
7819 | +#: posix/regcomp.c:155 | ||
7820 | msgid "Unmatched ( or \\(" | ||
7821 | msgstr "«(» o «\\(» desaparellat" | ||
7822 | |||
7823 | -#: posix/regcomp.c:159 | ||
7824 | +#: posix/regcomp.c:158 | ||
7825 | msgid "Unmatched \\{" | ||
7826 | msgstr "«\\{» desaparellat" | ||
7827 | |||
7828 | -#: posix/regcomp.c:162 | ||
7829 | +#: posix/regcomp.c:161 | ||
7830 | msgid "Invalid content of \\{\\}" | ||
7831 | msgstr "El contingut de «\\{\\}» no és vàlid" | ||
7832 | |||
7833 | -#: posix/regcomp.c:165 | ||
7834 | +#: posix/regcomp.c:164 | ||
7835 | msgid "Invalid range end" | ||
7836 | msgstr "El final del rang no és vàlid" | ||
7837 | |||
7838 | -#: posix/regcomp.c:168 | ||
7839 | +#: posix/regcomp.c:167 | ||
7840 | msgid "Memory exhausted" | ||
7841 | msgstr "La memòria s’ha exhaurit" | ||
7842 | |||
7843 | -#: posix/regcomp.c:171 | ||
7844 | +#: posix/regcomp.c:170 | ||
7845 | msgid "Invalid preceding regular expression" | ||
7846 | msgstr "L’expressió regular precedent és incorrecta" | ||
7847 | |||
7848 | -#: posix/regcomp.c:174 | ||
7849 | +#: posix/regcomp.c:173 | ||
7850 | msgid "Premature end of regular expression" | ||
7851 | msgstr "Fi prematura de l’expressió regular" | ||
7852 | |||
7853 | -#: posix/regcomp.c:177 | ||
7854 | +#: posix/regcomp.c:176 | ||
7855 | msgid "Regular expression too big" | ||
7856 | msgstr "L’expressió regular és massa llarga" | ||
7857 | |||
7858 | -#: posix/regcomp.c:180 | ||
7859 | +#: posix/regcomp.c:179 | ||
7860 | msgid "Unmatched ) or \\)" | ||
7861 | msgstr "«)» o «\\)» desaparellat" | ||
7862 | |||
7863 | -#: posix/regcomp.c:680 | ||
7864 | +#: posix/regcomp.c:679 | ||
7865 | msgid "No previous regular expression" | ||
7866 | msgstr "No hi ha expressió regular prèvia" | ||
7867 | |||
7868 | -#: posix/wordexp.c:1832 | ||
7869 | +#: posix/wordexp.c:1830 | ||
7870 | msgid "parameter null or not set" | ||
7871 | msgstr "el paràmetre és nul o no s’ha establert" | ||
7872 | |||
7873 | @@ -4817,27 +4997,27 @@ | ||
7874 | # ivb (2002/02/08) | ||
7875 | # ivb En realitat es refereic a la paraula clau d'«/etc/host.conf» «trim», | ||
7876 | # ivb però crec que així queda més clar. | ||
7877 | -#: resolv/res_hconf.c:124 | ||
7878 | +#: resolv/res_hconf.c:122 | ||
7879 | #, c-format | ||
7880 | msgid "%s: line %d: cannot specify more than %d trim domains" | ||
7881 | msgstr "%s: línia %d: no es poden especificar més de %d dominis a retallar" | ||
7882 | |||
7883 | -#: resolv/res_hconf.c:145 | ||
7884 | +#: resolv/res_hconf.c:143 | ||
7885 | #, c-format | ||
7886 | msgid "%s: line %d: list delimiter not followed by domain" | ||
7887 | msgstr "%s: línia %d: cal un domini a continuació del delimitador de llista" | ||
7888 | |||
7889 | -#: resolv/res_hconf.c:204 | ||
7890 | +#: resolv/res_hconf.c:202 | ||
7891 | #, c-format | ||
7892 | msgid "%s: line %d: expected `on' or `off', found `%s'\n" | ||
7893 | msgstr "%s: línia %d: cal «on» o «off», però s’ha trobat «%s»\n" | ||
7894 | |||
7895 | -#: resolv/res_hconf.c:247 | ||
7896 | +#: resolv/res_hconf.c:245 | ||
7897 | #, c-format | ||
7898 | msgid "%s: line %d: bad command `%s'\n" | ||
7899 | msgstr "%s: línia %d: l’ordre «%s» no és vàlida\n" | ||
7900 | |||
7901 | -#: resolv/res_hconf.c:282 | ||
7902 | +#: resolv/res_hconf.c:280 | ||
7903 | #, c-format | ||
7904 | msgid "%s: line %d: ignoring trailing garbage `%s'\n" | ||
7905 | msgstr "%s: línia %d: es descarta la brossa «%s» al final de la línia\n" | ||
7906 | @@ -4982,208 +5162,208 @@ | ||
7907 | msgid "Device disconnected" | ||
7908 | msgstr "El dispositiu ha estat desconnectat" | ||
7909 | |||
7910 | -#: stdio-common/psiginfo.c:145 | ||
7911 | +#: stdio-common/psiginfo.c:139 | ||
7912 | msgid "Signal sent by kill()" | ||
7913 | msgstr "Senyal enviat per kill()" | ||
7914 | |||
7915 | -#: stdio-common/psiginfo.c:148 | ||
7916 | +#: stdio-common/psiginfo.c:142 | ||
7917 | msgid "Signal sent by sigqueue()" | ||
7918 | msgstr "Senyal enviat per sigqueue()" | ||
7919 | |||
7920 | -#: stdio-common/psiginfo.c:151 | ||
7921 | +#: stdio-common/psiginfo.c:145 | ||
7922 | msgid "Signal generated by the expiration of a timer" | ||
7923 | msgstr "Senyal generat en expirar un temporitzador" | ||
7924 | |||
7925 | -#: stdio-common/psiginfo.c:154 | ||
7926 | +#: stdio-common/psiginfo.c:148 | ||
7927 | msgid "Signal generated by the completion of an asynchronous I/O request" | ||
7928 | msgstr "Senyal generat en completar una petició d’E/S asíncrona" | ||
7929 | |||
7930 | -#: stdio-common/psiginfo.c:158 | ||
7931 | +#: stdio-common/psiginfo.c:152 | ||
7932 | msgid "Signal generated by the arrival of a message on an empty message queue" | ||
7933 | msgstr "Senyal generat en arribar un missatge a una cua de missatges buida" | ||
7934 | |||
7935 | -#: stdio-common/psiginfo.c:163 | ||
7936 | +#: stdio-common/psiginfo.c:157 | ||
7937 | msgid "Signal sent by tkill()" | ||
7938 | msgstr "Senyal enviat per tkill()" | ||
7939 | |||
7940 | -#: stdio-common/psiginfo.c:168 | ||
7941 | +#: stdio-common/psiginfo.c:162 | ||
7942 | msgid "Signal generated by the completion of an asynchronous name lookup request" | ||
7943 | msgstr "Senyal generat en completar una petició asíncrona de consulta de nom" | ||
7944 | |||
7945 | -#: stdio-common/psiginfo.c:174 | ||
7946 | +#: stdio-common/psiginfo.c:168 | ||
7947 | msgid "Signal generated by the completion of an I/O request" | ||
7948 | msgstr "Senyal generat en completar una petició d’E/S" | ||
7949 | |||
7950 | -#: stdio-common/psiginfo.c:180 | ||
7951 | +#: stdio-common/psiginfo.c:174 | ||
7952 | msgid "Signal sent by the kernel" | ||
7953 | msgstr "Senyal enviat pel nucli" | ||
7954 | |||
7955 | -#: stdio-common/psiginfo.c:204 | ||
7956 | +#: stdio-common/psiginfo.c:198 | ||
7957 | #, c-format | ||
7958 | msgid "Unknown signal %d\n" | ||
7959 | msgstr "Senyal desconegut %d\n" | ||
7960 | |||
7961 | -#: stdio-common/psignal.c:51 | ||
7962 | +#: stdio-common/psignal.c:43 | ||
7963 | #, c-format | ||
7964 | msgid "%s%sUnknown signal %d\n" | ||
7965 | msgstr "%s%sSenyal desconegut %d\n" | ||
7966 | |||
7967 | -#: stdio-common/psignal.c:52 | ||
7968 | +#: stdio-common/psignal.c:44 | ||
7969 | msgid "Unknown signal" | ||
7970 | msgstr "Senyal desconegut" | ||
7971 | |||
7972 | -#: string/_strerror.c:47 sysdeps/mach/_strerror.c:87 | ||
7973 | +#: string/_strerror.c:46 sysdeps/mach/_strerror.c:86 | ||
7974 | msgid "Unknown error " | ||
7975 | msgstr "Error desconegut " | ||
7976 | |||
7977 | -#: string/strerror.c:43 | ||
7978 | +#: string/strerror.c:42 | ||
7979 | msgid "Unknown error" | ||
7980 | msgstr "Error desconegut" | ||
7981 | |||
7982 | -#: string/strsignal.c:65 | ||
7983 | +#: string/strsignal.c:60 | ||
7984 | #, c-format | ||
7985 | msgid "Real-time signal %d" | ||
7986 | msgstr "Senyal de temps real %d" | ||
7987 | |||
7988 | -#: string/strsignal.c:69 | ||
7989 | +#: string/strsignal.c:64 | ||
7990 | #, c-format | ||
7991 | msgid "Unknown signal %d" | ||
7992 | msgstr "Senyal desconegut %d" | ||
7993 | |||
7994 | -#: sunrpc/auth_unix.c:113 sunrpc/clnt_tcp.c:125 sunrpc/clnt_udp.c:136 | ||
7995 | -#: sunrpc/clnt_unix.c:126 sunrpc/svc_tcp.c:173 sunrpc/svc_tcp.c:218 | ||
7996 | -#: sunrpc/svc_udp.c:147 sunrpc/svc_unix.c:174 sunrpc/svc_unix.c:215 | ||
7997 | -#: sunrpc/xdr.c:632 sunrpc/xdr.c:792 sunrpc/xdr_array.c:100 | ||
7998 | -#: sunrpc/xdr_rec.c:154 sunrpc/xdr_ref.c:79 | ||
7999 | +#: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:134 | ||
8000 | +#: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:188 sunrpc/svc_tcp.c:233 | ||
8001 | +#: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229 | ||
8002 | +#: sunrpc/xdr.c:630 sunrpc/xdr.c:790 sunrpc/xdr_array.c:97 | ||
8003 | +#: sunrpc/xdr_rec.c:151 sunrpc/xdr_ref.c:76 | ||
8004 | msgid "out of memory\n" | ||
8005 | msgstr "no resta memòria\n" | ||
8006 | |||
8007 | # ivb (2001/11/01) | ||
8008 | # ivb D'acord amb un comentari del propi fitxer. | ||
8009 | -#: sunrpc/auth_unix.c:351 | ||
8010 | +#: sunrpc/auth_unix.c:349 | ||
8011 | msgid "auth_unix.c: Fatal marshalling problem" | ||
8012 | msgstr "auth_none.c: error fatal de preserialització" | ||
8013 | |||
8014 | -#: sunrpc/clnt_perr.c:98 sunrpc/clnt_perr.c:114 | ||
8015 | +#: sunrpc/clnt_perr.c:95 sunrpc/clnt_perr.c:111 | ||
8016 | #, c-format | ||
8017 | msgid "%s: %s; low version = %lu, high version = %lu" | ||
8018 | msgstr "%s: %s; versió menor = %lu, versió major = %lu" | ||
8019 | |||
8020 | -#: sunrpc/clnt_perr.c:105 | ||
8021 | +#: sunrpc/clnt_perr.c:102 | ||
8022 | #, c-format | ||
8023 | msgid "%s: %s; why = %s\n" | ||
8024 | msgstr "%s: %s; causa = %s\n" | ||
8025 | |||
8026 | -#: sunrpc/clnt_perr.c:107 | ||
8027 | +#: sunrpc/clnt_perr.c:104 | ||
8028 | #, c-format | ||
8029 | msgid "%s: %s; why = (unknown authentication error - %d)\n" | ||
8030 | msgstr "%s: %s; causa = (error desconegut d’autenticació: %d)\n" | ||
8031 | |||
8032 | -#: sunrpc/clnt_perr.c:156 | ||
8033 | +#: sunrpc/clnt_perr.c:153 | ||
8034 | msgid "RPC: Success" | ||
8035 | msgstr "RPC: Èxit" | ||
8036 | |||
8037 | -#: sunrpc/clnt_perr.c:159 | ||
8038 | +#: sunrpc/clnt_perr.c:156 | ||
8039 | msgid "RPC: Can't encode arguments" | ||
8040 | msgstr "RPC: No s’han pogut codificar els arguments" | ||
8041 | |||
8042 | -#: sunrpc/clnt_perr.c:163 | ||
8043 | +#: sunrpc/clnt_perr.c:160 | ||
8044 | msgid "RPC: Can't decode result" | ||
8045 | msgstr "RPC: No s’ha pogut descodificar el resultat" | ||
8046 | |||
8047 | -#: sunrpc/clnt_perr.c:167 | ||
8048 | +#: sunrpc/clnt_perr.c:164 | ||
8049 | msgid "RPC: Unable to send" | ||
8050 | msgstr "RPC: No s’ha pogut fer l’enviament" | ||
8051 | |||
8052 | -#: sunrpc/clnt_perr.c:171 | ||
8053 | +#: sunrpc/clnt_perr.c:168 | ||
8054 | msgid "RPC: Unable to receive" | ||
8055 | msgstr "RPC: No s’ha pogut rebre" | ||
8056 | |||
8057 | -#: sunrpc/clnt_perr.c:175 | ||
8058 | +#: sunrpc/clnt_perr.c:172 | ||
8059 | msgid "RPC: Timed out" | ||
8060 | msgstr "RPC: S’ha excedit el temps" | ||
8061 | |||
8062 | -#: sunrpc/clnt_perr.c:179 | ||
8063 | +#: sunrpc/clnt_perr.c:176 | ||
8064 | msgid "RPC: Incompatible versions of RPC" | ||
8065 | msgstr "RPC: Les versions d’RPC són incompatibles" | ||
8066 | |||
8067 | -#: sunrpc/clnt_perr.c:183 | ||
8068 | +#: sunrpc/clnt_perr.c:180 | ||
8069 | msgid "RPC: Authentication error" | ||
8070 | msgstr "RPC: Error d’autenticació" | ||
8071 | |||
8072 | -#: sunrpc/clnt_perr.c:187 | ||
8073 | +#: sunrpc/clnt_perr.c:184 | ||
8074 | msgid "RPC: Program unavailable" | ||
8075 | msgstr "RPC: El programa no es troba disponible" | ||
8076 | |||
8077 | -#: sunrpc/clnt_perr.c:191 | ||
8078 | +#: sunrpc/clnt_perr.c:188 | ||
8079 | msgid "RPC: Program/version mismatch" | ||
8080 | msgstr "RPC: No hi ha coincidència programa/versió" | ||
8081 | |||
8082 | -#: sunrpc/clnt_perr.c:195 | ||
8083 | +#: sunrpc/clnt_perr.c:192 | ||
8084 | msgid "RPC: Procedure unavailable" | ||
8085 | msgstr "RPC: El procediment no es troba disponible" | ||
8086 | |||
8087 | -#: sunrpc/clnt_perr.c:199 | ||
8088 | +#: sunrpc/clnt_perr.c:196 | ||
8089 | msgid "RPC: Server can't decode arguments" | ||
8090 | msgstr "RPC: El servidor no ha pogut descodificar els arguments" | ||
8091 | |||
8092 | -#: sunrpc/clnt_perr.c:203 | ||
8093 | +#: sunrpc/clnt_perr.c:200 | ||
8094 | msgid "RPC: Remote system error" | ||
8095 | msgstr "RPC: Error al sistema remot" | ||
8096 | |||
8097 | -#: sunrpc/clnt_perr.c:207 | ||
8098 | +#: sunrpc/clnt_perr.c:204 | ||
8099 | msgid "RPC: Unknown host" | ||
8100 | msgstr "RPC: L’estació no és coneguda" | ||
8101 | |||
8102 | -#: sunrpc/clnt_perr.c:211 | ||
8103 | +#: sunrpc/clnt_perr.c:208 | ||
8104 | msgid "RPC: Unknown protocol" | ||
8105 | msgstr "RPC: El protocol no és conegut" | ||
8106 | |||
8107 | -#: sunrpc/clnt_perr.c:215 | ||
8108 | +#: sunrpc/clnt_perr.c:212 | ||
8109 | msgid "RPC: Port mapper failure" | ||
8110 | msgstr "RPC: Fallada del mapador de ports" | ||
8111 | |||
8112 | -#: sunrpc/clnt_perr.c:219 | ||
8113 | +#: sunrpc/clnt_perr.c:216 | ||
8114 | msgid "RPC: Program not registered" | ||
8115 | msgstr "RPC: El programa no s’ha donat d’alta" | ||
8116 | |||
8117 | -#: sunrpc/clnt_perr.c:223 | ||
8118 | +#: sunrpc/clnt_perr.c:220 | ||
8119 | msgid "RPC: Failed (unspecified error)" | ||
8120 | msgstr "RPC: Ha fallat (error no especificat)" | ||
8121 | |||
8122 | -#: sunrpc/clnt_perr.c:264 | ||
8123 | +#: sunrpc/clnt_perr.c:261 | ||
8124 | msgid "RPC: (unknown error code)" | ||
8125 | msgstr "RPC: (codi d’error desconegut)" | ||
8126 | |||
8127 | -#: sunrpc/clnt_perr.c:336 | ||
8128 | +#: sunrpc/clnt_perr.c:333 | ||
8129 | msgid "Authentication OK" | ||
8130 | msgstr "L’autenticació és vàlida" | ||
8131 | |||
8132 | -#: sunrpc/clnt_perr.c:339 | ||
8133 | +#: sunrpc/clnt_perr.c:336 | ||
8134 | msgid "Invalid client credential" | ||
8135 | msgstr "La credencial donada pel client no és vàlida" | ||
8136 | |||
8137 | -#: sunrpc/clnt_perr.c:343 | ||
8138 | +#: sunrpc/clnt_perr.c:340 | ||
8139 | msgid "Server rejected credential" | ||
8140 | msgstr "El servidor ha rebutjat la credencial" | ||
8141 | |||
8142 | -#: sunrpc/clnt_perr.c:347 | ||
8143 | +#: sunrpc/clnt_perr.c:344 | ||
8144 | msgid "Invalid client verifier" | ||
8145 | msgstr "El verificador del client no és vàlid" | ||
8146 | |||
8147 | -#: sunrpc/clnt_perr.c:351 | ||
8148 | +#: sunrpc/clnt_perr.c:348 | ||
8149 | msgid "Server rejected verifier" | ||
8150 | msgstr "El servidor ha rebutjat el verificador" | ||
8151 | |||
8152 | -#: sunrpc/clnt_perr.c:355 | ||
8153 | +#: sunrpc/clnt_perr.c:352 | ||
8154 | msgid "Client credential too weak" | ||
8155 | msgstr "La credencial del client és massa fluixa" | ||
8156 | |||
8157 | -#: sunrpc/clnt_perr.c:359 | ||
8158 | +#: sunrpc/clnt_perr.c:356 | ||
8159 | msgid "Invalid server verifier" | ||
8160 | msgstr "El verificador del servidor no és vàlid" | ||
8161 | |||
8162 | -#: sunrpc/clnt_perr.c:363 | ||
8163 | +#: sunrpc/clnt_perr.c:360 | ||
8164 | msgid "Failed (unspecified error)" | ||
8165 | msgstr "Ha fallat (no s’especifica l’error)" | ||
8166 | |||
8167 | @@ -5223,263 +5403,270 @@ | ||
8168 | msgid "Cannot receive reply to broadcast" | ||
8169 | msgstr "no s’ha pogut rebre una resposta a la difusió" | ||
8170 | |||
8171 | -#: sunrpc/rpc_main.c:288 | ||
8172 | +#: sunrpc/rpc_main.c:277 | ||
8173 | #, c-format | ||
8174 | msgid "%s: output would overwrite %s\n" | ||
8175 | msgstr "%s: l’eixida sobreescriuria «%s»\n" | ||
8176 | |||
8177 | -#: sunrpc/rpc_main.c:295 | ||
8178 | +#: sunrpc/rpc_main.c:284 | ||
8179 | #, c-format | ||
8180 | msgid "%s: unable to open %s: %m\n" | ||
8181 | msgstr "%s: no s’ha pogut obrir «%s»: %m\n" | ||
8182 | |||
8183 | -#: sunrpc/rpc_main.c:307 | ||
8184 | +#: sunrpc/rpc_main.c:296 | ||
8185 | #, c-format | ||
8186 | msgid "%s: while writing output %s: %m" | ||
8187 | msgstr "%s: en escriure a l’eixida «%s»: %m" | ||
8188 | |||
8189 | -#: sunrpc/rpc_main.c:342 | ||
8190 | +#: sunrpc/rpc_main.c:332 sunrpc/rpc_main.c:371 | ||
8191 | #, c-format | ||
8192 | -msgid "cannot find C preprocessor: %s \n" | ||
8193 | +msgid "cannot find C preprocessor: %s\n" | ||
8194 | msgstr "no s’ha pogut trobar el preprocessador de C: %s\n" | ||
8195 | |||
8196 | -#: sunrpc/rpc_main.c:350 | ||
8197 | -msgid "cannot find any C preprocessor (cpp)\n" | ||
8198 | -msgstr "no s’ha pogut trobar cap preprocessador de C (cpp)\n" | ||
8199 | - | ||
8200 | -#: sunrpc/rpc_main.c:419 | ||
8201 | +#: sunrpc/rpc_main.c:407 | ||
8202 | #, c-format | ||
8203 | msgid "%s: C preprocessor failed with signal %d\n" | ||
8204 | msgstr "%s: el preprocessador de C ha fallat amb el senyal %d\n" | ||
8205 | |||
8206 | -#: sunrpc/rpc_main.c:422 | ||
8207 | +#: sunrpc/rpc_main.c:410 | ||
8208 | #, c-format | ||
8209 | msgid "%s: C preprocessor failed with exit code %d\n" | ||
8210 | msgstr "%s: el preprocessador de C ha fallat amb el codi d’eixida %d\n" | ||
8211 | |||
8212 | -#: sunrpc/rpc_main.c:462 | ||
8213 | +#: sunrpc/rpc_main.c:450 | ||
8214 | #, c-format | ||
8215 | msgid "illegal nettype: `%s'\n" | ||
8216 | msgstr "el tipus de xarxa no és permès: «%s»\n" | ||
8217 | |||
8218 | -#: sunrpc/rpc_main.c:1128 | ||
8219 | +#: sunrpc/rpc_main.c:1085 | ||
8220 | #, c-format | ||
8221 | msgid "rpcgen: too many defines\n" | ||
8222 | msgstr "rpcgen: hi ha massa definicions\n" | ||
8223 | |||
8224 | -#: sunrpc/rpc_main.c:1140 | ||
8225 | +#: sunrpc/rpc_main.c:1097 | ||
8226 | #, c-format | ||
8227 | msgid "rpcgen: arglist coding error\n" | ||
8228 | msgstr "rpcgen: error en codificar els arguments\n" | ||
8229 | |||
8230 | #. TRANS: the file will not be removed; this is an | ||
8231 | #. TRANS: informative message. | ||
8232 | -#: sunrpc/rpc_main.c:1173 | ||
8233 | +#: sunrpc/rpc_main.c:1130 | ||
8234 | #, c-format | ||
8235 | msgid "file `%s' already exists and may be overwritten\n" | ||
8236 | msgstr "el fitxer «%s» ja existeix i podria ser sobreescrit\n" | ||
8237 | |||
8238 | -#: sunrpc/rpc_main.c:1218 | ||
8239 | +#: sunrpc/rpc_main.c:1175 | ||
8240 | #, c-format | ||
8241 | msgid "Cannot specify more than one input file!\n" | ||
8242 | msgstr "no es pot especificar més d’un fitxer d’entrada\n" | ||
8243 | |||
8244 | -#: sunrpc/rpc_main.c:1392 | ||
8245 | +#: sunrpc/rpc_main.c:1345 | ||
8246 | #, c-format | ||
8247 | msgid "This implementation doesn't support newstyle or MT-safe code!\n" | ||
8248 | msgstr "aquesta implementació no accepta l’estil nou ni el codi compatible amb MT\n" | ||
8249 | |||
8250 | -#: sunrpc/rpc_main.c:1401 | ||
8251 | +#: sunrpc/rpc_main.c:1354 | ||
8252 | #, c-format | ||
8253 | msgid "Cannot use netid flag with inetd flag!\n" | ||
8254 | msgstr "no es pot emprar l’opció IDXARXA («-n») amb l’opció d’inetd («-I»)\n" | ||
8255 | |||
8256 | -#: sunrpc/rpc_main.c:1413 | ||
8257 | +#: sunrpc/rpc_main.c:1363 | ||
8258 | #, c-format | ||
8259 | msgid "Cannot use netid flag without TIRPC!\n" | ||
8260 | msgstr "no es pot emprar l’opció IDXARXA («-n») sense TIRPC\n" | ||
8261 | |||
8262 | -#: sunrpc/rpc_main.c:1420 | ||
8263 | +#: sunrpc/rpc_main.c:1370 | ||
8264 | #, c-format | ||
8265 | msgid "Cannot use table flags with newstyle!\n" | ||
8266 | msgstr "no es poden emprar opcions de taula amb l’estil nou («-N»)\n" | ||
8267 | |||
8268 | -#: sunrpc/rpc_main.c:1439 | ||
8269 | +#: sunrpc/rpc_main.c:1389 | ||
8270 | #, c-format | ||
8271 | msgid "\"infile\" is required for template generation flags.\n" | ||
8272 | msgstr "cal FITXER_ENTRADA per als senyaladors de generació de plantilles\n" | ||
8273 | |||
8274 | -#: sunrpc/rpc_main.c:1444 | ||
8275 | +#: sunrpc/rpc_main.c:1394 | ||
8276 | #, c-format | ||
8277 | msgid "Cannot have more than one file generation flag!\n" | ||
8278 | msgstr "no es pot tenir més d’un senyalador de generació de fitxers\n" | ||
8279 | |||
8280 | -#: sunrpc/rpc_main.c:1453 | ||
8281 | +#: sunrpc/rpc_main.c:1403 | ||
8282 | #, c-format | ||
8283 | msgid "usage: %s infile\n" | ||
8284 | msgstr "Forma d’ús: %s FITXER_ENTRADA\n" | ||
8285 | |||
8286 | -#: sunrpc/rpc_main.c:1454 | ||
8287 | +#: sunrpc/rpc_main.c:1404 | ||
8288 | #, c-format | ||
8289 | msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n" | ||
8290 | msgstr "" | ||
8291 | " %s [-abkCLNTM] [-DNOM[=VALOR]] [-i MIDA] [-I [-K SEGONS]]\n" | ||
8292 | " [-Y CAMÍ] FITXER_ENTRADA\n" | ||
8293 | |||
8294 | -#: sunrpc/rpc_main.c:1456 | ||
8295 | +#: sunrpc/rpc_main.c:1406 | ||
8296 | #, c-format | ||
8297 | msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n" | ||
8298 | msgstr "" | ||
8299 | " %s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o FITXER_EIXIDA]\n" | ||
8300 | " [FITXER_ENTRADA]\n" | ||
8301 | |||
8302 | -#: sunrpc/rpc_main.c:1458 | ||
8303 | +#: sunrpc/rpc_main.c:1408 | ||
8304 | #, c-format | ||
8305 | msgid "\t%s [-s nettype]* [-o outfile] [infile]\n" | ||
8306 | msgstr " %s [-s TIPUS_DE_XARXA]… [-o FITXER_EIXIDA] [FITXER_ENTRADA]\n" | ||
8307 | |||
8308 | -#: sunrpc/rpc_main.c:1459 | ||
8309 | +#: sunrpc/rpc_main.c:1409 | ||
8310 | #, c-format | ||
8311 | msgid "\t%s [-n netid]* [-o outfile] [infile]\n" | ||
8312 | msgstr " %s [-n IDXARXA]… [-o FITXER_EIXIDA] [FITXER_ENTRADA]\n" | ||
8313 | |||
8314 | -#: sunrpc/rpc_main.c:1467 | ||
8315 | +#: sunrpc/rpc_main.c:1417 | ||
8316 | #, c-format | ||
8317 | msgid "options:\n" | ||
8318 | msgstr "" | ||
8319 | "Opcions:\n" | ||
8320 | "\n" | ||
8321 | |||
8322 | -#: sunrpc/rpc_main.c:1468 | ||
8323 | +#: sunrpc/rpc_main.c:1418 | ||
8324 | #, c-format | ||
8325 | msgid "-a\t\tgenerate all files, including samples\n" | ||
8326 | msgstr " -a Genera tots els fitxers, incloent els exemples.\n" | ||
8327 | |||
8328 | -#: sunrpc/rpc_main.c:1469 | ||
8329 | +#: sunrpc/rpc_main.c:1419 | ||
8330 | #, c-format | ||
8331 | msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n" | ||
8332 | msgstr "" | ||
8333 | " -b Mode de compatibilitat cap enrere (genera codi per a\n" | ||
8334 | " SunOS 4.1).\n" | ||
8335 | |||
8336 | -#: sunrpc/rpc_main.c:1470 | ||
8337 | +#: sunrpc/rpc_main.c:1420 | ||
8338 | #, c-format | ||
8339 | msgid "-c\t\tgenerate XDR routines\n" | ||
8340 | msgstr " -c Genera rutines XDR.\n" | ||
8341 | |||
8342 | -#: sunrpc/rpc_main.c:1471 | ||
8343 | +#: sunrpc/rpc_main.c:1421 | ||
8344 | #, c-format | ||
8345 | msgid "-C\t\tANSI C mode\n" | ||
8346 | msgstr " -C Mode ANSI C.\n" | ||
8347 | |||
8348 | -#: sunrpc/rpc_main.c:1472 | ||
8349 | +#: sunrpc/rpc_main.c:1422 | ||
8350 | #, c-format | ||
8351 | msgid "-Dname[=value]\tdefine a symbol (same as #define)\n" | ||
8352 | msgstr " -DNOM[=VALOR] Defineix un símbol (equival a «#define»).\n" | ||
8353 | |||
8354 | -#: sunrpc/rpc_main.c:1473 | ||
8355 | +#: sunrpc/rpc_main.c:1423 | ||
8356 | #, c-format | ||
8357 | msgid "-h\t\tgenerate header file\n" | ||
8358 | msgstr " -h Genera un fitxer de capçaleres.\n" | ||
8359 | |||
8360 | -#: sunrpc/rpc_main.c:1474 | ||
8361 | +#: sunrpc/rpc_main.c:1424 | ||
8362 | #, c-format | ||
8363 | msgid "-i size\t\tsize at which to start generating inline code\n" | ||
8364 | msgstr " -i MIDA Indica la MIDA on començar a generar codi en línia.\n" | ||
8365 | |||
8366 | -#: sunrpc/rpc_main.c:1475 | ||
8367 | +#: sunrpc/rpc_main.c:1425 | ||
8368 | #, c-format | ||
8369 | msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n" | ||
8370 | msgstr "" | ||
8371 | " -I Genera codi de compatibilitat amb «inetd» per al\n" | ||
8372 | " servidor (per a SunOS 4.1).\n" | ||
8373 | |||
8374 | -#: sunrpc/rpc_main.c:1476 | ||
8375 | +#: sunrpc/rpc_main.c:1426 | ||
8376 | #, c-format | ||
8377 | msgid "-K seconds\tserver exits after K seconds of inactivity\n" | ||
8378 | msgstr "" | ||
8379 | " -K SEGONS Fa que el servidor isca després del nombre indicat de\n" | ||
8380 | " SEGONS d’inactivitat.\n" | ||
8381 | |||
8382 | -#: sunrpc/rpc_main.c:1477 | ||
8383 | +#: sunrpc/rpc_main.c:1427 | ||
8384 | #, c-format | ||
8385 | msgid "-l\t\tgenerate client side stubs\n" | ||
8386 | msgstr " -l Genera esquelets per a la part del client.\n" | ||
8387 | |||
8388 | -#: sunrpc/rpc_main.c:1478 | ||
8389 | +#: sunrpc/rpc_main.c:1428 | ||
8390 | #, c-format | ||
8391 | msgid "-L\t\tserver errors will be printed to syslog\n" | ||
8392 | msgstr " -L Fa que els errors del servidor s’envien a «syslog».\n" | ||
8393 | |||
8394 | -#: sunrpc/rpc_main.c:1479 | ||
8395 | +#: sunrpc/rpc_main.c:1429 | ||
8396 | #, c-format | ||
8397 | msgid "-m\t\tgenerate server side stubs\n" | ||
8398 | msgstr " -m Genera esquelets per a la part del servidor.\n" | ||
8399 | |||
8400 | -#: sunrpc/rpc_main.c:1480 | ||
8401 | +#: sunrpc/rpc_main.c:1430 | ||
8402 | #, c-format | ||
8403 | msgid "-M\t\tgenerate MT-safe code\n" | ||
8404 | msgstr " -M Genera codi compatible amb múltiples fils d’execució.\n" | ||
8405 | |||
8406 | # Sembla que «netid» és una expressió de la jerga RPC. ivb | ||
8407 | -#: sunrpc/rpc_main.c:1481 | ||
8408 | +#: sunrpc/rpc_main.c:1431 | ||
8409 | #, c-format | ||
8410 | msgid "-n netid\tgenerate server code that supports named netid\n" | ||
8411 | msgstr " -n NETID Genera codi compatible amb el NETID indicat.\n" | ||
8412 | |||
8413 | -#: sunrpc/rpc_main.c:1482 | ||
8414 | +#: sunrpc/rpc_main.c:1432 | ||
8415 | #, c-format | ||
8416 | msgid "-N\t\tsupports multiple arguments and call-by-value\n" | ||
8417 | msgstr " -N Permet arguments múltiples i pas d’arguments per valor.\n" | ||
8418 | |||
8419 | -#: sunrpc/rpc_main.c:1483 | ||
8420 | +#: sunrpc/rpc_main.c:1433 | ||
8421 | #, c-format | ||
8422 | msgid "-o outfile\tname of the output file\n" | ||
8423 | msgstr " -o FITXER_EIXIDA Nom del fitxer d’eixida.\n" | ||
8424 | |||
8425 | -#: sunrpc/rpc_main.c:1484 | ||
8426 | +#: sunrpc/rpc_main.c:1434 | ||
8427 | #, c-format | ||
8428 | msgid "-s nettype\tgenerate server code that supports named nettype\n" | ||
8429 | msgstr "" | ||
8430 | " -s TIPUS_DE_XARXA Genera codi de servidor compatible amb el TIPUS_DE_XARXA\n" | ||
8431 | " indicat.\n" | ||
8432 | |||
8433 | -#: sunrpc/rpc_main.c:1485 | ||
8434 | +#: sunrpc/rpc_main.c:1435 | ||
8435 | #, c-format | ||
8436 | msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n" | ||
8437 | msgstr "" | ||
8438 | " -Sc Genera codi d’exemple per a un client que empra\n" | ||
8439 | " procediments remots.\n" | ||
8440 | |||
8441 | -#: sunrpc/rpc_main.c:1486 | ||
8442 | +#: sunrpc/rpc_main.c:1436 | ||
8443 | #, c-format | ||
8444 | msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n" | ||
8445 | msgstr "" | ||
8446 | " -Ss Genera codi d’exemple per a un servidor que defineix\n" | ||
8447 | " procediments remots.\n" | ||
8448 | |||
8449 | -#: sunrpc/rpc_main.c:1487 | ||
8450 | +#: sunrpc/rpc_main.c:1437 | ||
8451 | #, c-format | ||
8452 | msgid "-Sm \t\tgenerate makefile template \n" | ||
8453 | msgstr " -Sm Genera una plantilla de fitxer «Makefile».\n" | ||
8454 | |||
8455 | -#: sunrpc/rpc_main.c:1488 | ||
8456 | +#: sunrpc/rpc_main.c:1438 | ||
8457 | #, c-format | ||
8458 | msgid "-t\t\tgenerate RPC dispatch table\n" | ||
8459 | msgstr " -t Genera una taula de despatxat de crides RPC.\n" | ||
8460 | |||
8461 | -#: sunrpc/rpc_main.c:1489 | ||
8462 | +#: sunrpc/rpc_main.c:1439 | ||
8463 | #, c-format | ||
8464 | msgid "-T\t\tgenerate code to support RPC dispatch tables\n" | ||
8465 | msgstr "" | ||
8466 | " -T Genera codi per a treballar amb taules de despatxat de\n" | ||
8467 | " crides RPC.\n" | ||
8468 | |||
8469 | -#: sunrpc/rpc_main.c:1490 | ||
8470 | +#: sunrpc/rpc_main.c:1440 | ||
8471 | #, c-format | ||
8472 | msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n" | ||
8473 | msgstr " -Y CAMÍ Directori on es troba el preprocessador de C (cpp).\n" | ||
8474 | |||
8475 | +#: sunrpc/rpc_main.c:1442 | ||
8476 | +#, c-format | ||
8477 | +msgid "" | ||
8478 | +"\n" | ||
8479 | +"For bug reporting instructions, please see:\n" | ||
8480 | +"%s.\n" | ||
8481 | +msgstr "" | ||
8482 | +"\n" | ||
8483 | +"Per a obtenir instruccions sobre com informar d’un error, vegeu\n" | ||
8484 | +"<%s>.\n" | ||
8485 | + | ||
8486 | #: sunrpc/rpc_scan.c:112 | ||
8487 | msgid "constant or identifier expected" | ||
8488 | msgstr "cal una constant o un identificador" | ||
8489 | @@ -5589,127 +5776,127 @@ | ||
8490 | msgid "svc_run: - poll failed" | ||
8491 | msgstr "svc_run: ha fallat poll()" | ||
8492 | |||
8493 | -#: sunrpc/svc_simple.c:81 | ||
8494 | +#: sunrpc/svc_simple.c:80 | ||
8495 | #, c-format | ||
8496 | msgid "can't reassign procedure number %ld\n" | ||
8497 | msgstr "no s’ha pogut reassignar el procediment número %ld\n" | ||
8498 | |||
8499 | -#: sunrpc/svc_simple.c:91 | ||
8500 | +#: sunrpc/svc_simple.c:90 | ||
8501 | msgid "couldn't create an rpc server\n" | ||
8502 | msgstr "no s’ha pogut crear un servidor RPC\n" | ||
8503 | |||
8504 | -#: sunrpc/svc_simple.c:99 | ||
8505 | +#: sunrpc/svc_simple.c:98 | ||
8506 | #, c-format | ||
8507 | msgid "couldn't register prog %ld vers %ld\n" | ||
8508 | msgstr "no s’ha pogut donar d’alta el programa %ld amb versió %ld\n" | ||
8509 | |||
8510 | -#: sunrpc/svc_simple.c:107 | ||
8511 | +#: sunrpc/svc_simple.c:106 | ||
8512 | msgid "registerrpc: out of memory\n" | ||
8513 | msgstr "registerrpc: no resta memòria\n" | ||
8514 | |||
8515 | -#: sunrpc/svc_simple.c:168 | ||
8516 | +#: sunrpc/svc_simple.c:169 | ||
8517 | #, c-format | ||
8518 | msgid "trouble replying to prog %d\n" | ||
8519 | msgstr "no s’ha pogut respondre al programa %d\n" | ||
8520 | |||
8521 | -#: sunrpc/svc_simple.c:177 | ||
8522 | +#: sunrpc/svc_simple.c:178 | ||
8523 | #, c-format | ||
8524 | msgid "never registered prog %d\n" | ||
8525 | msgstr "el programa %d mai no s’ha donat d’alta\n" | ||
8526 | |||
8527 | -#: sunrpc/svc_tcp.c:149 | ||
8528 | +#: sunrpc/svc_tcp.c:164 | ||
8529 | msgid "svc_tcp.c - tcp socket creation problem" | ||
8530 | msgstr "svc_tcp.c: problemes en crear un connector TCP" | ||
8531 | |||
8532 | -#: sunrpc/svc_tcp.c:164 | ||
8533 | +#: sunrpc/svc_tcp.c:179 | ||
8534 | msgid "svc_tcp.c - cannot getsockname or listen" | ||
8535 | msgstr "svc_tcp.c: ha fallat getsockname() o listen()" | ||
8536 | |||
8537 | -#: sunrpc/svc_udp.c:122 | ||
8538 | +#: sunrpc/svc_udp.c:137 | ||
8539 | msgid "svcudp_create: socket creation problem" | ||
8540 | msgstr "svcudp_create: problemes en crear un connector" | ||
8541 | |||
8542 | -#: sunrpc/svc_udp.c:136 | ||
8543 | +#: sunrpc/svc_udp.c:151 | ||
8544 | msgid "svcudp_create - cannot getsockname" | ||
8545 | msgstr "svcudp_create: ha fallat getsockname()" | ||
8546 | |||
8547 | -#: sunrpc/svc_udp.c:168 | ||
8548 | +#: sunrpc/svc_udp.c:183 | ||
8549 | msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n" | ||
8550 | msgstr "svcudp_create: «xp_pad» és massa menut per a IP_PKTINFO\n" | ||
8551 | |||
8552 | -#: sunrpc/svc_udp.c:476 | ||
8553 | +#: sunrpc/svc_udp.c:495 | ||
8554 | msgid "enablecache: cache already enabled" | ||
8555 | msgstr "enablecache: la memòria cau ja està habilitada" | ||
8556 | |||
8557 | -#: sunrpc/svc_udp.c:482 | ||
8558 | +#: sunrpc/svc_udp.c:501 | ||
8559 | msgid "enablecache: could not allocate cache" | ||
8560 | msgstr "enablecache: no s’ha pogut reservar espai per a la memòria cau" | ||
8561 | |||
8562 | -#: sunrpc/svc_udp.c:491 | ||
8563 | +#: sunrpc/svc_udp.c:510 | ||
8564 | msgid "enablecache: could not allocate cache data" | ||
8565 | msgstr "enablecache: no s’ha pogut reservar espai per a les dades de la memòria cau" | ||
8566 | |||
8567 | -#: sunrpc/svc_udp.c:499 | ||
8568 | +#: sunrpc/svc_udp.c:518 | ||
8569 | msgid "enablecache: could not allocate cache fifo" | ||
8570 | msgstr "enablecache: no s’ha pogut reservar la cua FIFO de la memòria cau" | ||
8571 | |||
8572 | -#: sunrpc/svc_udp.c:535 | ||
8573 | +#: sunrpc/svc_udp.c:554 | ||
8574 | msgid "cache_set: victim not found" | ||
8575 | msgstr "cache_set: no s’ha trobat la víctima" | ||
8576 | |||
8577 | -#: sunrpc/svc_udp.c:546 | ||
8578 | +#: sunrpc/svc_udp.c:565 | ||
8579 | msgid "cache_set: victim alloc failed" | ||
8580 | msgstr "cache_set: no s’ha pogut reservar la víctima" | ||
8581 | |||
8582 | -#: sunrpc/svc_udp.c:553 | ||
8583 | +#: sunrpc/svc_udp.c:572 | ||
8584 | msgid "cache_set: could not allocate new rpc_buffer" | ||
8585 | msgstr "cache_set: no s’ha pogut reservar un nou «rpc_buffer»" | ||
8586 | |||
8587 | -#: sunrpc/svc_unix.c:148 | ||
8588 | +#: sunrpc/svc_unix.c:162 | ||
8589 | msgid "svc_unix.c - AF_UNIX socket creation problem" | ||
8590 | msgstr "svc_unix.c: problemes en crear un connector AF_UNIX" | ||
8591 | |||
8592 | -#: sunrpc/svc_unix.c:164 | ||
8593 | +#: sunrpc/svc_unix.c:178 | ||
8594 | msgid "svc_unix.c - cannot getsockname or listen" | ||
8595 | msgstr "svc_unix.c: ha fallat getsockname() o listen()" | ||
8596 | |||
8597 | -#: sysdeps/generic/siglist.h:29 sysdeps/unix/siglist.c:27 | ||
8598 | +#: sysdeps/generic/siglist.h:28 | ||
8599 | msgid "Hangup" | ||
8600 | msgstr "Penjat" | ||
8601 | |||
8602 | -#: sysdeps/generic/siglist.h:30 sysdeps/unix/siglist.c:28 | ||
8603 | +#: sysdeps/generic/siglist.h:29 | ||
8604 | msgid "Interrupt" | ||
8605 | msgstr "Interromput" | ||
8606 | |||
8607 | -#: sysdeps/generic/siglist.h:31 sysdeps/unix/siglist.c:29 | ||
8608 | +#: sysdeps/generic/siglist.h:30 | ||
8609 | msgid "Quit" | ||
8610 | msgstr "Eixit" | ||
8611 | |||
8612 | -#: sysdeps/generic/siglist.h:32 sysdeps/unix/siglist.c:30 | ||
8613 | +#: sysdeps/generic/siglist.h:31 | ||
8614 | msgid "Illegal instruction" | ||
8615 | msgstr "La instrucció no és permesa" | ||
8616 | |||
8617 | -#: sysdeps/generic/siglist.h:33 sysdeps/unix/siglist.c:31 | ||
8618 | +#: sysdeps/generic/siglist.h:32 | ||
8619 | msgid "Trace/breakpoint trap" | ||
8620 | msgstr "Trampa de traçat/punt d’aturada" | ||
8621 | |||
8622 | -#: sysdeps/generic/siglist.h:34 | ||
8623 | +#: sysdeps/generic/siglist.h:33 | ||
8624 | msgid "Aborted" | ||
8625 | msgstr "Avortat" | ||
8626 | |||
8627 | -#: sysdeps/generic/siglist.h:35 sysdeps/unix/siglist.c:34 | ||
8628 | +#: sysdeps/generic/siglist.h:34 | ||
8629 | msgid "Floating point exception" | ||
8630 | msgstr "Excepció de coma flotant" | ||
8631 | |||
8632 | -#: sysdeps/generic/siglist.h:36 sysdeps/unix/siglist.c:35 | ||
8633 | +#: sysdeps/generic/siglist.h:35 | ||
8634 | msgid "Killed" | ||
8635 | msgstr "Matat" | ||
8636 | |||
8637 | -#: sysdeps/generic/siglist.h:37 sysdeps/unix/siglist.c:36 | ||
8638 | +#: sysdeps/generic/siglist.h:36 | ||
8639 | msgid "Bus error" | ||
8640 | msgstr "Error de bus" | ||
8641 | |||
8642 | -#: sysdeps/generic/siglist.h:38 sysdeps/unix/siglist.c:37 | ||
8643 | +#: sysdeps/generic/siglist.h:37 | ||
8644 | msgid "Segmentation fault" | ||
8645 | msgstr "Violació de segment" | ||
8646 | |||
8647 | @@ -5718,108 +5905,107 @@ | ||
8648 | #. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled | ||
8649 | #. TRANS or blocked. Thus, your program will never actually see @code{EPIPE} | ||
8650 | #. TRANS unless it has handled or blocked @code{SIGPIPE}. | ||
8651 | -#: sysdeps/generic/siglist.h:39 sysdeps/gnu/errlist.c:359 | ||
8652 | -#: sysdeps/unix/siglist.c:39 | ||
8653 | +#: sysdeps/generic/siglist.h:38 sysdeps/gnu/errlist.c:359 | ||
8654 | msgid "Broken pipe" | ||
8655 | msgstr "La canonada s’ha trencat" | ||
8656 | |||
8657 | -#: sysdeps/generic/siglist.h:40 sysdeps/unix/siglist.c:40 | ||
8658 | +#: sysdeps/generic/siglist.h:39 | ||
8659 | msgid "Alarm clock" | ||
8660 | msgstr "Temporitzador" | ||
8661 | |||
8662 | -#: sysdeps/generic/siglist.h:41 sysdeps/unix/siglist.c:41 | ||
8663 | +#: sysdeps/generic/siglist.h:40 | ||
8664 | msgid "Terminated" | ||
8665 | msgstr "Terminat" | ||
8666 | |||
8667 | -#: sysdeps/generic/siglist.h:42 sysdeps/unix/siglist.c:42 | ||
8668 | +#: sysdeps/generic/siglist.h:41 | ||
8669 | msgid "Urgent I/O condition" | ||
8670 | msgstr "Condició urgent d’E/S" | ||
8671 | |||
8672 | -#: sysdeps/generic/siglist.h:43 sysdeps/unix/siglist.c:43 | ||
8673 | +#: sysdeps/generic/siglist.h:42 | ||
8674 | msgid "Stopped (signal)" | ||
8675 | msgstr "Aturat (senyal)" | ||
8676 | |||
8677 | -#: sysdeps/generic/siglist.h:44 sysdeps/unix/siglist.c:44 | ||
8678 | +#: sysdeps/generic/siglist.h:43 | ||
8679 | msgid "Stopped" | ||
8680 | msgstr "Aturat" | ||
8681 | |||
8682 | -#: sysdeps/generic/siglist.h:45 sysdeps/unix/siglist.c:45 | ||
8683 | +#: sysdeps/generic/siglist.h:44 | ||
8684 | msgid "Continued" | ||
8685 | msgstr "Continuat" | ||
8686 | |||
8687 | -#: sysdeps/generic/siglist.h:46 sysdeps/unix/siglist.c:46 | ||
8688 | +#: sysdeps/generic/siglist.h:45 | ||
8689 | msgid "Child exited" | ||
8690 | msgstr "Un fill ha eixit" | ||
8691 | |||
8692 | -#: sysdeps/generic/siglist.h:47 sysdeps/unix/siglist.c:47 | ||
8693 | +#: sysdeps/generic/siglist.h:46 | ||
8694 | msgid "Stopped (tty input)" | ||
8695 | msgstr "Aturat (esperant entrada del terminal)" | ||
8696 | |||
8697 | -#: sysdeps/generic/siglist.h:48 sysdeps/unix/siglist.c:48 | ||
8698 | +#: sysdeps/generic/siglist.h:47 | ||
8699 | msgid "Stopped (tty output)" | ||
8700 | msgstr "Aturat (esperant escriure al terminal)" | ||
8701 | |||
8702 | # ivb (2000/10/28) | ||
8703 | # ivb És clar, E/S significa «Entrada/Sortida», perquè «Entrada/Eixida» | ||
8704 | # ivb queda ambigu (d'açò es diu discriminació objectiva %-P ). | ||
8705 | -#: sysdeps/generic/siglist.h:49 sysdeps/unix/siglist.c:49 | ||
8706 | +#: sysdeps/generic/siglist.h:48 | ||
8707 | msgid "I/O possible" | ||
8708 | msgstr "L’operació d’E/S és possible" | ||
8709 | |||
8710 | -#: sysdeps/generic/siglist.h:50 sysdeps/unix/siglist.c:50 | ||
8711 | +#: sysdeps/generic/siglist.h:49 | ||
8712 | msgid "CPU time limit exceeded" | ||
8713 | msgstr "S’ha excedit el temps límit de CPU" | ||
8714 | |||
8715 | -#: sysdeps/generic/siglist.h:51 sysdeps/unix/siglist.c:51 | ||
8716 | +#: sysdeps/generic/siglist.h:50 | ||
8717 | msgid "File size limit exceeded" | ||
8718 | msgstr "S’ha excedit la mida màxima de fitxer" | ||
8719 | |||
8720 | -#: sysdeps/generic/siglist.h:52 sysdeps/unix/siglist.c:52 | ||
8721 | +#: sysdeps/generic/siglist.h:51 | ||
8722 | msgid "Virtual timer expired" | ||
8723 | msgstr "Ha expirat el temporitzador virtual" | ||
8724 | |||
8725 | -#: sysdeps/generic/siglist.h:53 sysdeps/unix/siglist.c:53 | ||
8726 | +#: sysdeps/generic/siglist.h:52 | ||
8727 | msgid "Profiling timer expired" | ||
8728 | msgstr "El temps de perfilat ha expirat" | ||
8729 | |||
8730 | -#: sysdeps/generic/siglist.h:54 sysdeps/unix/siglist.c:54 | ||
8731 | -msgid "Window changed" | ||
8732 | -msgstr "Ha canviat la mida de la finestra" | ||
8733 | - | ||
8734 | -#: sysdeps/generic/siglist.h:55 sysdeps/unix/siglist.c:56 | ||
8735 | +#: sysdeps/generic/siglist.h:53 | ||
8736 | msgid "User defined signal 1" | ||
8737 | msgstr "Senyal 1 definit per l’usuari" | ||
8738 | |||
8739 | -#: sysdeps/generic/siglist.h:56 sysdeps/unix/siglist.c:57 | ||
8740 | +#: sysdeps/generic/siglist.h:54 | ||
8741 | msgid "User defined signal 2" | ||
8742 | msgstr "Senyal 2 definit per l’usuari" | ||
8743 | |||
8744 | -#: sysdeps/generic/siglist.h:60 sysdeps/unix/siglist.c:33 | ||
8745 | +#: sysdeps/generic/siglist.h:58 | ||
8746 | msgid "EMT trap" | ||
8747 | msgstr "Trampa EMT" | ||
8748 | |||
8749 | -#: sysdeps/generic/siglist.h:63 sysdeps/unix/siglist.c:38 | ||
8750 | +#: sysdeps/generic/siglist.h:61 | ||
8751 | msgid "Bad system call" | ||
8752 | msgstr "La crida al sistema no és vàlida" | ||
8753 | |||
8754 | -#: sysdeps/generic/siglist.h:66 | ||
8755 | +#: sysdeps/generic/siglist.h:64 | ||
8756 | msgid "Stack fault" | ||
8757 | msgstr "Fallada de pila" | ||
8758 | |||
8759 | -#: sysdeps/generic/siglist.h:69 | ||
8760 | +#: sysdeps/generic/siglist.h:67 | ||
8761 | msgid "Information request" | ||
8762 | msgstr "Petició d’informació" | ||
8763 | |||
8764 | -#: sysdeps/generic/siglist.h:71 | ||
8765 | +#: sysdeps/generic/siglist.h:69 | ||
8766 | msgid "Power failure" | ||
8767 | msgstr "Fallada d’alimentació" | ||
8768 | |||
8769 | # ivb (2000/10/28) | ||
8770 | # ivb Sona més a llenguatge jurídic que a altra cosa... | ||
8771 | -#: sysdeps/generic/siglist.h:74 sysdeps/unix/siglist.c:55 | ||
8772 | +#: sysdeps/generic/siglist.h:72 | ||
8773 | msgid "Resource lost" | ||
8774 | msgstr "S’ha perdut el recurs" | ||
8775 | |||
8776 | +#: sysdeps/generic/siglist.h:75 | ||
8777 | +msgid "Window changed" | ||
8778 | +msgstr "Ha canviat la mida de la finestra" | ||
8779 | + | ||
8780 | #. TRANS Operation not permitted; only the owner of the file (or other resource) | ||
8781 | #. TRANS or processes with special privileges can perform the operation. | ||
8782 | #: sysdeps/gnu/errlist.c:25 | ||
8783 | @@ -5858,8 +6044,8 @@ | ||
8784 | |||
8785 | #. TRANS Argument list too long; used when the arguments passed to a new program | ||
8786 | #. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a | ||
8787 | -#. TRANS File}) occupy too much memory space. This condition never arises in the | ||
8788 | -#. TRANS GNU system. | ||
8789 | +#. TRANS File}) occupy too much memory space. This condition never arises on | ||
8790 | +#. TRANS @gnuhurdsystems{}. | ||
8791 | #: sysdeps/gnu/errlist.c:94 | ||
8792 | msgid "Argument list too long" | ||
8793 | msgstr "La llista d’arguments és massa llarga" | ||
8794 | @@ -5899,7 +6085,7 @@ | ||
8795 | msgstr "No s’ha pogut reservar memòria" | ||
8796 | |||
8797 | #. TRANS Bad address; an invalid pointer was detected. | ||
8798 | -#. TRANS In the GNU system, this error never happens; you get a signal instead. | ||
8799 | +#. TRANS On @gnuhurdsystems{}, this error never happens; you get a signal instead. | ||
8800 | #: sysdeps/gnu/errlist.c:167 | ||
8801 | msgid "Bad address" | ||
8802 | msgstr "L’adreça no és vàlida" | ||
8803 | @@ -5967,7 +6153,7 @@ | ||
8804 | |||
8805 | #. TRANS There are too many distinct file openings in the entire system. Note | ||
8806 | #. TRANS that any number of linked channels count as just one file opening; see | ||
8807 | -#. TRANS @ref{Linked Channels}. This error never occurs in the GNU system. | ||
8808 | +#. TRANS @ref{Linked Channels}. This error never occurs on @gnuhurdsystems{}. | ||
8809 | #: sysdeps/gnu/errlist.c:275 | ||
8810 | msgid "Too many open files in system" | ||
8811 | msgstr "El sistema té massa fitxers oberts" | ||
8812 | @@ -5982,7 +6168,7 @@ | ||
8813 | #. TRANS write to a file that is currently being executed. Often using a | ||
8814 | #. TRANS debugger to run a program is considered having it open for writing and | ||
8815 | #. TRANS will cause this error. (The name stands for ``text file busy''.) This | ||
8816 | -#. TRANS is not an error in the GNU system; the text is copied as necessary. | ||
8817 | +#. TRANS is not an error on @gnuhurdsystems{}; the text is copied as necessary. | ||
8818 | #: sysdeps/gnu/errlist.c:298 | ||
8819 | msgid "Text file busy" | ||
8820 | msgstr "El fitxer de text es troba ocupat" | ||
8821 | @@ -6029,7 +6215,7 @@ | ||
8822 | |||
8823 | #. TRANS Resource temporarily unavailable; the call might work if you try again | ||
8824 | #. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN}; | ||
8825 | -#. TRANS they are always the same in the GNU C library. | ||
8826 | +#. TRANS they are always the same in @theglibc{}. | ||
8827 | #. TRANS | ||
8828 | #. TRANS This error can happen in a few different situations: | ||
8829 | #. TRANS | ||
8830 | @@ -6060,7 +6246,7 @@ | ||
8831 | msgid "Resource temporarily unavailable" | ||
8832 | msgstr "El recurs no es troba disponible temporalment" | ||
8833 | |||
8834 | -#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above). | ||
8835 | +#. TRANS In @theglibc{}, this is another name for @code{EAGAIN} (above). | ||
8836 | #. TRANS The values are always the same, on every operating system. | ||
8837 | #. TRANS | ||
8838 | #. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a | ||
8839 | @@ -6123,7 +6309,7 @@ | ||
8840 | |||
8841 | #. TRANS The operation you requested is not supported. Some socket functions | ||
8842 | #. TRANS don't make sense for all types of sockets, and others may not be | ||
8843 | -#. TRANS implemented for all communications protocols. In the GNU system, this | ||
8844 | +#. TRANS implemented for all communications protocols. On @gnuhurdsystems{}, this | ||
8845 | #. TRANS error can happen for many calls when the object does not support the | ||
8846 | #. TRANS particular operation; it is a generic indication that the server knows | ||
8847 | #. TRANS nothing to do for that call. | ||
8848 | @@ -6290,7 +6476,7 @@ | ||
8849 | #. TRANS An attempt was made to NFS-mount a remote file system with a file name that | ||
8850 | #. TRANS already specifies an NFS-mounted file. | ||
8851 | #. TRANS (This is an error on some operating systems, but we expect it to work | ||
8852 | -#. TRANS properly on the GNU system, making this error code impossible.) | ||
8853 | +#. TRANS properly on @gnuhurdsystems{}, making this error code impossible.) | ||
8854 | #: sysdeps/gnu/errlist.c:799 | ||
8855 | msgid "Object is remote" | ||
8856 | msgstr "L’objecte és remot" | ||
8857 | @@ -6321,7 +6507,7 @@ | ||
8858 | msgstr "El procediment RPC no és vàlid per al programa" | ||
8859 | |||
8860 | #. TRANS No locks available. This is used by the file locking facilities; see | ||
8861 | -#. TRANS @ref{File Locks}. This error is never generated by the GNU system, but | ||
8862 | +#. TRANS @ref{File Locks}. This error is never generated by @gnuhurdsystems{}, but | ||
8863 | #. TRANS it can result from an operation to an NFS server running another | ||
8864 | #. TRANS operating system. | ||
8865 | #: sysdeps/gnu/errlist.c:856 | ||
8866 | @@ -6378,7 +6564,7 @@ | ||
8867 | msgid "Invalid or incomplete multibyte or wide character" | ||
8868 | msgstr "El caràcter estès o multioctet no és vàlid o complet" | ||
8869 | |||
8870 | -#. TRANS In the GNU system, servers supporting the @code{term} protocol return | ||
8871 | +#. TRANS On @gnuhurdsystems{}, servers supporting the @code{term} protocol return | ||
8872 | #. TRANS this error for certain operations when the caller is not in the | ||
8873 | #. TRANS foreground process group of the terminal. Users do not usually see this | ||
8874 | #. TRANS error because functions such as @code{read} and @code{write} translate | ||
8875 | @@ -6390,7 +6576,7 @@ | ||
8876 | |||
8877 | # ivb (2000/10/28) | ||
8878 | # ivb Doncs que conste que jo no he sigut! | ||
8879 | -#. TRANS In the GNU system, opening a file returns this error when the file is | ||
8880 | +#. TRANS On @gnuhurdsystems{}, opening a file returns this error when the file is | ||
8881 | #. TRANS translated by a program and the translator program dies while starting | ||
8882 | #. TRANS up, before it has connected to the file. | ||
8883 | #: sysdeps/gnu/errlist.c:955 | ||
8884 | @@ -6664,10 +6850,14 @@ | ||
8885 | msgid "Operation not possible due to RF-kill" | ||
8886 | msgstr "L’operació no és possible degut a RFKill" | ||
8887 | |||
8888 | +#: sysdeps/gnu/errlist.c:1469 | ||
8889 | +msgid "Memory page has hardware error" | ||
8890 | +msgstr "La pàgina de memòria té un error de maquinari" | ||
8891 | + | ||
8892 | # ivb (2001/10/28) | ||
8893 | # ivb Codi -> sembla que aquesta és la traducció correcta, ja que tracta | ||
8894 | # ivb d'identificar l'error dins un vector de sistemes d'errors del mach. (?) | ||
8895 | -#: sysdeps/mach/_strerror.c:57 | ||
8896 | +#: sysdeps/mach/_strerror.c:56 | ||
8897 | msgid "Error in unknown error system: " | ||
8898 | msgstr "Error en un sistema d’errors desconegut: " | ||
8899 | |||
8900 | @@ -6739,26 +6929,13 @@ | ||
8901 | msgid "Parameter string not correctly encoded" | ||
8902 | msgstr "La cadena paràmetre no té una codificació vàlida" | ||
8903 | |||
8904 | -#: sysdeps/unix/siglist.c:26 | ||
8905 | -msgid "Signal 0" | ||
8906 | -msgstr "Senyal 0" | ||
8907 | - | ||
8908 | -#: sysdeps/unix/siglist.c:32 | ||
8909 | -msgid "IOT trap" | ||
8910 | -msgstr "Trampa IOT" | ||
8911 | - | ||
8912 | -#: sysdeps/unix/sysv/linux/i386/readelflib.c:49 | ||
8913 | +#: sysdeps/unix/sysv/linux/i386/readelflib.c:65 | ||
8914 | #, c-format | ||
8915 | msgid "%s is for unknown machine %d.\n" | ||
8916 | msgstr "«%s» és per a la màquina desconeguda %d\n" | ||
8917 | |||
8918 | -#: sysdeps/unix/sysv/linux/ia64/makecontext.c:63 | ||
8919 | +#: sysdeps/unix/sysv/linux/lddlibc4.c:60 | ||
8920 | #, c-format | ||
8921 | -msgid "makecontext: does not know how to handle more than 8 arguments\n" | ||
8922 | -msgstr "makecontext: no es poden tractar més de 8 arguments\n" | ||
8923 | - | ||
8924 | -#: sysdeps/unix/sysv/linux/lddlibc4.c:61 | ||
8925 | -#, c-format | ||
8926 | msgid "" | ||
8927 | "Usage: lddlibc4 FILE\n" | ||
8928 | "\n" | ||
8929 | @@ -6766,81 +6943,81 @@ | ||
8930 | "Forma d’ús: lddlibc4 FITXER\n" | ||
8931 | "\n" | ||
8932 | |||
8933 | -#: sysdeps/unix/sysv/linux/lddlibc4.c:82 | ||
8934 | +#: sysdeps/unix/sysv/linux/lddlibc4.c:81 | ||
8935 | #, c-format | ||
8936 | msgid "cannot open `%s'" | ||
8937 | msgstr "no s’ha pogut obrir «%s»" | ||
8938 | |||
8939 | -#: sysdeps/unix/sysv/linux/lddlibc4.c:86 | ||
8940 | +#: sysdeps/unix/sysv/linux/lddlibc4.c:85 | ||
8941 | #, c-format | ||
8942 | msgid "cannot read header from `%s'" | ||
8943 | msgstr "no s’ha pogut llegir la capçalera de «%s»" | ||
8944 | |||
8945 | -#: timezone/zdump.c:215 | ||
8946 | +#: timezone/zdump.c:246 | ||
8947 | msgid "lacks alphabetic at start" | ||
8948 | msgstr "no comença per un caràcter alfabètic" | ||
8949 | |||
8950 | -#: timezone/zdump.c:217 | ||
8951 | +#: timezone/zdump.c:248 | ||
8952 | msgid "has fewer than 3 alphabetics" | ||
8953 | msgstr "té menys de 3 caràcters alfabètics" | ||
8954 | |||
8955 | -#: timezone/zdump.c:219 | ||
8956 | +#: timezone/zdump.c:250 | ||
8957 | msgid "has more than 6 alphabetics" | ||
8958 | msgstr "té més de 6 caràcters alfabètics" | ||
8959 | |||
8960 | -#: timezone/zdump.c:227 | ||
8961 | +#: timezone/zdump.c:258 | ||
8962 | msgid "differs from POSIX standard" | ||
8963 | msgstr "difereix de l’estàndard POSIX" | ||
8964 | |||
8965 | # FIXME: language-dependent | ||
8966 | # La cadena final és una de les anteriors. ivb | ||
8967 | -#: timezone/zdump.c:233 | ||
8968 | +#: timezone/zdump.c:264 | ||
8969 | #, c-format | ||
8970 | msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" | ||
8971 | msgstr "%1$s: avís: l’abreviatura «%3$s» de la zona «%2$s» %4$s\n" | ||
8972 | |||
8973 | -#: timezone/zdump.c:242 | ||
8974 | +#: timezone/zdump.c:273 | ||
8975 | #, c-format | ||
8976 | msgid "" | ||
8977 | "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n" | ||
8978 | "\n" | ||
8979 | -"Report bugs to tz@elsie.nci.nih.gov.\n" | ||
8980 | +"Report bugs to %s.\n" | ||
8981 | msgstr "" | ||
8982 | "%s: forma d’ús: %s [--version] [--help] [-v] [-c [ANY_INF,]ANY_SUP]\n" | ||
8983 | "\tNOM_DE_ZONA…\n" | ||
8984 | "\n" | ||
8985 | -"Informeu dels errors a tz@elsie.nci.nih.gov.\n" | ||
8986 | +"Informeu dels errors a %s.\n" | ||
8987 | |||
8988 | -#: timezone/zdump.c:311 | ||
8989 | +#: timezone/zdump.c:340 | ||
8990 | #, c-format | ||
8991 | msgid "%s: wild -c argument %s\n" | ||
8992 | msgstr "%s: l’argument de l’opció «-c» no és vàlid: %s\n" | ||
8993 | |||
8994 | -#: timezone/zdump.c:398 | ||
8995 | +#: timezone/zdump.c:426 | ||
8996 | msgid "Error writing to standard output" | ||
8997 | msgstr "error en escriure a l’eixida estàndard" | ||
8998 | |||
8999 | -#: timezone/zdump.c:421 | ||
9000 | +#: timezone/zdump.c:439 | ||
9001 | #, c-format | ||
9002 | msgid "%s: use of -v on system with floating time_t other than float or double\n" | ||
9003 | msgstr "%s: no es pot emprar «-v» ja que «time_t» en aquest sistema és un tipus flotant diferent de «float» i «double»\n" | ||
9004 | |||
9005 | -#: timezone/zic.c:388 | ||
9006 | +#: timezone/zic.c:361 | ||
9007 | #, c-format | ||
9008 | msgid "%s: Memory exhausted: %s\n" | ||
9009 | msgstr "%s: la memòria s’ha exhaurit: %s\n" | ||
9010 | |||
9011 | -#: timezone/zic.c:434 | ||
9012 | +#: timezone/zic.c:401 | ||
9013 | #, c-format | ||
9014 | msgid "\"%s\", line %d: %s" | ||
9015 | msgstr "«%s», línia %d: %s" | ||
9016 | |||
9017 | -#: timezone/zic.c:437 | ||
9018 | +#: timezone/zic.c:404 | ||
9019 | #, c-format | ||
9020 | msgid " (rule from \"%s\", line %d)" | ||
9021 | msgstr " (regla de «%s», línia %d)" | ||
9022 | |||
9023 | -#: timezone/zic.c:449 | ||
9024 | +#: timezone/zic.c:415 | ||
9025 | msgid "warning: " | ||
9026 | msgstr "avís: " | ||
9027 | |||
9028 | @@ -6848,355 +7025,355 @@ | ||
9029 | # ivb Deixe algunes paraules per traduir perquè es refereixen a paraules | ||
9030 | # ivb reservades dels fitxers amb què treballa zic. | ||
9031 | # Sembla que la barra al final de la línia no pinta res. ivb | ||
9032 | -#: timezone/zic.c:459 | ||
9033 | +#: timezone/zic.c:425 | ||
9034 | #, c-format | ||
9035 | msgid "" | ||
9036 | "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n" | ||
9037 | "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" | ||
9038 | "\n" | ||
9039 | -"Report bugs to tz@elsie.nci.nih.gov.\n" | ||
9040 | +"Report bugs to %s.\n" | ||
9041 | msgstr "" | ||
9042 | "%s: forma d’ús: %s [--version] [--help] [-s] [-v] [-l localtime]\n" | ||
9043 | "\t[-p posixrules] [-d DIRECTORI] [-L FITXER_SEGONS_INTERCALARS]\n" | ||
9044 | "\t[-y yearistype] [FITXER…]\n" | ||
9045 | "\n" | ||
9046 | -"Informeu dels errors a tz@elsie.nci.nih.gov.\n" | ||
9047 | +"Informeu dels errors a %s.\n" | ||
9048 | |||
9049 | -#: timezone/zic.c:496 | ||
9050 | +#: timezone/zic.c:460 | ||
9051 | msgid "wild compilation-time specification of zic_t" | ||
9052 | msgstr "l’especificació de «zic_t» en temps de compiŀlació no és vàlida" | ||
9053 | |||
9054 | -#: timezone/zic.c:515 | ||
9055 | +#: timezone/zic.c:479 | ||
9056 | #, c-format | ||
9057 | msgid "%s: More than one -d option specified\n" | ||
9058 | msgstr "%s: s’ha indicat l’opció «-d» més d’una volta\n" | ||
9059 | |||
9060 | -#: timezone/zic.c:525 | ||
9061 | +#: timezone/zic.c:489 | ||
9062 | #, c-format | ||
9063 | msgid "%s: More than one -l option specified\n" | ||
9064 | msgstr "%s: s’ha indicat l’opció «-l» més d’una volta\n" | ||
9065 | |||
9066 | -#: timezone/zic.c:535 | ||
9067 | +#: timezone/zic.c:499 | ||
9068 | #, c-format | ||
9069 | msgid "%s: More than one -p option specified\n" | ||
9070 | msgstr "%s: s’ha indicat l’opció «-p» més d’una volta\n" | ||
9071 | |||
9072 | -#: timezone/zic.c:545 | ||
9073 | +#: timezone/zic.c:509 | ||
9074 | #, c-format | ||
9075 | msgid "%s: More than one -y option specified\n" | ||
9076 | msgstr "%s: s’ha indicat l’opció «-y» més d’una volta\n" | ||
9077 | |||
9078 | -#: timezone/zic.c:555 | ||
9079 | +#: timezone/zic.c:519 | ||
9080 | #, c-format | ||
9081 | msgid "%s: More than one -L option specified\n" | ||
9082 | msgstr "%s: s’ha indicat l’opció «-L» més d’una volta\n" | ||
9083 | |||
9084 | -#: timezone/zic.c:604 | ||
9085 | +#: timezone/zic.c:566 | ||
9086 | msgid "link to link" | ||
9087 | msgstr "enllaç a un altre enllaç" | ||
9088 | |||
9089 | -#: timezone/zic.c:669 | ||
9090 | +#: timezone/zic.c:629 | ||
9091 | msgid "hard link failed, symbolic link used" | ||
9092 | msgstr "no s’ha pogut crear un enllaç fort, se n’ha emprat un de simbòlic" | ||
9093 | |||
9094 | -#: timezone/zic.c:677 | ||
9095 | +#: timezone/zic.c:637 | ||
9096 | #, c-format | ||
9097 | msgid "%s: Can't link from %s to %s: %s\n" | ||
9098 | msgstr "%s: no s’ha pogut crear un enllaç des de «%s» cap a «%s»: %s\n" | ||
9099 | |||
9100 | -#: timezone/zic.c:749 timezone/zic.c:751 | ||
9101 | +#: timezone/zic.c:697 timezone/zic.c:699 | ||
9102 | msgid "same rule name in multiple files" | ||
9103 | msgstr "el mateix nom de regla és repetit a diversos fitxers" | ||
9104 | |||
9105 | -#: timezone/zic.c:792 | ||
9106 | +#: timezone/zic.c:740 | ||
9107 | msgid "unruly zone" | ||
9108 | msgstr "la zona no té regles" | ||
9109 | |||
9110 | -#: timezone/zic.c:799 | ||
9111 | +#: timezone/zic.c:747 | ||
9112 | #, c-format | ||
9113 | msgid "%s in ruleless zone" | ||
9114 | msgstr "«%s» en una zona sense regles" | ||
9115 | |||
9116 | -#: timezone/zic.c:820 | ||
9117 | +#: timezone/zic.c:767 | ||
9118 | msgid "standard input" | ||
9119 | msgstr "entrada estàndard" | ||
9120 | |||
9121 | -#: timezone/zic.c:825 | ||
9122 | +#: timezone/zic.c:772 | ||
9123 | #, c-format | ||
9124 | msgid "%s: Can't open %s: %s\n" | ||
9125 | msgstr "%s: no s’ha pogut obrir «%s»: %s\n" | ||
9126 | |||
9127 | -#: timezone/zic.c:836 | ||
9128 | +#: timezone/zic.c:783 | ||
9129 | msgid "line too long" | ||
9130 | msgstr "la línia és massa llarga" | ||
9131 | |||
9132 | -#: timezone/zic.c:856 | ||
9133 | +#: timezone/zic.c:803 | ||
9134 | msgid "input line of unknown type" | ||
9135 | msgstr "la línia introduïda pertany a un tipus desconegut" | ||
9136 | |||
9137 | -#: timezone/zic.c:872 | ||
9138 | +#: timezone/zic.c:819 | ||
9139 | #, c-format | ||
9140 | msgid "%s: Leap line in non leap seconds file %s\n" | ||
9141 | msgstr "%s: línia «Leap» en fitxer no de segons intercalars «%s»\n" | ||
9142 | |||
9143 | -#: timezone/zic.c:879 timezone/zic.c:1316 timezone/zic.c:1338 | ||
9144 | +#: timezone/zic.c:826 timezone/zic.c:1243 timezone/zic.c:1265 | ||
9145 | #, c-format | ||
9146 | msgid "%s: panic: Invalid l_value %d\n" | ||
9147 | msgstr "%s: pànic: el valor esquerre %d no és vàlid\n" | ||
9148 | |||
9149 | -#: timezone/zic.c:887 | ||
9150 | +#: timezone/zic.c:834 | ||
9151 | #, c-format | ||
9152 | msgid "%s: Error reading %s\n" | ||
9153 | msgstr "%s: error en llegir «%s»\n" | ||
9154 | |||
9155 | -#: timezone/zic.c:894 | ||
9156 | +#: timezone/zic.c:841 | ||
9157 | #, c-format | ||
9158 | msgid "%s: Error closing %s: %s\n" | ||
9159 | msgstr "%s: error en tancar «%s»: %s\n" | ||
9160 | |||
9161 | -#: timezone/zic.c:899 | ||
9162 | +#: timezone/zic.c:846 | ||
9163 | msgid "expected continuation line not found" | ||
9164 | msgstr "cal una línia de continuació, però se’n troba cap" | ||
9165 | |||
9166 | -#: timezone/zic.c:943 timezone/zic.c:2480 timezone/zic.c:2499 | ||
9167 | +#: timezone/zic.c:887 timezone/zic.c:2411 timezone/zic.c:2425 | ||
9168 | msgid "time overflow" | ||
9169 | msgstr "desbordament de l’hora" | ||
9170 | |||
9171 | -#: timezone/zic.c:947 | ||
9172 | +#: timezone/zic.c:891 | ||
9173 | msgid "24:00 not handled by pre-1998 versions of zic" | ||
9174 | msgstr "les versions de «zic» anteriors a 1998 no admeten «24:00»" | ||
9175 | |||
9176 | -#: timezone/zic.c:950 | ||
9177 | +#: timezone/zic.c:894 | ||
9178 | msgid "values over 24 hours not handled by pre-2007 versions of zic" | ||
9179 | msgstr "les versions de «zic» anteriors a 2007 no admeten valors majors que 24 hores" | ||
9180 | |||
9181 | -#: timezone/zic.c:963 | ||
9182 | +#: timezone/zic.c:905 | ||
9183 | msgid "wrong number of fields on Rule line" | ||
9184 | msgstr "el nombre de camps de la línia «Rule» és incorrecte" | ||
9185 | |||
9186 | -#: timezone/zic.c:967 | ||
9187 | +#: timezone/zic.c:909 | ||
9188 | msgid "nameless rule" | ||
9189 | msgstr "la regla no té nom" | ||
9190 | |||
9191 | -#: timezone/zic.c:972 | ||
9192 | +#: timezone/zic.c:914 | ||
9193 | msgid "invalid saved time" | ||
9194 | msgstr "el temps estalviat no és vàlid" | ||
9195 | |||
9196 | -#: timezone/zic.c:993 | ||
9197 | +#: timezone/zic.c:932 | ||
9198 | msgid "wrong number of fields on Zone line" | ||
9199 | msgstr "el nombre de camps de la línia «Zone» no és correcte" | ||
9200 | |||
9201 | -#: timezone/zic.c:999 | ||
9202 | +#: timezone/zic.c:938 | ||
9203 | #, c-format | ||
9204 | msgid "\"Zone %s\" line and -l option are mutually exclusive" | ||
9205 | msgstr "la línia «Zone %s» i l’opció «-l» són mútuament excloents" | ||
9206 | |||
9207 | -#: timezone/zic.c:1007 | ||
9208 | +#: timezone/zic.c:946 | ||
9209 | #, c-format | ||
9210 | msgid "\"Zone %s\" line and -p option are mutually exclusive" | ||
9211 | msgstr "la línia «Zone %s» i l’opció «-p» són mútuament excloents" | ||
9212 | |||
9213 | -#: timezone/zic.c:1019 | ||
9214 | +#: timezone/zic.c:958 | ||
9215 | #, c-format | ||
9216 | msgid "duplicate zone name %s (file \"%s\", line %d)" | ||
9217 | msgstr "el nom de zona «%s» (fitxer «%s», línia %d) és duplicat" | ||
9218 | |||
9219 | -#: timezone/zic.c:1035 | ||
9220 | +#: timezone/zic.c:972 | ||
9221 | msgid "wrong number of fields on Zone continuation line" | ||
9222 | msgstr "el nombre de camps de la línia de continuació de «Zone» no és correcte" | ||
9223 | |||
9224 | -#: timezone/zic.c:1075 | ||
9225 | +#: timezone/zic.c:1009 | ||
9226 | msgid "invalid UTC offset" | ||
9227 | msgstr "el desplaçament d’UTC no és vàlid" | ||
9228 | |||
9229 | -#: timezone/zic.c:1078 | ||
9230 | +#: timezone/zic.c:1012 | ||
9231 | msgid "invalid abbreviation format" | ||
9232 | msgstr "el format de l’abreviatura no és vàlid" | ||
9233 | |||
9234 | -#: timezone/zic.c:1107 | ||
9235 | +#: timezone/zic.c:1041 | ||
9236 | msgid "Zone continuation line end time is not after end time of previous line" | ||
9237 | msgstr "el temps final de la línia de continuació de «Zone» no ve darrere del temps final de la línia anterior" | ||
9238 | |||
9239 | -#: timezone/zic.c:1135 | ||
9240 | +#: timezone/zic.c:1066 | ||
9241 | msgid "wrong number of fields on Leap line" | ||
9242 | msgstr "el nombre de camps de la línia «Leap» no és correcte" | ||
9243 | |||
9244 | -#: timezone/zic.c:1144 | ||
9245 | +#: timezone/zic.c:1075 | ||
9246 | msgid "invalid leaping year" | ||
9247 | msgstr "l’any bixest no és vàlid" | ||
9248 | |||
9249 | -#: timezone/zic.c:1164 timezone/zic.c:1270 | ||
9250 | +#: timezone/zic.c:1095 timezone/zic.c:1197 | ||
9251 | msgid "invalid month name" | ||
9252 | msgstr "el nom del mes no és vàlid" | ||
9253 | |||
9254 | -#: timezone/zic.c:1177 timezone/zic.c:1383 timezone/zic.c:1397 | ||
9255 | +#: timezone/zic.c:1108 timezone/zic.c:1310 timezone/zic.c:1324 | ||
9256 | msgid "invalid day of month" | ||
9257 | msgstr "el dia del mes no és vàlid" | ||
9258 | |||
9259 | -#: timezone/zic.c:1182 | ||
9260 | +#: timezone/zic.c:1113 | ||
9261 | msgid "time before zero" | ||
9262 | msgstr "l’hora és anterior a zero" | ||
9263 | |||
9264 | -#: timezone/zic.c:1186 | ||
9265 | +#: timezone/zic.c:1117 | ||
9266 | msgid "time too small" | ||
9267 | msgstr "l’hora és massa menuda" | ||
9268 | |||
9269 | -#: timezone/zic.c:1190 | ||
9270 | +#: timezone/zic.c:1121 | ||
9271 | msgid "time too large" | ||
9272 | msgstr "l’hora és massa gran" | ||
9273 | |||
9274 | -#: timezone/zic.c:1194 timezone/zic.c:1299 | ||
9275 | +#: timezone/zic.c:1125 timezone/zic.c:1226 | ||
9276 | msgid "invalid time of day" | ||
9277 | msgstr "l’hora del dia no és vàlida" | ||
9278 | |||
9279 | -#: timezone/zic.c:1213 | ||
9280 | +#: timezone/zic.c:1144 | ||
9281 | msgid "illegal CORRECTION field on Leap line" | ||
9282 | msgstr "el camp de correcció de la línia de «Leap» no és vàlid" | ||
9283 | |||
9284 | -#: timezone/zic.c:1218 | ||
9285 | +#: timezone/zic.c:1149 | ||
9286 | msgid "illegal Rolling/Stationary field on Leap line" | ||
9287 | msgstr "el camp «Rolling/Stationary» de la línia «Leap» no és vàlid" | ||
9288 | |||
9289 | -#: timezone/zic.c:1234 | ||
9290 | +#: timezone/zic.c:1163 | ||
9291 | msgid "wrong number of fields on Link line" | ||
9292 | msgstr "el nombre de camps de la línia «Link» no és correcte" | ||
9293 | |||
9294 | # El nom del camp no és una paraula clau del fitxer. ivb | ||
9295 | -#: timezone/zic.c:1238 | ||
9296 | +#: timezone/zic.c:1167 | ||
9297 | msgid "blank FROM field on Link line" | ||
9298 | msgstr "el camp d’inici de la línia «Link» és buit" | ||
9299 | |||
9300 | # El nom del camp no és una paraula clau del fitxer. ivb | ||
9301 | -#: timezone/zic.c:1242 | ||
9302 | +#: timezone/zic.c:1171 | ||
9303 | msgid "blank TO field on Link line" | ||
9304 | msgstr "el camp d’acabament de la línia «Link» és buit" | ||
9305 | |||
9306 | -#: timezone/zic.c:1320 | ||
9307 | +#: timezone/zic.c:1247 | ||
9308 | msgid "invalid starting year" | ||
9309 | msgstr "l’any de començament no és vàlid" | ||
9310 | |||
9311 | -#: timezone/zic.c:1342 | ||
9312 | +#: timezone/zic.c:1269 | ||
9313 | msgid "invalid ending year" | ||
9314 | msgstr "l’any d’acabament no és vàlid" | ||
9315 | |||
9316 | -#: timezone/zic.c:1346 | ||
9317 | +#: timezone/zic.c:1273 | ||
9318 | msgid "starting year greater than ending year" | ||
9319 | msgstr "l’any de començament és major que el d’acabament" | ||
9320 | |||
9321 | -#: timezone/zic.c:1353 | ||
9322 | +#: timezone/zic.c:1280 | ||
9323 | msgid "typed single year" | ||
9324 | msgstr "s’ha especificat un sol any" | ||
9325 | |||
9326 | -#: timezone/zic.c:1388 | ||
9327 | +#: timezone/zic.c:1315 | ||
9328 | msgid "invalid weekday name" | ||
9329 | msgstr "el nom del dia de la setmana no és vàlid" | ||
9330 | |||
9331 | -#: timezone/zic.c:1566 | ||
9332 | +#: timezone/zic.c:1481 | ||
9333 | #, c-format | ||
9334 | msgid "%s: Can't remove %s: %s\n" | ||
9335 | msgstr "%s: no s’ha pogut eliminar «%s»: %s\n" | ||
9336 | |||
9337 | -#: timezone/zic.c:1576 | ||
9338 | +#: timezone/zic.c:1491 | ||
9339 | #, c-format | ||
9340 | msgid "%s: Can't create %s: %s\n" | ||
9341 | msgstr "%s: no s’ha pogut crear «%s»: %s\n" | ||
9342 | |||
9343 | -#: timezone/zic.c:1726 | ||
9344 | +#: timezone/zic.c:1683 | ||
9345 | #, c-format | ||
9346 | msgid "%s: Error writing %s\n" | ||
9347 | msgstr "%s: error en escriure «%s»\n" | ||
9348 | |||
9349 | -#: timezone/zic.c:2019 | ||
9350 | +#: timezone/zic.c:1964 | ||
9351 | msgid "no POSIX environment variable for zone" | ||
9352 | msgstr "no s’ha establert una variable d’entorn POSIX per a la zona" | ||
9353 | |||
9354 | -#: timezone/zic.c:2176 | ||
9355 | +#: timezone/zic.c:2131 | ||
9356 | msgid "can't determine time zone abbreviation to use just after until time" | ||
9357 | msgstr "no s’ha pogut determinar l’abreviatura de zona horària a emprar just després de la data límit (until)" | ||
9358 | |||
9359 | -#: timezone/zic.c:2222 | ||
9360 | +#: timezone/zic.c:2175 | ||
9361 | msgid "too many transitions?!" | ||
9362 | msgstr "hi ha massa transicions?!" | ||
9363 | |||
9364 | -#: timezone/zic.c:2241 | ||
9365 | +#: timezone/zic.c:2190 | ||
9366 | msgid "internal error - addtype called with bad isdst" | ||
9367 | msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «isdst»" | ||
9368 | |||
9369 | -#: timezone/zic.c:2245 | ||
9370 | +#: timezone/zic.c:2194 | ||
9371 | msgid "internal error - addtype called with bad ttisstd" | ||
9372 | msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «ttisstd»" | ||
9373 | |||
9374 | -#: timezone/zic.c:2249 | ||
9375 | +#: timezone/zic.c:2198 | ||
9376 | msgid "internal error - addtype called with bad ttisgmt" | ||
9377 | msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «ttisgmt»" | ||
9378 | |||
9379 | -#: timezone/zic.c:2268 | ||
9380 | +#: timezone/zic.c:2217 | ||
9381 | msgid "too many local time types" | ||
9382 | msgstr "hi ha massa tipus d’hora local" | ||
9383 | |||
9384 | -#: timezone/zic.c:2272 | ||
9385 | +#: timezone/zic.c:2221 | ||
9386 | msgid "UTC offset out of range" | ||
9387 | msgstr "el desplaçament respecte UTC és fora de rang" | ||
9388 | |||
9389 | -#: timezone/zic.c:2300 | ||
9390 | +#: timezone/zic.c:2245 | ||
9391 | msgid "too many leap seconds" | ||
9392 | msgstr "hi ha massa segons intercalars" | ||
9393 | |||
9394 | -#: timezone/zic.c:2306 | ||
9395 | +#: timezone/zic.c:2251 | ||
9396 | msgid "repeated leap second moment" | ||
9397 | msgstr "el moment de segon intercalar és repetit" | ||
9398 | |||
9399 | -#: timezone/zic.c:2358 | ||
9400 | +#: timezone/zic.c:2301 | ||
9401 | msgid "Wild result from command execution" | ||
9402 | msgstr "l’execució de l’ordre ha donat un resultat estrany" | ||
9403 | |||
9404 | -#: timezone/zic.c:2359 | ||
9405 | +#: timezone/zic.c:2302 | ||
9406 | #, c-format | ||
9407 | msgid "%s: command was '%s', result was %d\n" | ||
9408 | msgstr "%s: l’ordre ha estat «%s», el resultat ha estat %d\n" | ||
9409 | |||
9410 | # ivb (2001/10/30) | ||
9411 | # ivb Es refereix a les cometes dobles «"». | ||
9412 | -#: timezone/zic.c:2457 | ||
9413 | +#: timezone/zic.c:2393 | ||
9414 | msgid "Odd number of quotation marks" | ||
9415 | msgstr "el nombre de cometes és senar" | ||
9416 | |||
9417 | -#: timezone/zic.c:2546 | ||
9418 | +#: timezone/zic.c:2470 | ||
9419 | msgid "use of 2/29 in non leap-year" | ||
9420 | msgstr "s’ha emprat el dia 29 de febrer en un any no bixest" | ||
9421 | |||
9422 | -#: timezone/zic.c:2581 | ||
9423 | +#: timezone/zic.c:2505 | ||
9424 | msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic" | ||
9425 | msgstr "la regla va més enllà de l’inici o fi del mes; no funcionarà en les versions de «zic» anteriors a 2004" | ||
9426 | |||
9427 | -#: timezone/zic.c:2613 | ||
9428 | +#: timezone/zic.c:2536 | ||
9429 | msgid "time zone abbreviation lacks alphabetic at start" | ||
9430 | msgstr "l’abreviatura de la zona horària no comença per un caràcter alfabètic" | ||
9431 | |||
9432 | -#: timezone/zic.c:2615 | ||
9433 | -msgid "time zone abbreviation has more than 3 alphabetics" | ||
9434 | -msgstr "l’abreviatura de la zona horària té més de 3 caràcters alfabètics" | ||
9435 | +#: timezone/zic.c:2538 | ||
9436 | +msgid "time zone abbreviation has fewer than 3 alphabetics" | ||
9437 | +msgstr "l’abreviatura de la zona horària té menys de 3 caràcters alfabètics" | ||
9438 | |||
9439 | -#: timezone/zic.c:2617 | ||
9440 | +#: timezone/zic.c:2540 | ||
9441 | msgid "time zone abbreviation has too many alphabetics" | ||
9442 | msgstr "l’abreviatura de la zona horària té massa caràcters alfabètics" | ||
9443 | |||
9444 | -#: timezone/zic.c:2627 | ||
9445 | +#: timezone/zic.c:2550 | ||
9446 | msgid "time zone abbreviation differs from POSIX standard" | ||
9447 | msgstr "l’abreviatura de la zona horària difereix de l’estàndard POSIX" | ||
9448 | |||
9449 | -#: timezone/zic.c:2639 | ||
9450 | +#: timezone/zic.c:2562 | ||
9451 | msgid "too many, or too long, time zone abbreviations" | ||
9452 | msgstr "hi ha massa abreviatures de zona horària (o són massa llargues)" | ||
9453 | |||
9454 | -#: timezone/zic.c:2680 | ||
9455 | +#: timezone/zic.c:2602 | ||
9456 | #, c-format | ||
9457 | msgid "%s: Can't create directory %s: %s\n" | ||
9458 | msgstr "%s: no s’ha pogut crear el directori «%s»: %s\n" | ||
9459 | |||
9460 | # ivb (2001/10/28) | ||
9461 | # ivb Resulta d'assignar un «int» a un «long». | ||
9462 | -#: timezone/zic.c:2702 | ||
9463 | +#: timezone/zic.c:2623 | ||
9464 | #, c-format | ||
9465 | msgid "%s: %d did not sign extend correctly\n" | ||
9466 | msgstr "%s: el signe de %d no s’ha estès correctament\n" | ||
9467 | |||
9468 | Property changes on: . | ||
9469 | ___________________________________________________________________ | ||
9470 | Modified: svn:mergeinfo | ||
9471 | Merged /fsf/glibc-2_17-branch:r22064-22177 | ||
9472 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/eglibc-svn-arm-lowlevellock-include-tls.patch b/meta/recipes-core/eglibc/eglibc-2.17/eglibc-svn-arm-lowlevellock-include-tls.patch new file mode 100644 index 0000000000..4313aa5197 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/eglibc-svn-arm-lowlevellock-include-tls.patch | |||
@@ -0,0 +1,21 @@ | |||
1 | In file included from ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c:21: | ||
2 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c: In function '__lll_lock_wait_private': | ||
3 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: warning: implicit declaration of function 'THREAD_GETMEM' | ||
4 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'THREAD_SELF' undeclared (first use in this function) | ||
5 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: (Each undeclared identifier is reported only once | ||
6 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: for each function it appears in.) | ||
7 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'header' undeclared (first use in this function) | ||
8 | make[4]: *** [/var/tmp/portage/sys-libs/glibc-2.7-r1/work/build-default-armv4l-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os] Error 1 | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | --- libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig | ||
13 | +++ libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h | ||
14 | @@ -25,6 +25,7 @@ | ||
15 | #include <atomic.h> | ||
16 | #include <sysdep.h> | ||
17 | #include <kernel-features.h> | ||
18 | +#include <tls.h> | ||
19 | |||
20 | #define FUTEX_WAIT 0 | ||
21 | #define FUTEX_WAKE 1 | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/eglibc_fix_findidx_parameters.patch b/meta/recipes-core/eglibc/eglibc-2.17/eglibc_fix_findidx_parameters.patch new file mode 100644 index 0000000000..bbf4605505 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/eglibc_fix_findidx_parameters.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | Upstream-Status: backport | ||
2 | |||
3 | Imported patch from: http://www.eglibc.org/archives/patches/msg01124.html | ||
4 | |||
5 | Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> | ||
6 | 2012/05/09 | ||
7 | |||
8 | Index: libc/posix/xregex.c | ||
9 | =================================================================== | ||
10 | --- libc.orig/posix/xregex.c | ||
11 | +++ libc/posix/xregex.c | ||
12 | @@ -2943,7 +2943,7 @@ PREFIX(regex_compile) (const char *ARG_P | ||
13 | _NL_CURRENT (LC_COLLATE, | ||
14 | _NL_COLLATE_INDIRECTWC); | ||
15 | |||
16 | - idx = findidx ((const wint_t**)&cp); | ||
17 | + idx = findidx ((const wint_t**)&cp, -1); | ||
18 | if (idx == 0 || cp < (wint_t*) str + c1) | ||
19 | /* This is no valid character. */ | ||
20 | FREE_STACK_RETURN (REG_ECOLLATE); | ||
21 | @@ -3392,7 +3392,7 @@ PREFIX(regex_compile) (const char *ARG_P | ||
22 | indirect = (const int32_t *) | ||
23 | _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); | ||
24 | |||
25 | - idx = findidx (&cp); | ||
26 | + idx = findidx (&cp, -1); | ||
27 | if (idx == 0 || cp < str + c1) | ||
28 | /* This is no valid character. */ | ||
29 | FREE_STACK_RETURN (REG_ECOLLATE); | ||
30 | @@ -6363,7 +6363,7 @@ byte_re_match_2_internal (struct re_patt | ||
31 | } | ||
32 | str_buf[i] = TRANSLATE(*(d+i)); | ||
33 | str_buf[i+1] = '\0'; /* sentinel */ | ||
34 | - idx2 = findidx ((const wint_t**)&cp); | ||
35 | + idx2 = findidx ((const wint_t**)&cp, -1); | ||
36 | } | ||
37 | |||
38 | /* Update d, however d will be incremented at | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/etc/ld.so.conf b/meta/recipes-core/eglibc/eglibc-2.17/etc/ld.so.conf new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/etc/ld.so.conf | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/fileops-without-wchar-io.patch b/meta/recipes-core/eglibc/eglibc-2.17/fileops-without-wchar-io.patch new file mode 100644 index 0000000000..2ca0bca248 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/fileops-without-wchar-io.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | Fix error like | ||
2 | |||
3 | /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/work/mips64-oe-linux/eglibc-2.16-r2+svnr19383/build-mips64-oe-linux/libc_pic.os: In function `_IO_new_file_fopen': | ||
4 | /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/work/mips64-oe-linux/eglibc-2.16-r2+svnr19383/eglibc-2_16/libc/libio/fileops.c:431: undefined reference to `_IO_file_close_it_internal' | ||
5 | collect2: error: ld returned 1 exit status | ||
6 | |||
7 | |||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | Upstream-Status: Pending | ||
10 | Index: libc/libio/fileops.c | ||
11 | =================================================================== | ||
12 | --- libc.orig/libio/fileops.c 2012-07-04 18:25:47.000000000 -0700 | ||
13 | +++ libc/libio/fileops.c 2012-07-24 00:21:17.220322557 -0700 | ||
14 | @@ -428,7 +428,7 @@ | ||
15 | result->_mode = 1; | ||
16 | #else | ||
17 | /* Treat this as if we couldn't find the given character set. */ | ||
18 | - (void) INTUSE(_IO_file_close_it) (fp); | ||
19 | + (void) _IO_file_close_it (fp); | ||
20 | __set_errno (EINVAL); | ||
21 | return NULL; | ||
22 | #endif | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/fix-tibetian-locales.patch b/meta/recipes-core/eglibc/eglibc-2.17/fix-tibetian-locales.patch new file mode 100644 index 0000000000..25c43a9fe6 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/fix-tibetian-locales.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | cross localedef fails to compile these locales because name_fmt field is empty | ||
2 | It is not acceptable for cross localedef and it errors out | ||
3 | |||
4 | LC_NAME: field `name_fmt' not defined | ||
5 | |||
6 | We therefore give a dummy string to the format, the real fix needs some native | ||
7 | tibetian person to define proper name_fmt | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
12 | |||
13 | Index: libc/localedata/locales/bo_CN | ||
14 | =================================================================== | ||
15 | --- libc.orig/localedata/locales/bo_CN 2012-11-17 09:50:14.000000000 -0800 | ||
16 | +++ libc/localedata/locales/bo_CN 2013-01-04 08:55:15.593612288 -0800 | ||
17 | @@ -145,7 +145,7 @@ | ||
18 | LC_NAME | ||
19 | % FIXME | ||
20 | |||
21 | -name_fmt "" | ||
22 | +name_fmt "FIXME" | ||
23 | % name_gen "FIXME" | ||
24 | % name_miss "FIXME" | ||
25 | % name_mr "FIXME" | ||
26 | Index: libc/localedata/locales/bo_IN | ||
27 | =================================================================== | ||
28 | --- libc.orig/localedata/locales/bo_IN 2012-11-17 09:50:14.000000000 -0800 | ||
29 | +++ libc/localedata/locales/bo_IN 2013-01-04 08:54:12.345609028 -0800 | ||
30 | @@ -70,7 +70,7 @@ | ||
31 | |||
32 | LC_NAME | ||
33 | % FIXME | ||
34 | -name_fmt "" | ||
35 | +name_fmt "FIXME" | ||
36 | % name_gen "FIXME" | ||
37 | % name_miss "FIXME" | ||
38 | % name_mr "FIXME" | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/fix_for_centos_5.8.patch b/meta/recipes-core/eglibc/eglibc-2.17/fix_for_centos_5.8.patch new file mode 100644 index 0000000000..7618c99534 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/fix_for_centos_5.8.patch | |||
@@ -0,0 +1,18 @@ | |||
1 | Upstream-Status: Inappropriate [other] | ||
2 | |||
3 | This is a hack to fix building the locale bits on an older | ||
4 | CentOs 5.X machine | ||
5 | |||
6 | Index: eglibc-2_16/libc/locale/programs/config.h | ||
7 | =================================================================== | ||
8 | --- eglibc-2_16.orig/libc/locale/programs/config.h | ||
9 | +++ eglibc-2_16/libc/locale/programs/config.h | ||
10 | @@ -19,6 +19,8 @@ | ||
11 | #ifndef _LD_CONFIG_H | ||
12 | #define _LD_CONFIG_H 1 | ||
13 | |||
14 | +#define DUMMY_LOCALE_T | ||
15 | + | ||
16 | /* Use the internal textdomain used for libc messages. */ | ||
17 | #define PACKAGE _libc_intl_domainname | ||
18 | #ifndef VERSION | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/fsl-ppc-no-fsqrt.patch b/meta/recipes-core/eglibc/eglibc-2.17/fsl-ppc-no-fsqrt.patch new file mode 100644 index 0000000000..511ee9d19e --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/fsl-ppc-no-fsqrt.patch | |||
@@ -0,0 +1,100 @@ | |||
1 | Create e5500 specific math_private.h and let it include when compiling for e5500/64bit core | ||
2 | We prefefine __CPU_HAS_FSQRT to 0 and then in general ppc64 math_private.h we check if its | ||
3 | already defined before redefining it. This way we can ensure that on e5500 builds it wont | ||
4 | emit fsqrt intructions | ||
5 | |||
6 | -Khem | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | |||
10 | Index: libc/sysdeps/powerpc/fpu/math_private.h | ||
11 | =================================================================== | ||
12 | --- libc.orig/sysdeps/powerpc/fpu/math_private.h | ||
13 | +++ libc/sysdeps/powerpc/fpu/math_private.h | ||
14 | @@ -25,10 +25,12 @@ | ||
15 | #include <dl-procinfo.h> | ||
16 | #include_next <math_private.h> | ||
17 | |||
18 | -# if __WORDSIZE == 64 || defined _ARCH_PWR4 | ||
19 | -# define __CPU_HAS_FSQRT 1 | ||
20 | -# else | ||
21 | -# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0) | ||
22 | +# ifndef __CPU_HAS_FSQRT | ||
23 | +# if __WORDSIZE == 64 || defined _ARCH_PWR4 | ||
24 | +# define __CPU_HAS_FSQRT 1 | ||
25 | +# else | ||
26 | +# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0) | ||
27 | +# endif | ||
28 | # endif | ||
29 | |||
30 | extern double __slow_ieee754_sqrt (double); | ||
31 | Index: libc/ports/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h | ||
32 | =================================================================== | ||
33 | --- /dev/null | ||
34 | +++ libc/ports/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h | ||
35 | @@ -0,0 +1,9 @@ | ||
36 | +#ifndef _E5500_MATH_PRIVATE_H_ | ||
37 | +#define _E5500_MATH_PRIVATE_H_ 1 | ||
38 | +/* E5500 core FPU does not implement | ||
39 | + fsqrt */ | ||
40 | + | ||
41 | +#define __CPU_HAS_FSQRT 0 | ||
42 | +#include_next <math_private.h> | ||
43 | + | ||
44 | +#endif /* _E5500_MATH_PRIVATE_H_ */ | ||
45 | Index: libc/ports/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h | ||
46 | =================================================================== | ||
47 | --- /dev/null | ||
48 | +++ libc/ports/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h | ||
49 | @@ -0,0 +1,9 @@ | ||
50 | +#ifndef _E6500_MATH_PRIVATE_H_ | ||
51 | +#define _E6500_MATH_PRIVATE_H_ 1 | ||
52 | +/* E6500 core FPU does not implement | ||
53 | + fsqrt */ | ||
54 | + | ||
55 | +#define __CPU_HAS_FSQRT 0 | ||
56 | +#include_next <math_private.h> | ||
57 | + | ||
58 | +#endif /* _E6500_MATH_PRIVATE_H_ */ | ||
59 | Index: libc/ports/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h | ||
60 | =================================================================== | ||
61 | --- /dev/null | ||
62 | +++ libc/ports/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h | ||
63 | @@ -0,0 +1,9 @@ | ||
64 | +#ifndef _E500MC_MATH_PRIVATE_H_ | ||
65 | +#define _E500MC_MATH_PRIVATE_H_ 1 | ||
66 | +/* E500MC core FPU does not implement | ||
67 | + fsqrt */ | ||
68 | + | ||
69 | +#define __CPU_HAS_FSQRT 0 | ||
70 | +#include_next <math_private.h> | ||
71 | + | ||
72 | +#endif /* _E500MC_MATH_PRIVATE_H_ */ | ||
73 | Index: libc/ports/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h | ||
74 | =================================================================== | ||
75 | --- /dev/null | ||
76 | +++ libc/ports/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h | ||
77 | @@ -0,0 +1,9 @@ | ||
78 | +#ifndef _E5500_MATH_PRIVATE_H_ | ||
79 | +#define _E5500_MATH_PRIVATE_H_ 1 | ||
80 | +/* E5500 core FPU does not implement | ||
81 | + fsqrt */ | ||
82 | + | ||
83 | +#define __CPU_HAS_FSQRT 0 | ||
84 | +#include_next <math_private.h> | ||
85 | + | ||
86 | +#endif /* _E5500_MATH_PRIVATE_H_ */ | ||
87 | Index: libc/ports/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h | ||
88 | =================================================================== | ||
89 | --- /dev/null | ||
90 | +++ libc/ports/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h | ||
91 | @@ -0,0 +1,9 @@ | ||
92 | +#ifndef _E6500_MATH_PRIVATE_H_ | ||
93 | +#define _E6500_MATH_PRIVATE_H_ 1 | ||
94 | +/* E6500 core FPU does not implement | ||
95 | + fsqrt */ | ||
96 | + | ||
97 | +#define __CPU_HAS_FSQRT 0 | ||
98 | +#include_next <math_private.h> | ||
99 | + | ||
100 | +#endif /* _E6500_MATH_PRIVATE_H_ */ | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/generate-supported.mk b/meta/recipes-core/eglibc/eglibc-2.17/generate-supported.mk new file mode 100644 index 0000000000..d2a28c2dc6 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/generate-supported.mk | |||
@@ -0,0 +1,11 @@ | |||
1 | #!/usr/bin/make | ||
2 | |||
3 | include $(IN) | ||
4 | |||
5 | all: | ||
6 | rm -f $(OUT) | ||
7 | touch $(OUT) | ||
8 | for locale in $(SUPPORTED-LOCALES); do \ | ||
9 | [ $$locale = true ] && continue; \ | ||
10 | echo $$locale | sed 's,/, ,' >> $(OUT); \ | ||
11 | done | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/glibc.fix_sqrt2.patch b/meta/recipes-core/eglibc/eglibc-2.17/glibc.fix_sqrt2.patch new file mode 100644 index 0000000000..a66972998c --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/glibc.fix_sqrt2.patch | |||
@@ -0,0 +1,1491 @@ | |||
1 | Signed-of-by: Edmar Wienskoski <edmar@freescale.com> | ||
2 | Upstream-Status: Pending | ||
3 | |||
4 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
5 | --- libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
6 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2012-06-14 14:51:50.452001745 -0500 | ||
7 | @@ -0,0 +1,134 @@ | ||
8 | +/* Double-precision floating point square root. | ||
9 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
10 | + This file is part of the GNU C Library. | ||
11 | + | ||
12 | + The GNU C Library is free software; you can redistribute it and/or | ||
13 | + modify it under the terms of the GNU Lesser General Public | ||
14 | + License as published by the Free Software Foundation; either | ||
15 | + version 2.1 of the License, or (at your option) any later version. | ||
16 | + | ||
17 | + The GNU C Library is distributed in the hope that it will be useful, | ||
18 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
19 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
20 | + Lesser General Public License for more details. | ||
21 | + | ||
22 | + You should have received a copy of the GNU Lesser General Public | ||
23 | + License along with the GNU C Library; if not, write to the Free | ||
24 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
25 | + 02111-1307 USA. */ | ||
26 | + | ||
27 | +#include <math.h> | ||
28 | +#include <math_private.h> | ||
29 | +#include <fenv_libc.h> | ||
30 | +#include <inttypes.h> | ||
31 | + | ||
32 | +#include <sysdep.h> | ||
33 | +#include <ldsodefs.h> | ||
34 | + | ||
35 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
36 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
37 | +static const float two108 = 3.245185536584267269e+32; | ||
38 | +static const float twom54 = 5.551115123125782702e-17; | ||
39 | +static const float half = 0.5; | ||
40 | + | ||
41 | +/* The method is based on the descriptions in: | ||
42 | + | ||
43 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
44 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
45 | + | ||
46 | + We find the actual square root and half of its reciprocal | ||
47 | + simultaneously. */ | ||
48 | + | ||
49 | +#ifdef __STDC__ | ||
50 | +double | ||
51 | +__ieee754_sqrt (double b) | ||
52 | +#else | ||
53 | +double | ||
54 | +__ieee754_sqrt (b) | ||
55 | + double b; | ||
56 | +#endif | ||
57 | +{ | ||
58 | + if (__builtin_expect (b > 0, 1)) | ||
59 | + { | ||
60 | + double y, g, h, d, r; | ||
61 | + ieee_double_shape_type u; | ||
62 | + | ||
63 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
64 | + { | ||
65 | + fenv_t fe; | ||
66 | + | ||
67 | + fe = fegetenv_register (); | ||
68 | + | ||
69 | + u.value = b; | ||
70 | + | ||
71 | + relax_fenv_state (); | ||
72 | + | ||
73 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
74 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
75 | + | ||
76 | + /* Following Muller et al, page 168, equation 5.20. | ||
77 | + | ||
78 | + h goes to 1/(2*sqrt(b)) | ||
79 | + g goes to sqrt(b). | ||
80 | + | ||
81 | + We need three iterations to get within 1ulp. */ | ||
82 | + | ||
83 | + /* Indicate that these can be performed prior to the branch. GCC | ||
84 | + insists on sinking them below the branch, however; it seems like | ||
85 | + they'd be better before the branch so that we can cover any latency | ||
86 | + from storing the argument and loading its high word. Oh well. */ | ||
87 | + | ||
88 | + g = b * y; | ||
89 | + h = 0.5 * y; | ||
90 | + | ||
91 | + /* Handle small numbers by scaling. */ | ||
92 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
93 | + return __ieee754_sqrt (b * two108) * twom54; | ||
94 | + | ||
95 | +#define FMADD(a_, c_, b_) \ | ||
96 | + ({ double __r; \ | ||
97 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
98 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
99 | + __r;}) | ||
100 | +#define FNMSUB(a_, c_, b_) \ | ||
101 | + ({ double __r; \ | ||
102 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
103 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
104 | + __r;}) | ||
105 | + | ||
106 | + r = FNMSUB (g, h, half); | ||
107 | + g = FMADD (g, r, g); | ||
108 | + h = FMADD (h, r, h); | ||
109 | + | ||
110 | + r = FNMSUB (g, h, half); | ||
111 | + g = FMADD (g, r, g); | ||
112 | + h = FMADD (h, r, h); | ||
113 | + | ||
114 | + r = FNMSUB (g, h, half); | ||
115 | + g = FMADD (g, r, g); | ||
116 | + h = FMADD (h, r, h); | ||
117 | + | ||
118 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
119 | + | ||
120 | + /* Final refinement. */ | ||
121 | + d = FNMSUB (g, g, b); | ||
122 | + | ||
123 | + fesetenv_register (fe); | ||
124 | + return FMADD (d, h, g); | ||
125 | + } | ||
126 | + } | ||
127 | + else if (b < 0) | ||
128 | + { | ||
129 | + /* For some reason, some PowerPC32 processors don't implement | ||
130 | + FE_INVALID_SQRT. */ | ||
131 | +#ifdef FE_INVALID_SQRT | ||
132 | + feraiseexcept (FE_INVALID_SQRT); | ||
133 | + | ||
134 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
135 | + if ((u.l[1] & FE_INVALID) == 0) | ||
136 | +#endif | ||
137 | + feraiseexcept (FE_INVALID); | ||
138 | + b = a_nan.value; | ||
139 | + } | ||
140 | + return f_wash (b); | ||
141 | +} | ||
142 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
143 | --- libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
144 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2012-06-14 14:51:50.452001745 -0500 | ||
145 | @@ -0,0 +1,101 @@ | ||
146 | +/* Single-precision floating point square root. | ||
147 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
148 | + This file is part of the GNU C Library. | ||
149 | + | ||
150 | + The GNU C Library is free software; you can redistribute it and/or | ||
151 | + modify it under the terms of the GNU Lesser General Public | ||
152 | + License as published by the Free Software Foundation; either | ||
153 | + version 2.1 of the License, or (at your option) any later version. | ||
154 | + | ||
155 | + The GNU C Library is distributed in the hope that it will be useful, | ||
156 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
157 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
158 | + Lesser General Public License for more details. | ||
159 | + | ||
160 | + You should have received a copy of the GNU Lesser General Public | ||
161 | + License along with the GNU C Library; if not, write to the Free | ||
162 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
163 | + 02111-1307 USA. */ | ||
164 | + | ||
165 | +#include <math.h> | ||
166 | +#include <math_private.h> | ||
167 | +#include <fenv_libc.h> | ||
168 | +#include <inttypes.h> | ||
169 | + | ||
170 | +#include <sysdep.h> | ||
171 | +#include <ldsodefs.h> | ||
172 | + | ||
173 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
174 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
175 | +static const float threehalf = 1.5; | ||
176 | + | ||
177 | +/* The method is based on the descriptions in: | ||
178 | + | ||
179 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
180 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
181 | + | ||
182 | + We find the reciprocal square root and use that to compute the actual | ||
183 | + square root. */ | ||
184 | + | ||
185 | +#ifdef __STDC__ | ||
186 | +float | ||
187 | +__ieee754_sqrtf (float b) | ||
188 | +#else | ||
189 | +float | ||
190 | +__ieee754_sqrtf (b) | ||
191 | + float b; | ||
192 | +#endif | ||
193 | +{ | ||
194 | + if (__builtin_expect (b > 0, 1)) | ||
195 | + { | ||
196 | +#define FMSUB(a_, c_, b_) \ | ||
197 | + ({ double __r; \ | ||
198 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
199 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
200 | + __r;}) | ||
201 | +#define FNMSUB(a_, c_, b_) \ | ||
202 | + ({ double __r; \ | ||
203 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
204 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
205 | + __r;}) | ||
206 | + | ||
207 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
208 | + { | ||
209 | + double y, x; | ||
210 | + fenv_t fe; | ||
211 | + | ||
212 | + fe = fegetenv_register (); | ||
213 | + | ||
214 | + relax_fenv_state (); | ||
215 | + | ||
216 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
217 | + y = FMSUB (threehalf, b, b); | ||
218 | + | ||
219 | + /* Initial estimate. */ | ||
220 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
221 | + | ||
222 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
223 | + x = x * FNMSUB (y, x * x, threehalf); | ||
224 | + x = x * FNMSUB (y, x * x, threehalf); | ||
225 | + x = x * FNMSUB (y, x * x, threehalf); | ||
226 | + | ||
227 | + /* All done. */ | ||
228 | + fesetenv_register (fe); | ||
229 | + return x * b; | ||
230 | + } | ||
231 | + } | ||
232 | + else if (b < 0) | ||
233 | + { | ||
234 | + /* For some reason, some PowerPC32 processors don't implement | ||
235 | + FE_INVALID_SQRT. */ | ||
236 | +#ifdef FE_INVALID_SQRT | ||
237 | + feraiseexcept (FE_INVALID_SQRT); | ||
238 | + | ||
239 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
240 | + if ((u.l[1] & FE_INVALID) == 0) | ||
241 | +#endif | ||
242 | + feraiseexcept (FE_INVALID); | ||
243 | + b = a_nan.value; | ||
244 | + } | ||
245 | + return f_washf (b); | ||
246 | +} | ||
247 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
248 | --- libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
249 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c 2012-06-14 14:55:14.749001061 -0500 | ||
250 | @@ -0,0 +1,134 @@ | ||
251 | +/* Double-precision floating point square root. | ||
252 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
253 | + This file is part of the GNU C Library. | ||
254 | + | ||
255 | + The GNU C Library is free software; you can redistribute it and/or | ||
256 | + modify it under the terms of the GNU Lesser General Public | ||
257 | + License as published by the Free Software Foundation; either | ||
258 | + version 2.1 of the License, or (at your option) any later version. | ||
259 | + | ||
260 | + The GNU C Library is distributed in the hope that it will be useful, | ||
261 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
262 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
263 | + Lesser General Public License for more details. | ||
264 | + | ||
265 | + You should have received a copy of the GNU Lesser General Public | ||
266 | + License along with the GNU C Library; if not, write to the Free | ||
267 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
268 | + 02111-1307 USA. */ | ||
269 | + | ||
270 | +#include <math.h> | ||
271 | +#include <math_private.h> | ||
272 | +#include <fenv_libc.h> | ||
273 | +#include <inttypes.h> | ||
274 | + | ||
275 | +#include <sysdep.h> | ||
276 | +#include <ldsodefs.h> | ||
277 | + | ||
278 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
279 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
280 | +static const float two108 = 3.245185536584267269e+32; | ||
281 | +static const float twom54 = 5.551115123125782702e-17; | ||
282 | +static const float half = 0.5; | ||
283 | + | ||
284 | +/* The method is based on the descriptions in: | ||
285 | + | ||
286 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
287 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
288 | + | ||
289 | + We find the actual square root and half of its reciprocal | ||
290 | + simultaneously. */ | ||
291 | + | ||
292 | +#ifdef __STDC__ | ||
293 | +double | ||
294 | +__ieee754_sqrt (double b) | ||
295 | +#else | ||
296 | +double | ||
297 | +__ieee754_sqrt (b) | ||
298 | + double b; | ||
299 | +#endif | ||
300 | +{ | ||
301 | + if (__builtin_expect (b > 0, 1)) | ||
302 | + { | ||
303 | + double y, g, h, d, r; | ||
304 | + ieee_double_shape_type u; | ||
305 | + | ||
306 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
307 | + { | ||
308 | + fenv_t fe; | ||
309 | + | ||
310 | + fe = fegetenv_register (); | ||
311 | + | ||
312 | + u.value = b; | ||
313 | + | ||
314 | + relax_fenv_state (); | ||
315 | + | ||
316 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
317 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
318 | + | ||
319 | + /* Following Muller et al, page 168, equation 5.20. | ||
320 | + | ||
321 | + h goes to 1/(2*sqrt(b)) | ||
322 | + g goes to sqrt(b). | ||
323 | + | ||
324 | + We need three iterations to get within 1ulp. */ | ||
325 | + | ||
326 | + /* Indicate that these can be performed prior to the branch. GCC | ||
327 | + insists on sinking them below the branch, however; it seems like | ||
328 | + they'd be better before the branch so that we can cover any latency | ||
329 | + from storing the argument and loading its high word. Oh well. */ | ||
330 | + | ||
331 | + g = b * y; | ||
332 | + h = 0.5 * y; | ||
333 | + | ||
334 | + /* Handle small numbers by scaling. */ | ||
335 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
336 | + return __ieee754_sqrt (b * two108) * twom54; | ||
337 | + | ||
338 | +#define FMADD(a_, c_, b_) \ | ||
339 | + ({ double __r; \ | ||
340 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
341 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
342 | + __r;}) | ||
343 | +#define FNMSUB(a_, c_, b_) \ | ||
344 | + ({ double __r; \ | ||
345 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
346 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
347 | + __r;}) | ||
348 | + | ||
349 | + r = FNMSUB (g, h, half); | ||
350 | + g = FMADD (g, r, g); | ||
351 | + h = FMADD (h, r, h); | ||
352 | + | ||
353 | + r = FNMSUB (g, h, half); | ||
354 | + g = FMADD (g, r, g); | ||
355 | + h = FMADD (h, r, h); | ||
356 | + | ||
357 | + r = FNMSUB (g, h, half); | ||
358 | + g = FMADD (g, r, g); | ||
359 | + h = FMADD (h, r, h); | ||
360 | + | ||
361 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
362 | + | ||
363 | + /* Final refinement. */ | ||
364 | + d = FNMSUB (g, g, b); | ||
365 | + | ||
366 | + fesetenv_register (fe); | ||
367 | + return FMADD (d, h, g); | ||
368 | + } | ||
369 | + } | ||
370 | + else if (b < 0) | ||
371 | + { | ||
372 | + /* For some reason, some PowerPC32 processors don't implement | ||
373 | + FE_INVALID_SQRT. */ | ||
374 | +#ifdef FE_INVALID_SQRT | ||
375 | + feraiseexcept (FE_INVALID_SQRT); | ||
376 | + | ||
377 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
378 | + if ((u.l[1] & FE_INVALID) == 0) | ||
379 | +#endif | ||
380 | + feraiseexcept (FE_INVALID); | ||
381 | + b = a_nan.value; | ||
382 | + } | ||
383 | + return f_wash (b); | ||
384 | +} | ||
385 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
386 | --- libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
387 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c 2012-06-14 14:55:14.749001061 -0500 | ||
388 | @@ -0,0 +1,101 @@ | ||
389 | +/* Single-precision floating point square root. | ||
390 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
391 | + This file is part of the GNU C Library. | ||
392 | + | ||
393 | + The GNU C Library is free software; you can redistribute it and/or | ||
394 | + modify it under the terms of the GNU Lesser General Public | ||
395 | + License as published by the Free Software Foundation; either | ||
396 | + version 2.1 of the License, or (at your option) any later version. | ||
397 | + | ||
398 | + The GNU C Library is distributed in the hope that it will be useful, | ||
399 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
400 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
401 | + Lesser General Public License for more details. | ||
402 | + | ||
403 | + You should have received a copy of the GNU Lesser General Public | ||
404 | + License along with the GNU C Library; if not, write to the Free | ||
405 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
406 | + 02111-1307 USA. */ | ||
407 | + | ||
408 | +#include <math.h> | ||
409 | +#include <math_private.h> | ||
410 | +#include <fenv_libc.h> | ||
411 | +#include <inttypes.h> | ||
412 | + | ||
413 | +#include <sysdep.h> | ||
414 | +#include <ldsodefs.h> | ||
415 | + | ||
416 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
417 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
418 | +static const float threehalf = 1.5; | ||
419 | + | ||
420 | +/* The method is based on the descriptions in: | ||
421 | + | ||
422 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
423 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
424 | + | ||
425 | + We find the reciprocal square root and use that to compute the actual | ||
426 | + square root. */ | ||
427 | + | ||
428 | +#ifdef __STDC__ | ||
429 | +float | ||
430 | +__ieee754_sqrtf (float b) | ||
431 | +#else | ||
432 | +float | ||
433 | +__ieee754_sqrtf (b) | ||
434 | + float b; | ||
435 | +#endif | ||
436 | +{ | ||
437 | + if (__builtin_expect (b > 0, 1)) | ||
438 | + { | ||
439 | +#define FMSUB(a_, c_, b_) \ | ||
440 | + ({ double __r; \ | ||
441 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
442 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
443 | + __r;}) | ||
444 | +#define FNMSUB(a_, c_, b_) \ | ||
445 | + ({ double __r; \ | ||
446 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
447 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
448 | + __r;}) | ||
449 | + | ||
450 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
451 | + { | ||
452 | + double y, x; | ||
453 | + fenv_t fe; | ||
454 | + | ||
455 | + fe = fegetenv_register (); | ||
456 | + | ||
457 | + relax_fenv_state (); | ||
458 | + | ||
459 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
460 | + y = FMSUB (threehalf, b, b); | ||
461 | + | ||
462 | + /* Initial estimate. */ | ||
463 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
464 | + | ||
465 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
466 | + x = x * FNMSUB (y, x * x, threehalf); | ||
467 | + x = x * FNMSUB (y, x * x, threehalf); | ||
468 | + x = x * FNMSUB (y, x * x, threehalf); | ||
469 | + | ||
470 | + /* All done. */ | ||
471 | + fesetenv_register (fe); | ||
472 | + return x * b; | ||
473 | + } | ||
474 | + } | ||
475 | + else if (b < 0) | ||
476 | + { | ||
477 | + /* For some reason, some PowerPC32 processors don't implement | ||
478 | + FE_INVALID_SQRT. */ | ||
479 | +#ifdef FE_INVALID_SQRT | ||
480 | + feraiseexcept (FE_INVALID_SQRT); | ||
481 | + | ||
482 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
483 | + if ((u.l[1] & FE_INVALID) == 0) | ||
484 | +#endif | ||
485 | + feraiseexcept (FE_INVALID); | ||
486 | + b = a_nan.value; | ||
487 | + } | ||
488 | + return f_washf (b); | ||
489 | +} | ||
490 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
491 | --- libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
492 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c 2012-06-14 14:55:21.812002270 -0500 | ||
493 | @@ -0,0 +1,134 @@ | ||
494 | +/* Double-precision floating point square root. | ||
495 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
496 | + This file is part of the GNU C Library. | ||
497 | + | ||
498 | + The GNU C Library is free software; you can redistribute it and/or | ||
499 | + modify it under the terms of the GNU Lesser General Public | ||
500 | + License as published by the Free Software Foundation; either | ||
501 | + version 2.1 of the License, or (at your option) any later version. | ||
502 | + | ||
503 | + The GNU C Library is distributed in the hope that it will be useful, | ||
504 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
505 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
506 | + Lesser General Public License for more details. | ||
507 | + | ||
508 | + You should have received a copy of the GNU Lesser General Public | ||
509 | + License along with the GNU C Library; if not, write to the Free | ||
510 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
511 | + 02111-1307 USA. */ | ||
512 | + | ||
513 | +#include <math.h> | ||
514 | +#include <math_private.h> | ||
515 | +#include <fenv_libc.h> | ||
516 | +#include <inttypes.h> | ||
517 | + | ||
518 | +#include <sysdep.h> | ||
519 | +#include <ldsodefs.h> | ||
520 | + | ||
521 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
522 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
523 | +static const float two108 = 3.245185536584267269e+32; | ||
524 | +static const float twom54 = 5.551115123125782702e-17; | ||
525 | +static const float half = 0.5; | ||
526 | + | ||
527 | +/* The method is based on the descriptions in: | ||
528 | + | ||
529 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
530 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
531 | + | ||
532 | + We find the actual square root and half of its reciprocal | ||
533 | + simultaneously. */ | ||
534 | + | ||
535 | +#ifdef __STDC__ | ||
536 | +double | ||
537 | +__ieee754_sqrt (double b) | ||
538 | +#else | ||
539 | +double | ||
540 | +__ieee754_sqrt (b) | ||
541 | + double b; | ||
542 | +#endif | ||
543 | +{ | ||
544 | + if (__builtin_expect (b > 0, 1)) | ||
545 | + { | ||
546 | + double y, g, h, d, r; | ||
547 | + ieee_double_shape_type u; | ||
548 | + | ||
549 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
550 | + { | ||
551 | + fenv_t fe; | ||
552 | + | ||
553 | + fe = fegetenv_register (); | ||
554 | + | ||
555 | + u.value = b; | ||
556 | + | ||
557 | + relax_fenv_state (); | ||
558 | + | ||
559 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
560 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
561 | + | ||
562 | + /* Following Muller et al, page 168, equation 5.20. | ||
563 | + | ||
564 | + h goes to 1/(2*sqrt(b)) | ||
565 | + g goes to sqrt(b). | ||
566 | + | ||
567 | + We need three iterations to get within 1ulp. */ | ||
568 | + | ||
569 | + /* Indicate that these can be performed prior to the branch. GCC | ||
570 | + insists on sinking them below the branch, however; it seems like | ||
571 | + they'd be better before the branch so that we can cover any latency | ||
572 | + from storing the argument and loading its high word. Oh well. */ | ||
573 | + | ||
574 | + g = b * y; | ||
575 | + h = 0.5 * y; | ||
576 | + | ||
577 | + /* Handle small numbers by scaling. */ | ||
578 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
579 | + return __ieee754_sqrt (b * two108) * twom54; | ||
580 | + | ||
581 | +#define FMADD(a_, c_, b_) \ | ||
582 | + ({ double __r; \ | ||
583 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
584 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
585 | + __r;}) | ||
586 | +#define FNMSUB(a_, c_, b_) \ | ||
587 | + ({ double __r; \ | ||
588 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
589 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
590 | + __r;}) | ||
591 | + | ||
592 | + r = FNMSUB (g, h, half); | ||
593 | + g = FMADD (g, r, g); | ||
594 | + h = FMADD (h, r, h); | ||
595 | + | ||
596 | + r = FNMSUB (g, h, half); | ||
597 | + g = FMADD (g, r, g); | ||
598 | + h = FMADD (h, r, h); | ||
599 | + | ||
600 | + r = FNMSUB (g, h, half); | ||
601 | + g = FMADD (g, r, g); | ||
602 | + h = FMADD (h, r, h); | ||
603 | + | ||
604 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
605 | + | ||
606 | + /* Final refinement. */ | ||
607 | + d = FNMSUB (g, g, b); | ||
608 | + | ||
609 | + fesetenv_register (fe); | ||
610 | + return FMADD (d, h, g); | ||
611 | + } | ||
612 | + } | ||
613 | + else if (b < 0) | ||
614 | + { | ||
615 | + /* For some reason, some PowerPC32 processors don't implement | ||
616 | + FE_INVALID_SQRT. */ | ||
617 | +#ifdef FE_INVALID_SQRT | ||
618 | + feraiseexcept (FE_INVALID_SQRT); | ||
619 | + | ||
620 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
621 | + if ((u.l[1] & FE_INVALID) == 0) | ||
622 | +#endif | ||
623 | + feraiseexcept (FE_INVALID); | ||
624 | + b = a_nan.value; | ||
625 | + } | ||
626 | + return f_wash (b); | ||
627 | +} | ||
628 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
629 | --- libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
630 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c 2012-06-14 14:55:21.812002270 -0500 | ||
631 | @@ -0,0 +1,101 @@ | ||
632 | +/* Single-precision floating point square root. | ||
633 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
634 | + This file is part of the GNU C Library. | ||
635 | + | ||
636 | + The GNU C Library is free software; you can redistribute it and/or | ||
637 | + modify it under the terms of the GNU Lesser General Public | ||
638 | + License as published by the Free Software Foundation; either | ||
639 | + version 2.1 of the License, or (at your option) any later version. | ||
640 | + | ||
641 | + The GNU C Library is distributed in the hope that it will be useful, | ||
642 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
643 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
644 | + Lesser General Public License for more details. | ||
645 | + | ||
646 | + You should have received a copy of the GNU Lesser General Public | ||
647 | + License along with the GNU C Library; if not, write to the Free | ||
648 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
649 | + 02111-1307 USA. */ | ||
650 | + | ||
651 | +#include <math.h> | ||
652 | +#include <math_private.h> | ||
653 | +#include <fenv_libc.h> | ||
654 | +#include <inttypes.h> | ||
655 | + | ||
656 | +#include <sysdep.h> | ||
657 | +#include <ldsodefs.h> | ||
658 | + | ||
659 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
660 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
661 | +static const float threehalf = 1.5; | ||
662 | + | ||
663 | +/* The method is based on the descriptions in: | ||
664 | + | ||
665 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
666 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
667 | + | ||
668 | + We find the reciprocal square root and use that to compute the actual | ||
669 | + square root. */ | ||
670 | + | ||
671 | +#ifdef __STDC__ | ||
672 | +float | ||
673 | +__ieee754_sqrtf (float b) | ||
674 | +#else | ||
675 | +float | ||
676 | +__ieee754_sqrtf (b) | ||
677 | + float b; | ||
678 | +#endif | ||
679 | +{ | ||
680 | + if (__builtin_expect (b > 0, 1)) | ||
681 | + { | ||
682 | +#define FMSUB(a_, c_, b_) \ | ||
683 | + ({ double __r; \ | ||
684 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
685 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
686 | + __r;}) | ||
687 | +#define FNMSUB(a_, c_, b_) \ | ||
688 | + ({ double __r; \ | ||
689 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
690 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
691 | + __r;}) | ||
692 | + | ||
693 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
694 | + { | ||
695 | + double y, x; | ||
696 | + fenv_t fe; | ||
697 | + | ||
698 | + fe = fegetenv_register (); | ||
699 | + | ||
700 | + relax_fenv_state (); | ||
701 | + | ||
702 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
703 | + y = FMSUB (threehalf, b, b); | ||
704 | + | ||
705 | + /* Initial estimate. */ | ||
706 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
707 | + | ||
708 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
709 | + x = x * FNMSUB (y, x * x, threehalf); | ||
710 | + x = x * FNMSUB (y, x * x, threehalf); | ||
711 | + x = x * FNMSUB (y, x * x, threehalf); | ||
712 | + | ||
713 | + /* All done. */ | ||
714 | + fesetenv_register (fe); | ||
715 | + return x * b; | ||
716 | + } | ||
717 | + } | ||
718 | + else if (b < 0) | ||
719 | + { | ||
720 | + /* For some reason, some PowerPC32 processors don't implement | ||
721 | + FE_INVALID_SQRT. */ | ||
722 | +#ifdef FE_INVALID_SQRT | ||
723 | + feraiseexcept (FE_INVALID_SQRT); | ||
724 | + | ||
725 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
726 | + if ((u.l[1] & FE_INVALID) == 0) | ||
727 | +#endif | ||
728 | + feraiseexcept (FE_INVALID); | ||
729 | + b = a_nan.value; | ||
730 | + } | ||
731 | + return f_washf (b); | ||
732 | +} | ||
733 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
734 | --- libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
735 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 2012-06-14 14:55:24.620001266 -0500 | ||
736 | @@ -0,0 +1,134 @@ | ||
737 | +/* Double-precision floating point square root. | ||
738 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
739 | + This file is part of the GNU C Library. | ||
740 | + | ||
741 | + The GNU C Library is free software; you can redistribute it and/or | ||
742 | + modify it under the terms of the GNU Lesser General Public | ||
743 | + License as published by the Free Software Foundation; either | ||
744 | + version 2.1 of the License, or (at your option) any later version. | ||
745 | + | ||
746 | + The GNU C Library is distributed in the hope that it will be useful, | ||
747 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
748 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
749 | + Lesser General Public License for more details. | ||
750 | + | ||
751 | + You should have received a copy of the GNU Lesser General Public | ||
752 | + License along with the GNU C Library; if not, write to the Free | ||
753 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
754 | + 02111-1307 USA. */ | ||
755 | + | ||
756 | +#include <math.h> | ||
757 | +#include <math_private.h> | ||
758 | +#include <fenv_libc.h> | ||
759 | +#include <inttypes.h> | ||
760 | + | ||
761 | +#include <sysdep.h> | ||
762 | +#include <ldsodefs.h> | ||
763 | + | ||
764 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
765 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
766 | +static const float two108 = 3.245185536584267269e+32; | ||
767 | +static const float twom54 = 5.551115123125782702e-17; | ||
768 | +static const float half = 0.5; | ||
769 | + | ||
770 | +/* The method is based on the descriptions in: | ||
771 | + | ||
772 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
773 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
774 | + | ||
775 | + We find the actual square root and half of its reciprocal | ||
776 | + simultaneously. */ | ||
777 | + | ||
778 | +#ifdef __STDC__ | ||
779 | +double | ||
780 | +__ieee754_sqrt (double b) | ||
781 | +#else | ||
782 | +double | ||
783 | +__ieee754_sqrt (b) | ||
784 | + double b; | ||
785 | +#endif | ||
786 | +{ | ||
787 | + if (__builtin_expect (b > 0, 1)) | ||
788 | + { | ||
789 | + double y, g, h, d, r; | ||
790 | + ieee_double_shape_type u; | ||
791 | + | ||
792 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
793 | + { | ||
794 | + fenv_t fe; | ||
795 | + | ||
796 | + fe = fegetenv_register (); | ||
797 | + | ||
798 | + u.value = b; | ||
799 | + | ||
800 | + relax_fenv_state (); | ||
801 | + | ||
802 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
803 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
804 | + | ||
805 | + /* Following Muller et al, page 168, equation 5.20. | ||
806 | + | ||
807 | + h goes to 1/(2*sqrt(b)) | ||
808 | + g goes to sqrt(b). | ||
809 | + | ||
810 | + We need three iterations to get within 1ulp. */ | ||
811 | + | ||
812 | + /* Indicate that these can be performed prior to the branch. GCC | ||
813 | + insists on sinking them below the branch, however; it seems like | ||
814 | + they'd be better before the branch so that we can cover any latency | ||
815 | + from storing the argument and loading its high word. Oh well. */ | ||
816 | + | ||
817 | + g = b * y; | ||
818 | + h = 0.5 * y; | ||
819 | + | ||
820 | + /* Handle small numbers by scaling. */ | ||
821 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
822 | + return __ieee754_sqrt (b * two108) * twom54; | ||
823 | + | ||
824 | +#define FMADD(a_, c_, b_) \ | ||
825 | + ({ double __r; \ | ||
826 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
827 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
828 | + __r;}) | ||
829 | +#define FNMSUB(a_, c_, b_) \ | ||
830 | + ({ double __r; \ | ||
831 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
832 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
833 | + __r;}) | ||
834 | + | ||
835 | + r = FNMSUB (g, h, half); | ||
836 | + g = FMADD (g, r, g); | ||
837 | + h = FMADD (h, r, h); | ||
838 | + | ||
839 | + r = FNMSUB (g, h, half); | ||
840 | + g = FMADD (g, r, g); | ||
841 | + h = FMADD (h, r, h); | ||
842 | + | ||
843 | + r = FNMSUB (g, h, half); | ||
844 | + g = FMADD (g, r, g); | ||
845 | + h = FMADD (h, r, h); | ||
846 | + | ||
847 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
848 | + | ||
849 | + /* Final refinement. */ | ||
850 | + d = FNMSUB (g, g, b); | ||
851 | + | ||
852 | + fesetenv_register (fe); | ||
853 | + return FMADD (d, h, g); | ||
854 | + } | ||
855 | + } | ||
856 | + else if (b < 0) | ||
857 | + { | ||
858 | + /* For some reason, some PowerPC32 processors don't implement | ||
859 | + FE_INVALID_SQRT. */ | ||
860 | +#ifdef FE_INVALID_SQRT | ||
861 | + feraiseexcept (FE_INVALID_SQRT); | ||
862 | + | ||
863 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
864 | + if ((u.l[1] & FE_INVALID) == 0) | ||
865 | +#endif | ||
866 | + feraiseexcept (FE_INVALID); | ||
867 | + b = a_nan.value; | ||
868 | + } | ||
869 | + return f_wash (b); | ||
870 | +} | ||
871 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
872 | --- libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
873 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 2012-06-14 14:55:24.620001266 -0500 | ||
874 | @@ -0,0 +1,101 @@ | ||
875 | +/* Single-precision floating point square root. | ||
876 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
877 | + This file is part of the GNU C Library. | ||
878 | + | ||
879 | + The GNU C Library is free software; you can redistribute it and/or | ||
880 | + modify it under the terms of the GNU Lesser General Public | ||
881 | + License as published by the Free Software Foundation; either | ||
882 | + version 2.1 of the License, or (at your option) any later version. | ||
883 | + | ||
884 | + The GNU C Library is distributed in the hope that it will be useful, | ||
885 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
886 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
887 | + Lesser General Public License for more details. | ||
888 | + | ||
889 | + You should have received a copy of the GNU Lesser General Public | ||
890 | + License along with the GNU C Library; if not, write to the Free | ||
891 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
892 | + 02111-1307 USA. */ | ||
893 | + | ||
894 | +#include <math.h> | ||
895 | +#include <math_private.h> | ||
896 | +#include <fenv_libc.h> | ||
897 | +#include <inttypes.h> | ||
898 | + | ||
899 | +#include <sysdep.h> | ||
900 | +#include <ldsodefs.h> | ||
901 | + | ||
902 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
903 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
904 | +static const float threehalf = 1.5; | ||
905 | + | ||
906 | +/* The method is based on the descriptions in: | ||
907 | + | ||
908 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
909 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
910 | + | ||
911 | + We find the reciprocal square root and use that to compute the actual | ||
912 | + square root. */ | ||
913 | + | ||
914 | +#ifdef __STDC__ | ||
915 | +float | ||
916 | +__ieee754_sqrtf (float b) | ||
917 | +#else | ||
918 | +float | ||
919 | +__ieee754_sqrtf (b) | ||
920 | + float b; | ||
921 | +#endif | ||
922 | +{ | ||
923 | + if (__builtin_expect (b > 0, 1)) | ||
924 | + { | ||
925 | +#define FMSUB(a_, c_, b_) \ | ||
926 | + ({ double __r; \ | ||
927 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
928 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
929 | + __r;}) | ||
930 | +#define FNMSUB(a_, c_, b_) \ | ||
931 | + ({ double __r; \ | ||
932 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
933 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
934 | + __r;}) | ||
935 | + | ||
936 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
937 | + { | ||
938 | + double y, x; | ||
939 | + fenv_t fe; | ||
940 | + | ||
941 | + fe = fegetenv_register (); | ||
942 | + | ||
943 | + relax_fenv_state (); | ||
944 | + | ||
945 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
946 | + y = FMSUB (threehalf, b, b); | ||
947 | + | ||
948 | + /* Initial estimate. */ | ||
949 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
950 | + | ||
951 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
952 | + x = x * FNMSUB (y, x * x, threehalf); | ||
953 | + x = x * FNMSUB (y, x * x, threehalf); | ||
954 | + x = x * FNMSUB (y, x * x, threehalf); | ||
955 | + | ||
956 | + /* All done. */ | ||
957 | + fesetenv_register (fe); | ||
958 | + return x * b; | ||
959 | + } | ||
960 | + } | ||
961 | + else if (b < 0) | ||
962 | + { | ||
963 | + /* For some reason, some PowerPC32 processors don't implement | ||
964 | + FE_INVALID_SQRT. */ | ||
965 | +#ifdef FE_INVALID_SQRT | ||
966 | + feraiseexcept (FE_INVALID_SQRT); | ||
967 | + | ||
968 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
969 | + if ((u.l[1] & FE_INVALID) == 0) | ||
970 | +#endif | ||
971 | + feraiseexcept (FE_INVALID); | ||
972 | + b = a_nan.value; | ||
973 | + } | ||
974 | + return f_washf (b); | ||
975 | +} | ||
976 | diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
977 | --- libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
978 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2012-06-14 14:51:50.452001745 -0500 | ||
979 | @@ -0,0 +1,134 @@ | ||
980 | +/* Double-precision floating point square root. | ||
981 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
982 | + This file is part of the GNU C Library. | ||
983 | + | ||
984 | + The GNU C Library is free software; you can redistribute it and/or | ||
985 | + modify it under the terms of the GNU Lesser General Public | ||
986 | + License as published by the Free Software Foundation; either | ||
987 | + version 2.1 of the License, or (at your option) any later version. | ||
988 | + | ||
989 | + The GNU C Library is distributed in the hope that it will be useful, | ||
990 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
991 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
992 | + Lesser General Public License for more details. | ||
993 | + | ||
994 | + You should have received a copy of the GNU Lesser General Public | ||
995 | + License along with the GNU C Library; if not, write to the Free | ||
996 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
997 | + 02111-1307 USA. */ | ||
998 | + | ||
999 | +#include <math.h> | ||
1000 | +#include <math_private.h> | ||
1001 | +#include <fenv_libc.h> | ||
1002 | +#include <inttypes.h> | ||
1003 | + | ||
1004 | +#include <sysdep.h> | ||
1005 | +#include <ldsodefs.h> | ||
1006 | + | ||
1007 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
1008 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
1009 | +static const float two108 = 3.245185536584267269e+32; | ||
1010 | +static const float twom54 = 5.551115123125782702e-17; | ||
1011 | +static const float half = 0.5; | ||
1012 | + | ||
1013 | +/* The method is based on the descriptions in: | ||
1014 | + | ||
1015 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
1016 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
1017 | + | ||
1018 | + We find the actual square root and half of its reciprocal | ||
1019 | + simultaneously. */ | ||
1020 | + | ||
1021 | +#ifdef __STDC__ | ||
1022 | +double | ||
1023 | +__ieee754_sqrt (double b) | ||
1024 | +#else | ||
1025 | +double | ||
1026 | +__ieee754_sqrt (b) | ||
1027 | + double b; | ||
1028 | +#endif | ||
1029 | +{ | ||
1030 | + if (__builtin_expect (b > 0, 1)) | ||
1031 | + { | ||
1032 | + double y, g, h, d, r; | ||
1033 | + ieee_double_shape_type u; | ||
1034 | + | ||
1035 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
1036 | + { | ||
1037 | + fenv_t fe; | ||
1038 | + | ||
1039 | + fe = fegetenv_register (); | ||
1040 | + | ||
1041 | + u.value = b; | ||
1042 | + | ||
1043 | + relax_fenv_state (); | ||
1044 | + | ||
1045 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
1046 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
1047 | + | ||
1048 | + /* Following Muller et al, page 168, equation 5.20. | ||
1049 | + | ||
1050 | + h goes to 1/(2*sqrt(b)) | ||
1051 | + g goes to sqrt(b). | ||
1052 | + | ||
1053 | + We need three iterations to get within 1ulp. */ | ||
1054 | + | ||
1055 | + /* Indicate that these can be performed prior to the branch. GCC | ||
1056 | + insists on sinking them below the branch, however; it seems like | ||
1057 | + they'd be better before the branch so that we can cover any latency | ||
1058 | + from storing the argument and loading its high word. Oh well. */ | ||
1059 | + | ||
1060 | + g = b * y; | ||
1061 | + h = 0.5 * y; | ||
1062 | + | ||
1063 | + /* Handle small numbers by scaling. */ | ||
1064 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
1065 | + return __ieee754_sqrt (b * two108) * twom54; | ||
1066 | + | ||
1067 | +#define FMADD(a_, c_, b_) \ | ||
1068 | + ({ double __r; \ | ||
1069 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
1070 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1071 | + __r;}) | ||
1072 | +#define FNMSUB(a_, c_, b_) \ | ||
1073 | + ({ double __r; \ | ||
1074 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
1075 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1076 | + __r;}) | ||
1077 | + | ||
1078 | + r = FNMSUB (g, h, half); | ||
1079 | + g = FMADD (g, r, g); | ||
1080 | + h = FMADD (h, r, h); | ||
1081 | + | ||
1082 | + r = FNMSUB (g, h, half); | ||
1083 | + g = FMADD (g, r, g); | ||
1084 | + h = FMADD (h, r, h); | ||
1085 | + | ||
1086 | + r = FNMSUB (g, h, half); | ||
1087 | + g = FMADD (g, r, g); | ||
1088 | + h = FMADD (h, r, h); | ||
1089 | + | ||
1090 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
1091 | + | ||
1092 | + /* Final refinement. */ | ||
1093 | + d = FNMSUB (g, g, b); | ||
1094 | + | ||
1095 | + fesetenv_register (fe); | ||
1096 | + return FMADD (d, h, g); | ||
1097 | + } | ||
1098 | + } | ||
1099 | + else if (b < 0) | ||
1100 | + { | ||
1101 | + /* For some reason, some PowerPC32 processors don't implement | ||
1102 | + FE_INVALID_SQRT. */ | ||
1103 | +#ifdef FE_INVALID_SQRT | ||
1104 | + feraiseexcept (FE_INVALID_SQRT); | ||
1105 | + | ||
1106 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
1107 | + if ((u.l[1] & FE_INVALID) == 0) | ||
1108 | +#endif | ||
1109 | + feraiseexcept (FE_INVALID); | ||
1110 | + b = a_nan.value; | ||
1111 | + } | ||
1112 | + return f_wash (b); | ||
1113 | +} | ||
1114 | diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
1115 | --- libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
1116 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-06-14 14:51:50.452001745 -0500 | ||
1117 | @@ -0,0 +1,101 @@ | ||
1118 | +/* Single-precision floating point square root. | ||
1119 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
1120 | + This file is part of the GNU C Library. | ||
1121 | + | ||
1122 | + The GNU C Library is free software; you can redistribute it and/or | ||
1123 | + modify it under the terms of the GNU Lesser General Public | ||
1124 | + License as published by the Free Software Foundation; either | ||
1125 | + version 2.1 of the License, or (at your option) any later version. | ||
1126 | + | ||
1127 | + The GNU C Library is distributed in the hope that it will be useful, | ||
1128 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1129 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
1130 | + Lesser General Public License for more details. | ||
1131 | + | ||
1132 | + You should have received a copy of the GNU Lesser General Public | ||
1133 | + License along with the GNU C Library; if not, write to the Free | ||
1134 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
1135 | + 02111-1307 USA. */ | ||
1136 | + | ||
1137 | +#include <math.h> | ||
1138 | +#include <math_private.h> | ||
1139 | +#include <fenv_libc.h> | ||
1140 | +#include <inttypes.h> | ||
1141 | + | ||
1142 | +#include <sysdep.h> | ||
1143 | +#include <ldsodefs.h> | ||
1144 | + | ||
1145 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
1146 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
1147 | +static const float threehalf = 1.5; | ||
1148 | + | ||
1149 | +/* The method is based on the descriptions in: | ||
1150 | + | ||
1151 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
1152 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
1153 | + | ||
1154 | + We find the reciprocal square root and use that to compute the actual | ||
1155 | + square root. */ | ||
1156 | + | ||
1157 | +#ifdef __STDC__ | ||
1158 | +float | ||
1159 | +__ieee754_sqrtf (float b) | ||
1160 | +#else | ||
1161 | +float | ||
1162 | +__ieee754_sqrtf (b) | ||
1163 | + float b; | ||
1164 | +#endif | ||
1165 | +{ | ||
1166 | + if (__builtin_expect (b > 0, 1)) | ||
1167 | + { | ||
1168 | +#define FMSUB(a_, c_, b_) \ | ||
1169 | + ({ double __r; \ | ||
1170 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
1171 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1172 | + __r;}) | ||
1173 | +#define FNMSUB(a_, c_, b_) \ | ||
1174 | + ({ double __r; \ | ||
1175 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
1176 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1177 | + __r;}) | ||
1178 | + | ||
1179 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
1180 | + { | ||
1181 | + double y, x; | ||
1182 | + fenv_t fe; | ||
1183 | + | ||
1184 | + fe = fegetenv_register (); | ||
1185 | + | ||
1186 | + relax_fenv_state (); | ||
1187 | + | ||
1188 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
1189 | + y = FMSUB (threehalf, b, b); | ||
1190 | + | ||
1191 | + /* Initial estimate. */ | ||
1192 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
1193 | + | ||
1194 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
1195 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1196 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1197 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1198 | + | ||
1199 | + /* All done. */ | ||
1200 | + fesetenv_register (fe); | ||
1201 | + return x * b; | ||
1202 | + } | ||
1203 | + } | ||
1204 | + else if (b < 0) | ||
1205 | + { | ||
1206 | + /* For some reason, some PowerPC32 processors don't implement | ||
1207 | + FE_INVALID_SQRT. */ | ||
1208 | +#ifdef FE_INVALID_SQRT | ||
1209 | + feraiseexcept (FE_INVALID_SQRT); | ||
1210 | + | ||
1211 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
1212 | + if ((u.l[1] & FE_INVALID) == 0) | ||
1213 | +#endif | ||
1214 | + feraiseexcept (FE_INVALID); | ||
1215 | + b = a_nan.value; | ||
1216 | + } | ||
1217 | + return f_washf (b); | ||
1218 | +} | ||
1219 | diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
1220 | --- libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
1221 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c 2012-06-14 14:56:02.080000985 -0500 | ||
1222 | @@ -0,0 +1,134 @@ | ||
1223 | +/* Double-precision floating point square root. | ||
1224 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
1225 | + This file is part of the GNU C Library. | ||
1226 | + | ||
1227 | + The GNU C Library is free software; you can redistribute it and/or | ||
1228 | + modify it under the terms of the GNU Lesser General Public | ||
1229 | + License as published by the Free Software Foundation; either | ||
1230 | + version 2.1 of the License, or (at your option) any later version. | ||
1231 | + | ||
1232 | + The GNU C Library is distributed in the hope that it will be useful, | ||
1233 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1234 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
1235 | + Lesser General Public License for more details. | ||
1236 | + | ||
1237 | + You should have received a copy of the GNU Lesser General Public | ||
1238 | + License along with the GNU C Library; if not, write to the Free | ||
1239 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
1240 | + 02111-1307 USA. */ | ||
1241 | + | ||
1242 | +#include <math.h> | ||
1243 | +#include <math_private.h> | ||
1244 | +#include <fenv_libc.h> | ||
1245 | +#include <inttypes.h> | ||
1246 | + | ||
1247 | +#include <sysdep.h> | ||
1248 | +#include <ldsodefs.h> | ||
1249 | + | ||
1250 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
1251 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
1252 | +static const float two108 = 3.245185536584267269e+32; | ||
1253 | +static const float twom54 = 5.551115123125782702e-17; | ||
1254 | +static const float half = 0.5; | ||
1255 | + | ||
1256 | +/* The method is based on the descriptions in: | ||
1257 | + | ||
1258 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
1259 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
1260 | + | ||
1261 | + We find the actual square root and half of its reciprocal | ||
1262 | + simultaneously. */ | ||
1263 | + | ||
1264 | +#ifdef __STDC__ | ||
1265 | +double | ||
1266 | +__ieee754_sqrt (double b) | ||
1267 | +#else | ||
1268 | +double | ||
1269 | +__ieee754_sqrt (b) | ||
1270 | + double b; | ||
1271 | +#endif | ||
1272 | +{ | ||
1273 | + if (__builtin_expect (b > 0, 1)) | ||
1274 | + { | ||
1275 | + double y, g, h, d, r; | ||
1276 | + ieee_double_shape_type u; | ||
1277 | + | ||
1278 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
1279 | + { | ||
1280 | + fenv_t fe; | ||
1281 | + | ||
1282 | + fe = fegetenv_register (); | ||
1283 | + | ||
1284 | + u.value = b; | ||
1285 | + | ||
1286 | + relax_fenv_state (); | ||
1287 | + | ||
1288 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
1289 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
1290 | + | ||
1291 | + /* Following Muller et al, page 168, equation 5.20. | ||
1292 | + | ||
1293 | + h goes to 1/(2*sqrt(b)) | ||
1294 | + g goes to sqrt(b). | ||
1295 | + | ||
1296 | + We need three iterations to get within 1ulp. */ | ||
1297 | + | ||
1298 | + /* Indicate that these can be performed prior to the branch. GCC | ||
1299 | + insists on sinking them below the branch, however; it seems like | ||
1300 | + they'd be better before the branch so that we can cover any latency | ||
1301 | + from storing the argument and loading its high word. Oh well. */ | ||
1302 | + | ||
1303 | + g = b * y; | ||
1304 | + h = 0.5 * y; | ||
1305 | + | ||
1306 | + /* Handle small numbers by scaling. */ | ||
1307 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
1308 | + return __ieee754_sqrt (b * two108) * twom54; | ||
1309 | + | ||
1310 | +#define FMADD(a_, c_, b_) \ | ||
1311 | + ({ double __r; \ | ||
1312 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
1313 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1314 | + __r;}) | ||
1315 | +#define FNMSUB(a_, c_, b_) \ | ||
1316 | + ({ double __r; \ | ||
1317 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
1318 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1319 | + __r;}) | ||
1320 | + | ||
1321 | + r = FNMSUB (g, h, half); | ||
1322 | + g = FMADD (g, r, g); | ||
1323 | + h = FMADD (h, r, h); | ||
1324 | + | ||
1325 | + r = FNMSUB (g, h, half); | ||
1326 | + g = FMADD (g, r, g); | ||
1327 | + h = FMADD (h, r, h); | ||
1328 | + | ||
1329 | + r = FNMSUB (g, h, half); | ||
1330 | + g = FMADD (g, r, g); | ||
1331 | + h = FMADD (h, r, h); | ||
1332 | + | ||
1333 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
1334 | + | ||
1335 | + /* Final refinement. */ | ||
1336 | + d = FNMSUB (g, g, b); | ||
1337 | + | ||
1338 | + fesetenv_register (fe); | ||
1339 | + return FMADD (d, h, g); | ||
1340 | + } | ||
1341 | + } | ||
1342 | + else if (b < 0) | ||
1343 | + { | ||
1344 | + /* For some reason, some PowerPC32 processors don't implement | ||
1345 | + FE_INVALID_SQRT. */ | ||
1346 | +#ifdef FE_INVALID_SQRT | ||
1347 | + feraiseexcept (FE_INVALID_SQRT); | ||
1348 | + | ||
1349 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
1350 | + if ((u.l[1] & FE_INVALID) == 0) | ||
1351 | +#endif | ||
1352 | + feraiseexcept (FE_INVALID); | ||
1353 | + b = a_nan.value; | ||
1354 | + } | ||
1355 | + return f_wash (b); | ||
1356 | +} | ||
1357 | diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
1358 | --- libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
1359 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c 2012-06-14 14:56:02.080000985 -0500 | ||
1360 | @@ -0,0 +1,101 @@ | ||
1361 | +/* Single-precision floating point square root. | ||
1362 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
1363 | + This file is part of the GNU C Library. | ||
1364 | + | ||
1365 | + The GNU C Library is free software; you can redistribute it and/or | ||
1366 | + modify it under the terms of the GNU Lesser General Public | ||
1367 | + License as published by the Free Software Foundation; either | ||
1368 | + version 2.1 of the License, or (at your option) any later version. | ||
1369 | + | ||
1370 | + The GNU C Library is distributed in the hope that it will be useful, | ||
1371 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1372 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
1373 | + Lesser General Public License for more details. | ||
1374 | + | ||
1375 | + You should have received a copy of the GNU Lesser General Public | ||
1376 | + License along with the GNU C Library; if not, write to the Free | ||
1377 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
1378 | + 02111-1307 USA. */ | ||
1379 | + | ||
1380 | +#include <math.h> | ||
1381 | +#include <math_private.h> | ||
1382 | +#include <fenv_libc.h> | ||
1383 | +#include <inttypes.h> | ||
1384 | + | ||
1385 | +#include <sysdep.h> | ||
1386 | +#include <ldsodefs.h> | ||
1387 | + | ||
1388 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
1389 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
1390 | +static const float threehalf = 1.5; | ||
1391 | + | ||
1392 | +/* The method is based on the descriptions in: | ||
1393 | + | ||
1394 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
1395 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
1396 | + | ||
1397 | + We find the reciprocal square root and use that to compute the actual | ||
1398 | + square root. */ | ||
1399 | + | ||
1400 | +#ifdef __STDC__ | ||
1401 | +float | ||
1402 | +__ieee754_sqrtf (float b) | ||
1403 | +#else | ||
1404 | +float | ||
1405 | +__ieee754_sqrtf (b) | ||
1406 | + float b; | ||
1407 | +#endif | ||
1408 | +{ | ||
1409 | + if (__builtin_expect (b > 0, 1)) | ||
1410 | + { | ||
1411 | +#define FMSUB(a_, c_, b_) \ | ||
1412 | + ({ double __r; \ | ||
1413 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
1414 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1415 | + __r;}) | ||
1416 | +#define FNMSUB(a_, c_, b_) \ | ||
1417 | + ({ double __r; \ | ||
1418 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
1419 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1420 | + __r;}) | ||
1421 | + | ||
1422 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
1423 | + { | ||
1424 | + double y, x; | ||
1425 | + fenv_t fe; | ||
1426 | + | ||
1427 | + fe = fegetenv_register (); | ||
1428 | + | ||
1429 | + relax_fenv_state (); | ||
1430 | + | ||
1431 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
1432 | + y = FMSUB (threehalf, b, b); | ||
1433 | + | ||
1434 | + /* Initial estimate. */ | ||
1435 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
1436 | + | ||
1437 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
1438 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1439 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1440 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1441 | + | ||
1442 | + /* All done. */ | ||
1443 | + fesetenv_register (fe); | ||
1444 | + return x * b; | ||
1445 | + } | ||
1446 | + } | ||
1447 | + else if (b < 0) | ||
1448 | + { | ||
1449 | + /* For some reason, some PowerPC32 processors don't implement | ||
1450 | + FE_INVALID_SQRT. */ | ||
1451 | +#ifdef FE_INVALID_SQRT | ||
1452 | + feraiseexcept (FE_INVALID_SQRT); | ||
1453 | + | ||
1454 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
1455 | + if ((u.l[1] & FE_INVALID) == 0) | ||
1456 | +#endif | ||
1457 | + feraiseexcept (FE_INVALID); | ||
1458 | + b = a_nan.value; | ||
1459 | + } | ||
1460 | + return f_washf (b); | ||
1461 | +} | ||
1462 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies | ||
1463 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1464 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies 2012-06-14 14:51:50.452001745 -0500 | ||
1465 | @@ -0,0 +1 @@ | ||
1466 | +powerpc/powerpc32/603e/fpu | ||
1467 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies | ||
1468 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1469 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies 2012-06-14 14:54:00.481000876 -0500 | ||
1470 | @@ -0,0 +1 @@ | ||
1471 | +powerpc/powerpc32/e500mc/fpu | ||
1472 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies | ||
1473 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1474 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies 2012-06-14 14:54:17.000001007 -0500 | ||
1475 | @@ -0,0 +1 @@ | ||
1476 | +powerpc/powerpc32/e5500/fpu | ||
1477 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies | ||
1478 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1479 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies 2012-06-14 14:54:31.054001299 -0500 | ||
1480 | @@ -0,0 +1 @@ | ||
1481 | +powerpc/powerpc32/e6500/fpu | ||
1482 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies | ||
1483 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1484 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies 2012-06-14 14:51:50.453001709 -0500 | ||
1485 | @@ -0,0 +1 @@ | ||
1486 | +powerpc/powerpc64/e5500/fpu | ||
1487 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies | ||
1488 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1489 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies 2012-06-14 14:58:14.298001288 -0500 | ||
1490 | @@ -0,0 +1 @@ | ||
1491 | +powerpc/powerpc64/e6500/fpu | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/initgroups_keys.patch b/meta/recipes-core/eglibc/eglibc-2.17/initgroups_keys.patch new file mode 100644 index 0000000000..be29856b03 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/initgroups_keys.patch | |||
@@ -0,0 +1,20 @@ | |||
1 | This is needed since initgroups belongs to NET group | ||
2 | so when NET is disabled in eglibc build then it reports | ||
3 | as undefined symbol | ||
4 | |||
5 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Index: libc/nss/getent.c | ||
9 | =================================================================== | ||
10 | --- libc.orig/nss/getent.c 2012-03-09 09:41:57.099581559 -0800 | ||
11 | +++ libc/nss/getent.c 2012-03-09 09:42:13.095582334 -0800 | ||
12 | @@ -898,7 +898,7 @@ | ||
13 | D(group) | ||
14 | D(gshadow) | ||
15 | DN(hosts) | ||
16 | -D(initgroups) | ||
17 | +DN(initgroups) | ||
18 | DN(netgroup) | ||
19 | DN(networks) | ||
20 | D(passwd) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/ld-search-order.patch b/meta/recipes-core/eglibc/eglibc-2.17/ld-search-order.patch new file mode 100644 index 0000000000..e83a0ad6d2 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/ld-search-order.patch | |||
@@ -0,0 +1,56 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | The default lib search path order is: | ||
4 | |||
5 | 1) LD_LIBRARY_PATH | ||
6 | 2) RPATH from the binary | ||
7 | 3) ld.so.cache | ||
8 | 4) default search paths embedded in the linker | ||
9 | |||
10 | For nativesdk binaries which are being used alongside binaries on a host system, we | ||
11 | need the search paths to firstly search the shipped nativesdk libs but then also | ||
12 | cover the host system. For example we want the host system's libGL and this may be | ||
13 | in a non-standard location like /usr/lib/mesa. The only place the location is know | ||
14 | about is in the ld.so.cache of the host system. | ||
15 | |||
16 | Since nativesdk has a simple structure and doesn't need to use a cache itself, we | ||
17 | repurpose the cache for use as a last resort in finding host system binaries. This | ||
18 | means we need to switch the order of 3 and 4 above to make this work effectively. | ||
19 | |||
20 | RP 14/10/2010 | ||
21 | |||
22 | Index: libc/elf/dl-load.c | ||
23 | =================================================================== | ||
24 | --- libc.orig/elf/dl-load.c 2012-12-02 13:11:45.000000000 -0800 | ||
25 | +++ libc/elf/dl-load.c 2013-01-09 07:00:59.135223084 -0800 | ||
26 | @@ -2215,7 +2215,14 @@ | ||
27 | fd = open_path (name, namelen, mode & __RTLD_SECURE, | ||
28 | &loader->l_runpath_dirs, &realname, &fb, loader, | ||
29 | LA_SER_RUNPATH, &found_other_class); | ||
30 | - | ||
31 | + /* try the default path. */ | ||
32 | + if (fd == -1 | ||
33 | + && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL | ||
34 | + || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) | ||
35 | + && rtld_search_dirs.dirs != (void *) -1) | ||
36 | + fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, | ||
37 | + &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); | ||
38 | + /* Finally try ld.so.cache */ | ||
39 | #ifdef USE_LDCONFIG | ||
40 | if (fd == -1 | ||
41 | && (__builtin_expect (! (mode & __RTLD_SECURE), 1) | ||
42 | @@ -2283,14 +2290,6 @@ | ||
43 | } | ||
44 | #endif | ||
45 | |||
46 | - /* Finally, try the default path. */ | ||
47 | - if (fd == -1 | ||
48 | - && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL | ||
49 | - || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) | ||
50 | - && rtld_search_dirs.dirs != (void *) -1) | ||
51 | - fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, | ||
52 | - &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); | ||
53 | - | ||
54 | /* Add another newline when we are tracing the library loading. */ | ||
55 | if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0)) | ||
56 | _dl_debug_printf ("\n"); | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/mips-rld-map-check.patch b/meta/recipes-core/eglibc/eglibc-2.17/mips-rld-map-check.patch new file mode 100644 index 0000000000..9b646fea95 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/mips-rld-map-check.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | |||
2 | On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic | ||
3 | section if a --version-script sets _RLD_MAP to local. This is apparently | ||
4 | a binutils bug, but libc shouldn't segfault in this case. | ||
5 | |||
6 | see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615 | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | |||
10 | 9/19/2010 - added by Qing He <qing.he@intel.com> | ||
11 | |||
12 | |||
13 | --- | ||
14 | diff -ru glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h glibc-2.10.1/ports/sysdeps/mips/dl-machine.h | ||
15 | --- glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h 2009-05-16 16:36:20.000000000 +0800 | ||
16 | +++ glibc-2.10.1/ports/sysdeps/mips/dl-machine.h 2010-09-19 09:11:53.000000000 +0800 | ||
17 | @@ -70,7 +70,8 @@ | ||
18 | /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in | ||
19 | with the run-time address of the r_debug structure */ | ||
20 | #define ELF_MACHINE_DEBUG_SETUP(l,r) \ | ||
21 | -do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \ | ||
22 | +do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \ | ||
23 | + (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \ | ||
24 | *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \ | ||
25 | (ElfW(Addr)) (r); \ | ||
26 | } while (0) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/multilib_readlib.patch b/meta/recipes-core/eglibc/eglibc-2.17/multilib_readlib.patch new file mode 100644 index 0000000000..1542b1b519 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/multilib_readlib.patch | |||
@@ -0,0 +1,17 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | Replace the OECORE_KNOWN_INTERPRETER_NAMES with the value of | ||
4 | variable EGLIBC_KNOWN_INTERPRETER_NAMES. | ||
5 | |||
6 | Lianhao Lu, 08/01/2011 | ||
7 | |||
8 | --- libc/elf/readlib.c.orig 2011-08-12 17:05:51.864470837 +0800 | ||
9 | +++ libc/elf/readlib.c 2011-08-12 17:06:39.346942074 +0800 | ||
10 | @@ -52,6 +52,7 @@ | ||
11 | #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES | ||
12 | SYSDEP_KNOWN_INTERPRETER_NAMES | ||
13 | #endif | ||
14 | + OECORE_KNOWN_INTERPRETER_NAMES | ||
15 | }; | ||
16 | |||
17 | static struct known_names known_libs[] = | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/ppc-sqrt_finite.patch b/meta/recipes-core/eglibc/eglibc-2.17/ppc-sqrt_finite.patch new file mode 100644 index 0000000000..6ea666b1d6 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/ppc-sqrt_finite.patch | |||
@@ -0,0 +1,184 @@ | |||
1 | on ppc fixes the errors like below | ||
2 | | ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite' | ||
3 | | collect2: ld returned 1 exit status | ||
4 | |||
5 | Upstream-Status: Pending | ||
6 | |||
7 | ChangeLog | ||
8 | |||
9 | 2012-01-06 Khem Raj <raj.khem@gmail.com> | ||
10 | |||
11 | * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias. | ||
12 | Remove cruft. | ||
13 | * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto. | ||
14 | * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto. | ||
15 | * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto. | ||
16 | |||
17 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
18 | =================================================================== | ||
19 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
20 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
21 | @@ -39,14 +39,8 @@ static const float half = 0.5; | ||
22 | We find the actual square root and half of its reciprocal | ||
23 | simultaneously. */ | ||
24 | |||
25 | -#ifdef __STDC__ | ||
26 | double | ||
27 | __ieee754_sqrt (double b) | ||
28 | -#else | ||
29 | -double | ||
30 | -__ieee754_sqrt (b) | ||
31 | - double b; | ||
32 | -#endif | ||
33 | { | ||
34 | if (__builtin_expect (b > 0, 1)) | ||
35 | { | ||
36 | @@ -132,3 +126,4 @@ __ieee754_sqrt (b) | ||
37 | } | ||
38 | return f_wash (b); | ||
39 | } | ||
40 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
41 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
42 | =================================================================== | ||
43 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
44 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
45 | @@ -37,14 +37,8 @@ static const float threehalf = 1.5; | ||
46 | We find the reciprocal square root and use that to compute the actual | ||
47 | square root. */ | ||
48 | |||
49 | -#ifdef __STDC__ | ||
50 | float | ||
51 | __ieee754_sqrtf (float b) | ||
52 | -#else | ||
53 | -float | ||
54 | -__ieee754_sqrtf (b) | ||
55 | - float b; | ||
56 | -#endif | ||
57 | { | ||
58 | if (__builtin_expect (b > 0, 1)) | ||
59 | { | ||
60 | @@ -99,3 +93,4 @@ __ieee754_sqrtf (b) | ||
61 | } | ||
62 | return f_washf (b); | ||
63 | } | ||
64 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
65 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
66 | =================================================================== | ||
67 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
68 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
69 | @@ -39,14 +39,8 @@ static const float half = 0.5; | ||
70 | We find the actual square root and half of its reciprocal | ||
71 | simultaneously. */ | ||
72 | |||
73 | -#ifdef __STDC__ | ||
74 | double | ||
75 | __ieee754_sqrt (double b) | ||
76 | -#else | ||
77 | -double | ||
78 | -__ieee754_sqrt (b) | ||
79 | - double b; | ||
80 | -#endif | ||
81 | { | ||
82 | if (__builtin_expect (b > 0, 1)) | ||
83 | { | ||
84 | @@ -132,3 +126,4 @@ __ieee754_sqrt (b) | ||
85 | } | ||
86 | return f_wash (b); | ||
87 | } | ||
88 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
89 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
90 | =================================================================== | ||
91 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
92 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
93 | @@ -37,14 +37,8 @@ static const float threehalf = 1.5; | ||
94 | We find the reciprocal square root and use that to compute the actual | ||
95 | square root. */ | ||
96 | |||
97 | -#ifdef __STDC__ | ||
98 | float | ||
99 | __ieee754_sqrtf (float b) | ||
100 | -#else | ||
101 | -float | ||
102 | -__ieee754_sqrtf (b) | ||
103 | - float b; | ||
104 | -#endif | ||
105 | { | ||
106 | if (__builtin_expect (b > 0, 1)) | ||
107 | { | ||
108 | @@ -99,3 +93,4 @@ __ieee754_sqrtf (b) | ||
109 | } | ||
110 | return f_washf (b); | ||
111 | } | ||
112 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
113 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
114 | =================================================================== | ||
115 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
116 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
117 | @@ -132,3 +132,4 @@ __ieee754_sqrt (b) | ||
118 | } | ||
119 | return f_wash (b); | ||
120 | } | ||
121 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
122 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
123 | =================================================================== | ||
124 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
125 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
126 | @@ -99,3 +99,4 @@ __ieee754_sqrtf (b) | ||
127 | } | ||
128 | return f_washf (b); | ||
129 | } | ||
130 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
131 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
132 | =================================================================== | ||
133 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
134 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
135 | @@ -132,3 +132,4 @@ __ieee754_sqrt (b) | ||
136 | } | ||
137 | return f_wash (b); | ||
138 | } | ||
139 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
140 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
141 | =================================================================== | ||
142 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
143 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
144 | @@ -99,3 +99,4 @@ __ieee754_sqrtf (b) | ||
145 | } | ||
146 | return f_washf (b); | ||
147 | } | ||
148 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
149 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
150 | =================================================================== | ||
151 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
152 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
153 | @@ -132,3 +132,4 @@ __ieee754_sqrt (b) | ||
154 | } | ||
155 | return f_wash (b); | ||
156 | } | ||
157 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
158 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
159 | =================================================================== | ||
160 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
161 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
162 | @@ -99,3 +99,4 @@ __ieee754_sqrtf (b) | ||
163 | } | ||
164 | return f_washf (b); | ||
165 | } | ||
166 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
167 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
168 | =================================================================== | ||
169 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
170 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
171 | @@ -132,3 +132,4 @@ __ieee754_sqrt (b) | ||
172 | } | ||
173 | return f_wash (b); | ||
174 | } | ||
175 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
176 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
177 | =================================================================== | ||
178 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
179 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
180 | @@ -99,3 +99,4 @@ __ieee754_sqrtf (b) | ||
181 | } | ||
182 | return f_washf (b); | ||
183 | } | ||
184 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/ppc_slow_ieee754_sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.17/ppc_slow_ieee754_sqrt.patch new file mode 100644 index 0000000000..60532cbd03 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/ppc_slow_ieee754_sqrt.patch | |||
@@ -0,0 +1,365 @@ | |||
1 | __ieee754_sqrt{,f} are now inline functions and call out __slow versions | ||
2 | |||
3 | |||
4 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
5 | Upstream-Status: Pending | ||
6 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
7 | =================================================================== | ||
8 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
9 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
10 | @@ -40,7 +40,7 @@ static const float half = 0.5; | ||
11 | simultaneously. */ | ||
12 | |||
13 | double | ||
14 | -__ieee754_sqrt (double b) | ||
15 | +__slow_ieee754_sqrt (double b) | ||
16 | { | ||
17 | if (__builtin_expect (b > 0, 1)) | ||
18 | { | ||
19 | @@ -77,7 +77,7 @@ __ieee754_sqrt (double b) | ||
20 | |||
21 | /* Handle small numbers by scaling. */ | ||
22 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
23 | - return __ieee754_sqrt (b * two108) * twom54; | ||
24 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
25 | |||
26 | #define FMADD(a_, c_, b_) \ | ||
27 | ({ double __r; \ | ||
28 | @@ -126,4 +126,12 @@ __ieee754_sqrt (double b) | ||
29 | } | ||
30 | return f_wash (b); | ||
31 | } | ||
32 | + | ||
33 | +#undef __ieee754_sqrt | ||
34 | +double | ||
35 | +__ieee754_sqrt (double x) | ||
36 | +{ | ||
37 | + return __slow_ieee754_sqrt (x); | ||
38 | +} | ||
39 | + | ||
40 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
41 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
42 | =================================================================== | ||
43 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
44 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
45 | @@ -38,7 +38,7 @@ static const float threehalf = 1.5; | ||
46 | square root. */ | ||
47 | |||
48 | float | ||
49 | -__ieee754_sqrtf (float b) | ||
50 | +__slow_ieee754_sqrtf (float b) | ||
51 | { | ||
52 | if (__builtin_expect (b > 0, 1)) | ||
53 | { | ||
54 | @@ -93,4 +93,10 @@ __ieee754_sqrtf (float b) | ||
55 | } | ||
56 | return f_washf (b); | ||
57 | } | ||
58 | +#undef __ieee754_sqrtf | ||
59 | +float | ||
60 | +__ieee754_sqrtf (float x) | ||
61 | +{ | ||
62 | + return __slow_ieee754_sqrtf (x); | ||
63 | +} | ||
64 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
65 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
66 | =================================================================== | ||
67 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
68 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
69 | @@ -40,7 +40,7 @@ static const float half = 0.5; | ||
70 | simultaneously. */ | ||
71 | |||
72 | double | ||
73 | -__ieee754_sqrt (double b) | ||
74 | +__slow_ieee754_sqrt (double b) | ||
75 | { | ||
76 | if (__builtin_expect (b > 0, 1)) | ||
77 | { | ||
78 | @@ -77,7 +77,7 @@ __ieee754_sqrt (double b) | ||
79 | |||
80 | /* Handle small numbers by scaling. */ | ||
81 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
82 | - return __ieee754_sqrt (b * two108) * twom54; | ||
83 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
84 | |||
85 | #define FMADD(a_, c_, b_) \ | ||
86 | ({ double __r; \ | ||
87 | @@ -126,4 +126,12 @@ __ieee754_sqrt (double b) | ||
88 | } | ||
89 | return f_wash (b); | ||
90 | } | ||
91 | + | ||
92 | +#undef __ieee754_sqrt | ||
93 | +double | ||
94 | +__ieee754_sqrt (double x) | ||
95 | +{ | ||
96 | + return __slow_ieee754_sqrt (x); | ||
97 | +} | ||
98 | + | ||
99 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
100 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
101 | =================================================================== | ||
102 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
103 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
104 | @@ -38,7 +38,7 @@ static const float threehalf = 1.5; | ||
105 | square root. */ | ||
106 | |||
107 | float | ||
108 | -__ieee754_sqrtf (float b) | ||
109 | +__slow_ieee754_sqrtf (float b) | ||
110 | { | ||
111 | if (__builtin_expect (b > 0, 1)) | ||
112 | { | ||
113 | @@ -93,4 +93,11 @@ __ieee754_sqrtf (float b) | ||
114 | } | ||
115 | return f_washf (b); | ||
116 | } | ||
117 | +#undef __ieee754_sqrtf | ||
118 | +float | ||
119 | +__ieee754_sqrtf (float x) | ||
120 | +{ | ||
121 | + return __slow_ieee754_sqrtf (x); | ||
122 | +} | ||
123 | + | ||
124 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
125 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
126 | =================================================================== | ||
127 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
128 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
129 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
130 | |||
131 | #ifdef __STDC__ | ||
132 | double | ||
133 | -__ieee754_sqrt (double b) | ||
134 | +__slow_ieee754_sqrt (double b) | ||
135 | #else | ||
136 | double | ||
137 | -__ieee754_sqrt (b) | ||
138 | +__slow_ieee754_sqrt (b) | ||
139 | double b; | ||
140 | #endif | ||
141 | { | ||
142 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
143 | |||
144 | /* Handle small numbers by scaling. */ | ||
145 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
146 | - return __ieee754_sqrt (b * two108) * twom54; | ||
147 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
148 | |||
149 | #define FMADD(a_, c_, b_) \ | ||
150 | ({ double __r; \ | ||
151 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
152 | } | ||
153 | return f_wash (b); | ||
154 | } | ||
155 | + | ||
156 | +#undef __ieee754_sqrt | ||
157 | +double | ||
158 | +__ieee754_sqrt (double x) | ||
159 | +{ | ||
160 | + return __slow_ieee754_sqrt (x); | ||
161 | +} | ||
162 | + | ||
163 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
164 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
165 | =================================================================== | ||
166 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
167 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
168 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
169 | |||
170 | #ifdef __STDC__ | ||
171 | float | ||
172 | -__ieee754_sqrtf (float b) | ||
173 | +__slow_ieee754_sqrtf (float b) | ||
174 | #else | ||
175 | float | ||
176 | -__ieee754_sqrtf (b) | ||
177 | +__slow_ieee754_sqrtf (b) | ||
178 | float b; | ||
179 | #endif | ||
180 | { | ||
181 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
182 | } | ||
183 | return f_washf (b); | ||
184 | } | ||
185 | + | ||
186 | +#undef __ieee754_sqrtf | ||
187 | +float | ||
188 | +__ieee754_sqrtf (float x) | ||
189 | +{ | ||
190 | + return __slow_ieee754_sqrtf (x); | ||
191 | +} | ||
192 | + | ||
193 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
194 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
195 | =================================================================== | ||
196 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
197 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
198 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
199 | |||
200 | #ifdef __STDC__ | ||
201 | double | ||
202 | -__ieee754_sqrt (double b) | ||
203 | +__slow_ieee754_sqrt (double b) | ||
204 | #else | ||
205 | double | ||
206 | -__ieee754_sqrt (b) | ||
207 | +__slow_ieee754_sqrt (b) | ||
208 | double b; | ||
209 | #endif | ||
210 | { | ||
211 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
212 | |||
213 | /* Handle small numbers by scaling. */ | ||
214 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
215 | - return __ieee754_sqrt (b * two108) * twom54; | ||
216 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
217 | |||
218 | #define FMADD(a_, c_, b_) \ | ||
219 | ({ double __r; \ | ||
220 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
221 | } | ||
222 | return f_wash (b); | ||
223 | } | ||
224 | + | ||
225 | +#undef __ieee754_sqrt | ||
226 | +double | ||
227 | +__ieee754_sqrt (double x) | ||
228 | +{ | ||
229 | + return __slow_ieee754_sqrt (x); | ||
230 | +} | ||
231 | + | ||
232 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
233 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
234 | =================================================================== | ||
235 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
236 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
237 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
238 | |||
239 | #ifdef __STDC__ | ||
240 | float | ||
241 | -__ieee754_sqrtf (float b) | ||
242 | +__slow_ieee754_sqrtf (float b) | ||
243 | #else | ||
244 | float | ||
245 | -__ieee754_sqrtf (b) | ||
246 | +__slow_ieee754_sqrtf (b) | ||
247 | float b; | ||
248 | #endif | ||
249 | { | ||
250 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
251 | } | ||
252 | return f_washf (b); | ||
253 | } | ||
254 | + | ||
255 | +#undef __ieee754_sqrtf | ||
256 | +float | ||
257 | +__ieee754_sqrtf (float x) | ||
258 | +{ | ||
259 | + return __slow_ieee754_sqrtf (x); | ||
260 | +} | ||
261 | + | ||
262 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
263 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
264 | =================================================================== | ||
265 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
266 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
267 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
268 | |||
269 | #ifdef __STDC__ | ||
270 | double | ||
271 | -__ieee754_sqrt (double b) | ||
272 | +__slow_ieee754_sqrt (double b) | ||
273 | #else | ||
274 | double | ||
275 | -__ieee754_sqrt (b) | ||
276 | +__slow_ieee754_sqrt (b) | ||
277 | double b; | ||
278 | #endif | ||
279 | { | ||
280 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
281 | |||
282 | /* Handle small numbers by scaling. */ | ||
283 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
284 | - return __ieee754_sqrt (b * two108) * twom54; | ||
285 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
286 | |||
287 | #define FMADD(a_, c_, b_) \ | ||
288 | ({ double __r; \ | ||
289 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
290 | } | ||
291 | return f_wash (b); | ||
292 | } | ||
293 | + | ||
294 | +#undef __ieee754_sqrt | ||
295 | +double | ||
296 | +__ieee754_sqrt (double x) | ||
297 | +{ | ||
298 | + return __slow_ieee754_sqrt (x); | ||
299 | +} | ||
300 | + | ||
301 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
302 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
303 | =================================================================== | ||
304 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
305 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
306 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
307 | |||
308 | #ifdef __STDC__ | ||
309 | float | ||
310 | -__ieee754_sqrtf (float b) | ||
311 | +__slow_ieee754_sqrtf (float b) | ||
312 | #else | ||
313 | float | ||
314 | -__ieee754_sqrtf (b) | ||
315 | +__slow_ieee754_sqrtf (b) | ||
316 | float b; | ||
317 | #endif | ||
318 | { | ||
319 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
320 | } | ||
321 | return f_washf (b); | ||
322 | } | ||
323 | + | ||
324 | +#undef __ieee754_sqrtf | ||
325 | +float | ||
326 | +__ieee754_sqrtf (float x) | ||
327 | +{ | ||
328 | + return __slow_ieee754_sqrtf (x); | ||
329 | +} | ||
330 | + | ||
331 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
332 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
333 | =================================================================== | ||
334 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
335 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
336 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
337 | } | ||
338 | return f_wash (b); | ||
339 | } | ||
340 | + | ||
341 | +#undef __ieee754_sqrt | ||
342 | +double | ||
343 | +__ieee754_sqrt (double x) | ||
344 | +{ | ||
345 | + return __slow_ieee754_sqrt (x); | ||
346 | +} | ||
347 | + | ||
348 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
349 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
350 | =================================================================== | ||
351 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
352 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
353 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
354 | } | ||
355 | return f_washf (b); | ||
356 | } | ||
357 | + | ||
358 | +#undef __ieee754_sqrtf | ||
359 | +float | ||
360 | +__ieee754_sqrtf (float x) | ||
361 | +{ | ||
362 | + return __slow_ieee754_sqrtf (x); | ||
363 | +} | ||
364 | + | ||
365 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/relocatable_sdk.patch b/meta/recipes-core/eglibc/eglibc-2.17/relocatable_sdk.patch new file mode 100644 index 0000000000..ca5f17ba58 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/relocatable_sdk.patch | |||
@@ -0,0 +1,108 @@ | |||
1 | Upstream-Status: Inappropriate [SDK specific] | ||
2 | |||
3 | This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings | ||
4 | and lengths as well as ld.so.cache path in the dynamic loader to specific | ||
5 | sections in memory. The sections that contain paths have been allocated a 4096 | ||
6 | byte section, which is the maximum path length in linux. This will allow the | ||
7 | relocating script to parse the ELF binary, detect the section and easily replace | ||
8 | the strings in a certain path. | ||
9 | |||
10 | Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> | ||
11 | |||
12 | Index: libc/elf/interp.c | ||
13 | =================================================================== | ||
14 | --- libc.orig/elf/interp.c | ||
15 | +++ libc/elf/interp.c | ||
16 | @@ -16,5 +16,5 @@ | ||
17 | License along with the GNU C Library; if not, see | ||
18 | <http://www.gnu.org/licenses/>. */ | ||
19 | |||
20 | -const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp"))) | ||
21 | +const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp"))) | ||
22 | = RUNTIME_LINKER; | ||
23 | Index: libc/elf/dl-load.c | ||
24 | =================================================================== | ||
25 | --- libc.orig/elf/dl-load.c | ||
26 | +++ libc/elf/dl-load.c | ||
27 | @@ -144,8 +144,8 @@ static size_t max_capstrlen attribute_re | ||
28 | /* Get the generated information about the trusted directories. */ | ||
29 | #include "trusted-dirs.h" | ||
30 | |||
31 | -static const char system_dirs[] = SYSTEM_DIRS; | ||
32 | -static const size_t system_dirs_len[] = | ||
33 | +static const char system_dirs[4096] __attribute__ ((section (".sysdirs"))) = SYSTEM_DIRS; | ||
34 | +volatile static const size_t system_dirs_len[] __attribute__ ((section (".sysdirslen"))) = | ||
35 | { | ||
36 | SYSTEM_DIRS_LEN | ||
37 | }; | ||
38 | Index: libc/elf/dl-cache.c | ||
39 | =================================================================== | ||
40 | --- libc.orig/elf/dl-cache.c | ||
41 | +++ libc/elf/dl-cache.c | ||
42 | @@ -133,6 +133,10 @@ do \ | ||
43 | while (0) | ||
44 | |||
45 | |||
46 | +const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))) = | ||
47 | + SYSCONFDIR "/ld.so.cache"; | ||
48 | + | ||
49 | + | ||
50 | int | ||
51 | internal_function | ||
52 | _dl_cache_libcmp (const char *p1, const char *p2) | ||
53 | Index: libc/elf/ldconfig.c | ||
54 | =================================================================== | ||
55 | --- libc.orig/elf/ldconfig.c | ||
56 | +++ libc/elf/ldconfig.c | ||
57 | @@ -166,6 +166,9 @@ static struct argp argp = | ||
58 | options, parse_opt, NULL, doc, NULL, more_help, NULL | ||
59 | }; | ||
60 | |||
61 | + | ||
62 | +extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); | ||
63 | + | ||
64 | /* Check if string corresponds to an important hardware capability or | ||
65 | a platform. */ | ||
66 | static int | ||
67 | Index: libc/sysdeps/generic/dl-cache.h | ||
68 | =================================================================== | ||
69 | --- libc.orig/sysdeps/generic/dl-cache.h | ||
70 | +++ libc/sysdeps/generic/dl-cache.h | ||
71 | @@ -27,10 +27,6 @@ | ||
72 | ((flags) == 1 || (flags) == _DL_CACHE_DEFAULT_ID) | ||
73 | #endif | ||
74 | |||
75 | -#ifndef LD_SO_CACHE | ||
76 | -# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache" | ||
77 | -#endif | ||
78 | - | ||
79 | #ifndef add_system_dir | ||
80 | # define add_system_dir(dir) add_dir (dir) | ||
81 | #endif | ||
82 | Index: libc/elf/rtld.c | ||
83 | =================================================================== | ||
84 | --- libc.orig/elf/rtld.c | ||
85 | +++ libc/elf/rtld.c | ||
86 | @@ -99,6 +99,7 @@ uintptr_t __pointer_chk_guard_local | ||
87 | strong_alias (__pointer_chk_guard_local, __pointer_chk_guard) | ||
88 | #endif | ||
89 | |||
90 | +extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); | ||
91 | |||
92 | /* List of auditing DSOs. */ | ||
93 | static struct audit_list | ||
94 | @@ -1031,12 +1032,12 @@ of this helper program; chances are you | ||
95 | --list list all dependencies and how they are resolved\n\ | ||
96 | --verify verify that given object really is a dynamically linked\n\ | ||
97 | object we can handle\n\ | ||
98 | - --inhibit-cache Do not use " LD_SO_CACHE "\n\ | ||
99 | + --inhibit-cache Do not use %s\n\ | ||
100 | --library-path PATH use given PATH instead of content of the environment\n\ | ||
101 | variable LD_LIBRARY_PATH\n\ | ||
102 | --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n\ | ||
103 | in LIST\n\ | ||
104 | - --audit LIST use objects named in LIST as auditors\n"); | ||
105 | + --audit LIST use objects named in LIST as auditors\n", LD_SO_CACHE); | ||
106 | |||
107 | ++_dl_skip_args; | ||
108 | --_dl_argc; | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/relocatable_sdk_fix_openpath.patch b/meta/recipes-core/eglibc/eglibc-2.17/relocatable_sdk_fix_openpath.patch new file mode 100644 index 0000000000..f164f8f9ae --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/relocatable_sdk_fix_openpath.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | Upstream-Status: Inappropriate [SDK specific] | ||
2 | |||
3 | eglibc-nativesdk: Fix buffer overrun with a relocated SDK | ||
4 | |||
5 | When ld-linux-*.so.2 is relocated to a path that is longer than the | ||
6 | original fixed location, the dynamic loader will crash in open_path | ||
7 | because it implicitly assumes that max_dirnamelen is a fixed size that | ||
8 | never changes. | ||
9 | |||
10 | The allocated buffer will not be large enough to contain the directory | ||
11 | path string which is larger than the fixed location provided at build | ||
12 | time. | ||
13 | |||
14 | Signed-off-by: Jason Wessel <jason.wessel@windriver.com> | ||
15 | |||
16 | --- | ||
17 | elf/dl-load.c | 12 ++++++++++++ | ||
18 | 1 file changed, 12 insertions(+) | ||
19 | |||
20 | --- a/elf/dl-load.c | ||
21 | +++ b/elf/dl-load.c | ||
22 | @@ -1919,7 +1919,19 @@ open_path (const char *name, size_t name | ||
23 | given on the command line when rtld is run directly. */ | ||
24 | return -1; | ||
25 | |||
26 | + do | ||
27 | + { | ||
28 | + struct r_search_path_elem *this_dir = *dirs; | ||
29 | + if (this_dir->dirnamelen > max_dirnamelen) | ||
30 | + { | ||
31 | + max_dirnamelen = this_dir->dirnamelen; | ||
32 | + } | ||
33 | + } | ||
34 | + while (*++dirs != NULL); | ||
35 | + | ||
36 | buf = alloca (max_dirnamelen + max_capstrlen + namelen); | ||
37 | + | ||
38 | + dirs = sps->dirs; | ||
39 | do | ||
40 | { | ||
41 | struct r_search_path_elem *this_dir = *dirs; | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/tzselect-awk.patch b/meta/recipes-core/eglibc/eglibc-2.17/tzselect-awk.patch new file mode 100644 index 0000000000..dc9949bec9 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/tzselect-awk.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | tzselect: workaround bug in busybox awk | ||
2 | |||
3 | busybox's version of awk in version 1.20.2 and lower doesn't support | ||
4 | escape sequences in conjunction with the -F option. Use -v FS= instead | ||
5 | as a workaround until the bug is fixed. | ||
6 | |||
7 | Reference: | ||
8 | https://bugs.busybox.net/show_bug.cgi?id=5126 | ||
9 | |||
10 | Upstream-Status: Inappropriate [other] | ||
11 | |||
12 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
13 | |||
14 | --- libc/timezone/tzselect.ksh | ||
15 | +++ libc/timezone/tzselect.ksh | ||
16 | @@ -208,7 +208,7 @@ while | ||
17 | TZ_for_date=$TZ;; | ||
18 | *) | ||
19 | # Get list of names of countries in the continent or ocean. | ||
20 | - countries=$($AWK -F'\t' \ | ||
21 | + countries=$($AWK -v FS="\t" \ | ||
22 | -v continent="$continent" \ | ||
23 | -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ | ||
24 | ' | ||
25 | @@ -252,7 +252,7 @@ while | ||
26 | |||
27 | |||
28 | # Get list of names of time zone rule regions in the country. | ||
29 | - regions=$($AWK -F'\t' \ | ||
30 | + regions=$($AWK -v FS="\t" \ | ||
31 | -v country="$country" \ | ||
32 | -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ | ||
33 | ' | ||
34 | @@ -289,7 +289,7 @@ while | ||
35 | esac | ||
36 | |||
37 | # Determine TZ from country and region. | ||
38 | - TZ=$($AWK -F'\t' \ | ||
39 | + TZ=$($AWK -v FS="\t" \ | ||
40 | -v country="$country" \ | ||
41 | -v region="$region" \ | ||
42 | -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch b/meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch new file mode 100644 index 0000000000..e9a3691bbb --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch | |||
@@ -0,0 +1,156 @@ | |||
1 | tzselect: eliminate ksh-dependency | ||
2 | |||
3 | This is an adapted version of a patch originally | ||
4 | by Peter Seebach <peter.seebach@windriver.com> found here: | ||
5 | http://www.eglibc.org/archives/patches/msg00671.html | ||
6 | |||
7 | Upstream-Status: Pending | ||
8 | |||
9 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
10 | |||
11 | Index: libc/timezone/tzselect.ksh | ||
12 | =================================================================== | ||
13 | --- libc.orig/timezone/tzselect.ksh 2012-11-17 09:50:14.000000000 -0800 | ||
14 | +++ libc/timezone/tzselect.ksh 2013-01-03 22:46:26.423844259 -0800 | ||
15 | @@ -1,4 +1,4 @@ | ||
16 | -#!/bin/bash | ||
17 | +#!/bin/sh | ||
18 | |||
19 | PKGVERSION='(tzcode) ' | ||
20 | TZVERSION=see_Makefile | ||
21 | @@ -11,23 +11,80 @@ | ||
22 | |||
23 | # Porting notes: | ||
24 | # | ||
25 | -# This script requires a Posix-like shell with the extension of a | ||
26 | -# 'select' statement. The 'select' statement was introduced in the | ||
27 | -# Korn shell and is available in Bash and other shell implementations. | ||
28 | -# If your host lacks both Bash and the Korn shell, you can get their | ||
29 | -# source from one of these locations: | ||
30 | +# func_select allows this script to run on shells (such as busybox ash) | ||
31 | +# which lack the ksh "select" builtin. | ||
32 | # | ||
33 | -# Bash <http://www.gnu.org/software/bash/bash.html> | ||
34 | -# Korn Shell <http://www.kornshell.com/> | ||
35 | -# Public Domain Korn Shell <http://www.cs.mun.ca/~michael/pdksh/> | ||
36 | -# | ||
37 | -# This script also uses several features of modern awk programs. | ||
38 | +# This script uses several features of modern awk programs. | ||
39 | # If your host lacks awk, or has an old awk that does not conform to Posix, | ||
40 | # you can use either of the following free programs instead: | ||
41 | # | ||
42 | # Gawk (GNU awk) <http://www.gnu.org/software/gawk/> | ||
43 | # mawk <http://invisible-island.net/mawk/> | ||
44 | |||
45 | +# Implement ksh-style select in POSIX shell | ||
46 | + | ||
47 | +# We need a mostly-portable echo-n. | ||
48 | +case `echo -n "foo\c"` in | ||
49 | +*n*c*) func_echo_n() { echo "$*"; } ;; | ||
50 | +*n*) func_echo_n() { echo "$*\c"; } ;; | ||
51 | +*) func_echo_n() { echo -n "$*"; } ;; | ||
52 | +esac | ||
53 | + | ||
54 | +# Synopsis: Replace "select foo in list" with "while func_select foo in list" | ||
55 | +# and this works just like ksh, so far as I know. | ||
56 | +func_select () { | ||
57 | + func_select_args=0 | ||
58 | + if expr "$1" : "[_a-zA-Z][_a-zA-Z0-9]*$" > /dev/null; then | ||
59 | + func_select_var=$1 | ||
60 | + else | ||
61 | + echo >&2 "func_select: '$1' is not a valid variable name." | ||
62 | + return 1 | ||
63 | + fi | ||
64 | + shift 1 | ||
65 | + case $1 in | ||
66 | + in) shift 1;; | ||
67 | + *) echo >&2 "func_select: usage: func_select var in ... (you must provide | ||
68 | +arguments)"; return 1;; | ||
69 | + esac | ||
70 | + case $# in | ||
71 | + 0) echo >&2 "func_select: usage: func_select var in ..."; return 1;; | ||
72 | + esac | ||
73 | + for func_select_arg | ||
74 | + do | ||
75 | + func_select_args=`expr $func_select_args + 1` | ||
76 | + eval func_select_a_$func_select_args=\$func_select_arg | ||
77 | + done | ||
78 | + REPLY="" | ||
79 | + while : | ||
80 | + do | ||
81 | + if test -z "$REPLY"; then | ||
82 | + func_select_i=1 | ||
83 | + while test $func_select_i -le $func_select_args | ||
84 | + do | ||
85 | + eval echo "\"\$func_select_i) \$func_select_a_$func_select_i\"" | ||
86 | + func_select_i=`expr $func_select_i + 1` | ||
87 | + done | ||
88 | + fi | ||
89 | + func_echo_n "${PS3-#? }" >&2 | ||
90 | + if read REPLY; then | ||
91 | + if test -n "${REPLY}"; then | ||
92 | + if expr "$REPLY" : '[1-9][0-9]*$' > /dev/null; then | ||
93 | + if test "$REPLY" -ge 1 && test "$REPLY" -le $func_select_args; then | ||
94 | + eval $func_select_var=\$func_select_a_$REPLY | ||
95 | + else | ||
96 | + eval $func_select_var= | ||
97 | + fi | ||
98 | + else | ||
99 | + eval $func_select_var= | ||
100 | + fi | ||
101 | + return 0 | ||
102 | + fi | ||
103 | + else | ||
104 | + eval $func_select_var= | ||
105 | + return 1 | ||
106 | + fi | ||
107 | + done | ||
108 | +} | ||
109 | |||
110 | # Specify default values for environment variables if they are unset. | ||
111 | : ${AWK=awk} | ||
112 | @@ -72,7 +129,7 @@ | ||
113 | |||
114 | |||
115 | # Work around a bug in bash 1.14.7 and earlier, where $PS3 is sent to stdout. | ||
116 | -case $(echo 1 | (select x in x; do break; done) 2>/dev/null) in | ||
117 | +case $(echo 1 | (while func_select x in x; do break; done) 2>/dev/null) in | ||
118 | ?*) PS3= | ||
119 | esac | ||
120 | |||
121 | @@ -92,7 +149,7 @@ | ||
122 | |||
123 | echo >&2 'Please select a continent or ocean.' | ||
124 | |||
125 | - select continent in \ | ||
126 | + while func_select continent in \ | ||
127 | Africa \ | ||
128 | Americas \ | ||
129 | Antarctica \ | ||
130 | @@ -172,7 +229,7 @@ | ||
131 | case $countries in | ||
132 | *"$newline"*) | ||
133 | echo >&2 'Please select a country.' | ||
134 | - select country in $countries | ||
135 | + while func_select country in $countries | ||
136 | do | ||
137 | case $country in | ||
138 | '') echo >&2 'Please enter a number in range.';; | ||
139 | @@ -211,7 +268,7 @@ | ||
140 | *"$newline"*) | ||
141 | echo >&2 'Please select one of the following' \ | ||
142 | 'time zone regions.' | ||
143 | - select region in $regions | ||
144 | + while func_select region in $regions | ||
145 | do | ||
146 | case $region in | ||
147 | '') echo >&2 'Please enter a number in range.';; | ||
148 | @@ -288,7 +345,7 @@ | ||
149 | echo >&2 "Is the above information OK?" | ||
150 | |||
151 | ok= | ||
152 | - select ok in Yes No | ||
153 | + while func_select ok in Yes No | ||
154 | do | ||
155 | case $ok in | ||
156 | '') echo >&2 'Please enter 1 for Yes, or 2 for No.';; | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch new file mode 100644 index 0000000000..24d4772728 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch | |||
@@ -0,0 +1,43 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | From d0721e703d222c01a9e8c329311c4fb01dac6972 Mon Sep 17 00:00:00 2001 | ||
4 | From: Carlos O'Donell <carlos@redhat.com> | ||
5 | Date: Thu, 29 Aug 2013 00:17:33 -0400 | ||
6 | Subject: [PATCH] ARM: Pass dl_hwcap to IFUNC resolver. | ||
7 | |||
8 | For REL relocs pass dl_hwcap to the IFUNC resolver | ||
9 | as is required by the IFUNC API (bug 15905). | ||
10 | --- | ||
11 | NEWS | 2 +- | ||
12 | ports/ChangeLog.arm | 7 +++++++ | ||
13 | ports/sysdeps/arm/dl-machine.h | 2 +- | ||
14 | 3 files changed, 9 insertions(+), 2 deletions(-) | ||
15 | |||
16 | Index: libc/ports/ChangeLog.arm | ||
17 | =================================================================== | ||
18 | --- libc.orig/ports/ChangeLog.arm 2013-07-14 16:08:52.000000000 -0700 | ||
19 | +++ libc/ports/ChangeLog.arm 2013-09-12 17:17:24.174387150 -0700 | ||
20 | @@ -1,3 +1,10 @@ | ||
21 | +2013-08-28 Kyle McMartin <kyle@redhat.com> | ||
22 | + Carlos O'Donell <carlos@redhat.com> | ||
23 | + | ||
24 | + [BZ #15905] | ||
25 | + * sysdeps/arm/dl-machine [!RTLD_BOOTSTRAP] (elf_machine_rel): | ||
26 | + Pass GLRO(dl_hwcap) to the IFUNC resolver. | ||
27 | + | ||
28 | 2013-07-03 Joseph Myers <joseph@codesourcery.com> | ||
29 | |||
30 | * sysdeps/arm/include/bits/setjmp.h [_ISOMAC] (JMP_BUF_REGLIST): | ||
31 | Index: libc/ports/sysdeps/arm/dl-machine.h | ||
32 | =================================================================== | ||
33 | --- libc.orig/ports/sysdeps/arm/dl-machine.h 2013-09-12 08:56:03.641743520 -0700 | ||
34 | +++ libc/ports/sysdeps/arm/dl-machine.h 2013-09-12 17:17:24.174387150 -0700 | ||
35 | @@ -503,7 +503,7 @@ | ||
36 | break; | ||
37 | case R_ARM_IRELATIVE: | ||
38 | value = map->l_addr + *reloc_addr; | ||
39 | - value = ((Elf32_Addr (*) (void)) value) (); | ||
40 | + value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap)); | ||
41 | *reloc_addr = value; | ||
42 | break; | ||
43 | #endif | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-R_ARM_TLS_DTPOFF32.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-R_ARM_TLS_DTPOFF32.patch new file mode 100644 index 0000000000..b4489e9ae9 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/0001-R_ARM_TLS_DTPOFF32.patch | |||
@@ -0,0 +1,56 @@ | |||
1 | |||
2 | Quote from bug 1443 which explains what the patch does : | ||
3 | |||
4 | We build some random program and link it with -lust. When we run it, | ||
5 | it dies with a SIGSEGV before reaching main(). | ||
6 | |||
7 | Libust.so depends on liburcu-bp.so from the usermode-rcu package. | ||
8 | Although libust.so is not prelinked, liburcu-bp.so IS prelinked; this | ||
9 | is critical. | ||
10 | |||
11 | Libust.so uses a TLS / __thread variable that is defined in liburcu- | ||
12 | bp.so. There are special ARM-specific relocation types that allow two | ||
13 | shared libraries to share thread-specific data. This is critical too. | ||
14 | |||
15 | One more critical issue: although liburcu-bp.so is prelinked, we can't | ||
16 | load it at its prelinked address, because we also link against | ||
17 | librt.so, and librt.so uses that address. | ||
18 | |||
19 | The dynamic linker is forced to relink liburcu-bp.so at a different | ||
20 | address. In the course of relinking, it processes the special ARM | ||
21 | relocation record mentioned above. The prelinker has already filled | ||
22 | in the information, which is a short offset into a table of thread- | ||
23 | specific data that is allocated per-thread for each library that uses | ||
24 | TLS. Because the normal behavior of a relocation is to add the symbol | ||
25 | value to an addend stored at the address being relocated, we end up | ||
26 | adding the short offset to itself, doubling it. | ||
27 | |||
28 | Now we have an awkward situation. The libust.so library doesn't know | ||
29 | about the addend, so its TLS data for this element is correct. The | ||
30 | liburcu-bp.so library has a different offset for the element. When we | ||
31 | go to initialize the element for the first time in liburcu-bp.so, we | ||
32 | write the address of the result at the doubled (broken) offset. | ||
33 | Later, when we refer to the address from libust.so, we check the value | ||
34 | at the correct offset, but it's NULL, so we eat hot SIGSEGV. | ||
35 | |||
36 | Upstream-Status: Pending | ||
37 | |||
38 | Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com> | ||
39 | --- | ||
40 | .../libc/ports/sysdeps/arm/dl-machine.h | 2 +- | ||
41 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
42 | |||
43 | ndex 8d905e8..dcfa71e 100644 | ||
44 | --- libc.orig/ports/sysdeps/arm/dl-machine.h | ||
45 | +++ libc/ports/sysdeps/arm/dl-machine.h | ||
46 | @@ -503,7 +503,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, | ||
47 | |||
48 | case R_ARM_TLS_DTPOFF32: | ||
49 | if (sym != NULL) | ||
50 | - *reloc_addr += sym->st_value; | ||
51 | + *reloc_addr = sym->st_value; | ||
52 | break; | ||
53 | |||
54 | case R_ARM_TLS_TPOFF32: | ||
55 | -- | ||
56 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-menuconfig-support.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-menuconfig-support.patch new file mode 100644 index 0000000000..9e23e7cda2 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-menuconfig-support.patch | |||
@@ -0,0 +1,912 @@ | |||
1 | Pulled from | ||
2 | http://www.eglibc.org/archives/patches/msg01042.html | ||
3 | |||
4 | Upstream-Status: Pending | ||
5 | Signed-off-by: Khem | ||
6 | |||
7 | Hi, | ||
8 | |||
9 | This patch adds 'make menuconfig' support to EGLIBC. | ||
10 | |||
11 | |||
12 | EGLIBC can re-use the Linux kernel kconfig host tools ('conf' and 'mconf') unmodified, by passing appropriate environment variables and with some pre- and post-processing on the input/output config files. | ||
13 | |||
14 | There are three new make targets supported, which all are defined in the new libc/options-config/Makefile, which is included by the top-level libc/Makefile: | ||
15 | |||
16 | - 'make defconfig'. This passes 'libc/option-groups.defaults' to 'conf' as a default config, and outputs 'option-groups.config' to the top-level build directory, which will be the same as the default config. | ||
17 | |||
18 | - 'make config'. This is the same line-oriented interface as in the Linux kernel. Input and output is 'option-groups.config' in the top-level build directory. | ||
19 | |||
20 | - 'make menuconfig'. This is the same menu-based interface as in the Linux kernel. Input and output is 'option-groups.config' in the top-level build directory. | ||
21 | |||
22 | |||
23 | Pre-Processing: | ||
24 | |||
25 | |||
26 | The Linux kernel kconfig tools expect a prefix of "CONFIG_" on all config option names, but EGLIBC expects a prefix of "OPTION_". The pre-processing script, libc/options-config/config-preproc.pl, simply replaces "CONFIG_ with "OPTION_" in the given config file. The libc/options-config/Makefile passes the script output to a temporary config file, which is then passed to 'conf' or 'mconf'. | ||
27 | |||
28 | Post-Processing (libc/options-config/config-postproc.pl): | ||
29 | |||
30 | |||
31 | - Disabled options are output as a comment line of the form "# CONFIG_FOO is not set". This needs to be changed to an explicit "CONFIG_FOO=n" in order to be compatible with 'option-groups.awk' which generates the option-groups.h header. | ||
32 | |||
33 | - "CONFIG_" prefix is changed back to "OPTION_". | ||
34 | |||
35 | |||
36 | - The kconfig tools will not output anything for options that depend on a parent option, when the parent option is disabled. This implicit disable must be converted to an explicit "CONFIG_FOO=n" in order to be compatible with the way EGLIBC overrides the default option settings in 'libc/option-groups.defaults' with those in 'option-groups.config'. | ||
37 | |||
38 | |||
39 | A new configure option, '--with-kconfig=<PATH>', tells EGLIBC where to find the pre-built 'conf' and 'mconf' host tools from Linux kernel builds. | ||
40 | |||
41 | libc/EGLIBC.cross-building is updated to include instructions for using '--with-kconfig' for the final EGLIBC build, and shows how and when to run 'make *config'. | ||
42 | |||
43 | libc/EGLIBC.option-groups is updated to include new information on the menuconfig support. | ||
44 | |||
45 | Thanks, | ||
46 | |||
47 | attached is the updated patch to address above issues. | ||
48 | |||
49 | Steve | ||
50 | |||
51 | -- | ||
52 | Steve Longerbeam | Senior Embedded Engineer, ESD Services | ||
53 | Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538 | ||
54 | P 510.354.5838 | M 408.410.2735 | ||
55 | Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS | ||
56 | |||
57 | |||
58 | Index: libc/EGLIBC.cross-building | ||
59 | =================================================================== | ||
60 | --- libc.orig/EGLIBC.cross-building 2007-04-20 16:15:03.000000000 -0700 | ||
61 | +++ libc/EGLIBC.cross-building 2013-06-26 00:45:15.788885570 -0700 | ||
62 | @@ -243,9 +243,29 @@ | ||
63 | > $src/libc/configure \ | ||
64 | > --prefix=/usr \ | ||
65 | > --with-headers=$sysroot/usr/include \ | ||
66 | + > --with-kconfig=$obj/linux/scripts/kconfig \ | ||
67 | > --build=$build \ | ||
68 | > --host=$target \ | ||
69 | > --disable-profile --without-gd --without-cvs --enable-add-ons | ||
70 | + | ||
71 | +Note the additional '--with-kconfig' option. This tells EGLIBC where to | ||
72 | +find the host config tools used by the kernel 'make config' and 'make | ||
73 | +menuconfig'. These tools can be re-used by EGLIBC for its own 'make | ||
74 | +*config' support, which will create 'option-groups.config' for you. | ||
75 | +But first make sure those tools have been built by running some | ||
76 | +dummy 'make *config' calls in the kernel directory: | ||
77 | + | ||
78 | + $ cd $obj/linux | ||
79 | + $ PATH=$tools/bin:$PATH make config \ | ||
80 | + > ARCH=$linux_arch CROSS_COMPILE=$target- \ | ||
81 | + $ PATH=$tools/bin:$PATH make menuconfig \ | ||
82 | + > ARCH=$linux_arch CROSS_COMPILE=$target- \ | ||
83 | + | ||
84 | +Now we can configure and build the full EGLIBC: | ||
85 | + | ||
86 | + $ cd $obj/eglibc | ||
87 | + $ PATH=$tools/bin:$PATH make defconfig | ||
88 | + $ PATH=$tools/bin:$PATH make menuconfig | ||
89 | $ PATH=$tools/bin:$PATH make | ||
90 | $ PATH=$tools/bin:$PATH make install install_root=$sysroot | ||
91 | |||
92 | Index: libc/configure.in | ||
93 | =================================================================== | ||
94 | --- libc.orig/configure.in 2013-06-24 15:42:26.000000000 -0700 | ||
95 | +++ libc/configure.in 2013-06-26 00:45:15.792885570 -0700 | ||
96 | @@ -127,6 +127,16 @@ | ||
97 | [sysheaders='']) | ||
98 | AC_SUBST(sysheaders) | ||
99 | |||
100 | +AC_ARG_WITH([kconfig], | ||
101 | + AC_HELP_STRING([--with-kconfig=PATH], | ||
102 | + [location of kconfig tools to use (from Linux | ||
103 | + kernel builds) to re-use for configuring EGLIBC | ||
104 | + option groups]), | ||
105 | + [KCONFIG_TOOLS=$withval], | ||
106 | + [KCONFIG_TOOLS='']) | ||
107 | +AC_SUBST(KCONFIG_TOOLS) | ||
108 | + | ||
109 | + | ||
110 | AC_SUBST(use_default_link) | ||
111 | AC_ARG_WITH([default-link], | ||
112 | AC_HELP_STRING([--with-default-link], | ||
113 | Index: libc/config.make.in | ||
114 | =================================================================== | ||
115 | --- libc.orig/config.make.in 2013-04-28 08:21:50.000000000 -0700 | ||
116 | +++ libc/config.make.in 2013-06-26 00:45:15.792885570 -0700 | ||
117 | @@ -45,6 +45,8 @@ | ||
118 | c++-sysincludes = @CXX_SYSINCLUDES@ | ||
119 | all-warnings = @all_warnings@ | ||
120 | |||
121 | +kconfig_tools = @KCONFIG_TOOLS@ | ||
122 | + | ||
123 | have-z-combreloc = @libc_cv_z_combreloc@ | ||
124 | have-z-execstack = @libc_cv_z_execstack@ | ||
125 | have-Bgroup = @libc_cv_Bgroup@ | ||
126 | Index: libc/options-config/config-postproc.pl | ||
127 | =================================================================== | ||
128 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
129 | +++ libc/options-config/config-postproc.pl 2013-06-26 00:45:15.792885570 -0700 | ||
130 | @@ -0,0 +1,54 @@ | ||
131 | +#!/usr/bin/perl | ||
132 | + | ||
133 | +$usage = "usage: $0 <default config file> <config file>\n"; | ||
134 | + | ||
135 | +die "$usage" unless @ARGV; | ||
136 | +$defaults = shift @ARGV; | ||
137 | +die "$usage" unless @ARGV; | ||
138 | +die "Could not open $ARGV[0]" unless -T $ARGV[0]; | ||
139 | + | ||
140 | +sub yank { | ||
141 | + @option = grep($_ ne $_[0], @option); | ||
142 | +} | ||
143 | + | ||
144 | +open(DEFAULTS, $defaults) || die "Could not open $defaults\n"; | ||
145 | + | ||
146 | +# get the full list of available options using the default config file | ||
147 | +$i = 0; | ||
148 | +while (<DEFAULTS>) { | ||
149 | + if (/^\s*OPTION_(\w+)\s*=/) { | ||
150 | + $option[$i++] = $1; | ||
151 | + } | ||
152 | +} | ||
153 | + | ||
154 | +# now go through the config file, making the necessary changes | ||
155 | +while (<>) { | ||
156 | + if (/Linux Kernel Configuration/) { | ||
157 | + # change title | ||
158 | + s/Linux Kernel/Option Groups/; | ||
159 | + print; | ||
160 | + } elsif (/^\s*CONFIG_(\w+)\s*=/) { | ||
161 | + # this is an explicit option set line, change CONFIG_ to OPTION_ | ||
162 | + # before printing and remove this option from option list | ||
163 | + $opt = $1; | ||
164 | + yank($opt); | ||
165 | + s/CONFIG_/OPTION_/g; | ||
166 | + print; | ||
167 | + } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) { | ||
168 | + # this is a comment line, change CONFIG_ to OPTION_, remove this | ||
169 | + # option from option list, and convert to explicit OPTION_FOO=n | ||
170 | + $opt = $1; | ||
171 | + yank($opt); | ||
172 | + s/CONFIG_/OPTION_/g; | ||
173 | + print "OPTION_$opt=n\n"; | ||
174 | + } else { | ||
175 | + print; | ||
176 | + } | ||
177 | +} | ||
178 | + | ||
179 | +# any options left in @options, are options that were not mentioned in | ||
180 | +# the config file, and implicitly that means the option must be set =n, | ||
181 | +# so do that here. | ||
182 | +foreach $opt (@option) { | ||
183 | + print "OPTION_$opt=n\n"; | ||
184 | +} | ||
185 | Index: libc/options-config/config-preproc.pl | ||
186 | =================================================================== | ||
187 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
188 | +++ libc/options-config/config-preproc.pl 2013-06-26 00:45:15.792885570 -0700 | ||
189 | @@ -0,0 +1,8 @@ | ||
190 | +#!/usr/bin/perl | ||
191 | + | ||
192 | +if (@ARGV) { | ||
193 | + while (<>) { | ||
194 | + s/OPTION_/CONFIG_/g; | ||
195 | + print; | ||
196 | + } | ||
197 | +} | ||
198 | Index: libc/options-config/Makefile | ||
199 | =================================================================== | ||
200 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
201 | +++ libc/options-config/Makefile 2013-06-26 00:45:15.792885570 -0700 | ||
202 | @@ -0,0 +1,55 @@ | ||
203 | +# =========================================================================== | ||
204 | +# EGLIBC option-groups configuration targets | ||
205 | +# These targets are included from top-level makefile | ||
206 | + | ||
207 | +ifneq ($(kconfig_tools),) | ||
208 | +ifneq (no,$(PERL)) | ||
209 | + | ||
210 | +ocdir := options-config | ||
211 | + | ||
212 | +OconfigDefaults := option-groups.defaults | ||
213 | +OconfigDefaults_tmp := $(common-objpfx).tmp.defconfig | ||
214 | +OconfigDef := option-groups.def | ||
215 | +Oconfig := $(common-objpfx)option-groups.config | ||
216 | +Oconfig_tmp := $(common-objpfx).tmp.config | ||
217 | + | ||
218 | +conf := $(kconfig_tools)/conf | ||
219 | +mconf := $(kconfig_tools)/mconf | ||
220 | + | ||
221 | +preproc := $(PERL) $(ocdir)/config-preproc.pl | ||
222 | +postproc := $(PERL) $(ocdir)/config-postproc.pl | ||
223 | + | ||
224 | +PHONY += defconfig config menuconfig | ||
225 | + | ||
226 | +defconfig: $(conf) $(OconfigDefaults) $(OconfigDef) | ||
227 | + rm -f $(OconfigDefaults_tmp) | ||
228 | + rm -f $(Oconfig_tmp) | ||
229 | + $(preproc) $(OconfigDefaults) > $(OconfigDefaults_tmp) | ||
230 | + KCONFIG_CONFIG=$(Oconfig_tmp) $< --defconfig=$(OconfigDefaults_tmp) \ | ||
231 | + $(OconfigDef) | ||
232 | + $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) | ||
233 | + rm $(Oconfig_tmp) | ||
234 | + rm $(OconfigDefaults_tmp) | ||
235 | + | ||
236 | +config: $(conf) $(OconfigDefaults) $(OconfigDef) | ||
237 | + rm -f $(Oconfig_tmp) | ||
238 | + $(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp) | ||
239 | + KCONFIG_CONFIG=$(Oconfig_tmp) $< --oldaskconfig $(OconfigDef) | ||
240 | + $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) | ||
241 | + rm $(Oconfig_tmp) | ||
242 | + | ||
243 | +menuconfig: $(mconf) $(OconfigDefaults) $(OconfigDef) | ||
244 | + rm -f $(Oconfig_tmp) | ||
245 | + $(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp) | ||
246 | + KCONFIG_CONFIG=$(Oconfig_tmp) $< $(OconfigDef) | ||
247 | + $(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig) | ||
248 | + rm $(Oconfig_tmp) | ||
249 | + | ||
250 | +# Help text used by make help | ||
251 | +help: | ||
252 | + @echo ' defconfig - New config with default from default config' | ||
253 | + @echo ' config - Update current config utilising a line-oriented program' | ||
254 | + @echo ' menuconfig - Update current config utilising a menu based program' | ||
255 | + | ||
256 | +endif | ||
257 | +endif | ||
258 | Index: libc/option-groups.def | ||
259 | =================================================================== | ||
260 | --- libc.orig/option-groups.def 2013-05-17 17:12:09.000000000 -0700 | ||
261 | +++ libc/option-groups.def 2013-06-26 00:45:15.796885570 -0700 | ||
262 | @@ -4,19 +4,19 @@ | ||
263 | # | ||
264 | # An entry of the form: | ||
265 | # | ||
266 | -# config OPTION_GROUP_NAME | ||
267 | +# config GROUP_NAME | ||
268 | # bool "one-line explanation of what this option group controls" | ||
269 | # help | ||
270 | # Multi-line help explaining the option group's meaning in | ||
271 | # some detail, terminated by indentation level. | ||
272 | # | ||
273 | -# defines an option group whose variable is OPTION_GROUP_NAME, with | ||
274 | +# defines an option group whose variable is GROUP_NAME, with | ||
275 | # meaningful values 'y' (enabled) and 'n' (disabled). The | ||
276 | # documentation is formatted to be consumed by some sort of | ||
277 | # interactive configuration interface, but EGLIBC doesn't have such an | ||
278 | # interface yet. | ||
279 | # | ||
280 | -# An option may have a 'depends' line, indicating which other options | ||
281 | +# An option may have a 'depends on' line, indicating which other options | ||
282 | # must also be enabled if this option is. At present, EGLIBC doesn't | ||
283 | # check that these dependencies are satisfied. | ||
284 | # | ||
285 | @@ -41,9 +41,9 @@ | ||
286 | # although this simply reestablishes the value already set by | ||
287 | # 'option-groups.defaults'. | ||
288 | |||
289 | -config OPTION_EGLIBC_ADVANCED_INET6 | ||
290 | +config EGLIBC_ADVANCED_INET6 | ||
291 | bool "IPv6 Advanced Sockets API support (RFC3542)" | ||
292 | - depends OPTION_EGLIBC_INET | ||
293 | + depends on EGLIBC_INET | ||
294 | help | ||
295 | This option group includes the functions specified by RFC 3542, | ||
296 | "Advanced Sockets Application Program Interface (API) for | ||
297 | @@ -71,7 +71,7 @@ | ||
298 | inet6_rth_segments | ||
299 | inet6_rth_space | ||
300 | |||
301 | -config OPTION_EGLIBC_BACKTRACE | ||
302 | +config EGLIBC_BACKTRACE | ||
303 | bool "Functions for producing backtraces" | ||
304 | help | ||
305 | This option group includes functions for producing a list of | ||
306 | @@ -85,7 +85,7 @@ | ||
307 | backtrace_symbols | ||
308 | backtrace_symbols_fd | ||
309 | |||
310 | -config OPTION_EGLIBC_BIG_MACROS | ||
311 | +config EGLIBC_BIG_MACROS | ||
312 | bool "Use extensive inline code" | ||
313 | help | ||
314 | This option group specifies whether certain pieces of code | ||
315 | @@ -93,7 +93,7 @@ | ||
316 | group is not selected, function calls will be used instead, | ||
317 | hence reducing the library footprint. | ||
318 | |||
319 | -config OPTION_EGLIBC_BSD | ||
320 | +config EGLIBC_BSD | ||
321 | bool "BSD-specific functions, and their compatibility stubs" | ||
322 | help | ||
323 | This option group includes functions specific to BSD kernels. | ||
324 | @@ -109,10 +109,9 @@ | ||
325 | revoke | ||
326 | setlogin | ||
327 | |||
328 | -config OPTION_EGLIBC_CXX_TESTS | ||
329 | +config EGLIBC_CXX_TESTS | ||
330 | bool "Tests that link against the standard C++ library." | ||
331 | - depends OPTION_POSIX_WIDE_CHAR_DEVICE_IO | ||
332 | - depends OPTION_EGLIBC_LIBM | ||
333 | + depends on POSIX_WIDE_CHAR_DEVICE_IO && EGLIBC_LIBM | ||
334 | help | ||
335 | This option group does not include any C library functions; | ||
336 | instead, it controls which EGLIBC tests an ordinary 'make | ||
337 | @@ -121,23 +120,22 @@ | ||
338 | run. | ||
339 | |||
340 | The standard C++ library depends on the math library 'libm' and | ||
341 | - the wide character I/O functions included in EGLIBC. If those | ||
342 | - option groups are disabled, this test must also be disabled. | ||
343 | + the wide character I/O functions included in EGLIBC. So those | ||
344 | + option groups must be enabled if this test is enabled. | ||
345 | |||
346 | -config OPTION_EGLIBC_CATGETS | ||
347 | +config EGLIBC_CATGETS | ||
348 | bool "Functions for accessing message catalogs" | ||
349 | - depends OPTION_EGLIBC_LOCALE_CODE | ||
350 | + depends on EGLIBC_LOCALE_CODE | ||
351 | help | ||
352 | This option group includes functions for accessing message | ||
353 | catalogs: catopen, catclose, and catgets. | ||
354 | |||
355 | - This option group depends on the OPTION_EGLIBC_LOCALE_CODE | ||
356 | - option group; if you disable that, you must also disable this. | ||
357 | + This option group depends on the EGLIBC_LOCALE_CODE | ||
358 | + option group. | ||
359 | |||
360 | -config OPTION_EGLIBC_CHARSETS | ||
361 | +config EGLIBC_CHARSETS | ||
362 | bool "iconv/gconv character set conversion libraries" | ||
363 | help | ||
364 | - | ||
365 | This option group includes support for character sets other | ||
366 | than ASCII (ANSI_X3.4-1968) and Unicode and ISO-10646 in their | ||
367 | various encodings. This affects both the character sets | ||
368 | @@ -198,16 +196,16 @@ | ||
369 | WCHAR_T - EGLIBC's internal form (target-endian, | ||
370 | 32-bit ISO 10646) | ||
371 | |||
372 | -config OPTION_EGLIBC_CRYPT | ||
373 | +config EGLIBC_CRYPT | ||
374 | bool "Encryption library" | ||
375 | help | ||
376 | This option group includes the `libcrypt' library which | ||
377 | provides functions for one-way encryption. Supported | ||
378 | encryption algorithms include MD5, SHA-256, SHA-512 and DES. | ||
379 | |||
380 | -config OPTION_EGLIBC_CRYPT_UFC | ||
381 | +config EGLIBC_CRYPT_UFC | ||
382 | bool "Ultra fast `crypt' implementation" | ||
383 | - depends OPTION_EGLIBC_CRYPT | ||
384 | + depends on EGLIBC_CRYPT | ||
385 | help | ||
386 | This option group provides ultra fast DES-based implementation of | ||
387 | the `crypt' function. When this option group is disabled, | ||
388 | @@ -216,7 +214,7 @@ | ||
389 | errno to ENOSYS if /salt/ passed does not correspond to either MD5, | ||
390 | SHA-256 or SHA-512 algorithm. | ||
391 | |||
392 | -config OPTION_EGLIBC_DB_ALIASES | ||
393 | +config EGLIBC_DB_ALIASES | ||
394 | bool "Functions for accessing the mail aliases database" | ||
395 | help | ||
396 | This option group includues functions for looking up mail | ||
397 | @@ -233,7 +231,7 @@ | ||
398 | When this option group is disabled, the NSS service libraries | ||
399 | also lack support for querying their mail alias tables. | ||
400 | |||
401 | -config OPTION_EGLIBC_ENVZ | ||
402 | +config EGLIBC_ENVZ | ||
403 | bool "Functions for handling envz-style environment vectors." | ||
404 | help | ||
405 | This option group contains functions for creating and operating | ||
406 | @@ -248,7 +246,7 @@ | ||
407 | envz_entry envz_remove | ||
408 | envz_get envz_strip | ||
409 | |||
410 | -config OPTION_EGLIBC_FCVT | ||
411 | +config EGLIBC_FCVT | ||
412 | bool "Functions for converting floating-point numbers to strings" | ||
413 | help | ||
414 | This option group includes functions for converting | ||
415 | @@ -262,14 +260,14 @@ | ||
416 | fcvt_r qfcvt_r | ||
417 | gcvt qgcvt | ||
418 | |||
419 | -config OPTION_EGLIBC_FMTMSG | ||
420 | +config EGLIBC_FMTMSG | ||
421 | bool "Functions for formatting messages" | ||
422 | help | ||
423 | This option group includes the following functions: | ||
424 | |||
425 | addseverity fmtmsg | ||
426 | |||
427 | -config OPTION_EGLIBC_FSTAB | ||
428 | +config EGLIBC_FSTAB | ||
429 | bool "Access functions for 'fstab'" | ||
430 | help | ||
431 | This option group includes functions for reading the mount | ||
432 | @@ -283,7 +281,7 @@ | ||
433 | getfsent setfsent | ||
434 | getfsfile | ||
435 | |||
436 | -config OPTION_EGLIBC_FTRAVERSE | ||
437 | +config EGLIBC_FTRAVERSE | ||
438 | bool "Functions for traversing file hierarchies" | ||
439 | help | ||
440 | This option group includes functions for traversing file | ||
441 | @@ -297,9 +295,9 @@ | ||
442 | fts_set nftw64 | ||
443 | fts_close | ||
444 | |||
445 | -config OPTION_EGLIBC_GETLOGIN | ||
446 | +config EGLIBC_GETLOGIN | ||
447 | bool "The getlogin function" | ||
448 | - depends OPTION_EGLIBC_UTMP | ||
449 | + depends on EGLIBC_UTMP | ||
450 | help | ||
451 | This function group includes the 'getlogin' and 'getlogin_r' | ||
452 | functions, which return the user name associated by the login | ||
453 | @@ -309,17 +307,17 @@ | ||
454 | fall back on 'getlogin' to find the user's login name for tilde | ||
455 | expansion when the 'HOME' environment variable is not set. | ||
456 | |||
457 | -config OPTION_EGLIBC_IDN | ||
458 | +config EGLIBC_IDN | ||
459 | bool "International domain names support" | ||
460 | help | ||
461 | This option group includes the `libcidn' library which | ||
462 | provides support for international domain names. | ||
463 | |||
464 | -config OPTION_EGLIBC_INET | ||
465 | +config EGLIBC_INET | ||
466 | bool "Networking support" | ||
467 | help | ||
468 | This option group includes networking-specific functions and | ||
469 | - data. With OPTION_EGLIBC_INET disabled, the EGLIBC | ||
470 | + data. With EGLIBC_INET disabled, the EGLIBC | ||
471 | installation and API changes as follows: | ||
472 | |||
473 | - The following libraries are not installed: | ||
474 | @@ -439,14 +437,14 @@ | ||
475 | use Unix-domain sockets to communicate with the syslog daemon; | ||
476 | syslog is valuable in non-networked contexts. | ||
477 | |||
478 | -config OPTION_EGLIBC_INET_ANL | ||
479 | +config EGLIBC_INET_ANL | ||
480 | bool "Asynchronous name lookup" | ||
481 | - depends OPTION_EGLIBC_INET | ||
482 | + depends on EGLIBC_INET | ||
483 | help | ||
484 | This option group includes the `libanl' library which | ||
485 | provides support for asynchronous name lookup. | ||
486 | |||
487 | -config OPTION_EGLIBC_LIBM | ||
488 | +config EGLIBC_LIBM | ||
489 | bool "libm (math library)" | ||
490 | help | ||
491 | This option group includes the 'libm' library, containing | ||
492 | @@ -464,7 +462,7 @@ | ||
493 | group, you will not be able to build 'libstdc++' against the | ||
494 | resulting EGLIBC installation. | ||
495 | |||
496 | -config OPTION_EGLIBC_LOCALES | ||
497 | +config EGLIBC_LOCALES | ||
498 | bool "Locale definitions" | ||
499 | help | ||
500 | This option group includes all locale definitions other than | ||
501 | @@ -472,17 +470,17 @@ | ||
502 | only the "C" locale is supported. | ||
503 | |||
504 | |||
505 | -config OPTION_EGLIBC_LOCALE_CODE | ||
506 | +config EGLIBC_LOCALE_CODE | ||
507 | bool "Locale functions" | ||
508 | - depends OPTION_POSIX_C_LANG_WIDE_CHAR | ||
509 | + depends on POSIX_C_LANG_WIDE_CHAR | ||
510 | help | ||
511 | This option group includes locale support functions, programs, | ||
512 | - and libraries. With OPTION_EGLIBC_LOCALE_FUNCTIONS disabled, | ||
513 | + and libraries. With EGLIBC_LOCALE_CODE disabled, | ||
514 | EGLIBC supports only the 'C' locale (also known as 'POSIX'), | ||
515 | and ignores the settings of the 'LANG' and 'LC_*' environment | ||
516 | variables. | ||
517 | |||
518 | - With OPTION_EGLIBC_LOCALE_CODE disabled, the following | ||
519 | + With EGLIBC_LOCALE_CODE disabled, the following | ||
520 | functions are omitted from libc: | ||
521 | |||
522 | duplocale localeconv nl_langinfo rpmatch strfmon_l | ||
523 | @@ -491,46 +489,43 @@ | ||
524 | Furthermore, only the LC_CTYPE and LC_TIME categories of the | ||
525 | standard "C" locale are available. | ||
526 | |||
527 | - The OPTION_EGLIBC_CATGETS option group depends on this option | ||
528 | - group; if you disable OPTION_EGLIBC_LOCALE_CODE, you must also | ||
529 | - disable OPTION_EGLIBC_CATGETS. | ||
530 | + The EGLIBC_CATGETS option group depends on this option group. | ||
531 | + | ||
532 | |||
533 | -config OPTION_EGLIBC_MEMUSAGE | ||
534 | +config EGLIBC_MEMUSAGE | ||
535 | bool "Memory profiling library" | ||
536 | help | ||
537 | This option group includes the `libmemusage' library and | ||
538 | the `memusage' and `memusagestat' utilities. | ||
539 | These components provide memory profiling functions. | ||
540 | |||
541 | - OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
542 | + EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
543 | |||
544 | Libmemusage library buffers the profiling data in memory | ||
545 | before writing it out to disk. By default, the library | ||
546 | allocates 1.5M buffer, which can be substantial for some | ||
547 | - systems. OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option | ||
548 | + systems. EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option | ||
549 | allows to change the default buffer size. It specifies | ||
550 | the number of entries the buffer should have. | ||
551 | On most architectures one buffer entry amounts to 48 bytes, | ||
552 | so setting this option to the value of 512 will reduce the size of | ||
553 | the memory buffer to 24K. | ||
554 | |||
555 | -config OPTION_EGLIBC_NIS | ||
556 | +config EGLIBC_NIS | ||
557 | bool "Support for NIS, NIS+, and the special 'compat' services." | ||
558 | - depends OPTION_EGLIBC_INET | ||
559 | - depends OPTION_EGLIBC_SUNRPC | ||
560 | + depends on EGLIBC_INET && EGLIBC_SUNRPC | ||
561 | help | ||
562 | This option group includes the NIS, NIS+, and 'compat' Name | ||
563 | Service Switch service libraries. When it is disabled, those | ||
564 | services libraries are not installed; you should remove any | ||
565 | references to them from your 'nsswitch.conf' file. | ||
566 | |||
567 | - This option group depends on the OPTION_EGLIBC_INET option | ||
568 | + This option group depends on the EGLIBC_INET option | ||
569 | group; you must enable that to enable this option group. | ||
570 | |||
571 | -config OPTION_EGLIBC_NSSWITCH | ||
572 | +config EGLIBC_NSSWITCH | ||
573 | bool "Name service switch (nsswitch) support" | ||
574 | help | ||
575 | - | ||
576 | This option group includes support for the 'nsswitch' facility. | ||
577 | With this option group enabled, all EGLIBC functions for | ||
578 | accessing various system databases (passwords and groups; | ||
579 | @@ -544,12 +539,12 @@ | ||
580 | 'option-groups.config' file must set the following two | ||
581 | variables: | ||
582 | |||
583 | - OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG | ||
584 | + EGLIBC_NSSWITCH_FIXED_CONFIG | ||
585 | |||
586 | Set this to the name of a file whose contents observe the | ||
587 | same syntax as an ordinary '/etc/nsswitch.conf' file. The | ||
588 | EGLIBC build process parses this file just as EGLIBC would | ||
589 | - at run time if OPTION_EGLIBC_NSSWITCH were enabled, and | ||
590 | + at run time if EGLIBC_NSSWITCH were enabled, and | ||
591 | produces a C library that uses the nsswitch service | ||
592 | libraries to search for database entries as this file | ||
593 | specifies, instead of consulting '/etc/nsswitch.conf' at run | ||
594 | @@ -567,7 +562,7 @@ | ||
595 | you will probably want to delete references to databases not | ||
596 | needed on your system. | ||
597 | |||
598 | - OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS | ||
599 | + EGLIBC_NSSWITCH_FIXED_FUNCTIONS | ||
600 | |||
601 | The EGLIBC build process uses this file to decide which | ||
602 | functions to make available from which service libraries. | ||
603 | @@ -585,28 +580,28 @@ | ||
604 | Be sure to mention each function in each service you wish to | ||
605 | use. If you do not mention a service's function here, the | ||
606 | EGLIBC database access functions will not find it, even if | ||
607 | - it is listed in the OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG | ||
608 | + it is listed in the EGLIBC_NSSWITCH_FIXED_CONFIG | ||
609 | file. | ||
610 | |||
611 | - In this arrangement, EGLIBC will not use the 'dlopen' and | ||
612 | - 'dlsym' functions to find database access functions. Instead, | ||
613 | - libc hard-codes references to the service libraries' database | ||
614 | - access functions. You must explicitly link your program | ||
615 | - against the name service libraries (those whose names start | ||
616 | - with 'libnss_', in the sysroot's '/lib' directory) whose | ||
617 | - functions you intend to use. This arrangement helps | ||
618 | - system-wide static analysis tools decide which functions a | ||
619 | - system actually uses. | ||
620 | - | ||
621 | - Note that some nsswitch service libraries require other option | ||
622 | - groups to be enabled; for example, the OPTION_EGLIBC_INET | ||
623 | - option group must be enabled to use the 'libnss_dns.so.2' | ||
624 | - service library, which uses the Domain Name System network | ||
625 | - protocol to answer queries. | ||
626 | + In this arrangement, EGLIBC will not use the 'dlopen' and | ||
627 | + 'dlsym' functions to find database access functions. Instead, | ||
628 | + libc hard-codes references to the service libraries' database | ||
629 | + access functions. You must explicitly link your program | ||
630 | + against the name service libraries (those whose names start | ||
631 | + with 'libnss_', in the sysroot's '/lib' directory) whose | ||
632 | + functions you intend to use. This arrangement helps | ||
633 | + system-wide static analysis tools decide which functions a | ||
634 | + system actually uses. | ||
635 | + | ||
636 | + Note that some nsswitch service libraries require other option | ||
637 | + groups to be enabled; for example, the EGLIBC_INET | ||
638 | + option group must be enabled to use the 'libnss_dns.so.2' | ||
639 | + service library, which uses the Domain Name System network | ||
640 | + protocol to answer queries. | ||
641 | |||
642 | -config OPTION_EGLIBC_RCMD | ||
643 | +config EGLIBC_RCMD | ||
644 | bool "Support for 'rcmd' and related library functions" | ||
645 | - depends OPTION_EGLIBC_INET | ||
646 | + depends on EGLIBC_INET | ||
647 | help | ||
648 | This option group includes functions for running commands on | ||
649 | remote machines via the 'rsh' protocol, and doing authentication | ||
650 | @@ -622,7 +617,7 @@ | ||
651 | rresvport ruserpass | ||
652 | rresvport_af | ||
653 | |||
654 | -config OPTION_EGLIBC_RTLD_DEBUG | ||
655 | +config EGLIBC_RTLD_DEBUG | ||
656 | bool "Runtime linker debug print outs" | ||
657 | help | ||
658 | This option group enables debug output of the runtime linker | ||
659 | @@ -633,7 +628,7 @@ | ||
660 | the `ldd' utility which may also be used by the prelinker. | ||
661 | In particular, the `--unused' ldd option will not work correctly. | ||
662 | |||
663 | -config OPTION_EGLIBC_SPAWN | ||
664 | +config EGLIBC_SPAWN | ||
665 | bool "Support for POSIX posix_spawn functions" | ||
666 | help | ||
667 | This option group includes the POSIX functions for executing | ||
668 | @@ -669,7 +664,7 @@ | ||
669 | disabled, those programs will only operate on uncompressed | ||
670 | charmap files. | ||
671 | |||
672 | -config OPTION_EGLIBC_STREAMS | ||
673 | +config EGLIBC_STREAMS | ||
674 | bool "Support for accessing STREAMS." | ||
675 | help | ||
676 | This option group includes functions for reading and writing | ||
677 | @@ -685,14 +680,14 @@ | ||
678 | isastream fdetach | ||
679 | putmsg | ||
680 | |||
681 | -config OPTION_EGLIBC_SUNRPC | ||
682 | +config EGLIBC_SUNRPC | ||
683 | bool "Support for the Sun 'RPC' protocol." | ||
684 | - depends OPTION_EGLIBC_INET | ||
685 | + depends on EGLIBC_INET | ||
686 | help | ||
687 | This option group includes support for the Sun RPC protocols, | ||
688 | including the 'rpcgen' and 'rpcinfo' programs. | ||
689 | |||
690 | -config OPTION_EGLIBC_UTMP | ||
691 | +config EGLIBC_UTMP | ||
692 | bool "Older access functions for 'utmp' login records" | ||
693 | help | ||
694 | This option group includes the older 'utent' family of | ||
695 | @@ -719,9 +714,9 @@ | ||
696 | |||
697 | libutil.so (and libutil.a) | ||
698 | |||
699 | -config OPTION_EGLIBC_UTMPX | ||
700 | +config EGLIBC_UTMPX | ||
701 | bool "POSIX access functions for 'utmp' login records" | ||
702 | - depends OPTION_EGLIBC_UTMP | ||
703 | + depends on EGLIBC_UTMP | ||
704 | help | ||
705 | This option group includes the POSIX functions for reading and | ||
706 | writing user login records in the 'utmp' file (usually | ||
707 | @@ -742,21 +737,21 @@ | ||
708 | updwtmpx | ||
709 | utmpxname | ||
710 | |||
711 | -config OPTION_EGLIBC_WORDEXP | ||
712 | +config EGLIBC_WORDEXP | ||
713 | bool "Shell-style word expansion" | ||
714 | help | ||
715 | This option group includes the 'wordexp' function for | ||
716 | performing word expansion in the manner of the shell, and the | ||
717 | accompanying 'wordfree' function. | ||
718 | |||
719 | -config OPTION_POSIX_C_LANG_WIDE_CHAR | ||
720 | +config POSIX_C_LANG_WIDE_CHAR | ||
721 | bool "ISO C library wide character functions, excluding I/O" | ||
722 | help | ||
723 | This option group includes the functions defined by the ISO C | ||
724 | standard for working with wide and multibyte characters in | ||
725 | memory. Functions for reading and writing wide and multibyte | ||
726 | characters from and to files call in the | ||
727 | - OPTION_POSIX_WIDE_CHAR_DEVICE_IO option group. | ||
728 | + POSIX_WIDE_CHAR_DEVICE_IO option group. | ||
729 | |||
730 | This option group includes the following functions: | ||
731 | |||
732 | @@ -778,14 +773,14 @@ | ||
733 | mbrlen wcscoll wcstol | ||
734 | mbrtowc wcscpy wcstold | ||
735 | |||
736 | -config OPTION_POSIX_REGEXP | ||
737 | +config POSIX_REGEXP | ||
738 | bool "Regular expressions" | ||
739 | help | ||
740 | This option group includes the POSIX regular expression | ||
741 | functions, and the associated non-POSIX extensions and | ||
742 | compatibility functions. | ||
743 | |||
744 | - With OPTION_POSIX_REGEXP disabled, the following functions are | ||
745 | + With POSIX_REGEXP disabled, the following functions are | ||
746 | omitted from libc: | ||
747 | |||
748 | re_comp re_max_failures regcomp | ||
749 | @@ -799,9 +794,9 @@ | ||
750 | <regexp.h> header file, 'compile', 'step', and 'advance', is | ||
751 | omitted. | ||
752 | |||
753 | -config OPTION_POSIX_REGEXP_GLIBC | ||
754 | +config POSIX_REGEXP_GLIBC | ||
755 | bool "Regular expressions from GLIBC" | ||
756 | - depends OPTION_POSIX_REGEXP | ||
757 | + depends on POSIX_REGEXP | ||
758 | help | ||
759 | This option group specifies which regular expression | ||
760 | library to use. The choice is between regex | ||
761 | @@ -810,9 +805,9 @@ | ||
762 | optimized for speed; regex from libiberty is more than twice | ||
763 | as small while still is enough for most practical purposes. | ||
764 | |||
765 | -config OPTION_POSIX_WIDE_CHAR_DEVICE_IO | ||
766 | +config POSIX_WIDE_CHAR_DEVICE_IO | ||
767 | bool "Input and output functions for wide characters" | ||
768 | - depends OPTION_POSIX_C_LANG_WIDE_CHAR | ||
769 | + depends on POSIX_C_LANG_WIDE_CHAR | ||
770 | help | ||
771 | This option group includes functions for reading and writing | ||
772 | wide characters to and from <stdio.h> streams. | ||
773 | Index: libc/Makefile | ||
774 | =================================================================== | ||
775 | --- libc.orig/Makefile 2013-06-04 08:48:26.000000000 -0700 | ||
776 | +++ libc/Makefile 2013-06-26 00:45:15.796885570 -0700 | ||
777 | @@ -24,6 +24,7 @@ | ||
778 | |||
779 | include Makeconfig | ||
780 | |||
781 | +include options-config/Makefile | ||
782 | |||
783 | # This is the default target; it makes everything except the tests. | ||
784 | .PHONY: all | ||
785 | Index: libc/configure | ||
786 | =================================================================== | ||
787 | --- libc.orig/configure 2013-06-24 15:42:26.000000000 -0700 | ||
788 | +++ libc/configure 2013-06-26 00:45:15.800885570 -0700 | ||
789 | @@ -622,6 +622,7 @@ | ||
790 | libc_cv_have_bash2 | ||
791 | BASH_SHELL | ||
792 | libc_cv_gcc_static_libgcc | ||
793 | +KCONFIG_TOOLS | ||
794 | CXX_SYSINCLUDES | ||
795 | SYSINCLUDES | ||
796 | AUTOCONF | ||
797 | @@ -734,6 +735,7 @@ | ||
798 | with_binutils | ||
799 | with_selinux | ||
800 | with_headers | ||
801 | +with_kconfig | ||
802 | with_default_link | ||
803 | enable_sanity_checks | ||
804 | enable_shared | ||
805 | @@ -1432,6 +1434,9 @@ | ||
806 | --with-selinux if building with SELinux support | ||
807 | --with-headers=PATH location of system headers to use (for example | ||
808 | /usr/src/linux/include) [default=compiler default] | ||
809 | + --with-kconfig=PATH location of kconfig tools to use (from Linux kernel | ||
810 | + builds) to re-use for configuring EGLIBC option | ||
811 | + groups | ||
812 | --with-default-link do not use explicit linker scripts | ||
813 | --with-cpu=CPU select code for CPU variant | ||
814 | |||
815 | @@ -3395,6 +3400,14 @@ | ||
816 | |||
817 | |||
818 | |||
819 | +# Check whether --with-kconfig was given. | ||
820 | +if test "${with_kconfig+set}" = set; then | ||
821 | + withval=$with_kconfig; KCONFIG_TOOLS=$withval | ||
822 | +else | ||
823 | + KCONFIG_TOOLS='' | ||
824 | +fi | ||
825 | + | ||
826 | + | ||
827 | |||
828 | # Check whether --with-default-link was given. | ||
829 | if test "${with_default_link+set}" = set; then : | ||
830 | Index: libc/EGLIBC.option-groups | ||
831 | =================================================================== | ||
832 | --- libc.orig/EGLIBC.option-groups 2007-04-13 17:50:17.000000000 -0700 | ||
833 | +++ libc/EGLIBC.option-groups 2013-06-26 00:45:15.800885570 -0700 | ||
834 | @@ -56,33 +56,9 @@ | ||
835 | |||
836 | The Option Groups | ||
837 | |||
838 | -EGLIBC currently implements the following option groups, also | ||
839 | -documented in the file 'option-groups.def': | ||
840 | - | ||
841 | -OPTION_EGLIBC_CATGETS | ||
842 | - This option group includes functions for accessing message | ||
843 | - catalogs: catopen, catclose, and catgets. | ||
844 | - | ||
845 | -OPTION_EGLIBC_LOCALES | ||
846 | - This option group includes all locale definitions other than | ||
847 | - those for the "C" locale. If this option group is omitted, then | ||
848 | - only the "C" locale is supported. | ||
849 | - | ||
850 | -OPTION_EGLIBC_LIBM | ||
851 | - This option group includes the 'libm' library, containing | ||
852 | - mathematical functions. If this option group is omitted, then | ||
853 | - an EGLIBC installation does not include shared or unshared versions | ||
854 | - of the math library. | ||
855 | - | ||
856 | - Note that this does not remove all floating-point related | ||
857 | - functionality from EGLIBC; for example, 'printf' and 'scanf' | ||
858 | - can still print and read floating-point values with this option | ||
859 | - group disabled. | ||
860 | - | ||
861 | - Note that the ISO Standard C++ library 'libstdc++' depends on | ||
862 | - EGLIBC's math library 'libm'. If you disable this option | ||
863 | - group, you will not be able to build 'libstdc++' against the | ||
864 | - resulting EGLIBC installation. | ||
865 | +To see the current full list of implemented option groups, refer to the | ||
866 | +file 'option-groups.def' at the top of the source tree, or run | ||
867 | +'make menuconfig' from the top-level build directory. | ||
868 | |||
869 | The POSIX.1-2001 specification includes a suggested partition of all | ||
870 | the functions in the POSIX C API into option groups: math functions | ||
871 | @@ -110,6 +86,18 @@ | ||
872 | OPTION_EGLIBC_LOCALES = n | ||
873 | OPTION_EGLIBC_LIBM = y | ||
874 | |||
875 | +Like the Linux kernel, EGLIBC supports a similar set of '*config' make | ||
876 | +targets to make it easier to create 'option-groups.config', with all | ||
877 | +dependencies between option groups automatically satisfied. Run | ||
878 | +'make help' to see the list of supported make config targets. For | ||
879 | +example, 'make menuconfig' will update the current config utilising a | ||
880 | +menu based program. | ||
881 | + | ||
882 | +The option group names and their type (boolean, int, hex, string), help | ||
883 | +description, and dependencies with other option groups, are described by | ||
884 | +'option-groups.def' at the top of the source tree, analogous to the | ||
885 | +'Kconfig' files in the Linux kernel. | ||
886 | + | ||
887 | In general, each option group variable controls whether a given set of | ||
888 | object files in EGLIBC is compiled and included in the final | ||
889 | libraries, or omitted from the build. | ||
890 | @@ -132,22 +120,3 @@ | ||
891 | |||
892 | We have used the system to subset some portions of EGLIBC's | ||
893 | functionality. It needs to be extended to cover more of the library. | ||
894 | - | ||
895 | -At the moment, EGLIBC performs no sanity checks on the contents of | ||
896 | -'option-groups.config'; if an option group's name is mistyped, the | ||
897 | -option group is silently included in the build. EGLIBC should check | ||
898 | -that all variables set in 'option-groups.config' are proper option | ||
899 | -group names, and that their values are appropriate. | ||
900 | - | ||
901 | -Some portions of EGLIBC depend on others; for example, the Sun Remote | ||
902 | -Procedure Call functions in 'sunrpc' depend on the networking | ||
903 | -functions in 'inet'. The sanity checking described above should check | ||
904 | -that the selection configuration satisfies dependencies within EGLIBC, | ||
905 | -and produce a legible error message if it does not. At the moment, | ||
906 | -inconsistent configurations produce link errors late in the build | ||
907 | -process. | ||
908 | - | ||
909 | -The Linux kernel's configuration system provides interactive | ||
910 | -interfaces for creating and modifying configuration files (which also | ||
911 | -perform the sanity checking and dependency tracking described above). | ||
912 | -EGLIBC should provide similar interfaces. | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch new file mode 100644 index 0000000000..a8463ea915 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From 713d822908d1b2ae8403af7f9375c7054ed3dd49 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ting Liu <b28495@freescale.com> | ||
3 | Date: Wed, 19 Dec 2012 04:39:57 -0600 | ||
4 | Subject: [PATCH] eglibc: run libm-err-tab.pl with specific dirs in ${S} | ||
5 | |||
6 | libm-err-tab.pl will parse all the files named "libm-test-ulps" | ||
7 | in the given dir recursively. To avoid parsing the one in | ||
8 | ${S}/.pc/ (it does exist after eglibc adds aarch64 support, | ||
9 | ${S}/.pc/aarch64-0001-glibc-fsf-v1-eaf6f205.patch/ports/sysdeps/ | ||
10 | aarch64/libm-test-ulps), run libm-err-tab.pl with specific dirs | ||
11 | in ${S}. | ||
12 | |||
13 | Upstream-Status: inappropriate [OE specific] | ||
14 | |||
15 | Signed-off-by: Ting Liu <b28495@freescale.com> | ||
16 | --- | ||
17 | manual/Makefile | 3 ++- | ||
18 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
19 | |||
20 | diff --git a/manual/Makefile b/manual/Makefile | ||
21 | index 6fddff0..7af242e 100644 | ||
22 | --- a/manual/Makefile | ||
23 | +++ b/manual/Makefile | ||
24 | @@ -109,7 +109,8 @@ $(objpfx)libm-err.texi: $(objpfx)stamp-libm-err | ||
25 | $(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ | ||
26 | $(dir)/libm-test-ulps)) | ||
27 | pwd=`pwd`; \ | ||
28 | - $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp | ||
29 | + $(PERL) $< $$pwd/../ports > $(objpfx)libm-err-tmp | ||
30 | + $(PERL) $< $$pwd/../sysdeps >> $(objpfx)libm-err-tmp | ||
31 | $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi | ||
32 | touch $@ | ||
33 | |||
34 | -- | ||
35 | 1.7.9.7 | ||
36 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0002-eglibc-menuconfig-hex-string-options.patch b/meta/recipes-core/eglibc/eglibc-2.18/0002-eglibc-menuconfig-hex-string-options.patch new file mode 100644 index 0000000000..7caba48112 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/0002-eglibc-menuconfig-hex-string-options.patch | |||
@@ -0,0 +1,169 @@ | |||
1 | pulled from | ||
2 | |||
3 | http://www.eglibc.org/archives/patches/msg01043.html | ||
4 | |||
5 | |||
6 | Upstream-Status: Pending | ||
7 | Signed-off-by: Khem | ||
8 | |||
9 | |||
10 | This patch builds on the menuconfig patch for EGLIBC. | ||
11 | |||
12 | |||
13 | There are a few options that have non-boolean types, that would benefit from the new 'make *config' support: | ||
14 | |||
15 | EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE (int) | ||
16 | EGLIBC_NSSWITCH_FIXED_CONFIG (string) | ||
17 | EGLIBC_NSSWITCH_FIXED_FUNCTIONS (string) | ||
18 | |||
19 | |||
20 | The patch converts these to real options in libc/option-groups.def. Also, libc/scripts/option-groups.awk is modified to output a '#define' line for int, hex, or string options encountered in the config file. | ||
21 | |||
22 | In the post-processing script config-postproc.pl, a small change is needed: for any boolean option FOO that is implicitly disabled in the kconfig output, make sure that option is indeed a boolean before printing the explicit OPTION_FOO=n. | ||
23 | |||
24 | Finally, libc/malloc/Makefile passes __OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE as a CPPFLAGS, which is not necessary anymore because this macro will now be present in the generated header. | ||
25 | |||
26 | attached is the updated patch to address above issues. | ||
27 | |||
28 | Steve | ||
29 | |||
30 | -- | ||
31 | Steve Longerbeam | Senior Embedded Engineer, ESD Services | ||
32 | Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538 | ||
33 | P 510.354.5838 | M 408.410.2735 | ||
34 | Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS | ||
35 | |||
36 | |||
37 | Index: libc/malloc/Makefile | ||
38 | =================================================================== | ||
39 | --- libc.orig/malloc/Makefile 2012-01-04 22:06:18.000000000 -0800 | ||
40 | +++ libc/malloc/Makefile 2012-05-09 19:35:28.598682105 -0700 | ||
41 | @@ -48,10 +48,6 @@ | ||
42 | ifeq ($(OPTION_EGLIBC_MEMUSAGE),y) | ||
43 | extra-libs = libmemusage | ||
44 | extra-libs-others = $(extra-libs) | ||
45 | - | ||
46 | -ifdef OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
47 | -CPPFLAGS-memusage += -D__OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE=$(OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE) | ||
48 | -endif | ||
49 | endif | ||
50 | |||
51 | libmemusage-routines = memusage | ||
52 | Index: libc/option-groups.def | ||
53 | =================================================================== | ||
54 | --- libc.orig/option-groups.def 2012-05-09 19:33:48.398677256 -0700 | ||
55 | +++ libc/option-groups.def 2012-05-09 19:35:28.610682107 -0700 | ||
56 | @@ -513,8 +513,11 @@ | ||
57 | the `memusage' and `memusagestat' utilities. | ||
58 | These components provide memory profiling functions. | ||
59 | |||
60 | - EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
61 | - | ||
62 | +config EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE | ||
63 | + int "Memory profiling library buffer size" | ||
64 | + depends on EGLIBC_MEMUSAGE | ||
65 | + default "32768" | ||
66 | + help | ||
67 | Libmemusage library buffers the profiling data in memory | ||
68 | before writing it out to disk. By default, the library | ||
69 | allocates 1.5M buffer, which can be substantial for some | ||
70 | @@ -553,8 +556,11 @@ | ||
71 | 'option-groups.config' file must set the following two | ||
72 | variables: | ||
73 | |||
74 | - EGLIBC_NSSWITCH_FIXED_CONFIG | ||
75 | - | ||
76 | +config EGLIBC_NSSWITCH_FIXED_CONFIG | ||
77 | + string "Nsswitch fixed config filename" | ||
78 | + depends on !EGLIBC_NSSWITCH | ||
79 | + default "" | ||
80 | + help | ||
81 | Set this to the name of a file whose contents observe the | ||
82 | same syntax as an ordinary '/etc/nsswitch.conf' file. The | ||
83 | EGLIBC build process parses this file just as EGLIBC would | ||
84 | @@ -576,8 +582,11 @@ | ||
85 | you will probably want to delete references to databases not | ||
86 | needed on your system. | ||
87 | |||
88 | - EGLIBC_NSSWITCH_FIXED_FUNCTIONS | ||
89 | - | ||
90 | +config EGLIBC_NSSWITCH_FIXED_FUNCTIONS | ||
91 | + string "Nsswitch fixed functions filename" | ||
92 | + depends on !EGLIBC_NSSWITCH | ||
93 | + default "" | ||
94 | + help | ||
95 | The EGLIBC build process uses this file to decide which | ||
96 | functions to make available from which service libraries. | ||
97 | The file 'nss/fixed-nsswitch.functions' serves as a sample | ||
98 | Index: libc/options-config/config-postproc.pl | ||
99 | =================================================================== | ||
100 | --- libc.orig/options-config/config-postproc.pl 2012-05-09 19:33:36.530676681 -0700 | ||
101 | +++ libc/options-config/config-postproc.pl 2012-05-09 19:35:28.610682107 -0700 | ||
102 | @@ -8,7 +8,7 @@ | ||
103 | die "Could not open $ARGV[0]" unless -T $ARGV[0]; | ||
104 | |||
105 | sub yank { | ||
106 | - @option = grep($_ ne $_[0], @option); | ||
107 | + @option = grep(!($_ =~ /$_[0]\s*=/), @option); | ||
108 | } | ||
109 | |||
110 | open(DEFAULTS, $defaults) || die "Could not open $defaults\n"; | ||
111 | @@ -16,7 +16,7 @@ | ||
112 | # get the full list of available options using the default config file | ||
113 | $i = 0; | ||
114 | while (<DEFAULTS>) { | ||
115 | - if (/^\s*OPTION_(\w+)\s*=/) { | ||
116 | + if (/^\s*OPTION_(\w+\s*=.*$)/) { | ||
117 | $option[$i++] = $1; | ||
118 | } | ||
119 | } | ||
120 | @@ -35,8 +35,9 @@ | ||
121 | s/CONFIG_/OPTION_/g; | ||
122 | print; | ||
123 | } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) { | ||
124 | - # this is a comment line, change CONFIG_ to OPTION_, remove this | ||
125 | - # option from option list, and convert to explicit OPTION_FOO=n | ||
126 | + # this is a comment line for an unset boolean option, change CONFIG_ | ||
127 | + # to OPTION_, remove this option from option list, and convert to | ||
128 | + # explicit OPTION_FOO=n | ||
129 | $opt = $1; | ||
130 | yank($opt); | ||
131 | s/CONFIG_/OPTION_/g; | ||
132 | @@ -46,9 +47,12 @@ | ||
133 | } | ||
134 | } | ||
135 | |||
136 | -# any options left in @options, are options that were not mentioned in | ||
137 | +# any boolean options left in @options, are options that were not mentioned in | ||
138 | # the config file, and implicitly that means the option must be set =n, | ||
139 | # so do that here. | ||
140 | foreach $opt (@option) { | ||
141 | - print "OPTION_$opt=n\n"; | ||
142 | + if ($opt =~ /=\s*[yn]/) { | ||
143 | + $opt =~ s/=\s*[yn]/=n/; | ||
144 | + print "OPTION_$opt\n"; | ||
145 | + } | ||
146 | } | ||
147 | Index: libc/scripts/option-groups.awk | ||
148 | =================================================================== | ||
149 | --- libc.orig/scripts/option-groups.awk 2012-01-04 22:06:00.000000000 -0800 | ||
150 | +++ libc/scripts/option-groups.awk 2012-05-09 19:35:28.610682107 -0700 | ||
151 | @@ -46,9 +46,15 @@ | ||
152 | print "#define __" var " 1" | ||
153 | else if (vars[var] == "n") | ||
154 | print "/* #undef __" var " */" | ||
155 | - # Ignore variables that don't have boolean values. | ||
156 | - # Ideally, this would be driven by the types given in | ||
157 | - # option-groups.def. | ||
158 | + else if (vars[var] ~ /^[0-9]+/ || | ||
159 | + vars[var] ~ /^0x[0-9aAbBcCdDeEfF]+/ || | ||
160 | + vars[var] ~ /^\"/) | ||
161 | + print "#define __" var " " vars[var] | ||
162 | + else | ||
163 | + print "/* #undef __" var " */" | ||
164 | + # Ignore variables that don't have boolean, int, hex, or | ||
165 | + # string values. Ideally, this would be driven by the types | ||
166 | + # given in option-groups.def. | ||
167 | } | ||
168 | } | ||
169 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0003-eglibc-menuconfig-build-instructions.patch b/meta/recipes-core/eglibc/eglibc-2.18/0003-eglibc-menuconfig-build-instructions.patch new file mode 100644 index 0000000000..d137f5b318 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/0003-eglibc-menuconfig-build-instructions.patch | |||
@@ -0,0 +1,176 @@ | |||
1 | Pulled from | ||
2 | |||
3 | http://www.eglibc.org/archives/patches/msg01035.html | ||
4 | |||
5 | Upstream-Status: Pending | ||
6 | Signed-off-by: Khem | ||
7 | |||
8 | As part of the menuconfig development, I encountered some outdated information in the cross-build instructions, libc/EGLIBC.cross-building. This patch updates the file with new (and tested) instructions. It is unrelated to the menuconfig support, but applies after. | ||
9 | |||
10 | My testing was done with an ARM target, and an x86_64 Linux host, so I converted the instructions to use those host/target types from the original i686/powerpc. Hope that's ok. | ||
11 | |||
12 | |||
13 | Thanks, | ||
14 | |||
15 | -- | ||
16 | Steve Longerbeam | Senior Embedded Engineer, ESD Services | ||
17 | Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538 | ||
18 | P 510.354.5838 | M 408.410.2735 | ||
19 | Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS | ||
20 | |||
21 | |||
22 | EGLIBC.cross-building | 59 +++++++++++++++++++++++++++++--------------------- | ||
23 | 1 file changed, 35 insertions(+), 24 deletions(-) | ||
24 | |||
25 | Index: libc/EGLIBC.cross-building | ||
26 | =================================================================== | ||
27 | --- libc.orig/EGLIBC.cross-building 2012-05-09 19:33:36.522676681 -0700 | ||
28 | +++ libc/EGLIBC.cross-building 2012-05-09 19:36:13.918684298 -0700 | ||
29 | @@ -47,31 +47,34 @@ | ||
30 | EGLIBC requires recent versions of the GNU binutils, GCC, and the | ||
31 | Linux kernel. The web page <http://www.eglibc.org/prerequisites> | ||
32 | documents the current requirements, and lists patches needed for | ||
33 | -certain target architectures. As of this writing, EGLIBC required | ||
34 | -binutils 2.17, GCC 4.1, and Linux 2.6.19.1. | ||
35 | +certain target architectures. As of this writing, these build | ||
36 | +instructions have been tested with binutils 2.22.51, GCC 4.6.2, | ||
37 | +and Linux 3.1. | ||
38 | |||
39 | First, let's set some variables, to simplify later commands. We'll | ||
40 | -build EGLIBC and GCC for a PowerPC target, known to the Linux kernel | ||
41 | -as 'powerpc', and we'll do the build on an Intel Linux box: | ||
42 | +build EGLIBC and GCC for an ARM target, known to the Linux kernel | ||
43 | +as 'arm', and we'll do the build on an Intel x86_64 Linux box: | ||
44 | |||
45 | - $ build=i686-pc-linux-gnu | ||
46 | + $ build=x86_64-pc-linux-gnu | ||
47 | $ host=$build | ||
48 | - $ target=powerpc-none-linux-gnu | ||
49 | - $ linux_arch=powerpc | ||
50 | + $ target=arm-none-linux-gnueabi | ||
51 | + $ linux_arch=arm | ||
52 | |||
53 | We're using the aforementioned versions of Binutils, GCC, and Linux: | ||
54 | |||
55 | - $ binutilsv=binutils-2.17 | ||
56 | - $ gccv=gcc-4.1.1 | ||
57 | - $ linuxv=linux-2.6.20 | ||
58 | + $ binutilsv=binutils-2.22.51 | ||
59 | + $ gccv=gcc-4.6.2 | ||
60 | + $ linuxv=linux-3.1 | ||
61 | |||
62 | We're carrying out the entire process under '~/cross-build', which | ||
63 | -contains unpacked source trees: | ||
64 | +contains unpacked source trees for binutils, gcc, and linux kernel, | ||
65 | +along with EGLIBC svn trunk (which can be checked-out with | ||
66 | +'svn co http://www.eglibc.org/svn/trunk eglibc'): | ||
67 | |||
68 | - $ top=$HOME/cross-build/ppc | ||
69 | + $ top=$HOME/cross-build/$target | ||
70 | $ src=$HOME/cross-build/src | ||
71 | $ ls $src | ||
72 | - binutils-2.17 gcc-4.1.1 libc linux-2.6.20 | ||
73 | + binutils-2.22.51 eglibc gcc-4.6.2 linux-3.1 | ||
74 | |||
75 | We're going to place our build directories in a subdirectory 'obj', | ||
76 | we'll install the cross-development toolchain in 'tools', and we'll | ||
77 | @@ -99,7 +102,7 @@ | ||
78 | |||
79 | The First GCC | ||
80 | |||
81 | -For our work, we need a cross-compiler targeting a PowerPC Linux | ||
82 | +For our work, we need a cross-compiler targeting an ARM Linux | ||
83 | system. However, that configuration includes the shared library | ||
84 | 'libgcc_s.so', which is compiled against the EGLIBC headers (which we | ||
85 | haven't installed yet) and linked against 'libc.so' (which we haven't | ||
86 | @@ -125,7 +128,8 @@ | ||
87 | > --prefix=$tools \ | ||
88 | > --without-headers --with-newlib \ | ||
89 | > --disable-shared --disable-threads --disable-libssp \ | ||
90 | - > --disable-libgomp --disable-libmudflap \ | ||
91 | + > --disable-libgomp --disable-libmudflap --disable-libquadmath \ | ||
92 | + > --disable-decimal-float --disable-libffi \ | ||
93 | > --enable-languages=c | ||
94 | $ PATH=$tools/bin:$PATH make | ||
95 | $ PATH=$tools/bin:$PATH make install | ||
96 | @@ -162,12 +166,13 @@ | ||
97 | > CXX=$tools/bin/$target-g++ \ | ||
98 | > AR=$tools/bin/$target-ar \ | ||
99 | > RANLIB=$tools/bin/$target-ranlib \ | ||
100 | - > $src/libc/configure \ | ||
101 | + > $src/eglibc/libc/configure \ | ||
102 | > --prefix=/usr \ | ||
103 | > --with-headers=$sysroot/usr/include \ | ||
104 | > --build=$build \ | ||
105 | > --host=$target \ | ||
106 | - > --disable-profile --without-gd --without-cvs --enable-add-ons | ||
107 | + > --disable-profile --without-gd --without-cvs \ | ||
108 | + > --enable-add-ons=nptl,libidn,../ports | ||
109 | |||
110 | The option '--prefix=/usr' may look strange, but you should never | ||
111 | configure EGLIBC with a prefix other than '/usr': in various places, | ||
112 | @@ -181,6 +186,11 @@ | ||
113 | The '--with-headers' option tells EGLIBC where the Linux headers have | ||
114 | been installed. | ||
115 | |||
116 | +The '--enable-add-ons=nptl,libidn,../ports' option tells EGLIBC to look | ||
117 | +for the listed glibc add-ons. Most notably the ports add-on (located | ||
118 | +just above the libc sources in the EGLIBC svn tree) is required to | ||
119 | +support ARM targets. | ||
120 | + | ||
121 | We can now use the 'install-headers' makefile target to install the | ||
122 | headers: | ||
123 | |||
124 | @@ -223,6 +233,7 @@ | ||
125 | > --prefix=$tools \ | ||
126 | > --with-sysroot=$sysroot \ | ||
127 | > --disable-libssp --disable-libgomp --disable-libmudflap \ | ||
128 | + > --disable-libffi --disable-libquadmath \ | ||
129 | > --enable-languages=c | ||
130 | $ PATH=$tools/bin:$PATH make | ||
131 | $ PATH=$tools/bin:$PATH make install | ||
132 | @@ -240,13 +251,14 @@ | ||
133 | > CXX=$tools/bin/$target-g++ \ | ||
134 | > AR=$tools/bin/$target-ar \ | ||
135 | > RANLIB=$tools/bin/$target-ranlib \ | ||
136 | - > $src/libc/configure \ | ||
137 | + > $src/eglibc/libc/configure \ | ||
138 | > --prefix=/usr \ | ||
139 | > --with-headers=$sysroot/usr/include \ | ||
140 | > --with-kconfig=$obj/linux/scripts/kconfig \ | ||
141 | > --build=$build \ | ||
142 | > --host=$target \ | ||
143 | - > --disable-profile --without-gd --without-cvs --enable-add-ons | ||
144 | + > --disable-profile --without-gd --without-cvs \ | ||
145 | + > --enable-add-ons=nptl,libidn,../ports | ||
146 | |||
147 | Note the additional '--with-kconfig' option. This tells EGLIBC where to | ||
148 | find the host config tools used by the kernel 'make config' and 'make | ||
149 | @@ -337,15 +349,15 @@ | ||
150 | ELF Header: | ||
151 | ... | ||
152 | Type: EXEC (Executable file) | ||
153 | - Machine: PowerPC | ||
154 | + Machine: ARM | ||
155 | |||
156 | ... | ||
157 | Program Headers: | ||
158 | Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align | ||
159 | PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 | ||
160 | - INTERP 0x000134 0x10000134 0x10000134 0x0000d 0x0000d R 0x1 | ||
161 | - [Requesting program interpreter: /lib/ld.so.1] | ||
162 | - LOAD 0x000000 0x10000000 0x10000000 0x008f0 0x008f0 R E 0x10000 | ||
163 | + INTERP 0x000134 0x00008134 0x00008134 0x00013 0x00013 R 0x1 | ||
164 | + [Requesting program interpreter: /lib/ld-linux.so.3] | ||
165 | + LOAD 0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000 | ||
166 | ... | ||
167 | |||
168 | Looking at the dynamic section of the installed 'libgcc_s.so', we see | ||
169 | @@ -357,7 +369,6 @@ | ||
170 | Dynamic section at offset 0x1083c contains 24 entries: | ||
171 | Tag Type Name/Value | ||
172 | 0x00000001 (NEEDED) Shared library: [libc.so.6] | ||
173 | - 0x00000001 (NEEDED) Shared library: [ld.so.1] | ||
174 | 0x0000000e (SONAME) Library soname: [libgcc_s.so.1] | ||
175 | ... | ||
176 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/GLRO_dl_debug_mask.patch b/meta/recipes-core/eglibc/eglibc-2.18/GLRO_dl_debug_mask.patch new file mode 100644 index 0000000000..7258c82418 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/GLRO_dl_debug_mask.patch | |||
@@ -0,0 +1,143 @@ | |||
1 | Its controlled by __OPTION_EGLIBC_RTLD_DEBUG | ||
2 | so we should use GLRO_dl_debug_mask | ||
3 | |||
4 | Singed-off-by: Khem Raj <raj.khem@gmail.com> | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | Index: libc/elf/dl-open.c | ||
8 | =================================================================== | ||
9 | --- libc.orig/elf/dl-open.c 2012-10-25 10:18:12.000000000 -0700 | ||
10 | +++ libc/elf/dl-open.c 2013-01-09 11:49:02.635577870 -0800 | ||
11 | @@ -155,7 +155,7 @@ | ||
12 | ns->_ns_main_searchlist->r_list[new_nlist++] = map; | ||
13 | |||
14 | /* We modify the global scope. Report this. */ | ||
15 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) | ||
16 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0)) | ||
17 | _dl_debug_printf ("\nadd %s [%lu] to global scope\n", | ||
18 | map->l_name, map->l_ns); | ||
19 | } | ||
20 | @@ -298,7 +298,7 @@ | ||
21 | LIBC_PROBE (map_complete, 3, args->nsid, r, new); | ||
22 | |||
23 | /* Print scope information. */ | ||
24 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) | ||
25 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0)) | ||
26 | _dl_show_scope (new, 0); | ||
27 | |||
28 | /* Only do lazy relocation if `LD_BIND_NOW' is not set. */ | ||
29 | @@ -515,7 +515,7 @@ | ||
30 | } | ||
31 | |||
32 | /* Print scope information. */ | ||
33 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) | ||
34 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0)) | ||
35 | _dl_show_scope (imap, from_scope); | ||
36 | } | ||
37 | |||
38 | Index: libc/ports/sysdeps/mips/dl-lookup.c | ||
39 | =================================================================== | ||
40 | --- libc.orig/ports/sysdeps/mips/dl-lookup.c 2012-08-17 12:39:53.000000000 -0700 | ||
41 | +++ libc/ports/sysdeps/mips/dl-lookup.c 2013-01-09 11:49:02.635577870 -0800 | ||
42 | @@ -111,7 +111,7 @@ | ||
43 | continue; | ||
44 | |||
45 | /* Print some debugging info if wanted. */ | ||
46 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SYMBOLS, 0)) | ||
47 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SYMBOLS, 0)) | ||
48 | _dl_debug_printf ("symbol=%s; lookup in file=%s [%lu]\n", | ||
49 | undef_name, | ||
50 | map->l_name[0] ? map->l_name : rtld_progname, | ||
51 | @@ -432,7 +432,7 @@ | ||
52 | hash table. */ | ||
53 | if (__builtin_expect (tab->size, 0)) | ||
54 | { | ||
55 | - assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK); | ||
56 | + assert (GLRO_dl_debug_mask & DL_DEBUG_PRELINK); | ||
57 | __rtld_lock_unlock_recursive (tab->lock); | ||
58 | goto success; | ||
59 | } | ||
60 | @@ -681,7 +681,7 @@ | ||
61 | } | ||
62 | |||
63 | /* Display information if we are debugging. */ | ||
64 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)) | ||
65 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0)) | ||
66 | _dl_debug_printf ("\ | ||
67 | \nfile=%s [%lu]; needed by %s [%lu] (relocation dependency)\n\n", | ||
68 | map->l_name[0] ? map->l_name : rtld_progname, | ||
69 | @@ -788,7 +788,7 @@ | ||
70 | { | ||
71 | if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) | ||
72 | && skip_map == NULL | ||
73 | - && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) | ||
74 | + && !(GLRO_dl_debug_mask & DL_DEBUG_UNUSED)) | ||
75 | { | ||
76 | /* We could find no value for a strong reference. */ | ||
77 | const char *reference_name = undef_map ? undef_map->l_name : ""; | ||
78 | @@ -861,7 +861,7 @@ | ||
79 | if (__builtin_expect (current_value.m->l_used == 0, 0)) | ||
80 | current_value.m->l_used = 1; | ||
81 | |||
82 | - if (__builtin_expect (GLRO(dl_debug_mask) | ||
83 | + if (__builtin_expect (GLRO_dl_debug_mask | ||
84 | & (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0)) | ||
85 | _dl_debug_bindings (undef_name, undef_map, ref, | ||
86 | ¤t_value, version, type_class, protected); | ||
87 | @@ -926,7 +926,7 @@ | ||
88 | { | ||
89 | const char *reference_name = undef_map->l_name; | ||
90 | |||
91 | - if (GLRO(dl_debug_mask) & DL_DEBUG_BINDINGS) | ||
92 | + if (GLRO_dl_debug_mask & DL_DEBUG_BINDINGS) | ||
93 | { | ||
94 | _dl_debug_printf ("binding file %s [%lu] to %s [%lu]: %s symbol `%s'", | ||
95 | (reference_name[0] | ||
96 | @@ -942,7 +942,7 @@ | ||
97 | _dl_debug_printf_c ("\n"); | ||
98 | } | ||
99 | #ifdef SHARED | ||
100 | - if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK) | ||
101 | + if (GLRO_dl_debug_mask & DL_DEBUG_PRELINK) | ||
102 | { | ||
103 | int conflict = 0; | ||
104 | struct sym_val val = { NULL, NULL }; | ||
105 | Index: libc/elf/rtld.c | ||
106 | =================================================================== | ||
107 | --- libc.orig/elf/rtld.c 2012-10-10 08:35:46.000000000 -0700 | ||
108 | +++ libc/elf/rtld.c 2013-01-09 11:49:02.635577870 -0800 | ||
109 | @@ -2118,7 +2118,7 @@ | ||
110 | GLRO(dl_init_all_dirs) = GL(dl_all_dirs); | ||
111 | |||
112 | /* Print scope information. */ | ||
113 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0)) | ||
114 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0)) | ||
115 | { | ||
116 | _dl_debug_printf ("\nInitial object scopes\n"); | ||
117 | |||
118 | Index: libc/elf/dl-lookup.c | ||
119 | =================================================================== | ||
120 | --- libc.orig/elf/dl-lookup.c 2012-08-17 12:39:53.000000000 -0700 | ||
121 | +++ libc/elf/dl-lookup.c 2013-01-09 11:49:02.635577870 -0800 | ||
122 | @@ -771,7 +771,7 @@ | ||
123 | { | ||
124 | if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) | ||
125 | && skip_map == NULL | ||
126 | - && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) | ||
127 | + && !(GLRO_dl_debug_mask & DL_DEBUG_UNUSED)) | ||
128 | { | ||
129 | /* We could find no value for a strong reference. */ | ||
130 | const char *reference_name = undef_map ? undef_map->l_name : ""; | ||
131 | Index: libc/elf/get-dynamic-info.h | ||
132 | =================================================================== | ||
133 | --- libc.orig/elf/get-dynamic-info.h 2012-12-02 13:11:45.000000000 -0800 | ||
134 | +++ libc/elf/get-dynamic-info.h 2013-01-09 12:53:51.015657653 -0800 | ||
135 | @@ -157,7 +157,7 @@ | ||
136 | them. Therefore to avoid breaking existing applications the | ||
137 | best we can do is add a warning during debugging with the | ||
138 | intent of notifying the user of the problem. */ | ||
139 | - if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0) | ||
140 | + if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0) | ||
141 | && l->l_flags_1 & ~DT_1_SUPPORTED_MASK) | ||
142 | _dl_debug_printf ("\nWARNING: Unsupported flag value(s) of 0x%x in DT_FLAGS_1.\n", | ||
143 | l->l_flags_1 & ~DT_1_SUPPORTED_MASK); | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/IO-acquire-lock-fix.patch b/meta/recipes-core/eglibc/eglibc-2.18/IO-acquire-lock-fix.patch new file mode 100644 index 0000000000..cf5803585c --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/IO-acquire-lock-fix.patch | |||
@@ -0,0 +1,17 @@ | |||
1 | import http://sourceware.org/ml/libc-ports/2007-12/msg00000.html | ||
2 | |||
3 | Upstream-Status: Pending | ||
4 | |||
5 | Index: libc/bits/stdio-lock.h | ||
6 | =================================================================== | ||
7 | --- libc.orig/bits/stdio-lock.h 2009-10-28 14:34:19.000000000 -0700 | ||
8 | +++ libc/bits/stdio-lock.h 2009-10-28 14:34:54.000000000 -0700 | ||
9 | @@ -50,6 +50,8 @@ __libc_lock_define_recursive (typedef, _ | ||
10 | _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \ | ||
11 | _IO_flockfile (_fp) | ||
12 | |||
13 | +# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp) | ||
14 | + | ||
15 | # define _IO_release_lock(_fp) \ | ||
16 | _IO_funlockfile (_fp); \ | ||
17 | _IO_cleanup_region_end (0) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/add_resource_h_to_wait_h.patch b/meta/recipes-core/eglibc/eglibc-2.18/add_resource_h_to_wait_h.patch new file mode 100644 index 0000000000..f5023c08d4 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/add_resource_h_to_wait_h.patch | |||
@@ -0,0 +1,20 @@ | |||
1 | The older versions of perf still require sys/resource.h to be | ||
2 | present in this header, the newer version of perf in 3.2 and | ||
3 | beyond directly include sys/resource.h | ||
4 | |||
5 | Upstream-Status: Inapproriate [older kernel/perf specific] | ||
6 | |||
7 | Signed-off-by: Saul Wold <sgw@linux.intel.com> | ||
8 | |||
9 | Index: libc/posix/sys/wait.h | ||
10 | =================================================================== | ||
11 | --- libc.orig/posix/sys/wait.h | ||
12 | +++ libc/posix/sys/wait.h | ||
13 | @@ -28,6 +28,7 @@ | ||
14 | __BEGIN_DECLS | ||
15 | |||
16 | #include <signal.h> | ||
17 | +#include <sys/resource.h> | ||
18 | |||
19 | /* These macros could also be defined in <stdlib.h>. */ | ||
20 | #if !defined _STDLIB_H || (!defined __USE_XOPEN && !defined __USE_XOPEN2K8) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/eglibc-svn-arm-lowlevellock-include-tls.patch b/meta/recipes-core/eglibc/eglibc-2.18/eglibc-svn-arm-lowlevellock-include-tls.patch new file mode 100644 index 0000000000..4313aa5197 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/eglibc-svn-arm-lowlevellock-include-tls.patch | |||
@@ -0,0 +1,21 @@ | |||
1 | In file included from ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c:21: | ||
2 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c: In function '__lll_lock_wait_private': | ||
3 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: warning: implicit declaration of function 'THREAD_GETMEM' | ||
4 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'THREAD_SELF' undeclared (first use in this function) | ||
5 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: (Each undeclared identifier is reported only once | ||
6 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: for each function it appears in.) | ||
7 | ../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'header' undeclared (first use in this function) | ||
8 | make[4]: *** [/var/tmp/portage/sys-libs/glibc-2.7-r1/work/build-default-armv4l-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os] Error 1 | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | --- libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig | ||
13 | +++ libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h | ||
14 | @@ -25,6 +25,7 @@ | ||
15 | #include <atomic.h> | ||
16 | #include <sysdep.h> | ||
17 | #include <kernel-features.h> | ||
18 | +#include <tls.h> | ||
19 | |||
20 | #define FUTEX_WAIT 0 | ||
21 | #define FUTEX_WAKE 1 | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/eglibc_fix_findidx_parameters.patch b/meta/recipes-core/eglibc/eglibc-2.18/eglibc_fix_findidx_parameters.patch new file mode 100644 index 0000000000..bbf4605505 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/eglibc_fix_findidx_parameters.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | Upstream-Status: backport | ||
2 | |||
3 | Imported patch from: http://www.eglibc.org/archives/patches/msg01124.html | ||
4 | |||
5 | Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> | ||
6 | 2012/05/09 | ||
7 | |||
8 | Index: libc/posix/xregex.c | ||
9 | =================================================================== | ||
10 | --- libc.orig/posix/xregex.c | ||
11 | +++ libc/posix/xregex.c | ||
12 | @@ -2943,7 +2943,7 @@ PREFIX(regex_compile) (const char *ARG_P | ||
13 | _NL_CURRENT (LC_COLLATE, | ||
14 | _NL_COLLATE_INDIRECTWC); | ||
15 | |||
16 | - idx = findidx ((const wint_t**)&cp); | ||
17 | + idx = findidx ((const wint_t**)&cp, -1); | ||
18 | if (idx == 0 || cp < (wint_t*) str + c1) | ||
19 | /* This is no valid character. */ | ||
20 | FREE_STACK_RETURN (REG_ECOLLATE); | ||
21 | @@ -3392,7 +3392,7 @@ PREFIX(regex_compile) (const char *ARG_P | ||
22 | indirect = (const int32_t *) | ||
23 | _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); | ||
24 | |||
25 | - idx = findidx (&cp); | ||
26 | + idx = findidx (&cp, -1); | ||
27 | if (idx == 0 || cp < str + c1) | ||
28 | /* This is no valid character. */ | ||
29 | FREE_STACK_RETURN (REG_ECOLLATE); | ||
30 | @@ -6363,7 +6363,7 @@ byte_re_match_2_internal (struct re_patt | ||
31 | } | ||
32 | str_buf[i] = TRANSLATE(*(d+i)); | ||
33 | str_buf[i+1] = '\0'; /* sentinel */ | ||
34 | - idx2 = findidx ((const wint_t**)&cp); | ||
35 | + idx2 = findidx ((const wint_t**)&cp, -1); | ||
36 | } | ||
37 | |||
38 | /* Update d, however d will be incremented at | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/etc/ld.so.conf b/meta/recipes-core/eglibc/eglibc-2.18/etc/ld.so.conf new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/etc/ld.so.conf | |||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/fileops-without-wchar-io.patch b/meta/recipes-core/eglibc/eglibc-2.18/fileops-without-wchar-io.patch new file mode 100644 index 0000000000..2ca0bca248 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/fileops-without-wchar-io.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | Fix error like | ||
2 | |||
3 | /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/work/mips64-oe-linux/eglibc-2.16-r2+svnr19383/build-mips64-oe-linux/libc_pic.os: In function `_IO_new_file_fopen': | ||
4 | /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/work/mips64-oe-linux/eglibc-2.16-r2+svnr19383/eglibc-2_16/libc/libio/fileops.c:431: undefined reference to `_IO_file_close_it_internal' | ||
5 | collect2: error: ld returned 1 exit status | ||
6 | |||
7 | |||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | Upstream-Status: Pending | ||
10 | Index: libc/libio/fileops.c | ||
11 | =================================================================== | ||
12 | --- libc.orig/libio/fileops.c 2012-07-04 18:25:47.000000000 -0700 | ||
13 | +++ libc/libio/fileops.c 2012-07-24 00:21:17.220322557 -0700 | ||
14 | @@ -428,7 +428,7 @@ | ||
15 | result->_mode = 1; | ||
16 | #else | ||
17 | /* Treat this as if we couldn't find the given character set. */ | ||
18 | - (void) INTUSE(_IO_file_close_it) (fp); | ||
19 | + (void) _IO_file_close_it (fp); | ||
20 | __set_errno (EINVAL); | ||
21 | return NULL; | ||
22 | #endif | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/fix-tibetian-locales.patch b/meta/recipes-core/eglibc/eglibc-2.18/fix-tibetian-locales.patch new file mode 100644 index 0000000000..25c43a9fe6 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/fix-tibetian-locales.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | cross localedef fails to compile these locales because name_fmt field is empty | ||
2 | It is not acceptable for cross localedef and it errors out | ||
3 | |||
4 | LC_NAME: field `name_fmt' not defined | ||
5 | |||
6 | We therefore give a dummy string to the format, the real fix needs some native | ||
7 | tibetian person to define proper name_fmt | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
12 | |||
13 | Index: libc/localedata/locales/bo_CN | ||
14 | =================================================================== | ||
15 | --- libc.orig/localedata/locales/bo_CN 2012-11-17 09:50:14.000000000 -0800 | ||
16 | +++ libc/localedata/locales/bo_CN 2013-01-04 08:55:15.593612288 -0800 | ||
17 | @@ -145,7 +145,7 @@ | ||
18 | LC_NAME | ||
19 | % FIXME | ||
20 | |||
21 | -name_fmt "" | ||
22 | +name_fmt "FIXME" | ||
23 | % name_gen "FIXME" | ||
24 | % name_miss "FIXME" | ||
25 | % name_mr "FIXME" | ||
26 | Index: libc/localedata/locales/bo_IN | ||
27 | =================================================================== | ||
28 | --- libc.orig/localedata/locales/bo_IN 2012-11-17 09:50:14.000000000 -0800 | ||
29 | +++ libc/localedata/locales/bo_IN 2013-01-04 08:54:12.345609028 -0800 | ||
30 | @@ -70,7 +70,7 @@ | ||
31 | |||
32 | LC_NAME | ||
33 | % FIXME | ||
34 | -name_fmt "" | ||
35 | +name_fmt "FIXME" | ||
36 | % name_gen "FIXME" | ||
37 | % name_miss "FIXME" | ||
38 | % name_mr "FIXME" | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/fix_for_centos_5.8.patch b/meta/recipes-core/eglibc/eglibc-2.18/fix_for_centos_5.8.patch new file mode 100644 index 0000000000..7618c99534 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/fix_for_centos_5.8.patch | |||
@@ -0,0 +1,18 @@ | |||
1 | Upstream-Status: Inappropriate [other] | ||
2 | |||
3 | This is a hack to fix building the locale bits on an older | ||
4 | CentOs 5.X machine | ||
5 | |||
6 | Index: eglibc-2_16/libc/locale/programs/config.h | ||
7 | =================================================================== | ||
8 | --- eglibc-2_16.orig/libc/locale/programs/config.h | ||
9 | +++ eglibc-2_16/libc/locale/programs/config.h | ||
10 | @@ -19,6 +19,8 @@ | ||
11 | #ifndef _LD_CONFIG_H | ||
12 | #define _LD_CONFIG_H 1 | ||
13 | |||
14 | +#define DUMMY_LOCALE_T | ||
15 | + | ||
16 | /* Use the internal textdomain used for libc messages. */ | ||
17 | #define PACKAGE _libc_intl_domainname | ||
18 | #ifndef VERSION | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/fsl-ppc-no-fsqrt.patch b/meta/recipes-core/eglibc/eglibc-2.18/fsl-ppc-no-fsqrt.patch new file mode 100644 index 0000000000..511ee9d19e --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/fsl-ppc-no-fsqrt.patch | |||
@@ -0,0 +1,100 @@ | |||
1 | Create e5500 specific math_private.h and let it include when compiling for e5500/64bit core | ||
2 | We prefefine __CPU_HAS_FSQRT to 0 and then in general ppc64 math_private.h we check if its | ||
3 | already defined before redefining it. This way we can ensure that on e5500 builds it wont | ||
4 | emit fsqrt intructions | ||
5 | |||
6 | -Khem | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | |||
10 | Index: libc/sysdeps/powerpc/fpu/math_private.h | ||
11 | =================================================================== | ||
12 | --- libc.orig/sysdeps/powerpc/fpu/math_private.h | ||
13 | +++ libc/sysdeps/powerpc/fpu/math_private.h | ||
14 | @@ -25,10 +25,12 @@ | ||
15 | #include <dl-procinfo.h> | ||
16 | #include_next <math_private.h> | ||
17 | |||
18 | -# if __WORDSIZE == 64 || defined _ARCH_PWR4 | ||
19 | -# define __CPU_HAS_FSQRT 1 | ||
20 | -# else | ||
21 | -# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0) | ||
22 | +# ifndef __CPU_HAS_FSQRT | ||
23 | +# if __WORDSIZE == 64 || defined _ARCH_PWR4 | ||
24 | +# define __CPU_HAS_FSQRT 1 | ||
25 | +# else | ||
26 | +# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0) | ||
27 | +# endif | ||
28 | # endif | ||
29 | |||
30 | extern double __slow_ieee754_sqrt (double); | ||
31 | Index: libc/ports/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h | ||
32 | =================================================================== | ||
33 | --- /dev/null | ||
34 | +++ libc/ports/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h | ||
35 | @@ -0,0 +1,9 @@ | ||
36 | +#ifndef _E5500_MATH_PRIVATE_H_ | ||
37 | +#define _E5500_MATH_PRIVATE_H_ 1 | ||
38 | +/* E5500 core FPU does not implement | ||
39 | + fsqrt */ | ||
40 | + | ||
41 | +#define __CPU_HAS_FSQRT 0 | ||
42 | +#include_next <math_private.h> | ||
43 | + | ||
44 | +#endif /* _E5500_MATH_PRIVATE_H_ */ | ||
45 | Index: libc/ports/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h | ||
46 | =================================================================== | ||
47 | --- /dev/null | ||
48 | +++ libc/ports/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h | ||
49 | @@ -0,0 +1,9 @@ | ||
50 | +#ifndef _E6500_MATH_PRIVATE_H_ | ||
51 | +#define _E6500_MATH_PRIVATE_H_ 1 | ||
52 | +/* E6500 core FPU does not implement | ||
53 | + fsqrt */ | ||
54 | + | ||
55 | +#define __CPU_HAS_FSQRT 0 | ||
56 | +#include_next <math_private.h> | ||
57 | + | ||
58 | +#endif /* _E6500_MATH_PRIVATE_H_ */ | ||
59 | Index: libc/ports/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h | ||
60 | =================================================================== | ||
61 | --- /dev/null | ||
62 | +++ libc/ports/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h | ||
63 | @@ -0,0 +1,9 @@ | ||
64 | +#ifndef _E500MC_MATH_PRIVATE_H_ | ||
65 | +#define _E500MC_MATH_PRIVATE_H_ 1 | ||
66 | +/* E500MC core FPU does not implement | ||
67 | + fsqrt */ | ||
68 | + | ||
69 | +#define __CPU_HAS_FSQRT 0 | ||
70 | +#include_next <math_private.h> | ||
71 | + | ||
72 | +#endif /* _E500MC_MATH_PRIVATE_H_ */ | ||
73 | Index: libc/ports/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h | ||
74 | =================================================================== | ||
75 | --- /dev/null | ||
76 | +++ libc/ports/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h | ||
77 | @@ -0,0 +1,9 @@ | ||
78 | +#ifndef _E5500_MATH_PRIVATE_H_ | ||
79 | +#define _E5500_MATH_PRIVATE_H_ 1 | ||
80 | +/* E5500 core FPU does not implement | ||
81 | + fsqrt */ | ||
82 | + | ||
83 | +#define __CPU_HAS_FSQRT 0 | ||
84 | +#include_next <math_private.h> | ||
85 | + | ||
86 | +#endif /* _E5500_MATH_PRIVATE_H_ */ | ||
87 | Index: libc/ports/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h | ||
88 | =================================================================== | ||
89 | --- /dev/null | ||
90 | +++ libc/ports/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h | ||
91 | @@ -0,0 +1,9 @@ | ||
92 | +#ifndef _E6500_MATH_PRIVATE_H_ | ||
93 | +#define _E6500_MATH_PRIVATE_H_ 1 | ||
94 | +/* E6500 core FPU does not implement | ||
95 | + fsqrt */ | ||
96 | + | ||
97 | +#define __CPU_HAS_FSQRT 0 | ||
98 | +#include_next <math_private.h> | ||
99 | + | ||
100 | +#endif /* _E6500_MATH_PRIVATE_H_ */ | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/generate-supported.mk b/meta/recipes-core/eglibc/eglibc-2.18/generate-supported.mk new file mode 100644 index 0000000000..d2a28c2dc6 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/generate-supported.mk | |||
@@ -0,0 +1,11 @@ | |||
1 | #!/usr/bin/make | ||
2 | |||
3 | include $(IN) | ||
4 | |||
5 | all: | ||
6 | rm -f $(OUT) | ||
7 | touch $(OUT) | ||
8 | for locale in $(SUPPORTED-LOCALES); do \ | ||
9 | [ $$locale = true ] && continue; \ | ||
10 | echo $$locale | sed 's,/, ,' >> $(OUT); \ | ||
11 | done | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/glibc.fix_sqrt2.patch b/meta/recipes-core/eglibc/eglibc-2.18/glibc.fix_sqrt2.patch new file mode 100644 index 0000000000..a66972998c --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/glibc.fix_sqrt2.patch | |||
@@ -0,0 +1,1491 @@ | |||
1 | Signed-of-by: Edmar Wienskoski <edmar@freescale.com> | ||
2 | Upstream-Status: Pending | ||
3 | |||
4 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
5 | --- libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
6 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2012-06-14 14:51:50.452001745 -0500 | ||
7 | @@ -0,0 +1,134 @@ | ||
8 | +/* Double-precision floating point square root. | ||
9 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
10 | + This file is part of the GNU C Library. | ||
11 | + | ||
12 | + The GNU C Library is free software; you can redistribute it and/or | ||
13 | + modify it under the terms of the GNU Lesser General Public | ||
14 | + License as published by the Free Software Foundation; either | ||
15 | + version 2.1 of the License, or (at your option) any later version. | ||
16 | + | ||
17 | + The GNU C Library is distributed in the hope that it will be useful, | ||
18 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
19 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
20 | + Lesser General Public License for more details. | ||
21 | + | ||
22 | + You should have received a copy of the GNU Lesser General Public | ||
23 | + License along with the GNU C Library; if not, write to the Free | ||
24 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
25 | + 02111-1307 USA. */ | ||
26 | + | ||
27 | +#include <math.h> | ||
28 | +#include <math_private.h> | ||
29 | +#include <fenv_libc.h> | ||
30 | +#include <inttypes.h> | ||
31 | + | ||
32 | +#include <sysdep.h> | ||
33 | +#include <ldsodefs.h> | ||
34 | + | ||
35 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
36 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
37 | +static const float two108 = 3.245185536584267269e+32; | ||
38 | +static const float twom54 = 5.551115123125782702e-17; | ||
39 | +static const float half = 0.5; | ||
40 | + | ||
41 | +/* The method is based on the descriptions in: | ||
42 | + | ||
43 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
44 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
45 | + | ||
46 | + We find the actual square root and half of its reciprocal | ||
47 | + simultaneously. */ | ||
48 | + | ||
49 | +#ifdef __STDC__ | ||
50 | +double | ||
51 | +__ieee754_sqrt (double b) | ||
52 | +#else | ||
53 | +double | ||
54 | +__ieee754_sqrt (b) | ||
55 | + double b; | ||
56 | +#endif | ||
57 | +{ | ||
58 | + if (__builtin_expect (b > 0, 1)) | ||
59 | + { | ||
60 | + double y, g, h, d, r; | ||
61 | + ieee_double_shape_type u; | ||
62 | + | ||
63 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
64 | + { | ||
65 | + fenv_t fe; | ||
66 | + | ||
67 | + fe = fegetenv_register (); | ||
68 | + | ||
69 | + u.value = b; | ||
70 | + | ||
71 | + relax_fenv_state (); | ||
72 | + | ||
73 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
74 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
75 | + | ||
76 | + /* Following Muller et al, page 168, equation 5.20. | ||
77 | + | ||
78 | + h goes to 1/(2*sqrt(b)) | ||
79 | + g goes to sqrt(b). | ||
80 | + | ||
81 | + We need three iterations to get within 1ulp. */ | ||
82 | + | ||
83 | + /* Indicate that these can be performed prior to the branch. GCC | ||
84 | + insists on sinking them below the branch, however; it seems like | ||
85 | + they'd be better before the branch so that we can cover any latency | ||
86 | + from storing the argument and loading its high word. Oh well. */ | ||
87 | + | ||
88 | + g = b * y; | ||
89 | + h = 0.5 * y; | ||
90 | + | ||
91 | + /* Handle small numbers by scaling. */ | ||
92 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
93 | + return __ieee754_sqrt (b * two108) * twom54; | ||
94 | + | ||
95 | +#define FMADD(a_, c_, b_) \ | ||
96 | + ({ double __r; \ | ||
97 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
98 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
99 | + __r;}) | ||
100 | +#define FNMSUB(a_, c_, b_) \ | ||
101 | + ({ double __r; \ | ||
102 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
103 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
104 | + __r;}) | ||
105 | + | ||
106 | + r = FNMSUB (g, h, half); | ||
107 | + g = FMADD (g, r, g); | ||
108 | + h = FMADD (h, r, h); | ||
109 | + | ||
110 | + r = FNMSUB (g, h, half); | ||
111 | + g = FMADD (g, r, g); | ||
112 | + h = FMADD (h, r, h); | ||
113 | + | ||
114 | + r = FNMSUB (g, h, half); | ||
115 | + g = FMADD (g, r, g); | ||
116 | + h = FMADD (h, r, h); | ||
117 | + | ||
118 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
119 | + | ||
120 | + /* Final refinement. */ | ||
121 | + d = FNMSUB (g, g, b); | ||
122 | + | ||
123 | + fesetenv_register (fe); | ||
124 | + return FMADD (d, h, g); | ||
125 | + } | ||
126 | + } | ||
127 | + else if (b < 0) | ||
128 | + { | ||
129 | + /* For some reason, some PowerPC32 processors don't implement | ||
130 | + FE_INVALID_SQRT. */ | ||
131 | +#ifdef FE_INVALID_SQRT | ||
132 | + feraiseexcept (FE_INVALID_SQRT); | ||
133 | + | ||
134 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
135 | + if ((u.l[1] & FE_INVALID) == 0) | ||
136 | +#endif | ||
137 | + feraiseexcept (FE_INVALID); | ||
138 | + b = a_nan.value; | ||
139 | + } | ||
140 | + return f_wash (b); | ||
141 | +} | ||
142 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
143 | --- libc-orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
144 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2012-06-14 14:51:50.452001745 -0500 | ||
145 | @@ -0,0 +1,101 @@ | ||
146 | +/* Single-precision floating point square root. | ||
147 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
148 | + This file is part of the GNU C Library. | ||
149 | + | ||
150 | + The GNU C Library is free software; you can redistribute it and/or | ||
151 | + modify it under the terms of the GNU Lesser General Public | ||
152 | + License as published by the Free Software Foundation; either | ||
153 | + version 2.1 of the License, or (at your option) any later version. | ||
154 | + | ||
155 | + The GNU C Library is distributed in the hope that it will be useful, | ||
156 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
157 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
158 | + Lesser General Public License for more details. | ||
159 | + | ||
160 | + You should have received a copy of the GNU Lesser General Public | ||
161 | + License along with the GNU C Library; if not, write to the Free | ||
162 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
163 | + 02111-1307 USA. */ | ||
164 | + | ||
165 | +#include <math.h> | ||
166 | +#include <math_private.h> | ||
167 | +#include <fenv_libc.h> | ||
168 | +#include <inttypes.h> | ||
169 | + | ||
170 | +#include <sysdep.h> | ||
171 | +#include <ldsodefs.h> | ||
172 | + | ||
173 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
174 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
175 | +static const float threehalf = 1.5; | ||
176 | + | ||
177 | +/* The method is based on the descriptions in: | ||
178 | + | ||
179 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
180 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
181 | + | ||
182 | + We find the reciprocal square root and use that to compute the actual | ||
183 | + square root. */ | ||
184 | + | ||
185 | +#ifdef __STDC__ | ||
186 | +float | ||
187 | +__ieee754_sqrtf (float b) | ||
188 | +#else | ||
189 | +float | ||
190 | +__ieee754_sqrtf (b) | ||
191 | + float b; | ||
192 | +#endif | ||
193 | +{ | ||
194 | + if (__builtin_expect (b > 0, 1)) | ||
195 | + { | ||
196 | +#define FMSUB(a_, c_, b_) \ | ||
197 | + ({ double __r; \ | ||
198 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
199 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
200 | + __r;}) | ||
201 | +#define FNMSUB(a_, c_, b_) \ | ||
202 | + ({ double __r; \ | ||
203 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
204 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
205 | + __r;}) | ||
206 | + | ||
207 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
208 | + { | ||
209 | + double y, x; | ||
210 | + fenv_t fe; | ||
211 | + | ||
212 | + fe = fegetenv_register (); | ||
213 | + | ||
214 | + relax_fenv_state (); | ||
215 | + | ||
216 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
217 | + y = FMSUB (threehalf, b, b); | ||
218 | + | ||
219 | + /* Initial estimate. */ | ||
220 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
221 | + | ||
222 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
223 | + x = x * FNMSUB (y, x * x, threehalf); | ||
224 | + x = x * FNMSUB (y, x * x, threehalf); | ||
225 | + x = x * FNMSUB (y, x * x, threehalf); | ||
226 | + | ||
227 | + /* All done. */ | ||
228 | + fesetenv_register (fe); | ||
229 | + return x * b; | ||
230 | + } | ||
231 | + } | ||
232 | + else if (b < 0) | ||
233 | + { | ||
234 | + /* For some reason, some PowerPC32 processors don't implement | ||
235 | + FE_INVALID_SQRT. */ | ||
236 | +#ifdef FE_INVALID_SQRT | ||
237 | + feraiseexcept (FE_INVALID_SQRT); | ||
238 | + | ||
239 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
240 | + if ((u.l[1] & FE_INVALID) == 0) | ||
241 | +#endif | ||
242 | + feraiseexcept (FE_INVALID); | ||
243 | + b = a_nan.value; | ||
244 | + } | ||
245 | + return f_washf (b); | ||
246 | +} | ||
247 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
248 | --- libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
249 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c 2012-06-14 14:55:14.749001061 -0500 | ||
250 | @@ -0,0 +1,134 @@ | ||
251 | +/* Double-precision floating point square root. | ||
252 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
253 | + This file is part of the GNU C Library. | ||
254 | + | ||
255 | + The GNU C Library is free software; you can redistribute it and/or | ||
256 | + modify it under the terms of the GNU Lesser General Public | ||
257 | + License as published by the Free Software Foundation; either | ||
258 | + version 2.1 of the License, or (at your option) any later version. | ||
259 | + | ||
260 | + The GNU C Library is distributed in the hope that it will be useful, | ||
261 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
262 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
263 | + Lesser General Public License for more details. | ||
264 | + | ||
265 | + You should have received a copy of the GNU Lesser General Public | ||
266 | + License along with the GNU C Library; if not, write to the Free | ||
267 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
268 | + 02111-1307 USA. */ | ||
269 | + | ||
270 | +#include <math.h> | ||
271 | +#include <math_private.h> | ||
272 | +#include <fenv_libc.h> | ||
273 | +#include <inttypes.h> | ||
274 | + | ||
275 | +#include <sysdep.h> | ||
276 | +#include <ldsodefs.h> | ||
277 | + | ||
278 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
279 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
280 | +static const float two108 = 3.245185536584267269e+32; | ||
281 | +static const float twom54 = 5.551115123125782702e-17; | ||
282 | +static const float half = 0.5; | ||
283 | + | ||
284 | +/* The method is based on the descriptions in: | ||
285 | + | ||
286 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
287 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
288 | + | ||
289 | + We find the actual square root and half of its reciprocal | ||
290 | + simultaneously. */ | ||
291 | + | ||
292 | +#ifdef __STDC__ | ||
293 | +double | ||
294 | +__ieee754_sqrt (double b) | ||
295 | +#else | ||
296 | +double | ||
297 | +__ieee754_sqrt (b) | ||
298 | + double b; | ||
299 | +#endif | ||
300 | +{ | ||
301 | + if (__builtin_expect (b > 0, 1)) | ||
302 | + { | ||
303 | + double y, g, h, d, r; | ||
304 | + ieee_double_shape_type u; | ||
305 | + | ||
306 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
307 | + { | ||
308 | + fenv_t fe; | ||
309 | + | ||
310 | + fe = fegetenv_register (); | ||
311 | + | ||
312 | + u.value = b; | ||
313 | + | ||
314 | + relax_fenv_state (); | ||
315 | + | ||
316 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
317 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
318 | + | ||
319 | + /* Following Muller et al, page 168, equation 5.20. | ||
320 | + | ||
321 | + h goes to 1/(2*sqrt(b)) | ||
322 | + g goes to sqrt(b). | ||
323 | + | ||
324 | + We need three iterations to get within 1ulp. */ | ||
325 | + | ||
326 | + /* Indicate that these can be performed prior to the branch. GCC | ||
327 | + insists on sinking them below the branch, however; it seems like | ||
328 | + they'd be better before the branch so that we can cover any latency | ||
329 | + from storing the argument and loading its high word. Oh well. */ | ||
330 | + | ||
331 | + g = b * y; | ||
332 | + h = 0.5 * y; | ||
333 | + | ||
334 | + /* Handle small numbers by scaling. */ | ||
335 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
336 | + return __ieee754_sqrt (b * two108) * twom54; | ||
337 | + | ||
338 | +#define FMADD(a_, c_, b_) \ | ||
339 | + ({ double __r; \ | ||
340 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
341 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
342 | + __r;}) | ||
343 | +#define FNMSUB(a_, c_, b_) \ | ||
344 | + ({ double __r; \ | ||
345 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
346 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
347 | + __r;}) | ||
348 | + | ||
349 | + r = FNMSUB (g, h, half); | ||
350 | + g = FMADD (g, r, g); | ||
351 | + h = FMADD (h, r, h); | ||
352 | + | ||
353 | + r = FNMSUB (g, h, half); | ||
354 | + g = FMADD (g, r, g); | ||
355 | + h = FMADD (h, r, h); | ||
356 | + | ||
357 | + r = FNMSUB (g, h, half); | ||
358 | + g = FMADD (g, r, g); | ||
359 | + h = FMADD (h, r, h); | ||
360 | + | ||
361 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
362 | + | ||
363 | + /* Final refinement. */ | ||
364 | + d = FNMSUB (g, g, b); | ||
365 | + | ||
366 | + fesetenv_register (fe); | ||
367 | + return FMADD (d, h, g); | ||
368 | + } | ||
369 | + } | ||
370 | + else if (b < 0) | ||
371 | + { | ||
372 | + /* For some reason, some PowerPC32 processors don't implement | ||
373 | + FE_INVALID_SQRT. */ | ||
374 | +#ifdef FE_INVALID_SQRT | ||
375 | + feraiseexcept (FE_INVALID_SQRT); | ||
376 | + | ||
377 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
378 | + if ((u.l[1] & FE_INVALID) == 0) | ||
379 | +#endif | ||
380 | + feraiseexcept (FE_INVALID); | ||
381 | + b = a_nan.value; | ||
382 | + } | ||
383 | + return f_wash (b); | ||
384 | +} | ||
385 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
386 | --- libc-orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
387 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c 2012-06-14 14:55:14.749001061 -0500 | ||
388 | @@ -0,0 +1,101 @@ | ||
389 | +/* Single-precision floating point square root. | ||
390 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
391 | + This file is part of the GNU C Library. | ||
392 | + | ||
393 | + The GNU C Library is free software; you can redistribute it and/or | ||
394 | + modify it under the terms of the GNU Lesser General Public | ||
395 | + License as published by the Free Software Foundation; either | ||
396 | + version 2.1 of the License, or (at your option) any later version. | ||
397 | + | ||
398 | + The GNU C Library is distributed in the hope that it will be useful, | ||
399 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
400 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
401 | + Lesser General Public License for more details. | ||
402 | + | ||
403 | + You should have received a copy of the GNU Lesser General Public | ||
404 | + License along with the GNU C Library; if not, write to the Free | ||
405 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
406 | + 02111-1307 USA. */ | ||
407 | + | ||
408 | +#include <math.h> | ||
409 | +#include <math_private.h> | ||
410 | +#include <fenv_libc.h> | ||
411 | +#include <inttypes.h> | ||
412 | + | ||
413 | +#include <sysdep.h> | ||
414 | +#include <ldsodefs.h> | ||
415 | + | ||
416 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
417 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
418 | +static const float threehalf = 1.5; | ||
419 | + | ||
420 | +/* The method is based on the descriptions in: | ||
421 | + | ||
422 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
423 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
424 | + | ||
425 | + We find the reciprocal square root and use that to compute the actual | ||
426 | + square root. */ | ||
427 | + | ||
428 | +#ifdef __STDC__ | ||
429 | +float | ||
430 | +__ieee754_sqrtf (float b) | ||
431 | +#else | ||
432 | +float | ||
433 | +__ieee754_sqrtf (b) | ||
434 | + float b; | ||
435 | +#endif | ||
436 | +{ | ||
437 | + if (__builtin_expect (b > 0, 1)) | ||
438 | + { | ||
439 | +#define FMSUB(a_, c_, b_) \ | ||
440 | + ({ double __r; \ | ||
441 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
442 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
443 | + __r;}) | ||
444 | +#define FNMSUB(a_, c_, b_) \ | ||
445 | + ({ double __r; \ | ||
446 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
447 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
448 | + __r;}) | ||
449 | + | ||
450 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
451 | + { | ||
452 | + double y, x; | ||
453 | + fenv_t fe; | ||
454 | + | ||
455 | + fe = fegetenv_register (); | ||
456 | + | ||
457 | + relax_fenv_state (); | ||
458 | + | ||
459 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
460 | + y = FMSUB (threehalf, b, b); | ||
461 | + | ||
462 | + /* Initial estimate. */ | ||
463 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
464 | + | ||
465 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
466 | + x = x * FNMSUB (y, x * x, threehalf); | ||
467 | + x = x * FNMSUB (y, x * x, threehalf); | ||
468 | + x = x * FNMSUB (y, x * x, threehalf); | ||
469 | + | ||
470 | + /* All done. */ | ||
471 | + fesetenv_register (fe); | ||
472 | + return x * b; | ||
473 | + } | ||
474 | + } | ||
475 | + else if (b < 0) | ||
476 | + { | ||
477 | + /* For some reason, some PowerPC32 processors don't implement | ||
478 | + FE_INVALID_SQRT. */ | ||
479 | +#ifdef FE_INVALID_SQRT | ||
480 | + feraiseexcept (FE_INVALID_SQRT); | ||
481 | + | ||
482 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
483 | + if ((u.l[1] & FE_INVALID) == 0) | ||
484 | +#endif | ||
485 | + feraiseexcept (FE_INVALID); | ||
486 | + b = a_nan.value; | ||
487 | + } | ||
488 | + return f_washf (b); | ||
489 | +} | ||
490 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
491 | --- libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
492 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c 2012-06-14 14:55:21.812002270 -0500 | ||
493 | @@ -0,0 +1,134 @@ | ||
494 | +/* Double-precision floating point square root. | ||
495 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
496 | + This file is part of the GNU C Library. | ||
497 | + | ||
498 | + The GNU C Library is free software; you can redistribute it and/or | ||
499 | + modify it under the terms of the GNU Lesser General Public | ||
500 | + License as published by the Free Software Foundation; either | ||
501 | + version 2.1 of the License, or (at your option) any later version. | ||
502 | + | ||
503 | + The GNU C Library is distributed in the hope that it will be useful, | ||
504 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
505 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
506 | + Lesser General Public License for more details. | ||
507 | + | ||
508 | + You should have received a copy of the GNU Lesser General Public | ||
509 | + License along with the GNU C Library; if not, write to the Free | ||
510 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
511 | + 02111-1307 USA. */ | ||
512 | + | ||
513 | +#include <math.h> | ||
514 | +#include <math_private.h> | ||
515 | +#include <fenv_libc.h> | ||
516 | +#include <inttypes.h> | ||
517 | + | ||
518 | +#include <sysdep.h> | ||
519 | +#include <ldsodefs.h> | ||
520 | + | ||
521 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
522 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
523 | +static const float two108 = 3.245185536584267269e+32; | ||
524 | +static const float twom54 = 5.551115123125782702e-17; | ||
525 | +static const float half = 0.5; | ||
526 | + | ||
527 | +/* The method is based on the descriptions in: | ||
528 | + | ||
529 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
530 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
531 | + | ||
532 | + We find the actual square root and half of its reciprocal | ||
533 | + simultaneously. */ | ||
534 | + | ||
535 | +#ifdef __STDC__ | ||
536 | +double | ||
537 | +__ieee754_sqrt (double b) | ||
538 | +#else | ||
539 | +double | ||
540 | +__ieee754_sqrt (b) | ||
541 | + double b; | ||
542 | +#endif | ||
543 | +{ | ||
544 | + if (__builtin_expect (b > 0, 1)) | ||
545 | + { | ||
546 | + double y, g, h, d, r; | ||
547 | + ieee_double_shape_type u; | ||
548 | + | ||
549 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
550 | + { | ||
551 | + fenv_t fe; | ||
552 | + | ||
553 | + fe = fegetenv_register (); | ||
554 | + | ||
555 | + u.value = b; | ||
556 | + | ||
557 | + relax_fenv_state (); | ||
558 | + | ||
559 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
560 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
561 | + | ||
562 | + /* Following Muller et al, page 168, equation 5.20. | ||
563 | + | ||
564 | + h goes to 1/(2*sqrt(b)) | ||
565 | + g goes to sqrt(b). | ||
566 | + | ||
567 | + We need three iterations to get within 1ulp. */ | ||
568 | + | ||
569 | + /* Indicate that these can be performed prior to the branch. GCC | ||
570 | + insists on sinking them below the branch, however; it seems like | ||
571 | + they'd be better before the branch so that we can cover any latency | ||
572 | + from storing the argument and loading its high word. Oh well. */ | ||
573 | + | ||
574 | + g = b * y; | ||
575 | + h = 0.5 * y; | ||
576 | + | ||
577 | + /* Handle small numbers by scaling. */ | ||
578 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
579 | + return __ieee754_sqrt (b * two108) * twom54; | ||
580 | + | ||
581 | +#define FMADD(a_, c_, b_) \ | ||
582 | + ({ double __r; \ | ||
583 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
584 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
585 | + __r;}) | ||
586 | +#define FNMSUB(a_, c_, b_) \ | ||
587 | + ({ double __r; \ | ||
588 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
589 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
590 | + __r;}) | ||
591 | + | ||
592 | + r = FNMSUB (g, h, half); | ||
593 | + g = FMADD (g, r, g); | ||
594 | + h = FMADD (h, r, h); | ||
595 | + | ||
596 | + r = FNMSUB (g, h, half); | ||
597 | + g = FMADD (g, r, g); | ||
598 | + h = FMADD (h, r, h); | ||
599 | + | ||
600 | + r = FNMSUB (g, h, half); | ||
601 | + g = FMADD (g, r, g); | ||
602 | + h = FMADD (h, r, h); | ||
603 | + | ||
604 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
605 | + | ||
606 | + /* Final refinement. */ | ||
607 | + d = FNMSUB (g, g, b); | ||
608 | + | ||
609 | + fesetenv_register (fe); | ||
610 | + return FMADD (d, h, g); | ||
611 | + } | ||
612 | + } | ||
613 | + else if (b < 0) | ||
614 | + { | ||
615 | + /* For some reason, some PowerPC32 processors don't implement | ||
616 | + FE_INVALID_SQRT. */ | ||
617 | +#ifdef FE_INVALID_SQRT | ||
618 | + feraiseexcept (FE_INVALID_SQRT); | ||
619 | + | ||
620 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
621 | + if ((u.l[1] & FE_INVALID) == 0) | ||
622 | +#endif | ||
623 | + feraiseexcept (FE_INVALID); | ||
624 | + b = a_nan.value; | ||
625 | + } | ||
626 | + return f_wash (b); | ||
627 | +} | ||
628 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
629 | --- libc-orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
630 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c 2012-06-14 14:55:21.812002270 -0500 | ||
631 | @@ -0,0 +1,101 @@ | ||
632 | +/* Single-precision floating point square root. | ||
633 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
634 | + This file is part of the GNU C Library. | ||
635 | + | ||
636 | + The GNU C Library is free software; you can redistribute it and/or | ||
637 | + modify it under the terms of the GNU Lesser General Public | ||
638 | + License as published by the Free Software Foundation; either | ||
639 | + version 2.1 of the License, or (at your option) any later version. | ||
640 | + | ||
641 | + The GNU C Library is distributed in the hope that it will be useful, | ||
642 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
643 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
644 | + Lesser General Public License for more details. | ||
645 | + | ||
646 | + You should have received a copy of the GNU Lesser General Public | ||
647 | + License along with the GNU C Library; if not, write to the Free | ||
648 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
649 | + 02111-1307 USA. */ | ||
650 | + | ||
651 | +#include <math.h> | ||
652 | +#include <math_private.h> | ||
653 | +#include <fenv_libc.h> | ||
654 | +#include <inttypes.h> | ||
655 | + | ||
656 | +#include <sysdep.h> | ||
657 | +#include <ldsodefs.h> | ||
658 | + | ||
659 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
660 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
661 | +static const float threehalf = 1.5; | ||
662 | + | ||
663 | +/* The method is based on the descriptions in: | ||
664 | + | ||
665 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
666 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
667 | + | ||
668 | + We find the reciprocal square root and use that to compute the actual | ||
669 | + square root. */ | ||
670 | + | ||
671 | +#ifdef __STDC__ | ||
672 | +float | ||
673 | +__ieee754_sqrtf (float b) | ||
674 | +#else | ||
675 | +float | ||
676 | +__ieee754_sqrtf (b) | ||
677 | + float b; | ||
678 | +#endif | ||
679 | +{ | ||
680 | + if (__builtin_expect (b > 0, 1)) | ||
681 | + { | ||
682 | +#define FMSUB(a_, c_, b_) \ | ||
683 | + ({ double __r; \ | ||
684 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
685 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
686 | + __r;}) | ||
687 | +#define FNMSUB(a_, c_, b_) \ | ||
688 | + ({ double __r; \ | ||
689 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
690 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
691 | + __r;}) | ||
692 | + | ||
693 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
694 | + { | ||
695 | + double y, x; | ||
696 | + fenv_t fe; | ||
697 | + | ||
698 | + fe = fegetenv_register (); | ||
699 | + | ||
700 | + relax_fenv_state (); | ||
701 | + | ||
702 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
703 | + y = FMSUB (threehalf, b, b); | ||
704 | + | ||
705 | + /* Initial estimate. */ | ||
706 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
707 | + | ||
708 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
709 | + x = x * FNMSUB (y, x * x, threehalf); | ||
710 | + x = x * FNMSUB (y, x * x, threehalf); | ||
711 | + x = x * FNMSUB (y, x * x, threehalf); | ||
712 | + | ||
713 | + /* All done. */ | ||
714 | + fesetenv_register (fe); | ||
715 | + return x * b; | ||
716 | + } | ||
717 | + } | ||
718 | + else if (b < 0) | ||
719 | + { | ||
720 | + /* For some reason, some PowerPC32 processors don't implement | ||
721 | + FE_INVALID_SQRT. */ | ||
722 | +#ifdef FE_INVALID_SQRT | ||
723 | + feraiseexcept (FE_INVALID_SQRT); | ||
724 | + | ||
725 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
726 | + if ((u.l[1] & FE_INVALID) == 0) | ||
727 | +#endif | ||
728 | + feraiseexcept (FE_INVALID); | ||
729 | + b = a_nan.value; | ||
730 | + } | ||
731 | + return f_washf (b); | ||
732 | +} | ||
733 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
734 | --- libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
735 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c 2012-06-14 14:55:24.620001266 -0500 | ||
736 | @@ -0,0 +1,134 @@ | ||
737 | +/* Double-precision floating point square root. | ||
738 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
739 | + This file is part of the GNU C Library. | ||
740 | + | ||
741 | + The GNU C Library is free software; you can redistribute it and/or | ||
742 | + modify it under the terms of the GNU Lesser General Public | ||
743 | + License as published by the Free Software Foundation; either | ||
744 | + version 2.1 of the License, or (at your option) any later version. | ||
745 | + | ||
746 | + The GNU C Library is distributed in the hope that it will be useful, | ||
747 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
748 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
749 | + Lesser General Public License for more details. | ||
750 | + | ||
751 | + You should have received a copy of the GNU Lesser General Public | ||
752 | + License along with the GNU C Library; if not, write to the Free | ||
753 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
754 | + 02111-1307 USA. */ | ||
755 | + | ||
756 | +#include <math.h> | ||
757 | +#include <math_private.h> | ||
758 | +#include <fenv_libc.h> | ||
759 | +#include <inttypes.h> | ||
760 | + | ||
761 | +#include <sysdep.h> | ||
762 | +#include <ldsodefs.h> | ||
763 | + | ||
764 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
765 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
766 | +static const float two108 = 3.245185536584267269e+32; | ||
767 | +static const float twom54 = 5.551115123125782702e-17; | ||
768 | +static const float half = 0.5; | ||
769 | + | ||
770 | +/* The method is based on the descriptions in: | ||
771 | + | ||
772 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
773 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
774 | + | ||
775 | + We find the actual square root and half of its reciprocal | ||
776 | + simultaneously. */ | ||
777 | + | ||
778 | +#ifdef __STDC__ | ||
779 | +double | ||
780 | +__ieee754_sqrt (double b) | ||
781 | +#else | ||
782 | +double | ||
783 | +__ieee754_sqrt (b) | ||
784 | + double b; | ||
785 | +#endif | ||
786 | +{ | ||
787 | + if (__builtin_expect (b > 0, 1)) | ||
788 | + { | ||
789 | + double y, g, h, d, r; | ||
790 | + ieee_double_shape_type u; | ||
791 | + | ||
792 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
793 | + { | ||
794 | + fenv_t fe; | ||
795 | + | ||
796 | + fe = fegetenv_register (); | ||
797 | + | ||
798 | + u.value = b; | ||
799 | + | ||
800 | + relax_fenv_state (); | ||
801 | + | ||
802 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
803 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
804 | + | ||
805 | + /* Following Muller et al, page 168, equation 5.20. | ||
806 | + | ||
807 | + h goes to 1/(2*sqrt(b)) | ||
808 | + g goes to sqrt(b). | ||
809 | + | ||
810 | + We need three iterations to get within 1ulp. */ | ||
811 | + | ||
812 | + /* Indicate that these can be performed prior to the branch. GCC | ||
813 | + insists on sinking them below the branch, however; it seems like | ||
814 | + they'd be better before the branch so that we can cover any latency | ||
815 | + from storing the argument and loading its high word. Oh well. */ | ||
816 | + | ||
817 | + g = b * y; | ||
818 | + h = 0.5 * y; | ||
819 | + | ||
820 | + /* Handle small numbers by scaling. */ | ||
821 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
822 | + return __ieee754_sqrt (b * two108) * twom54; | ||
823 | + | ||
824 | +#define FMADD(a_, c_, b_) \ | ||
825 | + ({ double __r; \ | ||
826 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
827 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
828 | + __r;}) | ||
829 | +#define FNMSUB(a_, c_, b_) \ | ||
830 | + ({ double __r; \ | ||
831 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
832 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
833 | + __r;}) | ||
834 | + | ||
835 | + r = FNMSUB (g, h, half); | ||
836 | + g = FMADD (g, r, g); | ||
837 | + h = FMADD (h, r, h); | ||
838 | + | ||
839 | + r = FNMSUB (g, h, half); | ||
840 | + g = FMADD (g, r, g); | ||
841 | + h = FMADD (h, r, h); | ||
842 | + | ||
843 | + r = FNMSUB (g, h, half); | ||
844 | + g = FMADD (g, r, g); | ||
845 | + h = FMADD (h, r, h); | ||
846 | + | ||
847 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
848 | + | ||
849 | + /* Final refinement. */ | ||
850 | + d = FNMSUB (g, g, b); | ||
851 | + | ||
852 | + fesetenv_register (fe); | ||
853 | + return FMADD (d, h, g); | ||
854 | + } | ||
855 | + } | ||
856 | + else if (b < 0) | ||
857 | + { | ||
858 | + /* For some reason, some PowerPC32 processors don't implement | ||
859 | + FE_INVALID_SQRT. */ | ||
860 | +#ifdef FE_INVALID_SQRT | ||
861 | + feraiseexcept (FE_INVALID_SQRT); | ||
862 | + | ||
863 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
864 | + if ((u.l[1] & FE_INVALID) == 0) | ||
865 | +#endif | ||
866 | + feraiseexcept (FE_INVALID); | ||
867 | + b = a_nan.value; | ||
868 | + } | ||
869 | + return f_wash (b); | ||
870 | +} | ||
871 | diff -ruN libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
872 | --- libc-orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
873 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c 2012-06-14 14:55:24.620001266 -0500 | ||
874 | @@ -0,0 +1,101 @@ | ||
875 | +/* Single-precision floating point square root. | ||
876 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
877 | + This file is part of the GNU C Library. | ||
878 | + | ||
879 | + The GNU C Library is free software; you can redistribute it and/or | ||
880 | + modify it under the terms of the GNU Lesser General Public | ||
881 | + License as published by the Free Software Foundation; either | ||
882 | + version 2.1 of the License, or (at your option) any later version. | ||
883 | + | ||
884 | + The GNU C Library is distributed in the hope that it will be useful, | ||
885 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
886 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
887 | + Lesser General Public License for more details. | ||
888 | + | ||
889 | + You should have received a copy of the GNU Lesser General Public | ||
890 | + License along with the GNU C Library; if not, write to the Free | ||
891 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
892 | + 02111-1307 USA. */ | ||
893 | + | ||
894 | +#include <math.h> | ||
895 | +#include <math_private.h> | ||
896 | +#include <fenv_libc.h> | ||
897 | +#include <inttypes.h> | ||
898 | + | ||
899 | +#include <sysdep.h> | ||
900 | +#include <ldsodefs.h> | ||
901 | + | ||
902 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
903 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
904 | +static const float threehalf = 1.5; | ||
905 | + | ||
906 | +/* The method is based on the descriptions in: | ||
907 | + | ||
908 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
909 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
910 | + | ||
911 | + We find the reciprocal square root and use that to compute the actual | ||
912 | + square root. */ | ||
913 | + | ||
914 | +#ifdef __STDC__ | ||
915 | +float | ||
916 | +__ieee754_sqrtf (float b) | ||
917 | +#else | ||
918 | +float | ||
919 | +__ieee754_sqrtf (b) | ||
920 | + float b; | ||
921 | +#endif | ||
922 | +{ | ||
923 | + if (__builtin_expect (b > 0, 1)) | ||
924 | + { | ||
925 | +#define FMSUB(a_, c_, b_) \ | ||
926 | + ({ double __r; \ | ||
927 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
928 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
929 | + __r;}) | ||
930 | +#define FNMSUB(a_, c_, b_) \ | ||
931 | + ({ double __r; \ | ||
932 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
933 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
934 | + __r;}) | ||
935 | + | ||
936 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
937 | + { | ||
938 | + double y, x; | ||
939 | + fenv_t fe; | ||
940 | + | ||
941 | + fe = fegetenv_register (); | ||
942 | + | ||
943 | + relax_fenv_state (); | ||
944 | + | ||
945 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
946 | + y = FMSUB (threehalf, b, b); | ||
947 | + | ||
948 | + /* Initial estimate. */ | ||
949 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
950 | + | ||
951 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
952 | + x = x * FNMSUB (y, x * x, threehalf); | ||
953 | + x = x * FNMSUB (y, x * x, threehalf); | ||
954 | + x = x * FNMSUB (y, x * x, threehalf); | ||
955 | + | ||
956 | + /* All done. */ | ||
957 | + fesetenv_register (fe); | ||
958 | + return x * b; | ||
959 | + } | ||
960 | + } | ||
961 | + else if (b < 0) | ||
962 | + { | ||
963 | + /* For some reason, some PowerPC32 processors don't implement | ||
964 | + FE_INVALID_SQRT. */ | ||
965 | +#ifdef FE_INVALID_SQRT | ||
966 | + feraiseexcept (FE_INVALID_SQRT); | ||
967 | + | ||
968 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
969 | + if ((u.l[1] & FE_INVALID) == 0) | ||
970 | +#endif | ||
971 | + feraiseexcept (FE_INVALID); | ||
972 | + b = a_nan.value; | ||
973 | + } | ||
974 | + return f_washf (b); | ||
975 | +} | ||
976 | diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
977 | --- libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
978 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2012-06-14 14:51:50.452001745 -0500 | ||
979 | @@ -0,0 +1,134 @@ | ||
980 | +/* Double-precision floating point square root. | ||
981 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
982 | + This file is part of the GNU C Library. | ||
983 | + | ||
984 | + The GNU C Library is free software; you can redistribute it and/or | ||
985 | + modify it under the terms of the GNU Lesser General Public | ||
986 | + License as published by the Free Software Foundation; either | ||
987 | + version 2.1 of the License, or (at your option) any later version. | ||
988 | + | ||
989 | + The GNU C Library is distributed in the hope that it will be useful, | ||
990 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
991 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
992 | + Lesser General Public License for more details. | ||
993 | + | ||
994 | + You should have received a copy of the GNU Lesser General Public | ||
995 | + License along with the GNU C Library; if not, write to the Free | ||
996 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
997 | + 02111-1307 USA. */ | ||
998 | + | ||
999 | +#include <math.h> | ||
1000 | +#include <math_private.h> | ||
1001 | +#include <fenv_libc.h> | ||
1002 | +#include <inttypes.h> | ||
1003 | + | ||
1004 | +#include <sysdep.h> | ||
1005 | +#include <ldsodefs.h> | ||
1006 | + | ||
1007 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
1008 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
1009 | +static const float two108 = 3.245185536584267269e+32; | ||
1010 | +static const float twom54 = 5.551115123125782702e-17; | ||
1011 | +static const float half = 0.5; | ||
1012 | + | ||
1013 | +/* The method is based on the descriptions in: | ||
1014 | + | ||
1015 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
1016 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
1017 | + | ||
1018 | + We find the actual square root and half of its reciprocal | ||
1019 | + simultaneously. */ | ||
1020 | + | ||
1021 | +#ifdef __STDC__ | ||
1022 | +double | ||
1023 | +__ieee754_sqrt (double b) | ||
1024 | +#else | ||
1025 | +double | ||
1026 | +__ieee754_sqrt (b) | ||
1027 | + double b; | ||
1028 | +#endif | ||
1029 | +{ | ||
1030 | + if (__builtin_expect (b > 0, 1)) | ||
1031 | + { | ||
1032 | + double y, g, h, d, r; | ||
1033 | + ieee_double_shape_type u; | ||
1034 | + | ||
1035 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
1036 | + { | ||
1037 | + fenv_t fe; | ||
1038 | + | ||
1039 | + fe = fegetenv_register (); | ||
1040 | + | ||
1041 | + u.value = b; | ||
1042 | + | ||
1043 | + relax_fenv_state (); | ||
1044 | + | ||
1045 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
1046 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
1047 | + | ||
1048 | + /* Following Muller et al, page 168, equation 5.20. | ||
1049 | + | ||
1050 | + h goes to 1/(2*sqrt(b)) | ||
1051 | + g goes to sqrt(b). | ||
1052 | + | ||
1053 | + We need three iterations to get within 1ulp. */ | ||
1054 | + | ||
1055 | + /* Indicate that these can be performed prior to the branch. GCC | ||
1056 | + insists on sinking them below the branch, however; it seems like | ||
1057 | + they'd be better before the branch so that we can cover any latency | ||
1058 | + from storing the argument and loading its high word. Oh well. */ | ||
1059 | + | ||
1060 | + g = b * y; | ||
1061 | + h = 0.5 * y; | ||
1062 | + | ||
1063 | + /* Handle small numbers by scaling. */ | ||
1064 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
1065 | + return __ieee754_sqrt (b * two108) * twom54; | ||
1066 | + | ||
1067 | +#define FMADD(a_, c_, b_) \ | ||
1068 | + ({ double __r; \ | ||
1069 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
1070 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1071 | + __r;}) | ||
1072 | +#define FNMSUB(a_, c_, b_) \ | ||
1073 | + ({ double __r; \ | ||
1074 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
1075 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1076 | + __r;}) | ||
1077 | + | ||
1078 | + r = FNMSUB (g, h, half); | ||
1079 | + g = FMADD (g, r, g); | ||
1080 | + h = FMADD (h, r, h); | ||
1081 | + | ||
1082 | + r = FNMSUB (g, h, half); | ||
1083 | + g = FMADD (g, r, g); | ||
1084 | + h = FMADD (h, r, h); | ||
1085 | + | ||
1086 | + r = FNMSUB (g, h, half); | ||
1087 | + g = FMADD (g, r, g); | ||
1088 | + h = FMADD (h, r, h); | ||
1089 | + | ||
1090 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
1091 | + | ||
1092 | + /* Final refinement. */ | ||
1093 | + d = FNMSUB (g, g, b); | ||
1094 | + | ||
1095 | + fesetenv_register (fe); | ||
1096 | + return FMADD (d, h, g); | ||
1097 | + } | ||
1098 | + } | ||
1099 | + else if (b < 0) | ||
1100 | + { | ||
1101 | + /* For some reason, some PowerPC32 processors don't implement | ||
1102 | + FE_INVALID_SQRT. */ | ||
1103 | +#ifdef FE_INVALID_SQRT | ||
1104 | + feraiseexcept (FE_INVALID_SQRT); | ||
1105 | + | ||
1106 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
1107 | + if ((u.l[1] & FE_INVALID) == 0) | ||
1108 | +#endif | ||
1109 | + feraiseexcept (FE_INVALID); | ||
1110 | + b = a_nan.value; | ||
1111 | + } | ||
1112 | + return f_wash (b); | ||
1113 | +} | ||
1114 | diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
1115 | --- libc-orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
1116 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-06-14 14:51:50.452001745 -0500 | ||
1117 | @@ -0,0 +1,101 @@ | ||
1118 | +/* Single-precision floating point square root. | ||
1119 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
1120 | + This file is part of the GNU C Library. | ||
1121 | + | ||
1122 | + The GNU C Library is free software; you can redistribute it and/or | ||
1123 | + modify it under the terms of the GNU Lesser General Public | ||
1124 | + License as published by the Free Software Foundation; either | ||
1125 | + version 2.1 of the License, or (at your option) any later version. | ||
1126 | + | ||
1127 | + The GNU C Library is distributed in the hope that it will be useful, | ||
1128 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1129 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
1130 | + Lesser General Public License for more details. | ||
1131 | + | ||
1132 | + You should have received a copy of the GNU Lesser General Public | ||
1133 | + License along with the GNU C Library; if not, write to the Free | ||
1134 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
1135 | + 02111-1307 USA. */ | ||
1136 | + | ||
1137 | +#include <math.h> | ||
1138 | +#include <math_private.h> | ||
1139 | +#include <fenv_libc.h> | ||
1140 | +#include <inttypes.h> | ||
1141 | + | ||
1142 | +#include <sysdep.h> | ||
1143 | +#include <ldsodefs.h> | ||
1144 | + | ||
1145 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
1146 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
1147 | +static const float threehalf = 1.5; | ||
1148 | + | ||
1149 | +/* The method is based on the descriptions in: | ||
1150 | + | ||
1151 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
1152 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
1153 | + | ||
1154 | + We find the reciprocal square root and use that to compute the actual | ||
1155 | + square root. */ | ||
1156 | + | ||
1157 | +#ifdef __STDC__ | ||
1158 | +float | ||
1159 | +__ieee754_sqrtf (float b) | ||
1160 | +#else | ||
1161 | +float | ||
1162 | +__ieee754_sqrtf (b) | ||
1163 | + float b; | ||
1164 | +#endif | ||
1165 | +{ | ||
1166 | + if (__builtin_expect (b > 0, 1)) | ||
1167 | + { | ||
1168 | +#define FMSUB(a_, c_, b_) \ | ||
1169 | + ({ double __r; \ | ||
1170 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
1171 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1172 | + __r;}) | ||
1173 | +#define FNMSUB(a_, c_, b_) \ | ||
1174 | + ({ double __r; \ | ||
1175 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
1176 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1177 | + __r;}) | ||
1178 | + | ||
1179 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
1180 | + { | ||
1181 | + double y, x; | ||
1182 | + fenv_t fe; | ||
1183 | + | ||
1184 | + fe = fegetenv_register (); | ||
1185 | + | ||
1186 | + relax_fenv_state (); | ||
1187 | + | ||
1188 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
1189 | + y = FMSUB (threehalf, b, b); | ||
1190 | + | ||
1191 | + /* Initial estimate. */ | ||
1192 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
1193 | + | ||
1194 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
1195 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1196 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1197 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1198 | + | ||
1199 | + /* All done. */ | ||
1200 | + fesetenv_register (fe); | ||
1201 | + return x * b; | ||
1202 | + } | ||
1203 | + } | ||
1204 | + else if (b < 0) | ||
1205 | + { | ||
1206 | + /* For some reason, some PowerPC32 processors don't implement | ||
1207 | + FE_INVALID_SQRT. */ | ||
1208 | +#ifdef FE_INVALID_SQRT | ||
1209 | + feraiseexcept (FE_INVALID_SQRT); | ||
1210 | + | ||
1211 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
1212 | + if ((u.l[1] & FE_INVALID) == 0) | ||
1213 | +#endif | ||
1214 | + feraiseexcept (FE_INVALID); | ||
1215 | + b = a_nan.value; | ||
1216 | + } | ||
1217 | + return f_washf (b); | ||
1218 | +} | ||
1219 | diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
1220 | --- libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c 1969-12-31 18:00:00.000000000 -0600 | ||
1221 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c 2012-06-14 14:56:02.080000985 -0500 | ||
1222 | @@ -0,0 +1,134 @@ | ||
1223 | +/* Double-precision floating point square root. | ||
1224 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
1225 | + This file is part of the GNU C Library. | ||
1226 | + | ||
1227 | + The GNU C Library is free software; you can redistribute it and/or | ||
1228 | + modify it under the terms of the GNU Lesser General Public | ||
1229 | + License as published by the Free Software Foundation; either | ||
1230 | + version 2.1 of the License, or (at your option) any later version. | ||
1231 | + | ||
1232 | + The GNU C Library is distributed in the hope that it will be useful, | ||
1233 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1234 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
1235 | + Lesser General Public License for more details. | ||
1236 | + | ||
1237 | + You should have received a copy of the GNU Lesser General Public | ||
1238 | + License along with the GNU C Library; if not, write to the Free | ||
1239 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
1240 | + 02111-1307 USA. */ | ||
1241 | + | ||
1242 | +#include <math.h> | ||
1243 | +#include <math_private.h> | ||
1244 | +#include <fenv_libc.h> | ||
1245 | +#include <inttypes.h> | ||
1246 | + | ||
1247 | +#include <sysdep.h> | ||
1248 | +#include <ldsodefs.h> | ||
1249 | + | ||
1250 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
1251 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
1252 | +static const float two108 = 3.245185536584267269e+32; | ||
1253 | +static const float twom54 = 5.551115123125782702e-17; | ||
1254 | +static const float half = 0.5; | ||
1255 | + | ||
1256 | +/* The method is based on the descriptions in: | ||
1257 | + | ||
1258 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
1259 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
1260 | + | ||
1261 | + We find the actual square root and half of its reciprocal | ||
1262 | + simultaneously. */ | ||
1263 | + | ||
1264 | +#ifdef __STDC__ | ||
1265 | +double | ||
1266 | +__ieee754_sqrt (double b) | ||
1267 | +#else | ||
1268 | +double | ||
1269 | +__ieee754_sqrt (b) | ||
1270 | + double b; | ||
1271 | +#endif | ||
1272 | +{ | ||
1273 | + if (__builtin_expect (b > 0, 1)) | ||
1274 | + { | ||
1275 | + double y, g, h, d, r; | ||
1276 | + ieee_double_shape_type u; | ||
1277 | + | ||
1278 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
1279 | + { | ||
1280 | + fenv_t fe; | ||
1281 | + | ||
1282 | + fe = fegetenv_register (); | ||
1283 | + | ||
1284 | + u.value = b; | ||
1285 | + | ||
1286 | + relax_fenv_state (); | ||
1287 | + | ||
1288 | + __asm__ ("frsqrte %[estimate], %[x]\n" | ||
1289 | + : [estimate] "=f" (y) : [x] "f" (b)); | ||
1290 | + | ||
1291 | + /* Following Muller et al, page 168, equation 5.20. | ||
1292 | + | ||
1293 | + h goes to 1/(2*sqrt(b)) | ||
1294 | + g goes to sqrt(b). | ||
1295 | + | ||
1296 | + We need three iterations to get within 1ulp. */ | ||
1297 | + | ||
1298 | + /* Indicate that these can be performed prior to the branch. GCC | ||
1299 | + insists on sinking them below the branch, however; it seems like | ||
1300 | + they'd be better before the branch so that we can cover any latency | ||
1301 | + from storing the argument and loading its high word. Oh well. */ | ||
1302 | + | ||
1303 | + g = b * y; | ||
1304 | + h = 0.5 * y; | ||
1305 | + | ||
1306 | + /* Handle small numbers by scaling. */ | ||
1307 | + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
1308 | + return __ieee754_sqrt (b * two108) * twom54; | ||
1309 | + | ||
1310 | +#define FMADD(a_, c_, b_) \ | ||
1311 | + ({ double __r; \ | ||
1312 | + __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ | ||
1313 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1314 | + __r;}) | ||
1315 | +#define FNMSUB(a_, c_, b_) \ | ||
1316 | + ({ double __r; \ | ||
1317 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
1318 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1319 | + __r;}) | ||
1320 | + | ||
1321 | + r = FNMSUB (g, h, half); | ||
1322 | + g = FMADD (g, r, g); | ||
1323 | + h = FMADD (h, r, h); | ||
1324 | + | ||
1325 | + r = FNMSUB (g, h, half); | ||
1326 | + g = FMADD (g, r, g); | ||
1327 | + h = FMADD (h, r, h); | ||
1328 | + | ||
1329 | + r = FNMSUB (g, h, half); | ||
1330 | + g = FMADD (g, r, g); | ||
1331 | + h = FMADD (h, r, h); | ||
1332 | + | ||
1333 | + /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ | ||
1334 | + | ||
1335 | + /* Final refinement. */ | ||
1336 | + d = FNMSUB (g, g, b); | ||
1337 | + | ||
1338 | + fesetenv_register (fe); | ||
1339 | + return FMADD (d, h, g); | ||
1340 | + } | ||
1341 | + } | ||
1342 | + else if (b < 0) | ||
1343 | + { | ||
1344 | + /* For some reason, some PowerPC32 processors don't implement | ||
1345 | + FE_INVALID_SQRT. */ | ||
1346 | +#ifdef FE_INVALID_SQRT | ||
1347 | + feraiseexcept (FE_INVALID_SQRT); | ||
1348 | + | ||
1349 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
1350 | + if ((u.l[1] & FE_INVALID) == 0) | ||
1351 | +#endif | ||
1352 | + feraiseexcept (FE_INVALID); | ||
1353 | + b = a_nan.value; | ||
1354 | + } | ||
1355 | + return f_wash (b); | ||
1356 | +} | ||
1357 | diff -ruN libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
1358 | --- libc-orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c 1969-12-31 18:00:00.000000000 -0600 | ||
1359 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c 2012-06-14 14:56:02.080000985 -0500 | ||
1360 | @@ -0,0 +1,101 @@ | ||
1361 | +/* Single-precision floating point square root. | ||
1362 | + Copyright (C) 2010 Free Software Foundation, Inc. | ||
1363 | + This file is part of the GNU C Library. | ||
1364 | + | ||
1365 | + The GNU C Library is free software; you can redistribute it and/or | ||
1366 | + modify it under the terms of the GNU Lesser General Public | ||
1367 | + License as published by the Free Software Foundation; either | ||
1368 | + version 2.1 of the License, or (at your option) any later version. | ||
1369 | + | ||
1370 | + The GNU C Library is distributed in the hope that it will be useful, | ||
1371 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1372 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
1373 | + Lesser General Public License for more details. | ||
1374 | + | ||
1375 | + You should have received a copy of the GNU Lesser General Public | ||
1376 | + License along with the GNU C Library; if not, write to the Free | ||
1377 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
1378 | + 02111-1307 USA. */ | ||
1379 | + | ||
1380 | +#include <math.h> | ||
1381 | +#include <math_private.h> | ||
1382 | +#include <fenv_libc.h> | ||
1383 | +#include <inttypes.h> | ||
1384 | + | ||
1385 | +#include <sysdep.h> | ||
1386 | +#include <ldsodefs.h> | ||
1387 | + | ||
1388 | +static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; | ||
1389 | +static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; | ||
1390 | +static const float threehalf = 1.5; | ||
1391 | + | ||
1392 | +/* The method is based on the descriptions in: | ||
1393 | + | ||
1394 | + _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; | ||
1395 | + _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 | ||
1396 | + | ||
1397 | + We find the reciprocal square root and use that to compute the actual | ||
1398 | + square root. */ | ||
1399 | + | ||
1400 | +#ifdef __STDC__ | ||
1401 | +float | ||
1402 | +__ieee754_sqrtf (float b) | ||
1403 | +#else | ||
1404 | +float | ||
1405 | +__ieee754_sqrtf (b) | ||
1406 | + float b; | ||
1407 | +#endif | ||
1408 | +{ | ||
1409 | + if (__builtin_expect (b > 0, 1)) | ||
1410 | + { | ||
1411 | +#define FMSUB(a_, c_, b_) \ | ||
1412 | + ({ double __r; \ | ||
1413 | + __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ | ||
1414 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1415 | + __r;}) | ||
1416 | +#define FNMSUB(a_, c_, b_) \ | ||
1417 | + ({ double __r; \ | ||
1418 | + __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ | ||
1419 | + : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ | ||
1420 | + __r;}) | ||
1421 | + | ||
1422 | + if (__builtin_expect (b != a_inf.value, 1)) | ||
1423 | + { | ||
1424 | + double y, x; | ||
1425 | + fenv_t fe; | ||
1426 | + | ||
1427 | + fe = fegetenv_register (); | ||
1428 | + | ||
1429 | + relax_fenv_state (); | ||
1430 | + | ||
1431 | + /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ | ||
1432 | + y = FMSUB (threehalf, b, b); | ||
1433 | + | ||
1434 | + /* Initial estimate. */ | ||
1435 | + __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); | ||
1436 | + | ||
1437 | + /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ | ||
1438 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1439 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1440 | + x = x * FNMSUB (y, x * x, threehalf); | ||
1441 | + | ||
1442 | + /* All done. */ | ||
1443 | + fesetenv_register (fe); | ||
1444 | + return x * b; | ||
1445 | + } | ||
1446 | + } | ||
1447 | + else if (b < 0) | ||
1448 | + { | ||
1449 | + /* For some reason, some PowerPC32 processors don't implement | ||
1450 | + FE_INVALID_SQRT. */ | ||
1451 | +#ifdef FE_INVALID_SQRT | ||
1452 | + feraiseexcept (FE_INVALID_SQRT); | ||
1453 | + | ||
1454 | + fenv_union_t u = { .fenv = fegetenv_register () }; | ||
1455 | + if ((u.l[1] & FE_INVALID) == 0) | ||
1456 | +#endif | ||
1457 | + feraiseexcept (FE_INVALID); | ||
1458 | + b = a_nan.value; | ||
1459 | + } | ||
1460 | + return f_washf (b); | ||
1461 | +} | ||
1462 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies | ||
1463 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1464 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies 2012-06-14 14:51:50.452001745 -0500 | ||
1465 | @@ -0,0 +1 @@ | ||
1466 | +powerpc/powerpc32/603e/fpu | ||
1467 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies | ||
1468 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1469 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies 2012-06-14 14:54:00.481000876 -0500 | ||
1470 | @@ -0,0 +1 @@ | ||
1471 | +powerpc/powerpc32/e500mc/fpu | ||
1472 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies | ||
1473 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1474 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies 2012-06-14 14:54:17.000001007 -0500 | ||
1475 | @@ -0,0 +1 @@ | ||
1476 | +powerpc/powerpc32/e5500/fpu | ||
1477 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies | ||
1478 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1479 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies 2012-06-14 14:54:31.054001299 -0500 | ||
1480 | @@ -0,0 +1 @@ | ||
1481 | +powerpc/powerpc32/e6500/fpu | ||
1482 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies | ||
1483 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1484 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies 2012-06-14 14:51:50.453001709 -0500 | ||
1485 | @@ -0,0 +1 @@ | ||
1486 | +powerpc/powerpc64/e5500/fpu | ||
1487 | diff -ruN libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies | ||
1488 | --- libc-orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies 1969-12-31 18:00:00.000000000 -0600 | ||
1489 | +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies 2012-06-14 14:58:14.298001288 -0500 | ||
1490 | @@ -0,0 +1 @@ | ||
1491 | +powerpc/powerpc64/e6500/fpu | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/initgroups_keys.patch b/meta/recipes-core/eglibc/eglibc-2.18/initgroups_keys.patch new file mode 100644 index 0000000000..be29856b03 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/initgroups_keys.patch | |||
@@ -0,0 +1,20 @@ | |||
1 | This is needed since initgroups belongs to NET group | ||
2 | so when NET is disabled in eglibc build then it reports | ||
3 | as undefined symbol | ||
4 | |||
5 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Index: libc/nss/getent.c | ||
9 | =================================================================== | ||
10 | --- libc.orig/nss/getent.c 2012-03-09 09:41:57.099581559 -0800 | ||
11 | +++ libc/nss/getent.c 2012-03-09 09:42:13.095582334 -0800 | ||
12 | @@ -898,7 +898,7 @@ | ||
13 | D(group) | ||
14 | D(gshadow) | ||
15 | DN(hosts) | ||
16 | -D(initgroups) | ||
17 | +DN(initgroups) | ||
18 | DN(netgroup) | ||
19 | DN(networks) | ||
20 | D(passwd) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/ld-search-order.patch b/meta/recipes-core/eglibc/eglibc-2.18/ld-search-order.patch new file mode 100644 index 0000000000..e83a0ad6d2 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/ld-search-order.patch | |||
@@ -0,0 +1,56 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | The default lib search path order is: | ||
4 | |||
5 | 1) LD_LIBRARY_PATH | ||
6 | 2) RPATH from the binary | ||
7 | 3) ld.so.cache | ||
8 | 4) default search paths embedded in the linker | ||
9 | |||
10 | For nativesdk binaries which are being used alongside binaries on a host system, we | ||
11 | need the search paths to firstly search the shipped nativesdk libs but then also | ||
12 | cover the host system. For example we want the host system's libGL and this may be | ||
13 | in a non-standard location like /usr/lib/mesa. The only place the location is know | ||
14 | about is in the ld.so.cache of the host system. | ||
15 | |||
16 | Since nativesdk has a simple structure and doesn't need to use a cache itself, we | ||
17 | repurpose the cache for use as a last resort in finding host system binaries. This | ||
18 | means we need to switch the order of 3 and 4 above to make this work effectively. | ||
19 | |||
20 | RP 14/10/2010 | ||
21 | |||
22 | Index: libc/elf/dl-load.c | ||
23 | =================================================================== | ||
24 | --- libc.orig/elf/dl-load.c 2012-12-02 13:11:45.000000000 -0800 | ||
25 | +++ libc/elf/dl-load.c 2013-01-09 07:00:59.135223084 -0800 | ||
26 | @@ -2215,7 +2215,14 @@ | ||
27 | fd = open_path (name, namelen, mode & __RTLD_SECURE, | ||
28 | &loader->l_runpath_dirs, &realname, &fb, loader, | ||
29 | LA_SER_RUNPATH, &found_other_class); | ||
30 | - | ||
31 | + /* try the default path. */ | ||
32 | + if (fd == -1 | ||
33 | + && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL | ||
34 | + || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) | ||
35 | + && rtld_search_dirs.dirs != (void *) -1) | ||
36 | + fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, | ||
37 | + &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); | ||
38 | + /* Finally try ld.so.cache */ | ||
39 | #ifdef USE_LDCONFIG | ||
40 | if (fd == -1 | ||
41 | && (__builtin_expect (! (mode & __RTLD_SECURE), 1) | ||
42 | @@ -2283,14 +2290,6 @@ | ||
43 | } | ||
44 | #endif | ||
45 | |||
46 | - /* Finally, try the default path. */ | ||
47 | - if (fd == -1 | ||
48 | - && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL | ||
49 | - || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) | ||
50 | - && rtld_search_dirs.dirs != (void *) -1) | ||
51 | - fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, | ||
52 | - &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); | ||
53 | - | ||
54 | /* Add another newline when we are tracing the library loading. */ | ||
55 | if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0)) | ||
56 | _dl_debug_printf ("\n"); | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/mips-rld-map-check.patch b/meta/recipes-core/eglibc/eglibc-2.18/mips-rld-map-check.patch new file mode 100644 index 0000000000..9b646fea95 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/mips-rld-map-check.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | |||
2 | On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic | ||
3 | section if a --version-script sets _RLD_MAP to local. This is apparently | ||
4 | a binutils bug, but libc shouldn't segfault in this case. | ||
5 | |||
6 | see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615 | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | |||
10 | 9/19/2010 - added by Qing He <qing.he@intel.com> | ||
11 | |||
12 | |||
13 | --- | ||
14 | diff -ru glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h glibc-2.10.1/ports/sysdeps/mips/dl-machine.h | ||
15 | --- glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h 2009-05-16 16:36:20.000000000 +0800 | ||
16 | +++ glibc-2.10.1/ports/sysdeps/mips/dl-machine.h 2010-09-19 09:11:53.000000000 +0800 | ||
17 | @@ -70,7 +70,8 @@ | ||
18 | /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in | ||
19 | with the run-time address of the r_debug structure */ | ||
20 | #define ELF_MACHINE_DEBUG_SETUP(l,r) \ | ||
21 | -do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \ | ||
22 | +do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \ | ||
23 | + (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \ | ||
24 | *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \ | ||
25 | (ElfW(Addr)) (r); \ | ||
26 | } while (0) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/multilib_readlib.patch b/meta/recipes-core/eglibc/eglibc-2.18/multilib_readlib.patch new file mode 100644 index 0000000000..1542b1b519 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/multilib_readlib.patch | |||
@@ -0,0 +1,17 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | Replace the OECORE_KNOWN_INTERPRETER_NAMES with the value of | ||
4 | variable EGLIBC_KNOWN_INTERPRETER_NAMES. | ||
5 | |||
6 | Lianhao Lu, 08/01/2011 | ||
7 | |||
8 | --- libc/elf/readlib.c.orig 2011-08-12 17:05:51.864470837 +0800 | ||
9 | +++ libc/elf/readlib.c 2011-08-12 17:06:39.346942074 +0800 | ||
10 | @@ -52,6 +52,7 @@ | ||
11 | #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES | ||
12 | SYSDEP_KNOWN_INTERPRETER_NAMES | ||
13 | #endif | ||
14 | + OECORE_KNOWN_INTERPRETER_NAMES | ||
15 | }; | ||
16 | |||
17 | static struct known_names known_libs[] = | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/ppc-sqrt_finite.patch b/meta/recipes-core/eglibc/eglibc-2.18/ppc-sqrt_finite.patch new file mode 100644 index 0000000000..6ea666b1d6 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/ppc-sqrt_finite.patch | |||
@@ -0,0 +1,184 @@ | |||
1 | on ppc fixes the errors like below | ||
2 | | ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite' | ||
3 | | collect2: ld returned 1 exit status | ||
4 | |||
5 | Upstream-Status: Pending | ||
6 | |||
7 | ChangeLog | ||
8 | |||
9 | 2012-01-06 Khem Raj <raj.khem@gmail.com> | ||
10 | |||
11 | * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias. | ||
12 | Remove cruft. | ||
13 | * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto. | ||
14 | * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto. | ||
15 | * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto. | ||
16 | |||
17 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
18 | =================================================================== | ||
19 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
20 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
21 | @@ -39,14 +39,8 @@ static const float half = 0.5; | ||
22 | We find the actual square root and half of its reciprocal | ||
23 | simultaneously. */ | ||
24 | |||
25 | -#ifdef __STDC__ | ||
26 | double | ||
27 | __ieee754_sqrt (double b) | ||
28 | -#else | ||
29 | -double | ||
30 | -__ieee754_sqrt (b) | ||
31 | - double b; | ||
32 | -#endif | ||
33 | { | ||
34 | if (__builtin_expect (b > 0, 1)) | ||
35 | { | ||
36 | @@ -132,3 +126,4 @@ __ieee754_sqrt (b) | ||
37 | } | ||
38 | return f_wash (b); | ||
39 | } | ||
40 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
41 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
42 | =================================================================== | ||
43 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
44 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
45 | @@ -37,14 +37,8 @@ static const float threehalf = 1.5; | ||
46 | We find the reciprocal square root and use that to compute the actual | ||
47 | square root. */ | ||
48 | |||
49 | -#ifdef __STDC__ | ||
50 | float | ||
51 | __ieee754_sqrtf (float b) | ||
52 | -#else | ||
53 | -float | ||
54 | -__ieee754_sqrtf (b) | ||
55 | - float b; | ||
56 | -#endif | ||
57 | { | ||
58 | if (__builtin_expect (b > 0, 1)) | ||
59 | { | ||
60 | @@ -99,3 +93,4 @@ __ieee754_sqrtf (b) | ||
61 | } | ||
62 | return f_washf (b); | ||
63 | } | ||
64 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
65 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
66 | =================================================================== | ||
67 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
68 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
69 | @@ -39,14 +39,8 @@ static const float half = 0.5; | ||
70 | We find the actual square root and half of its reciprocal | ||
71 | simultaneously. */ | ||
72 | |||
73 | -#ifdef __STDC__ | ||
74 | double | ||
75 | __ieee754_sqrt (double b) | ||
76 | -#else | ||
77 | -double | ||
78 | -__ieee754_sqrt (b) | ||
79 | - double b; | ||
80 | -#endif | ||
81 | { | ||
82 | if (__builtin_expect (b > 0, 1)) | ||
83 | { | ||
84 | @@ -132,3 +126,4 @@ __ieee754_sqrt (b) | ||
85 | } | ||
86 | return f_wash (b); | ||
87 | } | ||
88 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
89 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
90 | =================================================================== | ||
91 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
92 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
93 | @@ -37,14 +37,8 @@ static const float threehalf = 1.5; | ||
94 | We find the reciprocal square root and use that to compute the actual | ||
95 | square root. */ | ||
96 | |||
97 | -#ifdef __STDC__ | ||
98 | float | ||
99 | __ieee754_sqrtf (float b) | ||
100 | -#else | ||
101 | -float | ||
102 | -__ieee754_sqrtf (b) | ||
103 | - float b; | ||
104 | -#endif | ||
105 | { | ||
106 | if (__builtin_expect (b > 0, 1)) | ||
107 | { | ||
108 | @@ -99,3 +93,4 @@ __ieee754_sqrtf (b) | ||
109 | } | ||
110 | return f_washf (b); | ||
111 | } | ||
112 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
113 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
114 | =================================================================== | ||
115 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
116 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
117 | @@ -132,3 +132,4 @@ __ieee754_sqrt (b) | ||
118 | } | ||
119 | return f_wash (b); | ||
120 | } | ||
121 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
122 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
123 | =================================================================== | ||
124 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
125 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
126 | @@ -99,3 +99,4 @@ __ieee754_sqrtf (b) | ||
127 | } | ||
128 | return f_washf (b); | ||
129 | } | ||
130 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
131 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
132 | =================================================================== | ||
133 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
134 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
135 | @@ -132,3 +132,4 @@ __ieee754_sqrt (b) | ||
136 | } | ||
137 | return f_wash (b); | ||
138 | } | ||
139 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
140 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
141 | =================================================================== | ||
142 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
143 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
144 | @@ -99,3 +99,4 @@ __ieee754_sqrtf (b) | ||
145 | } | ||
146 | return f_washf (b); | ||
147 | } | ||
148 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
149 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
150 | =================================================================== | ||
151 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
152 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
153 | @@ -132,3 +132,4 @@ __ieee754_sqrt (b) | ||
154 | } | ||
155 | return f_wash (b); | ||
156 | } | ||
157 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
158 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
159 | =================================================================== | ||
160 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
161 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
162 | @@ -99,3 +99,4 @@ __ieee754_sqrtf (b) | ||
163 | } | ||
164 | return f_washf (b); | ||
165 | } | ||
166 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
167 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
168 | =================================================================== | ||
169 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
170 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
171 | @@ -132,3 +132,4 @@ __ieee754_sqrt (b) | ||
172 | } | ||
173 | return f_wash (b); | ||
174 | } | ||
175 | +strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
176 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
177 | =================================================================== | ||
178 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
179 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
180 | @@ -99,3 +99,4 @@ __ieee754_sqrtf (b) | ||
181 | } | ||
182 | return f_washf (b); | ||
183 | } | ||
184 | +strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/ppc_slow_ieee754_sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.18/ppc_slow_ieee754_sqrt.patch new file mode 100644 index 0000000000..60532cbd03 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/ppc_slow_ieee754_sqrt.patch | |||
@@ -0,0 +1,365 @@ | |||
1 | __ieee754_sqrt{,f} are now inline functions and call out __slow versions | ||
2 | |||
3 | |||
4 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
5 | Upstream-Status: Pending | ||
6 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
7 | =================================================================== | ||
8 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
9 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | ||
10 | @@ -40,7 +40,7 @@ static const float half = 0.5; | ||
11 | simultaneously. */ | ||
12 | |||
13 | double | ||
14 | -__ieee754_sqrt (double b) | ||
15 | +__slow_ieee754_sqrt (double b) | ||
16 | { | ||
17 | if (__builtin_expect (b > 0, 1)) | ||
18 | { | ||
19 | @@ -77,7 +77,7 @@ __ieee754_sqrt (double b) | ||
20 | |||
21 | /* Handle small numbers by scaling. */ | ||
22 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
23 | - return __ieee754_sqrt (b * two108) * twom54; | ||
24 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
25 | |||
26 | #define FMADD(a_, c_, b_) \ | ||
27 | ({ double __r; \ | ||
28 | @@ -126,4 +126,12 @@ __ieee754_sqrt (double b) | ||
29 | } | ||
30 | return f_wash (b); | ||
31 | } | ||
32 | + | ||
33 | +#undef __ieee754_sqrt | ||
34 | +double | ||
35 | +__ieee754_sqrt (double x) | ||
36 | +{ | ||
37 | + return __slow_ieee754_sqrt (x); | ||
38 | +} | ||
39 | + | ||
40 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
41 | Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
42 | =================================================================== | ||
43 | --- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
44 | +++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | ||
45 | @@ -38,7 +38,7 @@ static const float threehalf = 1.5; | ||
46 | square root. */ | ||
47 | |||
48 | float | ||
49 | -__ieee754_sqrtf (float b) | ||
50 | +__slow_ieee754_sqrtf (float b) | ||
51 | { | ||
52 | if (__builtin_expect (b > 0, 1)) | ||
53 | { | ||
54 | @@ -93,4 +93,10 @@ __ieee754_sqrtf (float b) | ||
55 | } | ||
56 | return f_washf (b); | ||
57 | } | ||
58 | +#undef __ieee754_sqrtf | ||
59 | +float | ||
60 | +__ieee754_sqrtf (float x) | ||
61 | +{ | ||
62 | + return __slow_ieee754_sqrtf (x); | ||
63 | +} | ||
64 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
65 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
66 | =================================================================== | ||
67 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
68 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | ||
69 | @@ -40,7 +40,7 @@ static const float half = 0.5; | ||
70 | simultaneously. */ | ||
71 | |||
72 | double | ||
73 | -__ieee754_sqrt (double b) | ||
74 | +__slow_ieee754_sqrt (double b) | ||
75 | { | ||
76 | if (__builtin_expect (b > 0, 1)) | ||
77 | { | ||
78 | @@ -77,7 +77,7 @@ __ieee754_sqrt (double b) | ||
79 | |||
80 | /* Handle small numbers by scaling. */ | ||
81 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
82 | - return __ieee754_sqrt (b * two108) * twom54; | ||
83 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
84 | |||
85 | #define FMADD(a_, c_, b_) \ | ||
86 | ({ double __r; \ | ||
87 | @@ -126,4 +126,12 @@ __ieee754_sqrt (double b) | ||
88 | } | ||
89 | return f_wash (b); | ||
90 | } | ||
91 | + | ||
92 | +#undef __ieee754_sqrt | ||
93 | +double | ||
94 | +__ieee754_sqrt (double x) | ||
95 | +{ | ||
96 | + return __slow_ieee754_sqrt (x); | ||
97 | +} | ||
98 | + | ||
99 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
100 | Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
101 | =================================================================== | ||
102 | --- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
103 | +++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | ||
104 | @@ -38,7 +38,7 @@ static const float threehalf = 1.5; | ||
105 | square root. */ | ||
106 | |||
107 | float | ||
108 | -__ieee754_sqrtf (float b) | ||
109 | +__slow_ieee754_sqrtf (float b) | ||
110 | { | ||
111 | if (__builtin_expect (b > 0, 1)) | ||
112 | { | ||
113 | @@ -93,4 +93,11 @@ __ieee754_sqrtf (float b) | ||
114 | } | ||
115 | return f_washf (b); | ||
116 | } | ||
117 | +#undef __ieee754_sqrtf | ||
118 | +float | ||
119 | +__ieee754_sqrtf (float x) | ||
120 | +{ | ||
121 | + return __slow_ieee754_sqrtf (x); | ||
122 | +} | ||
123 | + | ||
124 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
125 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
126 | =================================================================== | ||
127 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
128 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | ||
129 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
130 | |||
131 | #ifdef __STDC__ | ||
132 | double | ||
133 | -__ieee754_sqrt (double b) | ||
134 | +__slow_ieee754_sqrt (double b) | ||
135 | #else | ||
136 | double | ||
137 | -__ieee754_sqrt (b) | ||
138 | +__slow_ieee754_sqrt (b) | ||
139 | double b; | ||
140 | #endif | ||
141 | { | ||
142 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
143 | |||
144 | /* Handle small numbers by scaling. */ | ||
145 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
146 | - return __ieee754_sqrt (b * two108) * twom54; | ||
147 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
148 | |||
149 | #define FMADD(a_, c_, b_) \ | ||
150 | ({ double __r; \ | ||
151 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
152 | } | ||
153 | return f_wash (b); | ||
154 | } | ||
155 | + | ||
156 | +#undef __ieee754_sqrt | ||
157 | +double | ||
158 | +__ieee754_sqrt (double x) | ||
159 | +{ | ||
160 | + return __slow_ieee754_sqrt (x); | ||
161 | +} | ||
162 | + | ||
163 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
164 | Index: libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
165 | =================================================================== | ||
166 | --- libc.orig/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
167 | +++ libc/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | ||
168 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
169 | |||
170 | #ifdef __STDC__ | ||
171 | float | ||
172 | -__ieee754_sqrtf (float b) | ||
173 | +__slow_ieee754_sqrtf (float b) | ||
174 | #else | ||
175 | float | ||
176 | -__ieee754_sqrtf (b) | ||
177 | +__slow_ieee754_sqrtf (b) | ||
178 | float b; | ||
179 | #endif | ||
180 | { | ||
181 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
182 | } | ||
183 | return f_washf (b); | ||
184 | } | ||
185 | + | ||
186 | +#undef __ieee754_sqrtf | ||
187 | +float | ||
188 | +__ieee754_sqrtf (float x) | ||
189 | +{ | ||
190 | + return __slow_ieee754_sqrtf (x); | ||
191 | +} | ||
192 | + | ||
193 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
194 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
195 | =================================================================== | ||
196 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
197 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | ||
198 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
199 | |||
200 | #ifdef __STDC__ | ||
201 | double | ||
202 | -__ieee754_sqrt (double b) | ||
203 | +__slow_ieee754_sqrt (double b) | ||
204 | #else | ||
205 | double | ||
206 | -__ieee754_sqrt (b) | ||
207 | +__slow_ieee754_sqrt (b) | ||
208 | double b; | ||
209 | #endif | ||
210 | { | ||
211 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
212 | |||
213 | /* Handle small numbers by scaling. */ | ||
214 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
215 | - return __ieee754_sqrt (b * two108) * twom54; | ||
216 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
217 | |||
218 | #define FMADD(a_, c_, b_) \ | ||
219 | ({ double __r; \ | ||
220 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
221 | } | ||
222 | return f_wash (b); | ||
223 | } | ||
224 | + | ||
225 | +#undef __ieee754_sqrt | ||
226 | +double | ||
227 | +__ieee754_sqrt (double x) | ||
228 | +{ | ||
229 | + return __slow_ieee754_sqrt (x); | ||
230 | +} | ||
231 | + | ||
232 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
233 | Index: libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
234 | =================================================================== | ||
235 | --- libc.orig/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
236 | +++ libc/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | ||
237 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
238 | |||
239 | #ifdef __STDC__ | ||
240 | float | ||
241 | -__ieee754_sqrtf (float b) | ||
242 | +__slow_ieee754_sqrtf (float b) | ||
243 | #else | ||
244 | float | ||
245 | -__ieee754_sqrtf (b) | ||
246 | +__slow_ieee754_sqrtf (b) | ||
247 | float b; | ||
248 | #endif | ||
249 | { | ||
250 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
251 | } | ||
252 | return f_washf (b); | ||
253 | } | ||
254 | + | ||
255 | +#undef __ieee754_sqrtf | ||
256 | +float | ||
257 | +__ieee754_sqrtf (float x) | ||
258 | +{ | ||
259 | + return __slow_ieee754_sqrtf (x); | ||
260 | +} | ||
261 | + | ||
262 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
263 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
264 | =================================================================== | ||
265 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
266 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | ||
267 | @@ -41,10 +41,10 @@ static const float half = 0.5; | ||
268 | |||
269 | #ifdef __STDC__ | ||
270 | double | ||
271 | -__ieee754_sqrt (double b) | ||
272 | +__slow_ieee754_sqrt (double b) | ||
273 | #else | ||
274 | double | ||
275 | -__ieee754_sqrt (b) | ||
276 | +__slow_ieee754_sqrt (b) | ||
277 | double b; | ||
278 | #endif | ||
279 | { | ||
280 | @@ -83,7 +83,7 @@ __ieee754_sqrt (b) | ||
281 | |||
282 | /* Handle small numbers by scaling. */ | ||
283 | if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) | ||
284 | - return __ieee754_sqrt (b * two108) * twom54; | ||
285 | + return __slow_ieee754_sqrt (b * two108) * twom54; | ||
286 | |||
287 | #define FMADD(a_, c_, b_) \ | ||
288 | ({ double __r; \ | ||
289 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
290 | } | ||
291 | return f_wash (b); | ||
292 | } | ||
293 | + | ||
294 | +#undef __ieee754_sqrt | ||
295 | +double | ||
296 | +__ieee754_sqrt (double x) | ||
297 | +{ | ||
298 | + return __slow_ieee754_sqrt (x); | ||
299 | +} | ||
300 | + | ||
301 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
302 | Index: libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
303 | =================================================================== | ||
304 | --- libc.orig/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
305 | +++ libc/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | ||
306 | @@ -39,10 +39,10 @@ static const float threehalf = 1.5; | ||
307 | |||
308 | #ifdef __STDC__ | ||
309 | float | ||
310 | -__ieee754_sqrtf (float b) | ||
311 | +__slow_ieee754_sqrtf (float b) | ||
312 | #else | ||
313 | float | ||
314 | -__ieee754_sqrtf (b) | ||
315 | +__slow_ieee754_sqrtf (b) | ||
316 | float b; | ||
317 | #endif | ||
318 | { | ||
319 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
320 | } | ||
321 | return f_washf (b); | ||
322 | } | ||
323 | + | ||
324 | +#undef __ieee754_sqrtf | ||
325 | +float | ||
326 | +__ieee754_sqrtf (float x) | ||
327 | +{ | ||
328 | + return __slow_ieee754_sqrtf (x); | ||
329 | +} | ||
330 | + | ||
331 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
332 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
333 | =================================================================== | ||
334 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
335 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | ||
336 | @@ -132,4 +132,12 @@ __ieee754_sqrt (b) | ||
337 | } | ||
338 | return f_wash (b); | ||
339 | } | ||
340 | + | ||
341 | +#undef __ieee754_sqrt | ||
342 | +double | ||
343 | +__ieee754_sqrt (double x) | ||
344 | +{ | ||
345 | + return __slow_ieee754_sqrt (x); | ||
346 | +} | ||
347 | + | ||
348 | strong_alias (__ieee754_sqrt, __sqrt_finite) | ||
349 | Index: libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
350 | =================================================================== | ||
351 | --- libc.orig/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
352 | +++ libc/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | ||
353 | @@ -99,4 +99,12 @@ __ieee754_sqrtf (b) | ||
354 | } | ||
355 | return f_washf (b); | ||
356 | } | ||
357 | + | ||
358 | +#undef __ieee754_sqrtf | ||
359 | +float | ||
360 | +__ieee754_sqrtf (float x) | ||
361 | +{ | ||
362 | + return __slow_ieee754_sqrtf (x); | ||
363 | +} | ||
364 | + | ||
365 | strong_alias (__ieee754_sqrtf, __sqrtf_finite) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk.patch b/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk.patch new file mode 100644 index 0000000000..ca5f17ba58 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk.patch | |||
@@ -0,0 +1,108 @@ | |||
1 | Upstream-Status: Inappropriate [SDK specific] | ||
2 | |||
3 | This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings | ||
4 | and lengths as well as ld.so.cache path in the dynamic loader to specific | ||
5 | sections in memory. The sections that contain paths have been allocated a 4096 | ||
6 | byte section, which is the maximum path length in linux. This will allow the | ||
7 | relocating script to parse the ELF binary, detect the section and easily replace | ||
8 | the strings in a certain path. | ||
9 | |||
10 | Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> | ||
11 | |||
12 | Index: libc/elf/interp.c | ||
13 | =================================================================== | ||
14 | --- libc.orig/elf/interp.c | ||
15 | +++ libc/elf/interp.c | ||
16 | @@ -16,5 +16,5 @@ | ||
17 | License along with the GNU C Library; if not, see | ||
18 | <http://www.gnu.org/licenses/>. */ | ||
19 | |||
20 | -const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp"))) | ||
21 | +const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp"))) | ||
22 | = RUNTIME_LINKER; | ||
23 | Index: libc/elf/dl-load.c | ||
24 | =================================================================== | ||
25 | --- libc.orig/elf/dl-load.c | ||
26 | +++ libc/elf/dl-load.c | ||
27 | @@ -144,8 +144,8 @@ static size_t max_capstrlen attribute_re | ||
28 | /* Get the generated information about the trusted directories. */ | ||
29 | #include "trusted-dirs.h" | ||
30 | |||
31 | -static const char system_dirs[] = SYSTEM_DIRS; | ||
32 | -static const size_t system_dirs_len[] = | ||
33 | +static const char system_dirs[4096] __attribute__ ((section (".sysdirs"))) = SYSTEM_DIRS; | ||
34 | +volatile static const size_t system_dirs_len[] __attribute__ ((section (".sysdirslen"))) = | ||
35 | { | ||
36 | SYSTEM_DIRS_LEN | ||
37 | }; | ||
38 | Index: libc/elf/dl-cache.c | ||
39 | =================================================================== | ||
40 | --- libc.orig/elf/dl-cache.c | ||
41 | +++ libc/elf/dl-cache.c | ||
42 | @@ -133,6 +133,10 @@ do \ | ||
43 | while (0) | ||
44 | |||
45 | |||
46 | +const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))) = | ||
47 | + SYSCONFDIR "/ld.so.cache"; | ||
48 | + | ||
49 | + | ||
50 | int | ||
51 | internal_function | ||
52 | _dl_cache_libcmp (const char *p1, const char *p2) | ||
53 | Index: libc/elf/ldconfig.c | ||
54 | =================================================================== | ||
55 | --- libc.orig/elf/ldconfig.c | ||
56 | +++ libc/elf/ldconfig.c | ||
57 | @@ -166,6 +166,9 @@ static struct argp argp = | ||
58 | options, parse_opt, NULL, doc, NULL, more_help, NULL | ||
59 | }; | ||
60 | |||
61 | + | ||
62 | +extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); | ||
63 | + | ||
64 | /* Check if string corresponds to an important hardware capability or | ||
65 | a platform. */ | ||
66 | static int | ||
67 | Index: libc/sysdeps/generic/dl-cache.h | ||
68 | =================================================================== | ||
69 | --- libc.orig/sysdeps/generic/dl-cache.h | ||
70 | +++ libc/sysdeps/generic/dl-cache.h | ||
71 | @@ -27,10 +27,6 @@ | ||
72 | ((flags) == 1 || (flags) == _DL_CACHE_DEFAULT_ID) | ||
73 | #endif | ||
74 | |||
75 | -#ifndef LD_SO_CACHE | ||
76 | -# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache" | ||
77 | -#endif | ||
78 | - | ||
79 | #ifndef add_system_dir | ||
80 | # define add_system_dir(dir) add_dir (dir) | ||
81 | #endif | ||
82 | Index: libc/elf/rtld.c | ||
83 | =================================================================== | ||
84 | --- libc.orig/elf/rtld.c | ||
85 | +++ libc/elf/rtld.c | ||
86 | @@ -99,6 +99,7 @@ uintptr_t __pointer_chk_guard_local | ||
87 | strong_alias (__pointer_chk_guard_local, __pointer_chk_guard) | ||
88 | #endif | ||
89 | |||
90 | +extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); | ||
91 | |||
92 | /* List of auditing DSOs. */ | ||
93 | static struct audit_list | ||
94 | @@ -1031,12 +1032,12 @@ of this helper program; chances are you | ||
95 | --list list all dependencies and how they are resolved\n\ | ||
96 | --verify verify that given object really is a dynamically linked\n\ | ||
97 | object we can handle\n\ | ||
98 | - --inhibit-cache Do not use " LD_SO_CACHE "\n\ | ||
99 | + --inhibit-cache Do not use %s\n\ | ||
100 | --library-path PATH use given PATH instead of content of the environment\n\ | ||
101 | variable LD_LIBRARY_PATH\n\ | ||
102 | --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n\ | ||
103 | in LIST\n\ | ||
104 | - --audit LIST use objects named in LIST as auditors\n"); | ||
105 | + --audit LIST use objects named in LIST as auditors\n", LD_SO_CACHE); | ||
106 | |||
107 | ++_dl_skip_args; | ||
108 | --_dl_argc; | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk_fix_openpath.patch b/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk_fix_openpath.patch new file mode 100644 index 0000000000..f164f8f9ae --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/relocatable_sdk_fix_openpath.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | Upstream-Status: Inappropriate [SDK specific] | ||
2 | |||
3 | eglibc-nativesdk: Fix buffer overrun with a relocated SDK | ||
4 | |||
5 | When ld-linux-*.so.2 is relocated to a path that is longer than the | ||
6 | original fixed location, the dynamic loader will crash in open_path | ||
7 | because it implicitly assumes that max_dirnamelen is a fixed size that | ||
8 | never changes. | ||
9 | |||
10 | The allocated buffer will not be large enough to contain the directory | ||
11 | path string which is larger than the fixed location provided at build | ||
12 | time. | ||
13 | |||
14 | Signed-off-by: Jason Wessel <jason.wessel@windriver.com> | ||
15 | |||
16 | --- | ||
17 | elf/dl-load.c | 12 ++++++++++++ | ||
18 | 1 file changed, 12 insertions(+) | ||
19 | |||
20 | --- a/elf/dl-load.c | ||
21 | +++ b/elf/dl-load.c | ||
22 | @@ -1919,7 +1919,19 @@ open_path (const char *name, size_t name | ||
23 | given on the command line when rtld is run directly. */ | ||
24 | return -1; | ||
25 | |||
26 | + do | ||
27 | + { | ||
28 | + struct r_search_path_elem *this_dir = *dirs; | ||
29 | + if (this_dir->dirnamelen > max_dirnamelen) | ||
30 | + { | ||
31 | + max_dirnamelen = this_dir->dirnamelen; | ||
32 | + } | ||
33 | + } | ||
34 | + while (*++dirs != NULL); | ||
35 | + | ||
36 | buf = alloca (max_dirnamelen + max_capstrlen + namelen); | ||
37 | + | ||
38 | + dirs = sps->dirs; | ||
39 | do | ||
40 | { | ||
41 | struct r_search_path_elem *this_dir = *dirs; | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/tzselect-awk.patch b/meta/recipes-core/eglibc/eglibc-2.18/tzselect-awk.patch new file mode 100644 index 0000000000..dc9949bec9 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/tzselect-awk.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | tzselect: workaround bug in busybox awk | ||
2 | |||
3 | busybox's version of awk in version 1.20.2 and lower doesn't support | ||
4 | escape sequences in conjunction with the -F option. Use -v FS= instead | ||
5 | as a workaround until the bug is fixed. | ||
6 | |||
7 | Reference: | ||
8 | https://bugs.busybox.net/show_bug.cgi?id=5126 | ||
9 | |||
10 | Upstream-Status: Inappropriate [other] | ||
11 | |||
12 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
13 | |||
14 | --- libc/timezone/tzselect.ksh | ||
15 | +++ libc/timezone/tzselect.ksh | ||
16 | @@ -208,7 +208,7 @@ while | ||
17 | TZ_for_date=$TZ;; | ||
18 | *) | ||
19 | # Get list of names of countries in the continent or ocean. | ||
20 | - countries=$($AWK -F'\t' \ | ||
21 | + countries=$($AWK -v FS="\t" \ | ||
22 | -v continent="$continent" \ | ||
23 | -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ | ||
24 | ' | ||
25 | @@ -252,7 +252,7 @@ while | ||
26 | |||
27 | |||
28 | # Get list of names of time zone rule regions in the country. | ||
29 | - regions=$($AWK -F'\t' \ | ||
30 | + regions=$($AWK -v FS="\t" \ | ||
31 | -v country="$country" \ | ||
32 | -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ | ||
33 | ' | ||
34 | @@ -289,7 +289,7 @@ while | ||
35 | esac | ||
36 | |||
37 | # Determine TZ from country and region. | ||
38 | - TZ=$($AWK -F'\t' \ | ||
39 | + TZ=$($AWK -v FS="\t" \ | ||
40 | -v country="$country" \ | ||
41 | -v region="$region" \ | ||
42 | -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.18/tzselect-sh.patch b/meta/recipes-core/eglibc/eglibc-2.18/tzselect-sh.patch new file mode 100644 index 0000000000..e9a3691bbb --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/tzselect-sh.patch | |||
@@ -0,0 +1,156 @@ | |||
1 | tzselect: eliminate ksh-dependency | ||
2 | |||
3 | This is an adapted version of a patch originally | ||
4 | by Peter Seebach <peter.seebach@windriver.com> found here: | ||
5 | http://www.eglibc.org/archives/patches/msg00671.html | ||
6 | |||
7 | Upstream-Status: Pending | ||
8 | |||
9 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
10 | |||
11 | Index: libc/timezone/tzselect.ksh | ||
12 | =================================================================== | ||
13 | --- libc.orig/timezone/tzselect.ksh 2012-11-17 09:50:14.000000000 -0800 | ||
14 | +++ libc/timezone/tzselect.ksh 2013-01-03 22:46:26.423844259 -0800 | ||
15 | @@ -1,4 +1,4 @@ | ||
16 | -#!/bin/bash | ||
17 | +#!/bin/sh | ||
18 | |||
19 | PKGVERSION='(tzcode) ' | ||
20 | TZVERSION=see_Makefile | ||
21 | @@ -11,23 +11,80 @@ | ||
22 | |||
23 | # Porting notes: | ||
24 | # | ||
25 | -# This script requires a Posix-like shell with the extension of a | ||
26 | -# 'select' statement. The 'select' statement was introduced in the | ||
27 | -# Korn shell and is available in Bash and other shell implementations. | ||
28 | -# If your host lacks both Bash and the Korn shell, you can get their | ||
29 | -# source from one of these locations: | ||
30 | +# func_select allows this script to run on shells (such as busybox ash) | ||
31 | +# which lack the ksh "select" builtin. | ||
32 | # | ||
33 | -# Bash <http://www.gnu.org/software/bash/bash.html> | ||
34 | -# Korn Shell <http://www.kornshell.com/> | ||
35 | -# Public Domain Korn Shell <http://www.cs.mun.ca/~michael/pdksh/> | ||
36 | -# | ||
37 | -# This script also uses several features of modern awk programs. | ||
38 | +# This script uses several features of modern awk programs. | ||
39 | # If your host lacks awk, or has an old awk that does not conform to Posix, | ||
40 | # you can use either of the following free programs instead: | ||
41 | # | ||
42 | # Gawk (GNU awk) <http://www.gnu.org/software/gawk/> | ||
43 | # mawk <http://invisible-island.net/mawk/> | ||
44 | |||
45 | +# Implement ksh-style select in POSIX shell | ||
46 | + | ||
47 | +# We need a mostly-portable echo-n. | ||
48 | +case `echo -n "foo\c"` in | ||
49 | +*n*c*) func_echo_n() { echo "$*"; } ;; | ||
50 | +*n*) func_echo_n() { echo "$*\c"; } ;; | ||
51 | +*) func_echo_n() { echo -n "$*"; } ;; | ||
52 | +esac | ||
53 | + | ||
54 | +# Synopsis: Replace "select foo in list" with "while func_select foo in list" | ||
55 | +# and this works just like ksh, so far as I know. | ||
56 | +func_select () { | ||
57 | + func_select_args=0 | ||
58 | + if expr "$1" : "[_a-zA-Z][_a-zA-Z0-9]*$" > /dev/null; then | ||
59 | + func_select_var=$1 | ||
60 | + else | ||
61 | + echo >&2 "func_select: '$1' is not a valid variable name." | ||
62 | + return 1 | ||
63 | + fi | ||
64 | + shift 1 | ||
65 | + case $1 in | ||
66 | + in) shift 1;; | ||
67 | + *) echo >&2 "func_select: usage: func_select var in ... (you must provide | ||
68 | +arguments)"; return 1;; | ||
69 | + esac | ||
70 | + case $# in | ||
71 | + 0) echo >&2 "func_select: usage: func_select var in ..."; return 1;; | ||
72 | + esac | ||
73 | + for func_select_arg | ||
74 | + do | ||
75 | + func_select_args=`expr $func_select_args + 1` | ||
76 | + eval func_select_a_$func_select_args=\$func_select_arg | ||
77 | + done | ||
78 | + REPLY="" | ||
79 | + while : | ||
80 | + do | ||
81 | + if test -z "$REPLY"; then | ||
82 | + func_select_i=1 | ||
83 | + while test $func_select_i -le $func_select_args | ||
84 | + do | ||
85 | + eval echo "\"\$func_select_i) \$func_select_a_$func_select_i\"" | ||
86 | + func_select_i=`expr $func_select_i + 1` | ||
87 | + done | ||
88 | + fi | ||
89 | + func_echo_n "${PS3-#? }" >&2 | ||
90 | + if read REPLY; then | ||
91 | + if test -n "${REPLY}"; then | ||
92 | + if expr "$REPLY" : '[1-9][0-9]*$' > /dev/null; then | ||
93 | + if test "$REPLY" -ge 1 && test "$REPLY" -le $func_select_args; then | ||
94 | + eval $func_select_var=\$func_select_a_$REPLY | ||
95 | + else | ||
96 | + eval $func_select_var= | ||
97 | + fi | ||
98 | + else | ||
99 | + eval $func_select_var= | ||
100 | + fi | ||
101 | + return 0 | ||
102 | + fi | ||
103 | + else | ||
104 | + eval $func_select_var= | ||
105 | + return 1 | ||
106 | + fi | ||
107 | + done | ||
108 | +} | ||
109 | |||
110 | # Specify default values for environment variables if they are unset. | ||
111 | : ${AWK=awk} | ||
112 | @@ -72,7 +129,7 @@ | ||
113 | |||
114 | |||
115 | # Work around a bug in bash 1.14.7 and earlier, where $PS3 is sent to stdout. | ||
116 | -case $(echo 1 | (select x in x; do break; done) 2>/dev/null) in | ||
117 | +case $(echo 1 | (while func_select x in x; do break; done) 2>/dev/null) in | ||
118 | ?*) PS3= | ||
119 | esac | ||
120 | |||
121 | @@ -92,7 +149,7 @@ | ||
122 | |||
123 | echo >&2 'Please select a continent or ocean.' | ||
124 | |||
125 | - select continent in \ | ||
126 | + while func_select continent in \ | ||
127 | Africa \ | ||
128 | Americas \ | ||
129 | Antarctica \ | ||
130 | @@ -172,7 +229,7 @@ | ||
131 | case $countries in | ||
132 | *"$newline"*) | ||
133 | echo >&2 'Please select a country.' | ||
134 | - select country in $countries | ||
135 | + while func_select country in $countries | ||
136 | do | ||
137 | case $country in | ||
138 | '') echo >&2 'Please enter a number in range.';; | ||
139 | @@ -211,7 +268,7 @@ | ||
140 | *"$newline"*) | ||
141 | echo >&2 'Please select one of the following' \ | ||
142 | 'time zone regions.' | ||
143 | - select region in $regions | ||
144 | + while func_select region in $regions | ||
145 | do | ||
146 | case $region in | ||
147 | '') echo >&2 'Please enter a number in range.';; | ||
148 | @@ -288,7 +345,7 @@ | ||
149 | echo >&2 "Is the above information OK?" | ||
150 | |||
151 | ok= | ||
152 | - select ok in Yes No | ||
153 | + while func_select ok in Yes No | ||
154 | do | ||
155 | case $ok in | ||
156 | '') echo >&2 'Please enter 1 for Yes, or 2 for No.';; | ||
diff --git a/meta/recipes-core/eglibc/eglibc-collateral.inc b/meta/recipes-core/eglibc/eglibc-collateral.inc new file mode 100644 index 0000000000..8feca09f2e --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-collateral.inc | |||
@@ -0,0 +1,12 @@ | |||
1 | INHIBIT_DEFAULT_DEPS = "1" | ||
2 | LICENSE = "GPLv2 & LGPLv2.1" | ||
3 | HOMEPAGE = "http://www.eglibc.org/" | ||
4 | |||
5 | do_fetch[noexec] = "1" | ||
6 | do_unpack[noexec] = "1" | ||
7 | do_patch[noexec] = "1" | ||
8 | do_configure[noexec] = "1" | ||
9 | do_compile[noexec] = "1" | ||
10 | |||
11 | do_install[depends] += "virtual/${MLPREFIX}libc:do_populate_sysroot" | ||
12 | |||
diff --git a/meta/recipes-core/eglibc/eglibc-common.inc b/meta/recipes-core/eglibc/eglibc-common.inc new file mode 100644 index 0000000000..d18786ab93 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-common.inc | |||
@@ -0,0 +1,9 @@ | |||
1 | SUMMARY = "Embedded GLIBC (GNU C Library)" | ||
2 | DESCRIPTION = "Embedded GLIBC (EGLIBC) is a variant of the GNU C Library (GLIBC) that is designed to work well on embedded systems. EGLIBC strives to be source and binary compatible with GLIBC. EGLIBC's goals include reduced footprint, configurable components, better support for cross-compilation and cross-testing." | ||
3 | HOMEPAGE = "http://www.eglibc.org/home" | ||
4 | SECTION = "libs" | ||
5 | LICENSE = "GPLv2 & LGPLv2.1" | ||
6 | LIC_FILES_CHKSUM ?= "file://LICENSES;md5=07a394b26e0902b9ffdec03765209770 \ | ||
7 | file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ | ||
8 | file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ | ||
9 | file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff " | ||
diff --git a/meta/recipes-core/eglibc/eglibc-initial.inc b/meta/recipes-core/eglibc/eglibc-initial.inc new file mode 100644 index 0000000000..83b1d2cecf --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-initial.inc | |||
@@ -0,0 +1,80 @@ | |||
1 | require eglibc-common.inc | ||
2 | |||
3 | DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial" | ||
4 | PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" | ||
5 | |||
6 | PACKAGES = "" | ||
7 | PACKAGES_DYNAMIC = "" | ||
8 | |||
9 | STAGINGCC = "gcc-cross-initial" | ||
10 | STAGINGCC_class-nativesdk = "gcc-crosssdk-initial" | ||
11 | TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" | ||
12 | |||
13 | do_configure () { | ||
14 | sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure | ||
15 | chmod +x ${S}/configure | ||
16 | (cd ${S} && gnu-configize) || die "failure in running gnu-configize" | ||
17 | find ${S} -name "configure" | xargs touch | ||
18 | ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \ | ||
19 | --prefix=/usr \ | ||
20 | --without-cvs --disable-sanity-checks \ | ||
21 | --with-headers=${STAGING_DIR_TARGET}${includedir} \ | ||
22 | --with-kconfig=${STAGING_BINDIR_NATIVE} \ | ||
23 | --enable-hacker-mode --enable-addons | ||
24 | } | ||
25 | |||
26 | do_compile () { | ||
27 | : | ||
28 | } | ||
29 | |||
30 | do_install () { | ||
31 | oe_runmake cross-compiling=yes install_root=${D} \ | ||
32 | includedir='${includedir}' prefix='${prefix}' \ | ||
33 | install-bootstrap-headers=yes install-headers | ||
34 | |||
35 | oe_runmake csu/subdir_lib | ||
36 | mkdir -p ${D}${libdir}/ | ||
37 | install -m 644 csu/crt[1in].o ${D}${libdir} | ||
38 | |||
39 | # Two headers -- stubs.h and features.h -- aren't installed by install-headers, | ||
40 | # so do them by hand. We can tolerate an empty stubs.h for the moment. | ||
41 | # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html | ||
42 | mkdir -p ${D}${includedir}/gnu/ | ||
43 | touch ${D}${includedir}/gnu/stubs.h | ||
44 | cp ${S}/include/features.h ${D}${includedir}/features.h | ||
45 | |||
46 | if [ -e ${B}/bits/stdio_lim.h ]; then | ||
47 | cp ${B}/bits/stdio_lim.h ${D}${includedir}/bits/ | ||
48 | fi | ||
49 | # add links to linux-libc-headers: final eglibc build need this. | ||
50 | for t in linux asm asm-generic; do | ||
51 | ln -s ${STAGING_DIR_TARGET}${includedir}/$t ${D}${includedir}/ | ||
52 | done | ||
53 | } | ||
54 | |||
55 | do_install_locale() { | ||
56 | : | ||
57 | } | ||
58 | |||
59 | do_siteconfig () { | ||
60 | : | ||
61 | } | ||
62 | |||
63 | SSTATEPOSTINSTFUNCS += "eglibcinitial_sstate_postinst" | ||
64 | eglibcinitial_sstate_postinst() { | ||
65 | if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ] | ||
66 | then | ||
67 | # Recreate the symlinks to ensure they point to the correct location | ||
68 | for t in linux asm asm-generic; do | ||
69 | rm -f ${STAGING_DIR_TCBOOTSTRAP}${includedir}/$t | ||
70 | ln -s ${STAGING_DIR_TARGET}${includedir}/$t ${STAGING_DIR_TCBOOTSTRAP}${includedir}/ | ||
71 | done | ||
72 | fi | ||
73 | } | ||
74 | |||
75 | do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_TCBOOTSTRAP}/" | ||
76 | |||
77 | # We don't install any scripts so there is nothing to evacuate | ||
78 | do_evacuate_scripts () { | ||
79 | : | ||
80 | } | ||
diff --git a/meta/recipes-core/eglibc/eglibc-initial_2.17.bb b/meta/recipes-core/eglibc/eglibc-initial_2.17.bb new file mode 100644 index 0000000000..de45079603 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-initial_2.17.bb | |||
@@ -0,0 +1,11 @@ | |||
1 | require eglibc_${PV}.bb | ||
2 | require eglibc-initial.inc | ||
3 | |||
4 | DEPENDS += "kconfig-frontends-native" | ||
5 | |||
6 | # main eglibc recipes muck with TARGET_CPPFLAGS to point into | ||
7 | # final target sysroot but we | ||
8 | # are not there when building eglibc-initial | ||
9 | # so reset it here | ||
10 | |||
11 | TARGET_CPPFLAGS = "" | ||
diff --git a/meta/recipes-core/eglibc/eglibc-initial_2.18.bb b/meta/recipes-core/eglibc/eglibc-initial_2.18.bb new file mode 100644 index 0000000000..de45079603 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-initial_2.18.bb | |||
@@ -0,0 +1,11 @@ | |||
1 | require eglibc_${PV}.bb | ||
2 | require eglibc-initial.inc | ||
3 | |||
4 | DEPENDS += "kconfig-frontends-native" | ||
5 | |||
6 | # main eglibc recipes muck with TARGET_CPPFLAGS to point into | ||
7 | # final target sysroot but we | ||
8 | # are not there when building eglibc-initial | ||
9 | # so reset it here | ||
10 | |||
11 | TARGET_CPPFLAGS = "" | ||
diff --git a/meta/recipes-core/eglibc/eglibc-ld.inc b/meta/recipes-core/eglibc/eglibc-ld.inc new file mode 100644 index 0000000000..b1701f008b --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-ld.inc | |||
@@ -0,0 +1,54 @@ | |||
1 | def ld_append_if_tune_exists(d, infos, dict): | ||
2 | tune = d.getVar("DEFAULTTUNE", True) or "" | ||
3 | libdir = d.getVar("base_libdir", True) or "" | ||
4 | if tune in dict: | ||
5 | infos['ldconfig'].add('{"' + libdir + '/' + dict[tune][0] + '",' + dict[tune][1] + ' }') | ||
6 | infos['lddrewrite'].add(libdir+'/'+dict[tune][0]) | ||
7 | |||
8 | def eglibc_dl_info(d): | ||
9 | ld_info_all = { | ||
10 | "mips": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
11 | "mips64-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
12 | "mips64": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
13 | "mipsel": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
14 | "mips64el-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
15 | "mips64el": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
16 | "mips-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
17 | "mips64-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
18 | "mips64-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
19 | "mips64el-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
20 | "mips64el-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
21 | "powerpc": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
22 | "powerpc-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], | ||
23 | "powerpc64": ["ld64.so.1", "FLAG_ELF_LIBC6"], | ||
24 | "powerpc64-nf": ["ld64.so.1", "FLAG_ELF_LIBC6"], | ||
25 | "core2": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], | ||
26 | "core2-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"], | ||
27 | "x86": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], | ||
28 | "x86-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"], | ||
29 | "i586": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], | ||
30 | } | ||
31 | |||
32 | infos = {'ldconfig':set(), 'lddrewrite':set()} | ||
33 | ld_append_if_tune_exists(d, infos, ld_info_all) | ||
34 | |||
35 | #DEFAULTTUNE_MULTILIB_ORIGINAL | ||
36 | original_tune=d.getVar("DEFAULTTUNE_MULTILIB_ORIGINAL",True) | ||
37 | if original_tune: | ||
38 | localdata = bb.data.createCopy(d) | ||
39 | localdata.setVar("DEFAULTTUNE", original_tune) | ||
40 | ld_append_if_tune_exists(localdata, infos, ld_info_all) | ||
41 | |||
42 | variants = d.getVar("MULTILIB_VARIANTS", True) or "" | ||
43 | for item in variants.split(): | ||
44 | localdata = bb.data.createCopy(d) | ||
45 | overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item | ||
46 | localdata.setVar("OVERRIDES", overrides) | ||
47 | bb.data.update_data(localdata) | ||
48 | ld_append_if_tune_exists(localdata, infos, ld_info_all) | ||
49 | infos['ldconfig'] = ','.join(infos['ldconfig']) | ||
50 | infos['lddrewrite'] = ' '.join(infos['lddrewrite']) | ||
51 | return infos | ||
52 | |||
53 | EGLIBC_KNOWN_INTERPRETER_NAMES = "${@eglibc_dl_info(d)['ldconfig']}" | ||
54 | RTLDLIST = "${@eglibc_dl_info(d)['lddrewrite']}" | ||
diff --git a/meta/recipes-core/eglibc/eglibc-locale.inc b/meta/recipes-core/eglibc/eglibc-locale.inc new file mode 100644 index 0000000000..c3fcc6d749 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-locale.inc | |||
@@ -0,0 +1,92 @@ | |||
1 | include eglibc-collateral.inc | ||
2 | |||
3 | SUMMARY = "Locale data from eglibc" | ||
4 | |||
5 | BPN = "eglibc" | ||
6 | LOCALEBASEPN = "${MLPREFIX}eglibc" | ||
7 | |||
8 | # eglibc-collateral.inc inhibits all default deps, but do_package needs objcopy | ||
9 | # ERROR: objcopy failed with exit code 127 (cmd was 'i586-webos-linux-objcopy' --only-keep-debug 'eglibc-locale/2.17-r0/package/usr/lib/gconv/IBM1166.so' 'eglibc-locale/2.17-r0/package/usr/lib/gconv/.debug/IBM1166.so') | ||
10 | # ERROR: Function failed: split_and_strip_files | ||
11 | DEPENDS_class-target = "virtual/${TARGET_PREFIX}binutils" | ||
12 | |||
13 | # Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION | ||
14 | # is set. The idea is to avoid running localedef on the target (at first boot) | ||
15 | # to decrease initial boot time and avoid localedef being killed by the OOM | ||
16 | # killer which used to effectively break i18n on machines with < 128MB RAM. | ||
17 | |||
18 | # default to disabled | ||
19 | ENABLE_BINARY_LOCALE_GENERATION ?= "0" | ||
20 | ENABLE_BINARY_LOCALE_GENERATION_pn-nativesdk-eglibc-locale = "0" | ||
21 | |||
22 | #enable locale generation on these arches | ||
23 | # BINARY_LOCALE_ARCHES is a space separated list of regular expressions | ||
24 | BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips mips64" | ||
25 | |||
26 | # set "1" to use cross-localedef for locale generation | ||
27 | # set "0" for qemu emulation of native localedef for locale generation | ||
28 | LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1" | ||
29 | |||
30 | PROVIDES = "virtual/libc-locale" | ||
31 | |||
32 | PACKAGES = "localedef ${PN}-dbg" | ||
33 | |||
34 | PACKAGES_DYNAMIC = "^locale-base-.* \ | ||
35 | ^eglibc-gconv-.* ^eglibc-charmap-.* ^eglibc-localedata-.* ^eglibc-binary-localedata-.* \ | ||
36 | ^glibc-gconv-.* ^glibc-charmap-.* ^glibc-localedata-.* ^glibc-binary-localedata-.*" | ||
37 | |||
38 | # Create a eglibc-binaries package | ||
39 | ALLOW_EMPTY_${BPN}-binaries = "1" | ||
40 | PACKAGES += "${BPN}-binaries" | ||
41 | RRECOMMENDS_${BPN}-binaries = "${@" ".join([p for p in d.getVar('PACKAGES', True).split() if p.find("eglibc-binary") != -1])}" | ||
42 | |||
43 | # Create a eglibc-charmaps package | ||
44 | ALLOW_EMPTY_${BPN}-charmaps = "1" | ||
45 | PACKAGES += "${BPN}-charmaps" | ||
46 | RRECOMMENDS_${BPN}-charmaps = "${@" ".join([p for p in d.getVar('PACKAGES', True).split() if p.find("eglibc-charmap") != -1])}" | ||
47 | |||
48 | # Create a eglibc-gconvs package | ||
49 | ALLOW_EMPTY_${BPN}-gconvs = "1" | ||
50 | PACKAGES += "${BPN}-gconvs" | ||
51 | RRECOMMENDS_${BPN}-gconvs = "${@" ".join([p for p in d.getVar('PACKAGES', True).split() if p.find("eglibc-gconv") != -1])}" | ||
52 | |||
53 | # Create a eglibc-localedatas package | ||
54 | ALLOW_EMPTY_${BPN}-localedatas = "1" | ||
55 | PACKAGES += "${BPN}-localedatas" | ||
56 | RRECOMMENDS_${BPN}-localedatas = "${@" ".join([p for p in d.getVar('PACKAGES', True).split() if p.find("eglibc-localedata") != -1])}" | ||
57 | |||
58 | DESCRIPTION_localedef = "eglibc: compile locale definition files" | ||
59 | |||
60 | # eglibc-gconv is dynamically added into PACKAGES, thus | ||
61 | # FILES_eglibc-gconv will not be automatically extended in multilib. | ||
62 | # Explicitly add ${MLPREFIX} for FILES_eglibc-gconv. | ||
63 | FILES_${MLPREFIX}eglibc-gconv = "${libdir}/gconv/*" | ||
64 | FILES_${PN}-dbg += "${libdir}/gconv/.debug/*" | ||
65 | FILES_localedef = "${bindir}/localedef" | ||
66 | |||
67 | LOCALETREESRC = "${STAGING_INCDIR}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}" | ||
68 | |||
69 | do_install () { | ||
70 | mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir} ${D}${localedir} | ||
71 | if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then | ||
72 | cp -fpPR ${LOCALETREESRC}/${bindir}/* ${D}${bindir} | ||
73 | fi | ||
74 | if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then | ||
75 | cp -fpPR ${LOCALETREESRC}/${localedir}/* ${D}${localedir} | ||
76 | fi | ||
77 | if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then | ||
78 | cp -fpPR ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir} | ||
79 | fi | ||
80 | if [ -e ${LOCALETREESRC}/${datadir}/i18n ]; then | ||
81 | cp -fpPR ${LOCALETREESRC}/${datadir}/i18n ${D}${datadir} | ||
82 | fi | ||
83 | if [ -e ${LOCALETREESRC}/${datadir}/locale ]; then | ||
84 | cp -fpPR ${LOCALETREESRC}/${datadir}/locale ${D}${datadir} | ||
85 | fi | ||
86 | chown root.root -R ${D} | ||
87 | cp -fpPR ${LOCALETREESRC}/SUPPORTED ${WORKDIR} | ||
88 | } | ||
89 | |||
90 | inherit libc-package | ||
91 | |||
92 | BBCLASSEXTEND = "nativesdk" | ||
diff --git a/meta/recipes-core/eglibc/eglibc-locale_2.17.bb b/meta/recipes-core/eglibc/eglibc-locale_2.17.bb new file mode 100644 index 0000000000..ce6c1d2320 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-locale_2.17.bb | |||
@@ -0,0 +1 @@ | |||
require eglibc-locale.inc | |||
diff --git a/meta/recipes-core/eglibc/eglibc-locale_2.18.bb b/meta/recipes-core/eglibc/eglibc-locale_2.18.bb new file mode 100644 index 0000000000..ce6c1d2320 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-locale_2.18.bb | |||
@@ -0,0 +1 @@ | |||
require eglibc-locale.inc | |||
diff --git a/meta/recipes-core/eglibc/eglibc-mtrace.inc b/meta/recipes-core/eglibc/eglibc-mtrace.inc new file mode 100644 index 0000000000..d68783e439 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-mtrace.inc | |||
@@ -0,0 +1,13 @@ | |||
1 | include eglibc-collateral.inc | ||
2 | |||
3 | SUMMARY = "mtrace utility provided by eglibc" | ||
4 | DESCRIPTION = "mtrace utility provided by eglibc" | ||
5 | RDEPENDS_${PN} = "perl" | ||
6 | RPROVIDES_${PN} = "libc-mtrace" | ||
7 | |||
8 | SRC = "${STAGING_INCDIR}/eglibc-scripts-internal-${MULTIMACH_TARGET_SYS}" | ||
9 | |||
10 | do_install() { | ||
11 | install -d -m 0755 ${D}${bindir} | ||
12 | install -m 0755 ${SRC}/mtrace ${D}${bindir}/ | ||
13 | } | ||
diff --git a/meta/recipes-core/eglibc/eglibc-mtrace_2.17.bb b/meta/recipes-core/eglibc/eglibc-mtrace_2.17.bb new file mode 100644 index 0000000000..6fa2be9cc9 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-mtrace_2.17.bb | |||
@@ -0,0 +1 @@ | |||
require eglibc-mtrace.inc | |||
diff --git a/meta/recipes-core/eglibc/eglibc-mtrace_2.18.bb b/meta/recipes-core/eglibc/eglibc-mtrace_2.18.bb new file mode 100644 index 0000000000..6fa2be9cc9 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-mtrace_2.18.bb | |||
@@ -0,0 +1 @@ | |||
require eglibc-mtrace.inc | |||
diff --git a/meta/recipes-core/eglibc/eglibc-options.inc b/meta/recipes-core/eglibc/eglibc-options.inc new file mode 100644 index 0000000000..c55d05d163 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-options.inc | |||
@@ -0,0 +1,128 @@ | |||
1 | def eglibc_cfg(feature, features, tokens, cnf): | ||
2 | if type(tokens) == type(""): | ||
3 | tokens = [tokens] | ||
4 | if type(features) == type([]) and feature in features: | ||
5 | cnf.extend([token + '=y' for token in tokens]) | ||
6 | else: | ||
7 | for token in tokens: | ||
8 | cnf.extend([token + '=n']) | ||
9 | if token == 'OPTION_EGLIBC_NSSWITCH': | ||
10 | cnf.extend(["OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG=\"${S}/nss/nsswitch.conf\""]) | ||
11 | cnf.extend(["OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS=\"${S}/nss/fixed-nsswitch.functions\""]) | ||
12 | |||
13 | # arrange the dependencies among eglibc configuable options according to file option-groups.def from eglibc source code | ||
14 | def distro_features_check_deps(distro_features): | ||
15 | new_dep = True | ||
16 | while new_dep: | ||
17 | new_dep = False | ||
18 | |||
19 | if 'ipv6' in distro_features and 'ipv4' not in distro_features: | ||
20 | new_dep = True | ||
21 | distro_features.extend(['ipv4']) | ||
22 | |||
23 | if 'ipv4' in distro_features and 'libc-nsswitch' not in distro_features: | ||
24 | new_dep = True | ||
25 | distro_features.extend(['libc-nsswitch']) | ||
26 | |||
27 | if 'libc-cxx-tests' in distro_features: | ||
28 | if 'libc-posix-wchar-io' not in distro_features: | ||
29 | new_dep = True | ||
30 | distro_features.extend(['libc-posix-wchar-io']) | ||
31 | if 'libc-libm' not in distro_features: | ||
32 | new_dep = True | ||
33 | distro_features.extend(['libc-libm']) | ||
34 | |||
35 | if 'libc-catgets' in distro_features and 'libc-locale-code' not in distro_features: | ||
36 | new_dep = True | ||
37 | distro_features.extend(['libc-locale-code']) | ||
38 | |||
39 | if 'libc-crypt-ufc' in distro_features and 'libc-crypt' not in distro_features: | ||
40 | new_dep = True | ||
41 | distro_features.extend(['libc-crypt']) | ||
42 | |||
43 | if 'libc-getlogin' in distro_features and 'libc-utmp' not in distro_features: | ||
44 | new_dep = True | ||
45 | distro_features.extend(['libc-utmp']) | ||
46 | |||
47 | if 'libc-inet-anl' in distro_features and 'ipv4' not in distro_features: | ||
48 | new_dep = True | ||
49 | distro_features.extend(['ipv4']) | ||
50 | |||
51 | if 'libc-locale-code' in distro_features and 'libc-posix-clang-wchar' not in distro_features: | ||
52 | new_dep = True | ||
53 | distro_features.extend(['libc-posix-clang-wchar']) | ||
54 | |||
55 | if 'libc-nis' in distro_features: | ||
56 | if 'ipv4' not in distro_features: | ||
57 | new_dep = True | ||
58 | distro_features.extend(['ipv4']) | ||
59 | if 'libc-sunrpc' not in distro_features: | ||
60 | new_dep = True | ||
61 | distro_features.extend(['libc-sunrpc']) | ||
62 | |||
63 | if 'libc-rcmd' in distro_features and 'ipv4' not in distro_features: | ||
64 | new_dep = True | ||
65 | distro_features.extend(['ipv4']) | ||
66 | |||
67 | if 'libc-sunrpc' in distro_features and 'ipv4' not in distro_features: | ||
68 | new_dep = True | ||
69 | distro_features.extend(['ipv4']) | ||
70 | |||
71 | if 'libc-utmpx' in distro_features and 'libc-utmp' not in distro_features: | ||
72 | new_dep = True | ||
73 | distro_features.extend(['libc-utmp']) | ||
74 | |||
75 | if 'libc-posix-regexp-glibc' in distro_features and 'libc-posix-regexp' not in distro_features: | ||
76 | new_dep = True | ||
77 | distro_features.extend(['libc-posix-regexp']) | ||
78 | |||
79 | if 'libc-posix-wchar-io' in distro_features and 'libc-posix-clang-wchar' not in distro_features: | ||
80 | new_dep = True | ||
81 | distro_features.extend(['libc-posix-clang-wchar']) | ||
82 | |||
83 | # Map distro features to eglibc options settings | ||
84 | def features_to_eglibc_settings(d): | ||
85 | cnf = ([]) | ||
86 | distro_features = (d.getVar('DISTRO_FEATURES', True) or '').split() | ||
87 | |||
88 | distro_features_check_deps(distro_features) | ||
89 | |||
90 | eglibc_cfg('ipv6', distro_features, 'OPTION_EGLIBC_ADVANCED_INET6', cnf) | ||
91 | eglibc_cfg('libc-backtrace', distro_features, 'OPTION_EGLIBC_BACKTRACE', cnf) | ||
92 | eglibc_cfg('libc-big-macros', distro_features, 'OPTION_EGLIBC_BIG_MACROS', cnf) | ||
93 | eglibc_cfg('libc-bsd', distro_features, 'OPTION_EGLIBC_BSD', cnf) | ||
94 | eglibc_cfg('libc-cxx-tests', distro_features, 'OPTION_EGLIBC_CXX_TESTS', cnf) | ||
95 | eglibc_cfg('libc-catgets', distro_features, 'OPTION_EGLIBC_CATGETS', cnf) | ||
96 | eglibc_cfg('libc-charsets', distro_features, 'OPTION_EGLIBC_CHARSETS', cnf) | ||
97 | eglibc_cfg('libc-crypt', distro_features, 'OPTION_EGLIBC_CRYPT', cnf) | ||
98 | eglibc_cfg('libc-crypt-ufc', distro_features, 'OPTION_EGLIBC_CRYPT_UFC', cnf) | ||
99 | eglibc_cfg('libc-db-aliases', distro_features, 'OPTION_EGLIBC_DB_ALIASES', cnf) | ||
100 | eglibc_cfg('libc-envz', distro_features, 'OPTION_EGLIBC_ENVZ', cnf) | ||
101 | eglibc_cfg('libc-fcvt', distro_features, 'OPTION_EGLIBC_FCVT', cnf) | ||
102 | eglibc_cfg('libc-fmtmsg', distro_features, 'OPTION_EGLIBC_FMTMSG', cnf) | ||
103 | eglibc_cfg('libc-fstab', distro_features, 'OPTION_EGLIBC_FSTAB', cnf) | ||
104 | eglibc_cfg('libc-ftraverse', distro_features, 'OPTION_EGLIBC_FTRAVERSE', cnf) | ||
105 | eglibc_cfg('libc-getlogin', distro_features, 'OPTION_EGLIBC_GETLOGIN', cnf) | ||
106 | eglibc_cfg('libc-idn', distro_features, 'OPTION_EGLIBC_IDN', cnf) | ||
107 | eglibc_cfg('ipv4', distro_features, 'OPTION_EGLIBC_INET', cnf) | ||
108 | eglibc_cfg('libc-inet-anl', distro_features, 'OPTION_EGLIBC_INET_ANL', cnf) | ||
109 | eglibc_cfg('libc-libm', distro_features, 'OPTION_EGLIBC_LIBM', cnf) | ||
110 | eglibc_cfg('libc-locales', distro_features, 'OPTION_EGLIBC_LOCALES', cnf) | ||
111 | eglibc_cfg('libc-locale-code', distro_features, 'OPTION_EGLIBC_LOCALE_CODE', cnf) | ||
112 | eglibc_cfg('libc-memusage', distro_features, 'OPTION_EGLIBC_MEMUSAGE', cnf) | ||
113 | eglibc_cfg('libc-nis', distro_features, 'OPTION_EGLIBC_NIS', cnf) | ||
114 | eglibc_cfg('libc-nsswitch', distro_features, 'OPTION_EGLIBC_NSSWITCH', cnf) | ||
115 | eglibc_cfg('libc-rcmd', distro_features, 'OPTION_EGLIBC_RCMD', cnf) | ||
116 | eglibc_cfg('libc-rtld-debug', distro_features, 'OPTION_EGLIBC_RTLD_DEBUG', cnf) | ||
117 | eglibc_cfg('libc-spawn', distro_features, 'OPTION_EGLIBC_SPAWN', cnf) | ||
118 | eglibc_cfg('libc-streams', distro_features, 'OPTION_EGLIBC_STREAMS', cnf) | ||
119 | eglibc_cfg('libc-sunrpc', distro_features, 'OPTION_EGLIBC_SUNRPC', cnf) | ||
120 | eglibc_cfg('libc-utmp', distro_features, 'OPTION_EGLIBC_UTMP', cnf) | ||
121 | eglibc_cfg('libc-utmpx', distro_features, 'OPTION_EGLIBC_UTMPX', cnf) | ||
122 | eglibc_cfg('libc-wordexp', distro_features, 'OPTION_EGLIBC_WORDEXP', cnf) | ||
123 | eglibc_cfg('libc-posix-clang-wchar', distro_features, 'OPTION_POSIX_C_LANG_WIDE_CHAR', cnf) | ||
124 | eglibc_cfg('libc-posix-regexp', distro_features, 'OPTION_POSIX_REGEXP', cnf) | ||
125 | eglibc_cfg('libc-posix-regexp-glibc', distro_features, 'OPTION_POSIX_REGEXP_GLIBC', cnf) | ||
126 | eglibc_cfg('libc-posix-wchar-io', distro_features, 'OPTION_POSIX_WIDE_CHAR_DEVICE_IO', cnf) | ||
127 | |||
128 | return "\n".join(cnf) | ||
diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc new file mode 100644 index 0000000000..3adf1a9ef9 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-package.inc | |||
@@ -0,0 +1,155 @@ | |||
1 | # | ||
2 | # For now, we will skip building of a gcc package if it is a uclibc one | ||
3 | # and our build is not a uclibc one, and we skip a eglibc one if our build | ||
4 | # is a uclibc build. | ||
5 | # | ||
6 | # See the note in gcc/gcc_3.4.0.oe | ||
7 | # | ||
8 | |||
9 | python __anonymous () { | ||
10 | import bb, re | ||
11 | uc_os = (re.match('.*uclibc*', d.getVar('TARGET_OS', True)) != None) | ||
12 | if uc_os: | ||
13 | raise bb.parse.SkipPackage("incompatible with target %s" % | ||
14 | d.getVar('TARGET_OS', True)) | ||
15 | } | ||
16 | |||
17 | # Set this to zero if you don't want ldconfig in the output package | ||
18 | USE_LDCONFIG ?= "1" | ||
19 | |||
20 | PACKAGES = "${PN}-dbg catchsegv sln nscd ldd ${PN}-utils eglibc-thread-db ${PN}-pic libcidn libmemusage libsegfault ${PN}-pcprofile libsotruss ${PN} eglibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc" | ||
21 | |||
22 | # The ld.so in this eglibc supports the GNU_HASH | ||
23 | RPROVIDES_${PN} = "glibc rtld(GNU_HASH)" | ||
24 | RPROVIDES_${PN}-utils = "glibc-utils" | ||
25 | RPROVIDES_${PN}-mtrace = "glibc-mtrace libc-mtrace" | ||
26 | RPROVIDES_${PN}-pic = "glibc-pic" | ||
27 | RPROVIDES_${PN}-dev = "glibc-dev libc6-dev virtual-libc-dev" | ||
28 | RPROVIDES_${PN}-staticdev = "glibc-staticdev" | ||
29 | RPROVIDES_${PN}-doc = "glibc-doc" | ||
30 | RPROVIDES_eglibc-extra-nss = "glibc-extra-nss" | ||
31 | RPROVIDES_eglibc-thread-db = "glibc-thread-db" | ||
32 | RPROVIDES_${PN}-pcprofile = "glibc-pcprofile" | ||
33 | RPROVIDES_${PN}-dbg = "glibc-dbg" | ||
34 | libc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so ${base_libdir}/libc.so.* ${base_libdir}/libc-*.so ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so ${base_libdir}/libnss_files*.so.* ${base_libdir}/libnss_files-*.so ${base_libdir}/libnss_compat*.so.* ${base_libdir}/libnss_compat-*.so ${base_libdir}/libnss_dns*.so.* ${base_libdir}/libnss_dns-*.so ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so ${base_libdir}/libanl*.so.* ${base_libdir}/libanl-*.so ${base_libdir}/libBrokenLocale*.so.* ${base_libdir}/libBrokenLocale-*.so" | ||
35 | |||
36 | FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)}" | ||
37 | FILES_ldd = "${bindir}/ldd" | ||
38 | FILES_libsegfault = "${base_libdir}/libSegFault*" | ||
39 | FILES_libcidn = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.so.*" | ||
40 | FILES_libmemusage = "${base_libdir}/libmemusage.so" | ||
41 | FILES_eglibc-extra-nss = "${base_libdir}/libnss_*-*.so ${base_libdir}/libnss_*.so.*" | ||
42 | FILES_sln = "/sbin/sln" | ||
43 | FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o" | ||
44 | FILES_libsotruss = "${libdir}/audit/sotruss-lib.so" | ||
45 | FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}" | ||
46 | FILES_${PN}-dev += "${bindir}/rpcgen ${libdir}/*_nonshared.a ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal" | ||
47 | FILES_${PN}-staticdev += "${libdir}/*.a ${base_libdir}/*.a" | ||
48 | FILES_nscd = "${sbindir}/nscd*" | ||
49 | FILES_${PN}-mtrace = "${bindir}/mtrace" | ||
50 | FILES_${PN}-utils = "${bindir}/* ${sbindir}/*" | ||
51 | FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug" | ||
52 | FILES_catchsegv = "${bindir}/catchsegv" | ||
53 | RDEPENDS_catchsegv = "libsegfault" | ||
54 | FILES_${PN}-pcprofile = "${base_libdir}/libpcprofile.so" | ||
55 | FILES_eglibc-thread-db = "${base_libdir}/libthread_db.so.* ${base_libdir}/libthread_db-*.so" | ||
56 | RPROVIDES_${PN}-dev += "libc-dev" | ||
57 | RPROVIDES_${PN}-staticdev += "libc-staticdev" | ||
58 | |||
59 | SUMMARY_sln = "The static ln." | ||
60 | DESCRIPTION_sln = "Similar to the 'ln' utility, but statically linked. sln is useful to make symbolic links to dynamic libraries if the dynamic linking system, for some reason, is not functional." | ||
61 | SUMMARY_nscd = "Name service cache daemon" | ||
62 | DESCRIPTION_nscd = "nscd, name service cache daemon, caches name service lookups for the passwd, group and hosts information. It can damatically improvide performance with remote, such as NIS or NIS+, name services." | ||
63 | SUMMARY_eglibc-extra-nss = "hesiod, NIS and NIS+ nss libraries" | ||
64 | DESCRIPTION_eglibc-extra-nss = "eglibc: nis, nisplus and hesiod search services." | ||
65 | SUMMARY_ldd = "print shared library dependencies" | ||
66 | DESCRIPTION_ldd = "${bindir}/ldd prints shared library dependencies for each program or shared library specified on the command line." | ||
67 | SUMMARY_${PN}-utils = "Miscellaneous utilities provided by eglibc" | ||
68 | DESCRIPTION_${PN}-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..." | ||
69 | DESCRIPTION_libsotruss = "Library to support sotruss which traces calls through PLTs" | ||
70 | |||
71 | inherit libc-common multilib_header | ||
72 | |||
73 | do_install_append () { | ||
74 | rm -f ${D}${sysconfdir}/localtime | ||
75 | rm -rf ${D}${localstatedir} | ||
76 | |||
77 | # remove empty eglibc dir | ||
78 | if [ -d ${D}${libdir}/eglibc -a ! -e ${D}${libdir}/eglibc/pt_chown ]; then | ||
79 | rmdir ${D}${libdir}/eglibc | ||
80 | fi | ||
81 | oe_multilib_header bits/syscall.h | ||
82 | |||
83 | if [ -f ${D}${bindir}/mtrace ]; then | ||
84 | sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' -e '2s,exec.*perl,exec ${USRBINPATH}/env perl,' ${D}${bindir}/mtrace | ||
85 | fi | ||
86 | rm -rf ${D}${includedir}/rpcsvc/rquota* | ||
87 | # Info dir listing isn't interesting at this point so remove it if it exists. | ||
88 | if [ -e "${D}${infodir}/dir" ]; then | ||
89 | rm -f ${D}${infodir}/dir | ||
90 | fi | ||
91 | |||
92 | if [ "${USE_LDCONFIG}" != "1" ]; then | ||
93 | # We won't ship this file (see FILES above) so let's not install it | ||
94 | rm -f ${D}${sysconfdir}/ld.so.conf | ||
95 | # This directory will be empty now so remove it too. | ||
96 | # But check whether it exists first, since it won't for eglibc-initial. | ||
97 | if [ -d ${D}${sysconfdir} ]; then | ||
98 | rmdir ${D}${sysconfdir} | ||
99 | fi | ||
100 | fi | ||
101 | } | ||
102 | |||
103 | do_install_locale () { | ||
104 | dest=${D}/${includedir}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS} | ||
105 | install -d ${dest}${base_libdir} ${dest}${bindir} ${dest}${libdir} ${dest}${datadir} | ||
106 | if [ "${base_libdir}" != "${libdir}" ]; then | ||
107 | cp -fpPR ${D}${base_libdir}/* ${dest}${base_libdir} | ||
108 | fi | ||
109 | if [ -e ${D}${bindir}/localedef ]; then | ||
110 | mv -f ${D}${bindir}/localedef ${dest}${bindir} | ||
111 | fi | ||
112 | if [ -e ${D}${libdir}/gconv ]; then | ||
113 | mv -f ${D}${libdir}/gconv ${dest}${libdir} | ||
114 | fi | ||
115 | if [ -e ${D}${exec_prefix}/lib ]; then | ||
116 | cp -fpPR ${D}${exec_prefix}/lib ${dest}${exec_prefix} | ||
117 | fi | ||
118 | if [ -e ${D}${datadir}/i18n ]; then | ||
119 | mv ${D}${datadir}/i18n ${dest}${datadir} | ||
120 | fi | ||
121 | cp -fpPR ${D}${datadir}/* ${dest}${datadir} | ||
122 | rm -rf ${D}${datadir}/locale/ | ||
123 | cp -fpPR ${WORKDIR}/SUPPORTED ${dest} | ||
124 | } | ||
125 | |||
126 | addtask do_install_locale after do_install before do_populate_sysroot do_package | ||
127 | |||
128 | bashscripts = "mtrace sotruss xtrace" | ||
129 | |||
130 | do_evacuate_scripts () { | ||
131 | target=${D}${includedir}/eglibc-scripts-internal-${MULTIMACH_TARGET_SYS} | ||
132 | mkdir -p $target | ||
133 | for i in ${bashscripts}; do | ||
134 | if [ -f ${D}${bindir}/$i ]; then | ||
135 | cp ${D}${bindir}/$i $target/ | ||
136 | fi | ||
137 | done | ||
138 | } | ||
139 | |||
140 | addtask evacuate_scripts after do_install before do_populate_sysroot do_package | ||
141 | |||
142 | PACKAGE_PREPROCESS_FUNCS += "eglibc_package_preprocess" | ||
143 | |||
144 | eglibc_package_preprocess () { | ||
145 | rm -rf ${PKGD}/${includedir}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS} | ||
146 | rm -rf ${PKGD}/${includedir}/eglibc-scripts-internal-${MULTIMACH_TARGET_SYS} | ||
147 | for i in ${bashscripts}; do | ||
148 | rm -f ${PKGD}${bindir}/$i | ||
149 | done | ||
150 | rm -rf ${PKGD}/${localedir} | ||
151 | if [ "${libdir}" != "${exec_prefix}/lib" ]; then | ||
152 | # This dir only exists to hold locales | ||
153 | rm -rf ${PKGD}${exec_prefix}/lib | ||
154 | fi | ||
155 | } | ||
diff --git a/meta/recipes-core/eglibc/eglibc-scripts.inc b/meta/recipes-core/eglibc/eglibc-scripts.inc new file mode 100644 index 0000000000..9ca6673404 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-scripts.inc | |||
@@ -0,0 +1,16 @@ | |||
1 | include eglibc-collateral.inc | ||
2 | |||
3 | SUMMARY = "utility scripts provided by eglibc" | ||
4 | DESCRIPTION = "utility scripts provided by eglibc" | ||
5 | RDEPENDS_${PN} = "bash eglibc-mtrace" | ||
6 | |||
7 | SRC = "${STAGING_INCDIR}/eglibc-scripts-internal-${MULTIMACH_TARGET_SYS}" | ||
8 | |||
9 | bashscripts = "sotruss xtrace" | ||
10 | |||
11 | do_install() { | ||
12 | install -d -m 0755 ${D}${bindir} | ||
13 | for i in ${bashscripts}; do | ||
14 | install -m 0755 ${SRC}/$i ${D}${bindir}/ | ||
15 | done | ||
16 | } | ||
diff --git a/meta/recipes-core/eglibc/eglibc-scripts_2.17.bb b/meta/recipes-core/eglibc/eglibc-scripts_2.17.bb new file mode 100644 index 0000000000..31133621d1 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-scripts_2.17.bb | |||
@@ -0,0 +1 @@ | |||
require eglibc-scripts.inc | |||
diff --git a/meta/recipes-core/eglibc/eglibc-scripts_2.18.bb b/meta/recipes-core/eglibc/eglibc-scripts_2.18.bb new file mode 100644 index 0000000000..31133621d1 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-scripts_2.18.bb | |||
@@ -0,0 +1 @@ | |||
require eglibc-scripts.inc | |||
diff --git a/meta/recipes-core/eglibc/eglibc-testing.inc b/meta/recipes-core/eglibc/eglibc-testing.inc new file mode 100644 index 0000000000..ab3ec1555f --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-testing.inc | |||
@@ -0,0 +1,79 @@ | |||
1 | do_compile_append () { | ||
2 | # now generate script to drive testing | ||
3 | echo "#!/usr/bin/env sh" >${B}/${HOST_PREFIX}testeglibc | ||
4 | set >> ${B}/${HOST_PREFIX}testeglibc | ||
5 | # prune out the unneeded vars | ||
6 | sed -i -e "/^BASH/d" ${B}/${HOST_PREFIX}testeglibc | ||
7 | sed -i -e "/^USER/d" ${B}/${HOST_PREFIX}testeglibc | ||
8 | sed -i -e "/^OPT/d" ${B}/${HOST_PREFIX}testeglibc | ||
9 | sed -i -e "/^DIRSTACK/d" ${B}/${HOST_PREFIX}testeglibc | ||
10 | sed -i -e "/^EUID/d" ${B}/${HOST_PREFIX}testeglibc | ||
11 | sed -i -e "/^FUNCNAME/d" ${B}/${HOST_PREFIX}testeglibc | ||
12 | sed -i -e "/^GROUPS/d" ${B}/${HOST_PREFIX}testeglibc | ||
13 | sed -i -e "/^HOST/d" ${B}/${HOST_PREFIX}testeglibc | ||
14 | sed -i -e "/^HOME/d" ${B}/${HOST_PREFIX}testeglibc | ||
15 | sed -i -e "/^IFS/d" ${B}/${HOST_PREFIX}testeglibc | ||
16 | sed -i -e "/^LC_ALL/d" ${B}/${HOST_PREFIX}testeglibc | ||
17 | sed -i -e "/^LOGNAME/d" ${B}/${HOST_PREFIX}testeglibc | ||
18 | sed -i -e "/^MACHTYPE/d" ${B}/${HOST_PREFIX}testeglibc | ||
19 | sed -i -e "/^OSTYPE/d" ${B}/${HOST_PREFIX}testeglibc | ||
20 | sed -i -e "/^PIPE/d" ${B}/${HOST_PREFIX}testeglibc | ||
21 | sed -i -e "/^SHELL/d" ${B}/${HOST_PREFIX}testeglibc | ||
22 | sed -i -e "/^'/d" ${B}/${HOST_PREFIX}testeglibc | ||
23 | sed -i -e "/^UID/d" ${B}/${HOST_PREFIX}testeglibc | ||
24 | sed -i -e "/^TERM/d" ${B}/${HOST_PREFIX}testeglibc | ||
25 | sed -i -e "/^PATCH_GET/d" ${B}/${HOST_PREFIX}testeglibc | ||
26 | sed -i -e "/^PKG_/d" ${B}/${HOST_PREFIX}testeglibc | ||
27 | sed -i -e "/^POSIXLY_/d" ${B}/${HOST_PREFIX}testeglibc | ||
28 | sed -i -e "/^PPID/d" ${B}/${HOST_PREFIX}testeglibc | ||
29 | sed -i -e "/^PS4/d" ${B}/${HOST_PREFIX}testeglibc | ||
30 | sed -i -e "/^Q/d" ${B}/${HOST_PREFIX}testeglibc | ||
31 | sed -i -e "/^SHLVL/d" ${B}/${HOST_PREFIX}testeglibc | ||
32 | sed -i -e "/^STAGING/d" ${B}/${HOST_PREFIX}testeglibc | ||
33 | sed -i -e "/^LD_LIBRARY_PATH/d" ${B}/${HOST_PREFIX}testeglibc | ||
34 | sed -i -e "/^PSEUDO/d" ${B}/${HOST_PREFIX}testeglibc | ||
35 | |||
36 | # point to real sysroot not the toolchain bootstrap sysroot | ||
37 | sed -i -e "s/\-tcbootstrap//g" ${B}/${HOST_PREFIX}testeglibc | ||
38 | |||
39 | # use the final cross-gcc to test since some tests need libstdc++ | ||
40 | sed -i -e "s/^PATH=.*\.gcc-cross-initial\:/PATH=/g" ${B}/${HOST_PREFIX}testeglibc | ||
41 | |||
42 | # append execution part script | ||
43 | cat >> ${B}/${HOST_PREFIX}testeglibc << STOP | ||
44 | target="\$1" | ||
45 | if [ "x\$target" = "x" ] | ||
46 | then | ||
47 | echo "Please specify the target machine and remote user in form of user@target" | ||
48 | exit 1; | ||
49 | fi | ||
50 | ssh \$target ls \$PWD\ 2>&1 > /dev/null | ||
51 | if [ "x\$?" != "x0" ] | ||
52 | then | ||
53 | echo "Failed connecting to \$target it could be because of:" | ||
54 | echo "1. You dont have passwordless ssh setup to access \$target" | ||
55 | echo "2. NFS share on \$target is not mounted or if mounted then not matching the build tree layout." | ||
56 | echo " The tree should be accessible at same location on build host and target" | ||
57 | echo " You can add nfs-server to IMAGE_FEATURES to get the nfs client on target" | ||
58 | echo "3. nfs server on build host is not running." | ||
59 | echo " Please make sure that you have 'no_root_squash' added in /etc/exports if you want" | ||
60 | echo " to test as root user on target (usually its recommended to create a non" | ||
61 | echo " root user." | ||
62 | echo " As a sanity check make sure that target can read/write to the eglibc build tree" | ||
63 | echo " Please refer to ${S}/EGLIBC.cross-testing for further instructions on setup" | ||
64 | exit 1 | ||
65 | fi | ||
66 | echo "# we test using cross compiler from real sysroot therefore override the" > ${B}/configparms | ||
67 | echo "# definitions that come from ${B}/config.make" >> ${B}/configparms | ||
68 | |||
69 | fgrep tcbootstrap ${B}/config.make > ${B}/configparms | ||
70 | sed -i -e "s/\-tcbootstrap//g" ${B}/configparms | ||
71 | wrapper="${S}/scripts/cross-test-ssh.sh \$target" | ||
72 | localedef="${STAGING_BINDIR_NATIVE}/cross-localedef --little-endian --uint32-align=4" | ||
73 | make tests-clean | ||
74 | make cross-localedef="\$localedef" cross-test-wrapper="\$wrapper" -k check | ||
75 | rm -rf ${B}/configparms | ||
76 | STOP | ||
77 | |||
78 | chmod +x ${B}/${HOST_PREFIX}testeglibc | ||
79 | } | ||
diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc new file mode 100644 index 0000000000..375b9bc116 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc.inc | |||
@@ -0,0 +1,84 @@ | |||
1 | require eglibc-common.inc | ||
2 | require eglibc-ld.inc | ||
3 | require eglibc-testing.inc | ||
4 | |||
5 | STAGINGCC = "gcc-cross-initial" | ||
6 | STAGINGCC_class-nativesdk = "gcc-crosssdk-initial" | ||
7 | PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" | ||
8 | |||
9 | TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}" | ||
10 | |||
11 | # eglibc can't be built without optimization, if someone tries to compile an | ||
12 | # entire image as -O0, we override it with -O2 here and give a note about it. | ||
13 | def get_optimization(d): | ||
14 | selected_optimization = d.getVar("SELECTED_OPTIMIZATION", True) | ||
15 | if base_contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x": | ||
16 | bb.note("eglibc can't be built with -O0, -O2 will be used instead.") | ||
17 | return selected_optimization.replace("-O0", "-O2") | ||
18 | return selected_optimization | ||
19 | |||
20 | SELECTED_OPTIMIZATION := "${@get_optimization(d)}" | ||
21 | |||
22 | # siteconfig.bbclass runs configure which needs a working compiler | ||
23 | # For the compiler to work we need a working libc yet libc isn't | ||
24 | # in the sysroots directory at this point. This means the libc.so | ||
25 | # linker script won't work as the --sysroot setting isn't correct. | ||
26 | # Here we create a hacked up libc linker script and pass in the right | ||
27 | # flags to let configure work. Ugly. | ||
28 | EXTRASITECONFIG = "CFLAGS='${CFLAGS} -Wl,-L${WORKDIR}/site_config_libc -L${WORKDIR}/site_config_libc -L${SYSROOT_DESTDIR}${libdir} -L${SYSROOT_DESTDIR}${base_libdir} -Wl,-L${SYSROOT_DESTDIR}${libdir} -Wl,-L${SYSROOT_DESTDIR}${base_libdir}'" | ||
29 | siteconfig_do_siteconfig_gencache_prepend = " \ | ||
30 | mkdir -p ${WORKDIR}/site_config_libc; \ | ||
31 | cp ${SYSROOT_DESTDIR}${libdir}/libc.so ${WORKDIR}/site_config_libc; \ | ||
32 | sed -i -e 's# ${base_libdir}# ${SYSROOT_DESTDIR}${base_libdir}#g' -e 's# ${libdir}# ${SYSROOT_DESTDIR}${libdir}#g' ${WORKDIR}/site_config_libc/libc.so; \ | ||
33 | " | ||
34 | |||
35 | # nptl needs unwind support in gcc, which can't be built without glibc. | ||
36 | DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial" | ||
37 | # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this | ||
38 | #RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}" | ||
39 | PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" | ||
40 | PROVIDES += "virtual/libintl virtual/libiconv" | ||
41 | inherit autotools | ||
42 | require eglibc-options.inc | ||
43 | |||
44 | LEAD_SONAME = "libc.so" | ||
45 | |||
46 | CACHED_CONFIGUREVARS += "ac_cv_path_KSH=${base_bindir}/bash \ | ||
47 | ac_cv_path_BASH_SHELL=${base_bindir}/bash \ | ||
48 | libc_cv_localedir=${localedir} \ | ||
49 | libc_cv_ssp=no \ | ||
50 | " | ||
51 | |||
52 | GLIBC_EXTRA_OECONF ?= "" | ||
53 | GLIBC_EXTRA_OECONF_class-nativesdk = "" | ||
54 | INHIBIT_DEFAULT_DEPS = "1" | ||
55 | |||
56 | ARM_INSTRUCTION_SET = "arm" | ||
57 | |||
58 | # eglibc uses PARALLELMFLAGS variable to pass parallel build info so transfer | ||
59 | # PARALLEL_MAKE into PARALLELMFLAGS and empty out PARALLEL_MAKE | ||
60 | EGLIBCPARALLELISM := "PARALLELMFLAGS="${PARALLEL_MAKE}"" | ||
61 | EXTRA_OEMAKE[vardepsexclude] += "EGLIBCPARALLELISM" | ||
62 | EXTRA_OEMAKE += "${EGLIBCPARALLELISM}" | ||
63 | PARALLEL_MAKE = "" | ||
64 | |||
65 | # eglibc make-syscalls.sh has a number of issues with /bin/dash and | ||
66 | # it's output which make calls via the SHELL also has issues, so | ||
67 | # ensure make uses /bin/bash | ||
68 | EXTRA_OEMAKE += "SHELL=/bin/bash" | ||
69 | |||
70 | OE_FEATURES = "${@features_to_eglibc_settings(d)}" | ||
71 | do_configure_prepend() { | ||
72 | sed -e "s#@BASH@#/bin/sh#" -i ${S}/elf/ldd.bash.in | ||
73 | echo '${OE_FEATURES}' > ${B}/option-groups.config | ||
74 | } | ||
75 | |||
76 | do_configure_append() { | ||
77 | oe_runmake config | ||
78 | |||
79 | # Remove quotation marks from OPTION_EGLIBC_NSSWITCH_FIXED_*. This will | ||
80 | # avoid install error. | ||
81 | sed -i 's/^OPTION_EGLIBC_NSSWITCH_FIXED_\(.*\)="\(.*\)"$/OPTION_EGLIBC_NSSWITCH_FIXED_\1=\2/' option-groups.config | ||
82 | } | ||
83 | |||
84 | GLIBC_ADDONS ?= "ports,nptl,libidn" | ||
diff --git a/meta/recipes-core/eglibc/eglibc_2.17.bb b/meta/recipes-core/eglibc/eglibc_2.17.bb new file mode 100644 index 0000000000..22129e6bc3 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc_2.17.bb | |||
@@ -0,0 +1,155 @@ | |||
1 | require eglibc.inc | ||
2 | |||
3 | PR = "r3" | ||
4 | |||
5 | DEPENDS += "gperf-native kconfig-frontends-native" | ||
6 | |||
7 | SRC_URI = "http://downloads.yoctoproject.org/releases/eglibc/eglibc-${PV}-svnr22064.tar.bz2 \ | ||
8 | file://eglibc-svn-arm-lowlevellock-include-tls.patch \ | ||
9 | file://IO-acquire-lock-fix.patch \ | ||
10 | file://mips-rld-map-check.patch \ | ||
11 | file://etc/ld.so.conf \ | ||
12 | file://generate-supported.mk \ | ||
13 | file://glibc.fix_sqrt2.patch \ | ||
14 | file://multilib_readlib.patch \ | ||
15 | file://ppc-sqrt_finite.patch \ | ||
16 | file://GLRO_dl_debug_mask.patch \ | ||
17 | file://initgroups_keys.patch \ | ||
18 | file://eglibc_fix_findidx_parameters.patch \ | ||
19 | file://ppc_slow_ieee754_sqrt.patch \ | ||
20 | file://fileops-without-wchar-io.patch \ | ||
21 | file://add_resource_h_to_wait_h.patch \ | ||
22 | file://0001-eglibc-menuconfig-support.patch \ | ||
23 | file://0002-eglibc-menuconfig-hex-string-options.patch \ | ||
24 | file://0003-eglibc-menuconfig-build-instructions.patch \ | ||
25 | file://fsl-ppc-no-fsqrt.patch \ | ||
26 | file://0001-R_ARM_TLS_DTPOFF32.patch \ | ||
27 | file://tzselect-sh.patch \ | ||
28 | file://tzselect-awk.patch \ | ||
29 | file://0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ | ||
30 | file://fix-tibetian-locales.patch \ | ||
31 | ${BACKPORTS} \ | ||
32 | " | ||
33 | BACKPORTS = "\ | ||
34 | file://eglibc-2.17/eglibc-2.17-r22178.patch \ | ||
35 | file://eglibc-2.17/eglibc-2.17-PR15003-r22243.patch \ | ||
36 | " | ||
37 | |||
38 | SRC_URI[md5sum] = "1464af54779c2c7d1078df9ce2e41791" | ||
39 | SRC_URI[sha256sum] = "97c3991a3772f513cf704841d20c275ac48895fad2e27802dda557c0196cba6b" | ||
40 | |||
41 | LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \ | ||
42 | file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ | ||
43 | file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ | ||
44 | file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff " | ||
45 | |||
46 | SRC_URI_append_class-nativesdk = " file://ld-search-order.patch \ | ||
47 | file://relocatable_sdk.patch \ | ||
48 | file://relocatable_sdk_fix_openpath.patch \ | ||
49 | " | ||
50 | S = "${WORKDIR}/eglibc-${PV}/libc" | ||
51 | B = "${WORKDIR}/build-${TARGET_SYS}" | ||
52 | |||
53 | PACKAGES_DYNAMIC = "" | ||
54 | |||
55 | # the -isystem in bitbake.conf screws up glibc do_stage | ||
56 | BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" | ||
57 | TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" | ||
58 | |||
59 | GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1" | ||
60 | |||
61 | FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc-${PV}', '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" | ||
62 | |||
63 | # | ||
64 | # For now, we will skip building of a gcc package if it is a uclibc one | ||
65 | # and our build is not a uclibc one, and we skip a glibc one if our build | ||
66 | # is a uclibc build. | ||
67 | # | ||
68 | # See the note in gcc/gcc_3.4.0.oe | ||
69 | # | ||
70 | |||
71 | python __anonymous () { | ||
72 | import re | ||
73 | uc_os = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None) | ||
74 | if uc_os: | ||
75 | raise bb.parse.SkipPackage("incompatible with target %s" % | ||
76 | d.getVar('TARGET_OS', True)) | ||
77 | } | ||
78 | |||
79 | export libc_cv_slibdir = "${base_libdir}" | ||
80 | |||
81 | EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ | ||
82 | --without-cvs --disable-profile \ | ||
83 | --disable-debug --without-gd \ | ||
84 | --enable-clocale=gnu \ | ||
85 | --enable-add-ons \ | ||
86 | --with-headers=${STAGING_INCDIR} \ | ||
87 | --without-selinux \ | ||
88 | --enable-obsolete-rpc \ | ||
89 | --with-kconfig=${STAGING_BINDIR_NATIVE} \ | ||
90 | ${GLIBC_EXTRA_OECONF}" | ||
91 | |||
92 | EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" | ||
93 | |||
94 | do_patch_append() { | ||
95 | bb.build.exec_func('do_fix_readlib_c', d) | ||
96 | } | ||
97 | |||
98 | # for mips eglibc now builds syscall tables for all abi's | ||
99 | # so we make sure that we choose right march option which is | ||
100 | # compatible with o32,n32 and n64 abi's | ||
101 | # e.g. -march=mips32 is not compatible with n32 and n64 therefore | ||
102 | # we filter it out in such case -march=from-abi which will be | ||
103 | # mips1 when using o32 and mips3 when using n32/n64 | ||
104 | |||
105 | TUNE_CCARGS_mips := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}" | ||
106 | TUNE_CCARGS_mipsel := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}" | ||
107 | |||
108 | do_fix_readlib_c () { | ||
109 | sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c | ||
110 | } | ||
111 | |||
112 | do_configure () { | ||
113 | # override this function to avoid the autoconf/automake/aclocal/autoheader | ||
114 | # calls for now | ||
115 | # don't pass CPPFLAGS into configure, since it upsets the kernel-headers | ||
116 | # version check and doesn't really help with anything | ||
117 | if [ -z "`which rpcgen`" ]; then | ||
118 | echo "rpcgen not found. Install glibc-devel." | ||
119 | exit 1 | ||
120 | fi | ||
121 | (cd ${S} && gnu-configize) || die "failure in running gnu-configize" | ||
122 | find ${S} -name "configure" | xargs touch | ||
123 | CPPFLAGS="" oe_runconf | ||
124 | } | ||
125 | |||
126 | rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \ | ||
127 | yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \ | ||
128 | rusers.x spray.x nfs_prot.x rquota.x key_prot.x" | ||
129 | |||
130 | do_compile () { | ||
131 | # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging | ||
132 | unset LDFLAGS | ||
133 | base_do_compile | ||
134 | ( | ||
135 | cd ${S}/sunrpc/rpcsvc | ||
136 | for r in ${rpcsvc}; do | ||
137 | h=`echo $r|sed -e's,\.x$,.h,'` | ||
138 | rpcgen -h $r -o $h || bbwarn "unable to generate header for $r" | ||
139 | done | ||
140 | ) | ||
141 | echo "Adjust ldd script" | ||
142 | if [ -n "${RTLDLIST}" ] | ||
143 | then | ||
144 | prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` | ||
145 | if [ "${prevrtld}" != "${RTLDLIST}" ] | ||
146 | then | ||
147 | sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${prevrtld} ${RTLDLIST}\"#" | ||
148 | fi | ||
149 | fi | ||
150 | |||
151 | } | ||
152 | |||
153 | require eglibc-package.inc | ||
154 | |||
155 | BBCLASSEXTEND = "nativesdk" | ||
diff --git a/meta/recipes-core/eglibc/eglibc_2.18.bb b/meta/recipes-core/eglibc/eglibc_2.18.bb new file mode 100644 index 0000000000..710b498a4d --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc_2.18.bb | |||
@@ -0,0 +1,148 @@ | |||
1 | require eglibc.inc | ||
2 | |||
3 | DEPENDS += "gperf-native kconfig-frontends-native" | ||
4 | |||
5 | SRC_URI = "http://downloads.yoctoproject.org/releases/eglibc/eglibc-${PV}-svnr23787.tar.bz2 \ | ||
6 | file://eglibc-svn-arm-lowlevellock-include-tls.patch \ | ||
7 | file://IO-acquire-lock-fix.patch \ | ||
8 | file://mips-rld-map-check.patch \ | ||
9 | file://etc/ld.so.conf \ | ||
10 | file://generate-supported.mk \ | ||
11 | file://glibc.fix_sqrt2.patch \ | ||
12 | file://multilib_readlib.patch \ | ||
13 | file://ppc-sqrt_finite.patch \ | ||
14 | file://GLRO_dl_debug_mask.patch \ | ||
15 | file://initgroups_keys.patch \ | ||
16 | file://eglibc_fix_findidx_parameters.patch \ | ||
17 | file://ppc_slow_ieee754_sqrt.patch \ | ||
18 | file://fileops-without-wchar-io.patch \ | ||
19 | file://add_resource_h_to_wait_h.patch \ | ||
20 | file://0001-eglibc-menuconfig-support.patch \ | ||
21 | file://0002-eglibc-menuconfig-hex-string-options.patch \ | ||
22 | file://0003-eglibc-menuconfig-build-instructions.patch \ | ||
23 | file://fsl-ppc-no-fsqrt.patch \ | ||
24 | file://0001-R_ARM_TLS_DTPOFF32.patch \ | ||
25 | file://tzselect-sh.patch \ | ||
26 | file://tzselect-awk.patch \ | ||
27 | file://0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ | ||
28 | file://fix-tibetian-locales.patch \ | ||
29 | file://0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch \ | ||
30 | " | ||
31 | SRC_URI[md5sum] = "b395b021422a027d89884992e91734fc" | ||
32 | SRC_URI[sha256sum] = "15f564b45dc5dd65faf0875579e3447961ae61e876933384ae05d19328539ad4" | ||
33 | |||
34 | LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \ | ||
35 | file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ | ||
36 | file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ | ||
37 | file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff " | ||
38 | |||
39 | SRC_URI_append_class-nativesdk = " file://ld-search-order.patch \ | ||
40 | file://relocatable_sdk.patch \ | ||
41 | file://relocatable_sdk_fix_openpath.patch \ | ||
42 | " | ||
43 | S = "${WORKDIR}/eglibc-${PV}/libc" | ||
44 | B = "${WORKDIR}/build-${TARGET_SYS}" | ||
45 | |||
46 | PACKAGES_DYNAMIC = "" | ||
47 | |||
48 | # the -isystem in bitbake.conf screws up glibc do_stage | ||
49 | BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" | ||
50 | TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" | ||
51 | |||
52 | GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1" | ||
53 | |||
54 | FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc-${PV}', '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" | ||
55 | |||
56 | # | ||
57 | # For now, we will skip building of a gcc package if it is a uclibc one | ||
58 | # and our build is not a uclibc one, and we skip a glibc one if our build | ||
59 | # is a uclibc build. | ||
60 | # | ||
61 | # See the note in gcc/gcc_3.4.0.oe | ||
62 | # | ||
63 | |||
64 | python __anonymous () { | ||
65 | import re | ||
66 | uc_os = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None) | ||
67 | if uc_os: | ||
68 | raise bb.parse.SkipPackage("incompatible with target %s" % | ||
69 | d.getVar('TARGET_OS', True)) | ||
70 | } | ||
71 | |||
72 | export libc_cv_slibdir = "${base_libdir}" | ||
73 | |||
74 | EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ | ||
75 | --without-cvs --disable-profile \ | ||
76 | --disable-debug --without-gd \ | ||
77 | --enable-clocale=gnu \ | ||
78 | --enable-add-ons \ | ||
79 | --with-headers=${STAGING_INCDIR} \ | ||
80 | --without-selinux \ | ||
81 | --enable-obsolete-rpc \ | ||
82 | --with-kconfig=${STAGING_BINDIR_NATIVE} \ | ||
83 | ${GLIBC_EXTRA_OECONF}" | ||
84 | |||
85 | EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" | ||
86 | |||
87 | do_patch_append() { | ||
88 | bb.build.exec_func('do_fix_readlib_c', d) | ||
89 | } | ||
90 | |||
91 | # for mips eglibc now builds syscall tables for all abi's | ||
92 | # so we make sure that we choose right march option which is | ||
93 | # compatible with o32,n32 and n64 abi's | ||
94 | # e.g. -march=mips32 is not compatible with n32 and n64 therefore | ||
95 | # we filter it out in such case -march=from-abi which will be | ||
96 | # mips1 when using o32 and mips3 when using n32/n64 | ||
97 | |||
98 | TUNE_CCARGS_mips := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}" | ||
99 | TUNE_CCARGS_mipsel := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}" | ||
100 | |||
101 | do_fix_readlib_c () { | ||
102 | sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c | ||
103 | } | ||
104 | |||
105 | do_configure () { | ||
106 | # override this function to avoid the autoconf/automake/aclocal/autoheader | ||
107 | # calls for now | ||
108 | # don't pass CPPFLAGS into configure, since it upsets the kernel-headers | ||
109 | # version check and doesn't really help with anything | ||
110 | if [ -z "`which rpcgen`" ]; then | ||
111 | echo "rpcgen not found. Install glibc-devel." | ||
112 | exit 1 | ||
113 | fi | ||
114 | (cd ${S} && gnu-configize) || die "failure in running gnu-configize" | ||
115 | find ${S} -name "configure" | xargs touch | ||
116 | CPPFLAGS="" oe_runconf | ||
117 | } | ||
118 | |||
119 | rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \ | ||
120 | yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \ | ||
121 | rusers.x spray.x nfs_prot.x rquota.x key_prot.x" | ||
122 | |||
123 | do_compile () { | ||
124 | # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging | ||
125 | unset LDFLAGS | ||
126 | base_do_compile | ||
127 | ( | ||
128 | cd ${S}/sunrpc/rpcsvc | ||
129 | for r in ${rpcsvc}; do | ||
130 | h=`echo $r|sed -e's,\.x$,.h,'` | ||
131 | rpcgen -h $r -o $h || bbwarn "unable to generate header for $r" | ||
132 | done | ||
133 | ) | ||
134 | echo "Adjust ldd script" | ||
135 | if [ -n "${RTLDLIST}" ] | ||
136 | then | ||
137 | prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` | ||
138 | if [ "${prevrtld}" != "${RTLDLIST}" ] | ||
139 | then | ||
140 | sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${prevrtld} ${RTLDLIST}\"#" | ||
141 | fi | ||
142 | fi | ||
143 | |||
144 | } | ||
145 | |||
146 | require eglibc-package.inc | ||
147 | |||
148 | BBCLASSEXTEND = "nativesdk" | ||
diff --git a/meta/recipes-core/eglibc/ldconfig-native-2.12.1/32and64bit.patch b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/32and64bit.patch new file mode 100644 index 0000000000..cdfeaeadd8 --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/32and64bit.patch | |||
@@ -0,0 +1,331 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | We run the ldconfig in the cross fashion. make the code bitsize aware so that | ||
4 | we can cross build ldconfig cache for various architectures. | ||
5 | |||
6 | Richard Purdie <richard.purdie@linuxfoundation.org> 2009/05/19 | ||
7 | Nitin A Kamble <nitin.a.kamble@intel.com> 2009/03/29 | ||
8 | |||
9 | Index: ldconfig-native-2.12.1/readelflib.c | ||
10 | =================================================================== | ||
11 | --- ldconfig-native-2.12.1.orig/readelflib.c | ||
12 | +++ ldconfig-native-2.12.1/readelflib.c | ||
13 | @@ -40,39 +40,212 @@ do \ | ||
14 | |||
15 | /* Returns 0 if everything is ok, != 0 in case of error. */ | ||
16 | int | ||
17 | -process_elf_file (const char *file_name, const char *lib, int *flag, | ||
18 | +process_elf_file32 (const char *file_name, const char *lib, int *flag, | ||
19 | unsigned int *osversion, char **soname, void *file_contents, | ||
20 | size_t file_length) | ||
21 | { | ||
22 | int i; | ||
23 | unsigned int j; | ||
24 | - ElfW(Addr) loadaddr; | ||
25 | + Elf32_Addr loadaddr; | ||
26 | unsigned int dynamic_addr; | ||
27 | size_t dynamic_size; | ||
28 | char *program_interpreter; | ||
29 | |||
30 | - ElfW(Ehdr) *elf_header; | ||
31 | - ElfW(Phdr) *elf_pheader, *segment; | ||
32 | - ElfW(Dyn) *dynamic_segment, *dyn_entry; | ||
33 | + Elf32_Ehdr *elf_header; | ||
34 | + Elf32_Phdr *elf_pheader, *segment; | ||
35 | + Elf32_Dyn *dynamic_segment, *dyn_entry; | ||
36 | char *dynamic_strings; | ||
37 | |||
38 | - elf_header = (ElfW(Ehdr) *) file_contents; | ||
39 | + elf_header = (Elf32_Ehdr *) file_contents; | ||
40 | *osversion = 0; | ||
41 | |||
42 | - if (elf_header->e_ident [EI_CLASS] != ElfW (CLASS)) | ||
43 | + if (elf_header->e_type != ET_DYN) | ||
44 | { | ||
45 | - if (opt_verbose) | ||
46 | + error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name, | ||
47 | + elf_header->e_type); | ||
48 | + return 1; | ||
49 | + } | ||
50 | + | ||
51 | + /* Get information from elf program header. */ | ||
52 | + elf_pheader = (Elf32_Phdr *) (elf_header->e_phoff + file_contents); | ||
53 | + check_ptr (elf_pheader); | ||
54 | + | ||
55 | + /* The library is an elf library, now search for soname and | ||
56 | + libc5/libc6. */ | ||
57 | + *flag = FLAG_ELF; | ||
58 | + | ||
59 | + loadaddr = -1; | ||
60 | + dynamic_addr = 0; | ||
61 | + dynamic_size = 0; | ||
62 | + program_interpreter = NULL; | ||
63 | + for (i = 0, segment = elf_pheader; | ||
64 | + i < elf_header->e_phnum; i++, segment++) | ||
65 | + { | ||
66 | + check_ptr (segment); | ||
67 | + | ||
68 | + switch (segment->p_type) | ||
69 | { | ||
70 | - if (elf_header->e_ident [EI_CLASS] == ELFCLASS32) | ||
71 | - error (0, 0, _("%s is a 32 bit ELF file.\n"), file_name); | ||
72 | - else if (elf_header->e_ident [EI_CLASS] == ELFCLASS64) | ||
73 | - error (0, 0, _("%s is a 64 bit ELF file.\n"), file_name); | ||
74 | - else | ||
75 | - error (0, 0, _("Unknown ELFCLASS in file %s.\n"), file_name); | ||
76 | + case PT_LOAD: | ||
77 | + if (loadaddr == (Elf32_Addr) -1) | ||
78 | + loadaddr = segment->p_vaddr - segment->p_offset; | ||
79 | + break; | ||
80 | + | ||
81 | + case PT_DYNAMIC: | ||
82 | + if (dynamic_addr) | ||
83 | + error (0, 0, _("more than one dynamic segment\n")); | ||
84 | + | ||
85 | + dynamic_addr = segment->p_offset; | ||
86 | + dynamic_size = segment->p_filesz; | ||
87 | + break; | ||
88 | + | ||
89 | + case PT_INTERP: | ||
90 | + program_interpreter = (char *) (file_contents + segment->p_offset); | ||
91 | + check_ptr (program_interpreter); | ||
92 | + | ||
93 | + /* Check if this is enough to classify the binary. */ | ||
94 | + for (j = 0; j < sizeof (interpreters) / sizeof (interpreters [0]); | ||
95 | + ++j) | ||
96 | + if (strcmp (program_interpreter, interpreters[j].soname) == 0) | ||
97 | + { | ||
98 | + *flag = interpreters[j].flag; | ||
99 | + break; | ||
100 | + } | ||
101 | + break; | ||
102 | + | ||
103 | + case PT_NOTE: | ||
104 | + if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4) | ||
105 | + { | ||
106 | + Elf32_Word *abi_note = (Elf32_Word *) (file_contents | ||
107 | + + segment->p_offset); | ||
108 | + Elf32_Addr size = segment->p_filesz; | ||
109 | + | ||
110 | + while (abi_note [0] != 4 || abi_note [1] != 16 | ||
111 | + || abi_note [2] != 1 | ||
112 | + || memcmp (abi_note + 3, "GNU", 4) != 0) | ||
113 | + { | ||
114 | +#define ROUND(len) (((len) + sizeof (Elf32_Word)) - 1) & -sizeof (Elf32_Word))) | ||
115 | + Elf32_Addr) note_size = 3 * sizeof (Elf32_Word)) | ||
116 | + + ROUND (abi_note[0]) | ||
117 | + + ROUND (abi_note[1]); | ||
118 | + | ||
119 | + if (size - 32 < note_size || note_size == 0) | ||
120 | + { | ||
121 | + size = 0; | ||
122 | + break; | ||
123 | + } | ||
124 | + size -= note_size; | ||
125 | + abi_note = (void *) abi_note + note_size; | ||
126 | + } | ||
127 | + | ||
128 | + if (size == 0) | ||
129 | + break; | ||
130 | + | ||
131 | + *osversion = (abi_note [4] << 24) | | ||
132 | + ((abi_note [5] & 0xff) << 16) | | ||
133 | + ((abi_note [6] & 0xff) << 8) | | ||
134 | + (abi_note [7] & 0xff); | ||
135 | + } | ||
136 | + break; | ||
137 | + | ||
138 | + default: | ||
139 | + break; | ||
140 | + } | ||
141 | + | ||
142 | + } | ||
143 | + if (loadaddr == (Elf32_Addr) -1) | ||
144 | + { | ||
145 | + /* Very strange. */ | ||
146 | + loadaddr = 0; | ||
147 | + } | ||
148 | + | ||
149 | + /* Now we can read the dynamic sections. */ | ||
150 | + if (dynamic_size == 0) | ||
151 | + return 1; | ||
152 | + | ||
153 | + dynamic_segment = (Elf32_Dyn *) (file_contents + dynamic_addr); | ||
154 | + check_ptr (dynamic_segment); | ||
155 | + | ||
156 | + /* Find the string table. */ | ||
157 | + dynamic_strings = NULL; | ||
158 | + for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL; | ||
159 | + ++dyn_entry) | ||
160 | + { | ||
161 | + check_ptr (dyn_entry); | ||
162 | + if (dyn_entry->d_tag == DT_STRTAB) | ||
163 | + { | ||
164 | + dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val - loadaddr); | ||
165 | + check_ptr (dynamic_strings); | ||
166 | + break; | ||
167 | } | ||
168 | - return 1; | ||
169 | } | ||
170 | |||
171 | + if (dynamic_strings == NULL) | ||
172 | + return 1; | ||
173 | + | ||
174 | + /* Now read the DT_NEEDED and DT_SONAME entries. */ | ||
175 | + for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL; | ||
176 | + ++dyn_entry) | ||
177 | + { | ||
178 | + if (dyn_entry->d_tag == DT_NEEDED || dyn_entry->d_tag == DT_SONAME) | ||
179 | + { | ||
180 | + char *name = dynamic_strings + dyn_entry->d_un.d_val; | ||
181 | + check_ptr (name); | ||
182 | + | ||
183 | + if (dyn_entry->d_tag == DT_NEEDED) | ||
184 | + { | ||
185 | + | ||
186 | + if (*flag == FLAG_ELF) | ||
187 | + { | ||
188 | + /* Check if this is enough to classify the binary. */ | ||
189 | + for (j = 0; | ||
190 | + j < sizeof (known_libs) / sizeof (known_libs [0]); | ||
191 | + ++j) | ||
192 | + if (strcmp (name, known_libs [j].soname) == 0) | ||
193 | + { | ||
194 | + *flag = known_libs [j].flag; | ||
195 | + break; | ||
196 | + } | ||
197 | + } | ||
198 | + } | ||
199 | + | ||
200 | + else if (dyn_entry->d_tag == DT_SONAME) | ||
201 | + *soname = xstrdup (name); | ||
202 | + | ||
203 | + /* Do we have everything we need? */ | ||
204 | + if (*soname && *flag != FLAG_ELF) | ||
205 | + return 0; | ||
206 | + } | ||
207 | + } | ||
208 | + | ||
209 | + /* We reach this point only if the file doesn't contain a DT_SONAME | ||
210 | + or if we can't classify the library. If it doesn't have a | ||
211 | + soname, return the name of the library. */ | ||
212 | + if (*soname == NULL) | ||
213 | + *soname = xstrdup (lib); | ||
214 | + | ||
215 | + return 0; | ||
216 | +} | ||
217 | + | ||
218 | +int | ||
219 | +process_elf_file64 (const char *file_name, const char *lib, int *flag, | ||
220 | + unsigned int *osversion, char **soname, void *file_contents, | ||
221 | + size_t file_length) | ||
222 | +{ | ||
223 | + int i; | ||
224 | + unsigned int j; | ||
225 | + Elf64_Addr loadaddr; | ||
226 | + unsigned int dynamic_addr; | ||
227 | + size_t dynamic_size; | ||
228 | + char *program_interpreter; | ||
229 | + | ||
230 | + Elf64_Ehdr *elf_header; | ||
231 | + Elf64_Phdr *elf_pheader, *segment; | ||
232 | + Elf64_Dyn *dynamic_segment, *dyn_entry; | ||
233 | + char *dynamic_strings; | ||
234 | + | ||
235 | + elf_header = (Elf64_Ehdr *) file_contents; | ||
236 | + *osversion = 0; | ||
237 | + | ||
238 | if (elf_header->e_type != ET_DYN) | ||
239 | { | ||
240 | error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name, | ||
241 | @@ -81,7 +254,7 @@ process_elf_file (const char *file_name, | ||
242 | } | ||
243 | |||
244 | /* Get information from elf program header. */ | ||
245 | - elf_pheader = (ElfW(Phdr) *) (elf_header->e_phoff + file_contents); | ||
246 | + elf_pheader = (Elf64_Phdr *) (elf_header->e_phoff + file_contents); | ||
247 | check_ptr (elf_pheader); | ||
248 | |||
249 | /* The library is an elf library, now search for soname and | ||
250 | @@ -100,7 +273,7 @@ process_elf_file (const char *file_name, | ||
251 | switch (segment->p_type) | ||
252 | { | ||
253 | case PT_LOAD: | ||
254 | - if (loadaddr == (ElfW(Addr)) -1) | ||
255 | + if (loadaddr == (Elf64_Addr) -1) | ||
256 | loadaddr = segment->p_vaddr - segment->p_offset; | ||
257 | break; | ||
258 | |||
259 | @@ -129,16 +302,16 @@ process_elf_file (const char *file_name, | ||
260 | case PT_NOTE: | ||
261 | if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4) | ||
262 | { | ||
263 | - ElfW(Word) *abi_note = (ElfW(Word) *) (file_contents | ||
264 | + Elf64_Word *abi_note = (Elf64_Word *) (file_contents | ||
265 | + segment->p_offset); | ||
266 | - ElfW(Addr) size = segment->p_filesz; | ||
267 | + Elf64_Addr size = segment->p_filesz; | ||
268 | |||
269 | while (abi_note [0] != 4 || abi_note [1] != 16 | ||
270 | || abi_note [2] != 1 | ||
271 | || memcmp (abi_note + 3, "GNU", 4) != 0) | ||
272 | { | ||
273 | -#define ROUND(len) (((len) + sizeof (ElfW(Word)) - 1) & -sizeof (ElfW(Word))) | ||
274 | - ElfW(Addr) note_size = 3 * sizeof (ElfW(Word)) | ||
275 | +#define ROUND(len) (((len) + sizeof (Elf64_Word) - 1) & -sizeof (Elf64_Word)) | ||
276 | + Elf64_Addr note_size = 3 * sizeof (Elf64_Word) | ||
277 | + ROUND (abi_note[0]) | ||
278 | + ROUND (abi_note[1]); | ||
279 | |||
280 | @@ -166,7 +339,7 @@ process_elf_file (const char *file_name, | ||
281 | } | ||
282 | |||
283 | } | ||
284 | - if (loadaddr == (ElfW(Addr)) -1) | ||
285 | + if (loadaddr == (Elf64_Addr) -1) | ||
286 | { | ||
287 | /* Very strange. */ | ||
288 | loadaddr = 0; | ||
289 | @@ -176,7 +349,7 @@ process_elf_file (const char *file_name, | ||
290 | if (dynamic_size == 0) | ||
291 | return 1; | ||
292 | |||
293 | - dynamic_segment = (ElfW(Dyn) *) (file_contents + dynamic_addr); | ||
294 | + dynamic_segment = (Elf64_Dyn *) (file_contents + dynamic_addr); | ||
295 | check_ptr (dynamic_segment); | ||
296 | |||
297 | /* Find the string table. */ | ||
298 | @@ -233,3 +406,33 @@ process_elf_file (const char *file_name, | ||
299 | |||
300 | return 0; | ||
301 | } | ||
302 | +/* Returns 0 if everything is ok, != 0 in case of error. */ | ||
303 | +int | ||
304 | +process_elf_file (const char *file_name, const char *lib, int *flag, | ||
305 | + unsigned int *osversion, char **soname, void *file_contents, | ||
306 | + size_t file_length) | ||
307 | +{ | ||
308 | + int i; | ||
309 | + unsigned int j; | ||
310 | + ElfW(Addr) loadaddr; | ||
311 | + unsigned int dynamic_addr; | ||
312 | + size_t dynamic_size; | ||
313 | + char *program_interpreter; | ||
314 | + | ||
315 | + ElfW(Ehdr) *elf_header; | ||
316 | + ElfW(Phdr) *elf_pheader, *segment; | ||
317 | + ElfW(Dyn) *dynamic_segment, *dyn_entry; | ||
318 | + char *dynamic_strings; | ||
319 | + | ||
320 | + elf_header = (ElfW(Ehdr) *) file_contents; | ||
321 | + *osversion = 0; | ||
322 | + | ||
323 | + if (elf_header->e_ident [EI_CLASS] == ELFCLASS32) | ||
324 | + return process_elf_file32(file_name, lib,flag, osversion, soname, file_contents, file_length); | ||
325 | + else if (elf_header->e_ident [EI_CLASS] == ELFCLASS64) | ||
326 | + return process_elf_file64(file_name, lib,flag, osversion, soname, file_contents, file_length); | ||
327 | + error (0, 0, _("Unknown ELFCLASS in file %s.\n"), file_name); | ||
328 | + return 1; | ||
329 | +} | ||
330 | + | ||
331 | + | ||
diff --git a/meta/recipes-core/eglibc/ldconfig-native-2.12.1/README b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/README new file mode 100644 index 0000000000..43fb983729 --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/README | |||
@@ -0,0 +1,8 @@ | |||
1 | The files are pulled verbatim from glibc 2.5 and then patched to allow | ||
2 | standalone compilation of ldconfig. | ||
3 | |||
4 | Richard Purdie | ||
5 | OpenedHand Ltd. | ||
6 | |||
7 | Upgraded the ldconfig recipe to eglibc 2.12.1 | ||
8 | Nitin A Kamble <nitin.a.kamble@intel.com> 2011/03/29 | ||
diff --git a/meta/recipes-core/eglibc/ldconfig-native-2.12.1/endian-ness_handling.patch b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/endian-ness_handling.patch new file mode 100644 index 0000000000..7f8e4db78a --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/endian-ness_handling.patch | |||
@@ -0,0 +1,454 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | Do data input/output handling according to endien-ness of the library file. That | ||
4 | enables use of ldconfig in the cross fashion for any architecture. | ||
5 | |||
6 | 2011/04/04 | ||
7 | Richard Purdie <richard.purdie@linuxfoundation.org> | ||
8 | Nitin Kamble <nitin.a.kamble@intel.com> | ||
9 | |||
10 | Index: ldconfig-native-2.12.1/readelflib.c | ||
11 | =================================================================== | ||
12 | --- ldconfig-native-2.12.1.orig/readelflib.c | ||
13 | +++ ldconfig-native-2.12.1/readelflib.c | ||
14 | @@ -38,6 +38,28 @@ do \ | ||
15 | } \ | ||
16 | while (0); | ||
17 | |||
18 | +int be; | ||
19 | +static uint16_t read16(uint16_t x, int be) | ||
20 | +{ | ||
21 | + if (be) | ||
22 | + return be16toh(x); | ||
23 | + return le16toh(x); | ||
24 | +} | ||
25 | + | ||
26 | +static uint32_t read32(uint32_t x, int be) | ||
27 | +{ | ||
28 | + if (be) | ||
29 | + return be32toh(x); | ||
30 | + return le32toh(x); | ||
31 | +} | ||
32 | + | ||
33 | +static uint64_t read64(uint64_t x, int be) | ||
34 | +{ | ||
35 | + if (be) | ||
36 | + return be64toh(x); | ||
37 | + return le64toh(x); | ||
38 | +} | ||
39 | + | ||
40 | /* Returns 0 if everything is ok, != 0 in case of error. */ | ||
41 | int | ||
42 | process_elf_file32 (const char *file_name, const char *lib, int *flag, | ||
43 | @@ -59,15 +81,17 @@ process_elf_file32 (const char *file_nam | ||
44 | elf_header = (Elf32_Ehdr *) file_contents; | ||
45 | *osversion = 0; | ||
46 | |||
47 | - if (elf_header->e_type != ET_DYN) | ||
48 | + be = (elf_header->e_ident[EI_DATA] == ELFDATA2MSB); | ||
49 | + | ||
50 | + if (read16(elf_header->e_type, be) != ET_DYN) | ||
51 | { | ||
52 | error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name, | ||
53 | - elf_header->e_type); | ||
54 | + read16(elf_header->e_type, be)); | ||
55 | return 1; | ||
56 | } | ||
57 | |||
58 | /* Get information from elf program header. */ | ||
59 | - elf_pheader = (Elf32_Phdr *) (elf_header->e_phoff + file_contents); | ||
60 | + elf_pheader = (Elf32_Phdr *) (read32(elf_header->e_phoff, be) + file_contents); | ||
61 | check_ptr (elf_pheader); | ||
62 | |||
63 | /* The library is an elf library, now search for soname and | ||
64 | @@ -79,27 +103,27 @@ process_elf_file32 (const char *file_nam | ||
65 | dynamic_size = 0; | ||
66 | program_interpreter = NULL; | ||
67 | for (i = 0, segment = elf_pheader; | ||
68 | - i < elf_header->e_phnum; i++, segment++) | ||
69 | + i < read16(elf_header->e_phnum, be); i++, segment++) | ||
70 | { | ||
71 | check_ptr (segment); | ||
72 | |||
73 | - switch (segment->p_type) | ||
74 | + switch (read32(segment->p_type, be)) | ||
75 | { | ||
76 | case PT_LOAD: | ||
77 | if (loadaddr == (Elf32_Addr) -1) | ||
78 | - loadaddr = segment->p_vaddr - segment->p_offset; | ||
79 | + loadaddr = read32(segment->p_vaddr, be) - read32(segment->p_offset, be); | ||
80 | break; | ||
81 | |||
82 | case PT_DYNAMIC: | ||
83 | if (dynamic_addr) | ||
84 | error (0, 0, _("more than one dynamic segment\n")); | ||
85 | |||
86 | - dynamic_addr = segment->p_offset; | ||
87 | - dynamic_size = segment->p_filesz; | ||
88 | + dynamic_addr = read32(segment->p_offset, be); | ||
89 | + dynamic_size = read32(segment->p_filesz, be); | ||
90 | break; | ||
91 | |||
92 | case PT_INTERP: | ||
93 | - program_interpreter = (char *) (file_contents + segment->p_offset); | ||
94 | + program_interpreter = (char *) (file_contents + read32(segment->p_offset, be)); | ||
95 | check_ptr (program_interpreter); | ||
96 | |||
97 | /* Check if this is enough to classify the binary. */ | ||
98 | @@ -113,20 +137,20 @@ process_elf_file32 (const char *file_nam | ||
99 | break; | ||
100 | |||
101 | case PT_NOTE: | ||
102 | - if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4) | ||
103 | + if (!*osversion && read32(segment->p_filesz, be) >= 32 && segment->p_align >= 4) | ||
104 | { | ||
105 | Elf32_Word *abi_note = (Elf32_Word *) (file_contents | ||
106 | - + segment->p_offset); | ||
107 | - Elf32_Addr size = segment->p_filesz; | ||
108 | + + read32(segment->p_offset, be)); | ||
109 | + Elf32_Addr size = read32(segment->p_filesz, be); | ||
110 | |||
111 | - while (abi_note [0] != 4 || abi_note [1] != 16 | ||
112 | - || abi_note [2] != 1 | ||
113 | + while (read32(abi_note [0], be) != 4 || read32(abi_note [1], be) != 16 | ||
114 | + || read32(abi_note [2], be) != 1 | ||
115 | || memcmp (abi_note + 3, "GNU", 4) != 0) | ||
116 | { | ||
117 | -#define ROUND(len) (((len) + sizeof (Elf32_Word)) - 1) & -sizeof (Elf32_Word))) | ||
118 | - Elf32_Addr) note_size = 3 * sizeof (Elf32_Word)) | ||
119 | - + ROUND (abi_note[0]) | ||
120 | - + ROUND (abi_note[1]); | ||
121 | +#define ROUND(len) (((len) + sizeof (Elf32_Word) - 1) & -sizeof (Elf32_Word)) | ||
122 | + Elf32_Addr note_size = 3 * sizeof (Elf32_Word) | ||
123 | + + ROUND (read32(abi_note[0], be)) | ||
124 | + + ROUND (read32(abi_note[1], be)); | ||
125 | |||
126 | if (size - 32 < note_size || note_size == 0) | ||
127 | { | ||
128 | @@ -140,10 +164,10 @@ process_elf_file32 (const char *file_nam | ||
129 | if (size == 0) | ||
130 | break; | ||
131 | |||
132 | - *osversion = (abi_note [4] << 24) | | ||
133 | - ((abi_note [5] & 0xff) << 16) | | ||
134 | - ((abi_note [6] & 0xff) << 8) | | ||
135 | - (abi_note [7] & 0xff); | ||
136 | + *osversion = (read32(abi_note [4], be) << 24) | | ||
137 | + ((read32(abi_note [5], be) & 0xff) << 16) | | ||
138 | + ((read32(abi_note [6], be) & 0xff) << 8) | | ||
139 | + (read32(abi_note [7], be) & 0xff); | ||
140 | } | ||
141 | break; | ||
142 | |||
143 | @@ -167,13 +191,13 @@ process_elf_file32 (const char *file_nam | ||
144 | |||
145 | /* Find the string table. */ | ||
146 | dynamic_strings = NULL; | ||
147 | - for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL; | ||
148 | + for (dyn_entry = dynamic_segment; read32(dyn_entry->d_tag, be) != DT_NULL; | ||
149 | ++dyn_entry) | ||
150 | { | ||
151 | check_ptr (dyn_entry); | ||
152 | - if (dyn_entry->d_tag == DT_STRTAB) | ||
153 | + if (read32(dyn_entry->d_tag, be) == DT_STRTAB) | ||
154 | { | ||
155 | - dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val - loadaddr); | ||
156 | + dynamic_strings = (char *) (file_contents + read32(dyn_entry->d_un.d_val, be) - loadaddr); | ||
157 | check_ptr (dynamic_strings); | ||
158 | break; | ||
159 | } | ||
160 | @@ -183,15 +207,15 @@ process_elf_file32 (const char *file_nam | ||
161 | return 1; | ||
162 | |||
163 | /* Now read the DT_NEEDED and DT_SONAME entries. */ | ||
164 | - for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL; | ||
165 | + for (dyn_entry = dynamic_segment; read32(dyn_entry->d_tag, be) != DT_NULL; | ||
166 | ++dyn_entry) | ||
167 | { | ||
168 | - if (dyn_entry->d_tag == DT_NEEDED || dyn_entry->d_tag == DT_SONAME) | ||
169 | + if (read32(dyn_entry->d_tag, be) == DT_NEEDED || read32(dyn_entry->d_tag, be) == DT_SONAME) | ||
170 | { | ||
171 | - char *name = dynamic_strings + dyn_entry->d_un.d_val; | ||
172 | + char *name = dynamic_strings + read32(dyn_entry->d_un.d_val, be); | ||
173 | check_ptr (name); | ||
174 | |||
175 | - if (dyn_entry->d_tag == DT_NEEDED) | ||
176 | + if (read32(dyn_entry->d_tag, be) == DT_NEEDED) | ||
177 | { | ||
178 | |||
179 | if (*flag == FLAG_ELF) | ||
180 | @@ -208,7 +232,7 @@ process_elf_file32 (const char *file_nam | ||
181 | } | ||
182 | } | ||
183 | |||
184 | - else if (dyn_entry->d_tag == DT_SONAME) | ||
185 | + else if (read32(dyn_entry->d_tag, be) == DT_SONAME) | ||
186 | *soname = xstrdup (name); | ||
187 | |||
188 | /* Do we have everything we need? */ | ||
189 | @@ -246,15 +270,17 @@ process_elf_file64 (const char *file_nam | ||
190 | elf_header = (Elf64_Ehdr *) file_contents; | ||
191 | *osversion = 0; | ||
192 | |||
193 | - if (elf_header->e_type != ET_DYN) | ||
194 | + be = (elf_header->e_ident[EI_DATA] == ELFDATA2MSB); | ||
195 | + | ||
196 | + if (read16(elf_header->e_type, be) != ET_DYN) | ||
197 | { | ||
198 | error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name, | ||
199 | - elf_header->e_type); | ||
200 | + read16(elf_header->e_type, be)); | ||
201 | return 1; | ||
202 | } | ||
203 | |||
204 | /* Get information from elf program header. */ | ||
205 | - elf_pheader = (Elf64_Phdr *) (elf_header->e_phoff + file_contents); | ||
206 | + elf_pheader = (Elf64_Phdr *) (read64(elf_header->e_phoff, be) + file_contents); | ||
207 | check_ptr (elf_pheader); | ||
208 | |||
209 | /* The library is an elf library, now search for soname and | ||
210 | @@ -266,27 +292,27 @@ process_elf_file64 (const char *file_nam | ||
211 | dynamic_size = 0; | ||
212 | program_interpreter = NULL; | ||
213 | for (i = 0, segment = elf_pheader; | ||
214 | - i < elf_header->e_phnum; i++, segment++) | ||
215 | + i < read16(elf_header->e_phnum, be); i++, segment++) | ||
216 | { | ||
217 | check_ptr (segment); | ||
218 | |||
219 | - switch (segment->p_type) | ||
220 | + switch (read32(segment->p_type, be)) | ||
221 | { | ||
222 | case PT_LOAD: | ||
223 | if (loadaddr == (Elf64_Addr) -1) | ||
224 | - loadaddr = segment->p_vaddr - segment->p_offset; | ||
225 | + loadaddr = read64(segment->p_vaddr, be) - read64(segment->p_offset, be); | ||
226 | break; | ||
227 | |||
228 | case PT_DYNAMIC: | ||
229 | if (dynamic_addr) | ||
230 | error (0, 0, _("more than one dynamic segment\n")); | ||
231 | |||
232 | - dynamic_addr = segment->p_offset; | ||
233 | - dynamic_size = segment->p_filesz; | ||
234 | + dynamic_addr = read64(segment->p_offset, be); | ||
235 | + dynamic_size = read32(segment->p_filesz, be); | ||
236 | break; | ||
237 | |||
238 | case PT_INTERP: | ||
239 | - program_interpreter = (char *) (file_contents + segment->p_offset); | ||
240 | + program_interpreter = (char *) (file_contents + read64(segment->p_offset, be)); | ||
241 | check_ptr (program_interpreter); | ||
242 | |||
243 | /* Check if this is enough to classify the binary. */ | ||
244 | @@ -300,20 +326,21 @@ process_elf_file64 (const char *file_nam | ||
245 | break; | ||
246 | |||
247 | case PT_NOTE: | ||
248 | - if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4) | ||
249 | + if (!*osversion && read32(segment->p_filesz, be) >= 32 && read32(segment->p_align, be) >= 4) | ||
250 | { | ||
251 | Elf64_Word *abi_note = (Elf64_Word *) (file_contents | ||
252 | - + segment->p_offset); | ||
253 | - Elf64_Addr size = segment->p_filesz; | ||
254 | + + read64(segment->p_offset, be)); | ||
255 | + Elf64_Addr size = read32(segment->p_filesz, be); | ||
256 | |||
257 | - while (abi_note [0] != 4 || abi_note [1] != 16 | ||
258 | - || abi_note [2] != 1 | ||
259 | + while (read32(abi_note [0], be) != 4 || read32(abi_note [1], be) != 16 | ||
260 | + || read32(abi_note [2], be) != 1 | ||
261 | || memcmp (abi_note + 3, "GNU", 4) != 0) | ||
262 | { | ||
263 | +#undef ROUND | ||
264 | #define ROUND(len) (((len) + sizeof (Elf64_Word) - 1) & -sizeof (Elf64_Word)) | ||
265 | Elf64_Addr note_size = 3 * sizeof (Elf64_Word) | ||
266 | - + ROUND (abi_note[0]) | ||
267 | - + ROUND (abi_note[1]); | ||
268 | + + ROUND (read32(abi_note[0], be)) | ||
269 | + + ROUND (read32(abi_note[1], be)); | ||
270 | |||
271 | if (size - 32 < note_size || note_size == 0) | ||
272 | { | ||
273 | @@ -327,10 +354,10 @@ process_elf_file64 (const char *file_nam | ||
274 | if (size == 0) | ||
275 | break; | ||
276 | |||
277 | - *osversion = (abi_note [4] << 24) | | ||
278 | - ((abi_note [5] & 0xff) << 16) | | ||
279 | - ((abi_note [6] & 0xff) << 8) | | ||
280 | - (abi_note [7] & 0xff); | ||
281 | + *osversion = (read32(abi_note [4], be) << 24) | | ||
282 | + ((read32(abi_note [5], be) & 0xff) << 16) | | ||
283 | + ((read32(abi_note [6], be) & 0xff) << 8) | | ||
284 | + (read32(abi_note [7], be) & 0xff); | ||
285 | } | ||
286 | break; | ||
287 | |||
288 | @@ -354,13 +381,13 @@ process_elf_file64 (const char *file_nam | ||
289 | |||
290 | /* Find the string table. */ | ||
291 | dynamic_strings = NULL; | ||
292 | - for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL; | ||
293 | + for (dyn_entry = dynamic_segment; read64(dyn_entry->d_tag, be) != DT_NULL; | ||
294 | ++dyn_entry) | ||
295 | { | ||
296 | check_ptr (dyn_entry); | ||
297 | - if (dyn_entry->d_tag == DT_STRTAB) | ||
298 | + if (read64(dyn_entry->d_tag, be) == DT_STRTAB) | ||
299 | { | ||
300 | - dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val - loadaddr); | ||
301 | + dynamic_strings = (char *) (file_contents + read64(dyn_entry->d_un.d_val, be) - loadaddr); | ||
302 | check_ptr (dynamic_strings); | ||
303 | break; | ||
304 | } | ||
305 | @@ -370,15 +397,15 @@ process_elf_file64 (const char *file_nam | ||
306 | return 1; | ||
307 | |||
308 | /* Now read the DT_NEEDED and DT_SONAME entries. */ | ||
309 | - for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL; | ||
310 | + for (dyn_entry = dynamic_segment; read64(dyn_entry->d_tag, be) != DT_NULL; | ||
311 | ++dyn_entry) | ||
312 | { | ||
313 | - if (dyn_entry->d_tag == DT_NEEDED || dyn_entry->d_tag == DT_SONAME) | ||
314 | + if (read64(dyn_entry->d_tag, be) == DT_NEEDED || read64(dyn_entry->d_tag, be) == DT_SONAME) | ||
315 | { | ||
316 | - char *name = dynamic_strings + dyn_entry->d_un.d_val; | ||
317 | + char *name = dynamic_strings + read64(dyn_entry->d_un.d_val, be); | ||
318 | check_ptr (name); | ||
319 | |||
320 | - if (dyn_entry->d_tag == DT_NEEDED) | ||
321 | + if (read64(dyn_entry->d_tag, be) == DT_NEEDED) | ||
322 | { | ||
323 | |||
324 | if (*flag == FLAG_ELF) | ||
325 | @@ -395,7 +422,7 @@ process_elf_file64 (const char *file_nam | ||
326 | } | ||
327 | } | ||
328 | |||
329 | - else if (dyn_entry->d_tag == DT_SONAME) | ||
330 | + else if (read64(dyn_entry->d_tag, be) == DT_SONAME) | ||
331 | *soname = xstrdup (name); | ||
332 | |||
333 | /* Do we have everything we need? */ | ||
334 | Index: ldconfig-native-2.12.1/readlib.c | ||
335 | =================================================================== | ||
336 | --- ldconfig-native-2.12.1.orig/readlib.c | ||
337 | +++ ldconfig-native-2.12.1/readlib.c | ||
338 | @@ -169,7 +169,8 @@ process_file (const char *real_file_name | ||
339 | ret = 1; | ||
340 | } | ||
341 | /* Libraries have to be shared object files. */ | ||
342 | - else if (elf_header->e_type != ET_DYN) | ||
343 | + else if ((elf_header->e_ident[EI_DATA] == ELFDATA2MSB && be16toh(elf_header->e_type) != ET_DYN) || | ||
344 | + (elf_header->e_ident[EI_DATA] == ELFDATA2LSB && le16toh(elf_header->e_type) != ET_DYN)) | ||
345 | ret = 1; | ||
346 | else if (process_elf_file (file_name, lib, flag, osversion, soname, | ||
347 | file_contents, statbuf.st_size)) | ||
348 | Index: ldconfig-native-2.12.1/cache.c | ||
349 | =================================================================== | ||
350 | --- ldconfig-native-2.12.1.orig/cache.c | ||
351 | +++ ldconfig-native-2.12.1/cache.c | ||
352 | @@ -39,6 +39,29 @@ | ||
353 | # define N_(msgid) msgid | ||
354 | #define _(msg) msg | ||
355 | |||
356 | +extern int be; | ||
357 | + | ||
358 | +static uint16_t write16(uint16_t x, int be) | ||
359 | +{ | ||
360 | + if (be) | ||
361 | + return htobe16(x); | ||
362 | + return htole16(x); | ||
363 | +} | ||
364 | + | ||
365 | +static uint32_t write32(uint32_t x, int be) | ||
366 | +{ | ||
367 | + if (be) | ||
368 | + return htobe32(x); | ||
369 | + return htole32(x); | ||
370 | +} | ||
371 | + | ||
372 | +static uint64_t write64(uint64_t x, int be) | ||
373 | +{ | ||
374 | + if (be) | ||
375 | + return htobe64(x); | ||
376 | + return htole64(x); | ||
377 | +} | ||
378 | + | ||
379 | struct cache_entry | ||
380 | { | ||
381 | char *lib; /* Library name. */ | ||
382 | @@ -279,7 +302,12 @@ save_cache (const char *cache_name) | ||
383 | /* Number of normal cache entries. */ | ||
384 | int cache_entry_old_count = 0; | ||
385 | |||
386 | - for (entry = entries; entry != NULL; entry = entry->next) | ||
387 | + if (be) | ||
388 | + printf("saving cache in big endian encoding\n"); | ||
389 | + else | ||
390 | + printf("saving cache in little endian encoding\n"); | ||
391 | + | ||
392 | + for (entry = entries; entry != NULL; entry = entry->next) | ||
393 | { | ||
394 | /* Account the final NULs. */ | ||
395 | total_strlen += strlen (entry->lib) + strlen (entry->path) + 2; | ||
396 | @@ -310,7 +338,7 @@ save_cache (const char *cache_name) | ||
397 | memset (file_entries, '\0', sizeof (struct cache_file)); | ||
398 | memcpy (file_entries->magic, CACHEMAGIC, sizeof CACHEMAGIC - 1); | ||
399 | |||
400 | - file_entries->nlibs = cache_entry_old_count; | ||
401 | + file_entries->nlibs = write32(cache_entry_old_count, be); | ||
402 | } | ||
403 | |||
404 | struct cache_file_new *file_entries_new = NULL; | ||
405 | @@ -330,8 +358,8 @@ save_cache (const char *cache_name) | ||
406 | memcpy (file_entries_new->version, CACHE_VERSION, | ||
407 | sizeof CACHE_VERSION - 1); | ||
408 | |||
409 | - file_entries_new->nlibs = cache_entry_count; | ||
410 | - file_entries_new->len_strings = total_strlen; | ||
411 | + file_entries_new->nlibs = write32(cache_entry_count, be); | ||
412 | + file_entries_new->len_strings = write32(total_strlen, be); | ||
413 | } | ||
414 | |||
415 | /* Pad for alignment of cache_file_new. */ | ||
416 | @@ -358,9 +386,9 @@ save_cache (const char *cache_name) | ||
417 | /* First the library. */ | ||
418 | if (opt_format != 2 && entry->hwcap == 0) | ||
419 | { | ||
420 | - file_entries->libs[idx_old].flags = entry->flags; | ||
421 | + file_entries->libs[idx_old].flags = write32(entry->flags, be); | ||
422 | /* XXX: Actually we can optimize here and remove duplicates. */ | ||
423 | - file_entries->libs[idx_old].key = str_offset + pad; | ||
424 | + file_entries->libs[idx_old].key = write32(str_offset + pad, be); | ||
425 | } | ||
426 | if (opt_format != 0) | ||
427 | { | ||
428 | @@ -368,10 +396,10 @@ save_cache (const char *cache_name) | ||
429 | not doing so makes the code easier, the string table | ||
430 | always begins at the beginning of the the new cache | ||
431 | struct. */ | ||
432 | - file_entries_new->libs[idx_new].flags = entry->flags; | ||
433 | - file_entries_new->libs[idx_new].osversion = entry->osversion; | ||
434 | - file_entries_new->libs[idx_new].hwcap = entry->hwcap; | ||
435 | - file_entries_new->libs[idx_new].key = str_offset; | ||
436 | + file_entries_new->libs[idx_new].flags = write32(entry->flags, be); | ||
437 | + file_entries_new->libs[idx_new].osversion = write32(entry->osversion, be); | ||
438 | + file_entries_new->libs[idx_new].hwcap = write64(entry->hwcap, be); | ||
439 | + file_entries_new->libs[idx_new].key = write32(str_offset, be); | ||
440 | } | ||
441 | |||
442 | size_t len = strlen (entry->lib) + 1; | ||
443 | @@ -379,9 +407,9 @@ save_cache (const char *cache_name) | ||
444 | str_offset += len; | ||
445 | /* Then the path. */ | ||
446 | if (opt_format != 2 && entry->hwcap == 0) | ||
447 | - file_entries->libs[idx_old].value = str_offset + pad; | ||
448 | + file_entries->libs[idx_old].value = write32(str_offset + pad, be); | ||
449 | if (opt_format != 0) | ||
450 | - file_entries_new->libs[idx_new].value = str_offset; | ||
451 | + file_entries_new->libs[idx_new].value = write32(str_offset, be); | ||
452 | len = strlen (entry->path) + 1; | ||
453 | str = mempcpy (str, entry->path, len); | ||
454 | str_offset += len; | ||
diff --git a/meta/recipes-core/eglibc/ldconfig-native-2.12.1/endianess-header.patch b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/endianess-header.patch new file mode 100644 index 0000000000..a18b2c20de --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/endianess-header.patch | |||
@@ -0,0 +1,113 @@ | |||
1 | Upstream-Status: Inappropriate [fix poky patch] | ||
2 | |||
3 | This patch fixes build issues with a previous endian-ness_handling.patch on | ||
4 | distros that don't have macros referenced | ||
5 | |||
6 | 7/20/2011 | ||
7 | Matthew McClintock <msm@freescale.com> | ||
8 | |||
9 | diff -purN ldconfig-native-2.12.1.orig/endian_extra.h ldconfig-native-2.12.1/endian_extra.h | ||
10 | --- ldconfig-native-2.12.1.orig/endian_extra.h 1969-12-31 18:00:00.000000000 -0600 | ||
11 | +++ ldconfig-native-2.12.1/endian_extra.h 2011-07-19 18:09:14.323048417 -0500 | ||
12 | @@ -0,0 +1,64 @@ | ||
13 | +/* Copyright (C) 1992, 1996, 1997, 2000, 2008 Free Software Foundation, Inc. | ||
14 | + This file is part of the GNU C Library. | ||
15 | + | ||
16 | + The GNU C Library is free software; you can redistribute it and/or | ||
17 | + modify it under the terms of the GNU Lesser General Public | ||
18 | + License as published by the Free Software Foundation; either | ||
19 | + version 2.1 of the License, or (at your option) any later version. | ||
20 | + | ||
21 | + The GNU C Library is distributed in the hope that it will be useful, | ||
22 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
23 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
24 | + Lesser General Public License for more details. | ||
25 | + | ||
26 | + You should have received a copy of the GNU Lesser General Public | ||
27 | + License along with the GNU C Library; if not, write to the Free | ||
28 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
29 | + 02111-1307 USA. */ | ||
30 | + | ||
31 | +#include <endian.h> | ||
32 | + | ||
33 | +#ifndef _ENDIAN_EXTRA_H | ||
34 | +#define _ENDIAN_EXTRA_H 1 | ||
35 | + | ||
36 | +/* Don't redefine these macros if they already exist */ | ||
37 | +#ifndef htobe16 | ||
38 | +#ifdef __USE_BSD | ||
39 | +/* Conversion interfaces. */ | ||
40 | +# include <byteswap.h> | ||
41 | + | ||
42 | +# if __BYTE_ORDER == __LITTLE_ENDIAN | ||
43 | +# define htobe16(x) __bswap_16 (x) | ||
44 | +# define htole16(x) (x) | ||
45 | +# define be16toh(x) __bswap_16 (x) | ||
46 | +# define le16toh(x) (x) | ||
47 | + | ||
48 | +# define htobe32(x) __bswap_32 (x) | ||
49 | +# define htole32(x) (x) | ||
50 | +# define be32toh(x) __bswap_32 (x) | ||
51 | +# define le32toh(x) (x) | ||
52 | + | ||
53 | +# define htobe64(x) __bswap_64 (x) | ||
54 | +# define htole64(x) (x) | ||
55 | +# define be64toh(x) __bswap_64 (x) | ||
56 | +# define le64toh(x) (x) | ||
57 | +# else | ||
58 | +# define htobe16(x) (x) | ||
59 | +# define htole16(x) __bswap_16 (x) | ||
60 | +# define be16toh(x) (x) | ||
61 | +# define le16toh(x) __bswap_16 (x) | ||
62 | + | ||
63 | +# define htobe32(x) (x) | ||
64 | +# define htole32(x) __bswap_32 (x) | ||
65 | +# define be32toh(x) (x) | ||
66 | +# define le32toh(x) __bswap_32 (x) | ||
67 | + | ||
68 | +# define htobe64(x) (x) | ||
69 | +# define htole64(x) __bswap_64 (x) | ||
70 | +# define be64toh(x) (x) | ||
71 | +# define le64toh(x) __bswap_64 (x) | ||
72 | +# endif | ||
73 | +#endif | ||
74 | +#endif | ||
75 | + | ||
76 | +#endif /* endian_extra.h */ | ||
77 | diff -purN ldconfig-native-2.12.1.orig/cache.c ldconfig-native-2.12.1/cache.c | ||
78 | --- ldconfig-native-2.12.1.orig/cache.c 2011-07-19 18:21:28.347041301 -0500 | ||
79 | +++ ldconfig-native-2.12.1/cache.c 2011-07-19 18:22:54.118048064 -0500 | ||
80 | @@ -39,6 +39,8 @@ | ||
81 | # define N_(msgid) msgid | ||
82 | #define _(msg) msg | ||
83 | |||
84 | +#include "endian_extra.h" | ||
85 | + | ||
86 | extern int be; | ||
87 | |||
88 | static uint16_t write16(uint16_t x, int be) | ||
89 | diff -purN ldconfig-native-2.12.1.orig/readelflib.c ldconfig-native-2.12.1/readelflib.c | ||
90 | --- ldconfig-native-2.12.1.orig/readelflib.c 2011-07-19 18:21:28.346041593 -0500 | ||
91 | +++ ldconfig-native-2.12.1/readelflib.c 2011-07-19 18:23:05.324059875 -0500 | ||
92 | @@ -25,6 +25,9 @@ | ||
93 | |||
94 | /* check_ptr checks that a pointer is in the mmaped file and doesn't | ||
95 | point outside it. */ | ||
96 | + | ||
97 | +#include "endian_extra.h" | ||
98 | + | ||
99 | #undef check_ptr | ||
100 | #define check_ptr(ptr) \ | ||
101 | do \ | ||
102 | diff -purN ldconfig-native-2.12.1.orig/readlib.c ldconfig-native-2.12.1/readlib.c | ||
103 | --- ldconfig-native-2.12.1.orig/readlib.c 2011-07-19 18:21:28.346041593 -0500 | ||
104 | +++ ldconfig-native-2.12.1/readlib.c 2011-07-19 18:23:23.877046210 -0500 | ||
105 | @@ -40,6 +40,8 @@ | ||
106 | |||
107 | #include "ldconfig.h" | ||
108 | |||
109 | +#include "endian_extra.h" | ||
110 | + | ||
111 | #define _(msg) msg | ||
112 | |||
113 | #define Elf32_CLASS ELFCLASS32 | ||
diff --git a/meta/recipes-core/eglibc/ldconfig-native-2.12.1/flag_fix.patch b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/flag_fix.patch new file mode 100644 index 0000000000..4e9aab9416 --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/flag_fix.patch | |||
@@ -0,0 +1,24 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | The native version of ldconfig was using native definition of LD_SO (i.e. | ||
4 | ld-linux-x86-64.so.2 ) which is not correct for doing the cross ldconfig. | ||
5 | This was causing libc.so on the target marked as ELF lib rather than | ||
6 | FLAG_ELF_LIBC6 in the ld.so.cache. | ||
7 | |||
8 | Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/4 | ||
9 | |||
10 | Index: ldconfig-native-2.12.1/readlib.c | ||
11 | =================================================================== | ||
12 | --- ldconfig-native-2.12.1.orig/readlib.c | ||
13 | +++ ldconfig-native-2.12.1/readlib.c | ||
14 | @@ -51,6 +51,10 @@ struct known_names | ||
15 | int flag; | ||
16 | }; | ||
17 | |||
18 | +/* don't use host's definition of LD_SO */ | ||
19 | +#undef LD_SO | ||
20 | +#define LD_SO "ld.so.1" | ||
21 | + | ||
22 | static struct known_names interpreters[] = | ||
23 | { | ||
24 | { "/lib/" LD_SO, FLAG_ELF_LIBC6 }, | ||
diff --git a/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig-native-2.12.1.tar.bz2 b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig-native-2.12.1.tar.bz2 new file mode 100644 index 0000000000..dc1e79888e --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig-native-2.12.1.tar.bz2 | |||
Binary files differ | |||
diff --git a/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig.patch b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig.patch new file mode 100644 index 0000000000..52986e61c7 --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig.patch | |||
@@ -0,0 +1,471 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | enable standalone building of ldconfig | ||
4 | |||
5 | --- | ||
6 | cache.c | 11 +- | ||
7 | chroot_canon.c | 7 + | ||
8 | dl-cache.c | 235 --------------------------------------------------------- | ||
9 | dl-cache.h | 3 | ||
10 | ldconfig.c | 27 ++++-- | ||
11 | readlib.c | 7 + | ||
12 | xstrdup.c | 11 -- | ||
13 | 7 files changed, 45 insertions(+), 256 deletions(-) | ||
14 | |||
15 | Index: ldconfig-native-2.12.1/cache.c | ||
16 | =================================================================== | ||
17 | --- ldconfig-native-2.12.1.orig/cache.c | ||
18 | +++ ldconfig-native-2.12.1/cache.c | ||
19 | @@ -16,6 +16,9 @@ | ||
20 | along with this program; if not, write to the Free Software Foundation, | ||
21 | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||
22 | |||
23 | +#define _LARGEFILE64_SOURCE | ||
24 | +#define _GNU_SOURCE | ||
25 | + | ||
26 | #include <errno.h> | ||
27 | #include <error.h> | ||
28 | #include <dirent.h> | ||
29 | @@ -31,8 +34,10 @@ | ||
30 | #include <sys/stat.h> | ||
31 | #include <sys/types.h> | ||
32 | |||
33 | -#include <ldconfig.h> | ||
34 | -#include <dl-cache.h> | ||
35 | +#include "ldconfig.h" | ||
36 | +#include "dl-cache.h" | ||
37 | +# define N_(msgid) msgid | ||
38 | +#define _(msg) msg | ||
39 | |||
40 | struct cache_entry | ||
41 | { | ||
42 | Index: ldconfig-native-2.12.1/chroot_canon.c | ||
43 | =================================================================== | ||
44 | --- ldconfig-native-2.12.1.orig/chroot_canon.c | ||
45 | +++ ldconfig-native-2.12.1/chroot_canon.c | ||
46 | @@ -17,6 +17,9 @@ | ||
47 | along with this program; if not, write to the Free Software Foundation, | ||
48 | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||
49 | |||
50 | +#define _LARGEFILE64_SOURCE | ||
51 | +#define _GNU_SOURCE | ||
52 | + | ||
53 | #include <stdlib.h> | ||
54 | #include <string.h> | ||
55 | #include <unistd.h> | ||
56 | @@ -27,7 +30,9 @@ | ||
57 | #include <stddef.h> | ||
58 | #include <stdint.h> | ||
59 | |||
60 | -#include <ldconfig.h> | ||
61 | +#include "ldconfig.h" | ||
62 | + | ||
63 | +#define __set_errno(Val) errno = (Val) | ||
64 | |||
65 | #ifndef PATH_MAX | ||
66 | #define PATH_MAX 1024 | ||
67 | Index: ldconfig-native-2.12.1/dl-cache.c | ||
68 | =================================================================== | ||
69 | --- ldconfig-native-2.12.1.orig/dl-cache.c | ||
70 | +++ ldconfig-native-2.12.1/dl-cache.c | ||
71 | @@ -20,12 +20,12 @@ | ||
72 | |||
73 | #include <assert.h> | ||
74 | #include <unistd.h> | ||
75 | -#include <ldsodefs.h> | ||
76 | +//#include "ldsodefs.h" | ||
77 | #include <sys/mman.h> | ||
78 | #include <dl-cache.h> | ||
79 | #include <dl-procinfo.h> | ||
80 | |||
81 | -#include <stdio-common/_itoa.h> | ||
82 | +//#include "_itoa.h" | ||
83 | |||
84 | #ifndef _DL_PLATFORMS_COUNT | ||
85 | # define _DL_PLATFORMS_COUNT 0 | ||
86 | @@ -39,103 +39,7 @@ static size_t cachesize; | ||
87 | /* 1 if cache_data + PTR points into the cache. */ | ||
88 | #define _dl_cache_verify_ptr(ptr) (ptr < cache_data_size) | ||
89 | |||
90 | -#define SEARCH_CACHE(cache) \ | ||
91 | -/* We use binary search since the table is sorted in the cache file. \ | ||
92 | - The first matching entry in the table is returned. \ | ||
93 | - It is important to use the same algorithm as used while generating \ | ||
94 | - the cache file. */ \ | ||
95 | -do \ | ||
96 | - { \ | ||
97 | - left = 0; \ | ||
98 | - right = cache->nlibs - 1; \ | ||
99 | - \ | ||
100 | - while (left <= right) \ | ||
101 | - { \ | ||
102 | - __typeof__ (cache->libs[0].key) key; \ | ||
103 | - \ | ||
104 | - middle = (left + right) / 2; \ | ||
105 | - \ | ||
106 | - key = cache->libs[middle].key; \ | ||
107 | - \ | ||
108 | - /* Make sure string table indices are not bogus before using \ | ||
109 | - them. */ \ | ||
110 | - if (! _dl_cache_verify_ptr (key)) \ | ||
111 | - { \ | ||
112 | - cmpres = 1; \ | ||
113 | - break; \ | ||
114 | - } \ | ||
115 | - \ | ||
116 | - /* Actually compare the entry with the key. */ \ | ||
117 | - cmpres = _dl_cache_libcmp (name, cache_data + key); \ | ||
118 | - if (__builtin_expect (cmpres == 0, 0)) \ | ||
119 | - { \ | ||
120 | - /* Found it. LEFT now marks the last entry for which we \ | ||
121 | - know the name is correct. */ \ | ||
122 | - left = middle; \ | ||
123 | - \ | ||
124 | - /* There might be entries with this name before the one we \ | ||
125 | - found. So we have to find the beginning. */ \ | ||
126 | - while (middle > 0) \ | ||
127 | - { \ | ||
128 | - __typeof__ (cache->libs[0].key) key; \ | ||
129 | - \ | ||
130 | - key = cache->libs[middle - 1].key; \ | ||
131 | - /* Make sure string table indices are not bogus before \ | ||
132 | - using them. */ \ | ||
133 | - if (! _dl_cache_verify_ptr (key) \ | ||
134 | - /* Actually compare the entry. */ \ | ||
135 | - || _dl_cache_libcmp (name, cache_data + key) != 0) \ | ||
136 | - break; \ | ||
137 | - --middle; \ | ||
138 | - } \ | ||
139 | - \ | ||
140 | - do \ | ||
141 | - { \ | ||
142 | - int flags; \ | ||
143 | - __typeof__ (cache->libs[0]) *lib = &cache->libs[middle]; \ | ||
144 | - \ | ||
145 | - /* Only perform the name test if necessary. */ \ | ||
146 | - if (middle > left \ | ||
147 | - /* We haven't seen this string so far. Test whether the \ | ||
148 | - index is ok and whether the name matches. Otherwise \ | ||
149 | - we are done. */ \ | ||
150 | - && (! _dl_cache_verify_ptr (lib->key) \ | ||
151 | - || (_dl_cache_libcmp (name, cache_data + lib->key) \ | ||
152 | - != 0))) \ | ||
153 | - break; \ | ||
154 | - \ | ||
155 | - flags = lib->flags; \ | ||
156 | - if (_dl_cache_check_flags (flags) \ | ||
157 | - && _dl_cache_verify_ptr (lib->value)) \ | ||
158 | - { \ | ||
159 | - if (best == NULL || flags == GLRO(dl_correct_cache_id)) \ | ||
160 | - { \ | ||
161 | - HWCAP_CHECK; \ | ||
162 | - best = cache_data + lib->value; \ | ||
163 | - \ | ||
164 | - if (flags == GLRO(dl_correct_cache_id)) \ | ||
165 | - /* We've found an exact match for the shared \ | ||
166 | - object and no general `ELF' release. Stop \ | ||
167 | - searching. */ \ | ||
168 | - break; \ | ||
169 | - } \ | ||
170 | - } \ | ||
171 | - } \ | ||
172 | - while (++middle <= right); \ | ||
173 | - break; \ | ||
174 | - } \ | ||
175 | - \ | ||
176 | - if (cmpres < 0) \ | ||
177 | - left = middle + 1; \ | ||
178 | - else \ | ||
179 | - right = middle - 1; \ | ||
180 | - } \ | ||
181 | - } \ | ||
182 | -while (0) | ||
183 | - | ||
184 | - | ||
185 | int | ||
186 | -internal_function | ||
187 | _dl_cache_libcmp (const char *p1, const char *p2) | ||
188 | { | ||
189 | while (*p1 != '\0') | ||
190 | @@ -172,139 +76,3 @@ _dl_cache_libcmp (const char *p1, const | ||
191 | } | ||
192 | return *p1 - *p2; | ||
193 | } | ||
194 | - | ||
195 | - | ||
196 | -/* Look up NAME in ld.so.cache and return the file name stored there, | ||
197 | - or null if none is found. */ | ||
198 | - | ||
199 | -const char * | ||
200 | -internal_function | ||
201 | -_dl_load_cache_lookup (const char *name) | ||
202 | -{ | ||
203 | - int left, right, middle; | ||
204 | - int cmpres; | ||
205 | - const char *cache_data; | ||
206 | - uint32_t cache_data_size; | ||
207 | - const char *best; | ||
208 | - | ||
209 | - /* Print a message if the loading of libs is traced. */ | ||
210 | - if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0)) | ||
211 | - _dl_debug_printf (" search cache=%s\n", LD_SO_CACHE); | ||
212 | - | ||
213 | - if (cache == NULL) | ||
214 | - { | ||
215 | - /* Read the contents of the file. */ | ||
216 | - void *file = _dl_sysdep_read_whole_file (LD_SO_CACHE, &cachesize, | ||
217 | - PROT_READ); | ||
218 | - | ||
219 | - /* We can handle three different cache file formats here: | ||
220 | - - the old libc5/glibc2.0/2.1 format | ||
221 | - - the old format with the new format in it | ||
222 | - - only the new format | ||
223 | - The following checks if the cache contains any of these formats. */ | ||
224 | - if (file != MAP_FAILED && cachesize > sizeof *cache | ||
225 | - && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0) | ||
226 | - { | ||
227 | - size_t offset; | ||
228 | - /* Looks ok. */ | ||
229 | - cache = file; | ||
230 | - | ||
231 | - /* Check for new version. */ | ||
232 | - offset = ALIGN_CACHE (sizeof (struct cache_file) | ||
233 | - + cache->nlibs * sizeof (struct file_entry)); | ||
234 | - | ||
235 | - cache_new = (struct cache_file_new *) ((void *) cache + offset); | ||
236 | - if (cachesize < (offset + sizeof (struct cache_file_new)) | ||
237 | - || memcmp (cache_new->magic, CACHEMAGIC_VERSION_NEW, | ||
238 | - sizeof CACHEMAGIC_VERSION_NEW - 1) != 0) | ||
239 | - cache_new = (void *) -1; | ||
240 | - } | ||
241 | - else if (file != MAP_FAILED && cachesize > sizeof *cache_new | ||
242 | - && memcmp (file, CACHEMAGIC_VERSION_NEW, | ||
243 | - sizeof CACHEMAGIC_VERSION_NEW - 1) == 0) | ||
244 | - { | ||
245 | - cache_new = file; | ||
246 | - cache = file; | ||
247 | - } | ||
248 | - else | ||
249 | - { | ||
250 | - if (file != MAP_FAILED) | ||
251 | - __munmap (file, cachesize); | ||
252 | - cache = (void *) -1; | ||
253 | - } | ||
254 | - | ||
255 | - assert (cache != NULL); | ||
256 | - } | ||
257 | - | ||
258 | - if (cache == (void *) -1) | ||
259 | - /* Previously looked for the cache file and didn't find it. */ | ||
260 | - return NULL; | ||
261 | - | ||
262 | - best = NULL; | ||
263 | - | ||
264 | - if (cache_new != (void *) -1) | ||
265 | - { | ||
266 | - uint64_t platform; | ||
267 | - | ||
268 | - /* This is where the strings start. */ | ||
269 | - cache_data = (const char *) cache_new; | ||
270 | - | ||
271 | - /* Now we can compute how large the string table is. */ | ||
272 | - cache_data_size = (const char *) cache + cachesize - cache_data; | ||
273 | - | ||
274 | - platform = _dl_string_platform (GLRO(dl_platform)); | ||
275 | - if (platform != (uint64_t) -1) | ||
276 | - platform = 1ULL << platform; | ||
277 | - | ||
278 | -#define _DL_HWCAP_TLS_MASK (1LL << 63) | ||
279 | - uint64_t hwcap_exclude = ~((GLRO(dl_hwcap) & GLRO(dl_hwcap_mask)) | ||
280 | - | _DL_HWCAP_PLATFORM | _DL_HWCAP_TLS_MASK); | ||
281 | - | ||
282 | - /* Only accept hwcap if it's for the right platform. */ | ||
283 | -#define HWCAP_CHECK \ | ||
284 | - if (lib->hwcap & hwcap_exclude) \ | ||
285 | - continue; \ | ||
286 | - if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion)) \ | ||
287 | - continue; \ | ||
288 | - if (_DL_PLATFORMS_COUNT \ | ||
289 | - && (lib->hwcap & _DL_HWCAP_PLATFORM) != 0 \ | ||
290 | - && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform) \ | ||
291 | - continue | ||
292 | - SEARCH_CACHE (cache_new); | ||
293 | - } | ||
294 | - else | ||
295 | - { | ||
296 | - /* This is where the strings start. */ | ||
297 | - cache_data = (const char *) &cache->libs[cache->nlibs]; | ||
298 | - | ||
299 | - /* Now we can compute how large the string table is. */ | ||
300 | - cache_data_size = (const char *) cache + cachesize - cache_data; | ||
301 | - | ||
302 | -#undef HWCAP_CHECK | ||
303 | -#define HWCAP_CHECK do {} while (0) | ||
304 | - SEARCH_CACHE (cache); | ||
305 | - } | ||
306 | - | ||
307 | - /* Print our result if wanted. */ | ||
308 | - if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0) | ||
309 | - && best != NULL) | ||
310 | - _dl_debug_printf (" trying file=%s\n", best); | ||
311 | - | ||
312 | - return best; | ||
313 | -} | ||
314 | - | ||
315 | -#ifndef MAP_COPY | ||
316 | -/* If the system does not support MAP_COPY we cannot leave the file open | ||
317 | - all the time since this would create problems when the file is replaced. | ||
318 | - Therefore we provide this function to close the file and open it again | ||
319 | - once needed. */ | ||
320 | -void | ||
321 | -_dl_unload_cache (void) | ||
322 | -{ | ||
323 | - if (cache != NULL && cache != (struct cache_file *) -1) | ||
324 | - { | ||
325 | - __munmap (cache, cachesize); | ||
326 | - cache = NULL; | ||
327 | - } | ||
328 | -} | ||
329 | -#endif | ||
330 | Index: ldconfig-native-2.12.1/dl-cache.h | ||
331 | =================================================================== | ||
332 | --- ldconfig-native-2.12.1.orig/dl-cache.h | ||
333 | +++ ldconfig-native-2.12.1/dl-cache.h | ||
334 | @@ -101,5 +101,4 @@ struct cache_file_new | ||
335 | (((addr) + __alignof__ (struct cache_file_new) -1) \ | ||
336 | & (~(__alignof__ (struct cache_file_new) - 1))) | ||
337 | |||
338 | -extern int _dl_cache_libcmp (const char *p1, const char *p2) | ||
339 | - internal_function; | ||
340 | +extern int _dl_cache_libcmp (const char *p1, const char *p2); | ||
341 | Index: ldconfig-native-2.12.1/ldconfig.c | ||
342 | =================================================================== | ||
343 | --- ldconfig-native-2.12.1.orig/ldconfig.c | ||
344 | +++ ldconfig-native-2.12.1/ldconfig.c | ||
345 | @@ -16,6 +16,9 @@ | ||
346 | along with this program; if not, write to the Free Software Foundation, | ||
347 | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||
348 | |||
349 | +#define _LARGEFILE64_SOURCE | ||
350 | +#define _GNU_SOURCE | ||
351 | + | ||
352 | #define PROCINFO_CLASS static | ||
353 | #include <alloca.h> | ||
354 | #include <argp.h> | ||
355 | @@ -39,10 +42,20 @@ | ||
356 | #include <glob.h> | ||
357 | #include <libgen.h> | ||
358 | |||
359 | -#include <ldconfig.h> | ||
360 | -#include <dl-cache.h> | ||
361 | +#include "ldconfig.h" | ||
362 | +#include "dl-cache.h" | ||
363 | + | ||
364 | +#include "dl-procinfo.h" | ||
365 | + | ||
366 | +#include "argp.h" | ||
367 | + | ||
368 | + | ||
369 | +#define SYSCONFDIR "/etc" | ||
370 | +#define LIBDIR "/usr/lib" | ||
371 | +#define SLIBDIR "/lib" | ||
372 | +# define N_(msgid) msgid | ||
373 | +#define _(msg) msg | ||
374 | |||
375 | -#include <dl-procinfo.h> | ||
376 | |||
377 | #ifdef _DL_FIRST_PLATFORM | ||
378 | # define _DL_FIRST_EXTRA (_DL_FIRST_PLATFORM + _DL_PLATFORMS_COUNT) | ||
379 | @@ -55,7 +68,7 @@ | ||
380 | #endif | ||
381 | |||
382 | /* Get libc version number. */ | ||
383 | -#include <version.h> | ||
384 | +#include "version.h" | ||
385 | |||
386 | #define PACKAGE _libc_intl_domainname | ||
387 | |||
388 | @@ -152,8 +165,8 @@ static const struct argp_option options[ | ||
389 | { NULL, 0, NULL, 0, NULL, 0 } | ||
390 | }; | ||
391 | |||
392 | -#define PROCINFO_CLASS static | ||
393 | -#include <dl-procinfo.c> | ||
394 | +//#define PROCINFO_CLASS static | ||
395 | +//#include <dl-procinfo.c> | ||
396 | |||
397 | /* Short description of program. */ | ||
398 | static const char doc[] = N_("Configure Dynamic Linker Run Time Bindings."); | ||
399 | @@ -291,6 +304,7 @@ parse_opt (int key, char *arg, struct ar | ||
400 | return 0; | ||
401 | } | ||
402 | |||
403 | +#define REPORT_BUGS_TO "mailing list : poky@yoctoproject.org" | ||
404 | /* Print bug-reporting information in the help message. */ | ||
405 | static char * | ||
406 | more_help (int key, const char *text, void *input) | ||
407 | @@ -315,7 +329,7 @@ For bug reporting instructions, please s | ||
408 | static void | ||
409 | print_version (FILE *stream, struct argp_state *state) | ||
410 | { | ||
411 | - fprintf (stream, "ldconfig %s%s\n", PKGVERSION, VERSION); | ||
412 | + fprintf (stream, "ldconfig (Hacked Poky Version)\n"); | ||
413 | fprintf (stream, gettext ("\ | ||
414 | Copyright (C) %s Free Software Foundation, Inc.\n\ | ||
415 | This is free software; see the source for copying conditions. There is NO\n\ | ||
416 | @@ -1233,6 +1247,7 @@ set_hwcap (void) | ||
417 | hwcap_mask = strtoul (mask, NULL, 0); | ||
418 | } | ||
419 | |||
420 | +const char _libc_intl_domainname[] = "libc"; | ||
421 | |||
422 | int | ||
423 | main (int argc, char **argv) | ||
424 | Index: ldconfig-native-2.12.1/readlib.c | ||
425 | =================================================================== | ||
426 | --- ldconfig-native-2.12.1.orig/readlib.c | ||
427 | +++ ldconfig-native-2.12.1/readlib.c | ||
428 | @@ -22,6 +22,9 @@ | ||
429 | development version. Besides the simplification, it has also been | ||
430 | modified to read some other file formats. */ | ||
431 | |||
432 | +#define _LARGEFILE64_SOURCE | ||
433 | +#define _GNU_SOURCE | ||
434 | + | ||
435 | #include <a.out.h> | ||
436 | #include <elf.h> | ||
437 | #include <error.h> | ||
438 | @@ -35,7 +38,9 @@ | ||
439 | #include <sys/stat.h> | ||
440 | #include <gnu/lib-names.h> | ||
441 | |||
442 | -#include <ldconfig.h> | ||
443 | +#include "ldconfig.h" | ||
444 | + | ||
445 | +#define _(msg) msg | ||
446 | |||
447 | #define Elf32_CLASS ELFCLASS32 | ||
448 | #define Elf64_CLASS ELFCLASS64 | ||
449 | Index: ldconfig-native-2.12.1/xstrdup.c | ||
450 | =================================================================== | ||
451 | --- ldconfig-native-2.12.1.orig/xstrdup.c | ||
452 | +++ ldconfig-native-2.12.1/xstrdup.c | ||
453 | @@ -16,15 +16,10 @@ | ||
454 | along with this program; if not, write to the Free Software Foundation, | ||
455 | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||
456 | |||
457 | -#ifdef HAVE_CONFIG_H | ||
458 | -# include <config.h> | ||
459 | -#endif | ||
460 | +#define _GNU_SOURCE | ||
461 | + | ||
462 | +#include <string.h> | ||
463 | |||
464 | -#if defined STDC_HEADERS || defined HAVE_STRING_H || _LIBC | ||
465 | -# include <string.h> | ||
466 | -#else | ||
467 | -# include <strings.h> | ||
468 | -#endif | ||
469 | void *xmalloc (size_t n) __THROW; | ||
470 | char *xstrdup (char *string) __THROW; | ||
471 | |||
diff --git a/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig_aux-cache_path_fix.patch b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig_aux-cache_path_fix.patch new file mode 100644 index 0000000000..27bc411078 --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig_aux-cache_path_fix.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | Coming from this bug: http://sourceware.org/bugzilla/show_bug.cgi?id=11149 | ||
4 | |||
5 | Nitin A Kamble <nitin.a.kamble@intel.com>2011/03/29 | ||
6 | |||
7 | --- ldconfig-native-2.12.1.orig/ldconfig.c | ||
8 | +++ ldconfig-native-2.12.1/ldconfig.c | ||
9 | @@ -1359,14 +1359,9 @@ main (int argc, char **argv) | ||
10 | |||
11 | const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE; | ||
12 | if (opt_chroot) | ||
13 | - { | ||
14 | - aux_cache_file = chroot_canon (opt_chroot, aux_cache_file); | ||
15 | - if (aux_cache_file == NULL) | ||
16 | - error (EXIT_FAILURE, errno, _("Can't open cache file %s\n"), | ||
17 | - _PATH_LDCONFIG_AUX_CACHE); | ||
18 | - } | ||
19 | + aux_cache_file = chroot_canon (opt_chroot, aux_cache_file); | ||
20 | |||
21 | - if (! opt_ignore_aux_cache) | ||
22 | + if (! opt_ignore_aux_cache && aux_cache_file) | ||
23 | load_aux_cache (aux_cache_file); | ||
24 | else | ||
25 | init_aux_cache (); | ||
26 | @@ -1376,7 +1371,8 @@ main (int argc, char **argv) | ||
27 | if (opt_build_cache) | ||
28 | { | ||
29 | save_cache (cache_file); | ||
30 | - save_aux_cache (aux_cache_file); | ||
31 | + if (aux_cache_file) | ||
32 | + save_aux_cache (aux_cache_file); | ||
33 | } | ||
34 | |||
35 | return 0; | ||
36 | |||
diff --git a/meta/recipes-core/eglibc/ldconfig-native_2.12.1.bb b/meta/recipes-core/eglibc/ldconfig-native_2.12.1.bb new file mode 100644 index 0000000000..63ef95b7e7 --- /dev/null +++ b/meta/recipes-core/eglibc/ldconfig-native_2.12.1.bb | |||
@@ -0,0 +1,30 @@ | |||
1 | DESCRIPTION = "A standalone native ldconfig build" | ||
2 | |||
3 | LICENSE = "GPLv2+" | ||
4 | |||
5 | LIC_FILES_CHKSUM = "file://${S}/ldconfig.c;endline=17;md5=1d15f20937c055cb5de2329a4c054399" | ||
6 | |||
7 | SRC_URI = "file://ldconfig-native-2.12.1.tar.bz2 \ | ||
8 | file://ldconfig.patch \ | ||
9 | file://ldconfig_aux-cache_path_fix.patch \ | ||
10 | file://32and64bit.patch \ | ||
11 | file://endian-ness_handling.patch \ | ||
12 | file://flag_fix.patch \ | ||
13 | file://endianess-header.patch" | ||
14 | |||
15 | PR = "r2" | ||
16 | |||
17 | FILESPATH = "${FILE_DIRNAME}/${PN}-${PV}/" | ||
18 | |||
19 | inherit native | ||
20 | |||
21 | S = "${WORKDIR}/${PN}-${PV}" | ||
22 | |||
23 | do_compile () { | ||
24 | $CC ldconfig.c -std=gnu99 chroot_canon.c xmalloc.c xstrdup.c cache.c readlib.c -I. dl-cache.c -o ldconfig | ||
25 | } | ||
26 | |||
27 | do_install () { | ||
28 | install -d ${D}/${bindir}/ | ||
29 | install ldconfig ${D}/${bindir}/ | ||
30 | } | ||
diff --git a/meta/recipes-core/eglibc/site_config/funcs b/meta/recipes-core/eglibc/site_config/funcs new file mode 100644 index 0000000000..ccc85392d7 --- /dev/null +++ b/meta/recipes-core/eglibc/site_config/funcs | |||
@@ -0,0 +1,474 @@ | |||
1 | a64l | ||
2 | abs | ||
3 | access | ||
4 | __adjtimex | ||
5 | alarm | ||
6 | alphasort | ||
7 | argz_append | ||
8 | __argz_count | ||
9 | argz_create_sep | ||
10 | argz_insert | ||
11 | __argz_next | ||
12 | argz_next | ||
13 | __argz_stringify | ||
14 | argz_stringify | ||
15 | asprintf | ||
16 | atexit | ||
17 | atof | ||
18 | atoi | ||
19 | bcmp | ||
20 | bcopy | ||
21 | bindresvport | ||
22 | bind_textdomain_codeset | ||
23 | btowc | ||
24 | bzero | ||
25 | calloc | ||
26 | canonicalize_file_name | ||
27 | catgets | ||
28 | cfgetospeed | ||
29 | cfsetispeed | ||
30 | cfsetspeed | ||
31 | chmod | ||
32 | chown | ||
33 | chroot | ||
34 | clock | ||
35 | close | ||
36 | closedir | ||
37 | closelog | ||
38 | confstr | ||
39 | connect | ||
40 | daemon | ||
41 | dcgettext | ||
42 | difftime | ||
43 | dirfd | ||
44 | dirname | ||
45 | dngettext | ||
46 | dup2 | ||
47 | ecvt | ||
48 | endgrent | ||
49 | endmntent | ||
50 | endpwent | ||
51 | endutent | ||
52 | endutxent | ||
53 | epoll_ctl | ||
54 | err | ||
55 | ether_hostton | ||
56 | ether_ntohost | ||
57 | euidaccess | ||
58 | execv | ||
59 | fchdir | ||
60 | fchmod | ||
61 | fchmodat | ||
62 | fchown | ||
63 | fchownat | ||
64 | fcntl | ||
65 | fcvt | ||
66 | fdatasync | ||
67 | fdopendir | ||
68 | feof_unlocked | ||
69 | fgets_unlocked | ||
70 | fgetxattr | ||
71 | finite | ||
72 | flistxattr | ||
73 | flock | ||
74 | flockfile | ||
75 | fnmatch | ||
76 | fork | ||
77 | fpathconf | ||
78 | __fpending | ||
79 | fprintf | ||
80 | free | ||
81 | freeaddrinfo | ||
82 | freeifaddrs | ||
83 | fseeko | ||
84 | __fsetlocking | ||
85 | fsetxattr | ||
86 | fstat64 | ||
87 | fstat | ||
88 | fstatfs | ||
89 | fsync | ||
90 | ftello | ||
91 | ftime | ||
92 | ftruncate | ||
93 | funlockfile | ||
94 | futimes | ||
95 | futimesat | ||
96 | gai_strerror | ||
97 | gcvt | ||
98 | getaddrinfo | ||
99 | getc_unlocked | ||
100 | getcwd | ||
101 | getdelim | ||
102 | getdomainname | ||
103 | getdtablesize | ||
104 | getegid | ||
105 | getenv | ||
106 | geteuid | ||
107 | getgid | ||
108 | getgrent | ||
109 | getgrent_r | ||
110 | getgrgid_r | ||
111 | getgrnam | ||
112 | getgrnam_r | ||
113 | getgrouplist | ||
114 | getgroups | ||
115 | gethostbyaddr_r | ||
116 | gethostbyname2 | ||
117 | gethostbyname | ||
118 | gethostbyname_r | ||
119 | gethostent | ||
120 | gethostid | ||
121 | gethostname | ||
122 | getifaddrs | ||
123 | getline | ||
124 | getloadavg | ||
125 | getmntent | ||
126 | getmsg | ||
127 | getnameinfo | ||
128 | getnetbyaddr_r | ||
129 | getnetgrent_r | ||
130 | getopt | ||
131 | getopt_long | ||
132 | getopt_long_only | ||
133 | getpagesize | ||
134 | getpass | ||
135 | getpeername | ||
136 | getpgrp | ||
137 | getpid | ||
138 | getppid | ||
139 | getprotoent_r | ||
140 | getpwent | ||
141 | getpwent_r | ||
142 | getpwnam | ||
143 | getpwnam_r | ||
144 | getpwuid | ||
145 | getpwuid_r | ||
146 | getresuid | ||
147 | getrlimit | ||
148 | getrusage | ||
149 | getservbyname | ||
150 | getservbyname_r | ||
151 | getservbyport_r | ||
152 | getservent | ||
153 | getservent_r | ||
154 | getspnam | ||
155 | getspnam_r | ||
156 | gettimeofday | ||
157 | getttyent | ||
158 | getttynam | ||
159 | getuid | ||
160 | getusershell | ||
161 | getutent | ||
162 | getutid | ||
163 | getutline | ||
164 | getutmp | ||
165 | getutmpx | ||
166 | getutxent | ||
167 | getutxid | ||
168 | getutxline | ||
169 | getwd | ||
170 | getxattr | ||
171 | glob | ||
172 | gmtime | ||
173 | gmtime_r | ||
174 | grantpt | ||
175 | group_member | ||
176 | herror | ||
177 | hstrerror | ||
178 | iconv | ||
179 | iconv_open | ||
180 | if_freenameindex | ||
181 | if_indextoname | ||
182 | if_nameindex | ||
183 | if_nametoindex | ||
184 | index | ||
185 | inet_addr | ||
186 | inet_aton | ||
187 | inet_ntoa | ||
188 | inet_ntop | ||
189 | inet_pton | ||
190 | initgroups | ||
191 | innetgr | ||
192 | iruserok | ||
193 | isascii | ||
194 | isatty | ||
195 | isblank | ||
196 | isgraph | ||
197 | isinf | ||
198 | isnan | ||
199 | isprint | ||
200 | isspace | ||
201 | iswalnum | ||
202 | iswcntrl | ||
203 | iswctype | ||
204 | iswprint | ||
205 | iswspace | ||
206 | iswupper | ||
207 | isxdigit | ||
208 | kill | ||
209 | killpg | ||
210 | lchown | ||
211 | lckpwdf | ||
212 | lgetxattr | ||
213 | link | ||
214 | listxattr | ||
215 | llistxattr | ||
216 | localtime | ||
217 | localtime_r | ||
218 | lockf | ||
219 | lrand48 | ||
220 | lsearch | ||
221 | lseek64 | ||
222 | lsetxattr | ||
223 | lstat | ||
224 | mallinfo | ||
225 | malloc | ||
226 | mblen | ||
227 | mbrlen | ||
228 | mbrtowc | ||
229 | mbsinit | ||
230 | mbsrtowcs | ||
231 | mbtowc | ||
232 | memalign | ||
233 | memchr | ||
234 | memcmp | ||
235 | memcpy | ||
236 | memmove | ||
237 | mempcpy | ||
238 | memrchr | ||
239 | memset | ||
240 | mkdir | ||
241 | mkdirat | ||
242 | mkdtemp | ||
243 | mkfifo | ||
244 | mknod | ||
245 | mkstemp64 | ||
246 | mkstemp | ||
247 | mktime | ||
248 | mlock | ||
249 | mmap | ||
250 | mtrace | ||
251 | munlock | ||
252 | munmap | ||
253 | nanosleep | ||
254 | nice | ||
255 | nl_langinfo | ||
256 | ntp_adjtime | ||
257 | ntp_gettime | ||
258 | _obstack_free | ||
259 | on_exit | ||
260 | open64 | ||
261 | open | ||
262 | openat | ||
263 | opendir | ||
264 | openlog | ||
265 | pathconf | ||
266 | pipe | ||
267 | poll | ||
268 | popen | ||
269 | posix_memalign | ||
270 | prctl | ||
271 | pread | ||
272 | printf | ||
273 | __progname | ||
274 | pselect | ||
275 | pthread_mutex_lock | ||
276 | ptsname | ||
277 | putenv | ||
278 | putgrent | ||
279 | putpwent | ||
280 | putspent | ||
281 | pututline | ||
282 | pututxline | ||
283 | putwc | ||
284 | pwrite | ||
285 | qsort | ||
286 | raise | ||
287 | rand | ||
288 | random | ||
289 | rand_r | ||
290 | read | ||
291 | readdir | ||
292 | readdir_r | ||
293 | readlink | ||
294 | realloc | ||
295 | realpath | ||
296 | re_comp | ||
297 | recvmsg | ||
298 | re_exec | ||
299 | regcomp | ||
300 | regexec | ||
301 | remove | ||
302 | rename | ||
303 | re_search | ||
304 | rmdir | ||
305 | rpmatch | ||
306 | rresvport_af | ||
307 | ruserok | ||
308 | ruserok_af | ||
309 | sbrk | ||
310 | scandir | ||
311 | sched_setscheduler | ||
312 | sched_yield | ||
313 | __secure_getenv | ||
314 | select | ||
315 | semctl | ||
316 | semget | ||
317 | sendmsg | ||
318 | setbuf | ||
319 | setbuffer | ||
320 | setegid | ||
321 | setenv | ||
322 | seteuid | ||
323 | setgid | ||
324 | setgroups | ||
325 | sethostname | ||
326 | setitimer | ||
327 | _setjmp | ||
328 | setjmp | ||
329 | setlinebuf | ||
330 | setlocale | ||
331 | setmntent | ||
332 | setpgid | ||
333 | setpgrp | ||
334 | setpriority | ||
335 | setregid | ||
336 | setresgid | ||
337 | setresuid | ||
338 | setreuid | ||
339 | setrlimit | ||
340 | setsid | ||
341 | setsockopt | ||
342 | settimeofday | ||
343 | setuid | ||
344 | setutent | ||
345 | setutxent | ||
346 | setvbuf | ||
347 | setxattr | ||
348 | sgetspent | ||
349 | shmat | ||
350 | shmctl | ||
351 | shmdt | ||
352 | shmget | ||
353 | shutdown | ||
354 | sigaction | ||
355 | sigaddset | ||
356 | sigaltstack | ||
357 | sigblock | ||
358 | sigemptyset | ||
359 | sighold | ||
360 | siginterrupt | ||
361 | signal | ||
362 | sigprocmask | ||
363 | sigset | ||
364 | sigsetmask | ||
365 | sigstack | ||
366 | sigsuspend | ||
367 | sigvec | ||
368 | snprintf | ||
369 | socket | ||
370 | socketpair | ||
371 | sprintf | ||
372 | srand48 | ||
373 | srand | ||
374 | srandom | ||
375 | sscanf | ||
376 | stat | ||
377 | statfs | ||
378 | statvfs | ||
379 | stime | ||
380 | stpcpy | ||
381 | strcasecmp | ||
382 | strcasestr | ||
383 | strchr | ||
384 | strchrnul | ||
385 | strcmp | ||
386 | strcspn | ||
387 | strdup | ||
388 | strerror | ||
389 | strerror_r | ||
390 | strftime | ||
391 | strlen | ||
392 | strncasecmp | ||
393 | strncmp | ||
394 | strndup | ||
395 | strnlen | ||
396 | strpbrk | ||
397 | strptime | ||
398 | strrchr | ||
399 | strsep | ||
400 | strsignal | ||
401 | strspn | ||
402 | strstr | ||
403 | strtod | ||
404 | strtoimax | ||
405 | strtok_r | ||
406 | strtol | ||
407 | strtoll | ||
408 | strtoul | ||
409 | strtoull | ||
410 | strtoumax | ||
411 | strverscmp | ||
412 | strxfrm | ||
413 | symlink | ||
414 | sync | ||
415 | sysconf | ||
416 | sysctl | ||
417 | sysinfo | ||
418 | syslog | ||
419 | _sys_siglist | ||
420 | sys_siglist | ||
421 | system | ||
422 | tcgetattr | ||
423 | tcgetpgrp | ||
424 | tcsetattr | ||
425 | tcsetpgrp | ||
426 | time | ||
427 | timegm | ||
428 | times | ||
429 | timezone | ||
430 | tmpnam | ||
431 | towlower | ||
432 | towupper | ||
433 | truncate | ||
434 | tsearch | ||
435 | ttyname | ||
436 | tzset | ||
437 | ulimit | ||
438 | umask | ||
439 | uname | ||
440 | unlink | ||
441 | unsetenv | ||
442 | unshare | ||
443 | updwtmp | ||
444 | updwtmpx | ||
445 | usleep | ||
446 | ustat | ||
447 | utime | ||
448 | utimes | ||
449 | utmpname | ||
450 | utmpxname | ||
451 | valloc | ||
452 | vasprintf | ||
453 | verrx | ||
454 | vfork | ||
455 | vfprintf | ||
456 | vfscanf | ||
457 | vhangup | ||
458 | vprintf | ||
459 | vsnprintf | ||
460 | vsprintf | ||
461 | wait3 | ||
462 | wait4 | ||
463 | waitpid | ||
464 | wcrtomb | ||
465 | wcscoll | ||
466 | wcsdup | ||
467 | wcslen | ||
468 | wctob | ||
469 | wctomb | ||
470 | wctype | ||
471 | wcwidth | ||
472 | wmemchr | ||
473 | wmemcpy | ||
474 | wmempcpy | ||
diff --git a/meta/recipes-core/eglibc/site_config/headers b/meta/recipes-core/eglibc/site_config/headers new file mode 100644 index 0000000000..609ab53797 --- /dev/null +++ b/meta/recipes-core/eglibc/site_config/headers | |||
@@ -0,0 +1,156 @@ | |||
1 | aio.h | ||
2 | alloca.h | ||
3 | argz.h | ||
4 | arpa/inet.h | ||
5 | arpa/nameser.h | ||
6 | asm/byteorder.h | ||
7 | asm/ioctls.h | ||
8 | asm/page.h | ||
9 | asm/types.h | ||
10 | assert.h | ||
11 | byteswap.h | ||
12 | crypt.h | ||
13 | ctype.h | ||
14 | dirent.h | ||
15 | dlfcn.h | ||
16 | elf.h | ||
17 | endian.h | ||
18 | err.h | ||
19 | errno.h | ||
20 | execinfo.h | ||
21 | fcntl.h | ||
22 | features.h | ||
23 | float.h | ||
24 | fstab.h | ||
25 | ftw.h | ||
26 | getopt.h | ||
27 | glob.h | ||
28 | grp.h | ||
29 | iconv.h | ||
30 | ifaddrs.h | ||
31 | inttypes.h | ||
32 | langinfo.h | ||
33 | lastlog.h | ||
34 | libgen.h | ||
35 | libintl.h | ||
36 | limits.h | ||
37 | linux/capability.h | ||
38 | linux/fd.h | ||
39 | linux/fs.h | ||
40 | linux/hayesesp.h | ||
41 | linux/hdreg.h | ||
42 | linux/icmp.h | ||
43 | linux/in6.h | ||
44 | linux/joystick.h | ||
45 | linux/ptrace.h | ||
46 | linux/serial.h | ||
47 | linux/sonypi.h | ||
48 | linux/unistd.h | ||
49 | linux/utsname.h | ||
50 | linux/version.h | ||
51 | locale.h | ||
52 | malloc.h | ||
53 | math.h | ||
54 | mcheck.h | ||
55 | memory.h | ||
56 | mntent.h | ||
57 | mqueue.h | ||
58 | netdb.h | ||
59 | net/if.h | ||
60 | netinet/ether.h | ||
61 | netinet/in.h | ||
62 | netinet/ip6.h | ||
63 | netinet/ip.h | ||
64 | netinet/tcp.h | ||
65 | netinet/udp.h | ||
66 | netipx/ipx.h | ||
67 | net/route.h | ||
68 | paths.h | ||
69 | poll.h | ||
70 | pthread.h | ||
71 | pty.h | ||
72 | pwd.h | ||
73 | regex.h | ||
74 | resolv.h | ||
75 | rpc/rpc.h | ||
76 | rpc/types.h | ||
77 | sched.h | ||
78 | scsi/scsi.h | ||
79 | search.h | ||
80 | semaphore.h | ||
81 | setjmp.h | ||
82 | sgtty.h | ||
83 | shadow.h | ||
84 | signal.h | ||
85 | stdarg.h | ||
86 | stdbool.h | ||
87 | stdc | ||
88 | stddef.h | ||
89 | stdint.h | ||
90 | stdio.h | ||
91 | stdlib.h | ||
92 | string.h | ||
93 | strings.h | ||
94 | stropts.h | ||
95 | sys/bitypes.h | ||
96 | sys/cdefs.h | ||
97 | sys/dir.h | ||
98 | sys/epoll.h | ||
99 | sysexits.h | ||
100 | sys/fcntl.h | ||
101 | sys/file.h | ||
102 | sys/fsuid.h | ||
103 | sys/ioctl.h | ||
104 | sys/ipc.h | ||
105 | syslog.h | ||
106 | sys/mman.h | ||
107 | sys/mount.h | ||
108 | sys/mtio.h | ||
109 | sys/param.h | ||
110 | sys/poll.h | ||
111 | sys/prctl.h | ||
112 | sys/ptrace.h | ||
113 | sys/queue.h | ||
114 | sys/reg.h | ||
115 | sys/resource.h | ||
116 | sys/select.h | ||
117 | sys/sem.h | ||
118 | sys/shm.h | ||
119 | sys/signal.h | ||
120 | sys/socket.h | ||
121 | sys/socketvar.h | ||
122 | sys/soundcard.h | ||
123 | sys/statfs.h | ||
124 | sys/stat.h | ||
125 | sys/statvfs.h | ||
126 | sys/stropts.h | ||
127 | sys/swap.h | ||
128 | sys/sysctl.h | ||
129 | sys/sysinfo.h | ||
130 | sys/sysmacros.h | ||
131 | sys/termios.h | ||
132 | sys/timeb.h | ||
133 | sys/time.h | ||
134 | sys/times.h | ||
135 | sys/timex.h | ||
136 | sys/types.h | ||
137 | sys/uio.h | ||
138 | sys/un.h | ||
139 | sys/unistd.h | ||
140 | sys/user.h | ||
141 | sys/utsname.h | ||
142 | sys/vfs.h | ||
143 | sys/wait.h | ||
144 | termio.h | ||
145 | termios.h | ||
146 | time.h | ||
147 | ttyent.h | ||
148 | ulimit.h | ||
149 | unistd.h | ||
150 | ustat.h | ||
151 | utime.h | ||
152 | utmp.h | ||
153 | utmpx.h | ||
154 | values.h | ||
155 | wchar.h | ||
156 | wctype.h | ||
diff --git a/meta/recipes-core/eglibc/site_config/types b/meta/recipes-core/eglibc/site_config/types new file mode 100644 index 0000000000..178bd85a00 --- /dev/null +++ b/meta/recipes-core/eglibc/site_config/types | |||
@@ -0,0 +1,21 @@ | |||
1 | char | ||
2 | char * | ||
3 | double | ||
4 | float | ||
5 | int | ||
6 | long | ||
7 | long double | ||
8 | long int | ||
9 | long long | ||
10 | long long int | ||
11 | short | ||
12 | short int | ||
13 | signed char | ||
14 | unsigned char | ||
15 | unsigned int | ||
16 | unsigned long | ||
17 | unsigned long int | ||
18 | unsigned long long int | ||
19 | unsigned short | ||
20 | unsigned short int | ||
21 | void * | ||