RSB help

Chris Johns chrisj at rtems.org
Tue Apr 14 00:23:19 UTC 2020


On 11/4/20 2:06 am, Michael Westfall wrote:
> This time I'm trying to build ncurses-6.2 using the RSB with files 
> .cfg/.bset files I made myself.  Basically, I just copied and modified 
> the files for building libcurl.

Nice. I have used ncurses with RTEMS many many years ago, it is a great 
package.

> Here is what happens when I run the command:
> ../source-builder/sb-set-builder 
> --prefix=/gem_sw/targetOS/RTEMS/rtems-5.0.0 --host=arm-rtems5 
> --with-rtems-bsp=beagleboneblack addons/ncurses
> 
> The build fails:
> rtems-bsp=beagleboneblack addons/ncurses
> RTEMS Source Builder - Set Builder, 5.0.0-m2004
> Build Set: addons/ncurses
> config: addons/ncurses-6.2-1.cfg
> package: ncurses-v6.2-arm-rtems5-1
> building: ncurses-v6.2-arm-rtems5-1
> error: building ncurses-v6.2-arm-rtems5-1
> Build FAILED
>    See error report: rsb-report-ncurses-v6.2-arm-rtems5-1.txt
> error: building ncurses-v6.2-arm-rtems5-1
> Build Set: Time 0:00:42.979506
> Build FAILED
> 
> 
> Checking the error report file, I see:
> arm-rtems5-gcc -qrtems 
> -B/gem_sw/targetOS/RTEMS/rtems-5.0.0/arm-rtems5/lib/ 
> -B/gem_sw/targetOS/RTEMS/rtems-5.0.0/arm-rtems5/beagleboneblack/lib/ 
> --specs bsp_specs -mcpu=cortex-a8 -O2 -g -ffunction-sections 
> -fdata-sections  --param max-inline-insns-single=1200  -o blue 
> ../objects/blue.o 
> -L/gem_sw/targetOS/RTEMS/rtems-5.0.0/arm-rtems5/beagleboneblack/lib 
> -mcpu=cortex-a8 
>   -L/gem_sw/targetOS/RTEMS/source/rtems5/rtems-source-builder-5.0.0-m2004/rtems/build/tmp/sb-1000/addons/ncurses/gem_sw/targetOS/RTEMS/rtems-5.0.0/lib -I. -I../../ncurses-6.2/test -I../test -DHAVE_CONFIG_H -DDATA_DIR=\"/gem_sw/targetOS/RTEMS/rtems-5.0.0/arm-rtems5/beagleboneblack/share\" -I. -I../../ncurses-6.2/test -I../include -I../../ncurses-6.2/test/../include -I/gem_sw/targetOS/RTEMS/rtems-5.0.0/arm-rtems5/beagleboneblack/lib/include -D_XOPEN_SOURCE=600 -DNDEBUG -qrtems -B/gem_sw/targetOS/RTEMS/rtems-5.0.0/arm-rtems5/lib/ -B/gem_sw/targetOS/RTEMS/rtems-5.0.0/arm-rtems5/beagleboneblack/lib/ --specs bsp_specs -mcpu=cortex-a8 -O2 -g -ffunction-sections -fdata-sections  --param max-inline-insns-single=1200  `echo "-L../lib -lform -lmenu -lpanel -lncurses   -lbsd -lm -lz -lrtemsdefaultconfig" | sed -e 's/-lform.*-lpanel[^ ]*//'`
> arm-rtems5-gcc: fatal error: 
> /gem_sw/targetOS/RTEMS/rtems-5.0.0/arm-rtems5/beagleboneblack/lib/bsp_specs: 
> attempt to rename spec 'endfile' to already defined spec 'old_endfile'
> compilation terminated.
> Makefile:270: recipe for target 'background' failed
> make[1]: *** [background] Error 1
> 
> The problem, I'm guessing is that --specs bsp_specs is included twice in 
> the compiler command line. 

<sigh>

> What am I missing to stop this from happening?
> I don't see anything the RSB documentation to help me with this.

I would add `--trace` and then look in the ncurses' configure generated 
config.log file to see how the linker command line is created. I would 
look at CFLAGS, LDFLAGS, CCFLAGS or one of the other types of flags to 
see how they are being used. The other possible option is to see if you 
can avoid examples or commands being linked?

An aside, Joel has done a lot of background work to remove spec files 
from our compiler command line and Sebastian is pushing patches looking 
to removing spec files from RTEMS 6. Lets hope this is successful as 
this type of error disappears. There benefits of having a "normal" 
compiler command line cannot be stated enough.

> I've attached my .cfg and .bset files.

They look good. I suspect something in the default pre-build set up is 
effecting something ...

https://git.rtems.org/rtems-source-builder/tree/source-builder/defaults.mc#n212

This macro string is expanded and written into the script file 
`do-build` so you can edit the generated script file and run it to see 
what effect it has. In summary debugging this is a matter of seeing how 
the pre-build variables are effecting the flags in the package and 
config.log and the generated makefile will hopefully provide some clues. 
You can then look at overriding the settings in your cfg file.

Chris


More information about the users mailing list