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
