Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
To: buildroot@busybox.net
Subject: [Buildroot] RPC support for modern (e)glibc toolchains
Date: Thu, 28 Jun 2012 08:51:27 -0300	[thread overview]
Message-ID: <4FEC453F.3050309@zacarias.com.ar> (raw)
In-Reply-To: <20120627145340.34895a74@skate>

On 06/27/12 09:53, Thomas Petazzoni wrote:

>>>  *) Should we make the dependency from packages on libtirpc a
>>>     "select", like all other library dependencies, or a "depends
>>> on", to
>>>     mimic what we currently do for RPC support (packages "depends on
>>>     BR2_INET_RPC", and they show a comment if BR2_INET_RPC isn't
>>>     available) ?
>>
>> Probably keep it as a "depends on", in some cases you'll already have 
>> the toolchain providing RPC.
>> Maybe even block libtirpc if the origin toolchain has RPC support? Or 
>> can they be used at the same time? (Not that anyone would want too i 
>> think...)
> 
> Yes, as I was mentionning in my initial e-mail, I was thinking of
> having something like:
> 
> config BR2_RPC_AVAILABLE
> 	bool
> 
> config BR2_TOOLCHAIN_HAS_NATIVE_RPC
> 	select BR2_RPC_AVAILABLE
> 	bool
> 
> 
> Toolchains having native RPC support (i.e uClibc with RPC support, or
> glibc < 2.14) would select BR2_TOOLCHAIN_HAS_NATIVE_RPC Then, the
> libtirpc package would:
> 
> config BR2_PACKAGE_LIBTIRPC
> 	bool "libtirpc"
> 	depends on !BR2_TOOLCHAIN_HAS_NATIVE_RPC
> 	select BR2_RPC_AVAILABLE
> 	select
> 
> But now, the question is for packages that need RPC support. We have
> two choices. First, like today, the user has to manually enable RPC
> support in the toolchain *OR* manually enable libtirpc.
> 
> config BR2_PACKAGE_FOO
> 	depends on BR2_RPC_AVAILABLE
> 
> comment "foo needs RPC support, either in toolchain or through libtirpc"
> 	depends on !BR2_RPC_AVAILABLE
> 
> Or, we can automatically select libtirpc if needed:
> 
> config BR2_PACKAGE_FOO
> 	select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC
> 
> and no comment is needed, because if the toolchain has no RPC support,
> it would automatically be handled by libtirpc.
> 
> Which one do you prefer?

I prefer the last option, otherwise users will have RPC options all
around instead of one place (toolchain vs. packages).

>>>  *) How to handle the case of the Crosstool-NG backend? With the
>>>     current Crosstool-NG backend, we have no idea which version of
>>>     (e)glibc is being built, so we have no idea whether RPC support
>>>     will be provided by the toolchain. Should we add a config option
>>>     saying "My toolchain will have RPC support", which we will then
>>>     check after the toolchain build, like we do with external
>>>     toolchains? Other suggestions?
>>
>> BR2_TOOLCHAIN_I_WANT_RPC ?
>> After the toolchain is done we do an RPC check with readelf, if it's 
>> not there we build libtirpc, otherwise we leave it be.
> 
> Hardly doable: we need to know at menuconfig time if we need libtirpc
> in order to keep the .config selection consistent. If you don't, things
> like "make source" or "make external-deps" will not work any more (they
> will not know that libtirpc is needed).

True.
From what i've seen it seems libtirpc can be built/used with a
rpc-enabled libc.
We just need a few package tweaks around.
nfs-utils has a configure option to use it (--enable-tirpc) so it's easy.
portmap has not, though rpcbind (new package) should be used with
libtirpc, so portmap is libc-rpc or rpcbind if libtirpc but not both.
Others remain to be seen.
Regards.

  reply	other threads:[~2012-06-28 11:51 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-26 22:07 [Buildroot] RPC support for modern (e)glibc toolchains Thomas Petazzoni
2012-06-27  2:55 ` [Buildroot] RPC and Busybox Michael J. Hammel
2012-06-27  7:18   ` Thomas Petazzoni
2012-06-27  8:25 ` [Buildroot] RPC support for modern (e)glibc toolchains Thomas Petazzoni
2012-06-27 11:00 ` Gustavo Zacarias
2012-06-27 12:53   ` Thomas Petazzoni
2012-06-28 11:51     ` Gustavo Zacarias [this message]
2012-06-28 11:57       ` Thomas Petazzoni
2012-06-28 12:06         ` Gustavo Zacarias
2012-06-30 12:24     ` Arnout Vandecappelle
2012-07-03 19:48       ` Thomas Petazzoni
2012-07-03 20:37         ` Arnout Vandecappelle

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=4FEC453F.3050309@zacarias.com.ar \
    --to=gustavo@zacarias.com.ar \
    --cc=buildroot@busybox.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox