[Cbe-oss-dev] [PATCH 1/7]MARS/core: Fix host static lib
Yuji Mano
yuji.mano at am.sony.com
Thu Oct 30 06:20:54 EST 2008
Yuji Mano wrote:
> Kazunori Asayama wrote:
>> Yuji Mano wrote:
>>> This fixes the problem where mars_kernel_entry symbol is undefined in the static
>>> library libmars.a. The problem is the MARS kernel spu embedded object does not
>>> get properly included in the static library.
>>>
>>> This is a hack so that we can have the MARS kernel embedded spu object included
>>> into the static library. The hack forces creation of the .lo object file usually
>>> created by libtool. Without the hack there does not seem to be any clean
>>> solution for having automake and libtool to create a libtool object from an
>>> object file created by some external application such as ppu-embedspu.
>>>
>>> Signed-off-by: Yuji Mano <yuji.mano at am.sony.com>
>>>
>>> ---
>>> core/src/host/lib/Makefile.am | 21 ++++++++++++++-------
>>> core/src/mpu/kernel/Makefile.am | 2 +-
>>> 2 files changed, 15 insertions(+), 8 deletions(-)
>>>
>>> --- a/core/src/host/lib/Makefile.am
>>> +++ b/core/src/host/lib/Makefile.am
>>> @@ -40,7 +40,7 @@ extra_cppflags =
>>> extra_cflags =
>>> extra_ldflags =
>>>
>>> -MARS_KERNEL = ${top_builddir}/../mpu/kernel/mars-kernel
>>> +MARS_KERNEL = ${top_builddir}/../mpu/kernel/mars_kernel
>>>
>>> if DEBUG
>>> extra_cppflags += "-DDEBUG"
>>> @@ -109,7 +109,18 @@ libmars_la_SOURCES = \
>>> workload_queue.c \
>>> workload_queue.h
>>>
>>> -libmars_la_DEPENDENCIES = mars-kernel.eo
>>> +nodist_libmars_la_SOURCES = \
>>> + mars_kernel.eo
>>> +
>>> +libmars_la_DEPENDENCIES = mars_kernel.eo
>>> +
>>> +mars_kernel.eo: ${MARS_KERNEL}
>>> + $(EMBEDSPU) $(CFLAGS) mars_kernel_entry $< $@
>>> +
>>> +.eo.lo:
>>> + @echo "# Generated by ltmain.sh - GNU libtool" > $@
>>> + @echo "pic_object='"$<"'" >> $@
>>> + @echo "non_pic_object='"$<"'" >> $@
>>
>> A non PIC 'mars_kernel.eo' is used for shared library.
>
> I'm assuming you mean that I should generate a separate PIC
> object for the pic_object I specify in the .lo?
>
> Something like...
>
> +mars_kernel.eo: ${MARS_KERNEL}
> + $(EMBEDSPU) $(CFLAGS) mars_kernel_entry $< $@
> + $(EMBEDSPU) $(CFLAGS) -fPIC -DPIC mars_kernel_entry $< .libs/$@
> +
> +.eo.lo:
> + @echo "# Generated by ltmain.sh - GNU libtool" > $@
> + @echo "pic_object='"$<"'" >> .libs/$@
what I really meant here was...
+ @echo "pic_object='.libs/"$<"'" >> $@
> + @echo "non_pic_object='"$<"'" >> $@
>
> But I think the -fPIC -DPIC is meaningless here as ppu-embedspu will
> output the same object anyway?
>
> # ppu-nm mars_kernel.eo
> 00000000 D mars_kernel_entry
Regards,
Yuji
More information about the cbe-oss-dev
mailing list