[Prev][Next][Index][Thread]
Re: Why why?.....
Hi,
let me answer some of your questions:
>
> 1. I installed oskit on a separate directory and I manage to make my own
> make file. I just used oskit samples and I compile them well. np. But
> everytime I run the os I got a backtrace error. Sometimes I got a
> osenv_release bla bla bla error. But I compiled everything without
> error. What do you think is the problem? Btw Im using the pthread_lock()
> and pthread_unlock() with it but I think there should be no error coz I
> followed exactly the requirements on thread programming.
I am afraid you don't give us enough information to work with here.
If you have a specific error, send us a description of what happens and
what the code in question is. If you have a backtrace, send it and we
can explain to you how to interpret it.
>
> 2. Why is it that sometimes I can compile my source. I have to do a
> re-arrangement in the makefile libs to make it work right. Wouldn't it
> be fine just to include only the needed libs without having to
> re-aarange them? I know some objects like the multiboot.o needs to be
> always where it is and the ctrn.o thing at the last but what about the
> oskit_kern, oskit_xxxx_xxx etc. Do I have to do some arrangement also?
> Does anyone have a copy on this sort of arrangement? Is the gcc compiler
> a one pass compiler?
This is a known problem that stems from the way in which the C linker
works. You may want to look in a manual or textbook for details, but
in effect what happens is that a symbol that is defined in a library A,
but referenced by library B is not included when you say "-lA -lB".
This is the easy case. Harder cases are when library C defines the
symbol as well as A, and you link (successfully) with "-lA -lB -LC",
but you don't get the symbol you want.
We are working on changing the OSKit code to remove such link-time
dependencies, but until then, try to follow the examples.
If you have a specific example that is provided in the makefile that
doesn't link, let us know about it.
>
> 6. Dumb Question: what is the diff. between the parameter OSKIT_UNIX or
> what do you mean by OSKIT_UNIX? Coz I always see it in the example. i
> know its a compiler directive but I don't seem understand.
>
OSKIT_UNIX is a preprocessor constant that is defined when you use the
Unix emulation of the OSKit. This emulation lets you run certain kernels
as ordinary user processes under FreeBSD (Linux support in the next release).
Hope that helps,
- Godmar
=================================
To subscribe or unsubscribe, send mail with "subscribe" or "unsubscribe"
to oskit-users-request@flux.cs.utah.edu. The oskit-announce list is low
volume - if you want to subscribe, mail oskit-announce-request@flux.cs.utah.edu
References: