On Sun, Feb 1, 2009 at 3:00 PM, loody <miloody@xxxxxxxxx> wrote:
Check which system call does uclibc call for printf(). It might help.
2009/2/1 Denys Vlasenko <vda.linux@xxxxxxxxxxxxxx>:
Hi:> On Saturday 31 January 2009 07:18, loody wrote:
>> > Dear all:
>> > I am porting kernel on my arm platform and I wrote a userspace
>> > program, hello world.
>> > But I cannot see the "hello world".
>> >
>> > my environment is:
>> > 1. uclinux.dist 2008
>> > 2. and I put my source code under user and compile it.
>> > 3. I use arm-linux-2006 to compile kernel
>> > 4. I use arm-linux-2007 to compile my hello world.
>> hi:
>> I have one question about my problem.
>> Can I replace the kernel execute command, "/init", as "/hello"; that
>> means the first user space program is hello, not standard int.
>> Is that the problem which make printt not workable?
>>
>> I have no idea whether kernel has to do something in "init" such that
>> "hello" can call printf to show message.
>
> [f]printf ultimately results in write() syscalls performed on
> open file descriptors.
>
> If you have trouble verifying that your userspace programs
> are able to execute, start with this test program:
>
> int main() {
> write(1, "Hello\n", 6);
> for (;;)
> continue;
> }
>
> Compile it and run as init. You should see "Hello"
> message. If you don't, your toolchain is producing broken
> executables.
> --
> vda
>
I have search the calls.S in arch/arm/kernel, but I cannot find the
sys call, write, you mention.
( I use arm platform, so I search the syscalls implemented by arm)
Is it a wrap function? If so, I guess I should include some header to do so.
But I have no idea what header I can use.
Check which system call does uclibc call for printf(). It might help.
appreciate your help,
miloody
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ
--
Shaz