public inbox for gentoo-soc@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-soc] cross_container_support - progress report #9
@ 2012-07-31 15:45 Jing Huang
  2012-07-31 19:30 ` [gentoo-soc] " Luca Barbato
  0 siblings, 1 reply; 5+ messages in thread
From: Jing Huang @ 2012-07-31 15:45 UTC (permalink / raw
  To: lu_zero, gentoo-soc

Hi,

== Progress of last Week ==

In the last week,  my qemu-linux patches had been reviewed by the qemu
community.

I investigated how to config dynamic libraries in lxc container.:

1. mount host's /lib /usr/lib /usr/local/lib to lxc container

2. modify lxc container's ld.so.conf to link these libs.

3. ldconfig -Nf /etc/ld.so.conf to make settings available. (The
ld.so.cache will include arm libraries by default. How to ignore
them?)

I am still debugging this method.

Additionally, I found I must execute "qemu-static-i386  x86-program"
in lxc container to make it run. Is it right?


== Plans for this week ==

1. Still investigate dynamic libraries configure.

2. wait for vapier's help. If it is possible, would you offer me the
rough tech roadmap of patching crossdev and/or the toolchain eclass
you mentioned last letter?

Thanks.

Jing.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [gentoo-soc] Re: cross_container_support - progress report #9
  2012-07-31 15:45 [gentoo-soc] cross_container_support - progress report #9 Jing Huang
@ 2012-07-31 19:30 ` Luca Barbato
  2012-08-01 17:01   ` Jing Huang
  0 siblings, 1 reply; 5+ messages in thread
From: Luca Barbato @ 2012-07-31 19:30 UTC (permalink / raw
  To: Jing Huang; +Cc: gentoo-soc

On 07/31/2012 05:45 PM, Jing Huang wrote:
> Hi,
> 
> == Progress of last Week ==
> 
> In the last week,  my qemu-linux patches had been reviewed by the qemu
> community.
> 
> I investigated how to config dynamic libraries in lxc container.:
> 
> 1. mount host's /lib /usr/lib /usr/local/lib to lxc container
> 
> 2. modify lxc container's ld.so.conf to link these libs.
> 
> 3. ldconfig -Nf /etc/ld.so.conf to make settings available. (The
> ld.so.cache will include arm libraries by default. How to ignore
> them?)
> 
> I am still debugging this method.
> 
> Additionally, I found I must execute "qemu-static-i386  x86-program"
> in lxc container to make it run. Is it right?

No it is wrong, you should call the runtime linker.

> == Plans for this week ==
> 
> 1. Still investigate dynamic libraries configure.

It will take probably more time.

> 2. wait for vapier's help. If it is possible, would you offer me the
> rough tech roadmap of patching crossdev and/or the toolchain eclass
> you mentioned last letter?

First let's try to wrap up what we have now available and get more
people trying it =) That means document all the steps in the wiki and
get voluteers to try them.

lu

-- 

Luca Barbato
Gentoo/linux
http://dev.gentoo.org/~lu_zero



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [gentoo-soc] Re: cross_container_support - progress report #9
  2012-07-31 19:30 ` [gentoo-soc] " Luca Barbato
@ 2012-08-01 17:01   ` Jing Huang
  2012-08-02 15:23     ` Jing Huang
  0 siblings, 1 reply; 5+ messages in thread
From: Jing Huang @ 2012-08-01 17:01 UTC (permalink / raw
  To: Luca Barbato; +Cc: gentoo-soc

On Tue, Jul 31, 2012 at 7:30 PM, Luca Barbato <lu_zero@gentoo.org> wrote:
> On 07/31/2012 05:45 PM, Jing Huang wrote:
>> Hi,
>>
>> == Progress of last Week ==
>>
>> In the last week,  my qemu-linux patches had been reviewed by the qemu
>> community.
>>
>> I investigated how to config dynamic libraries in lxc container.:
>>
>> 1. mount host's /lib /usr/lib /usr/local/lib to lxc container
>>
>> 2. modify lxc container's ld.so.conf to link these libs.
>>
>> 3. ldconfig -Nf /etc/ld.so.conf to make settings available. (The
>> ld.so.cache will include arm libraries by default. How to ignore
>> them?)
>>
>> I am still debugging this method.
>>
>> Additionally, I found I must execute "qemu-static-i386  x86-program"
>> in lxc container to make it run. Is it right?
>
> No it is wrong, you should call the runtime linker.

When I execute x86-program(builded with dynamic libraries) in lxc
container, it shows:
"bash: x86-program: No such file or directory"

Obviously,  the container has not called the right dynamic
linker(ld-linux.so) to interpret the x86-program.
Maybe I could register this linker or the linker wrap to
/proc/sys/fs/binfmt_misc ?

>
>> == Plans for this week ==
>>
>> 1. Still investigate dynamic libraries configure.
>
> It will take probably more time.
>
>> 2. wait for vapier's help. If it is possible, would you offer me the
>> rough tech roadmap of patching crossdev and/or the toolchain eclass
>> you mentioned last letter?
>
> First let's try to wrap up what we have now available and get more
> people trying it =) That means document all the steps in the wiki and
> get voluteers to try them.

OK. I am doing it.

>
> lu
>
> --
>
> Luca Barbato
> Gentoo/linux
> http://dev.gentoo.org/~lu_zero
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [gentoo-soc] Re: cross_container_support - progress report #9
  2012-08-01 17:01   ` Jing Huang
@ 2012-08-02 15:23     ` Jing Huang
  2012-08-02 16:14       ` Luca Barbato
  0 siblings, 1 reply; 5+ messages in thread
From: Jing Huang @ 2012-08-02 15:23 UTC (permalink / raw
  To: Luca Barbato; +Cc: gentoo-soc

On Wed, Aug 1, 2012 at 5:01 PM, Jing Huang <jing.huang.pku@gmail.com> wrote:
> On Tue, Jul 31, 2012 at 7:30 PM, Luca Barbato <lu_zero@gentoo.org> wrote:
>> On 07/31/2012 05:45 PM, Jing Huang wrote:
>>> Hi,
>>>
>>> == Progress of last Week ==
>>>
>>> In the last week,  my qemu-linux patches had been reviewed by the qemu
>>> community.
>>>
>>> I investigated how to config dynamic libraries in lxc container.:
>>>
>>> 1. mount host's /lib /usr/lib /usr/local/lib to lxc container
>>>
>>> 2. modify lxc container's ld.so.conf to link these libs.
>>>
>>> 3. ldconfig -Nf /etc/ld.so.conf to make settings available. (The
>>> ld.so.cache will include arm libraries by default. How to ignore
>>> them?)
>>>
>>> I am still debugging this method.
>>>
>>> Additionally, I found I must execute "qemu-static-i386  x86-program"
>>> in lxc container to make it run. Is it right?
>>
>> No it is wrong, you should call the runtime linker.
>
> When I execute x86-program(builded with dynamic libraries) in lxc
> container, it shows:
> "bash: x86-program: No such file or directory"
>
> Obviously,  the container has not called the right dynamic
> linker(ld-linux.so) to interpret the x86-program.
> Maybe I could register this linker or the linker wrap to
> /proc/sys/fs/binfmt_misc ?

Hmm..  The root cause of this fault is:

./x86-program(built with dynamic libraries)
      -->load_elf_binary()
           -->open_exec("/lib/ld-linux.so.2");

lxc chroot lacks of /lib/ld-linux.so.2. This problem is a difficult
one. In my opinion, the following two steps are essential to solve it.

1. alter linker script to build x86-program using custom ld-linux.so.2
path ( /target/lib/ld-linux.so.2 ).

2. switch dynamic libraries to custom paths.
This point is relatively easy. I could use either LD_LIBRARY_PATH or
ld.so.conf.

"ldconfig /etc/ld.so.conf" is odd. I had altered ld.so.conf and
env.d/00basic to exclude original library path(/lib, /usr/lib,
/usr/local/lib), but the new generated cache file still include these
paths.
Unfortunately, linker will link libraries accroding to the ld cache
file unless declare  the DT_RPATH and LD_LIBRARY_PATH.

>
>>
>>> == Plans for this week ==
>>>
>>> 1. Still investigate dynamic libraries configure.
>>
>> It will take probably more time.
>>
>>> 2. wait for vapier's help. If it is possible, would you offer me the
>>> rough tech roadmap of patching crossdev and/or the toolchain eclass
>>> you mentioned last letter?
>>
>> First let's try to wrap up what we have now available and get more
>> people trying it =) That means document all the steps in the wiki and
>> get voluteers to try them.
>
> OK. I am doing it.
>
>>
>> lu
>>
>> --
>>
>> Luca Barbato
>> Gentoo/linux
>> http://dev.gentoo.org/~lu_zero
>>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [gentoo-soc] Re: cross_container_support - progress report #9
  2012-08-02 15:23     ` Jing Huang
@ 2012-08-02 16:14       ` Luca Barbato
  0 siblings, 0 replies; 5+ messages in thread
From: Luca Barbato @ 2012-08-02 16:14 UTC (permalink / raw
  To: Jing Huang; +Cc: gentoo-soc

On 08/02/2012 05:23 PM, Jing Huang wrote:
> Hmm..  The root cause of this fault is:
> 
> ./x86-program(built with dynamic libraries)
>       -->load_elf_binary()
>            -->open_exec("/lib/ld-linux.so.2");
> 
> lxc chroot lacks of /lib/ld-linux.so.2. This problem is a difficult
> one. In my opinion, the following two steps are essential to solve it.
> 
> 1. alter linker script to build x86-program using custom ld-linux.so.2
> path ( /target/lib/ld-linux.so.2 ).
> 

Overriding it is an interesting task, for the time being try mixing
amd64 and arm binaries, they use /lib and /lib64 so it is fine.

> 2. switch dynamic libraries to custom paths.
> This point is relatively easy. I could use either LD_LIBRARY_PATH or
> ld.so.conf.
> 
> "ldconfig /etc/ld.so.conf" is odd. I had altered ld.so.conf and
> env.d/00basic to exclude original library path(/lib, /usr/lib,
> /usr/local/lib), but the new generated cache file still include these
> paths.
> Unfortunately, linker will link libraries accroding to the ld cache
> file unless declare  the DT_RPATH and LD_LIBRARY_PATH.

Yes, it is one of the issue to investigate.

lu



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-08-02 18:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-31 15:45 [gentoo-soc] cross_container_support - progress report #9 Jing Huang
2012-07-31 19:30 ` [gentoo-soc] " Luca Barbato
2012-08-01 17:01   ` Jing Huang
2012-08-02 15:23     ` Jing Huang
2012-08-02 16:14       ` Luca Barbato

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox