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 |
