Dynamic load real-time tasks

Chris Johns chrisj at rtems.org
Thu Jun 29 07:45:23 UTC 2017


On 28/6/17 8:03 pm, Павел Жданов wrote:
> 
>     >
>     >     Have you loaded a symbol table for the base image that contains the 'printf'
>     >     function.
>     >
>     >
>     > I created it but symbols are all undefined. Is it OK?
> 
>     Did you load the symbol table on to the target somehow?
> 
> 
> I quess I didn't load it.
> 
> At the moment I try to modify dl01 example to load dl-o1.o from filesystem.
> 
> My Makefile:
> all:
>     i386-rtems4.11-gcc -B$(RTEMS_MAKEFILE_PATH)lib/ -specs bsp_specs -qrtems
> -mtune=i486 -O2 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration
> -Wstrict-prototypes -Wnested-externs -MT filesystem.o -MD -MP -MF
> .deps/filesystem.Tpo *-c -o filesystem.o filesystem.c*
>     i386-rtems4.11-gcc -B../../../../../pc486/lib/ -specs bsp_specs -qrtems
> -DHAVE_CONFIG_H -I. -I../../../../../../../c/src/../../testsuites/libtests/dl01
> -I.. 
> -I../../../../../../../c/src/../../testsuites/libtests/../support/include  
> -mtune=i486 -O2 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration
> -Wstrict-prototypes -Wnested-externs -MT dl-o1.o -MD -MP -MF .deps/dl-o1.Tpo *-c
> -o dl-o1.o dl-o1.c*
>     i386-rtems4.11-gcc -B../../../../../pc486/lib/ -specs bsp_specs -qrtems
> -DHAVE_CONFIG_H -I. -I../../../../../../../c/src/../../testsuites/libtests/dl01
> -I.. 
> -I../../../../../../../c/src/../../testsuites/libtests/../support/include  
> -mtune=i486 -O2 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration
> -Wstrict-prototypes -Wnested-externs -MT init.o -MD -MP -MF .deps/init.Tpo *-c
> -o init.o init.c*
>     i386-rtems4.11-gcc -B../../../../../pc486/lib/ -specs bsp_specs -qrtems
> -DHAVE_CONFIG_H -I. -I../../../../../../../c/src/../../testsuites/libtests/dl01
> -I.. 
> -I../../../../../../../c/src/../../testsuites/libtests/../support/include  
> -mtune=i486 -O2 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration
> -Wstrict-prototypes -Wnested-externs -MT dl-load.o -MD -MP -MF .deps/dl-load.Tpo
> *-c -o dl-load.o dl-load.c*
>     i386-rtems4.11-gcc -B../../../../../pc486/lib/ -specs bsp_specs -qrtems
> -mtune=i486 -O2 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration
> -Wstrict-prototypes -Wnested-externs   -Wl,-Ttext,0x00100000  -mtune=i486   *-o
> dl01.pre.exe init.o dl-load.o dl-o1.o filesystem.o*
>     mv dl01.pre.exe dl01.pre
>     rtems-syms -e -c "-mtune=i486 -O2 -g -Wall -Wmissing-prototypes
> -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs" *-o
> dl-sym.o dl01.pre*
>     i386-rtems4.11-gcc -B../../../../../pc486/lib/ -specs bsp_specs -qrtems
> -mtune=i486 -O2 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration
> -Wstrict-prototypes -Wnested-externs   -Wl,-Ttext,0x00100000  -mtune=i486 *-o
> dl01.exe init.o dl-load.o dl-o1.o dl-sym.o filesystem.o*
> 
> filesystem.c contains functions to mount dos partition.
> 
> The output is:
> dlopen failed: duplicate global symbol: rtems_main

You have linked the object you wish to run time load into the base kernel
executable.

Chris



More information about the users mailing list