SD card libblock bdpart linker problem

Alan Cudmore alan.cudmore at gmail.com
Tue Apr 29 00:50:50 UTC 2014


Do you have the right configuration options defined?

I rebuilt the raspberry Pi BSP with all tests ( --enable-tests=yes ). This
includes the testsuites/fstests/fsbdpart01 test.
The test links and runs, but I'm not sure if it passes ( or if it should
completely, since there is no IDE hardware on the Pi)
I get this output:
*** BEGIN OF TEST FSBDPART 1 ***
../../../../../../../rtems-git/c/src/../../testsuites/fstests/fsbdpart01/init.c:
143 (sc) == RTEMS_SUCCESSFUL

After this it seems to hang.


But , the init.c for that test may help you with the configuration in your
code.





On Mon, Apr 28, 2014 at 2:56 PM, Andre Marques <
andre.lousa.marques at gmail.com> wrote:

> Hello,
>
> I am currently working on an emmc driver for the Raspberry Pi, and I am
> trying to mount the SD card using libblock on RTEMS GIT HEAD.
>
> To mount the SD card I am doing:
>
> 1. rtems_io_register_driver (by calling my driver with
> CONFIGURE_APPLICATION_EXTRA_DRIVERS on hello sample)
>
> 2. rtems_filesystem_make_dev_t to get the device file
>
> 3.  rtems_disk_io_initialize
>
> 4. rtems_disk_create_phys
>
> Up until this point everything seems good.
>
> Next I try to read the SD card partition table with
> rtems_bdpart_register_from_disk, and for that I add an include for
> rtems/bdpart.h
>
> When I hit compile, the result seems to point at a linker problem
> (conflict with dummy.o):
>
> (..)
> Making all in hello
> gmake[6]: Entering directory `/home/bison/RTEMS/arm/
> raspberry_pi/b-rtems4.11/arm-rtems4.11/c/raspberrypi/
> testsuites/samples/hello'
> arm-rtems4.11-gcc -B../../../../../raspberrypi/lib/ -specs bsp_specs
> -qrtems -DHAVE_CONFIG_H -I. -I/home/bison/RTEMS/code/c/
> src/../../testsuites/samples/hello -I..     -mcpu=arm1176jzf-s -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 /home/bison/RTEMS/code/c/src/../../testsuites/samples/hello/
> init.c
> mv -f .deps/init.Tpo .deps/init.Po
> arm-rtems4.11-gcc -B../../../../../raspberrypi/lib/ -specs bsp_specs
> -qrtems -mcpu=arm1176jzf-s -O2 -g -Wall -Wmissing-prototypes
> -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs
>  -mcpu=arm1176jzf-s   -o hello.exe init.o
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o): In function
> `_Thread_Idle_body':
> /home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/cpukit/libmisc/../../cpukit/..
> /../../raspberrypi/lib/include/rtems/confdefs.h:849: multiple definition
> of `_Thread_Idle_body'
> init.o:/home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/testsuites/samples/hello/../..
> /../../../raspberrypi/lib/include/rtems/confdefs.h:849: first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o): In function
> `_Thread_Get_executing':
> /home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/cpukit/libmisc/../../cpukit/..
> /../../raspberrypi/lib/include/rtems/score/thread.h:632: multiple
> definition of `__getreent'
> init.o:/home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/testsuites/samples/hello/../..
> /../../../raspberrypi/lib/include/rtems/score/thread.h:632: first defined
> here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o): In function
> `_Thread_Idle_body':
> /home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/cpukit/libmisc/../../cpukit/..
> /../../raspberrypi/lib/include/rtems/confdefs.h:849: multiple definition
> of `_POSIX_Threads_Initialize_user_threads_p'
> init.o:/home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/testsuites/samples/hello/../..
> /../../../raspberrypi/lib/include/rtems/confdefs.h:849: first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0x0):
> multiple definition of `_RTEMS_tasks_Initialize_user_tasks_p'
> init.o:(.data+0x0): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0x0):
> multiple definition of `Configuration'
> init.o:(.rodata+0x0): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0x4):
> multiple definition of `rtems_maximum_priority'
> init.o:(.data+0x4): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0x8):
> multiple definition of `rtems_minimum_stack_size'
> init.o:(.data+0x8): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o): In function
> `_Thread_Get_executing':
> /home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/cpukit/libmisc/../../cpukit/..
> /../../raspberrypi/lib/include/rtems/score/thread.h:632: multiple
> definition of `Configuration_POSIX_API'
> init.o:/home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/testsuites/samples/hello/../..
> /../../../raspberrypi/lib/include/rtems/test.h:73: first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0xc):
> multiple definition of `Configuration_RTEMS_API'
> init.o:(.data+0xc): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0x3c):
> multiple definition of `Device_drivers'
> init.o:(.data+0x3c): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0x6c):
> multiple definition of `Initialization_tasks'
> init.o:(.data+0x6c): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.bss+0x38):
> multiple definition of `rtems_malloc_dirty_helper'
> init.o:/home/bison/RTEMS/code/c/src/../../testsuites/samples/hello/init.c:47:
> first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0x74):
> multiple definition of `rtems_malloc_extend_handler'
> init.o:(.rodata+0xc8): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.bss+0x3c):
> multiple definition of `rtems_malloc_statistics_helpers'
> init.o:/home/bison/RTEMS/arm/raspberry_pi/b-rtems4.11/arm-
> rtems4.11/c/raspberrypi/testsuites/samples/hello/../..
> /../../../raspberrypi/lib/include/rtems/score/thread.h:632: first defined
> here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0x88):
> multiple definition of `RTEMS_Malloc_Heap'
> init.o:(.data+0x88): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0x78):
> multiple definition of `_Scheduler_FIXME_thread_
> priority_queues_are_broken'
> init.o:(.rodata+0xcc): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0x8c):
> multiple definition of `_Scheduler'
> init.o:(.data+0x8c): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0x7c):
> multiple definition of `rtems_filesystem_root_configuration'
> init.o:(.rodata+0xd0): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0x90):
> multiple definition of `rtems_filesystem_table'
> init.o:(.rodata+0xec): first defined here
> /home/bison/RTEMS/arm/tools/rtems-4.11_arm/lib/gcc/arm-
> rtems4.11/4.8.2/../../../../arm-rtems4.11/bin/ld: Warning: size of symbol
> `rtems_filesystem_table' changed from 24 in init.o to 16 in
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o)
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.bss+0x40):
> multiple definition of `rtems_telnetd_maximum_ptys'
> init.o:(.bss+0x90): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0xd0):
> multiple definition of `rtems_libio_number_iops'
> init.o:(.data+0xcc): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0xa0):
> multiple definition of `rtems_fs_init_helper'
> init.o:(.rodata+0x104): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0xa4):
> multiple definition of `rtems_libio_exit_helper'
> init.o:(.rodata+0x108): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0xa8):
> multiple definition of `rtems_libio_post_driver_helper'
> init.o:(.rodata+0x10c): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.rodata+0xac):
> multiple definition of `rtems_libio_init_helper'
> init.o:(.rodata+0x110): first defined here
> ../../../../../raspberrypi/lib/librtemscpu.a(dummy.o):(.data+0x7c):
> undefined reference to `main'
> collect2: error: ld returned 1 exit status
> (..)
>
> Any clue of what may be the problem?
>
> --André Marques.
>
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20140428/aa62c301/attachment-0001.html>


More information about the devel mailing list