Dynamic Libraries

Marek Prochazka Marek.Prochazka at scisys.co.uk
Thu Sep 14 16:50:26 UTC 2006


> I simply didn't get a chance to look at it [don't have any 
> sparc tools 
> installed].
> What BSP are you using - I could give it a try.

I use this:

BSP NAME:       sis
BOARD:           any based on the European Space Agency's ERC32
BUS:                N/A
CPU FAMILY:    sparc
CPU:                ERC32 (SPARC V7 + on-CPU peripherals) based on
Cypress 601/602
COPROCESSORS:       on-chip 602 compatible FPU
MODE:               32 bit mode

My target platform is Leon2.

> Also: please send me a full console log of the failing build command.

/opt/rtems-4.6/bin/sparc-rtems-gcc  -g -DCDS_DEBUG_VERSION  -Wall -W
-ansi -pedantic  -DG_RTEMS_VERSION -DG_LEON_VERSION
-DG_SPACEWIRE_VERSION -D_POSIX_C_SOURCE=199506L -msoft-float -qleon2
-I./inc -I/home/marek/work/DRIVERS/UDP/inc
-I/home/marek/work/DRIVERS/LEON_SPW/inc
-I/home/marek/work/SOIS/Tools/MA_Emulation/inc
-I/home/marek/work/SOIS/Tools/DAS_Device_Emulation/inc
-D_MICROORB_RTCORBA_THREADPOOL_WITH_LANES -I./idl -I../cexp-1.5 Loader.o
-L../cexp-1.5/build-rtems -L../cexp-1.5/build-rtems/regexp
-L../cexp-1.5/build-rtems/binutils/bfd
-L../cexp-1.5/build-rtems/binutils/libiberty
-L../cexp-1.5/build-rtems/binutils/opcodes -lcexp -lspencer_regexp -lbfd
-liberty -lopcodes -L/home/marek/work/lib -L/home/marek/work/BSW/lib
-L/home/marek/work/SOIS/CMS/lib -L/home/marek/work/SOIS/CMS_Config/lib
-L/home/marek/work/SOIS/MMS/lib -L/home/marek/work/DisCo/SOM/IFAS/lib
-L/home/marek/work/DisCo/SOM/FDIR/lib
-L/home/marek/work/DRIVERS/LEON_SPW/lib -lMMS_RTEMS_LEON_debug
-lCMS_RTEMS_LEON_debug -lspwCtm -lBSW_RTEMS_debug  -o Loader
--------- Generating SYSTEM symbol table
../cexp-1.5/build-host/xsyms -C Loader Symbols.c > link_helper
--------- Compiling SYSTEM symbol table
/opt/rtems-4.6/bin/sparc-rtems-gcc -c -fomit-frame-pointer -fasm -O
-I../cexp-1.5 Symbols.c
--------- Linking Loader application - second pass
/opt/rtems-4.6/bin/sparc-rtems-gcc  -g -DCDS_DEBUG_VERSION  -Wall -W
-ansi -pedantic  -DG_RTEMS_VERSION -DG_LEON_VERSION
-DG_SPACEWIRE_VERSION -D_POSIX_C_SOURCE=199506L -msoft-float -qleon2
-I./inc -D_MICROORB_RTCORBA_THREADPOOL_WITH_LANES -I./idl -I../cexp-1.5
Symbols.o Loader.o link_helper -L../cexp-1.5/build-rtems
-L../cexp-1.5/build-rtems/regexp -L../cexp-1.5/build-rtems/binutils/bfd
-L../cexp-1.5/build-rtems/binutils/libiberty
-L../cexp-1.5/build-rtems/binutils/opcodes -lcexp -lspencer_regexp -lbfd
-liberty -lopcodes -L/home/marek/work/lib -L/home/marek/work/BSW/lib
-L/home/marek/work/DisCo/SOM/IFAS/lib
-L/home/marek/work/DisCo/SOM/FDIR/lib
-L/home/marek/work/DRIVERS/LEON_SPW/lib -lMMS_RTEMS_LEON_debug
-lCMS_RTEMS_LEON_debug -lspwCtm -lBSW_RTEMS_debug  -o Loader
/opt/rtems-4.6/lib/gcc-lib/sparc-rtems/3.2.3/../../../../sparc-rtems/bin
/ld: ADDR forward reference of section .text
collect2: ld returned 1 exit status
make: *** [t] Error 1

link_helper:
__cexp__dummy_alias_0 = ADDR( .text ) ;
__cexp__dummy_alias_1 = ADDR( .data ) ;
__cexp__dummy_alias_2 = ADDR( .bss ) ;
__cexp__dummy_alias_3 = ADDR( .jcr ) ;

Many thanks,
Marek

> 
> -- Till
> 
> Marek Prochazka wrote:
> > Please, anyone having a hint how to deal with the problem described
> > below? Or should I consider the issue being hard to solve 
> in an easy way
> > and hence Cexp not being able to use on sparc-rtems? Sorry 
> but I have to
> > keep pushing as I have to decide reasonably quickly whether 
> I can use
> > Cexp for my project or not.
> >
> > Thanks.
> >
> > Best regards,
> > Marek Prochazka
> >
> >   
> >> -----Original Message-----
> >> From: Marek Prochazka [mailto:Marek.Prochazka at scisys.co.uk] 
> >> Sent: 12 September 2006 17:18
> >> To: Till Straumann
> >> Cc: rtems-users at rtems.com
> >> Subject: RE: Dynamic Libraries
> >>
> >> Hi,
> >>
> >> I have successfully linked a Cexp "loader" application on 
> >> Linux and was
> >> able to load modules at runtime. Quite good stuff!
> >>
> >> When I am trying to do the same for sparc-rtems target, I get the
> >> following message when linking:
> >>
> >> /opt/rtems-4.6/lib/gcc-lib/sparc-rtems/3.2.3/../../../../sparc
> >> -rtems/bin
> >> /ld: ADDR forward reference of section .text
> >>
> >> My link_helper file looks like this:
> >>
> >> __cexp__dummy_alias_0 = ADDR( .text ) ;
> >> __cexp__dummy_alias_1 = ADDR( .data ) ;
> >> __cexp__dummy_alias_2 = ADDR( .bss ) ;
> >> __cexp__dummy_alias_3 = ADDR( .jcr ) ;
> >>
> >> Corresponding part of mysymbtab.c is
> >>
> >> static CexpSymRec systemSymbols[] = {
> >> 	{
> >> 		.name       =".text",
> >> 		.value.ptv  =(void*)&__cexp__dummy_alias_0,
> >> 		.value.type =TVoid,
> >> 		.size       =0,
> >> 		.flags      =0|CEXP_SYMFLG_SECT,
> >> 	},
> >> 	{
> >> 		.name       =".data",
> >> 		.value.ptv  =(void*)&__cexp__dummy_alias_1,
> >> 		.value.type =TVoid,
> >> 		.size       =0,
> >> 		.flags      =0|CEXP_SYMFLG_SECT,
> >> 	},
> >> 	{
> >> 		.name       =".bss",
> >> 		.value.ptv  =(void*)&__cexp__dummy_alias_2,
> >> 		.value.type =TVoid,
> >> 		.size       =0,
> >> 		.flags      =0|CEXP_SYMFLG_SECT,
> >> 	},
> >> 	{
> >> 		.name       =".jcr",
> >> 		.value.ptv  =(void*)&__cexp__dummy_alias_3,
> >> 		.value.type =TVoid,
> >> 		.size       =0,
> >> 		.flags      =0|CEXP_SYMFLG_SECT,
> >> 	},
> >> 	...
> >>
> >> I have built libcexp for sparc-rtems and xsyms on Linux for 
> >> sparc-rtems
> >> target. When I tried to build xsyms on top of libelf (--disable-bfd
> >> --disable-cexp) then the mysymtab.c file generated by xsyms 
> >> is actually
> >> a binary file - so I do not know how use it.
> >>
> >> Any hints related to this?
> >>
> >> Many thanks,
> >> Marek
> >>
> >>
> >>     
> >>> -----Original Message-----
> >>> From: Marek Prochazka [mailto:Marek.Prochazka at scisys.co.uk] 
> >>> Sent: 12 September 2006 09:28
> >>> To: Till Straumann
> >>> Cc: rtems-users at rtems.com
> >>> Subject: RE: Dynamic Libraries
> >>>
> >>> Hi,
> >>>
> >>> thanks, this helped me to link it! BTW my version of the 
> >>>       
> >> README file,
> >>     
> >>> which comes from Cexp 1.5 sources downloaded from the Cexp 
> >>>       
> >> home page,
> >>     
> >>> does not mention the trick with "> link_helper" in points 
> 2) and 4).
> >>>
> >>> Regards,
> >>> Marek
> >>>
> >>>       
> >>>> Allan is correct. RTMF (see step 4), please [from the README]:
> >>>>
> >>>>  >  1) compile and link all sources, libraries etc.; build an 
> >>>> executable
> >>>>  >  2) xsyms -C executable  mysymtab.c > link_helper
> >>>>  >  3) compile mysymtab.c (set -I to Cexp source directory, since
> >>>>  >     cexpsyms.h is included)
> >>>>  >  4) link application again, but this time add 
> >>>>         
> >> 'mysymtab.c' to the
> >>     
> >>>>  >     list of sources and 'link_helper' to the list of files to
> >>>>  >     be linked.
> >>>>  >  NOTE: Step 1) linking succeeds without a symtab.o 
> >>>>         
> >>> because there's
> >>>       
> >>>>  >        a weak NULL-ptr alias for the builtin symtab.
> >>>>
> >>>> HTH
> >>>> -- Till
> >>>>
> >>>>         
> >>>       
> >>     
> >
> >   
> 
> 




More information about the users mailing list