Op 17 jun 2011, om 17:46 heeft Mark Hatle het volgende geschreven: > On 6/17/11 5:05 AM, Kang Kai wrote: >> On 2011年06月09日 23:20, Mark Hatle wrote: >>> On 6/9/11 5:57 AM, Kang Kai wrote: >>>> Hi Mark, >>>> >>>> I am focus on eglibc itself compilation with disabling all the >>>> configurable options, right now eglibc can be compiled with disable all >>>> the configurable options. >>>> >>>> But when I build core-image-minimal in a clear new directory, some >>>> packages build failed and they need eglibc supports, such as >>> core-image-minimal is simply to large of an image to see some of the >>> advantages >>> of the eglibc configuration. Realistically the advantages come on single >>> application or small (busybox + single application) systems. >>> >>>> gcc-runtime depends on libc-libm >>> The above looks like a bug to me and should be investigated.. (a bug in gcc >>> that >>> is..) >>> >>>> ncurse depends on libc-posix-wchar-io libc-posix-clang-wchar >>> ncurses can be configured WITHOUT wide character support, the needs to be >>> done >>> with any of the wchar options disabled in eglibc. >>> >>>> openssl depends on libc-inet libc-nsswitch >>> I'm not sure why openssl needs either inet or nsswitch. inet perhaps if it >>> tries to make certain socket calls, but libc-nsswitch should never be >>> required >>> outside of eglibc. This is likely a configuration issue in openssl -- or a >>> bug >>> in eglibc. >>> >>>> gettext depends on libc-spawn libc-locale-code >>>> libc-getlogin libc-utmp >>>> ... >>> Once we introduce gettext (beyond simply it's m4 macros) we're no longer in >>> "small" system territory. gettext and many others really want some of the >>> larger system capabilities as they are designed for multilingual systems. >>> >>>> After enable those options, the image size only decrease from 9.6M to >>>> 9.4M(qemux86). And the dependencies on eglibc is hard to break, >>>> something like libcrypt getlogin(function) can't be breaken. >>>> Could you give me some directions what should I do with eglibc >>>> configurability? >>> My suggest is to start with a new custom configuration. (ignore the >>> gcc-runtime >>> for right now and enable libm.) The goal of this configuration is a small, >>> local system -- without network connectivity. >>> >>> Walk through the core-image-minimal, and you'll see: >>> IMAGE_INSTALL = "task-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}" >>> >>> Looking at task-core-boot: >>> >>> RDEPENDS_task-core-boot = "\ >>> base-files \ >>> base-passwd \ >>> busybox \ >>> initscripts \ >>> ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \ >>> modutils-initscripts \ >>> netbase \ >>> sysvinit \ >>> tinylogin \ >>> udev \ >>> ${VIRTUAL-RUNTIME_update-alternatives} \ >>> ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" >>> >>> RRECOMMENDS_task-core-boot = "\ >>> ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" >>> >>> From the above, I'm pretty sure that "netbase" will require a lot of >>> networking >>> components, specifically adding things like libc-inet. So avoid netbase. >>> >>> It's possible that keyboard/keymaps may cause additional stuff to come in >>> due to >>> locale requirements.. so I'd dump those as well.. >>> >>> sysvinit may also introduce some additional items -- so if it causes >>> problems, >>> remove it and switch to the init located within busybox. >>> >>> update-alternatives is what included gettext -- so this might need some >>> enhancement to avoid gettext as a requirement. So I'd suggest skipping it. >>> (Note without it, it's likely busybox, tinylogin may not get setup >>> properly...) >>> >>> udev is quite complex and drags in a number of components -- so drop that.. >>> >>> Leaving: >>> >>> base-files \ >>> base-passwd \ >>> busybox \ >>> initscripts \ >>> modutils-initscripts \ >>> sysvinit \ >>> tinylogin >> >> Hi Mark, >> >> According this list, expand with their run time depency(show in the >> attachment >> minimal-image-runtime-dependies.png) , and the list is: >> >> base-files \ >> base-passwd \ >> busybox \ >> busybox-syslog \ >> busybox-udhcpc \ >> initscripts \ >> makedevs \ >> modutils-initscripts \ >> sysvinit \ >> sysvinit-pidof \ >> sysvinit-inittab \ >> tinylogin >> >> >> When only enable eglibc libm, busybox, sysvinit and tinylogin can't be >> compiled. >> >> busybox depends on >> >> * libc-crypt >> * libc-getlogin >> * libc-inet >> * libc-posix-regexp >> >> I wonder that maybe libc-crypt can NOT be disabled? Other 3 options can be >> disabled by closing some busybox feature and builtin commands. > > I would guess that there are options within busybox that are enabled that make > use of each of these. Do you get a failure in compilation, configuration, or? > You will likely have to shrink busybox down to a shell and a few simple > commands, instead of the normal config.
THat should be straightforward now that we have this one: http://cgit.openembedded.org/cgit.cgi/openembedded-core/commit/?id=383d94222e8cfc85d0885f60c88c064091866296 and please don't cross-post between poky and oe-core lists... _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core