On Tue, Aug 6, 2013 at 7:51 PM, Michael Richardson <mcr@sandelman.ca> wrote:

Han <keepsimple@gmail.com> wrote:
    > I am trying to build and run some of my C programs in UML.  One way I tried is
    > to build (i.e. compile) the program on the host,  then run it in UML.  The
    > problem is that the UML rootfs I used lacks many of the /usr/lib/ shared
    > libraries, hence the program failed to run.  

Well, you have to install the things you need then.

    > My question is:  what is the best practice to build and run C programs for UML?
    >  Do people normally compile the program on the host and then run it in UML?  
    > Or  compile the program directly in UML and then run it? 

I make sure I have the same operating system and 32/64-bit-ness, and I use
hostfs, and I use "make DESTDIR=/path/to/my/uml/instance install".

[Han] in my case, the host is using a different linux kernel and different 32/64-bit-ness.  And I can't change that.  And I also cannot mount the UML rootfs (don't have permission) to add things from the host.  

the linux machine I used to build the UML rootfs is different from the linux host that I run the UML.

    > If folks compile the C programs in UML directly,  where the "gcc" comes from?
    >  Is it built part of the rootfs,  or some add-ons?  Any pointers for that?  

It's part of the rootfs, and you have a complete operating system there.
You use yum or apt or yast2 to install whatever you need.

[Han]  I don't have the network connection from inside the UML yet. Need to set up that first and try to install things.  


]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        | network architect  [
]     mcr@sandelman.ca  http://www.sandelman.ca/        |   ruby on rails    [