Hi all,
in libc/src/lib/libc there is Dummies.cc file which contains many methods.Actually i am trying to port ISAKMP which use most of them ( such as fork, getuid ,socketpair, sendmsg and etc) . i was able to compile it but i face many no implementation for " method" message , so I think i need to implement all these methods, am i right ?! from where i should start, should i use new libc plugin or i should implement them in specific places. thank you in advance .
best,
On 02/27/2015 09:08 PM, Mohammad Hamad wrote:
Hi all,
in libc/src/lib/libc there is Dummies.cc file which contains many methods. Actually i am trying to port ISAKMP which use most of them ( such as fork, getuid , socketpair, sendmsg and etc) . i was able to compile it but i face many no implementation for " method" message , so I think i need to implement all these methods, am i right ?!
from where i should start, should i use new libc plugin or i should implement them in specific places.
When porting stuff to Genode, there are three ways to go: 1. Try to do without libc. 2. Implement a libc plugin that meets your needs. 3. Build it in the noux environment.
1 = most desirable 3 = least desirable
Good luck,
Sebastian`
Hello,
On Sat, Feb 28, 2015 at 05:43:17AM +0100, Sebastian Sumpf wrote:
On 02/27/2015 09:08 PM, Mohammad Hamad wrote:
in libc/src/lib/libc there is Dummies.cc file which contains many methods. Actually i am trying to port ISAKMP which use most of them ( such as fork, getuid , socketpair, sendmsg and etc) . i was able to compile it but i face many no implementation for " method" message , so I think i need to implement all these methods, am i right ?!
from where i should start, should i use new libc plugin or i should implement them in specific places.
When porting stuff to Genode, there are three ways to go: 1. Try to do without libc. 2. Implement a libc plugin that meets your needs. 3. Build it in the noux environment.
1 = most desirable 3 = least desirable
I'd like to add that the standalone libc does not support fork() by intention. I doubt ISAKMP does really depend on it beside from a kind of privilege separation scheme I'd implement differently on Genode. But, if you're not able to remove the dependency you had to stick with variant 3.
Regards
Hi Sebastian, Thank you for replaying, could you please give me an example of doing it with the first option . Best, On Feb 28, 2015 4:39 AM, "Sebastian Sumpf" <Sebastian.Sumpf@...1...> wrote:
On 02/27/2015 09:08 PM, Mohammad Hamad wrote:
Hi all,
in libc/src/lib/libc there is Dummies.cc file which contains many
methods.
Actually i am trying to port ISAKMP which use most of them ( such as
fork, getuid ,
socketpair, sendmsg and etc) . i was able to compile it but i face many
no implementation for " method" message , so I think i need to implement all these methods, am i right ?!
from where i should start, should i use new libc plugin or i should
implement them in specific places.
When porting stuff to Genode, there are three ways to go: 1. Try to do without libc. 2. Implement a libc plugin that meets your needs. 3. Build it in the noux environment.
1 = most desirable 3 = least desirable
Good luck,
Sebastian`
Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hello again,
On 02/28/2015 09:09 AM, Mohammad Hamad wrote:
Thank you for replaying, could you please give me an example of doing it with the first option .
I guess ISAKMP is a library that heavily depends on libc, right? If so, I would go for option 2 (libc plugin). If it actually requires 'fork' (as Christian mentioned), there is only option 3 (noux) available.
For an example of option 1 (even so it does not depend on libc in the first place), you can have a look at 'dde_linux' which is a port of some Linux drivers to Genode. What one basically has to do, is to provide an environment where the ported program can run. That requires the following steps:
1. Make it compile: Provide definitions of any function/structure/macro/enum the program uses from libc.
2. Make it link: Provide a dummy function for each one that leads to a 'undefined reference' message from the linker.
3. Make it work: Implement all dummy functions that are actually used by the program in order to fulfill its core functionality. For example, one can omit book keeping or any other fancy stuff. This requires a little experience, though.
I would call the above, the minimal Genode porting guide :-)
Cheers,
Sebastian
please also have a look here:
http://genode.org/documentation/developer-resources/porting
there are explanations about how to proceed with the different porting strategies.
Regards Stefan
On 03/01/2015 11:12 AM, Sebastian Sumpf wrote:
Hello again,
On 02/28/2015 09:09 AM, Mohammad Hamad wrote:
Thank you for replaying, could you please give me an example of doing it with the first option .
I guess ISAKMP is a library that heavily depends on libc, right? If so, I would go for option 2 (libc plugin). If it actually requires 'fork' (as Christian mentioned), there is only option 3 (noux) available.
For an example of option 1 (even so it does not depend on libc in the first place), you can have a look at 'dde_linux' which is a port of some Linux drivers to Genode. What one basically has to do, is to provide an environment where the ported program can run. That requires the following steps:
- Make it compile: Provide definitions of any
function/structure/macro/enum the program uses from libc.
- Make it link: Provide a dummy function for each one that leads to a
'undefined reference' message from the linker.
- Make it work: Implement all dummy functions that are actually used by
the program in order to fulfill its core functionality. For example, one can omit book keeping or any other fancy stuff. This requires a little experience, though.
I would call the above, the minimal Genode porting guide :-)
Cheers,
Sebastian
Hi,
Openvpn is depend on fork as i think. in the config file they have defined HAVE_WORKING_FORK. i think it should work with ISAKMP. or do you think that i miss some parts?
best
2015-03-02 0:26 GMT-08:00 Stefan Kalkowski <stefan.kalkowski@...1...
:
please also have a look here:
http://genode.org/documentation/developer-resources/porting
there are explanations about how to proceed with the different porting strategies.
Regards Stefan
On 03/01/2015 11:12 AM, Sebastian Sumpf wrote:
Hello again,
On 02/28/2015 09:09 AM, Mohammad Hamad wrote:
Thank you for replaying, could you please give me an example of doing it with the first option .
I guess ISAKMP is a library that heavily depends on libc, right? If so, I would go for option 2 (libc plugin). If it actually requires 'fork' (as Christian mentioned), there is only option 3 (noux) available.
For an example of option 1 (even so it does not depend on libc in the first place), you can have a look at 'dde_linux' which is a port of some Linux drivers to Genode. What one basically has to do, is to provide an environment where the ported program can run. That requires the following steps:
- Make it compile: Provide definitions of any
function/structure/macro/enum the program uses from libc.
- Make it link: Provide a dummy function for each one that leads to a
'undefined reference' message from the linker.
- Make it work: Implement all dummy functions that are actually used by
the program in order to fulfill its core functionality. For example, one can omit book keeping or any other fancy stuff. This requires a little experience, though.
I would call the above, the minimal Genode porting guide :-)
Cheers,
Sebastian
-- Stefan Kalkowski Genode Labs
http://www.genode-labs.com/ · http://genode.org/
Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main