Problem compiling leon3 and gr712rc with Tests and SMP enabled.

Jerzy Jaskuc jaskucj at tcd.ie
Fri Feb 18 11:02:56 UTC 2022


Hi,

I've been trying to manually build BSP using waf on RTEMS 6. I'm working
off HEAD of the RTEMS master branch.
However, on gr712rc, whenever I try to have both SMP and tests enabled I
get compile errors, which I can't really understand. When I try building
with only either option, it works in both cases.

Contents of my .ini file:
`[sparc/gr712rc]
RTEMS_SMP = True
BUILD_TESTS = True`

Commands I run:
`./waf configure --prefix=$HOME/RTEMS/rtems/6`
`./waf -v`

Bottom excerpt of error Log:
`/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
./librtemscpu.a(threadqops.c.59.o): in function
`_Thread_Scheduler_get_node_by_index':
/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc/../../../cpukit/include/rtems/score/threadimpl.h:1553:
undefined reference to `_Scheduler_Node_size'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
./librtemscpu.a(threadqops.c.59.o):/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc/../../../cpukit/include/rtems/score/threadimpl.h:1553:
more undefined references to `_Scheduler_Node_size' follow
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
./librtemscpu.a(threadrestart.c.59.o): in function `_Per_CPU_Get_index':
/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc/../../../cpukit/include/rtems/score/percpu.h:681:
undefined reference to `_Per_CPU_Information'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc/../../../cpukit/include/rtems/score/percpu.h:681:
undefined reference to `_Per_CPU_Information'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
./librtemscpu.a(userextaddset.c.59.o): in function `_Per_CPU_Acquire_all':
/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc/../../../cpukit/include/rtems/score/percpu.h:744:
undefined reference to `_Per_CPU_Information'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc/../../../cpukit/include/rtems/score/percpu.h:744:
undefined reference to `_Per_CPU_Information'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc/../../../cpukit/include/rtems/score/percpu.h:746:
undefined reference to `_Per_CPU_Information'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
./librtemscpu.a(userextaddset.c.59.o):/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc/../../../cpukit/include/rtems/score/percpu.h:746:
more undefined references to `_Per_CPU_Information' follow
collect2: error: ld returned 1 exit status

Waf: Leaving directory `/home/yoman/RTEMS/src/rtems/build/sparc/gr712rc'
Build failed
 -> task in '' failed with exit status 1:
{task 139809939310064: link dl04-tar.o,init.o,dl-load.o -> dl04.pre}
''
 -> task in '' failed with exit status 1:
{task 139809939309840: link dl02-tar.o,init.o,dl-load.o -> dl02.pre}
''
 -> task in '' failed with exit status 1:
{task 139809939310512: link dl06-pre-tar.o,pre-init.o,dl-load.o -> dl06.pre}
''
 -> task in '' failed with exit status 1:
{task 139809939309616: link dl01-tar.o,init.o,dl-load.o -> dl01.pre}
''`

Similarly when I'm trying the same with Leon3. However, on Leon3 I can't
even build it with only tests enabled.

Contents of my .ini file:
`[sparc/leon3]
BUILD_TESTS = True`

Commands I run:
`./waf configure --prefix=$HOME/RTEMS/rtems/6`
`./waf -v`

Log excerpt:
`/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
/home/yoman/RTEMS/src/rtems/build/sparc/leon3/testsuites/libtests/dl10/init.o:(.rodata._Scheduler_Table+0x30):
undefined reference to `_Scheduler_default_Sticky_do_nothing'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
/home/yoman/RTEMS/src/rtems/build/sparc/leon3/testsuites/libtests/dl10/init.o:(.rodata._Scheduler_Table+0x34):
undefined reference to `_Scheduler_default_Sticky_do_nothing'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
/home/yoman/RTEMS/src/rtems/build/sparc/leon3/testsuites/libtests/dl10/init.o:(.rodata._Scheduler_Table+0x38):
undefined reference to `_Scheduler_default_Pin_or_unpin_do_nothing'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
/home/yoman/RTEMS/src/rtems/build/sparc/leon3/testsuites/libtests/dl10/init.o:(.rodata._Scheduler_Table+0x3c):
undefined reference to `_Scheduler_default_Pin_or_unpin_do_nothing'
/home/yoman/RTEMS/rtems/6/lib/gcc/sparc-rtems6/10.3.1/../../../../sparc-rtems6/bin/ld:
/home/yoman/RTEMS/src/rtems/build/sparc/leon3/testsuites/libtests/dl10/init.o:(.rodata._Scheduler_Table+0x5c):
undefined reference to `_Scheduler_default_Set_affinity'
collect2: error: ld returned 1 exit status

Waf: Leaving directory `/home/yoman/RTEMS/src/rtems/build/sparc/leon3'
Build failed
 -> task in '' failed with exit status 1:
{task 139903699298224: link dl06-pre-tar.o,pre-init.o,dl-load.o -> dl06.pre}
''
 -> task in '' failed with exit status 1:
{task 139903699299344: link dl10-tar.o,init.o,dl-load.o -> dl10.pre}
''`

I've been able to build tests for both Leon3 and gr712rc without problems a
few months ago, but that's without SMP.

Am I doing something wrong or missing some new steps with it? Any help
would be appreciated!

Thank you in advance and all the best,
Jerzy


More information about the devel mailing list