On Thu, 20 May 2010 11:06:31 +0200, Gilles Chanteperdrix  
<[email protected]> wrote:

> Sinisa Denic wrote:
>>>> /opt/toolchains/arm926t-uclibcgnueabi/usr/bin/arm-linux-gcc
>>>> -I/usr/xenomai-2.5.3-eabi/include -D_GNU_SOURCE -D_REENTRANT -Wall  
>>>> -pipe
>>>> -D__XENO__ -lnative -L/usr/xenomai-2.5.3-eabi/lib -lxenomai -lpthread
>>>> -o./iecgoose_ld obj_iecgoose_ld/iec_main.o obj_iecgoose_ld/mms_arb.o
>>>> obj_iecgoose_ld/mmsop_en.o obj_iecgoose_ld/mvlop_en.o
>>>> obj_iecgoose_ld/mvl_acse.o obj_iecgoose_ld/event.o
>>>> obj_iecgoose_ld/logcfgx.o obj_iecgoose_ld/rdwrind.o
>>>> obj_iecgoose_ld/reject.o obj_iecgoose_ld/startup.o
>>>> obj_iecgoose_ld/uca_obj.o  /opt/libMMSLITE-eabi//lib/mvlu_ld.a
>>>> /opt/libMMSLITE-eabi//lib/mlogl_ld.a
>>>> /opt/libMMSLITE-eabi//lib/mmsle_ld.a
>>>> /opt/libMMSLITE-eabi//lib/mmsl_ld.a /opt/libMMSLITE-eabi//lib/mem_ld.a
>>>> /opt/libMMSLITE-eabi//lib/slog_ld.a  
>>>> /opt/libMMSLITE-eabi//lib/util_ld.a
>>>> /opt/libMMSLITE-eabi//lib/ositp4e_ld.a
>>>> /opt/libMMSLITE-eabi//lib/asn1l_ld.a  -lm -lpthread -lrt -lnative
>>>> -static
>>> link order is wrong here: the list of -l should come after the list of
>>> .o, and if you do that, you will not need to repeat the list of -l.
>>>
>>> Your problem is that -lnative is missing in the list of -l you repeat,
>>> but it is better to put the result of xeno-config --xeno-ldflags after
>>> the list of .o (if you are using built-in makefile rules, this means
>>> puttin this in the LOADLIBES variable instead of putting it in  
>>> LDFLAGS),
>>> and remove the repetition.
>>>
>> Oh thank you, sorry, this is my fault, this isn't my peace of code, just
>> working around.
>> I saw it and it was suspicious to me, but It was supposed to look more
>> closely,
>> Makefile came with library and it is modified to use Xenomai, because of
>> that it seems such a messy..
>>
>> Now it's compiling but, have you idea why these errors appear from
>> xeno-2.5.1 version,
>> the same code compiling in xeno-2.4.x even xeno-2.5.0 without errors and
>> no need to add <sys/mman.h> .
>>
>> iec_main.c:1037: warning: implicit declaration of function ‘mlockall’
>> iec_main.c:1037: error: ‘MCL_CURRENT’ undeclared (first use in this
>> function)
>> iec_main.c:1037: error: (Each undeclared identifier is reported only  
>> once
>> iec_main.c:1037: error: for each function it appears in.)
>> iec_main.c:1037: error: ‘MCL_FUTURE’ undeclared (first use in this
>> function)
>
> Before 2.5.2 there was no libxenomai library, so, the list of -l you
> add: -lpthread -lrt -lnative is sufficient to workaround the fact that
> your link order was wrong. It explains the link error.
>
> Before 2.5.2, what is now implemented in C files was implemented in
> header files, which got included all over the place, and these header
> files included sys/mman.h, but this caused all sort of troubles with
> some versions of uclibc toolchains, this explains the error about the
> missing include.
>
>
Gilles thank you very much,
does it mean that including mman.h is necessary.


Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to