[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [Unikraft] Static Libraries not being linked properly



Thanks a ton Simon for reverting back.

I removed calling librt.a and libpthread.a.
Then, I cloned newlib, added it to config-files, and it compiled to
libnewlibc and libnewlibm fine.

However, I am still getting

                       undefined reference to `clock_gettime'

On doing a grep in newlib folder, there is no string with name "clock_gettime".

Obviously, we need to add some more code in newlib, right?

On Tue, Apr 24, 2018 at 6:59 PM, Simon Kuenzer <simon.kuenzer@xxxxxxxxx> wrote:
> 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
>>
>



-- 
Regards,
Ajay

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.