[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Minios-devel] [Unikraft] Static Libraries not being linked properly
Hey Ajay,
welcome to Unikraft! Sorry for being non-response for so long time. This
should change now since the core Unikraft people (including me) are back
to the project.
In your application's Makefile.uk, you can try to add static libraries
by appending them to the APPNAME_OBJS list. However, I would not do this
with librt.a and libpthread.a. The libraries you selected expect a Linux
system call interface being available to reach functionality provided by
the kernel. We obviously do not have this on Unikraft, so the
libraries wouldn't work (even if you might be able to create a binary
with them).
The functions of those libraries are usually provided by a libc. Wei is
right that libnolibc - which is available in the tree - only provides a
subset of libc functionality. But you could try using newlib instead:
http://xenbits.xen.org/gitweb/?p=unikraft/libs/newlib.git;a=summary
This port uses calls to the Unikraft API directly instead of using
system calls. For instance, pthread_create() is going to call
uk_sched_thread_create() in libuksched. Please note that we have a patch
series pending that enhances scheduling functionality in Unikraft. There
will be another patch series upcoming that does integrate those changes
to newlib. So, the current state might not work yet for you, you may
need to check again in two weeks.
Thanks,
Simon
On 18.04.2018 06:34, Ajay Garg wrote:
Ok, thanks Wei for the clarification ..
On Wed, Apr 18, 2018 at 9:59 AM, Wei Chen <Wei.Chen@xxxxxxx
<mailto:Wei.Chen@xxxxxxx>> wrote:
I think currently the answer is ‘YES’. We could not link libc.a____
directly in Unikraft. Libc.a requires some dependencies that____
unikraftdoesn’t provide.____
__ __
*From:*Ajay Garg <ajaygargnsit@xxxxxxxxx
<mailto:ajaygargnsit@xxxxxxxxx>>
*Sent:* 2018年4月18日11:45
*To:* Wei Chen <Wei.Chen@xxxxxxx <mailto:Wei.Chen@xxxxxxx>>
*Cc:* minios-devel@xxxxxxxxxxxxxxxxxxxx
<mailto:minios-devel@xxxxxxxxxxxxxxxxxxxx>
*Subject:* Re: [Minios-devel] [Unikraft] Static Libraries not being
linked properly____
__ __
Ok Wei, got it ...
So, I added "/usr/lib/x86_64-linux-gnu/libc.a" also in
"APPCOREMARK_OBJS-y", but the linking errors still persist.____
I now assume that pre-compiled static libc.a CANNOT be added into
unikraft, right?____
__ __
On Wed, Apr 18, 2018 at 9:01 AM, Wei Chen <Wei.Chen@xxxxxxx
<mailto:Wei.Chen@xxxxxxx>> wrote:____
Hi Ajay,____
____
I think we have to classify the static-pre-compiled libraries.____
For instance, if the static-pre-compiled library is a math
library.____
It just does some Mathematical Computing and doesn’t depend on____
Other libraries. I think this math library can be link to____
Unikraft. Another instance, if the static-pre-compiled library____
depends on other libraries. You have to guarantee the dependent____
libraries are in the Unikraft library pool.____
____
In your case, the /usr/lib/x86_64-linux-gnu/librt.a and
/usr/lib/x86_64-linux-gnu/libpthread.a____
would link to libc.a to solve their link dependencies. But the
nolibc____
In Unikraft is just a subset of libc.a____
____
Regards,____
Wei Chen____
____
*From:* Ajay Garg <ajaygargnsit@xxxxxxxxx
<mailto:ajaygargnsit@xxxxxxxxx>>
*Sent:* 2018年4月18日 11:17
*To:* Wei Chen <Wei.Chen@xxxxxxx <mailto:Wei.Chen@xxxxxxx>>
*Cc:* minios-devel@xxxxxxxxxxxxxxxxxxxx
<mailto:minios-devel@xxxxxxxxxxxxxxxxxxxx>
*Subject:* Re: [Minios-devel] [Unikraft] Static Libraries not
being linked properly____
____
Hi Wei.____
Thanks for the help.____
Actually, my original query is how to link pre-compiled (static)
libraries in unikraft?____
I tried as per the documentation at
http://xenbits.xen.org/gitweb/?p=unikraft/unikraft.git;a=blob;f=doc/guides/developers-app.rst;h=45d9bd5b2bb10b3d04135d66b5162a59d54dc2b6;hb=HEAD#l163
<http://xenbits.xen.org/gitweb/?p=unikraft/unikraft.git;a=blob;f=doc/guides/developers-app.rst;h=45d9bd5b2bb10b3d04135d66b5162a59d54dc2b6;hb=HEAD#l163>
____
but the libraries do not resolve linking problems.____
Or am I understanding it incorrectly? Can pre-compiled static
libraries be integrated/linked at all in unikraft?____
____
____
On Wed, Apr 18, 2018 at 7:48 AM, Wei Chen <Wei.Chen@xxxxxxx
<mailto:Wei.Chen@xxxxxxx>> wrote:____
But the clock_gettime hasn’t been implemented in nolibc or
libtime.____
If your application just uses this function to print
timestampe, you____
can implement a dummy function in your code in this time to
pass the____
linking.____
____
____
-- ____
Regards,
Ajay____
IMPORTANT NOTICE: The contents of this email and any attachments
are confidential and may also be privileged. If you are not the
intended recipient, please notify the sender immediately and do
not disclose the contents to any other person, use it for any
purpose, or store or copy the information in any medium. Thank
you. ____
-- ____
Regards,
Ajay____
IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended
recipient, please notify the sender immediately and do not disclose
the contents to any other person, use it for any purpose, or store
or copy the information in any medium. Thank you.
--
Regards,
Ajay
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|