2009/2/1 Denys Vlasenko <[email protected]>:
> On Sunday 01 February 2009 11:00, loody wrote:
>> > [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
>> >
>>
>> Hi:
>> I have search the calls.S in arch/arm/kernel, but I cannot find the
>> sys call, write, you mention.
>
> You don't know what you are doing.
>
> It's in sysdeps/linux/common/write.c in uclibc tree.
>
>> ( 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.
>> appreciate your help,
>> miloody
>
> It looks like you think these lists are a proper place to get educated
> in basic C and programming skills. It can be achieved far faster
> by reading abundand info available on the Web.
> --
hi:
please don't feel angry.
I never think so.
When receiving your reply, I try the suggestion you give to me.
And it shows:
No relocations in code!
(attach the log at the end of letter)
so I guess maybe I need to include some header.
Then I try to check whether the function you mention comes from kernel
sys calls, since in the letter there is a key word, syscalls.
And as far as I know, these functions are passed by SWI interrupt,
which implemented in arch/xx/kernel.
That's the reason why I include linux-arm-kernel mailing list, sorry.
As you say, I am really unfamiliar with the interface between c lib and kernel.
So I tried to trace the uclibc and ask whether my direction is right
or wrong in the first letter.
I NEVER want to take advantage on these mailing list.
If my stupid questions annoyed you, please forgive me,
thanks for your help,
miloody
make[1]: Entering directory `/uClinux-dist/user'
touch hello/.sgbuilt_user && make -j1 -C hello
make[2]: Entering directory `/uClinux-dist/user/hello'
ucfront-gcc arm-linux-gcc -Os -g -pipe
-msoft-float -fno-common -fno-builtin -Wall -DEMBED -D__PIC__ -fpic
-msingle-pic-base -Dlinux -D__linux__ -Dunix -D__uClinux__ -c -o
hello.o hello.c
hello.c: In function `main':
hello.c:3: warning: implicit declaration of function `write'
ucfront-gcc arm-linux-gcc -Wl,-elf2flt -msoft-float -D__PIC__ -fpic
-msingle-pic-base -o hello hello.o
No relocations in code!
make[2]: Leaving directory `/uClinux-dist/user/hello'
make[1]: Leaving directory `/uClinux-dist/user'
/uClinux-dis/# cat user/hello/hello.c
int main() {
write(1, "Hello\n", 6);
for (;;)
continue;
}
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ