From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
To: Phil Blundell <philb@gnu.org>
Cc: openembedded-devel@lists.openembedded.org
Subject: RFC feature/dep picking heuristics
Date: Wed, 9 Jun 2010 23:26:30 +0200 [thread overview]
Message-ID: <20100609212630.GS14941@mx.loc> (raw)
In-Reply-To: <1276103437-2755-1-git-send-email-rep.dot.nop@gmail.com>
On Wed, Jun 09, 2010 at 07:10:34PM +0200, Bernhard Reutner-Fischer wrote:
>Hi,
>
>These are independent.
>
>1) uClibc: redo configuration
> improve configury of uClibc
[]
>3) busybox: picking IPv6 per default is not up to the package
> first, busybox needs a better configury, like it's done for uclibc
> in 1).
> Second, who picks features and with what preference? packages? user?
> distro? machine? See FIXME in 1).
> This patchlet works around the real issue. Comments on how to tackle
> the underlying issue (or how it's solved elsewhere if it already is,
> i didn't see where/how ?) are _very_ welcome.
that FIXME in 1) reads:
index ee18fc8..b40fbf5 100644
--- a/conf/distro/include/uclibc.inc
+++ b/conf/distro/include/uclibc.inc
@@ -9,3 +9,11 @@ PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl"
PREFERRED_PROVIDER_virtual/libc = "uclibc"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "uclibc-initial"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
+
+# libc settings
+DISTRO_FEATURES += "${@['', '
+nls'][bb.data.getVar('ENABLE_BINARY_LOCALE_GENERATION', d, 1) == '1']}"
+MACHINE_FEATURES += "${@['', ' bx'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1)
+== 'thumb']}"
+# FIXME: We enable IPv4 per default to avoid alot of breakage.
+# FIXME: Figure out an acceptable way to negotiate either
+# FIXME: desired features or hard requirements, either top-down or bottom-up.
+DISTRO_FEATURES += " ipv4"
Problem description:
[all of the following is rather obvious, please accept my apologies for
being redundant and possibly not 100% accurate to keep this brief]
Two realms: Hardware / Software
Both of them provide optional features or impose hard constraints on the
setup.
I) hardware/kernel/libc
Think arm thumb interworking bx or not any or all of them.
libc can use BX or fallback but only for thumb and for some
-mtune's (IIRC).
networking.
- none
- socket
- ipv4 (requires socket)
- ipv6 (requires socket)
- ipv4 || ipv6
nls.
- locales to generate (GLIBC_GENERATE_LOCALES; uclibc can use the same)
- several other options, namely wchar (think mc or mutt -- if forgot
which one -- which requires wchar if not patched)
II) packages
consider micro-base-image for libc=uclibc
consider recipes are equipped with HANDLE_FEATURE (big TODO, RFC).
assume HANDLE_FEATURE is auto-filled off configure.ac for the most
part.
that one selects sysvinit (bug per se but no relevant for now)
sysvinit uses inet_ntoa() or something to that effect
unconditionally -> not buildable since not base_contains HANDLE_FEATURE ipv4
Now my question is:
How can i fit a set of requirements to a set of config options that make
up a system (ideally without changing anything)?
If i have to change something, how should the decision-flow look like to
weight constraints against possibly provided features? What's the
precedence of the following parts:
o HW hard constraints
o HW soft constraints (optional features)
o kernel/Lowlevel hard constraints
o kernel/Lowlevel soft constraints (optional features)
o libc hard constraints (unconfigurable vs. configurable)
o libc soft constraints (optional features)
o package hard constraints (sysvinit requires ipv4)
o package soft constraints (optional features, like iptables/busybox ipv6)
TIA for clarifications or pointers to existing docs covering OE in this
respect && cheers,
next prev parent reply other threads:[~2010-06-09 21:30 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-21 15:31 [PATCH] uClibc: rename main include Bernhard Reutner-Fischer
2010-02-22 5:54 ` Khem Raj
2010-03-12 17:46 ` [RFC, PATCH 0/3] uClibc recipe touchup Bernhard Reutner-Fischer
2010-03-12 17:46 ` [PATCH 1/3] uClibc: rename include file of old releases Bernhard Reutner-Fischer
2010-03-12 17:46 ` [PATCH 2/3] sane-toolchain: add PREFERRED_UCLIBC_VERSION Bernhard Reutner-Fischer
2010-04-05 19:49 ` Roman I Khimov
2010-04-08 9:30 ` Stefan Schmidt
2010-06-09 17:11 ` Bernhard Reutner-Fischer
2010-03-12 17:46 ` [PATCH 3/3] uClibc: redo configuration Bernhard Reutner-Fischer
2010-04-05 20:22 ` Roman I Khimov
2010-06-09 17:10 ` [PATCH 0/3] uClibc configury touchup; RFC WRT feature/dep picking heuristics Bernhard Reutner-Fischer
2010-06-09 21:26 ` Bernhard Reutner-Fischer [this message]
2010-06-09 17:10 ` [PATCH 1/3] uClibc: redo configuration Bernhard Reutner-Fischer
2010-06-09 17:10 ` [PATCH 2/3] uclibc_git: keep PV at "git" Bernhard Reutner-Fischer
2010-06-09 17:10 ` [PATCH 3/3] busybox: picking IPv6 per default is not up to the package Bernhard Reutner-Fischer
2010-06-09 18:44 ` Phil Blundell
2010-06-09 18:52 ` Bernhard Reutner-Fischer
2010-06-09 19:18 ` Phil Blundell
2010-06-09 19:32 ` Bernhard Reutner-Fischer
2010-06-09 20:22 ` Phil Blundell
2010-06-10 19:46 ` [PATCH 1/2] uclibc: handle DISTRO_FEATURE="largefile" Bernhard Reutner-Fischer
2010-06-10 19:46 ` [PATCH 2/2] busybox: configure according to {MACHINE, DISTRO}_FEATURES Bernhard Reutner-Fischer
2010-06-10 19:55 ` Chris Larson
2010-06-10 20:22 ` Phil Blundell
2010-06-10 20:27 ` Chris Larson
2010-06-10 20:50 ` Bernhard Reutner-Fischer
2010-06-10 21:06 ` Phil Blundell
2010-06-10 21:20 ` Bernhard Reutner-Fischer
2010-06-11 12:59 ` Phil Blundell
2010-06-22 20:39 ` Bernhard Reutner-Fischer
2010-06-28 18:23 ` ping**2 [was: Re: [PATCH 2/2] busybox: configure according to {MACHINE, DISTRO}_FEATURES] Bernhard Reutner-Fischer
2010-06-10 22:56 ` [PATCH 2/2] busybox: configure according to {MACHINE, DISTRO}_FEATURES Khem Raj
2010-06-11 7:16 ` Bernhard Reutner-Fischer
2010-06-10 20:44 ` Bernhard Reutner-Fischer
2010-06-10 21:09 ` Phil Blundell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100609212630.GS14941@mx.loc \
--to=rep.dot.nop@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
--cc=philb@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.