SD card libblock bdpart linker problem
Andre Marques
andre.lousa.marques at gmail.com
Tue Apr 29 07:19:55 UTC 2014
On 04/29/14 01:50, Alan Cudmore wrote:
> 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.
>
I have configured the base filesystem to IMFS (as used in the
fstests/fsbdpart01) instead of the devfs used on samples/hello and it
compiles now.
Thanks for the help.
>
>
>
>
> On Mon, Apr 28, 2014 at 2:56 PM, Andre Marques
> <andre.lousa.marques at gmail.com <mailto: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 <mailto: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/20140429/4521a8ff/attachment-0001.html>
More information about the devel
mailing list