diff options
author | Khem Raj <raj.khem@gmail.com> | 2012-09-05 21:52:34 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-09-10 13:01:49 +0100 |
commit | 607a3d57c5dfa38718b8c8a7d7a58d568f10a6f6 (patch) | |
tree | 61418f7632e81e98ea90d82d4634bb6863bbff52 | |
parent | 4bca66470ea953963b5d3537046d5080564d190e (diff) | |
download | poky-607a3d57c5dfa38718b8c8a7d7a58d568f10a6f6.tar.gz |
eglibc-2.16: Add kconfig infrastructure
This will let eglibc use kernel like option
management through kconfig
(From OE-Core rev: 4282b86072fd5a916d0d12082d6ba575bce691f2)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
4 files changed, 1356 insertions, 1 deletions
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch b/meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch new file mode 100644 index 0000000000..624392666a --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.16/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.16/0002-eglibc-menuconfig-hex-string-options.patch b/meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch new file mode 100644 index 0000000000..7caba48112 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.16/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.16/0003-eglibc-menuconfig-build-instructions.patch b/meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch new file mode 100644 index 0000000000..d137f5b318 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.16/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.16.bb b/meta/recipes-core/eglibc/eglibc_2.16.bb index c4bc18c9d6..5a10387c1c 100644 --- a/meta/recipes-core/eglibc/eglibc_2.16.bb +++ b/meta/recipes-core/eglibc/eglibc_2.16.bb | |||
@@ -3,7 +3,7 @@ require eglibc.inc | |||
3 | SRCREV = "20393" | 3 | SRCREV = "20393" |
4 | 4 | ||
5 | DEPENDS += "gperf-native" | 5 | DEPENDS += "gperf-native" |
6 | PR = "r7" | 6 | PR = "r8" |
7 | PR_append = "+svnr${SRCPV}" | 7 | PR_append = "+svnr${SRCPV}" |
8 | 8 | ||
9 | EGLIBC_BRANCH="eglibc-2_16" | 9 | EGLIBC_BRANCH="eglibc-2_16" |
@@ -26,6 +26,9 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};protocol=h | |||
26 | file://add_resource_h_to_wait_h.patch \ | 26 | file://add_resource_h_to_wait_h.patch \ |
27 | file://0001-Avoid-use-of-libgcc_s-and-libgcc_eh-when-building-gl.patch \ | 27 | file://0001-Avoid-use-of-libgcc_s-and-libgcc_eh-when-building-gl.patch \ |
28 | file://0001-Add-ARM-specific-static-stubs.c.patch \ | 28 | file://0001-Add-ARM-specific-static-stubs.c.patch \ |
29 | file://0001-eglibc-menuconfig-support.patch \ | ||
30 | file://0002-eglibc-menuconfig-hex-string-options.patch \ | ||
31 | file://0003-eglibc-menuconfig-build-instructions.patch \ | ||
29 | " | 32 | " |
30 | LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ | 33 | LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ |
31 | file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ | 34 | file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ |