diff options
author | Chris Larson <kergoth@openedhand.com> | 2006-08-18 09:31:38 +0000 |
---|---|---|
committer | Chris Larson <kergoth@openedhand.com> | 2006-08-18 09:31:38 +0000 |
commit | 45b048283ce2157d6c17d30a7c21d785bd1c6540 (patch) | |
tree | de94c49fec3a5e3cbeb8f509086575dd28dcf7d1 /meta/packages/glibc | |
parent | 10984ecd54feed390029271f4a82708e431bcfcb (diff) | |
download | poky-45b048283ce2157d6c17d30a7c21d785bd1c6540.tar.gz |
x86:
* Add qemux86 machine.
* Glibc 2.4 updates from upstream OE.
* Add linux-x86 kernel to satisfy the deps.
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@616 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/glibc')
-rw-r--r-- | meta/packages/glibc/glibc-2.4/arm-longlong.patch | 2 | ||||
-rw-r--r-- | meta/packages/glibc/glibc-2.4/no-z-defs.patch | 9 | ||||
-rw-r--r-- | meta/packages/glibc/glibc-2.4/zecke-sane-readelf.patch | 149 | ||||
-rw-r--r-- | meta/packages/glibc/glibc-initial_2.4.bb | 4 | ||||
-rw-r--r-- | meta/packages/glibc/glibc-intermediate_2.4.bb | 2 | ||||
-rw-r--r-- | meta/packages/glibc/glibc-package.bbclass | 53 | ||||
-rw-r--r-- | meta/packages/glibc/glibc_2.4.bb | 24 |
7 files changed, 205 insertions, 38 deletions
diff --git a/meta/packages/glibc/glibc-2.4/arm-longlong.patch b/meta/packages/glibc/glibc-2.4/arm-longlong.patch index 320a55524c..28aca83dff 100644 --- a/meta/packages/glibc/glibc-2.4/arm-longlong.patch +++ b/meta/packages/glibc/glibc-2.4/arm-longlong.patch | |||
@@ -54,5 +54,5 @@ | |||
54 | +#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__) | 54 | +#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__) |
55 | +/* Nothing required. */ | 55 | +/* Nothing required. */ |
56 | +#else | 56 | +#else |
57 | +#include <sysdeps/generic/mp_clz_tab.c> | 57 | +#include <stdlib/mp_clz_tab.c> |
58 | +#endif | 58 | +#endif |
diff --git a/meta/packages/glibc/glibc-2.4/no-z-defs.patch b/meta/packages/glibc/glibc-2.4/no-z-defs.patch new file mode 100644 index 0000000000..48c6a41267 --- /dev/null +++ b/meta/packages/glibc/glibc-2.4/no-z-defs.patch | |||
@@ -0,0 +1,9 @@ | |||
1 | Create a configparms file which disabled no-z-defs. | ||
2 | This is required to build a working glibs for sh4, | ||
3 | without there will be a lot linker errors during the build. | ||
4 | |||
5 | diff -duNr libc.orig/configparms libc/configparms | ||
6 | --- libc.orig/configparms 1970-01-01 10:00:00.000000000 +1000 | ||
7 | +++ libc/configparms 2006-02-23 14:08:18.000000000 +1100 | ||
8 | @@ -0,0 +1 @@ | ||
9 | +no-z-defs=yes | ||
diff --git a/meta/packages/glibc/glibc-2.4/zecke-sane-readelf.patch b/meta/packages/glibc/glibc-2.4/zecke-sane-readelf.patch new file mode 100644 index 0000000000..023b6a51bc --- /dev/null +++ b/meta/packages/glibc/glibc-2.4/zecke-sane-readelf.patch | |||
@@ -0,0 +1,149 @@ | |||
1 | Index: glibc-2.4/configure | ||
2 | =================================================================== | ||
3 | --- glibc-2.4.orig/configure 2006-03-06 12:18:56.000000000 +0100 | ||
4 | +++ glibc-2.4/configure 2006-08-06 14:10:51.000000000 +0200 | ||
5 | @@ -5488,6 +5488,95 @@ | ||
6 | fi | ||
7 | fi | ||
8 | |||
9 | +### XXXX copy and pasted | ||
10 | +# Check for readelf | ||
11 | +# Extract the first word of "$target_alias-readelf", so it can be a program name with args. | ||
12 | +set dummy $target_alias-readelf; ac_word=$2 | ||
13 | +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 | ||
14 | +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } | ||
15 | +if test "${ac_cv_prog_READELF+set}" = set; then | ||
16 | + echo $ECHO_N "(cached) $ECHO_C" >&6 | ||
17 | +else | ||
18 | + if test -n "$READELF"; then | ||
19 | + ac_cv_prog_READELF="$READELF" # Let the user override the test. | ||
20 | +else | ||
21 | +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
22 | +for as_dir in $PATH | ||
23 | +do | ||
24 | + IFS=$as_save_IFS | ||
25 | + test -z "$as_dir" && as_dir=. | ||
26 | + for ac_exec_ext in '' $ac_executable_extensions; do | ||
27 | + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
28 | + ac_cv_prog_READELF="$target_alias-readelf" | ||
29 | + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
30 | + break 2 | ||
31 | + fi | ||
32 | +done | ||
33 | +done | ||
34 | +IFS=$as_save_IFS | ||
35 | + | ||
36 | +fi | ||
37 | +fi | ||
38 | +READELF=$ac_cv_prog_READELF | ||
39 | +if test -n "$READELF"; then | ||
40 | + { echo "$as_me:$LINENO: result: $READELF" >&5 | ||
41 | +echo "${ECHO_T}$READELF" >&6; } | ||
42 | +else | ||
43 | + { echo "$as_me:$LINENO: result: no" >&5 | ||
44 | +echo "${ECHO_T}no" >&6; } | ||
45 | +fi | ||
46 | + | ||
47 | + | ||
48 | +if test -z "$ac_cv_prog_READELF"; then | ||
49 | + if test "$build" = "$target"; then | ||
50 | + ac_ct_READELF=$READELF | ||
51 | + # Extract the first word of "readelf", so it can be a program name with args. | ||
52 | +set dummy readelf; ac_word=$2 | ||
53 | +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 | ||
54 | +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } | ||
55 | +if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then | ||
56 | + echo $ECHO_N "(cached) $ECHO_C" >&6 | ||
57 | +else | ||
58 | + if test -n "$ac_ct_READELF"; then | ||
59 | + ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test. | ||
60 | +else | ||
61 | +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
62 | +for as_dir in $PATH | ||
63 | +do | ||
64 | + IFS=$as_save_IFS | ||
65 | + test -z "$as_dir" && as_dir=. | ||
66 | + for ac_exec_ext in '' $ac_executable_extensions; do | ||
67 | + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
68 | + ac_cv_prog_ac_ct_READELF="readelf" | ||
69 | + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
70 | + break 2 | ||
71 | + fi | ||
72 | +done | ||
73 | +done | ||
74 | +IFS=$as_save_IFS | ||
75 | + | ||
76 | + test -z "$ac_cv_prog_ac_ct_READELF" && ac_cv_prog_ac_ct_READELF="readelf" | ||
77 | +fi | ||
78 | +fi | ||
79 | +ac_ct_READELF=$ac_cv_prog_ac_ct_READELF | ||
80 | +if test -n "$ac_ct_READELF"; then | ||
81 | + { echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5 | ||
82 | +echo "${ECHO_T}$ac_ct_READELF" >&6; } | ||
83 | +else | ||
84 | + { echo "$as_me:$LINENO: result: no" >&5 | ||
85 | +echo "${ECHO_T}no" >&6; } | ||
86 | +fi | ||
87 | + | ||
88 | + READELF=ac_ct_READELF | ||
89 | + else | ||
90 | + READELF="readelf" | ||
91 | + fi | ||
92 | +else | ||
93 | + READELF="$ac_cv_prog_READELF" | ||
94 | +fi | ||
95 | + | ||
96 | +### XXXX copy and pasted | ||
97 | + | ||
98 | echo "$as_me:$LINENO: checking for .preinit_array/.init_array/.fini_array support" >&5 | ||
99 | echo $ECHO_N "checking for .preinit_array/.init_array/.fini_array support... $ECHO_C" >&6 | ||
100 | if test "${libc_cv_initfini_array+set}" = set; then | ||
101 | @@ -5507,7 +5596,7 @@ | ||
102 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | ||
103 | (exit $ac_status); }; } | ||
104 | then | ||
105 | - if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then | ||
106 | + if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then | ||
107 | libc_cv_initfini_array=yes | ||
108 | else | ||
109 | libc_cv_initfini_array=no | ||
110 | @@ -5801,7 +5890,7 @@ | ||
111 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | ||
112 | (exit $ac_status); }; } | ||
113 | then | ||
114 | - if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then | ||
115 | + if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then | ||
116 | libc_cv_z_combreloc=yes | ||
117 | else | ||
118 | libc_cv_z_combreloc=no | ||
119 | Index: glibc-2.4/configure.in | ||
120 | =================================================================== | ||
121 | --- glibc-2.4.orig/configure.in 2006-03-01 10:17:40.000000000 +0100 | ||
122 | +++ glibc-2.4/configure.in 2006-08-06 14:09:31.000000000 +0200 | ||
123 | @@ -1350,6 +1350,8 @@ | ||
124 | fi | ||
125 | fi | ||
126 | |||
127 | + AC_CHECK_TARGET_TOOL([READELF],[readelf],[readelf],[$PATH]) | ||
128 | + | ||
129 | AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support, | ||
130 | libc_cv_initfini_array, [dnl | ||
131 | cat > conftest.c <<EOF | ||
132 | @@ -1361,7 +1363,7 @@ | ||
133 | if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c | ||
134 | -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD]) | ||
135 | then | ||
136 | - if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then | ||
137 | + if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then | ||
138 | libc_cv_initfini_array=yes | ||
139 | else | ||
140 | libc_cv_initfini_array=no | ||
141 | @@ -1543,7 +1545,7 @@ | ||
142 | dnl introducing new options this is not easily doable. Instead use a tool | ||
143 | dnl which always is cross-platform: readelf. To detect whether -z combreloc | ||
144 | dnl look for a section named .rel.dyn. | ||
145 | - if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then | ||
146 | + if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then | ||
147 | libc_cv_z_combreloc=yes | ||
148 | else | ||
149 | libc_cv_z_combreloc=no | ||
diff --git a/meta/packages/glibc/glibc-initial_2.4.bb b/meta/packages/glibc/glibc-initial_2.4.bb index 422e8b7110..9ba2ac37cc 100644 --- a/meta/packages/glibc/glibc-initial_2.4.bb +++ b/meta/packages/glibc/glibc-initial_2.4.bb | |||
@@ -1,9 +1,9 @@ | |||
1 | SECTION = "libs" | 1 | SECTION = "libs" |
2 | include glibc_${PV}.bb | 2 | require glibc_${PV}.bb |
3 | 3 | ||
4 | DEPENDS = "linux-libc-headers" | 4 | DEPENDS = "linux-libc-headers" |
5 | PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" | 5 | PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" |
6 | FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-cvs', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" | 6 | FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" |
7 | 7 | ||
8 | PACKAGES = "" | 8 | PACKAGES = "" |
9 | 9 | ||
diff --git a/meta/packages/glibc/glibc-intermediate_2.4.bb b/meta/packages/glibc/glibc-intermediate_2.4.bb index 819cd0950f..01ce8bb9a8 100644 --- a/meta/packages/glibc/glibc-intermediate_2.4.bb +++ b/meta/packages/glibc/glibc-intermediate_2.4.bb | |||
@@ -1,5 +1,5 @@ | |||
1 | SECTION = "libs" | 1 | SECTION = "libs" |
2 | include glibc_${PV}.bb | 2 | require glibc_${PV}.bb |
3 | 3 | ||
4 | DEFAULT_PREFERENCE = "-1" | 4 | DEFAULT_PREFERENCE = "-1" |
5 | 5 | ||
diff --git a/meta/packages/glibc/glibc-package.bbclass b/meta/packages/glibc/glibc-package.bbclass index 680831e822..3ce10b54de 100644 --- a/meta/packages/glibc/glibc-package.bbclass +++ b/meta/packages/glibc/glibc-package.bbclass | |||
@@ -25,20 +25,21 @@ ENABLE_BINARY_LOCALE_GENERATION ?= "0" | |||
25 | # BINARY_LOCALE_ARCHES is a space separated list of regular expressions | 25 | # BINARY_LOCALE_ARCHES is a space separated list of regular expressions |
26 | BINARY_LOCALE_ARCHES ?= "arm.*" | 26 | BINARY_LOCALE_ARCHES ?= "arm.*" |
27 | 27 | ||
28 | PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile" | 28 | PACKAGES = "glibc-dbg glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile" |
29 | PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-*" | 29 | PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-* libc6*" |
30 | 30 | ||
31 | libc_baselibs = "/lib/libc* /lib/libm* /lib/ld* /lib/libpthread* /lib/libresolv* /lib/librt* /lib/libutil* /lib/libnsl* /lib/libnss_files* /lib/libnss_compat* /lib/libnss_dns* /lib/libdl* /lib/libanl* /lib/libBrokenLocale*" | 31 | libc_baselibs = "/lib/libc* /lib/libm* /lib/ld* /lib/libpthread* /lib/libresolv* /lib/librt* /lib/libutil* /lib/libnsl* /lib/libnss_files* /lib/libnss_compat* /lib/libnss_dns* /lib/libdl* /lib/libanl* /lib/libBrokenLocale*" |
32 | 32 | ||
33 | FILES_${PN} = "${sysconfdir} ${libc_baselibs} /sbin/ldconfig ${libexecdir} ${datadir}/zoneinfo" | 33 | FILES_${PN} = "${sysconfdir} ${libc_baselibs} /sbin/ldconfig ${libexecdir}/* ${datadir}/zoneinfo" |
34 | FILES_ldd = "${bindir}/ldd" | 34 | FILES_ldd = "${bindir}/ldd" |
35 | FILES_libsegfault = "/lib/libSegFault*" | 35 | FILES_libsegfault = "/lib/libSegFault*" |
36 | FILES_glibc-extra-nss = "/lib/libnss*" | 36 | FILES_glibc-extra-nss = "/lib/libnss*" |
37 | FILES_sln = "/sbin/sln" | 37 | FILES_sln = "/sbin/sln" |
38 | FILES_glibc-dev_append = " ${libdir}/*.o ${bindir}/rpcgen" | 38 | FILES_glibc-dev_append = " ${libdir}/*.o ${bindir}/rpcgen" |
39 | FILES_nscd = "${sbindir}/nscd*" | 39 | FILES_nscd = "${sbindir}/nscd*" |
40 | FILES_glibc-utils = "${bindir} ${sbindir}" | 40 | FILES_glibc-utils = "${bindir}/* ${sbindir}/*" |
41 | FILES_glibc-gconv = "${libdir}/gconv" | 41 | FILES_glibc-gconv = "${libdir}/gconv/*" |
42 | FILES_${PN}-dbg += " ${libdir}/gconv/.debug" | ||
42 | FILES_catchsegv = "${bindir}/catchsegv" | 43 | FILES_catchsegv = "${bindir}/catchsegv" |
43 | RDEPENDS_catchsegv = "libsegfault" | 44 | RDEPENDS_catchsegv = "libsegfault" |
44 | FILES_glibc-pcprofile = "/lib/libpcprofile.so" | 45 | FILES_glibc-pcprofile = "/lib/libpcprofile.so" |
@@ -77,17 +78,10 @@ do_install() { | |||
77 | grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp | 78 | grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp |
78 | mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED | 79 | mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED |
79 | done | 80 | done |
80 | # If indicated, only build a limited selection of locales | ||
81 | if [ "${LIMIT_BUILT_LOCALES}" != "${LIMIT_BUILT_LOCALES}" ]; then | ||
82 | for i in ${LIMIT_BUILT_LOCALES}; do | ||
83 | grep $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp | ||
84 | mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED | ||
85 | done | ||
86 | fi | ||
87 | rm -f ${D}/etc/rpc | 81 | rm -f ${D}/etc/rpc |
88 | } | 82 | } |
89 | 83 | ||
90 | TMP_LOCALE="/tmp/locale/${libdir}/locale" | 84 | TMP_LOCALE="/tmp/locale${libdir}/locale" |
91 | 85 | ||
92 | locale_base_postinst() { | 86 | locale_base_postinst() { |
93 | #!/bin/sh | 87 | #!/bin/sh |
@@ -102,6 +96,7 @@ if [ -f ${libdir}/locale/locale-archive ]; then | |||
102 | cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/ | 96 | cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/ |
103 | fi | 97 | fi |
104 | localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s --prefix=/tmp/locale %s | 98 | localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s --prefix=/tmp/locale %s |
99 | mkdir -p ${libdir}/locale/ | ||
105 | mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/ | 100 | mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/ |
106 | rm -rf ${TMP_LOCALE} | 101 | rm -rf ${TMP_LOCALE} |
107 | } | 102 | } |
@@ -204,12 +199,7 @@ python package_do_split_gconvs () { | |||
204 | if deps != []: | 199 | if deps != []: |
205 | bb.data.setVar('RDEPENDS_%s' % pkg, " ".join(deps), d) | 200 | bb.data.setVar('RDEPENDS_%s' % pkg, " ".join(deps), d) |
206 | 201 | ||
207 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) | 202 | do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='') |
208 | if use_bin: | ||
209 | do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='', aux_files_pattern_verbatim=binary_locales_dir + '/%s') | ||
210 | else: | ||
211 | do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='') | ||
212 | bb.note("generation of binary locales disabled. this may break i18n!") | ||
213 | bb.data.setVar('PACKAGES', bb.data.getVar('PACKAGES', d) + ' glibc-gconv', d) | 203 | bb.data.setVar('PACKAGES', bb.data.getVar('PACKAGES', d) + ' glibc-gconv', d) |
214 | 204 | ||
215 | f = open(os.path.join(bb.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r") | 205 | f = open(os.path.join(bb.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r") |
@@ -248,8 +238,12 @@ python package_do_split_gconvs () { | |||
248 | target_arch = bb.data.getVar("TARGET_ARCH", d, 1) | 238 | target_arch = bb.data.getVar("TARGET_ARCH", d, 1) |
249 | qemu = "qemu-%s" % target_arch | 239 | qemu = "qemu-%s" % target_arch |
250 | pkgname = 'locale-base-' + legitimize_package_name(name) | 240 | pkgname = 'locale-base-' + legitimize_package_name(name) |
251 | 241 | m = re.match("(.*)\.(.*)", name) | |
252 | bb.data.setVar('RDEPENDS_%s' % pkgname, 'glibc-localedata-%s glibc-charmap-%s' % (legitimize_package_name(locale), legitimize_package_name(encoding)), d) | 242 | if m: |
243 | glibc_name = "%s.%s" % (m.group(1), m.group(2).lower().replace("-","")) | ||
244 | else: | ||
245 | glibc_name = name | ||
246 | bb.data.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('glibc-binary-localedata-%s' % glibc_name), d) | ||
253 | rprovides = 'virtual-locale-%s' % legitimize_package_name(name) | 247 | rprovides = 'virtual-locale-%s' % legitimize_package_name(name) |
254 | m = re.match("(.*)_(.*)", name) | 248 | m = re.match("(.*)_(.*)", name) |
255 | if m: | 249 | if m: |
@@ -262,7 +256,7 @@ python package_do_split_gconvs () { | |||
262 | path = bb.data.getVar("PATH", d, 1) | 256 | path = bb.data.getVar("PATH", d, 1) |
263 | i18npath = os.path.join(treedir, datadir, "i18n") | 257 | i18npath = os.path.join(treedir, datadir, "i18n") |
264 | 258 | ||
265 | localedef_opts = "--force --old-style --no-archive --prefix=%s --inputfile=%s/i18n/locales/%s --charmap=%s %s" % (treedir, datadir, locale, encoding, locale) | 259 | localedef_opts = "--force --old-style --no-archive --prefix=%s --inputfile=%s/i18n/locales/%s --charmap=%s %s" % (treedir, datadir, locale, encoding, name) |
266 | cmd = "PATH=\"%s\" I18NPATH=\"%s\" %s -L %s %s/bin/localedef %s" % (path, i18npath, qemu, treedir, treedir, localedef_opts) | 260 | cmd = "PATH=\"%s\" I18NPATH=\"%s\" %s -L %s %s/bin/localedef %s" % (path, i18npath, qemu, treedir, treedir, localedef_opts) |
267 | bb.note("generating locale %s (%s)" % (locale, encoding)) | 261 | bb.note("generating locale %s (%s)" % (locale, encoding)) |
268 | if os.system(cmd): | 262 | if os.system(cmd): |
@@ -281,20 +275,33 @@ python package_do_split_gconvs () { | |||
281 | bb.build.exec_func("do_prep_locale_tree", d) | 275 | bb.build.exec_func("do_prep_locale_tree", d) |
282 | 276 | ||
283 | # Reshuffle names so that UTF-8 is preferred over other encodings | 277 | # Reshuffle names so that UTF-8 is preferred over other encodings |
278 | non_utf8 = [] | ||
284 | for l in encodings.keys(): | 279 | for l in encodings.keys(): |
285 | if len(encodings[l]) == 1: | 280 | if len(encodings[l]) == 1: |
286 | output_locale(l, l, encodings[l][0]) | 281 | output_locale(l, l, encodings[l][0]) |
282 | if encodings[l][0] != "UTF-8": | ||
283 | non_utf8.append(l) | ||
287 | else: | 284 | else: |
288 | if "UTF-8" in encodings[l]: | 285 | if "UTF-8" in encodings[l]: |
289 | output_locale(l, l, "UTF-8") | 286 | output_locale(l, l, "UTF-8") |
290 | encodings[l].remove("UTF-8") | 287 | encodings[l].remove("UTF-8") |
288 | else: | ||
289 | non_utf8.append(l) | ||
291 | for e in encodings[l]: | 290 | for e in encodings[l]: |
292 | output_locale('%s-%s' % (l, e), l, e) | 291 | output_locale('%s.%s' % (l, e), l, e) |
292 | |||
293 | if non_utf8 != []: | ||
294 | bb.note("the following locales are supported only in legacy encodings:") | ||
295 | bb.note(" " + " ".join(non_utf8)) | ||
293 | 296 | ||
294 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) | 297 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) |
295 | if use_bin: | 298 | if use_bin: |
296 | bb.note("collecting binary locales from locale tree") | 299 | bb.note("collecting binary locales from locale tree") |
297 | bb.build.exec_func("do_collect_bins_from_locale_tree", d) | 300 | bb.build.exec_func("do_collect_bins_from_locale_tree", d) |
301 | do_split_packages(d, binary_locales_dir, file_regex='(.*)', output_pattern='glibc-binary-localedata-%s', description='binary locale definition for %s', extra_depends='', allow_dirs=True) | ||
302 | else: | ||
303 | bb.note("generation of binary locales disabled. this may break i18n!") | ||
304 | |||
298 | } | 305 | } |
299 | 306 | ||
300 | # We want to do this indirection so that we can safely 'return' | 307 | # We want to do this indirection so that we can safely 'return' |
diff --git a/meta/packages/glibc/glibc_2.4.bb b/meta/packages/glibc/glibc_2.4.bb index faaf27ced3..bccdcc7da7 100644 --- a/meta/packages/glibc/glibc_2.4.bb +++ b/meta/packages/glibc/glibc_2.4.bb | |||
@@ -3,8 +3,13 @@ HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" | |||
3 | LICENSE = "LGPL" | 3 | LICENSE = "LGPL" |
4 | SECTION = "libs" | 4 | SECTION = "libs" |
5 | PRIORITY = "required" | 5 | PRIORITY = "required" |
6 | DEFAULT_PREFERENCE = "-1" | 6 | # DEFAULT_PREFERENCE = "-1" |
7 | PR = "r4" | 7 | PR = "r10" |
8 | |||
9 | # the -isystem in bitbake.conf screws up glibc do_stage | ||
10 | BUILD_CPPFLAGS = "-I${STAGING_DIR}/${BUILD_SYS}/include" | ||
11 | TARGET_CPPFLAGS = "-I${STAGING_DIR}/${TARGET_SYS}/include" | ||
12 | |||
8 | 13 | ||
9 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4" | 14 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4" |
10 | 15 | ||
@@ -53,6 +58,7 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-2.4.tar.bz2 \ | |||
53 | file://nptl-crosscompile.patch;patch=1 \ | 58 | file://nptl-crosscompile.patch;patch=1 \ |
54 | file://glibc-2.4-compile.patch;patch=1 \ | 59 | file://glibc-2.4-compile.patch;patch=1 \ |
55 | file://fixup-aeabi-syscalls.patch;patch=1 \ | 60 | file://fixup-aeabi-syscalls.patch;patch=1 \ |
61 | file://zecke-sane-readelf.patch;patch=1 \ | ||
56 | file://generic-bits_select.h \ | 62 | file://generic-bits_select.h \ |
57 | file://generic-bits_types.h \ | 63 | file://generic-bits_types.h \ |
58 | file://generic-bits_typesizes.h \ | 64 | file://generic-bits_typesizes.h \ |
@@ -60,6 +66,10 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-2.4.tar.bz2 \ | |||
60 | file://etc/ld.so.conf \ | 66 | file://etc/ld.so.conf \ |
61 | file://generate-supported.mk" | 67 | file://generate-supported.mk" |
62 | 68 | ||
69 | # Build fails on sh3 and sh4 without additional patches | ||
70 | SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1" | ||
71 | SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1" | ||
72 | |||
63 | S = "${WORKDIR}/glibc-2.4" | 73 | S = "${WORKDIR}/glibc-2.4" |
64 | B = "${WORKDIR}/build-${TARGET_SYS}" | 74 | B = "${WORKDIR}/build-${TARGET_SYS}" |
65 | 75 | ||
@@ -109,14 +119,6 @@ do_munge() { | |||
109 | rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h | 119 | rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h |
110 | # Obsoleted by sysdeps/gnu/bits/utmp.h | 120 | # Obsoleted by sysdeps/gnu/bits/utmp.h |
111 | rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h | 121 | rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h |
112 | |||
113 | # http://www.handhelds.org/hypermail/oe/51/5135.html | ||
114 | # Some files were moved around between directories on | ||
115 | # 2005-12-21, which means that any attempt to check out | ||
116 | # from CVS using a datestamp older than that will be doomed. | ||
117 | # | ||
118 | # This is a workaround for that problem. | ||
119 | rm -rf ${S}/bits | ||
120 | } | 122 | } |
121 | 123 | ||
122 | addtask munge before do_patch after do_unpack | 124 | addtask munge before do_patch after do_unpack |
@@ -198,4 +200,4 @@ do_stage() { | |||
198 | echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${CROSS_DIR}/${TARGET_SYS}/lib/libc.so | 200 | echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${CROSS_DIR}/${TARGET_SYS}/lib/libc.so |
199 | } | 201 | } |
200 | 202 | ||
201 | include glibc-package.bbclass | 203 | require glibc-package.bbclass |