From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4F315138.3020204@domain.hid> Date: Tue, 07 Feb 2012 17:28:40 +0100 From: Gilles Chanteperdrix MIME-Version: 1.0 References: <4F294E43.7060102@domain.hid> <4F2957A0.6040806@domain.hid> <4F29597F.8050500@domain.hid> <4F295C71.6090503@domain.hid> <4F295F39.7080003@domain.hid> <4F299EB7.604@domain.hid> <4F314F18.6020908@domain.hid> <4F314FBE.1090209@domain.hid> In-Reply-To: <4F314FBE.1090209@domain.hid> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-core] Built-in libxenomai dependency List-Id: Xenomai life and development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: xenomai-core On 02/07/2012 05:22 PM, Jan Kiszka wrote: > On 2012-02-07 17:19, Gilles Chanteperdrix wrote: >> On 02/01/2012 09:21 PM, Gilles Chanteperdrix wrote: >>> On 02/01/2012 04:50 PM, Jan Kiszka wrote: >>>> On 2012-02-01 16:38, Gilles Chanteperdrix wrote: >>>>> On 02/01/2012 04:25 PM, Jan Kiszka wrote: >>>>>> On 2012-02-01 16:17, Gilles Chanteperdrix wrote: >>>>>>> On 02/01/2012 03:37 PM, Jan Kiszka wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> don't remember anymore: Is there any subtle reason that prevent a >>>>>>>> change like >>>>>>>> >>>>>>>> diff --git a/src/skins/native/Makefile.am b/src/skins/native/Makefile.am >>>>>>>> index 39eaaed..4cc8859 100644 >>>>>>>> --- a/src/skins/native/Makefile.am >>>>>>>> +++ b/src/skins/native/Makefile.am >>>>>>>> @@ -22,6 +22,9 @@ libnative_la_SOURCES = \ >>>>>>>> wrappers.c \ >>>>>>>> wrappers.h >>>>>>>> >>>>>>>> +libnative_la_LIBADD = \ >>>>>>>> + ../common/libxenomai.la >>>>>>>> + >>>>>>>> libnative_la_CPPFLAGS = \ >>>>>>>> @XENO_USER_CFLAGS@ \ >>>>>>>> -I$(top_srcdir)/include >>>>>>>> diff --git a/src/skins/rtdm/Makefile.am b/src/skins/rtdm/Makefile.am >>>>>>>> index 8ad74be..2dc0a90 100644 >>>>>>>> --- a/src/skins/rtdm/Makefile.am >>>>>>>> +++ b/src/skins/rtdm/Makefile.am >>>>>>>> @@ -8,6 +8,9 @@ librtdm_la_SOURCES = \ >>>>>>>> core.c \ >>>>>>>> init.c >>>>>>>> >>>>>>>> +librtdm_la_LIBADD = \ >>>>>>>> + ../common/libxenomai.la >>>>>>>> + >>>>>>>> librtdm_la_CPPFLAGS = \ >>>>>>>> @XENO_USER_CFLAGS@ \ >>>>>>>> -I$(top_srcdir)/include >>>>>>>> diff --git a/src/testsuite/latency/Makefile.am b/src/testsuite/latency/Makefile.am >>>>>>>> index c772c26..6534df5 100644 >>>>>>>> --- a/src/testsuite/latency/Makefile.am >>>>>>>> +++ b/src/testsuite/latency/Makefile.am >>>>>>>> @@ -14,5 +14,4 @@ latency_LDFLAGS = @XENO_USER_LDFLAGS@ >>>>>>>> latency_LDADD = \ >>>>>>>> ../../skins/native/libnative.la \ >>>>>>>> ../../skins/rtdm/librtdm.la \ >>>>>>>> - ../../skins/common/libxenomai.la \ >>>>>>>> -lpthread -lm >>>>>>>> >>>>>>>> i.e. that we let the skin libraries depend on libxenomai and then remove >>>>>>>> the explicit dependency from our binaries and the xeno-config output? >>>>>>>> Is there some ordering issue again (we have -l before -lxenomai >>>>>>>> in the ldflags). >>>>>>>> >>>>>>>> If possible, this would allow for things like dlopen("libnative.so"). >>>>>>> >>>>>>> It allows xeno-config result to work both with dynamic and static >>>>>>> libraries. Static libraries have no dependency system, so, when linking >>>>>>> a program whith libnative.a for instance, without libtool, you still >>>>>>> have to link it with libxenomai.a. >>>>>> >>>>>> OK, part two could stay, but the dependencies should still be added to >>>>>> the skin libs - if possible. >>>>>> >>>>>>> >>>>>>> How come you can not dlopen libnative.so, dlopening libxenomai.so before >>>>>>> does not work? >>>>>> >>>>>> Dependencies of libnative on libxenomai are not resolved when you open >>>>>> the former even if the latter is already loaded. Maybe you can do this >>>>>> by pulling in all required symbols one by one manually, haven't tried >>>>>> yet. But that would at least be unhandy. >>>>> >>>>> What about RTLD_GLOBAL ? >>>>> >>>> >>>> Was possibly the reason, need to check back. >>>> >>>> Still, what prevents stating the existing dependency of lib on >>>> libxenomai? The dance above would than be obsolete. >>> >>> The change is merged. I took the chance to check that static build still >>> built. >>> >> >> Unfortunately this change also causes a build failure when >> cross-compiling for ARM, so, change reverted, too. >> > > Indeed unfortunate. Any pointers to logs? This causes a -L/usr/lib to be added on the link-edit command line, which causes the link to fail by finding /usr/lib/libpthread.so instead of the cross-compiler one, and fail. -- Gilles.