building powerpc bsp...

Till Straumann strauman at slac.stanford.edu
Tue Oct 13 15:56:12 UTC 2009


I've had the problem with 'dummy.o' in the past. IMO
a better solution should be found because - especially
for the 'user' as opposed to a 'developer' - it is hard
to understand and find the cause of the problem.

You miss to define something and it gets pulled in from
'dummy.o' which then causes linker errors due to
multiply defined stuff when in fact an error should report
the missing item - not exactly user-friendly behavior...

FWIW
-- T.

Thomas Dörfler wrote:
> Hi,
>
> hm, it looks like your application tries to pull something in that is
> only defined in "dummy.o", and therefore dummy.o is pulled in and
> colides with lots of other symbols.
>
> Maybe you can generate a map file and look, why dummy.o gets pulled in?
>
> wkr,
> Thomas.
>
> lee wrote:
>   
>> Hi all...
>>
>> Im getting this build error...
>>
>> It seems that something is referencing , something in newlib, and I dont
>> know why newlib does not contain that something....
>>
>>
>> owerpc-rtems4.10-gcc -B../../../../../mvme2100/lib/ -specs bsp_specs
>> -qrtems -mcpu=603e -Dppc603e -O2 -g -mmultiple -mstring -mstrict-align
>> -mcpu=603e -Dppc603e   -o hello.exe
>> init.o ../../../../../mvme2100/lib/no-barrier.rel ../../../../../mvme2100/lib/no-dpmem.rel ../../../../../mvme2100/lib/no-event.rel ../../../../../mvme2100/lib/no-msg.rel ../../../../../mvme2100/lib/no-mp.rel ../../../../../mvme2100/lib/no-part.rel ../../../../../mvme2100/lib/no-region.rel ../../../../../mvme2100/lib/no-signal.rel ../../../../../mvme2100/lib/no-timer.rel ../../../../../mvme2100/lib/no-rtmon.rel ../../../../../mvme2100/lib/no-ext.rel
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x0): multiple definition of `rtems_libio_init_helper'
>> init.o:(.sdata+0x0): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x4): multiple definition of `rtems_libio_supp_helper'
>> init.o:(.sdata+0x4): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x8): multiple definition of `rtems_fs_init_helper'
>> init.o:(.sdata+0x8): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0xc): multiple definition of `rtems_libio_number_iops'
>> init.o:(.sdata+0xc): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sbss+0x0): multiple definition of `rtems_telnetd_maximum_ptys'
>> init.o:/home/lee/rbuild11ppc/powerpc-rtems4.10/c/mvme2100/testsuites/samples/hello/../../../../../mvme2100/lib/include/rtems/confdefs.h:329: first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x10): multiple definition of `imfs_rq_memfile_bytes_per_block'
>> init.o:(.sdata+0x14): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.rodata+0x0): multiple definition of `configuration_mount_table'
>> init.o:(.rodata+0x0): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x14): multiple definition of `rtems_filesystem_mount_table'
>> init.o:(.sdata+0x18): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x18): multiple definition of `rtems_filesystem_mount_table_size'
>> init.o:(.sdata+0x1c): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x1c): multiple definition of `RTEMS_Malloc_Heap'
>> init.o:(.sdata+0x20): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sbss+0x5): multiple definition of `rtems_unified_work_area'
>> init.o:/home/lee/rtems/c/src/../../testsuites/samples/hello/init.c:31:
>> first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sbss+0x8): multiple definition of `rtems_malloc_statistics_helpers'
>> init.o:/home/lee/rtems/c/src/../../testsuites/samples/hello/init.c:31:
>> first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sbss+0xc): multiple definition of `rtems_malloc_sbrk_helpers'
>> init.o:(.sdata+0x24): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sbss+0x10): multiple definition of `rtems_malloc_dirty_helper'
>> init.o:/home/lee/rtems/c/src/../../testsuites/samples/hello/init.c:32:
>> first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.data+0x0): multiple definition of `Initialization_tasks'
>> init.o:(.data+0x0): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.data+0x1c): multiple definition of `Device_drivers'
>> init.o:(.data+0x1c): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/bin/ld: Warning: size of symbol `Device_drivers' changed from 24 in init.o to 48 in /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o)
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.data+0x4c): multiple definition of `Configuration_Initial_Extensions'
>> init.o:(.data+0x34): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.data+0x6c): multiple definition of `Configuration_RTEMS_API'
>> init.o:(.data+0x54): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.bss+0x0): multiple definition of `Configuration_POSIX_API'
>> init.o:/home/lee/rbuild11ppc/powerpc-rtems4.10/c/mvme2100/testsuites/samples/hello/../../../../../mvme2100/lib/include/rtems/confdefs.h:329: first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/bin/ld: Warning: size of symbol `Configuration_POSIX_API' changed from 56 in init.o to 52 in /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o)
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x20): multiple definition of `rtems_minimum_stack_size'
>> init.o:(.sdata+0x28): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x24): multiple definition of `rtems_maximum_priority'
>> init.o:(.sdata+0x2c): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.data+0x9c): multiple definition of `Configuration'
>> init.o:(.data+0x84): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sdata+0x28): multiple definition of `_RTEMS_tasks_Initialize_user_tasks_p'
>> init.o:(.sdata+0x30): first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.sbss+0x14): multiple definition of `_POSIX_Threads_Initialize_user_threads_p'
>> init.o:/home/lee/rtems/c/src/../../testsuites/samples/hello/init.c:32:
>> first defined here
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/librtemscpu.a(dummy.o):(.data+0x10): undefined reference to `main'
>> /opt/rtems-4.10/lib64/gcc/powerpc-rtems4.10/4.4.1/../../../../powerpc-rtems4.10/lib/m603e/libc.a(lib_a-makebuf.o): In function `__smakebuf_r':
>> /builddir/build/BUILD/rtems-4.10-powerpc-rtems4.10-gcc-4.4.1/build/powerpc-rtems4.10/m603e/newlib/libc/stdio/../../../../../../gcc-4.4.1/newlib/libc/stdio/makebuf.c:110: undefined reference to `_isatty_r'
>> collect2: ld returned 1 exit status
>> gmake[5]: *** [hello.exe] Error 1
>> gmake[5]: Leaving directory
>> `/home/lee/rbuild11ppc/powerpc-rtems4.10/c/mvme2100/testsuites/samples/hello'
>> gmake[4]: *** [all-recursive] Error 1
>> gmake[4]: Leaving directory
>> `/home/lee/rbuild11ppc/powerpc-rtems4.10/c/mvme2100/testsuites/samples'
>> gmake[3]: *** [all-recursive] Error 1
>> gmake[3]: Leaving directory
>> `/home/lee/rbuild11ppc/powerpc-rtems4.10/c/mvme2100/testsuites'
>> gmake[2]: *** [all-recursive] Error 1
>> gmake[2]: Leaving directory
>> `/home/lee/rbuild11ppc/powerpc-rtems4.10/c/mvme2100'
>> gmake[1]: *** [all-recursive] Error 1
>> gmake[1]: Leaving directory `/home/lee/rbuild11ppc/powerpc-rtems4.10/c'
>> make: *** [all-recursive] Error 1
>> [lee at lee
>> rbuild11ppc]$                                                                    
>>
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-users
>>     
>
>
>   




More information about the users mailing list