summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.gitignore11
-rw-r--r--bsps/arm/csb337/start/linkcmds.kit637_v627
-rw-r--r--gccdeps.py238
-rw-r--r--long_gcc.py45
-rw-r--r--make/README465
-rw-r--r--make/compilers/gcc-target-default.cfg189
-rw-r--r--make/directory.cfg57
-rw-r--r--make/host.cfg48
-rw-r--r--make/lib.cfg15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/abi.yml21
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/bspalteracyclonev.yml142
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/objsmp.yml16
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/opta9periphclk.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optcachedata.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optcacheinst.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optclkfastidle.yml18
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optconcfg.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optconuart1.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optfdtcpyro.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optfdten.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optfdtmxsz.yml16
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optfdtro.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optfdtuboot.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/opti2cspeed.yml16
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optnoi2c.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optresetvec.yml15
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optuartbaud.yml16
-rw-r--r--spec/build/bsps/arm/altera-cyclone-v/optuartirq.yml15
-rw-r--r--spec/build/bsps/arm/atsam/abi.yml20
-rw-r--r--spec/build/bsps/arm/atsam/bspatsam.yml411
-rw-r--r--spec/build/bsps/arm/atsam/linkcmds.yml49
-rw-r--r--spec/build/bsps/arm/atsam/objnet.yml22
-rw-r--r--spec/build/bsps/arm/atsam/optchgclksram.yml15
-rw-r--r--spec/build/bsps/arm/atsam/optchip.yml54
-rw-r--r--spec/build/bsps/arm/atsam/optconbaud.yml16
-rw-r--r--spec/build/bsps/arm/atsam/optconidx.yml15
-rw-r--r--spec/build/bsps/arm/atsam/optconirq.yml15
-rw-r--r--spec/build/bsps/arm/atsam/optcontype.yml15
-rw-r--r--spec/build/bsps/arm/atsam/optmck.yml16
-rw-r--r--spec/build/bsps/arm/atsam/optnocachesz.yml17
-rw-r--r--spec/build/bsps/arm/atsam/optoscmain.yml16
-rw-r--r--spec/build/bsps/arm/atsam/optqspiflashsz.yml17
-rw-r--r--spec/build/bsps/arm/atsam/optsdram.yml29
-rw-r--r--spec/build/bsps/arm/atsam/opttcmsz.yml17
-rw-r--r--spec/build/bsps/arm/atsam/optusextal.yml15
-rw-r--r--spec/build/bsps/arm/atsam/tstatsamv.yml35
-rw-r--r--spec/build/bsps/arm/beagle/abi.yml17
-rw-r--r--spec/build/bsps/arm/beagle/bspboardorig.yml19
-rw-r--r--spec/build/bsps/arm/beagle/bspboardxm.yml19
-rw-r--r--spec/build/bsps/arm/beagle/bspboneblack.yml19
-rw-r--r--spec/build/bsps/arm/beagle/bspbonewhite.yml19
-rw-r--r--spec/build/bsps/arm/beagle/grp.yml44
-rw-r--r--spec/build/bsps/arm/beagle/obj.yml61
-rw-r--r--spec/build/bsps/arm/beagle/optam335x.yml18
-rw-r--r--spec/build/bsps/arm/beagle/optconbaud.yml16
-rw-r--r--spec/build/bsps/arm/beagle/optconpoll.yml15
-rw-r--r--spec/build/bsps/arm/beagle/optdebug.yml18
-rw-r--r--spec/build/bsps/arm/beagle/optdm3730.yml18
-rw-r--r--spec/build/bsps/arm/beagle/optfdtcpyro.yml15
-rw-r--r--spec/build/bsps/arm/beagle/optfdtmxsz.yml16
-rw-r--r--spec/build/bsps/arm/beagle/optfdtro.yml15
-rw-r--r--spec/build/bsps/arm/beagle/optfdtuboot.yml15
-rw-r--r--spec/build/bsps/arm/csb336/abi.yml17
-rw-r--r--spec/build/bsps/arm/csb336/bspcsb336.yml59
-rw-r--r--spec/build/bsps/arm/csb336/objnet.yml17
-rw-r--r--spec/build/bsps/arm/csb336/start.yml14
-rw-r--r--spec/build/bsps/arm/csb337/abi.yml17
-rw-r--r--spec/build/bsps/arm/csb337/bspcsb337.yml19
-rw-r--r--spec/build/bsps/arm/csb337/bspcsb637.yml19
-rw-r--r--spec/build/bsps/arm/csb337/bspkit637v6.yml19
-rw-r--r--spec/build/bsps/arm/csb337/grp.yml52
-rw-r--r--spec/build/bsps/arm/csb337/obj.yml57
-rw-r--r--spec/build/bsps/arm/csb337/objlcd.yml16
-rw-r--r--spec/build/bsps/arm/csb337/objnet.yml16
-rw-r--r--spec/build/bsps/arm/csb337/objumon.yml26
-rw-r--r--spec/build/bsps/arm/csb337/objumoncon.yml15
-rw-r--r--spec/build/bsps/arm/csb337/optcsb637.yml21
-rw-r--r--spec/build/bsps/arm/csb337/optenlcd.yml19
-rw-r--r--spec/build/bsps/arm/csb337/optenumon.yml16
-rw-r--r--spec/build/bsps/arm/csb337/optenumoncon.yml16
-rw-r--r--spec/build/bsps/arm/csb337/optenusart0.yml15
-rw-r--r--spec/build/bsps/arm/csb337/optenusart1.yml15
-rw-r--r--spec/build/bsps/arm/csb337/optenusart2.yml15
-rw-r--r--spec/build/bsps/arm/csb337/optenusart3.yml15
-rw-r--r--spec/build/bsps/arm/csb337/start.yml14
-rw-r--r--spec/build/bsps/arm/edb7312/abi.yml17
-rw-r--r--spec/build/bsps/arm/edb7312/bspedb7312.yml62
-rw-r--r--spec/build/bsps/arm/edb7312/objnet.yml16
-rw-r--r--spec/build/bsps/arm/edb7312/optskyeye.yml15
-rw-r--r--spec/build/bsps/arm/edb7312/start.yml14
-rw-r--r--spec/build/bsps/arm/grp.yml62
-rw-r--r--spec/build/bsps/arm/gumstix/abi.yml17
-rw-r--r--spec/build/bsps/arm/gumstix/bspgumstix.yml66
-rw-r--r--spec/build/bsps/arm/gumstix/objnet.yml16
-rw-r--r--spec/build/bsps/arm/gumstix/optskyeye.yml15
-rw-r--r--spec/build/bsps/arm/gumstix/start.yml14
-rw-r--r--spec/build/bsps/arm/imx/abi.yml21
-rw-r--r--spec/build/bsps/arm/imx/bspimx.yml104
-rw-r--r--spec/build/bsps/arm/imx/objsmp.yml16
-rw-r--r--spec/build/bsps/arm/imx/optcachedata.yml18
-rw-r--r--spec/build/bsps/arm/imx/optcacheinst.yml18
-rw-r--r--spec/build/bsps/arm/imx/optccmahb.yml16
-rw-r--r--spec/build/bsps/arm/imx/optcmmecspi.yml16
-rw-r--r--spec/build/bsps/arm/imx/optcmmipg.yml16
-rw-r--r--spec/build/bsps/arm/imx/optcmmsdhci.yml16
-rw-r--r--spec/build/bsps/arm/imx/optcmmuart.yml16
-rw-r--r--spec/build/bsps/arm/imx/optconirq.yml16
-rw-r--r--spec/build/bsps/arm/imx/optfdtcpyro.yml15
-rw-r--r--spec/build/bsps/arm/imx/optfdtmxsz.yml16
-rw-r--r--spec/build/bsps/arm/imx/optfdtro.yml15
-rw-r--r--spec/build/bsps/arm/imx/optfdtuboot.yml15
-rw-r--r--spec/build/bsps/arm/imx/optresetvec.yml15
-rw-r--r--spec/build/bsps/arm/lm3s69xx/abi.yml18
-rw-r--r--spec/build/bsps/arm/lm3s69xx/bsplm3s3749.yml21
-rw-r--r--spec/build/bsps/arm/lm3s69xx/bsplm3s6965.yml21
-rw-r--r--spec/build/bsps/arm/lm3s69xx/bsplm4f120.yml21
-rw-r--r--spec/build/bsps/arm/lm3s69xx/bspqemu.yml19
-rw-r--r--spec/build/bsps/arm/lm3s69xx/grp.yml56
-rw-r--r--spec/build/bsps/arm/lm3s69xx/obj.yml55
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optenuart0.yml15
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optenuart1.yml15
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optenuart2.yml15
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optgpioahb.yml21
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optgpionum.yml25
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optlm3s3749.yml18
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optlm3s6965.yml18
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optlm4f120.yml18
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optssiblks.yml25
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optssiclk.yml16
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optsysclk.yml22
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optuartbaud.yml16
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optudma.yml21
-rw-r--r--spec/build/bsps/arm/lm3s69xx/optxtalcfg.yml25
-rw-r--r--spec/build/bsps/arm/lm3s69xx/tstlm3s3749.yml38
-rw-r--r--spec/build/bsps/arm/lm3s69xx/tstlm3s6965.yml22
-rw-r--r--spec/build/bsps/arm/lm3s69xx/tstlm4f120.yml39
-rw-r--r--spec/build/bsps/arm/lpc176x/abi.yml18
-rw-r--r--spec/build/bsps/arm/lpc176x/bsplpc1768mbed.yml21
-rw-r--r--spec/build/bsps/arm/lpc176x/bsplpc1768mbedahbram.yml21
-rw-r--r--spec/build/bsps/arm/lpc176x/bsplpc1768mbedahbrameth.yml21
-rw-r--r--spec/build/bsps/arm/lpc176x/grp.yml52
-rw-r--r--spec/build/bsps/arm/lpc176x/obj.yml80
-rw-r--r--spec/build/bsps/arm/lpc176x/optcclk.yml16
-rw-r--r--spec/build/bsps/arm/lpc176x/optconcfg.yml15
-rw-r--r--spec/build/bsps/arm/lpc176x/optdmachn.yml16
-rw-r--r--spec/build/bsps/arm/lpc176x/optlpc1768.yml15
-rw-r--r--spec/build/bsps/arm/lpc176x/optmintskstksz.yml16
-rw-r--r--spec/build/bsps/arm/lpc176x/optoscmain.yml16
-rw-r--r--spec/build/bsps/arm/lpc176x/optoscrtc.yml16
-rw-r--r--spec/build/bsps/arm/lpc176x/optpclkdiv.yml16
-rw-r--r--spec/build/bsps/arm/lpc176x/optstopgpdma.yml15
-rw-r--r--spec/build/bsps/arm/lpc176x/optstopusb.yml15
-rw-r--r--spec/build/bsps/arm/lpc176x/optuart1cfg.yml15
-rw-r--r--spec/build/bsps/arm/lpc176x/optuartbaud.yml16
-rw-r--r--spec/build/bsps/arm/lpc176x/tstlpc1768mbed.yml37
-rw-r--r--spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbram.yml38
-rw-r--r--spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbrameth.yml140
-rw-r--r--spec/build/bsps/arm/lpc24xx/abi.yml34
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc17xxearam.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc17xxearomint.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc17xxplx800ram.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc17xxplx800romint.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc2362.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc23xxtli800.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc24xxea.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc40xxearam.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/bsplpc40xxearomint.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/bspncsram.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/bspncsromext.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/bspncsromint.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/bspplx800ram.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/bspplx800romint.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/grp.yml84
-rw-r--r--spec/build/bsps/arm/lpc24xx/obj.yml90
-rw-r--r--spec/build/bsps/arm/lpc24xx/objnet.yml16
-rw-r--r--spec/build/bsps/arm/lpc24xx/optcclk.yml28
-rw-r--r--spec/build/bsps/arm/lpc24xx/optconcfg.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/optdmachn.yml22
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemcclkdiv.yml22
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemcis42s32800b.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemcis42s32800d7.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemcm29w160e.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemcm29w320e70.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemcmt48lc4m16a2.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemcsst39vf3201.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemctest.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/optemcw9825g2jb75i.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/optethdownpin.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/optethrmii.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optheapext.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optoscmain.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/optoscrtc.yml16
-rw-r--r--spec/build/bsps/arm/lpc24xx/optotgi2c.yml22
-rw-r--r--spec/build/bsps/arm/lpc24xx/optpclkdiv.yml22
-rw-r--r--spec/build/bsps/arm/lpc24xx/optresetvec.yml19
-rw-r--r--spec/build/bsps/arm/lpc24xx/optstopeth.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optstopgpdma.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/optstopusb.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optuart1cfg.yml18
-rw-r--r--spec/build/bsps/arm/lpc24xx/optuart2cfg.yml24
-rw-r--r--spec/build/bsps/arm/lpc24xx/optuart3cfg.yml21
-rw-r--r--spec/build/bsps/arm/lpc24xx/optuartbaud.yml16
-rw-r--r--spec/build/bsps/arm/lpc24xx/tstlpc17xxearomint.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/tstlpc17xxplx800romint.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/tstlpc2362.yml55
-rw-r--r--spec/build/bsps/arm/lpc24xx/tstlpc23xxtli800.yml66
-rw-r--r--spec/build/bsps/arm/lpc24xx/tstlpc40xxearomint.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/tstncsromint.yml15
-rw-r--r--spec/build/bsps/arm/lpc24xx/tstplx800romint.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/abi.yml18
-rw-r--r--spec/build/bsps/arm/lpc32xx/bsplpc32xxmzx.yml19
-rw-r--r--spec/build/bsps/arm/lpc32xx/bspmzxstage1.yml21
-rw-r--r--spec/build/bsps/arm/lpc32xx/bspmzxstage2.yml19
-rw-r--r--spec/build/bsps/arm/lpc32xx/bspphycore.yml19
-rw-r--r--spec/build/bsps/arm/lpc32xx/grp.yml84
-rw-r--r--spec/build/bsps/arm/lpc32xx/obj.yml69
-rw-r--r--spec/build/bsps/arm/lpc32xx/objnet.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optdismmu.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optdisroprot.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optdisrwdc.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optdmachn.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optenwdgrst.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optethrmii.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optoscmain.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optoscrtc.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optotgi2c.yml19
-rw-r--r--spec/build/bsps/arm/lpc32xx/optotgvbus.yml19
-rw-r--r--spec/build/bsps/arm/lpc32xx/optperiphclk.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optresetvec.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optscratchsz.yml19
-rw-r--r--spec/build/bsps/arm/lpc32xx/optstopeth.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optstopgpdma.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optstopusb.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optu3clk.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optu4clk.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optu5clk.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optu6clk.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optuart1baud.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optuart2baud.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/optuart3baud.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optuart4baud.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optuart5baud.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optuart6baud.yml16
-rw-r--r--spec/build/bsps/arm/lpc32xx/optuart7baud.yml15
-rw-r--r--spec/build/bsps/arm/lpc32xx/tstmzxstage1.yml23
-rw-r--r--spec/build/bsps/arm/opta9periphclk.yml24
-rw-r--r--spec/build/bsps/arm/optmmusmallpages.yml17
-rw-r--r--spec/build/bsps/arm/optmmusz.yml21
-rw-r--r--spec/build/bsps/arm/raspberrypi/abi.yml25
-rw-r--r--spec/build/bsps/arm/raspberrypi/bspraspberrypi.yml19
-rw-r--r--spec/build/bsps/arm/raspberrypi/bspraspberrypi2.yml19
-rw-r--r--spec/build/bsps/arm/raspberrypi/grp.yml46
-rw-r--r--spec/build/bsps/arm/raspberrypi/linkcmds.yml43
-rw-r--r--spec/build/bsps/arm/raspberrypi/obj.yml61
-rw-r--r--spec/build/bsps/arm/raspberrypi/objsmp.yml16
-rw-r--r--spec/build/bsps/arm/raspberrypi/optenhyp.yml15
-rw-r--r--spec/build/bsps/arm/raspberrypi/opti2ciomode.yml15
-rw-r--r--spec/build/bsps/arm/raspberrypi/optnocachelen.yml18
-rw-r--r--spec/build/bsps/arm/raspberrypi/optramlen.yml18
-rw-r--r--spec/build/bsps/arm/raspberrypi/optresetvec.yml15
-rw-r--r--spec/build/bsps/arm/raspberrypi/optrpi2.yml18
-rw-r--r--spec/build/bsps/arm/raspberrypi/optspiiomode.yml15
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/abi.yml21
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/bsprealviewpbxa9.yml84
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/objsmp.yml16
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/opta9periphclk.yml16
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/optcachedata.yml18
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/optcacheinst.yml18
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/optclkbootcpu.yml18
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/optclkfastidle.yml18
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/optmmusmallpages.yml15
-rw-r--r--spec/build/bsps/arm/realview-pbx-a9/optresetvec.yml15
-rw-r--r--spec/build/bsps/arm/rtl22xx/abi.yml22
-rw-r--r--spec/build/bsps/arm/rtl22xx/bsprtl22xx.yml21
-rw-r--r--spec/build/bsps/arm/rtl22xx/bsprtl22xxt.yml21
-rw-r--r--spec/build/bsps/arm/rtl22xx/grp.yml30
-rw-r--r--spec/build/bsps/arm/rtl22xx/obj.yml41
-rw-r--r--spec/build/bsps/arm/rtl22xx/objnet.yml16
-rw-r--r--spec/build/bsps/arm/rtl22xx/optskyeye.yml15
-rw-r--r--spec/build/bsps/arm/rtl22xx/start.yml14
-rw-r--r--spec/build/bsps/arm/rtl22xx/tstrtl22xx.yml21
-rw-r--r--spec/build/bsps/arm/rtl22xx/tstrtl22xxt.yml18
-rw-r--r--spec/build/bsps/arm/smdk2410/abi.yml17
-rw-r--r--spec/build/bsps/arm/smdk2410/bspsmdk2410.yml69
-rw-r--r--spec/build/bsps/arm/smdk2410/optcpus3c2410.yml18
-rw-r--r--spec/build/bsps/arm/smdk2410/optskyeye.yml15
-rw-r--r--spec/build/bsps/arm/smdk2410/start.yml14
-rw-r--r--spec/build/bsps/arm/start.yml14
-rw-r--r--spec/build/bsps/arm/stm32f4/abi.yml23
-rw-r--r--spec/build/bsps/arm/stm32f4/bspstm32f105rc.yml21
-rw-r--r--spec/build/bsps/arm/stm32f4/bspstm32f4.yml21
-rw-r--r--spec/build/bsps/arm/stm32f4/grp.yml60
-rw-r--r--spec/build/bsps/arm/stm32f4/obj.yml70
-rw-r--r--spec/build/bsps/arm/stm32f4/opteni2c1.yml18
-rw-r--r--spec/build/bsps/arm/stm32f4/opteni2c2.yml15
-rw-r--r--spec/build/bsps/arm/stm32f4/optenuart4.yml15
-rw-r--r--spec/build/bsps/arm/stm32f4/optenuart5.yml15
-rw-r--r--spec/build/bsps/arm/stm32f4/optenusart1.yml15
-rw-r--r--spec/build/bsps/arm/stm32f4/optenusart2.yml15
-rw-r--r--spec/build/bsps/arm/stm32f4/optenusart3.yml15
-rw-r--r--spec/build/bsps/arm/stm32f4/optenusart6.yml15
-rw-r--r--spec/build/bsps/arm/stm32f4/optf10xxx.yml18
-rw-r--r--spec/build/bsps/arm/stm32f4/optf4xxxx.yml18
-rw-r--r--spec/build/bsps/arm/stm32f4/opthclk.yml19
-rw-r--r--spec/build/bsps/arm/stm32f4/optoschse.yml16
-rw-r--r--spec/build/bsps/arm/stm32f4/optpclk1.yml19
-rw-r--r--spec/build/bsps/arm/stm32f4/optpclk2.yml19
-rw-r--r--spec/build/bsps/arm/stm32f4/optsysclk.yml19
-rw-r--r--spec/build/bsps/arm/stm32f4/optusartbaud.yml16
-rw-r--r--spec/build/bsps/arm/stm32f4/tststm32f105rc.yml22
-rw-r--r--spec/build/bsps/arm/tms570/abi.yml21
-rw-r--r--spec/build/bsps/arm/tms570/bspls3137hdk.yml21
-rw-r--r--spec/build/bsps/arm/tms570/bspls3137hdkintram.yml21
-rw-r--r--spec/build/bsps/arm/tms570/bspls3137hdksdram.yml19
-rw-r--r--spec/build/bsps/arm/tms570/bspls3137hdkwithloader.yml21
-rw-r--r--spec/build/bsps/arm/tms570/grp.yml48
-rw-r--r--spec/build/bsps/arm/tms570/obj.yml100
-rw-r--r--spec/build/bsps/arm/tms570/objhwinit.yml27
-rw-r--r--spec/build/bsps/arm/tms570/optcclk.yml16
-rw-r--r--spec/build/bsps/arm/tms570/optconirq.yml16
-rw-r--r--spec/build/bsps/arm/tms570/optlowinit.yml16
-rw-r--r--spec/build/bsps/arm/tms570/optmintskstksz.yml16
-rw-r--r--spec/build/bsps/arm/tms570/optoscmain.yml16
-rw-r--r--spec/build/bsps/arm/tms570/optoscrtc.yml16
-rw-r--r--spec/build/bsps/arm/tms570/optreginit.yml15
-rw-r--r--spec/build/bsps/arm/tms570/optscibaud.yml16
-rw-r--r--spec/build/bsps/arm/tms570/opttms570ls3137.yml15
-rw-r--r--spec/build/bsps/arm/tms570/tstls3137hdkintram.yml23
-rw-r--r--spec/build/bsps/arm/xen/abi.yml20
-rw-r--r--spec/build/bsps/arm/xen/bspxen.yml78
-rw-r--r--spec/build/bsps/arm/xen/linkcmds.yml72
-rw-r--r--spec/build/bsps/arm/xen/optgentmrusevirt.yml15
-rw-r--r--spec/build/bsps/arm/xen/optgentmunmask.yml15
-rw-r--r--spec/build/bsps/arm/xen/optloadoff.yml18
-rw-r--r--spec/build/bsps/arm/xen/optnocachelen.yml18
-rw-r--r--spec/build/bsps/arm/xen/optramlen.yml18
-rw-r--r--spec/build/bsps/arm/xen/optramori.yml18
-rw-r--r--spec/build/bsps/arm/xen/optzimghdr.yml15
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/abi.yml21
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/bspqemu.yml19
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/bspzc702.yml19
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/bspzc706.yml19
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/bspzedboard.yml19
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/grp.yml64
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/linkcmds.yml46
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/obj.yml47
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/objsmp.yml16
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml22
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optcachedata.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optcacheinst.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optclkcpu1x.yml22
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optclkfastidle.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optclkuart.yml22
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optconirq.yml15
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optconminor.yml15
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optint0len.yml17
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optint0ori.yml17
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optint1len.yml17
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optint1ori.yml17
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optnocachelen.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optramlen.yml30
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optramori.yml21
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/optresetvec.yml15
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/abi.yml21
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml95
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/linkcmds.yml46
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/objsmp.yml16
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optcachedata.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optcacheinst.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optclkfastidle.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optclkuart.yml19
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optconirq.yml15
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml15
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optgentmrfreq.yml15
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optgentmrusevirt.yml15
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optint0len.yml17
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optint0ori.yml17
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optint1len.yml17
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optint1ori.yml17
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optnocachelen.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optramlen.yml21
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optramori.yml18
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optresetvec.yml15
-rw-r--r--spec/build/bsps/bfin/TLL6527M/abi.yml17
-rw-r--r--spec/build/bsps/bfin/TLL6527M/bsptll6527m.yml62
-rw-r--r--spec/build/bsps/bfin/TLL6527M/optconbaud.yml16
-rw-r--r--spec/build/bsps/bfin/TLL6527M/optconirq.yml16
-rw-r--r--spec/build/bsps/bfin/TLL6527M/optirqtbl.yml15
-rw-r--r--spec/build/bsps/bfin/TLL6527M/optskyeye.yml15
-rw-r--r--spec/build/bsps/bfin/TLL6527M/optuartdma.yml15
-rw-r--r--spec/build/bsps/bfin/bf537Stamp/abi.yml16
-rw-r--r--spec/build/bsps/bfin/bf537Stamp/bspbf537stamp.yml57
-rw-r--r--spec/build/bsps/bfin/bf537Stamp/objnet.yml17
-rw-r--r--spec/build/bsps/bfin/bf537Stamp/optconirq.yml16
-rw-r--r--spec/build/bsps/bfin/bf537Stamp/optskyeye.yml15
-rw-r--r--spec/build/bsps/bfin/bf537Stamp/start.yml14
-rw-r--r--spec/build/bsps/bfin/eZKit533/abi.yml16
-rw-r--r--spec/build/bsps/bfin/eZKit533/bspezkit533.yml56
-rw-r--r--spec/build/bsps/bfin/eZKit533/optconirq.yml16
-rw-r--r--spec/build/bsps/bfin/eZKit533/optskyeye.yml15
-rw-r--r--spec/build/bsps/bfin/grp.yml46
-rw-r--r--spec/build/bsps/bfin/obj.yml21
-rw-r--r--spec/build/bsps/bfin/start.yml14
-rw-r--r--spec/build/bsps/bspopts.yml39
-rw-r--r--spec/build/bsps/grpmake.yml44
-rw-r--r--spec/build/bsps/i386/grp.yml29
-rw-r--r--spec/build/bsps/i386/pc386/abi.yml48
-rw-r--r--spec/build/bsps/i386/pc386/bsppc386.yml19
-rw-r--r--spec/build/bsps/i386/pc386/bsppc486.yml19
-rw-r--r--spec/build/bsps/i386/pc386/bsppc586.yml19
-rw-r--r--spec/build/bsps/i386/pc386/bsppc586sse.yml19
-rw-r--r--spec/build/bsps/i386/pc386/bsppc686.yml19
-rw-r--r--spec/build/bsps/i386/pc386/bsppcp4.yml19
-rw-r--r--spec/build/bsps/i386/pc386/grp.yml68
-rw-r--r--spec/build/bsps/i386/pc386/obj.yml83
-rw-r--r--spec/build/bsps/i386/pc386/objide.yml16
-rw-r--r--spec/build/bsps/i386/pc386/objnet.yml19
-rw-r--r--spec/build/bsps/i386/pc386/objsmp.yml16
-rw-r--r--spec/build/bsps/i386/pc386/objvga.yml25
-rw-r--r--spec/build/bsps/i386/pc386/objvgacir.yml17
-rw-r--r--spec/build/bsps/i386/pc386/objvgavbe.yml17
-rw-r--r--spec/build/bsps/i386/pc386/objvgavga.yml17
-rw-r--r--spec/build/bsps/i386/pc386/optcirrus.yml16
-rw-r--r--spec/build/bsps/i386/pc386/optclk8253.yml15
-rw-r--r--spec/build/bsps/i386/pc386/optclktsc.yml15
-rw-r--r--spec/build/bsps/i386/pc386/optconcom1.yml15
-rw-r--r--spec/build/bsps/i386/pc386/optencom14.yml15
-rw-r--r--spec/build/bsps/i386/pc386/optenide.yml16
-rw-r--r--spec/build/bsps/i386/pc386/optenvga.yml16
-rw-r--r--spec/build/bsps/i386/pc386/optgdbstub.yml15
-rw-r--r--spec/build/bsps/i386/pc386/optgdtdesc.yml26
-rw-r--r--spec/build/bsps/i386/pc386/optidepriifc.yml15
-rw-r--r--spec/build/bsps/i386/pc386/optidesecifc.yml15
-rw-r--r--spec/build/bsps/i386/pc386/optvberm.yml16
-rw-r--r--spec/build/bsps/i386/pc386/optvga.yml16
-rw-r--r--spec/build/bsps/i386/pc386/optvideo80x50.yml15
-rw-r--r--spec/build/bsps/i386/pc386/start.yml14
-rw-r--r--spec/build/bsps/linkcmds.yml20
-rw-r--r--spec/build/bsps/lm32/grp.yml28
-rw-r--r--spec/build/bsps/lm32/lm32_evr/abi.yml16
-rw-r--r--spec/build/bsps/lm32/lm32_evr/bspgdbsim.yml21
-rw-r--r--spec/build/bsps/lm32/lm32_evr/bsplm32evr.yml19
-rw-r--r--spec/build/bsps/lm32/lm32_evr/grp.yml30
-rw-r--r--spec/build/bsps/lm32/lm32_evr/obj.yml33
-rw-r--r--spec/build/bsps/lm32/lm32_evr/objnet.yml16
-rw-r--r--spec/build/bsps/lm32/lm32_evr/optsim.yml18
-rw-r--r--spec/build/bsps/lm32/milkymist/abi.yml20
-rw-r--r--spec/build/bsps/lm32/milkymist/bspmilkymist.yml67
-rw-r--r--spec/build/bsps/lm32/milkymist/objnet.yml16
-rw-r--r--spec/build/bsps/lm32/milkymist/optsim.yml15
-rw-r--r--spec/build/bsps/lm32/start.yml14
-rw-r--r--spec/build/bsps/m68k/av5282/abi.yml17
-rw-r--r--spec/build/bsps/m68k/av5282/bspav5282.yml55
-rw-r--r--spec/build/bsps/m68k/av5282/objnet.yml16
-rw-r--r--spec/build/bsps/m68k/av5282/start.yml14
-rw-r--r--spec/build/bsps/m68k/csb360/abi.yml17
-rw-r--r--spec/build/bsps/m68k/csb360/bspcsb360.yml55
-rw-r--r--spec/build/bsps/m68k/csb360/start.yml14
-rw-r--r--spec/build/bsps/m68k/gen68340/abi.yml17
-rw-r--r--spec/build/bsps/m68k/gen68340/bspgen68340.yml61
-rw-r--r--spec/build/bsps/m68k/gen68340/start.yml14
-rw-r--r--spec/build/bsps/m68k/gen68360/abi.yml25
-rw-r--r--spec/build/bsps/m68k/gen68360/bspgen68360.yml19
-rw-r--r--spec/build/bsps/m68k/gen68360/bspgen68360040.yml19
-rw-r--r--spec/build/bsps/m68k/gen68360/bsppgh360.yml19
-rw-r--r--spec/build/bsps/m68k/gen68360/grp.yml36
-rw-r--r--spec/build/bsps/m68k/gen68360/obj.yml41
-rw-r--r--spec/build/bsps/m68k/gen68360/objnet.yml16
-rw-r--r--spec/build/bsps/m68k/gen68360/opt68360.yml18
-rw-r--r--spec/build/bsps/m68k/gen68360/opt68360x040.yml18
-rw-r--r--spec/build/bsps/m68k/gen68360/optpgh360.yml18
-rw-r--r--spec/build/bsps/m68k/gen68360/start.yml14
-rw-r--r--spec/build/bsps/m68k/genmcf548x/abi.yml18
-rw-r--r--spec/build/bsps/m68k/genmcf548x/bspcobra5475.yml19
-rw-r--r--spec/build/bsps/m68k/genmcf548x/bspm5484fireengine.yml19
-rw-r--r--spec/build/bsps/m68k/genmcf548x/grp.yml38
-rw-r--r--spec/build/bsps/m68k/genmcf548x/obj.yml52
-rw-r--r--spec/build/bsps/m68k/genmcf548x/objnet.yml16
-rw-r--r--spec/build/bsps/m68k/genmcf548x/optcpuclk.yml22
-rw-r--r--spec/build/bsps/m68k/genmcf548x/optdbug.yml18
-rw-r--r--spec/build/bsps/m68k/genmcf548x/optlowinit.yml18
-rw-r--r--spec/build/bsps/m68k/genmcf548x/optm5484fireengine.yml18
-rw-r--r--spec/build/bsps/m68k/genmcf548x/start.yml14
-rw-r--r--spec/build/bsps/m68k/grp.yml49
-rw-r--r--spec/build/bsps/m68k/mcf5206elite/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mcf5206elite/bspmcf5206elite.yml71
-rw-r--r--spec/build/bsps/m68k/mcf5206elite/start.yml14
-rw-r--r--spec/build/bsps/m68k/mcf5206elite/tstmcf5206elite.yml14
-rw-r--r--spec/build/bsps/m68k/mcf52235/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mcf52235/bspmcf52235.yml58
-rw-r--r--spec/build/bsps/m68k/mcf52235/start.yml14
-rw-r--r--spec/build/bsps/m68k/mcf52235/tstmcf52235.yml34
-rw-r--r--spec/build/bsps/m68k/mcf5225x/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mcf5225x/bspmcf5225x.yml56
-rw-r--r--spec/build/bsps/m68k/mcf5225x/start.yml14
-rw-r--r--spec/build/bsps/m68k/mcf5225x/tstmcf5225x.yml17
-rw-r--r--spec/build/bsps/m68k/mcf5235/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mcf5235/bspmcf5235.yml60
-rw-r--r--spec/build/bsps/m68k/mcf5235/objnet.yml16
-rw-r--r--spec/build/bsps/m68k/mcf5235/start.yml14
-rw-r--r--spec/build/bsps/m68k/mcf5329/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mcf5329/bspmcf5329.yml57
-rw-r--r--spec/build/bsps/m68k/mcf5329/objnet.yml16
-rw-r--r--spec/build/bsps/m68k/mcf5329/start.yml14
-rw-r--r--spec/build/bsps/m68k/mrm332/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mrm332/bspmrm332.yml59
-rw-r--r--spec/build/bsps/m68k/mrm332/start.yml14
-rw-r--r--spec/build/bsps/m68k/mrm332/tstmrm332.yml25
-rw-r--r--spec/build/bsps/m68k/mvme147/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mvme147/bspmvme147.yml55
-rw-r--r--spec/build/bsps/m68k/mvme147s/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mvme147s/bspmvme147s.yml57
-rw-r--r--spec/build/bsps/m68k/mvme147s/objmpci.yml18
-rw-r--r--spec/build/bsps/m68k/mvme162/abi.yml18
-rw-r--r--spec/build/bsps/m68k/mvme162/bspmvme162.yml21
-rw-r--r--spec/build/bsps/m68k/mvme162/bspmvme162lx.yml21
-rw-r--r--spec/build/bsps/m68k/mvme162/grp.yml30
-rw-r--r--spec/build/bsps/m68k/mvme162/obj.yml41
-rw-r--r--spec/build/bsps/m68k/mvme162/objnet.yml16
-rw-r--r--spec/build/bsps/m68k/mvme162/tstmvme162.yml13
-rw-r--r--spec/build/bsps/m68k/mvme162/tstmvme162lx.yml13
-rw-r--r--spec/build/bsps/m68k/mvme167/abi.yml17
-rw-r--r--spec/build/bsps/m68k/mvme167/bspmvme167.yml72
-rw-r--r--spec/build/bsps/m68k/mvme167/objnet.yml16
-rw-r--r--spec/build/bsps/m68k/mvme167/optconminor.yml15
-rw-r--r--spec/build/bsps/m68k/mvme167/optintlvl.yml15
-rw-r--r--spec/build/bsps/m68k/mvme167/optiomode.yml15
-rw-r--r--spec/build/bsps/m68k/mvme167/optmvme167.yml14
-rw-r--r--spec/build/bsps/m68k/mvme167/optprintkminor.yml16
-rw-r--r--spec/build/bsps/m68k/mvme167/optuseterm.yml15
-rw-r--r--spec/build/bsps/m68k/objfpsp.yml57
-rw-r--r--spec/build/bsps/m68k/start.yml14
-rw-r--r--spec/build/bsps/m68k/uC5282/abi.yml17
-rw-r--r--spec/build/bsps/m68k/uC5282/bspuc5282.yml55
-rw-r--r--spec/build/bsps/m68k/uC5282/objnet.yml16
-rw-r--r--spec/build/bsps/m68k/uC5282/start.yml14
-rw-r--r--spec/build/bsps/makebsp.yml41
-rw-r--r--spec/build/bsps/makecustom.yml15
-rw-r--r--spec/build/bsps/makeinc.yml65
-rw-r--r--spec/build/bsps/maketarget.yml55
-rw-r--r--spec/build/bsps/mips/csb350/abi.yml19
-rw-r--r--spec/build/bsps/mips/csb350/bspcsb350.yml58
-rw-r--r--spec/build/bsps/mips/csb350/objnet.yml16
-rw-r--r--spec/build/bsps/mips/csb350/start.yml14
-rw-r--r--spec/build/bsps/mips/grp.yml24
-rw-r--r--spec/build/bsps/mips/hurricane/abi.yml19
-rw-r--r--spec/build/bsps/mips/hurricane/bsphurricane.yml70
-rw-r--r--spec/build/bsps/mips/hurricane/optrm52xx.yml15
-rw-r--r--spec/build/bsps/mips/hurricane/optusc320.yml15
-rw-r--r--spec/build/bsps/mips/hurricane/start.yml14
-rw-r--r--spec/build/bsps/mips/jmr3904/abi.yml19
-rw-r--r--spec/build/bsps/mips/jmr3904/bspjmr3904.yml57
-rw-r--r--spec/build/bsps/mips/jmr3904/start.yml14
-rw-r--r--spec/build/bsps/mips/jmr3904/tstjmr3904.yml15
-rw-r--r--spec/build/bsps/mips/malta/abi.yml19
-rw-r--r--spec/build/bsps/mips/malta/bspmalta.yml67
-rw-r--r--spec/build/bsps/mips/malta/start.yml14
-rw-r--r--spec/build/bsps/mips/rbtx4925/abi.yml19
-rw-r--r--spec/build/bsps/mips/rbtx4925/bsprbtx4925.yml66
-rw-r--r--spec/build/bsps/mips/rbtx4925/opttx49xx.yml15
-rw-r--r--spec/build/bsps/mips/rbtx4925/start.yml14
-rw-r--r--spec/build/bsps/mips/rbtx4938/abi.yml19
-rw-r--r--spec/build/bsps/mips/rbtx4938/bsprbtx4938.yml64
-rw-r--r--spec/build/bsps/mips/rbtx4938/start.yml14
-rw-r--r--spec/build/bsps/moxie/moxiesim/abi.yml16
-rw-r--r--spec/build/bsps/moxie/moxiesim/bspmoxiesim.yml53
-rw-r--r--spec/build/bsps/moxie/moxiesim/start.yml14
-rw-r--r--spec/build/bsps/nios2/nios2_iss/abi.yml18
-rw-r--r--spec/build/bsps/nios2/nios2_iss/bspnios2iss.yml49
-rw-r--r--spec/build/bsps/nios2/nios2_iss/start.yml14
-rw-r--r--spec/build/bsps/obj.yml107
-rw-r--r--spec/build/bsps/objgrlib.yml142
-rw-r--r--spec/build/bsps/objgrlibnet.yml17
-rw-r--r--spec/build/bsps/objgrlibnosmp.yml15
-rw-r--r--spec/build/bsps/objirq.yml19
-rw-r--r--spec/build/bsps/objirqdflt.yml17
-rw-r--r--spec/build/bsps/objmpci.yml32
-rw-r--r--spec/build/bsps/objnet.yml34
-rw-r--r--spec/build/bsps/objnetnosmp.yml21
-rw-r--r--spec/build/bsps/optabi.yml17
-rw-r--r--spec/build/bsps/optasflags.yml16
-rw-r--r--spec/build/bsps/optbsp.yml15
-rw-r--r--spec/build/bsps/optcachedata.yml19
-rw-r--r--spec/build/bsps/optcacheinst.yml19
-rw-r--r--spec/build/bsps/optclang.yml17
-rw-r--r--spec/build/bsps/optclkbootcpu.yml20
-rw-r--r--spec/build/bsps/optclkfastidle.yml20
-rw-r--r--spec/build/bsps/optconsolebaud.yml23
-rw-r--r--spec/build/bsps/optconsoleirq.yml16
-rw-r--r--spec/build/bsps/optfatalverb.yml17
-rw-r--r--spec/build/bsps/optgcc.yml17
-rw-r--r--spec/build/bsps/optincludes.yml16
-rw-r--r--spec/build/bsps/optldflags.yml18
-rw-r--r--spec/build/bsps/optldflagsbsp.yml17
-rw-r--r--spec/build/bsps/optmake.yml19
-rw-r--r--spec/build/bsps/optmakelegacy.yml15
-rw-r--r--spec/build/bsps/opto0.yml22
-rw-r--r--spec/build/bsps/opto1.yml22
-rw-r--r--spec/build/bsps/opto2.yml22
-rw-r--r--spec/build/bsps/optog.yml22
-rw-r--r--spec/build/bsps/optos.yml22
-rw-r--r--spec/build/bsps/optprintexcpt.yml17
-rw-r--r--spec/build/bsps/optreset.yml16
-rw-r--r--spec/build/bsps/optresetkey.yml17
-rw-r--r--spec/build/bsps/or1k/generic_or1k/abi.yml17
-rw-r--r--spec/build/bsps/or1k/generic_or1k/bspgenericor1k.yml67
-rw-r--r--spec/build/bsps/or1k/generic_or1k/optperiphclk.yml16
-rw-r--r--spec/build/bsps/or1k/generic_or1k/optresetvec.yml15
-rw-r--r--spec/build/bsps/or1k/generic_or1k/start.yml14
-rw-r--r--spec/build/bsps/or1k/grp.yml15
-rw-r--r--spec/build/bsps/pkgconfig.yml34
-rw-r--r--spec/build/bsps/powerpc/beatnik/abi.yml18
-rw-r--r--spec/build/bsps/powerpc/beatnik/bspbeatnik.yml107
-rw-r--r--spec/build/bsps/powerpc/beatnik/objnet.yml23
-rw-r--r--spec/build/bsps/powerpc/beatnik/optsbrk.yml15
-rw-r--r--spec/build/bsps/powerpc/crti.yml14
-rw-r--r--spec/build/bsps/powerpc/crtn.yml14
-rw-r--r--spec/build/bsps/powerpc/gen5200/abi.yml21
-rw-r--r--spec/build/bsps/powerpc/gen5200/bspicecube.yml19
-rw-r--r--spec/build/bsps/powerpc/gen5200/bsppm520cr825.yml19
-rw-r--r--spec/build/bsps/powerpc/gen5200/bsppm520ze30.yml19
-rw-r--r--spec/build/bsps/powerpc/gen5200/grp.yml64
-rw-r--r--spec/build/bsps/powerpc/gen5200/obj.yml117
-rw-r--r--spec/build/bsps/powerpc/gen5200/objnet.yml16
-rw-r--r--spec/build/bsps/powerpc/gen5200/optbenchirq.yml15
-rw-r--r--spec/build/bsps/powerpc/gen5200/optenirqnest.yml18
-rw-r--r--spec/build/bsps/powerpc/gen5200/optgpiomsk.yml22
-rw-r--r--spec/build/bsps/powerpc/gen5200/optgpioval.yml22
-rw-r--r--spec/build/bsps/powerpc/gen5200/opticecub.yml18
-rw-r--r--spec/build/bsps/powerpc/gen5200/optpm520cr825.yml18
-rw-r--r--spec/build/bsps/powerpc/gen5200/optpm520ze30.yml18
-rw-r--r--spec/build/bsps/powerpc/gen5200/optprintkminor.yml16
-rw-r--r--spec/build/bsps/powerpc/gen5200/optpscgps.yml16
-rw-r--r--spec/build/bsps/powerpc/gen5200/optsinglechar.yml15
-rw-r--r--spec/build/bsps/powerpc/gen5200/optuartmsk.yml25
-rw-r--r--spec/build/bsps/powerpc/gen5200/optuartstermirq.yml15
-rw-r--r--spec/build/bsps/powerpc/gen5200/optuboot.yml21
-rw-r--r--spec/build/bsps/powerpc/gen5200/start.yml14
-rw-r--r--spec/build/bsps/powerpc/gen83xx/abi.yml21
-rw-r--r--spec/build/bsps/powerpc/gen83xx/bspbruid.yml19
-rw-r--r--spec/build/bsps/powerpc/gen83xx/bsphsccm01.yml19
-rw-r--r--spec/build/bsps/powerpc/gen83xx/bspmpc8309som.yml19
-rw-r--r--spec/build/bsps/powerpc/gen83xx/bspmpc8313erdb.yml19
-rw-r--r--spec/build/bsps/powerpc/gen83xx/bspmpc8349eamds.yml19
-rw-r--r--spec/build/bsps/powerpc/gen83xx/grp.yml66
-rw-r--r--spec/build/bsps/powerpc/gen83xx/obj.yml60
-rw-r--r--spec/build/bsps/powerpc/gen83xx/objnet.yml17
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optbruid.yml18
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optchiptype.yml28
-rw-r--r--spec/build/bsps/powerpc/gen83xx/opthsccm01.yml18
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optirqnest.yml21
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optmpc8309som.yml18
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optmpc8313erdb.yml18
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optmpc8349eamds.yml18
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optnandcs0.yml18
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optnet0phy.yml22
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optuart2.yml15
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optuartirq.yml18
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optuboot.yml24
-rw-r--r--spec/build/bsps/powerpc/gen83xx/optulpi.yml18
-rw-r--r--spec/build/bsps/powerpc/gen83xx/start.yml14
-rw-r--r--spec/build/bsps/powerpc/grp.yml91
-rw-r--r--spec/build/bsps/powerpc/haleakala/abi.yml18
-rw-r--r--spec/build/bsps/powerpc/haleakala/bsphaleakala.yml70
-rw-r--r--spec/build/bsps/powerpc/haleakala/objnet.yml16
-rw-r--r--spec/build/bsps/powerpc/haleakala/optsprg.yml15
-rw-r--r--spec/build/bsps/powerpc/haleakala/optvecbase.yml16
-rw-r--r--spec/build/bsps/powerpc/haleakala/start.yml14
-rw-r--r--spec/build/bsps/powerpc/motld.yml28
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/abi.yml43
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/boot.yml49
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/bspmcp750.yml19
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/bspmtx603e.yml19
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/bspmvme2100.yml19
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/bspmvme2307.yml19
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/bspqemu.yml19
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/bspqemualtivec.yml19
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/grp.yml58
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/obj.yml61
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/objqemunet.yml18
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/optmpc603e.yml21
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/optmpc750.yml18
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/optmpc8240.yml18
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/optmvme2100.yml18
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/optppcgeneric.yml21
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/optqemu.yml18
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/optsbrk.yml15
-rw-r--r--spec/build/bsps/powerpc/motorola_powerpc/qemufakerom.yml38
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/abi.yml23
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/bspgwlcfm.yml21
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/bspmpc5566evb.yml21
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/bspmpc5643levb.yml21
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/bspmpc5668g.yml21
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/bspmpc5674fevb.yml21
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/bspphycorempc5554.yml21
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/grp.yml112
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/obj.yml97
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/objnet.yml17
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/ofmpllptmfd.yml25
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optbootflg.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optcachewritethru.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optchipfam.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optchiptype.yml31
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optclkemios.yml25
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optclkpit.yml22
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optconbaud.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optconminor.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optearlystksz.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/opteepromname.yml19
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/opteeprompath.yml19
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optemiosprescal.yml22
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optenstartpro.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optesciirq.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optexcbooke.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optexcfixdhdlr.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optfmpllesyncr1.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optfmpllprediv.yml25
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optgwlcfm.yml18
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optirqtblsz.yml25
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optlowinit.yml18
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optmpc5566evb.yml18
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optmpc5674fevb.yml18
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optnullprot.yml21
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optphycorempc5554.yml18
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optrefclk.yml28
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsmc91111.yml18
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsmc9111enaddr.yml18
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ibige.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsmc9218iled.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ipinirq.yml19
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ipinrst.yml19
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsmc9218irxchn.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsmc9218itxchn.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsysclk.yml25
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/optsysclkdiv.yml19
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/start.yml14
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/tstgwlcfm.yml19
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/tstmpc5643ldpu.yml17
-rw-r--r--spec/build/bsps/powerpc/mpc55xxevb/tstmpc5643levb.yml17
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/abi.yml22
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/bspmpc8260ads.yml78
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/objnet.yml17
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/optconminor.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/optdisphandstat.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/optprintkminor.yml16
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/optuartsiomode.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/optuartsterm.yml15
-rw-r--r--spec/build/bsps/powerpc/mpc8260ads/start.yml14
-rw-r--r--spec/build/bsps/powerpc/mvme3100/abi.yml19
-rw-r--r--spec/build/bsps/powerpc/mvme3100/bspmvme3100.yml90
-rw-r--r--spec/build/bsps/powerpc/mvme3100/objnet.yml16
-rw-r--r--spec/build/bsps/powerpc/mvme3100/optsbrk.yml15
-rw-r--r--spec/build/bsps/powerpc/mvme3100/start.yml14
-rw-r--r--spec/build/bsps/powerpc/mvme5500/abi.yml19
-rw-r--r--spec/build/bsps/powerpc/mvme5500/bspmvme5500.yml99
-rw-r--r--spec/build/bsps/powerpc/mvme5500/objnet.yml18
-rw-r--r--spec/build/bsps/powerpc/mvme5500/optsbrk.yml15
-rw-r--r--spec/build/bsps/powerpc/mvme5500/start.yml26
-rw-r--r--spec/build/bsps/powerpc/obj.yml17
-rw-r--r--spec/build/bsps/powerpc/objexc.yml26
-rw-r--r--spec/build/bsps/powerpc/objvme.yml18
-rw-r--r--spec/build/bsps/powerpc/psim/abi.yml21
-rw-r--r--spec/build/bsps/powerpc/psim/bsppsim.yml85
-rw-r--r--spec/build/bsps/powerpc/psim/objmpci.yml18
-rw-r--r--spec/build/bsps/powerpc/psim/objnet.yml16
-rw-r--r--spec/build/bsps/powerpc/psim/optclkfastidle.yml18
-rw-r--r--spec/build/bsps/powerpc/psim/optsbrk.yml15
-rw-r--r--spec/build/bsps/powerpc/psim/optsprg.yml15
-rw-r--r--spec/build/bsps/powerpc/psim/optvecbase.yml16
-rw-r--r--spec/build/bsps/powerpc/psim/start.yml14
-rw-r--r--spec/build/bsps/powerpc/qemuppc/abi.yml18
-rw-r--r--spec/build/bsps/powerpc/qemuppc/bspqemuppc.yml65
-rw-r--r--spec/build/bsps/powerpc/qemuppc/start.yml14
-rw-r--r--spec/build/bsps/powerpc/qoriq/abi.yml38
-rw-r--r--spec/build/bsps/powerpc/qoriq/bspcore0.yml21
-rw-r--r--spec/build/bsps/powerpc/qoriq/bspcore1.yml21
-rw-r--r--spec/build/bsps/powerpc/qoriq/bspe500.yml21
-rw-r--r--spec/build/bsps/powerpc/qoriq/bspe650032.yml21
-rw-r--r--spec/build/bsps/powerpc/qoriq/bspe650064.yml21
-rw-r--r--spec/build/bsps/powerpc/qoriq/grp.yml118
-rw-r--r--spec/build/bsps/powerpc/qoriq/obj.yml75
-rw-r--r--spec/build/bsps/powerpc/qoriq/objnet.yml18
-rw-r--r--spec/build/bsps/powerpc/qoriq/objsmp.yml15
-rw-r--r--spec/build/bsps/powerpc/qoriq/optbucsr.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optbusclkdiv.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optcachealign.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optcacheblktouch.yml15
-rw-r--r--spec/build/bsps/powerpc/qoriq/optcachedatal1sz.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optcachedatal2sz.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optcacheinstl1sz.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optcacheinstl2sz.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optchipnum.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optchipser.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optclktmctr.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optclktmr.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optcpucnt.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optetsec1phy.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optetsec2phy.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optetsec3phy.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optexcbooke.yml15
-rw-r--r--spec/build/bsps/powerpc/qoriq/optexcfixdhdlr.yml15
-rw-r--r--spec/build/bsps/powerpc/qoriq/optfdtmxsz.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optfdtro.yml15
-rw-r--r--spec/build/bsps/powerpc/qoriq/opthid0.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/opthyp.yml18
-rw-r--r--spec/build/bsps/powerpc/qoriq/opthypguest.yml15
-rw-r--r--spec/build/bsps/powerpc/qoriq/opticombegin.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/opticomsz.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optmas7.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optmsr.yml22
-rw-r--r--spec/build/bsps/powerpc/qoriq/optspefscr.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optthrdcnt.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/opttlb1cnt.yml19
-rw-r--r--spec/build/bsps/powerpc/qoriq/optuart0en.yml18
-rw-r--r--spec/build/bsps/powerpc/qoriq/optuart1en.yml18
-rw-r--r--spec/build/bsps/powerpc/qoriq/optuartbrg0en.yml15
-rw-r--r--spec/build/bsps/powerpc/qoriq/optuartbrg1en.yml21
-rw-r--r--spec/build/bsps/powerpc/qoriq/optuartbrgmas.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optuartbrgpri.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optuartbrgslv.yml16
-rw-r--r--spec/build/bsps/powerpc/qoriq/optuartirq.yml15
-rw-r--r--spec/build/bsps/powerpc/qoriq/start.yml14
-rw-r--r--spec/build/bsps/powerpc/ss555/abi.yml18
-rw-r--r--spec/build/bsps/powerpc/ss555/bspss555.yml81
-rw-r--r--spec/build/bsps/powerpc/ss555/optconminor.yml16
-rw-r--r--spec/build/bsps/powerpc/ss555/optprintkminor.yml16
-rw-r--r--spec/build/bsps/powerpc/ss555/optuartsiomode.yml15
-rw-r--r--spec/build/bsps/powerpc/ss555/optuartsterm.yml15
-rw-r--r--spec/build/bsps/powerpc/ss555/optwdgtimeout.yml16
-rw-r--r--spec/build/bsps/powerpc/ss555/start.yml14
-rw-r--r--spec/build/bsps/powerpc/start.yml14
-rw-r--r--spec/build/bsps/powerpc/t32mppc/abi.yml22
-rw-r--r--spec/build/bsps/powerpc/t32mppc/bspt32mppc.yml70
-rw-r--r--spec/build/bsps/powerpc/t32mppc/objsmp.yml15
-rw-r--r--spec/build/bsps/powerpc/t32mppc/optexcbooke.yml15
-rw-r--r--spec/build/bsps/powerpc/t32mppc/optexcfixdhdlr.yml15
-rw-r--r--spec/build/bsps/powerpc/t32mppc/start.yml14
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/abi.yml23
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/bsppghplus.yml19
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/bspstk8xx.yml19
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/grp.yml56
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/obj.yml49
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/objnet.yml17
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optconchn.yml16
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optconscc1.yml16
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optconscc2.yml16
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optconscc3.yml16
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optconscc4.yml16
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optconsmc1.yml22
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optconsmc2.yml19
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optnetfec.yml18
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optnetscc.yml18
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/optprintkchn.yml16
-rw-r--r--spec/build/bsps/powerpc/tqm8xx/start.yml14
-rw-r--r--spec/build/bsps/powerpc/vecentry.yml14
-rw-r--r--spec/build/bsps/powerpc/virtex/abi.yml21
-rw-r--r--spec/build/bsps/powerpc/virtex/bspvirtex.yml86
-rw-r--r--spec/build/bsps/powerpc/virtex/linkcmds.yml45
-rw-r--r--spec/build/bsps/powerpc/virtex/objnet.yml16
-rw-r--r--spec/build/bsps/powerpc/virtex/optconirq.yml15
-rw-r--r--spec/build/bsps/powerpc/virtex/optfastramlen.yml18
-rw-r--r--spec/build/bsps/powerpc/virtex/optfastramorg.yml18
-rw-r--r--spec/build/bsps/powerpc/virtex/optramlen.yml18
-rw-r--r--spec/build/bsps/powerpc/virtex/optramorg.yml18
-rw-r--r--spec/build/bsps/powerpc/virtex/optresetlen.yml17
-rw-r--r--spec/build/bsps/powerpc/virtex/optresetorg.yml18
-rw-r--r--spec/build/bsps/powerpc/virtex/optxparam.yml16
-rw-r--r--spec/build/bsps/powerpc/virtex/start.yml14
-rw-r--r--spec/build/bsps/powerpc/virtex4/abi.yml18
-rw-r--r--spec/build/bsps/powerpc/virtex4/bspvirtex4.yml70
-rw-r--r--spec/build/bsps/powerpc/virtex4/optppccachedata.yml15
-rw-r--r--spec/build/bsps/powerpc/virtex4/optsprg.yml15
-rw-r--r--spec/build/bsps/powerpc/virtex4/optvecbase.yml16
-rw-r--r--spec/build/bsps/powerpc/virtex4/start.yml14
-rw-r--r--spec/build/bsps/powerpc/virtex5/abi.yml19
-rw-r--r--spec/build/bsps/powerpc/virtex5/bspvirtex5.yml71
-rw-r--r--spec/build/bsps/powerpc/virtex5/optppccachedata.yml15
-rw-r--r--spec/build/bsps/powerpc/virtex5/optsprg.yml15
-rw-r--r--spec/build/bsps/powerpc/virtex5/optvecbase.yml16
-rw-r--r--spec/build/bsps/powerpc/virtex5/start.yml14
-rw-r--r--spec/build/bsps/riscv/griscv/abi.yml38
-rw-r--r--spec/build/bsps/riscv/griscv/bspgriscv.yml19
-rw-r--r--spec/build/bsps/riscv/griscv/bspgrv32i.yml19
-rw-r--r--spec/build/bsps/riscv/griscv/bspgrv32im.yml19
-rw-r--r--spec/build/bsps/riscv/griscv/bspgrv32imac.yml19
-rw-r--r--spec/build/bsps/riscv/griscv/bspgrv32imafdc.yml19
-rw-r--r--spec/build/bsps/riscv/griscv/grp.yml46
-rw-r--r--spec/build/bsps/riscv/griscv/obj.yml36
-rw-r--r--spec/build/bsps/riscv/griscv/objsmp.yml15
-rw-r--r--spec/build/bsps/riscv/griscv/optextirqmax.yml16
-rw-r--r--spec/build/bsps/riscv/grp.yml15
-rw-r--r--spec/build/bsps/riscv/linkcmds.yml29
-rw-r--r--spec/build/bsps/riscv/linkcmdsbase.yml401
-rw-r--r--spec/build/bsps/riscv/optrambegin.yml24
-rw-r--r--spec/build/bsps/riscv/optramsize.yml21
-rw-r--r--spec/build/bsps/riscv/riscv/abi.yml79
-rw-r--r--spec/build/bsps/riscv/riscv/bspfrdme310arty.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv32i.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv32iac.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv32im.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv32imac.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv32imafc.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv32imafd.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv32imafdc.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv64imac.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv64imacmedany.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv64imafd.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv64imafdc.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv64imafdcmedany.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/bsprv64imafdmedany.yml19
-rw-r--r--spec/build/bsps/riscv/riscv/grp.yml58
-rw-r--r--spec/build/bsps/riscv/riscv/obj.yml41
-rw-r--r--spec/build/bsps/riscv/riscv/objsmp.yml15
-rw-r--r--spec/build/bsps/riscv/riscv/optextirqmax.yml16
-rw-r--r--spec/build/bsps/riscv/riscv/optfdtcpyro.yml15
-rw-r--r--spec/build/bsps/riscv/riscv/optfdtmxsz.yml16
-rw-r--r--spec/build/bsps/riscv/riscv/optfdtro.yml15
-rw-r--r--spec/build/bsps/riscv/riscv/optfdtuboot.yml15
-rw-r--r--spec/build/bsps/riscv/riscv/optfrdme310arty.yml18
-rw-r--r--spec/build/bsps/riscv/riscv/opthtif.yml15
-rw-r--r--spec/build/bsps/riscv/riscv/optns16550max.yml19
-rw-r--r--spec/build/bsps/riscv/start.yml14
-rw-r--r--spec/build/bsps/sh/gensh1/abi.yml17
-rw-r--r--spec/build/bsps/sh/gensh1/bspgensh1.yml69
-rw-r--r--spec/build/bsps/sh/gensh1/optcpuclk.yml16
-rw-r--r--spec/build/bsps/sh/gensh1/optlowinit.yml15
-rw-r--r--spec/build/bsps/sh/gensh1/start.yml14
-rw-r--r--spec/build/bsps/sh/gensh1/tstgensh1.yml20
-rw-r--r--spec/build/bsps/sh/gensh2/abi.yml17
-rw-r--r--spec/build/bsps/sh/gensh2/bspgensh2.yml77
-rw-r--r--spec/build/bsps/sh/gensh2/optcpuclk.yml16
-rw-r--r--spec/build/bsps/sh/gensh2/optevb.yml15
-rw-r--r--spec/build/bsps/sh/gensh2/optlowinit.yml15
-rw-r--r--spec/build/bsps/sh/gensh2/start.yml14
-rw-r--r--spec/build/bsps/sh/gensh2/tstgensh2.yml20
-rw-r--r--spec/build/bsps/sh/gensh4/abi.yml18
-rw-r--r--spec/build/bsps/sh/gensh4/bspgensh4.yml72
-rw-r--r--spec/build/bsps/sh/gensh4/optcpuclk.yml16
-rw-r--r--spec/build/bsps/sh/gensh4/optcpydata.yml15
-rw-r--r--spec/build/bsps/sh/gensh4/optlowinit.yml15
-rw-r--r--spec/build/bsps/sh/gensh4/start.yml14
-rw-r--r--spec/build/bsps/sh/shsim/abi.yml31
-rw-r--r--spec/build/bsps/sh/shsim/bspsimsh1.yml21
-rw-r--r--spec/build/bsps/sh/shsim/bspsimsh2.yml21
-rw-r--r--spec/build/bsps/sh/shsim/bspsimsh2e.yml21
-rw-r--r--spec/build/bsps/sh/shsim/bspsimsh4.yml21
-rw-r--r--spec/build/bsps/sh/shsim/grp.yml28
-rw-r--r--spec/build/bsps/sh/shsim/obj.yml41
-rw-r--r--spec/build/bsps/sh/shsim/optcpuclk.yml16
-rw-r--r--spec/build/bsps/sh/shsim/optlowinit.yml15
-rw-r--r--spec/build/bsps/sh/shsim/start.yml14
-rw-r--r--spec/build/bsps/sh/shsim/tstsimsh1.yml24
-rw-r--r--spec/build/bsps/sh/shsim/tstsimsh2.yml24
-rw-r--r--spec/build/bsps/sh/shsim/tstsimsh2e.yml24
-rw-r--r--spec/build/bsps/sh/shsim/tstsimsh4.yml24
-rw-r--r--spec/build/bsps/sparc/erc32/abi.yml17
-rw-r--r--spec/build/bsps/sparc/erc32/bsperc32.yml76
-rw-r--r--spec/build/bsps/sparc/erc32/objnet.yml16
-rw-r--r--spec/build/bsps/sparc/erc32/objsmp.yml15
-rw-r--r--spec/build/bsps/sparc/erc32/optconirq.yml16
-rw-r--r--spec/build/bsps/sparc/erc32/optpwrdwnhlt.yml15
-rw-r--r--spec/build/bsps/sparc/grp.yml19
-rw-r--r--spec/build/bsps/sparc/leon2/abi.yml22
-rw-r--r--spec/build/bsps/sparc/leon2/bspat697f.yml19
-rw-r--r--spec/build/bsps/sparc/leon2/bspleon2.yml19
-rw-r--r--spec/build/bsps/sparc/leon2/grp.yml38
-rw-r--r--spec/build/bsps/sparc/leon2/obj.yml52
-rw-r--r--spec/build/bsps/sparc/leon2/objnet.yml17
-rw-r--r--spec/build/bsps/sparc/leon2/objsmp.yml16
-rw-r--r--spec/build/bsps/sparc/leon2/optconirq.yml16
-rw-r--r--spec/build/bsps/sparc/leon2/optpwrdwnhlt.yml15
-rw-r--r--spec/build/bsps/sparc/leon3/abi.yml33
-rw-r--r--spec/build/bsps/sparc/leon3/abiclang.yml36
-rw-r--r--spec/build/bsps/sparc/leon3/bspgr712rc.yml19
-rw-r--r--spec/build/bsps/sparc/leon3/bspgr740.yml19
-rw-r--r--spec/build/bsps/sparc/leon3/bspleon3.yml19
-rw-r--r--spec/build/bsps/sparc/leon3/bsput699.yml19
-rw-r--r--spec/build/bsps/sparc/leon3/bsput700.yml19
-rw-r--r--spec/build/bsps/sparc/leon3/grp.yml46
-rw-r--r--spec/build/bsps/sparc/leon3/obj.yml62
-rw-r--r--spec/build/bsps/sparc/leon3/objmpci.yml18
-rw-r--r--spec/build/bsps/sparc/leon3/objnet.yml17
-rw-r--r--spec/build/bsps/sparc/leon3/objnetnosmp.yml18
-rw-r--r--spec/build/bsps/sparc/leon3/objsmp.yml15
-rw-r--r--spec/build/bsps/sparc/leon3/optconirq.yml16
-rw-r--r--spec/build/bsps/sparc/leon3/optleon3smp.yml15
-rw-r--r--spec/build/bsps/sparc/leon3/optpwrdwnhlt.yml15
-rw-r--r--spec/build/bsps/sparc/start.yml14
-rw-r--r--spec/build/bsps/sparc64/grp.yml58
-rw-r--r--spec/build/bsps/sparc64/niagara/abi.yml18
-rw-r--r--spec/build/bsps/sparc64/niagara/bspniagara.yml63
-rw-r--r--spec/build/bsps/sparc64/start.yml14
-rw-r--r--spec/build/bsps/sparc64/usiii/abi.yml19
-rw-r--r--spec/build/bsps/sparc64/usiii/bspusiii.yml67
-rw-r--r--spec/build/bsps/sparc64/usiii/optclkfastidle.yml15
-rw-r--r--spec/build/bsps/tst.yml23
-rw-r--r--spec/build/bsps/tstnoiconv.yml15
-rw-r--r--spec/build/bsps/tstnointrcrit.yml35
-rw-r--r--spec/build/bsps/tstnojffs2.yml21
-rw-r--r--spec/build/bsps/tstnolibdl.yml22
-rw-r--r--spec/build/bsps/tstnorfs.yml22
-rw-r--r--spec/build/bsps/tstreqtick.yml59
-rw-r--r--spec/build/bsps/tstsmallmem.yml128
-rw-r--r--spec/build/bsps/v850/gdbv850sim/abi.yml37
-rw-r--r--spec/build/bsps/v850/gdbv850sim/bspv850e1sim.yml21
-rw-r--r--spec/build/bsps/v850/gdbv850sim/bspv850e2sim.yml21
-rw-r--r--spec/build/bsps/v850/gdbv850sim/bspv850e2v3sim.yml21
-rw-r--r--spec/build/bsps/v850/gdbv850sim/bspv850esim.yml21
-rw-r--r--spec/build/bsps/v850/gdbv850sim/bspv850essim.yml21
-rw-r--r--spec/build/bsps/v850/gdbv850sim/bspv850sim.yml21
-rw-r--r--spec/build/bsps/v850/gdbv850sim/grp.yml24
-rw-r--r--spec/build/bsps/v850/gdbv850sim/obj.yml37
-rw-r--r--spec/build/bsps/v850/gdbv850sim/start.yml14
-rw-r--r--spec/build/bsps/x86_64/amd64/abi.yml19
-rw-r--r--spec/build/bsps/x86_64/amd64/bspamd64.yml57
-rw-r--r--spec/build/bsps/x86_64/amd64/start.yml14
-rw-r--r--spec/build/bsps/x86_64/grp.yml18
-rw-r--r--spec/build/cpukit/cfgattrgetaff.yml14
-rw-r--r--spec/build/cpukit/cfgattrgetgrdsz.yml14
-rw-r--r--spec/build/cpukit/cfgattrgetstack.yml14
-rw-r--r--spec/build/cpukit/cfgattrsetaff.yml14
-rw-r--r--spec/build/cpukit/cfgattrsetgrdsz.yml14
-rw-r--r--spec/build/cpukit/cfgattrsetstack.yml14
-rw-r--r--spec/build/cpukit/cfgcfghdr.yml14
-rw-r--r--spec/build/cpukit/cfgcleanupctx.yml14
-rw-r--r--spec/build/cpukit/cfggetaff.yml14
-rw-r--r--spec/build/cpukit/cfggetattr.yml14
-rw-r--r--spec/build/cpukit/cfghdr.yml69
-rw-r--r--spec/build/cpukit/cfginttypes.yml14
-rw-r--r--spec/build/cpukit/cfgmemory.yml14
-rw-r--r--spec/build/cpukit/cfgnewlib.yml14
-rw-r--r--spec/build/cpukit/cfgpmtxceilcnst.yml14
-rw-r--r--spec/build/cpukit/cfgprionode.yml14
-rw-r--r--spec/build/cpukit/cfgpshdprmcnst.yml14
-rw-r--r--spec/build/cpukit/cfgrcmd.yml14
-rw-r--r--spec/build/cpukit/cfgsetaff.yml14
-rw-r--r--spec/build/cpukit/cfgstdatomic.yml14
-rw-r--r--spec/build/cpukit/cfgstdint.yml14
-rw-r--r--spec/build/cpukit/cfgstdlib.yml14
-rw-r--r--spec/build/cpukit/cfgstring.yml14
-rw-r--r--spec/build/cpukit/cfgstrings.yml14
-rw-r--r--spec/build/cpukit/cfgsysstat.yml14
-rw-r--r--spec/build/cpukit/cfgsystypes.yml14
-rw-r--r--spec/build/cpukit/cfgszoff.yml15
-rw-r--r--spec/build/cpukit/cfgszsize.yml14
-rw-r--r--spec/build/cpukit/cfgsztime.yml15
-rw-r--r--spec/build/cpukit/cfgunistd.yml14
-rw-r--r--spec/build/cpukit/cpuarm.yml62
-rw-r--r--spec/build/cpukit/cpubfin.yml37
-rw-r--r--spec/build/cpukit/cpui386.yml35
-rw-r--r--spec/build/cpukit/cpulm32.yml33
-rw-r--r--spec/build/cpukit/cpum68k.yml38
-rw-r--r--spec/build/cpukit/cpumips.yml34
-rw-r--r--spec/build/cpukit/cpumoxie.yml32
-rw-r--r--spec/build/cpukit/cpunios2.yml53
-rw-r--r--spec/build/cpukit/cpuopts.yml67
-rw-r--r--spec/build/cpukit/cpuor1k.yml34
-rw-r--r--spec/build/cpukit/cpupowerpc.yml35
-rw-r--r--spec/build/cpukit/cpuriscv.yml37
-rw-r--r--spec/build/cpukit/cpush.yml30
-rw-r--r--spec/build/cpukit/cpusparc.yml41
-rw-r--r--spec/build/cpukit/cpusparc64.yml31
-rw-r--r--spec/build/cpukit/cpuv850.yml33
-rw-r--r--spec/build/cpukit/cpux8664.yml34
-rw-r--r--spec/build/cpukit/grp.yml42
-rw-r--r--spec/build/cpukit/libdebugger.yml27
-rw-r--r--spec/build/cpukit/libftpd.yml20
-rw-r--r--spec/build/cpukit/libftpfs.yml19
-rw-r--r--spec/build/cpukit/libjffs2.yml38
-rw-r--r--spec/build/cpukit/libmghttpd.yml19
-rw-r--r--spec/build/cpukit/libnfs.yml23
-rw-r--r--spec/build/cpukit/libpppd.yml33
-rw-r--r--spec/build/cpukit/librtemscpu.yml1574
-rw-r--r--spec/build/cpukit/librtemsdfltcfg.yml16
-rw-r--r--spec/build/cpukit/librtemstest.yml39
-rw-r--r--spec/build/cpukit/libtelnetd.yml24
-rw-r--r--spec/build/cpukit/libtftpfs.yml20
-rw-r--r--spec/build/cpukit/libz.yml34
-rw-r--r--spec/build/cpukit/objdbgarm.yml15
-rw-r--r--spec/build/cpukit/objdbgi386.yml15
-rw-r--r--spec/build/cpukit/objdl.yml71
-rw-r--r--spec/build/cpukit/objdlarm.yml15
-rw-r--r--spec/build/cpukit/objdli386.yml15
-rw-r--r--spec/build/cpukit/objdlm68k.yml15
-rw-r--r--spec/build/cpukit/objdlmips.yml15
-rw-r--r--spec/build/cpukit/objdlmoxie.yml15
-rw-r--r--spec/build/cpukit/objdlpowerpc.yml15
-rw-r--r--spec/build/cpukit/objdlsparc.yml15
-rw-r--r--spec/build/cpukit/objdrvmgr.yml40
-rw-r--r--spec/build/cpukit/objgnat.yml16
-rw-r--r--spec/build/cpukit/objmpci.yml26
-rw-r--r--spec/build/cpukit/objnet.yml315
-rw-r--r--spec/build/cpukit/objpci.yml48
-rw-r--r--spec/build/cpukit/objpsxsgnl.yml52
-rw-r--r--spec/build/cpukit/objshell.yml115
-rw-r--r--spec/build/cpukit/objsmp.yml31
-rw-r--r--spec/build/cpukit/objutf8.yml17
-rw-r--r--spec/build/cpukit/optada.yml16
-rw-r--r--spec/build/cpukit/optarchbits.yml28
-rw-r--r--spec/build/cpukit/optarflags.yml17
-rw-r--r--spec/build/cpukit/optclang.yml45
-rw-r--r--spec/build/cpukit/optdebug.yml16
-rw-r--r--spec/build/cpukit/optdrvmgr.yml16
-rw-r--r--spec/build/cpukit/optgcc.yml40
-rw-r--r--spec/build/cpukit/optincludes.yml15
-rw-r--r--spec/build/cpukit/optinstall.yml21
-rw-r--r--spec/build/cpukit/optlibdl.yml21
-rw-r--r--spec/build/cpukit/optmpci.yml16
-rw-r--r--spec/build/cpukit/optnet.yml16
-rw-r--r--spec/build/cpukit/optnewlib.yml16
-rw-r--r--spec/build/cpukit/optparavirt.yml16
-rw-r--r--spec/build/cpukit/optposix.yml16
-rw-r--r--spec/build/cpukit/optsmp.yml16
-rw-r--r--spec/build/cpukit/optszblkcnt.yml15
-rw-r--r--spec/build/cpukit/optszblksize.yml15
-rw-r--r--spec/build/cpukit/optszmode.yml15
-rw-r--r--spec/build/cpukit/optszoff.yml15
-rw-r--r--spec/build/cpukit/optsztime.yml15
-rw-r--r--spec/build/cpukit/optvermaj.yml14
-rw-r--r--spec/build/cpukit/optvermin.yml14
-rw-r--r--spec/build/cpukit/optverrev.yml14
-rw-r--r--spec/build/cpukit/optversion.yml25
-rw-r--r--spec/build/cpukit/optwarn.yml19
-rw-r--r--spec/build/cpukit/optwarncc.yml21
-rw-r--r--spec/build/cpukit/optwarncxx.yml17
-rw-r--r--spec/build/cpukit/vckey.yml12
-rw-r--r--spec/build/grp.yml16
-rw-r--r--spec/build/testsuites/ada/adabasesp.yml23
-rw-r--r--spec/build/testsuites/ada/adahello.yml23
-rw-r--r--spec/build/testsuites/ada/adamp01node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp01node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp03node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp03node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp04node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp04node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp05node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp05node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp06node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp06node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp07node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp07node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp08node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp08node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp09node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp09node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp10node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp10node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp11node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp11node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp12node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp12node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp13node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp13node2.yml25
-rw-r--r--spec/build/testsuites/ada/adamp14node1.yml25
-rw-r--r--spec/build/testsuites/ada/adamp14node2.yml25
-rw-r--r--spec/build/testsuites/ada/adansecs.yml23
-rw-r--r--spec/build/testsuites/ada/adasp01.yml23
-rw-r--r--spec/build/testsuites/ada/adasp02.yml23
-rw-r--r--spec/build/testsuites/ada/adasp03.yml23
-rw-r--r--spec/build/testsuites/ada/adasp04.yml23
-rw-r--r--spec/build/testsuites/ada/adasp05.yml23
-rw-r--r--spec/build/testsuites/ada/adasp06.yml23
-rw-r--r--spec/build/testsuites/ada/adasp07.yml23
-rw-r--r--spec/build/testsuites/ada/adasp08.yml23
-rw-r--r--spec/build/testsuites/ada/adasp09.yml23
-rw-r--r--spec/build/testsuites/ada/adasp11.yml23
-rw-r--r--spec/build/testsuites/ada/adasp12.yml23
-rw-r--r--spec/build/testsuites/ada/adasp13.yml23
-rw-r--r--spec/build/testsuites/ada/adasp14.yml23
-rw-r--r--spec/build/testsuites/ada/adasp15.yml23
-rw-r--r--spec/build/testsuites/ada/adasp16.yml23
-rw-r--r--spec/build/testsuites/ada/adasp17.yml23
-rw-r--r--spec/build/testsuites/ada/adasp19.yml23
-rw-r--r--spec/build/testsuites/ada/adasp20.yml23
-rw-r--r--spec/build/testsuites/ada/adasp22.yml23
-rw-r--r--spec/build/testsuites/ada/adasp23.yml23
-rw-r--r--spec/build/testsuites/ada/adasp24.yml23
-rw-r--r--spec/build/testsuites/ada/adasp25.yml23
-rw-r--r--spec/build/testsuites/ada/adaspatcb01.yml24
-rw-r--r--spec/build/testsuites/ada/adaspname01.yml24
-rw-r--r--spec/build/testsuites/ada/adaticker.yml23
-rw-r--r--spec/build/testsuites/ada/adatm01.yml23
-rw-r--r--spec/build/testsuites/ada/adatm02.yml23
-rw-r--r--spec/build/testsuites/ada/adatm03.yml23
-rw-r--r--spec/build/testsuites/ada/adatm04.yml23
-rw-r--r--spec/build/testsuites/ada/adatm05.yml23
-rw-r--r--spec/build/testsuites/ada/adatm06.yml23
-rw-r--r--spec/build/testsuites/ada/adatm07.yml23
-rw-r--r--spec/build/testsuites/ada/adatm08.yml23
-rw-r--r--spec/build/testsuites/ada/adatm09.yml23
-rw-r--r--spec/build/testsuites/ada/adatm10.yml23
-rw-r--r--spec/build/testsuites/ada/adatm11.yml23
-rw-r--r--spec/build/testsuites/ada/adatm12.yml23
-rw-r--r--spec/build/testsuites/ada/adatm13.yml23
-rw-r--r--spec/build/testsuites/ada/adatm14.yml23
-rw-r--r--spec/build/testsuites/ada/adatm15.yml23
-rw-r--r--spec/build/testsuites/ada/adatm16.yml23
-rw-r--r--spec/build/testsuites/ada/adatm17.yml23
-rw-r--r--spec/build/testsuites/ada/adatm18.yml23
-rw-r--r--spec/build/testsuites/ada/adatm19.yml23
-rw-r--r--spec/build/testsuites/ada/adatm20.yml23
-rw-r--r--spec/build/testsuites/ada/adatm21.yml23
-rw-r--r--spec/build/testsuites/ada/adatm22.yml23
-rw-r--r--spec/build/testsuites/ada/adatm23.yml23
-rw-r--r--spec/build/testsuites/ada/adatm24.yml23
-rw-r--r--spec/build/testsuites/ada/adatm25.yml23
-rw-r--r--spec/build/testsuites/ada/adatm28.yml23
-rw-r--r--spec/build/testsuites/ada/adatm29.yml23
-rw-r--r--spec/build/testsuites/ada/adatmck.yml23
-rw-r--r--spec/build/testsuites/ada/grp.yml186
-rw-r--r--spec/build/testsuites/ada/optgnat.yml15
-rw-r--r--spec/build/testsuites/benchmarks/dhrystone.yml21
-rw-r--r--spec/build/testsuites/benchmarks/grp.yml24
-rw-r--r--spec/build/testsuites/benchmarks/linpack.yml21
-rw-r--r--spec/build/testsuites/benchmarks/whetstone.yml21
-rw-r--r--spec/build/testsuites/fstests/fsbdpart01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsclose01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsdosfsformat01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsdosfsname01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsdosfsname02.yml19
-rw-r--r--spec/build/testsuites/fstests/fsdosfssync01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsdosfswrite01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsfseeko01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsimfsconfig01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsimfsconfig02.yml19
-rw-r--r--spec/build/testsuites/fstests/fsimfsconfig03.yml19
-rw-r--r--spec/build/testsuites/fstests/fsimfsgeneric01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsjffs2gc01.yml23
-rw-r--r--spec/build/testsuites/fstests/fsnofs01.yml19
-rw-r--r--spec/build/testsuites/fstests/fsrfsbitmap01.yml23
-rw-r--r--spec/build/testsuites/fstests/fsrofs01.yml19
-rw-r--r--spec/build/testsuites/fstests/grp.yml143
-rw-r--r--spec/build/testsuites/fstests/imfsfserror.yml21
-rw-r--r--spec/build/testsuites/fstests/imfsfslink.yml21
-rw-r--r--spec/build/testsuites/fstests/imfsfspatheval.yml21
-rw-r--r--spec/build/testsuites/fstests/imfsfspermission.yml21
-rw-r--r--spec/build/testsuites/fstests/imfsfsrdwr.yml21
-rw-r--r--spec/build/testsuites/fstests/imfsfsscandir01.yml21
-rw-r--r--spec/build/testsuites/fstests/imfsfssymlink.yml21
-rw-r--r--spec/build/testsuites/fstests/imfsfstime.yml21
-rw-r--r--spec/build/testsuites/fstests/jffs2fserror.yml22
-rw-r--r--spec/build/testsuites/fstests/jffs2fslink.yml22
-rw-r--r--spec/build/testsuites/fstests/jffs2fspatheval.yml22
-rw-r--r--spec/build/testsuites/fstests/jffs2fspermission.yml22
-rw-r--r--spec/build/testsuites/fstests/jffs2fsrdwr.yml22
-rw-r--r--spec/build/testsuites/fstests/jffs2fsscandir01.yml22
-rw-r--r--spec/build/testsuites/fstests/jffs2fssymlink.yml22
-rw-r--r--spec/build/testsuites/fstests/jffs2fstime.yml22
-rw-r--r--spec/build/testsuites/fstests/libdosfs.yml19
-rw-r--r--spec/build/testsuites/fstests/libimfs.yml18
-rw-r--r--spec/build/testsuites/fstests/libjffs2.yml18
-rw-r--r--spec/build/testsuites/fstests/libmimfs.yml18
-rw-r--r--spec/build/testsuites/fstests/librfs.yml19
-rw-r--r--spec/build/testsuites/fstests/mdosfsfserror.yml21
-rw-r--r--spec/build/testsuites/fstests/mdosfsfspatheval.yml21
-rw-r--r--spec/build/testsuites/fstests/mdosfsfsrdwr.yml21
-rw-r--r--spec/build/testsuites/fstests/mdosfsfsscandir01.yml21
-rw-r--r--spec/build/testsuites/fstests/mdosfsfsstatvfs.yml21
-rw-r--r--spec/build/testsuites/fstests/mdosfsfstime.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfserror.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfslink.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfspatheval.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfspermission.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfsrdwr.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfsrename.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfsscandir01.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfssymlink.yml21
-rw-r--r--spec/build/testsuites/fstests/mimfsfstime.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfserror.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfsfpathconf.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfslink.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfspatheval.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfspermission.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfsrdwr.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfsrename.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfsscandir01.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfssymlink.yml21
-rw-r--r--spec/build/testsuites/fstests/mrfsfstime.yml21
-rw-r--r--spec/build/testsuites/grp.yml65
-rw-r--r--spec/build/testsuites/libtests/block01.yml19
-rw-r--r--spec/build/testsuites/libtests/block02.yml19
-rw-r--r--spec/build/testsuites/libtests/block03.yml19
-rw-r--r--spec/build/testsuites/libtests/block04.yml19
-rw-r--r--spec/build/testsuites/libtests/block05.yml19
-rw-r--r--spec/build/testsuites/libtests/block06.yml19
-rw-r--r--spec/build/testsuites/libtests/block07.yml19
-rw-r--r--spec/build/testsuites/libtests/block08.yml34
-rw-r--r--spec/build/testsuites/libtests/block09.yml19
-rw-r--r--spec/build/testsuites/libtests/block10.yml19
-rw-r--r--spec/build/testsuites/libtests/block11.yml19
-rw-r--r--spec/build/testsuites/libtests/block12.yml19
-rw-r--r--spec/build/testsuites/libtests/block13.yml19
-rw-r--r--spec/build/testsuites/libtests/block14.yml19
-rw-r--r--spec/build/testsuites/libtests/block15.yml19
-rw-r--r--spec/build/testsuites/libtests/block16.yml19
-rw-r--r--spec/build/testsuites/libtests/block17.yml19
-rw-r--r--spec/build/testsuites/libtests/bspcmdline01.yml19
-rw-r--r--spec/build/testsuites/libtests/calloc.yml20
-rw-r--r--spec/build/testsuites/libtests/capture01.yml20
-rw-r--r--spec/build/testsuites/libtests/clockgettime.yml20
-rw-r--r--spec/build/testsuites/libtests/close.yml20
-rw-r--r--spec/build/testsuites/libtests/complex.yml23
-rw-r--r--spec/build/testsuites/libtests/cpuuse.yml23
-rw-r--r--spec/build/testsuites/libtests/crypt01.yml19
-rw-r--r--spec/build/testsuites/libtests/debugger01.yml23
-rw-r--r--spec/build/testsuites/libtests/defaultconfig01.yml20
-rw-r--r--spec/build/testsuites/libtests/devfs01.yml19
-rw-r--r--spec/build/testsuites/libtests/devfs04.yml20
-rw-r--r--spec/build/testsuites/libtests/deviceio01.yml20
-rw-r--r--spec/build/testsuites/libtests/devnullfatal01.yml19
-rw-r--r--spec/build/testsuites/libtests/dl01.yml38
-rw-r--r--spec/build/testsuites/libtests/dl02.yml39
-rw-r--r--spec/build/testsuites/libtests/dl03.yml23
-rw-r--r--spec/build/testsuites/libtests/dl04.yml39
-rw-r--r--spec/build/testsuites/libtests/dl05.yml40
-rw-r--r--spec/build/testsuites/libtests/dl06.yml48
-rw-r--r--spec/build/testsuites/libtests/dl07.yml42
-rw-r--r--spec/build/testsuites/libtests/dl08.yml47
-rw-r--r--spec/build/testsuites/libtests/dl09.yml42
-rw-r--r--spec/build/testsuites/libtests/dl10.yml47
-rw-r--r--spec/build/testsuites/libtests/dumpbuf01.yml19
-rw-r--r--spec/build/testsuites/libtests/dup2.yml20
-rw-r--r--spec/build/testsuites/libtests/exit01.yml19
-rw-r--r--spec/build/testsuites/libtests/exit02.yml19
-rw-r--r--spec/build/testsuites/libtests/fcntl.yml20
-rw-r--r--spec/build/testsuites/libtests/flashdisk01.yml20
-rw-r--r--spec/build/testsuites/libtests/flockfile.yml20
-rw-r--r--spec/build/testsuites/libtests/fork.yml20
-rw-r--r--spec/build/testsuites/libtests/free.yml20
-rw-r--r--spec/build/testsuites/libtests/fstat.yml20
-rw-r--r--spec/build/testsuites/libtests/ftp01.yml23
-rw-r--r--spec/build/testsuites/libtests/ftrylockfile.yml20
-rw-r--r--spec/build/testsuites/libtests/funlockfile.yml20
-rw-r--r--spec/build/testsuites/libtests/getentropy01.yml19
-rw-r--r--spec/build/testsuites/libtests/getlogin.yml20
-rw-r--r--spec/build/testsuites/libtests/getpwnam.yml20
-rw-r--r--spec/build/testsuites/libtests/getpwuid.yml20
-rw-r--r--spec/build/testsuites/libtests/gettimeofday.yml20
-rw-r--r--spec/build/testsuites/libtests/getuid.yml20
-rw-r--r--spec/build/testsuites/libtests/grp.yml320
-rw-r--r--spec/build/testsuites/libtests/gxx01.yml19
-rw-r--r--spec/build/testsuites/libtests/heapwalk.yml19
-rw-r--r--spec/build/testsuites/libtests/htonl.yml20
-rw-r--r--spec/build/testsuites/libtests/i2c01.yml19
-rw-r--r--spec/build/testsuites/libtests/iconv.yml20
-rw-r--r--spec/build/testsuites/libtests/iconvclose.yml20
-rw-r--r--spec/build/testsuites/libtests/iconvopen.yml20
-rw-r--r--spec/build/testsuites/libtests/kill.yml20
-rw-r--r--spec/build/testsuites/libtests/libdl081.yml17
-rw-r--r--spec/build/testsuites/libtests/libdl082.yml18
-rw-r--r--spec/build/testsuites/libtests/libdl101.yml17
-rw-r--r--spec/build/testsuites/libtests/libdl102.yml18
-rw-r--r--spec/build/testsuites/libtests/libfdt01.yml20
-rw-r--r--spec/build/testsuites/libtests/longjmp.yml20
-rw-r--r--spec/build/testsuites/libtests/lseek.yml20
-rw-r--r--spec/build/testsuites/libtests/lstat.yml20
-rw-r--r--spec/build/testsuites/libtests/malloc.yml20
-rw-r--r--spec/build/testsuites/libtests/malloc02.yml19
-rw-r--r--spec/build/testsuites/libtests/malloc03.yml19
-rw-r--r--spec/build/testsuites/libtests/malloc04.yml19
-rw-r--r--spec/build/testsuites/libtests/malloctest.yml20
-rw-r--r--spec/build/testsuites/libtests/math.yml22
-rw-r--r--spec/build/testsuites/libtests/mathf.yml22
-rw-r--r--spec/build/testsuites/libtests/mathl.yml22
-rw-r--r--spec/build/testsuites/libtests/md501.yml19
-rw-r--r--spec/build/testsuites/libtests/mghttpd01.yml31
-rw-r--r--spec/build/testsuites/libtests/monitor.yml19
-rw-r--r--spec/build/testsuites/libtests/monitor02.yml19
-rw-r--r--spec/build/testsuites/libtests/mouse01.yml22
-rw-r--r--spec/build/testsuites/libtests/nanosleep.yml20
-rw-r--r--spec/build/testsuites/libtests/networking01.yml21
-rw-r--r--spec/build/testsuites/libtests/newlib01.yml19
-rw-r--r--spec/build/testsuites/libtests/open.yml20
-rw-r--r--spec/build/testsuites/libtests/optbin2c.yml14
-rw-r--r--spec/build/testsuites/libtests/optgzip.yml14
-rw-r--r--spec/build/testsuites/libtests/optpax.yml14
-rw-r--r--spec/build/testsuites/libtests/optrtemsld.yml14
-rw-r--r--spec/build/testsuites/libtests/optrtemssyms.yml14
-rw-r--r--spec/build/testsuites/libtests/optxz.yml14
-rw-r--r--spec/build/testsuites/libtests/pipe.yml20
-rw-r--r--spec/build/testsuites/libtests/posix.yml66
-rw-r--r--spec/build/testsuites/libtests/posixmemalign.yml20
-rw-r--r--spec/build/testsuites/libtests/putenvtest.yml19
-rw-r--r--spec/build/testsuites/libtests/pwdgrp01.yml19
-rw-r--r--spec/build/testsuites/libtests/pwdgrp02.yml19
-rw-r--r--spec/build/testsuites/libtests/rbheap01.yml19
-rw-r--r--spec/build/testsuites/libtests/read.yml20
-rw-r--r--spec/build/testsuites/libtests/readv.yml20
-rw-r--r--spec/build/testsuites/libtests/realloc.yml20
-rw-r--r--spec/build/testsuites/libtests/record01.yml20
-rw-r--r--spec/build/testsuites/libtests/record02.yml20
-rw-r--r--spec/build/testsuites/libtests/rtmonuse.yml21
-rw-r--r--spec/build/testsuites/libtests/setjmp.yml20
-rw-r--r--spec/build/testsuites/libtests/sha.yml19
-rw-r--r--spec/build/testsuites/libtests/shell01.yml19
-rw-r--r--spec/build/testsuites/libtests/sigaddset.yml20
-rw-r--r--spec/build/testsuites/libtests/sigdelset.yml20
-rw-r--r--spec/build/testsuites/libtests/sigemptyset.yml20
-rw-r--r--spec/build/testsuites/libtests/sigfillset.yml20
-rw-r--r--spec/build/testsuites/libtests/sigismember.yml20
-rw-r--r--spec/build/testsuites/libtests/sigprocmask.yml20
-rw-r--r--spec/build/testsuites/libtests/sparsedisk01.yml19
-rw-r--r--spec/build/testsuites/libtests/spi01.yml19
-rw-r--r--spec/build/testsuites/libtests/stackchk.yml21
-rw-r--r--spec/build/testsuites/libtests/stackchk01.yml19
-rw-r--r--spec/build/testsuites/libtests/stat.yml20
-rw-r--r--spec/build/testsuites/libtests/stringto01.yml19
-rw-r--r--spec/build/testsuites/libtests/syscall01.yml21
-rw-r--r--spec/build/testsuites/libtests/tar01.yml35
-rw-r--r--spec/build/testsuites/libtests/tar02.yml29
-rw-r--r--spec/build/testsuites/libtests/tar03.yml19
-rw-r--r--spec/build/testsuites/libtests/telnetd01.yml22
-rw-r--r--spec/build/testsuites/libtests/termios.yml19
-rw-r--r--spec/build/testsuites/libtests/termios01.yml20
-rw-r--r--spec/build/testsuites/libtests/termios02.yml19
-rw-r--r--spec/build/testsuites/libtests/termios03.yml20
-rw-r--r--spec/build/testsuites/libtests/termios04.yml20
-rw-r--r--spec/build/testsuites/libtests/termios05.yml20
-rw-r--r--spec/build/testsuites/libtests/termios06.yml21
-rw-r--r--spec/build/testsuites/libtests/termios07.yml20
-rw-r--r--spec/build/testsuites/libtests/termios08.yml20
-rw-r--r--spec/build/testsuites/libtests/termios09.yml19
-rw-r--r--spec/build/testsuites/libtests/termios10.yml21
-rw-r--r--spec/build/testsuites/libtests/termios11.yml21
-rw-r--r--spec/build/testsuites/libtests/top.yml22
-rw-r--r--spec/build/testsuites/libtests/ttest01.yml36
-rw-r--r--spec/build/testsuites/libtests/ttest02.yml19
-rw-r--r--spec/build/testsuites/libtests/tztest.yml19
-rw-r--r--spec/build/testsuites/libtests/uid01.yml22
-rw-r--r--spec/build/testsuites/libtests/unlink.yml20
-rw-r--r--spec/build/testsuites/libtests/utf8proc01.yml19
-rw-r--r--spec/build/testsuites/libtests/vfork.yml20
-rw-r--r--spec/build/testsuites/libtests/wait.yml20
-rw-r--r--spec/build/testsuites/libtests/waitpid.yml20
-rw-r--r--spec/build/testsuites/libtests/write.yml20
-rw-r--r--spec/build/testsuites/libtests/writev.yml20
-rw-r--r--spec/build/testsuites/mptests/grp.yml70
-rw-r--r--spec/build/testsuites/mptests/mp01.yml21
-rw-r--r--spec/build/testsuites/mptests/mp01node1.yml21
-rw-r--r--spec/build/testsuites/mptests/mp01node2.yml21
-rw-r--r--spec/build/testsuites/mptests/mp03.yml22
-rw-r--r--spec/build/testsuites/mptests/mp03node1.yml22
-rw-r--r--spec/build/testsuites/mptests/mp03node2.yml22
-rw-r--r--spec/build/testsuites/mptests/mp04.yml21
-rw-r--r--spec/build/testsuites/mptests/mp04node1.yml21
-rw-r--r--spec/build/testsuites/mptests/mp04node2.yml21
-rw-r--r--spec/build/testsuites/mptests/mp05.yml22
-rw-r--r--spec/build/testsuites/mptests/mp05node1.yml22
-rw-r--r--spec/build/testsuites/mptests/mp05node2.yml22
-rw-r--r--spec/build/testsuites/mptests/mp06.yml21
-rw-r--r--spec/build/testsuites/mptests/mp06node1.yml21
-rw-r--r--spec/build/testsuites/mptests/mp06node2.yml21
-rw-r--r--spec/build/testsuites/mptests/mp07.yml21
-rw-r--r--spec/build/testsuites/mptests/mp07node1.yml21
-rw-r--r--spec/build/testsuites/mptests/mp07node2.yml21
-rw-r--r--spec/build/testsuites/mptests/mp08.yml21
-rw-r--r--spec/build/testsuites/mptests/mp08node1.yml21
-rw-r--r--spec/build/testsuites/mptests/mp08node2.yml21
-rw-r--r--spec/build/testsuites/mptests/mp09.yml23
-rw-r--r--spec/build/testsuites/mptests/mp09node1.yml23
-rw-r--r--spec/build/testsuites/mptests/mp09node2.yml23
-rw-r--r--spec/build/testsuites/mptests/mp10.yml23
-rw-r--r--spec/build/testsuites/mptests/mp10node1.yml23
-rw-r--r--spec/build/testsuites/mptests/mp10node2.yml23
-rw-r--r--spec/build/testsuites/mptests/mp11.yml20
-rw-r--r--spec/build/testsuites/mptests/mp11node1.yml20
-rw-r--r--spec/build/testsuites/mptests/mp11node2.yml20
-rw-r--r--spec/build/testsuites/mptests/mp12.yml20
-rw-r--r--spec/build/testsuites/mptests/mp12node1.yml20
-rw-r--r--spec/build/testsuites/mptests/mp12node2.yml20
-rw-r--r--spec/build/testsuites/mptests/mp13.yml22
-rw-r--r--spec/build/testsuites/mptests/mp13node1.yml22
-rw-r--r--spec/build/testsuites/mptests/mp13node2.yml22
-rw-r--r--spec/build/testsuites/mptests/mp14.yml27
-rw-r--r--spec/build/testsuites/mptests/mp14node1.yml27
-rw-r--r--spec/build/testsuites/mptests/mp14node2.yml27
-rw-r--r--spec/build/testsuites/optada.yml15
-rw-r--r--spec/build/testsuites/optall.yml15
-rw-r--r--spec/build/testsuites/optbenchmarks.yml15
-rw-r--r--spec/build/testsuites/optfs.yml15
-rw-r--r--spec/build/testsuites/optlib.yml15
-rw-r--r--spec/build/testsuites/optmp.yml15
-rw-r--r--spec/build/testsuites/optpsx.yml15
-rw-r--r--spec/build/testsuites/optpsxtm.yml15
-rw-r--r--spec/build/testsuites/optrhs.yml15
-rw-r--r--spec/build/testsuites/optsamples.yml15
-rw-r--r--spec/build/testsuites/optsmp.yml15
-rw-r--r--spec/build/testsuites/optsp.yml15
-rw-r--r--spec/build/testsuites/opttm.yml15
-rw-r--r--spec/build/testsuites/psxtests/grp.yml235
-rw-r--r--spec/build/testsuites/psxtests/libpsxhdrs.yml928
-rw-r--r--spec/build/testsuites/psxtests/psx01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psx02.yml21
-rw-r--r--spec/build/testsuites/psxtests/psx03.yml21
-rw-r--r--spec/build/testsuites/psxtests/psx04.yml23
-rw-r--r--spec/build/testsuites/psxtests/psx05.yml22
-rw-r--r--spec/build/testsuites/psxtests/psx06.yml21
-rw-r--r--spec/build/testsuites/psxtests/psx07.yml20
-rw-r--r--spec/build/testsuites/psxtests/psx08.yml22
-rw-r--r--spec/build/testsuites/psxtests/psx09.yml20
-rw-r--r--spec/build/testsuites/psxtests/psx10.yml22
-rw-r--r--spec/build/testsuites/psxtests/psx11.yml20
-rw-r--r--spec/build/testsuites/psxtests/psx12.yml20
-rw-r--r--spec/build/testsuites/psxtests/psx13.yml20
-rw-r--r--spec/build/testsuites/psxtests/psx14.yml19
-rw-r--r--spec/build/testsuites/psxtests/psx15.yml19
-rw-r--r--spec/build/testsuites/psxtests/psx16.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxaio01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxaio02.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxaio03.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxalarm01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxautoinit01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxautoinit02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxbarrier01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxcancel.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxcancel01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxchroot01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxclassic01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxcleanup.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxcleanup01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxcleanup02.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxclock.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxclock01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxclockrealtime01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxconcurrency01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxcond01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxcond02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxconfig01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxdevctl01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxeintrjoin.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxenosys.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxfatal01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxfatal02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxfatalsupport.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxfchx01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxfenv01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxfile01.yml23
-rw-r--r--spec/build/testsuites/psxtests/psxfile02.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxfilelock01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxgetattrnp01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxgetrusage01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxglobalcon01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxglobalcon02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxhdrs.yml18
-rw-r--r--spec/build/testsuites/psxtests/psxid01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psximfs01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psximfs02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxintrcritical01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxinttypes01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxitimer.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxkey01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxkey02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxkey03.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxkey04.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxkey05.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxkey06.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxkey07.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxkey08.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxkey09.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxkey10.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxmmap01.yml21
-rw-r--r--spec/build/testsuites/psxtests/psxmount.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxmsgq01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxmsgq02.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxmsgq03.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxmsgq04.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxmutexattr01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxndbm01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxobj01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxonce01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxpasswd01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxpasswd02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxpipe01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxrdwrv.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxreaddir.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxrwlock01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxsem01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxshm01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxshm02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxsignal01.yml21
-rw-r--r--spec/build/testsuites/psxtests/psxsignal02.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxsignal03.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxsignal04.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxsignal05.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxsignal06.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxsignal07.yml21
-rw-r--r--spec/build/testsuites/psxtests/psxsignal08.yml21
-rw-r--r--spec/build/testsuites/psxtests/psxspin01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxstack01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxstack02.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxstat.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxstrsignal01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxsysconf.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxthreadname01.yml19
-rw-r--r--spec/build/testsuites/psxtests/psxtime.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxtimer01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxtimer02.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxtimes01.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxualarm.yml20
-rw-r--r--spec/build/testsuites/psxtests/psxusleep.yml19
-rw-r--r--spec/build/testsuites/psxtmtests/grp.yml131
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmbarrier01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmbarrier02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmbarrier03.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmbarrier04.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmbarrierattr01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcleanup01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmclocknanosleep01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmclocknanosleep02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmclocknanosleep03.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond03.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond04.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond05.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond06.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond07.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond08.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond09.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmcond10.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmkey01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmkey02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmq01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmqrcvblock01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmqrcvblock02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmutex01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmutex02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmutex03.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmutex04.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmutex05.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmutex06.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmutex07.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmmutexattr01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmnanosleep01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmnanosleep02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmonce01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmrwlock01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmrwlock02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmrwlock03.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmrwlock04.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmrwlock05.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmrwlock06.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmrwlock07.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmsem01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmsem02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmsem03.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmsem04.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmsem05.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmsleep01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmsleep02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmthread01.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmthread02.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmthread03.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmthread04.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmthread05.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmthread06.yml21
-rw-r--r--spec/build/testsuites/psxtmtests/psxtmthreadattr01.yml21
-rw-r--r--spec/build/testsuites/rhealstone/grp.yml31
-rw-r--r--spec/build/testsuites/rhealstone/rhdeadlockbrk.yml19
-rw-r--r--spec/build/testsuites/rhealstone/rhilatency.yml19
-rw-r--r--spec/build/testsuites/rhealstone/rhmlatency.yml19
-rw-r--r--spec/build/testsuites/rhealstone/rhsemshuffle.yml19
-rw-r--r--spec/build/testsuites/rhealstone/rhtaskpreempt.yml19
-rw-r--r--spec/build/testsuites/rhealstone/rhtaskswitch.yml19
-rw-r--r--spec/build/testsuites/samples/basempnode1.yml21
-rw-r--r--spec/build/testsuites/samples/basempnode2.yml21
-rw-r--r--spec/build/testsuites/samples/basesp.yml20
-rw-r--r--spec/build/testsuites/samples/capture.yml20
-rw-r--r--spec/build/testsuites/samples/cdtest.yml20
-rw-r--r--spec/build/testsuites/samples/fileio.yml19
-rw-r--r--spec/build/testsuites/samples/grp.yml48
-rw-r--r--spec/build/testsuites/samples/hello.yml19
-rw-r--r--spec/build/testsuites/samples/iostream.yml19
-rw-r--r--spec/build/testsuites/samples/loopback.yml21
-rw-r--r--spec/build/testsuites/samples/minimum.yml19
-rw-r--r--spec/build/testsuites/samples/nsecs.yml20
-rw-r--r--spec/build/testsuites/samples/paranoia.yml21
-rw-r--r--spec/build/testsuites/samples/pppd.yml25
-rw-r--r--spec/build/testsuites/samples/ticker.yml20
-rw-r--r--spec/build/testsuites/samples/unlimited.yml22
-rw-r--r--spec/build/testsuites/smptests/grp.yml139
-rw-r--r--spec/build/testsuites/smptests/smp01.yml22
-rw-r--r--spec/build/testsuites/smptests/smp02.yml22
-rw-r--r--spec/build/testsuites/smptests/smp03.yml22
-rw-r--r--spec/build/testsuites/smptests/smp05.yml21
-rw-r--r--spec/build/testsuites/smptests/smp07.yml21
-rw-r--r--spec/build/testsuites/smptests/smp08.yml22
-rw-r--r--spec/build/testsuites/smptests/smp09.yml21
-rw-r--r--spec/build/testsuites/smptests/smpaffinity01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpatomic01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpcache01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpcapture01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpcapture02.yml20
-rw-r--r--spec/build/testsuites/smptests/smpclock01.yml21
-rw-r--r--spec/build/testsuites/smptests/smpfatal01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpfatal02.yml20
-rw-r--r--spec/build/testsuites/smptests/smpfatal03.yml20
-rw-r--r--spec/build/testsuites/smptests/smpfatal04.yml20
-rw-r--r--spec/build/testsuites/smptests/smpfatal05.yml20
-rw-r--r--spec/build/testsuites/smptests/smpfatal06.yml20
-rw-r--r--spec/build/testsuites/smptests/smpfatal08.yml20
-rw-r--r--spec/build/testsuites/smptests/smpfatal09.yml20
-rw-r--r--spec/build/testsuites/smptests/smpipi01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpload01.yml20
-rw-r--r--spec/build/testsuites/smptests/smplock01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpmigration01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpmigration02.yml20
-rw-r--r--spec/build/testsuites/smptests/smpmrsp01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpmulticast01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpmutex01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpmutex02.yml20
-rw-r--r--spec/build/testsuites/smptests/smpopenmp01.yml22
-rw-r--r--spec/build/testsuites/smptests/smppsxaffinity01.yml20
-rw-r--r--spec/build/testsuites/smptests/smppsxaffinity02.yml20
-rw-r--r--spec/build/testsuites/smptests/smppsxmutex01.yml20
-rw-r--r--spec/build/testsuites/smptests/smppsxsignal01.yml22
-rw-r--r--spec/build/testsuites/smptests/smpschedaffinity01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschedaffinity02.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschedaffinity03.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschedaffinity04.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschedaffinity05.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschededf01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschededf02.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschededf03.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschededf04.yml20
-rw-r--r--spec/build/testsuites/smptests/smpschedsem01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpscheduler01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpscheduler02.yml20
-rw-r--r--spec/build/testsuites/smptests/smpscheduler03.yml21
-rw-r--r--spec/build/testsuites/smptests/smpscheduler04.yml20
-rw-r--r--spec/build/testsuites/smptests/smpscheduler05.yml21
-rw-r--r--spec/build/testsuites/smptests/smpscheduler06.yml21
-rw-r--r--spec/build/testsuites/smptests/smpscheduler07.yml21
-rw-r--r--spec/build/testsuites/smptests/smpsignal01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpstrongapa01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpswitchextension01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpthreadlife01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpthreadpin01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpunsupported01.yml20
-rw-r--r--spec/build/testsuites/smptests/smpwakeafter01.yml20
-rw-r--r--spec/build/testsuites/sptests/grp.yml450
-rw-r--r--spec/build/testsuites/sptests/sp01.yml20
-rw-r--r--spec/build/testsuites/sptests/sp02.yml23
-rw-r--r--spec/build/testsuites/sptests/sp03.yml21
-rw-r--r--spec/build/testsuites/sptests/sp04.yml23
-rw-r--r--spec/build/testsuites/sptests/sp05.yml22
-rw-r--r--spec/build/testsuites/sptests/sp06.yml22
-rw-r--r--spec/build/testsuites/sptests/sp07.yml28
-rw-r--r--spec/build/testsuites/sptests/sp08.yml19
-rw-r--r--spec/build/testsuites/sptests/sp11.yml22
-rw-r--r--spec/build/testsuites/sptests/sp12.yml26
-rw-r--r--spec/build/testsuites/sptests/sp13.yml24
-rw-r--r--spec/build/testsuites/sptests/sp14.yml22
-rw-r--r--spec/build/testsuites/sptests/sp15.yml20
-rw-r--r--spec/build/testsuites/sptests/sp16.yml24
-rw-r--r--spec/build/testsuites/sptests/sp17.yml22
-rw-r--r--spec/build/testsuites/sptests/sp18.yml19
-rw-r--r--spec/build/testsuites/sptests/sp19.yml22
-rw-r--r--spec/build/testsuites/sptests/sp20.yml21
-rw-r--r--spec/build/testsuites/sptests/sp2038.yml19
-rw-r--r--spec/build/testsuites/sptests/sp21.yml19
-rw-r--r--spec/build/testsuites/sptests/sp22.yml22
-rw-r--r--spec/build/testsuites/sptests/sp23.yml20
-rw-r--r--spec/build/testsuites/sptests/sp24.yml21
-rw-r--r--spec/build/testsuites/sptests/sp25.yml20
-rw-r--r--spec/build/testsuites/sptests/sp26.yml20
-rw-r--r--spec/build/testsuites/sptests/sp27.yml19
-rw-r--r--spec/build/testsuites/sptests/sp27a.yml19
-rw-r--r--spec/build/testsuites/sptests/sp29.yml20
-rw-r--r--spec/build/testsuites/sptests/sp30.yml21
-rw-r--r--spec/build/testsuites/sptests/sp31.yml22
-rw-r--r--spec/build/testsuites/sptests/sp32.yml19
-rw-r--r--spec/build/testsuites/sptests/sp33.yml19
-rw-r--r--spec/build/testsuites/sptests/sp34.yml19
-rw-r--r--spec/build/testsuites/sptests/sp35.yml19
-rw-r--r--spec/build/testsuites/sptests/sp36.yml18
-rw-r--r--spec/build/testsuites/sptests/sp37.yml19
-rw-r--r--spec/build/testsuites/sptests/sp38.yml19
-rw-r--r--spec/build/testsuites/sptests/sp40.yml19
-rw-r--r--spec/build/testsuites/sptests/sp41.yml19
-rw-r--r--spec/build/testsuites/sptests/sp42.yml19
-rw-r--r--spec/build/testsuites/sptests/sp43.yml19
-rw-r--r--spec/build/testsuites/sptests/sp44.yml19
-rw-r--r--spec/build/testsuites/sptests/sp45.yml19
-rw-r--r--spec/build/testsuites/sptests/sp46.yml19
-rw-r--r--spec/build/testsuites/sptests/sp47.yml19
-rw-r--r--spec/build/testsuites/sptests/sp48.yml19
-rw-r--r--spec/build/testsuites/sptests/sp49.yml19
-rw-r--r--spec/build/testsuites/sptests/sp50.yml19
-rw-r--r--spec/build/testsuites/sptests/sp51.yml19
-rw-r--r--spec/build/testsuites/sptests/sp52.yml19
-rw-r--r--spec/build/testsuites/sptests/sp53.yml19
-rw-r--r--spec/build/testsuites/sptests/sp54.yml19
-rw-r--r--spec/build/testsuites/sptests/sp55.yml19
-rw-r--r--spec/build/testsuites/sptests/sp56.yml19
-rw-r--r--spec/build/testsuites/sptests/sp57.yml19
-rw-r--r--spec/build/testsuites/sptests/sp58.yml19
-rw-r--r--spec/build/testsuites/sptests/sp59.yml19
-rw-r--r--spec/build/testsuites/sptests/sp60.yml19
-rw-r--r--spec/build/testsuites/sptests/sp62.yml19
-rw-r--r--spec/build/testsuites/sptests/sp63.yml19
-rw-r--r--spec/build/testsuites/sptests/sp64.yml19
-rw-r--r--spec/build/testsuites/sptests/sp65.yml19
-rw-r--r--spec/build/testsuites/sptests/sp66.yml19
-rw-r--r--spec/build/testsuites/sptests/sp67.yml19
-rw-r--r--spec/build/testsuites/sptests/sp68.yml19
-rw-r--r--spec/build/testsuites/sptests/sp69.yml20
-rw-r--r--spec/build/testsuites/sptests/sp70.yml19
-rw-r--r--spec/build/testsuites/sptests/sp71.yml19
-rw-r--r--spec/build/testsuites/sptests/sp72.yml19
-rw-r--r--spec/build/testsuites/sptests/sp73.yml19
-rw-r--r--spec/build/testsuites/sptests/sp74.yml19
-rw-r--r--spec/build/testsuites/sptests/sp75.yml19
-rw-r--r--spec/build/testsuites/sptests/sp76.yml19
-rw-r--r--spec/build/testsuites/sptests/sp77.yml19
-rw-r--r--spec/build/testsuites/sptests/spassoc01.yml19
-rw-r--r--spec/build/testsuites/sptests/spatomic01.yml19
-rw-r--r--spec/build/testsuites/sptests/spcache01.yml19
-rw-r--r--spec/build/testsuites/sptests/spcbssched01.yml20
-rw-r--r--spec/build/testsuites/sptests/spcbssched02.yml20
-rw-r--r--spec/build/testsuites/sptests/spcbssched03.yml21
-rw-r--r--spec/build/testsuites/sptests/spchain.yml19
-rw-r--r--spec/build/testsuites/sptests/spclockerr01.yml20
-rw-r--r--spec/build/testsuites/sptests/spclockerr02.yml19
-rw-r--r--spec/build/testsuites/sptests/spclocktodhook01.yml19
-rw-r--r--spec/build/testsuites/sptests/spconfig01.yml19
-rw-r--r--spec/build/testsuites/sptests/spconfig02.yml19
-rw-r--r--spec/build/testsuites/sptests/spconsole01.yml20
-rw-r--r--spec/build/testsuites/sptests/spcontext01.yml19
-rw-r--r--spec/build/testsuites/sptests/spcoverage.yml19
-rw-r--r--spec/build/testsuites/sptests/spcpucounter01.yml19
-rw-r--r--spec/build/testsuites/sptests/spcpuset01.yml20
-rw-r--r--spec/build/testsuites/sptests/spcxx01.yml20
-rw-r--r--spec/build/testsuites/sptests/spedfsched01.yml20
-rw-r--r--spec/build/testsuites/sptests/spedfsched02.yml21
-rw-r--r--spec/build/testsuites/sptests/spedfsched03.yml21
-rw-r--r--spec/build/testsuites/sptests/spedfsched04.yml20
-rw-r--r--spec/build/testsuites/sptests/sperror01.yml19
-rw-r--r--spec/build/testsuites/sptests/sperror02.yml19
-rw-r--r--spec/build/testsuites/sptests/sperror03.yml19
-rw-r--r--spec/build/testsuites/sptests/speventerr03.yml19
-rw-r--r--spec/build/testsuites/sptests/speventsystem01.yml19
-rw-r--r--spec/build/testsuites/sptests/speventtransient01.yml19
-rw-r--r--spec/build/testsuites/sptests/spextensions01.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal01.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal02.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal03.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal04.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal05.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal06.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal07.yml18
-rw-r--r--spec/build/testsuites/sptests/spfatal09.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal10.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal11.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal12.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal13.yml18
-rw-r--r--spec/build/testsuites/sptests/spfatal14.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal15.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal16.yml18
-rw-r--r--spec/build/testsuites/sptests/spfatal17.yml18
-rw-r--r--spec/build/testsuites/sptests/spfatal18.yml18
-rw-r--r--spec/build/testsuites/sptests/spfatal19.yml18
-rw-r--r--spec/build/testsuites/sptests/spfatal20.yml18
-rw-r--r--spec/build/testsuites/sptests/spfatal24.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal25.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal26.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal28.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal29.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal30.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal31.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatal32.yml19
-rw-r--r--spec/build/testsuites/sptests/spfatalsupport.yml19
-rw-r--r--spec/build/testsuites/sptests/spfifo01.yml19
-rw-r--r--spec/build/testsuites/sptests/spfifo02.yml19
-rw-r--r--spec/build/testsuites/sptests/spfifo03.yml19
-rw-r--r--spec/build/testsuites/sptests/spfifo04.yml19
-rw-r--r--spec/build/testsuites/sptests/spfifo05.yml19
-rw-r--r--spec/build/testsuites/sptests/spfreechain01.yml19
-rw-r--r--spec/build/testsuites/sptests/spglobalcon01.yml19
-rw-r--r--spec/build/testsuites/sptests/spglobalcon02.yml19
-rw-r--r--spec/build/testsuites/sptests/spheapprot.yml19
-rw-r--r--spec/build/testsuites/sptests/spinternalerror01.yml19
-rw-r--r--spec/build/testsuites/sptests/spinternalerror02.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical01.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical02.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical03.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical04.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical05.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical08.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical09.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical10.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical11.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical12.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical13.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical14.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical15.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical16.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical18.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical20.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical21.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical22.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical23.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrcritical24.yml19
-rw-r--r--spec/build/testsuites/sptests/spintrerr01.yml20
-rw-r--r--spec/build/testsuites/sptests/splinkersets01.yml22
-rw-r--r--spec/build/testsuites/sptests/spmisc01.yml20
-rw-r--r--spec/build/testsuites/sptests/spmkdir.yml19
-rw-r--r--spec/build/testsuites/sptests/spmountmgr01.yml19
-rw-r--r--spec/build/testsuites/sptests/spmrsp01.yml19
-rw-r--r--spec/build/testsuites/sptests/spmsgqerr01.yml19
-rw-r--r--spec/build/testsuites/sptests/spmsgqerr02.yml20
-rw-r--r--spec/build/testsuites/sptests/spmutex01.yml19
-rw-r--r--spec/build/testsuites/sptests/spnsext01.yml19
-rw-r--r--spec/build/testsuites/sptests/spobjgetnext.yml19
-rw-r--r--spec/build/testsuites/sptests/sppagesize.yml19
-rw-r--r--spec/build/testsuites/sptests/sppartitionerr01.yml19
-rw-r--r--spec/build/testsuites/sptests/sppercpudata01.yml20
-rw-r--r--spec/build/testsuites/sptests/spporterr01.yml19
-rw-r--r--spec/build/testsuites/sptests/spprintk.yml19
-rw-r--r--spec/build/testsuites/sptests/spprivenv01.yml19
-rw-r--r--spec/build/testsuites/sptests/spprofiling01.yml19
-rw-r--r--spec/build/testsuites/sptests/spqreslib.yml20
-rw-r--r--spec/build/testsuites/sptests/spratemonerr01.yml21
-rw-r--r--spec/build/testsuites/sptests/sprbtree01.yml19
-rw-r--r--spec/build/testsuites/sptests/spregionerr01.yml19
-rw-r--r--spec/build/testsuites/sptests/sprmsched01.yml20
-rw-r--r--spec/build/testsuites/sptests/sprmsched02.yml20
-rw-r--r--spec/build/testsuites/sptests/spscheduler01.yml19
-rw-r--r--spec/build/testsuites/sptests/spsem01.yml19
-rw-r--r--spec/build/testsuites/sptests/spsem02.yml19
-rw-r--r--spec/build/testsuites/sptests/spsem03.yml19
-rw-r--r--spec/build/testsuites/sptests/spsemerr01.yml19
-rw-r--r--spec/build/testsuites/sptests/spsemerr02.yml20
-rw-r--r--spec/build/testsuites/sptests/spsignalerr01.yml20
-rw-r--r--spec/build/testsuites/sptests/spsimplesched01.yml19
-rw-r--r--spec/build/testsuites/sptests/spsimplesched02.yml19
-rw-r--r--spec/build/testsuites/sptests/spsimplesched03.yml19
-rw-r--r--spec/build/testsuites/sptests/spsize.yml21
-rw-r--r--spec/build/testsuites/sptests/spstdthreads01.yml19
-rw-r--r--spec/build/testsuites/sptests/spstkalloc.yml19
-rw-r--r--spec/build/testsuites/sptests/spstkalloc02.yml19
-rw-r--r--spec/build/testsuites/sptests/spsysinit01.yml19
-rw-r--r--spec/build/testsuites/sptests/spsyslock01.yml19
-rw-r--r--spec/build/testsuites/sptests/sptaskerr01.yml20
-rw-r--r--spec/build/testsuites/sptests/sptaskerr02.yml19
-rw-r--r--spec/build/testsuites/sptests/sptaskerr03.yml19
-rw-r--r--spec/build/testsuites/sptests/sptaskerr04.yml20
-rw-r--r--spec/build/testsuites/sptests/sptasknopreempt01.yml19
-rw-r--r--spec/build/testsuites/sptests/spthread01.yml19
-rw-r--r--spec/build/testsuites/sptests/spthreadlife01.yml19
-rw-r--r--spec/build/testsuites/sptests/spthreadq01.yml19
-rw-r--r--spec/build/testsuites/sptests/sptimecounter01.yml19
-rw-r--r--spec/build/testsuites/sptests/sptimecounter02.yml20
-rw-r--r--spec/build/testsuites/sptests/sptimecounter03.yml19
-rw-r--r--spec/build/testsuites/sptests/sptimecounter04.yml19
-rw-r--r--spec/build/testsuites/sptests/sptimererr01.yml19
-rw-r--r--spec/build/testsuites/sptests/sptimererr02.yml19
-rw-r--r--spec/build/testsuites/sptests/sptimerserver01.yml19
-rw-r--r--spec/build/testsuites/sptests/sptimespec01.yml19
-rw-r--r--spec/build/testsuites/sptests/sptls01.yml19
-rw-r--r--spec/build/testsuites/sptests/sptls02.yml20
-rw-r--r--spec/build/testsuites/sptests/sptls03.yml19
-rw-r--r--spec/build/testsuites/sptests/sptls04.yml19
-rw-r--r--spec/build/testsuites/sptests/spversion01.yml19
-rw-r--r--spec/build/testsuites/sptests/spwatchdog.yml22
-rw-r--r--spec/build/testsuites/sptests/spwkspace.yml19
-rw-r--r--spec/build/testsuites/tmtests/grp.yml101
-rw-r--r--spec/build/testsuites/tmtests/tm01.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm02.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm03.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm04.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm05.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm06.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm07.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm08.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm09.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm10.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm11.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm12.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm13.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm14.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm15.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm16.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm17.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm18.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm19.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm20.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm21.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm22.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm23.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm24.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm25.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm26.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm27.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm28.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm29.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm30.yml21
-rw-r--r--spec/build/testsuites/tmtests/tm31.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm32.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm33.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm34.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm35.yml20
-rw-r--r--spec/build/testsuites/tmtests/tm36.yml20
-rw-r--r--spec/build/testsuites/tmtests/tmck.yml20
-rw-r--r--spec/build/testsuites/tmtests/tmcontext01.yml19
-rw-r--r--spec/build/testsuites/tmtests/tmfine01.yml19
-rw-r--r--spec/build/testsuites/tmtests/tmonetoone.yml19
-rw-r--r--spec/build/testsuites/tmtests/tmtimer01.yml19
-rw-r--r--testsuites/build/.doorstop.skip0
-rw-r--r--testsuites/build/bad-integer.ini2
-rwxr-xr-xtestsuites/build/bin/fake-rtems5-ar31
-rwxr-xr-xtestsuites/build/bin/fake-rtems5-gcc43
-rwxr-xr-xtestsuites/build/bin/fake-rtems5-ld31
-rw-r--r--testsuites/build/fake-good.ini1
-rw-r--r--testsuites/build/fake-inherit-good.ini2
-rw-r--r--testsuites/build/fake-inherit-loop.ini4
-rw-r--r--testsuites/build/fake-inherit-none.ini2
-rw-r--r--testsuites/build/fake-none.ini1
-rw-r--r--testsuites/build/good-integer.ini2
-rw-r--r--testsuites/build/not-power-of-two.ini2
-rw-r--r--testsuites/build/spec/bsp.yml16
-rw-r--r--testsuites/build/spec/config-file.yml19
-rw-r--r--testsuites/build/spec/config-header.yml18
-rw-r--r--testsuites/build/spec/gcc.yml41
-rw-r--r--testsuites/build/spec/integer-option.yml25
-rw-r--r--testsuites/build/spec/string-option.yml24
-rw-r--r--testsuites/build/spec/top-level-group.yml17
-rw-r--r--testsuites/build/spec2/config-file.yml16
-rw-r--r--testsuites/build/spec2/gcc.yml41
-rw-r--r--testsuites/build/spec2/top-level-group.yml16
-rwxr-xr-xtestsuites/build/test.py200
-rw-r--r--testsuites/build/too-big.ini2
-rw-r--r--testsuites/build/too-small.ini2
-rwxr-xr-xwaf173
-rwxr-xr-xwscript1531
-rw-r--r--yaml/LICENSE20
-rw-r--r--yaml/PKG-INFO38
-rw-r--r--yaml/lib/yaml/__init__.py431
-rw-r--r--yaml/lib/yaml/composer.py139
-rw-r--r--yaml/lib/yaml/constructor.py760
-rw-r--r--yaml/lib/yaml/cyaml.py101
-rw-r--r--yaml/lib/yaml/dumper.py62
-rw-r--r--yaml/lib/yaml/emitter.py1144
-rw-r--r--yaml/lib/yaml/error.py75
-rw-r--r--yaml/lib/yaml/events.py86
-rw-r--r--yaml/lib/yaml/loader.py63
-rw-r--r--yaml/lib/yaml/nodes.py49
-rw-r--r--yaml/lib/yaml/parser.py589
-rw-r--r--yaml/lib/yaml/reader.py188
-rw-r--r--yaml/lib/yaml/representer.py489
-rw-r--r--yaml/lib/yaml/resolver.py227
-rw-r--r--yaml/lib/yaml/scanner.py1444
-rw-r--r--yaml/lib/yaml/serializer.py111
-rw-r--r--yaml/lib/yaml/tokens.py104
-rw-r--r--yaml/lib3/yaml/__init__.py427
-rw-r--r--yaml/lib3/yaml/composer.py139
-rw-r--r--yaml/lib3/yaml/constructor.py748
-rw-r--r--yaml/lib3/yaml/cyaml.py101
-rw-r--r--yaml/lib3/yaml/dumper.py62
-rw-r--r--yaml/lib3/yaml/emitter.py1137
-rw-r--r--yaml/lib3/yaml/error.py75
-rw-r--r--yaml/lib3/yaml/events.py86
-rw-r--r--yaml/lib3/yaml/loader.py63
-rw-r--r--yaml/lib3/yaml/nodes.py49
-rw-r--r--yaml/lib3/yaml/parser.py589
-rw-r--r--yaml/lib3/yaml/reader.py185
-rw-r--r--yaml/lib3/yaml/representer.py389
-rw-r--r--yaml/lib3/yaml/resolver.py227
-rw-r--r--yaml/lib3/yaml/scanner.py1435
-rw-r--r--yaml/lib3/yaml/serializer.py111
-rw-r--r--yaml/lib3/yaml/tokens.py104
2071 files changed, 65911 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index e4836e446e..d7ca74b338 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,13 @@
aclocal.m4
autom4te.cache
-configure
+/build
config.h.in
-Makefile.in
+configure
doc
+.lock*
+Makefile.in
+*.pyc
+/testsuites/build/bin/fake-rtems5-g++
+/testsuites/build/build
+/testsuites/build/wscript
+.waf*
diff --git a/bsps/arm/csb337/start/linkcmds.kit637_v6 b/bsps/arm/csb337/start/linkcmds.kit637_v6
new file mode 100644
index 0000000000..91a34b7229
--- /dev/null
+++ b/bsps/arm/csb337/start/linkcmds.kit637_v6
@@ -0,0 +1,27 @@
+MEMORY {
+ SDRAM : ORIGIN = 0x20100000, LENGTH = 63M - 16k
+ SDRAM_MMU : ORIGIN = 0x23ffc000, LENGTH = 16k
+ SRAM : ORIGIN = 0x00200000, LENGTH = 16k
+}
+
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
+REGION_ALIAS ("REGION_NOCACHE", SDRAM);
+REGION_ALIAS ("REGION_NOCACHE_LOAD", SDRAM);
+
+_ttbl_base = ORIGIN (SDRAM_MMU);
+
+INCLUDE linkcmds.armv4
diff --git a/gccdeps.py b/gccdeps.py
new file mode 100644
index 0000000000..1fc9373489
--- /dev/null
+++ b/gccdeps.py
@@ -0,0 +1,238 @@
+#!/usr/bin/env python
+# encoding: utf-8
+# Thomas Nagy, 2008-2010 (ita)
+
+"""
+Execute the tasks with gcc -MD, read the dependencies from the .d file
+and prepare the dependency calculation for the next run.
+This affects the cxx class, so make sure to load Qt5 after this tool.
+
+Usage::
+
+ def options(opt):
+ opt.load('compiler_cxx')
+ def configure(conf):
+ conf.load('compiler_cxx gccdeps')
+"""
+
+import os, re, threading
+from waflib import Task, Logs, Utils, Errors
+from waflib.Tools import c_preproc
+from waflib.TaskGen import before_method, feature
+
+lock = threading.Lock()
+
+gccdeps_flags = ['-MD']
+if not c_preproc.go_absolute:
+ gccdeps_flags = ['-MMD']
+
+# Third-party tools are allowed to add extra names in here with append()
+supported_compilers = ['gas', 'gcc', 'icc', 'clang']
+
+def scan(self):
+ if not self.__class__.__name__ in self.env.ENABLE_GCCDEPS:
+ return super(self.derived_gccdeps, self).scan()
+ nodes = self.generator.bld.node_deps.get(self.uid(), [])
+ names = []
+ return (nodes, names)
+
+re_o = re.compile(r"\.o$")
+re_splitter = re.compile(r'(?<!\\)\s+') # split by space, except when spaces are escaped
+
+def remove_makefile_rule_lhs(line):
+ # Splitting on a plain colon would accidentally match inside a
+ # Windows absolute-path filename, so we must search for a colon
+ # followed by whitespace to find the divider between LHS and RHS
+ # of the Makefile rule.
+ rulesep = ': '
+
+ sep_idx = line.find(rulesep)
+ if sep_idx >= 0:
+ return line[sep_idx + 2:]
+ else:
+ return line
+
+def path_to_node(base_node, path, cached_nodes):
+ # Take the base node and the path and return a node
+ # Results are cached because searching the node tree is expensive
+ # The following code is executed by threads, it is not safe, so a lock is needed...
+ if getattr(path, '__hash__'):
+ node_lookup_key = (base_node, path)
+ else:
+ # Not hashable, assume it is a list and join into a string
+ node_lookup_key = (base_node, os.path.sep.join(path))
+ try:
+ lock.acquire()
+ node = cached_nodes[node_lookup_key]
+ except KeyError:
+ node = base_node.find_resource(path)
+ cached_nodes[node_lookup_key] = node
+ finally:
+ lock.release()
+ return node
+
+def post_run(self):
+ if not self.__class__.__name__ in self.env.ENABLE_GCCDEPS:
+ return super(self.derived_gccdeps, self).post_run()
+
+ name = self.outputs[0].abspath()
+ name = re_o.sub('.d', name)
+ try:
+ txt = Utils.readf(name)
+ except EnvironmentError:
+ Logs.error('Could not find a .d dependency file, are cflags/cxxflags overwritten?')
+ raise
+ #os.remove(name)
+
+ # Compilers have the choice to either output the file's dependencies
+ # as one large Makefile rule:
+ #
+ # /path/to/file.o: /path/to/dep1.h \
+ # /path/to/dep2.h \
+ # /path/to/dep3.h \
+ # ...
+ #
+ # or as many individual rules:
+ #
+ # /path/to/file.o: /path/to/dep1.h
+ # /path/to/file.o: /path/to/dep2.h
+ # /path/to/file.o: /path/to/dep3.h
+ # ...
+ #
+ # So the first step is to sanitize the input by stripping out the left-
+ # hand side of all these lines. After that, whatever remains are the
+ # implicit dependencies of task.outputs[0]
+ txt = '\n'.join([remove_makefile_rule_lhs(line) for line in txt.splitlines()])
+
+ # Now join all the lines together
+ txt = txt.replace('\\\n', '')
+
+ val = txt.strip()
+ val = [x.replace('\\ ', ' ') for x in re_splitter.split(val) if x]
+
+ nodes = []
+ bld = self.generator.bld
+
+ # Dynamically bind to the cache
+ try:
+ cached_nodes = bld.cached_nodes
+ except AttributeError:
+ cached_nodes = bld.cached_nodes = {}
+
+ for x in val:
+
+ node = None
+ if os.path.isabs(x):
+ node = path_to_node(bld.root, x, cached_nodes)
+ else:
+ # TODO waf 1.9 - single cwd value
+ path = getattr(bld, 'cwdx', bld.bldnode)
+ # when calling find_resource, make sure the path does not contain '..'
+ x = [k for k in Utils.split_path(x) if k and k != '.']
+ while '..' in x:
+ idx = x.index('..')
+ if idx == 0:
+ x = x[1:]
+ path = path.parent
+ else:
+ del x[idx]
+ del x[idx-1]
+
+ node = path_to_node(path, x, cached_nodes)
+
+ if not node:
+ raise ValueError('could not find %r for %r' % (x, self))
+ if id(node) == id(self.inputs[0]):
+ # ignore the source file, it is already in the dependencies
+ # this way, successful config tests may be retrieved from the cache
+ continue
+ nodes.append(node)
+
+ Logs.debug('deps: gccdeps for %s returned %s', self, nodes)
+
+ bld.node_deps[self.uid()] = nodes
+ bld.raw_deps[self.uid()] = []
+
+ try:
+ del self.cache_sig
+ except AttributeError:
+ pass
+
+ Task.Task.post_run(self)
+
+def sig_implicit_deps(self):
+ if not self.__class__.__name__ in self.env.ENABLE_GCCDEPS:
+ return super(self.derived_gccdeps, self).sig_implicit_deps()
+ bld = self.generator.bld
+
+ try:
+ return self.compute_sig_implicit_deps()
+ except Errors.TaskNotReady:
+ raise ValueError("Please specify the build order precisely with gccdeps (asm/c/c++ tasks)")
+ except EnvironmentError:
+ # If a file is renamed, assume the dependencies are stale and must be recalculated
+ for x in bld.node_deps.get(self.uid(), []):
+ if not x.is_bld() and not x.exists():
+ try:
+ del x.parent.children[x.name]
+ except KeyError:
+ pass
+
+ key = self.uid()
+ bld.node_deps[key] = []
+ bld.raw_deps[key] = []
+ return Utils.SIG_NIL
+
+def wrap_compiled_task(classname):
+ derived_class = type(classname, (Task.classes[classname],), {})
+ derived_class.derived_gccdeps = derived_class
+ derived_class.post_run = post_run
+ derived_class.scan = scan
+ derived_class.sig_implicit_deps = sig_implicit_deps
+
+for k in ('asm', 'c', 'cxx'):
+ if k in Task.classes:
+ wrap_compiled_task(k)
+
+@before_method('process_source')
+@feature('force_gccdeps')
+def force_gccdeps(self):
+ self.env.ENABLE_GCCDEPS = ['asm', 'c', 'cxx']
+
+def configure(conf):
+ # in case someone provides a --enable-gccdeps command-line option
+ if not getattr(conf.options, 'enable_gccdeps', True):
+ return
+
+ global gccdeps_flags
+ flags = conf.env.GCCDEPS_FLAGS or gccdeps_flags
+ if conf.env.ASM_NAME in supported_compilers:
+ try:
+ conf.check(fragment='', features='asm force_gccdeps', asflags=flags, compile_filename='test.S', msg='Checking for asm flags %r' % ''.join(flags))
+ except Errors.ConfigurationError:
+ pass
+ else:
+ conf.env.append_value('ASFLAGS', flags)
+ conf.env.append_unique('ENABLE_GCCDEPS', 'asm')
+
+ if conf.env.CC_NAME in supported_compilers:
+ try:
+ conf.check(fragment='int main() { return 0; }', features='c force_gccdeps', cflags=flags, msg='Checking for c flags %r' % ''.join(flags))
+ except Errors.ConfigurationError:
+ pass
+ else:
+ conf.env.append_value('CFLAGS', flags)
+ conf.env.append_unique('ENABLE_GCCDEPS', 'c')
+
+ if conf.env.CXX_NAME in supported_compilers:
+ try:
+ conf.check(fragment='int main() { return 0; }', features='cxx force_gccdeps', cxxflags=flags, msg='Checking for cxx flags %r' % ''.join(flags))
+ except Errors.ConfigurationError:
+ pass
+ else:
+ conf.env.append_value('CXXFLAGS', flags)
+ conf.env.append_unique('ENABLE_GCCDEPS', 'cxx')
+
+def options(opt):
+ raise ValueError('Do not load gccdeps options')
+
diff --git a/long_gcc.py b/long_gcc.py
new file mode 100644
index 0000000000..20ca2a7f77
--- /dev/null
+++ b/long_gcc.py
@@ -0,0 +1,45 @@
+#! /usr/bin/env python
+# encoding: utf-8
+
+"""
+def build(bld):
+ bld.load('long_gcc')
+"""
+
+import os, tempfile
+from waflib import Task
+
+def exec_command(self, cmd, **kw):
+ # workaround for command line length limit:
+ # http://support.microsoft.com/kb/830473
+ tmp = None
+ try:
+ if not isinstance(cmd, str) and len(str(cmd)) > 8192:
+ (fd, tmp) = tempfile.mkstemp(dir=self.generator.bld.bldnode.abspath())
+ flat = ['"%s"' % x.replace('\\', '\\\\').replace('"', '\\"') for x in cmd[1:]]
+ try:
+ os.write(fd, ' '.join(flat).encode())
+ finally:
+ if tmp:
+ os.close(fd)
+ # Line may be very long:
+ # Logs.debug('runner:' + ' '.join(flat))
+ cmd = [cmd[0], '@' + tmp]
+ ret = super(self.__class__, self).exec_command(cmd, **kw)
+ finally:
+ if tmp:
+ os.remove(tmp)
+ return ret
+
+def wrap_class(class_name):
+ cls = Task.classes.get(class_name)
+ if not cls:
+ return None
+ derived_class = type(class_name, (cls,), {})
+ derived_class.exec_command = exec_command
+ if hasattr(cls, 'hcode'):
+ derived_class.hcode = cls.hcode
+ return derived_class
+
+for k in 'c cxx cprogram cxxprogram cshlib cxxshlib cstlib cxxstlib'.split():
+ wrap_class(k)
diff --git a/make/README b/make/README
new file mode 100644
index 0000000000..f3491c2577
--- /dev/null
+++ b/make/README
@@ -0,0 +1,465 @@
+ make/README
+
+ This file describes the layout and conventions of the application
+ makefile support for RTEMS applications. Internally, RTEMS uses
+ GNU-style autoconf/automake Makefiles as much as possible to
+ ease integration with other GNU tools.
+
+ All of these "make" trees are substantially similar; however this
+ file documents the current state of the RTEMS Application Makefile
+ support.
+
+ This make tree is based on a build system originally developed
+ to simplify porting projects between various OS's. The primary
+ goals were:
+
+ . simple *and* customizable individual makefiles
+
+ . use widely available GNU make. There is no pre-processing or
+ automatic generation of Makefiles.
+
+ . Same makefiles work on *many* host OS's due to portability
+ of GNU make and the host OS config files.
+
+ . Support for different compilers and operating systems
+ on a per-user basis. Using the same sources (including
+ Makefiles) one developer can develop and test under SVR4,
+ another under 4.x, another under HPUX.
+
+ . Builtin support for compiling "variants" such as debug
+ versions. These variants can be built
+ recursively.
+
+ . Control of system dependencies. "hidden" dependencies on
+ environment variables (such as PATH)
+ have been removed whenever possible. No matter what your
+ PATH variable is set to, you should get the same thing
+ when you 'make' as everyone else on the project.
+
+ This Makefile system has evolved into its present form and as it
+ exists in RTEMS today, its sole goal is to build RTEMS applications.
+ The use of these Makefiles hides the complexity of producing
+ executables for a wide variety of embedded CPU families and target
+ BSPs. Switching between RTEMS BSPs is accomplished via setting
+ the environment variable "RTEMS_MAKEFILE_PATH."
+
+ This description attempts to cover all aspects of the Makefile tree. Most
+ of what is described here is maintained automatically by the configuration
+ files.
+
+ The example makefiles in make/Templates should be used as a starting
+ point for new directories.
+
+ There are 2 main types of Makefile:
+
+ directory and leaf.
+
+ Directory Makefiles
+ -------------------
+
+ A Makefile in a source directory with sub-directories is called a
+ "directory" Makefile.
+
+ Directory Makefile's are simply responsible for acting as "middle-men"
+ and recursing into their sub-directories and propagating the make.
+
+ For example, directory src/bin will contain only a Makefile and
+ sub-directories. No actual source code will reside in the directory.
+ The following commands:
+
+ $ cd src/bin
+ $ make all
+
+ would descend into all the subdirectories of 'src/bin' and recursively
+ perform a 'make all'.
+
+ A 'make debug' will recurse thru sub-directories as a debug build.
+
+ A template directory Makefile which should work in almost all
+ cases is in make/Templates/Makefile.dir
+
+
+ Leaf Makefiles
+ --------------
+
+ Source directories that contain source code for libraries or
+ programs use a "leaf" Makefile.
+
+ These makefiles contain the rules necessary to build programs
+ (or libraries).
+
+ A template leaf Makefile is in Templates/Makefile.leaf . A template
+ leaf Makefile for building libraries is in Templates/Makefile.lib .
+
+
+ NOTE: To simplify nested makefile's and source maintenance, we disallow
+ combining source and directories (that make(1) would be expected to
+ recurse into) in one source directory. Ie., a directory in the source
+ tree may contain EITHER source files OR recursive sub directories, but NOT
+ both. This assumption is generally shared with GNU automake.
+
+ Variants (where objects go)
+ ---------------------------
+
+ All binary targets are placed in a sub-directory whose name is (for
+ example):
+
+ o-optimize/ -- optimized binaries
+ o-debug/ -- debug binaries
+
+ Using the template Makefiles, this will all happen automatically.
+ The contents of these directories are specific to a BSP.
+
+ Within a Makefile, the ${ARCH} variable is set to o-optimize,
+ o-debug, etc., as appropriate.
+
+ HISTORICAL NOTE: Prior to version 4.5, the name of the sub-directory
+ in which objects were placed included the BSP name.
+
+ Typing 'make' will place objects in o-optimize.
+ 'make debug' will place objects in o-debug.
+
+ The debug targets are equivalent to 'all' except that
+ CFLAGS and/or LDFLAGS are modified as per the compiler config file for
+ debug and profile support.
+
+ The targets debug etc., can be invoked recursively at
+ the directory make level. So from the top of a tree, one could
+ install a debug version of everything under that point by:
+
+ $ cd src/lib
+ $ gmake debug
+ $ gmake install
+
+ When building a command that is linked with a generated library, the
+ appropriate version of the library will be linked in.
+
+ For example, the following fragments link the normal, debug, or
+ version of "libmine.a" as appropriate:
+
+ LD_LIBS += $(LIBMINE)
+ LIBMINE = ../libmine/${ARCH}/libmine.a
+
+ ${ARCH}/pgm: $(LIBMINE) ${OBJS}
+ $(make-exe)
+
+ If we do 'gmake debug', then the library in
+ ../libmine/o-debug/libmine.a will be linked in. If $(LIBMINE)
+ might not exist (or might be out of date) at this point, we could add
+
+ ${LIBMINE}: FORCEIT
+ cd ../libmine; ${MAKE} ${VARIANT_VA}
+
+ The above would generate the following command to build libmine.a:
+
+ cd ../libmine; gmake debug
+
+ The macro reference ${VARIANT_VA} converts ${ARCH} to the word 'debug'
+ (in this example) and thus ensures the proper version of the library
+ is built.
+
+
+ Targets
+ -------
+
+ All Makefile's support the following targets:
+
+ all -- make "everything"
+ install -- install "everything"
+
+ The following targets are provided automatically by
+ the included config files:
+
+ clean -- delete all targets
+ depend -- build a make dependency file
+ "variant targets" -- special variants, see below
+
+
+ All directory Makefiles automatically propagate all these targets. If
+ you don't wish to support 'all' or 'install' in your source directory,
+ you must leave the rules section empty, as the parent directory Makefile
+ will attempt it on recursive make's.
+
+
+ Configuration
+ -------------
+
+ All the real work described here happens in file(s) included
+ from your Makefile.
+
+ All Makefiles include a customization file which is used to select
+ compiler and host operating system. The environment variable
+ RTEMS_MAKEFILE_PATH must point to the directory containing this file; eg:
+
+ export RTEMS_MAKEFILE_PATH=/.../pc386/
+
+ All leaf Makefile's also include either 'make/leaf.cfg' (or
+ 'make/lib.cfg' for building libraries). These config files provide
+ default rules and set up the command macros as appropriate.
+
+ All directory Makefiles include 'make/directory.cfg'. directory.cfg
+ provides all the rules for recursing through sub directories.
+
+ The Makefile templates already perform these include's.
+
+ 'make/leaf.cfg' (or directory.cfg) in turn includes:
+
+ a file specifying general purpose rules appropriate for
+ both leaf and directory makefiles.
+ ( make/main.cfg )
+
+ personality modules specified by the customization file for:
+ compiler ( make/compilers/??.cfg )
+
+
+ generic rules file
+ ------------------
+
+ [ make/main.cfg ]
+ included by leaf.cfg or directory.cfg.
+
+ This file contains some standard rules and variable assignments
+ that all Makefiles need.
+
+ It also includes the FORCEIT: pseudo target.
+
+
+ OS config file for host machine
+ -------------------------------
+
+ [ make/os/OS-NAME.cfg ]
+ included by main.cfg
+
+ Figures out the target architecture and specifies command names
+ for the OS tools including RCS/CVS (but NOT for the compiler tools).
+
+
+ Compiler configuration for the target
+ -------------------------------------
+
+ [ compilers/COMPILER-NAME.cfg ]
+ included by leaf.cfg
+
+ Specifies the names of tools for compiling programs.
+ Names in here should be fully qualified, and NOT depend on $PATH.
+
+ Also specifies compiler flags to be used to generate optimized,
+ debugging versions, as well as rules to compile
+ assembly language and make makefile dependencies.
+
+
+ Configuration Variables
+ -----------------------
+
+ Variables you have to set in the environment or in your Makefile.
+ Note: the RTEMS module files set RTEMS_ROOT and RTEMS_CUSTOM
+ for you.
+
+ Makefile Variables
+ ------------------
+
+ RTEMS_BSP -- name of your 'bsp' eg: pc386, mvme136
+
+ RTEMS_CPU -- CPU architecture e.g.: i386, m68k
+
+ RTEMS_CPU_FAMILY -- CPU model e.g.: i486dx, m68020
+
+ RTEMS_ROOT -- The root of your source tree.
+ All other file names are derived from this.
+ [ eg: % setenv RTEMS_ROOT $HOME/work/RTEMS ]
+
+ RTEMS_CUSTOM -- name of your config files in make/custom
+ Example:
+ $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
+
+ The value RTEMS_ROOT is used in the custom
+ files to generate the make(1) variables:
+
+ PROJECT_RELEASE
+ PROJECT_BIN
+ PROJECT_INCLUDE
+ PROJECT_TOOLS
+
+ etc., which are used within the make config files themselves.
+ (The files in make/*.cfg try to avoid use of word RTEMS so
+ they can be more easily shared by other projects)
+
+ Preset variables
+ ----------------
+
+ Aside from command names set by the OS and compiler config files,
+ a number of MAKE variables are automatically set and maintained by
+ the config files.
+
+ PROJECT_RELEASE
+ -- release/install directory
+ [ $(PROJECT_ROOT) ]
+
+ PROJECT_BIN
+ -- directory for installed binaries
+ [ $(PROJECT_ROOT)/bin ]
+
+ PROJECT_TOOLS
+ -- directory for build environment commands
+ [ eg: $(PROJECT_ROOT)/build-tools ]
+
+ ARCH -- target sub-directory for object code
+ [ eg: o-optimize or o-debug ]
+
+ VARIANTS -- full list of all possible values for $(ARCH);
+ used mainly for 'make clean'
+ [ eg: "o-optimize o-debug" ]
+
+ VARIANT_VA -- Variant name.
+ Normally "", but for 'make debug' it is "debug".
+
+ see make/leaf.cfg for more info.
+
+
+ Preset compilation variables
+ ----------------------------
+
+ This is a list of some of the compilation variables.
+ Refer to the compiler config files for the complete list.
+
+ CFLAGS_OPTIMIZE_V -- value of optimize flag for compiler
+ [ eg: -O ]
+
+ CFLAGS_DEBUG_V -- value of debug flag for compiler
+ [ eg: -g ]
+
+ CFLAGS_DEBUG
+ CFLAGS_OPTIMIZE -- current values for each depending
+ on make variant.
+
+ LDFLAGS_STATIC_LIBRARIES_V
+ -- ld option for static libraries
+ -Bstatic or -dy (svr4)
+
+ LDFLAGS_SHARED_LIBRARIES_V
+ -- ld option for dynamic libraries
+ -Bdynamic or -dn (svr4)
+
+ Makefile Variables
+ ------------------
+
+ The following variables may be set in a typical Makefile.
+
+ C_PIECES -- File names of your .c files without '.c' suffix.
+ [ eg: C_PIECES=main funcs stuff ]
+
+ CC_PIECES -- ditto, except for .cc files
+
+ S_PIECES -- ditto, except for .S files.
+
+ LIB -- target library name in leaf library makefiles.
+ [ eg: LIB=${ARCH}/libmine.a ]
+
+ H_FILES -- your .h files in this directory.
+ [ eg: H_FILES=stuff.h extra.h ]
+
+ DEFINES -- cc -D items. Included in CPPFLAGS.
+ leaf Makefiles.
+ [ eg: DEFINES += -DUNIX ]
+
+ CPPFLAGS -- -I include directories.
+ leaf Makefiles.
+ [ eg: CPPFLAGS += -I../include ]
+
+ LD_PATHS -- arguments to -L for ld.
+ Will be prefixed with '-L' or '-L ' as appropriate
+ and included in LDFLAGS.
+
+ LDFLAGS -- -L arguments to ld; more may be ADDed.
+
+ LD_LIBS -- libraries to be linked in.
+ [ eg: LDLIBS += ../libfoo/${ARCH}/libfoo.a ]
+
+ XCFLAGS -- "extra" CFLAGS for special needs. Pre-pended
+ to CFLAGS.
+ Not set or used by Makefiles.
+ Can be set on command line to pass extra flags
+ to the compiler.
+
+ XCPPFLAGS -- ditto for CPPFLAGS
+ Can be set on command line to pass extra flags
+ to the preprocessor.
+
+ XCCPPFLAGS -- same as XCPPFLAGS for C++.
+
+ XCCFLAGS -- same as XCFLAGS for C++.
+
+ SUBDIRS -- list of sub directories for make recursion.
+ directory Makefiles only.
+ [ eg: SUBDIRS=cpu bsp ]
+
+ CLEAN_ADDITIONS
+ -- list of files or directories that should
+ be deleted by 'make clean'
+ [ eg: CLEAN_ADDITIONS += y.tab.c ]
+
+ See 'leaf.cfg' for the 'clean:' rule and its
+ default deletions.
+
+ CLOBBER_ADDITIONS
+ -- list of files or directories that should
+ be deleted by 'make clobber'
+ Since 'make clobber' includes 'make clean',
+ you don't need to duplicate items in both.
+
+ Command names
+ -------------
+
+ The following commands should only be called
+ as make variables:
+
+ MAKE,INSTALL,INSTALL_VARIANT,SHELL
+
+ ECHO,CAT,CP,MV,LN,MKDIR,CHMOD
+
+ SED
+
+ CC,CPP,AS,AR,LD,NM,SIZE,RANLIB,MKLIB,
+ YACC,LEX,LINT,CTAGS,ETAGS
+
+ In addition, the following commands specifically support
+ the installation of libraries, executables, header files,
+ and other things that need to be installed:
+
+ INSTALL_CHANGE - set to host "install" program by default
+
+ INSTALL_VARIANT - set to host "install" program by default
+
+ Special Directory Makefile Targets
+ ----------------------------------
+
+ all_WRAPUP
+ clean_WRAPUP
+ install_WRAPUP
+ clean_WRAPUP
+ clobber_WRAPUP
+ depend_WRAPUP
+ -- Specify additional commands for recursive
+ (directory level) targets.
+
+ This is handy in certain cases where you need
+ to do bit of work *after* a recursive make.
+
+ make/Templates
+ --------------
+
+ This directory contains Makefile and source file templates that
+ should help in creating or converting makefiles.
+
+ Makefile.leaf
+ Template leaf Makefiles.
+
+ Makefile.lib
+ Template leaf library Makefiles.
+
+ Makefile.dir
+ Template "directory" makefile.
+
+
+
+
diff --git a/make/compilers/gcc-target-default.cfg b/make/compilers/gcc-target-default.cfg
new file mode 100644
index 0000000000..813bd5c2c4
--- /dev/null
+++ b/make/compilers/gcc-target-default.cfg
@@ -0,0 +1,189 @@
+#
+# Shared compiler for all GNU tools configurations
+#
+
+##
+# CFLAGS_OPTIMIZE_V, CFLAGS_DEBUG_V are the values we
+# would want the corresponding macros to be set to.
+#
+# CFLAGS_OPTIMIZE, CFLAGS_DEBUG are set in the leaf
+# Makefiles by the 'debug:' targets to their _V values.
+#
+
+# default flags
+# XCPPFLAGS, XCFLAGS, XCXXFLAGS, XASFLAGS
+# are used to add flags from the shell
+# cf. make.info ("Implicit rules/variables" for details)
+
+# NOTE: Should these go to CPPFLAGS ?
+CFLAGS_DEFAULT=-Wall
+
+# NOTE: CPU_CFLAGS should probably be renamed to CPU_CPPFLAGS
+# NOTE: CPU_DEFINES should probably be merged with CPU_CFLAGS
+CPPFLAGS += $(CPU_DEFINES) $(CPU_CFLAGS) $(DEFINES) $(XCPPFLAGS)
+CFLAGS = $(CFLAGS_DEFAULT) $(XCFLAGS)
+CXXFLAGS = $(CFLAGS_DEFAULT) $(XCXXFLAGS)
+ASFLAGS = $(CPU_ASFLAGS) $(XASFLAGS)
+
+# NOTE: GCCSPECS probably belongs to CPPFLAGS
+GCCSPECS_OPTIMIZE_V =
+GCCSPECS_DEBUG_V =
+
+GCCSPECS = -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems
+GCCSPECS += $(GCCSPECS_$(VARIANT_V)_V)
+
+CC += $(GCCSPECS)
+CXX += $(GCCSPECS)
+
+CPPFLAGS +=
+
+# Define this to yes if C++ is included in the development environment.
+# This requires that at least the GNU C++ compiler and libg++ be installed.
+ifeq ($(HAS_CPLUSPLUS),yes)
+CPLUS_LD_LIBS += $(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA)
+endif
+
+# debug flag;
+CFLAGS_DEBUG_V ?= -O0 -g
+CXXFLAGS_DEBUG_V ?= $(CFLAGS_DEBUG_V)
+
+# when debugging, optimize flag: typically empty
+# some compilers do allow optimization with their "-g"
+CFLAGS_OPTIMIZE_V ?= -O2 -g
+CXXFLAGS_OPTIMIZE_V ?= $(CFLAGS_OPTIMIZE_V)
+
+ifndef AUTOMAKE
+CPPFLAGS_$(VARIANT)=$(CPPFLAGS_$(VARIANT)_V)
+CFLAGS_$(VARIANT) =$(CFLAGS_$(VARIANT)_V)
+CXXFLAGS_$(VARIANT)=$(CXXFLAGS_$(VARIANT)_V)
+endif
+
+ifndef AUTOMAKE
+CPPFLAGS += $(CPPFLAGS_OPTIMIZE) $(CPPFLAGS_DEBUG)
+CFLAGS += $(CFLAGS_OPTIMIZE) $(CFLAGS_DEBUG)
+CXXFLAGS += $(CXXFLAGS_OPTIMIZE) $(CXXFLAGS_DEBUG)
+endif
+
+# List of library paths without -L
+LD_PATHS= $(PROJECT_RELEASE)/lib
+
+# ld flag for incomplete link
+LDFLAGS_INCOMPLETE = -r
+
+# LDFLAGS=$(LDFLAGS_DEBUG) $(LD_PATHS:%=-L%)
+LDFLAGS += $(LDFLAGS_DEBUG)
+
+#
+# Stuff to clean and clobber for the compiler and its tools
+#
+
+CLEAN_CC = a.out *.o *.BAK
+CLOBBER_CC =
+
+#
+# Client compiler and support tools
+#
+
+# CPP command to write file to standard output with warnings suppressed
+CPP=$(CC) -E -w
+
+# egrep regexp to ignore symbol table entries in ar archives.
+# Only used to make sure we skip them when coalescing libraries.
+# skip __.SYMDEF and empty names (maybe bug in ranlib??).
+AR_SYMBOL_TABLE="HIGHLY-UNLIKELY-TO-CONFLICT"
+ARFLAGS=ruv
+
+#
+# How to compile stuff into ${ARCH} subdirectory
+#
+
+${ARCH}/%.o: %.c
+ ${COMPILE.c} $(AM_CPPFLAGS) $(AM_CFLAGS) -o $@ $<
+
+${ARCH}/%.o: %.cc
+ ${COMPILE.cc} $(AM_CPPFLAGS) $(AM_CXXFLAGS) -o $@ $<
+
+${ARCH}/%.o: %.cpp
+ ${COMPILE.cc} $(AM_CPPFLAGS) $(AM_CXXFLAGS) -o $@ $<
+
+${ARCH}/%.o: %.cxx
+ ${COMPILE.cc} $(AM_CPPFLAGS) $(AM_CXXFLAGS) -o $@ $<
+
+${ARCH}/%.o: %.C
+ ${COMPILE.cc} $(AM_CPPFLAGS) $(AM_CXXFLAGS) -o $@ $<
+
+${ARCH}/%.o: %.S
+ ${COMPILE.S} $(AM_CPPFLAGS) -DASM -o $@ $<
+
+# Make foo.rel from foo.o
+${ARCH}/%.rel: ${ARCH}/%.o
+ ${make-rel}
+
+# create $(ARCH)/pgm from pgm.sh
+${ARCH}/%: %.sh
+ $(RM) $@
+ $(CP) $< $@
+ $(CHMOD) +x $@
+
+# Dependency files for use by gmake
+# NOTE: we don't put them into $(ARCH)
+# so that 'make clean' doesn't blow it away
+
+DEPEND=Depends-${ARCH}
+
+CLEAN_DEPEND=$(DEPEND).tmp
+CLOBBER_DEPEND=$(DEPEND)
+
+# We deliberately don't have anything depend on the
+# $(DEPEND) file; otherwise it will get rebuilt even
+# on 'make clean'
+#
+
+depend-am: $(C_FILES) $(CC_FILES) $(S_FILES)
+ifneq ($(words $(C_FILES) $(CC_FILES) $(S_FILES)), 0)
+# Use gcc -M to generate dependencies
+# Replace foo.o with $(ARCH)/foo.o
+# Replace $(ARCH) value with string $(ARCH)
+# so that it will for debug cases
+ $(COMPILE.c) $(AM_CPPFLAGS) $(AM_CFLAGS) -M $^ | \
+ $(SED) -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \
+ -e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp
+ $(MV) $(DEPEND).tmp $(DEPEND)
+endif
+depend: depend-am
+
+# spell out all the LINK_FILE's, rather than using -lbsp, so
+# that $(LINK_FILES) can be a dependency
+
+#
+# NOTE: a rule to link an rtems' application should look similar to this
+# (cf. "make-exe" in make/custom/*.cfg):
+#
+# gcc28:
+# $(PGM): $(LINK_FILES)
+# $(CC) $(CFLAGS) -o $@ $(LINK_OBJS) $(LINK_LIBS)
+#
+
+LINK_OBJS =\
+ $(CONSTRUCTOR) \
+ $(OBJS)
+
+LINK_FILES =\
+ $(CONSTRUCTOR) \
+ $(OBJS) \
+ $(PROJECT_RELEASE)/lib/librtemsbsp$(LIBSUFFIX_VA) \
+ $(PROJECT_RELEASE)/lib/librtemscpu$(LIBSUFFIX_VA)
+
+LINK_LIBS += $(LD_LIBS)
+
+#
+# Allow user to override link commands (to build a prom image, perhaps)
+#
+ifndef LINKCMDS
+LINKCMDS=$(PROJECT_RELEASE)/lib/linkcmds
+endif
+
+define make-rel
+ $(LINK.c) $(CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) \
+ -qnolinkcmds -nostdlib -Wl,-r $(XLDFLAGS) -o $@ $^
+endef
diff --git a/make/directory.cfg b/make/directory.cfg
new file mode 100644
index 0000000000..83ea0ecde3
--- /dev/null
+++ b/make/directory.cfg
@@ -0,0 +1,57 @@
+# make/directory.cfg
+#
+# Make(1) configuration file include'd by all directory-level Makefile's.
+#
+# See also make/main.cfg
+#
+
+# This is a simplified variant of automake-1.4's rule for handling
+# subdirectories
+$(RECURSE_TARGETS):
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed -e s/-recursive// -e s/debug_// `; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ local_target="$$target"; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+
+
+# mostlyclean-recursive maintainer-clean-recursive:
+clean-recursive \
+distclean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+ rev="$$subdir $$rev"; \
+ test "$$subdir" = "." && dot_seen=yes; \
+ done; \
+ test "$$dot_seen" = "no" && rev=". $$rev"; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+
+clean-am: clean-generic
+distclean-am: distclean-generic clean-am
+
+preinstall: preinstall-recursive
+.PHONY: preinstall preinstall-am preinstall-recursive
+
+distclean: distclean-recursive
+ -$(RM) config.status
+
+.PHONY: distclean distclean-am distclean-recursive
+
+clean: clean-recursive
+.PHONY: clean clean-am clean-recursive
+
diff --git a/make/host.cfg b/make/host.cfg
new file mode 100644
index 0000000000..890a2d2ee2
--- /dev/null
+++ b/make/host.cfg
@@ -0,0 +1,48 @@
+# OS-specific configuration
+#
+# Derived from rtems/c/make/os/*.cfg in previous RTEMS version.
+#
+
+#
+# Stuff to clean and clobber for the OS
+#
+
+CLEAN_OS =
+CLOBBER_OS = *~ *.bak TAGS tags
+
+SHELL=sh
+ECHO=echo
+
+CAT=cat
+CP=cp
+MV=mv
+LN=ln
+MKDIR=mkdir
+CHMOD=chmod
+SED=sed
+
+# Global tools
+
+ifndef BIN2C
+BIN2C=rtems-bin2c
+endif
+
+ifndef INSTALL_CHANGE
+INSTALL_CHANGE=install
+endif
+ifndef INSTALL_VARIANT
+INSTALL_VARIANT=install
+endif
+
+# ksh (or bash) is used by some shell scripts; ref build-tools/scripts/Makefile
+#
+# Must have shell functions. Some ksh's core dump mysteriously and
+# unreliably on RTEMS shell scripts. bash appears to be the most
+# reliable but late model ksh's are usually OK.
+KSH=bash
+
+INSTBINFLAGS = -m 0755
+INSTDATAFLAGS = -m 0644
+INSTLIBFLAGS = -m 0644
+INSTDIRFLAGS = -m 0755 -d
+INSTINCFLAGS = -m 0644
diff --git a/make/lib.cfg b/make/lib.cfg
new file mode 100644
index 0000000000..c4a2c679d5
--- /dev/null
+++ b/make/lib.cfg
@@ -0,0 +1,15 @@
+# make/lib.cfg
+#
+# Make(1) configuration file include'd by all "library" Makefile
+# Assumes $(LIB) is set to $(ARCH)/libfoo.a
+#
+
+include $(PROJECT_ROOT)/make/leaf.cfg
+
+define make-library
+$(RM) $@
+$(AR) $(ARFLAGS) $@ $(OBJS)
+$(RANLIB) $@
+endef
+
+.PRECIOUS: $(LIB)
diff --git a/spec/build/bsps/arm/altera-cyclone-v/abi.yml b/spec/build/bsps/arm/altera-cyclone-v/abi.yml
new file mode 100644
index 0000000000..a3a710c97d
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=armv7-a
+- -mthumb
+- -mfpu=neon
+- -mfloat-abi=hard
+- -mtune=cortex-a9
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/bspalteracyclonev.yml b/spec/build/bsps/arm/altera-cyclone-v/bspalteracyclonev.yml
new file mode 100644
index 0000000000..abe3d7f490
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/bspalteracyclonev.yml
@@ -0,0 +1,142 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: altcycv_devkit
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: altera-cyclone-v
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/altera-cyclone-v/include/bsp.h
+ - bsps/arm/altera-cyclone-v/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_16550_uart.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_address_space.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_cache.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_clock_group.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_clock_manager.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_dma.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_dma_common.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_dma_program.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_generalpurpose_io.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_hwlibs_ver.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_i2c.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_interrupt_common.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_mpu_registers.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_qspi_private.h
+ - bsps/arm/altera-cyclone-v/include/bsp/alt_reset_manager.h
+ - bsps/arm/altera-cyclone-v/include/bsp/hwlib.h
+ - bsps/arm/altera-cyclone-v/include/bsp/i2cdrv.h
+ - bsps/arm/altera-cyclone-v/include/bsp/irq.h
+- destination: ${BSP_INCLUDEDIR}/bsp/socal
+ source:
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_acpidmap.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_clkmgr.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_dmanonsecure.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_dmasecure.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_gpio.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_i2c.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_l3.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_qspi.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_qspidata.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_rstmgr.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_sdr.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_sysmgr.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/alt_uart.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/hps.h
+ - bsps/arm/altera-cyclone-v/include/bsp/socal/socal.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/altera-cyclone-v/start/linkcmds
+ - bsps/arm/altera-cyclone-v/start/linkcmds.altcycv
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: opta9periphclk
+- role: build-dependency
+ uid: optcachedata
+- role: build-dependency
+ uid: optcacheinst
+- role: build-dependency
+ uid: optclkfastidle
+- role: build-dependency
+ uid: optconcfg
+- role: build-dependency
+ uid: optconuart1
+- role: build-dependency
+ uid: optfdtcpyro
+- role: build-dependency
+ uid: optfdten
+- role: build-dependency
+ uid: optfdtmxsz
+- role: build-dependency
+ uid: optfdtro
+- role: build-dependency
+ uid: optfdtuboot
+- role: build-dependency
+ uid: opti2cspeed
+- role: build-dependency
+ uid: optnoi2c
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: optuartbaud
+- role: build-dependency
+ uid: optuartirq
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/altera-cyclone-v/console/console-config.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_16550_uart.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_address_space.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_clock_manager.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_dma.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_dma_program.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_generalpurpose_io.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_i2c.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_qspi.c
+- bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_reset_manager.c
+- bsps/arm/altera-cyclone-v/i2c/i2cdrv-config.c
+- bsps/arm/altera-cyclone-v/i2c/i2cdrv.c
+- bsps/arm/altera-cyclone-v/rtc/rtc.c
+- bsps/arm/altera-cyclone-v/start/bspclean.c
+- bsps/arm/altera-cyclone-v/start/bspgetworkarea.c
+- bsps/arm/altera-cyclone-v/start/bspreset.c
+- bsps/arm/altera-cyclone-v/start/bspstart.c
+- bsps/arm/altera-cyclone-v/start/bspstarthooks.c
+- bsps/arm/altera-cyclone-v/start/mmu-config.c
+- bsps/arm/shared/cache/cache-l2c-310.c
+- bsps/arm/shared/clock/clock-a9mpcore.c
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/irq/irq-gic.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bsp-fdt.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/objsmp.yml b/spec/build/bsps/arm/altera-cyclone-v/objsmp.yml
new file mode 100644
index 0000000000..bf0c99d21f
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/objsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/altera-cyclone-v/start/bspsmp.c
+- bsps/arm/shared/start/arm-a9mpcore-smp.c
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/opta9periphclk.yml b/spec/build/bsps/arm/altera-cyclone-v/opta9periphclk.yml
new file mode 100644
index 0000000000..e67ddc129b
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/opta9periphclk.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ define to set ARM Cortex-A9 MPCore PERIPHCLK clock frequency in Hz, otherwise alt_clk_freq_get() is used
+enabled-by: true
+links: []
+name: BSP_ARM_A9MPCORE_PERIPHCLK
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optcachedata.yml b/spec/build/bsps/arm/altera-cyclone-v/optcachedata.yml
new file mode 100644
index 0000000000..77dac09116
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optcachedata.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ enable data cache
+enabled-by: true
+links: []
+name: BSP_DATA_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optcacheinst.yml b/spec/build/bsps/arm/altera-cyclone-v/optcacheinst.yml
new file mode 100644
index 0000000000..a59db43f31
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optcacheinst.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ enable instruction cache
+enabled-by: true
+links: []
+name: BSP_INSTRUCTION_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optclkfastidle.yml b/spec/build/bsps/arm/altera-cyclone-v/optclkfastidle.yml
new file mode 100644
index 0000000000..b800b20428
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optclkfastidle.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/.*qemu
+description: |
+ This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_FAST_IDLE
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optconcfg.yml b/spec/build/bsps/arm/altera-cyclone-v/optconcfg.yml
new file mode 100644
index 0000000000..635697cc8a
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optconcfg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ configuration for console (UART 0)
+enabled-by: true
+links: []
+name: CYCLONE_V_CONFIG_CONSOLE
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optconuart1.yml b/spec/build/bsps/arm/altera-cyclone-v/optconuart1.yml
new file mode 100644
index 0000000000..f5c588a330
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optconuart1.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ configuration for UART 1
+enabled-by: true
+links: []
+name: CYCLONE_V_CONFIG_UART_1
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optfdtcpyro.yml b/spec/build/bsps/arm/altera-cyclone-v/optfdtcpyro.yml
new file mode 100644
index 0000000000..c26b1ae051
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optfdtcpyro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ copy the FDT blob into the read-only load area via bsp_fdt_copy()
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_COPY_TO_READ_ONLY_LOAD_AREA
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optfdten.yml b/spec/build/bsps/arm/altera-cyclone-v/optfdten.yml
new file mode 100644
index 0000000000..f2fc473967
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optfdten.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ define if FDT is supported
+enabled-by: true
+links: []
+name: BSP_FDT_IS_SUPPORTED
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optfdtmxsz.yml b/spec/build/bsps/arm/altera-cyclone-v/optfdtmxsz.yml
new file mode 100644
index 0000000000..14af766230
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optfdtmxsz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 262144
+default-by-variant: []
+description: |
+ maximum size of the FDT blob in bytes
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_FDT_BLOB_SIZE_MAX
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optfdtro.yml b/spec/build/bsps/arm/altera-cyclone-v/optfdtro.yml
new file mode 100644
index 0000000000..a61bb2924b
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optfdtro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ place the FDT blob into the read-only data area
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_READ_ONLY
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optfdtuboot.yml b/spec/build/bsps/arm/altera-cyclone-v/optfdtuboot.yml
new file mode 100644
index 0000000000..5805e912ff
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optfdtuboot.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ copy the U-Boot provided FDT to an internal storage
+enabled-by: true
+links: []
+name: BSP_START_COPY_FDT_FROM_U_BOOT
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/opti2cspeed.yml b/spec/build/bsps/arm/altera-cyclone-v/opti2cspeed.yml
new file mode 100644
index 0000000000..ee8097aa3b
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/opti2cspeed.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 100000
+default-by-variant: []
+description: |
+ speed for I2C0 in HZ
+enabled-by: true
+format: '{}'
+links: []
+name: CYCLONE_V_I2C0_SPEED
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optnoi2c.yml b/spec/build/bsps/arm/altera-cyclone-v/optnoi2c.yml
new file mode 100644
index 0000000000..2d36d5f930
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optnoi2c.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Number of configured I2C buses. Note that each bus has to be configured in an apropriate i2cdrv_config array.
+enabled-by: true
+links: []
+name: CYCLONE_V_NO_I2C
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optresetvec.yml b/spec/build/bsps/arm/altera-cyclone-v/optresetvec.yml
new file mode 100644
index 0000000000..efd1ea2b2a
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optresetvec.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ reset vector address for BSP start
+enabled-by: true
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optuartbaud.yml b/spec/build/bsps/arm/altera-cyclone-v/optuartbaud.yml
new file mode 100644
index 0000000000..b5f577ffc3
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optuartbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for UARTs
+enabled-by: true
+format: '{}'
+links: []
+name: CYCLONE_V_UART_BAUD
+type: build
diff --git a/spec/build/bsps/arm/altera-cyclone-v/optuartirq.yml b/spec/build/bsps/arm/altera-cyclone-v/optuartirq.yml
new file mode 100644
index 0000000000..152668b2d9
--- /dev/null
+++ b/spec/build/bsps/arm/altera-cyclone-v/optuartirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ enable usage of interrupts for the UART modules
+enabled-by: true
+links: []
+name: BSP_USE_UART_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/arm/atsam/abi.yml b/spec/build/bsps/arm/atsam/abi.yml
new file mode 100644
index 0000000000..7a95742c36
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/abi.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mthumb
+- -mcpu=cortex-m7
+- -mfpu=fpv5-d16
+- -mfloat-abi=hard
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/atsam/bspatsam.yml b/spec/build/bsps/arm/atsam/bspatsam.yml
new file mode 100644
index 0000000000..f0aaa17cf7
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/bspatsam.yml
@@ -0,0 +1,411 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: atsamv
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: atsam
+includes:
+- bsps/arm/atsam/contrib/libraries/libboard
+- bsps/arm/atsam/contrib/libraries/libboard/include
+- bsps/arm/atsam/contrib/libraries/libchip
+- bsps/arm/atsam/contrib/libraries/libchip/include
+- bsps/arm/atsam/include/libchip
+- bsps/arm/atsam/include/libchip/include
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/atsam/include/bsp.h
+ - bsps/arm/atsam/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/atsam/include/bsp/atsam-clock-config.h
+ - bsps/arm/atsam/include/bsp/atsam-i2c.h
+ - bsps/arm/atsam/include/bsp/atsam-spi.h
+ - bsps/arm/atsam/include/bsp/i2c.h
+ - bsps/arm/atsam/include/bsp/iocopy.h
+ - bsps/arm/atsam/include/bsp/irq.h
+ - bsps/arm/atsam/include/bsp/pin-config.h
+ - bsps/arm/atsam/include/bsp/power.h
+ - bsps/arm/atsam/include/bsp/sc16is752.h
+ - bsps/arm/atsam/include/bsp/spi.h
+- destination: ${BSP_INCLUDEDIR}/libchip
+ source:
+ - bsps/arm/atsam/include/libchip/chip.h
+ - bsps/arm/atsam/include/libchip/compiler.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include
+ source:
+ - bsps/arm/atsam/include/libchip/include/acc.h
+ - bsps/arm/atsam/include/libchip/include/adc.h
+ - bsps/arm/atsam/include/libchip/include/aes.h
+ - bsps/arm/atsam/include/libchip/include/afe_dma.h
+ - bsps/arm/atsam/include/libchip/include/afec.h
+ - bsps/arm/atsam/include/libchip/include/chip.h
+ - bsps/arm/atsam/include/libchip/include/dac_dma.h
+ - bsps/arm/atsam/include/libchip/include/efc.h
+ - bsps/arm/atsam/include/libchip/include/exceptions.h
+ - bsps/arm/atsam/include/libchip/include/flashd.h
+ - bsps/arm/atsam/include/libchip/include/gmac.h
+ - bsps/arm/atsam/include/libchip/include/gmacd.h
+ - bsps/arm/atsam/include/libchip/include/hsmci.h
+ - bsps/arm/atsam/include/libchip/include/icm.h
+ - bsps/arm/atsam/include/libchip/include/isi.h
+ - bsps/arm/atsam/include/libchip/include/iso7816_4.h
+ - bsps/arm/atsam/include/libchip/include/mcan.h
+ - bsps/arm/atsam/include/libchip/include/mcid.h
+ - bsps/arm/atsam/include/libchip/include/mediaLB.h
+ - bsps/arm/atsam/include/libchip/include/mpu.h
+ - bsps/arm/atsam/include/libchip/include/pio.h
+ - bsps/arm/atsam/include/libchip/include/pio_capture.h
+ - bsps/arm/atsam/include/libchip/include/pio_it.h
+ - bsps/arm/atsam/include/libchip/include/pmc.h
+ - bsps/arm/atsam/include/libchip/include/pwmc.h
+ - bsps/arm/atsam/include/libchip/include/qspi.h
+ - bsps/arm/atsam/include/libchip/include/qspi_dma.h
+ - bsps/arm/atsam/include/libchip/include/rstc.h
+ - bsps/arm/atsam/include/libchip/include/rtc.h
+ - bsps/arm/atsam/include/libchip/include/rtt.h
+ - bsps/arm/atsam/include/libchip/include/sdramc.h
+ - bsps/arm/atsam/include/libchip/include/smc.h
+ - bsps/arm/atsam/include/libchip/include/spi.h
+ - bsps/arm/atsam/include/libchip/include/spi_dma.h
+ - bsps/arm/atsam/include/libchip/include/ssc.h
+ - bsps/arm/atsam/include/libchip/include/supc.h
+ - bsps/arm/atsam/include/libchip/include/tc.h
+ - bsps/arm/atsam/include/libchip/include/timetick.h
+ - bsps/arm/atsam/include/libchip/include/trace.h
+ - bsps/arm/atsam/include/libchip/include/trng.h
+ - bsps/arm/atsam/include/libchip/include/twi.h
+ - bsps/arm/atsam/include/libchip/include/twid.h
+ - bsps/arm/atsam/include/libchip/include/uart.h
+ - bsps/arm/atsam/include/libchip/include/uart_dma.h
+ - bsps/arm/atsam/include/libchip/include/usart.h
+ - bsps/arm/atsam/include/libchip/include/usart_dma.h
+ - bsps/arm/atsam/include/libchip/include/usbhs.h
+ - bsps/arm/atsam/include/libchip/include/video.h
+ - bsps/arm/atsam/include/libchip/include/wdt.h
+ - bsps/arm/atsam/include/libchip/include/xdma_hardware_interface.h
+ - bsps/arm/atsam/include/libchip/include/xdmac.h
+ - bsps/arm/atsam/include/libchip/include/xdmad.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/same70
+ source:
+ - bsps/arm/atsam/include/libchip/include/same70/same70.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70j19.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70j20.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70j21.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70n19.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70n20.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70n21.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70q19.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70q20.h
+ - bsps/arm/atsam/include/libchip/include/same70/same70q21.h
+ - bsps/arm/atsam/include/libchip/include/same70/system_same70.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/same70/component
+ source:
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_acc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_aes.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_afec.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_chipid.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_dacc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_efc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_gmac.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_gpbr.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_hsmci.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_icm.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_isi.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_matrix.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_mcan.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_pio.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_pmc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_pwm.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_qspi.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_rstc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_rswdt.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_rtc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_rtt.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_sdramc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_smc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_spi.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_ssc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_supc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_tc.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_trng.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_twihs.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_uart.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_usart.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_usbhs.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_utmi.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_wdt.h
+ - bsps/arm/atsam/include/libchip/include/same70/component/component_xdmac.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/same70/pio
+ source:
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70j19.h
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70j20.h
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70j21.h
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70n19.h
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70n20.h
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70n21.h
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70q19.h
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70q20.h
+ - bsps/arm/atsam/include/libchip/include/same70/pio/pio_same70q21.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/sams70
+ source:
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70j19.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70j20.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70j21.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70n19.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70n20.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70n21.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70q19.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70q20.h
+ - bsps/arm/atsam/include/libchip/include/sams70/sams70q21.h
+ - bsps/arm/atsam/include/libchip/include/sams70/system_sams70.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/sams70/component
+ source:
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_acc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_aes.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_afec.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_chipid.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_dacc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_efc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_gpbr.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_hsmci.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_icm.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_isi.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_matrix.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_pio.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_pmc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_pwm.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_qspi.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_rstc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_rswdt.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_rtc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_rtt.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_sdramc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_smc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_spi.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_ssc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_supc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_tc.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_trng.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_twihs.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_uart.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_usart.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_usbhs.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_utmi.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_wdt.h
+ - bsps/arm/atsam/include/libchip/include/sams70/component/component_xdmac.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/sams70/pio
+ source:
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70j19.h
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70j20.h
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70j21.h
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70n19.h
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70n20.h
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70n21.h
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70q19.h
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70q20.h
+ - bsps/arm/atsam/include/libchip/include/sams70/pio/pio_sams70q21.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/samv71
+ source:
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71j19.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71j20.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71j21.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71n19.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71n20.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71n21.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71q19.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71q20.h
+ - bsps/arm/atsam/include/libchip/include/samv71/samv71q21.h
+ - bsps/arm/atsam/include/libchip/include/samv71/system_samv71.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/samv71/component
+ source:
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_acc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_aes.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_afec.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_chipid.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_dacc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_efc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_gmac.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_gpbr.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_hsmci.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_icm.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_isi.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_matrix.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_mcan.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_mlb.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_pio.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_pmc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_pwm.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_qspi.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_rstc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_rswdt.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_rtc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_rtt.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_sdramc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_smc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_spi.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_ssc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_supc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_tc.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_trng.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_twihs.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_uart.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_usart.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_usbhs.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_utmi.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_wdt.h
+ - bsps/arm/atsam/include/libchip/include/samv71/component/component_xdmac.h
+- destination: ${BSP_INCLUDEDIR}/libchip/include/samv71/pio
+ source:
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71j19.h
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71j20.h
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71j21.h
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71n19.h
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71n20.h
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71n21.h
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71q19.h
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71q20.h
+ - bsps/arm/atsam/include/libchip/include/samv71/pio/pio_samv71q21.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/atsam/start/linkcmds
+ - bsps/arm/atsam/start/linkcmds.intsram
+ - bsps/arm/atsam/start/linkcmds.qspiflash
+ - bsps/arm/atsam/start/linkcmds.sdram
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optchgclksram
+- role: build-dependency
+ uid: optchip
+- role: build-dependency
+ uid: optconbaud
+- role: build-dependency
+ uid: optconidx
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optcontype
+- role: build-dependency
+ uid: optmck
+- role: build-dependency
+ uid: optnocachesz
+- role: build-dependency
+ uid: optoscmain
+- role: build-dependency
+ uid: optqspiflashsz
+- role: build-dependency
+ uid: optsdram
+- role: build-dependency
+ uid: opttcmsz
+- role: build-dependency
+ uid: optusextal
+- role: build-dependency
+ uid: tstatsamv
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: linkcmds
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/atsam/clock/systick-freq.c
+- bsps/arm/atsam/console/console.c
+- bsps/arm/atsam/console/debug-console.c
+- bsps/arm/atsam/contrib/libraries/libboard/resources_v71/system_samv71.c
+- bsps/arm/atsam/contrib/libraries/libboard/source/board_lowlevel.c
+- bsps/arm/atsam/contrib/libraries/libboard/source/board_memories.c
+- bsps/arm/atsam/contrib/libraries/libboard/source/dbg_console.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/acc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/aes.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/afe_dma.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/afec.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/dac_dma.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/efc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/exceptions.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/flashd.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/gmac.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/gmacd.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/hsmci.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/icm.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/isi.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/mcan.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/mediaLB.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/mpu.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/pio.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/pio_capture.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/pio_it.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/pmc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/pwmc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/qspi.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/qspi_dma.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/rstc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/rtc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/rtt.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/sdramc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/spi.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/spi_dma.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/ssc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/supc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/tc.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/trng.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/twi.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/twid.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/uart.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/uart_dma.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/usart.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/usart_dma.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/wdt.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/xdma_hardware_interface.c
+- bsps/arm/atsam/contrib/libraries/libchip/source/xdmad.c
+- bsps/arm/atsam/i2c/atsam_i2c_bus.c
+- bsps/arm/atsam/i2c/atsam_i2c_init.c
+- bsps/arm/atsam/rtc/rtc-config.c
+- bsps/arm/atsam/spi/atsam_spi_bus.c
+- bsps/arm/atsam/spi/atsam_spi_init.c
+- bsps/arm/atsam/spi/sc16is752.c
+- bsps/arm/atsam/start/bspstart.c
+- bsps/arm/atsam/start/bspstarthooks.c
+- bsps/arm/atsam/start/getentropy-trng.c
+- bsps/arm/atsam/start/iocopy.c
+- bsps/arm/atsam/start/pin-config.c
+- bsps/arm/atsam/start/pmc-config.c
+- bsps/arm/atsam/start/power-clock.c
+- bsps/arm/atsam/start/power-rtc.c
+- bsps/arm/atsam/start/power-wait.c
+- bsps/arm/atsam/start/power.c
+- bsps/arm/atsam/start/restart.c
+- bsps/arm/atsam/start/sdram-config.c
+- bsps/arm/shared/cache/cache-v7m.c
+- bsps/arm/shared/clock/clock-armv7m.c
+- bsps/arm/shared/cpucounter/cpucounter-armv7m.c
+- bsps/arm/shared/irq/irq-armv7m.c
+- bsps/arm/shared/irq/irq-dispatch-armv7m.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/shared/start/bspreset-armv7m.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/atsam/linkcmds.yml b/spec/build/bsps/arm/atsam/linkcmds.yml
new file mode 100644
index 0000000000..fe6211f82f
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/linkcmds.yml
@@ -0,0 +1,49 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ MEMORY {
+ ITCM : ORIGIN = 0x00000000, LENGTH = ${ATSAM_MEMORY_TCM_SIZE}
+ INTFLASH : ORIGIN = 0x00400000, LENGTH = ${ATSAM_MEMORY_INTFLASH_SIZE}
+ DTCM : ORIGIN = 0x20000000, LENGTH = ${ATSAM_MEMORY_TCM_SIZE}
+ INTSRAM : ORIGIN = 0x20400000, LENGTH = ${ATSAM_MEMORY_INTSRAM_SIZE} - 2 * ${ATSAM_MEMORY_TCM_SIZE} - ${ATSAM_MEMORY_NOCACHE_SIZE}
+ NOCACHE : ORIGIN = 0x20400000 + ${ATSAM_MEMORY_INTSRAM_SIZE} - 2 * ${ATSAM_MEMORY_TCM_SIZE} - ${ATSAM_MEMORY_NOCACHE_SIZE}, LENGTH = ${ATSAM_MEMORY_NOCACHE_SIZE}
+ SDRAM : ORIGIN = 0x70000000, LENGTH = ${ATSAM_MEMORY_SDRAM_SIZE}
+ QSPIFLASH : ORIGIN = 0x80000000, LENGTH = ${ATSAM_MEMORY_QSPIFLASH_SIZE}
+ }
+
+ /* Must be used only for MPU definitions */
+
+ atsam_memory_itcm_begin = ORIGIN (ITCM);
+ atsam_memory_itcm_end = ORIGIN (ITCM) + LENGTH (ITCM);
+ atsam_memory_itcm_size = LENGTH (ITCM);
+
+ atsam_memory_intflash_begin = ORIGIN (INTFLASH);
+ atsam_memory_intflash_end = ORIGIN (INTFLASH) + LENGTH (INTFLASH);
+ atsam_memory_intflash_size = LENGTH (INTFLASH);
+
+ atsam_memory_dtcm_begin = ORIGIN (DTCM);
+ atsam_memory_dtcm_end = ORIGIN (DTCM) + LENGTH (DTCM);
+ atsam_memory_dtcm_size = LENGTH (DTCM);
+
+ atsam_memory_intsram_begin = ORIGIN (INTSRAM);
+ atsam_memory_intsram_end = ORIGIN (INTSRAM) + LENGTH (INTSRAM);
+ atsam_memory_intsram_size = LENGTH (INTSRAM);
+
+ atsam_memory_nocache_begin = ORIGIN (NOCACHE);
+ atsam_memory_nocache_end = ORIGIN (NOCACHE) + LENGTH (NOCACHE);
+ atsam_memory_nocache_size = LENGTH (NOCACHE);
+
+ atsam_memory_sdram_begin = ORIGIN (SDRAM);
+ atsam_memory_sdram_end = ORIGIN (SDRAM) + LENGTH (SDRAM);
+ atsam_memory_sdram_size = LENGTH (SDRAM);
+
+ atsam_memory_qspiflash_begin = ORIGIN (QSPIFLASH);
+ atsam_memory_qspiflash_end = ORIGIN (QSPIFLASH) + LENGTH (QSPIFLASH);
+ atsam_memory_qspiflash_size = LENGTH (QSPIFLASH);
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds.memory
+type: build
diff --git a/spec/build/bsps/arm/atsam/objnet.yml b/spec/build/bsps/arm/atsam/objnet.yml
new file mode 100644
index 0000000000..7aeceb47d9
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/objnet.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- bsps/arm/atsam/contrib/libraries/libboard
+- bsps/arm/atsam/contrib/libraries/libboard/include
+- bsps/arm/atsam/contrib/libraries/libchip
+- bsps/arm/atsam/contrib/libraries/libchip/include
+- bsps/arm/atsam/include/libchip
+- bsps/arm/atsam/include/libchip/include
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/arm/atsam/net/if_atsam.c
+type: build
diff --git a/spec/build/bsps/arm/atsam/optchgclksram.yml b/spec/build/bsps/arm/atsam/optchgclksram.yml
new file mode 100644
index 0000000000..58dca377d7
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optchgclksram.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Move the functions that set up the clock into the SRAM. This allows to change the clock frequency even if the application is started from SDRAM. Requires a TCM_SIZE > 0.
+enabled-by: true
+links: []
+name: ATSAM_CHANGE_CLOCK_FROM_SRAM
+type: build
diff --git a/spec/build/bsps/arm/atsam/optchip.yml b/spec/build/bsps/arm/atsam/optchip.yml
new file mode 100644
index 0000000000..16998e6c2a
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optchip.yml
@@ -0,0 +1,54 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- script: |
+ c = ("__SAMV71Q21__", 0x00200000, 0x00060000)
+ chips = {
+ "same70j19": ("__SAME70J19__", 0x00080000, 0x00040000),
+ "same70j20": ("__SAME70J20__", 0x00100000, 0x00060000),
+ "same70j21": ("__SAME70J21__", 0x00200000, 0x00060000),
+ "same70n19": ("__SAME70N19__", 0x00080000, 0x00040000),
+ "same70n20": ("__SAME70N20__", 0x00100000, 0x00060000),
+ "same70n21": ("__SAME70N21__", 0x00200000, 0x00060000),
+ "same70q19": ("__SAME70Q19__", 0x00080000, 0x00040000),
+ "same70q20": ("__SAME70Q20__", 0x00100000, 0x00060000),
+ "same70q21": ("__SAME70Q21__", 0x00200000, 0x00060000),
+ "sams70j19": ("__SAMS70J19__", 0x00080000, 0x00040000),
+ "sams70j20": ("__SAMS70J20__", 0x00100000, 0x00060000),
+ "sams70j21": ("__SAMS70J21__", 0x00200000, 0x00060000),
+ "sams70n19": ("__SAMS70N19__", 0x00080000, 0x00040000),
+ "sams70n20": ("__SAMS70N20__", 0x00100000, 0x00060000),
+ "sams70n21": ("__SAMS70N21__", 0x00200000, 0x00060000),
+ "sams70q19": ("__SAMS70Q19__", 0x00080000, 0x00040000),
+ "sams70q20": ("__SAMS70Q20__", 0x00100000, 0x00060000),
+ "sams70q21": ("__SAMS70Q21__", 0x00200000, 0x00060000),
+ "samv71j19": ("__SAMV71J19__", 0x00080000, 0x00040000),
+ "samv71j20": ("__SAMV71J20__", 0x00100000, 0x00060000),
+ "samv71j21": ("__SAMV71J21__", 0x00200000, 0x00060000),
+ "samv71n19": ("__SAMV71N19__", 0x00080000, 0x00040000),
+ "samv71n20": ("__SAMV71N20__", 0x00100000, 0x00060000),
+ "samv71n21": ("__SAMV71N21__", 0x00200000, 0x00060000),
+ "samv71q19": ("__SAMV71Q19__", 0x00080000, 0x00040000),
+ "samv71q20": ("__SAMV71Q20__", 0x00100000, 0x00060000),
+ "samv71q21": c,
+ }
+ if value:
+ try:
+ c = chips[value]
+ except:
+ conf.fatal("Unkown chip variant '{}'".format(value))
+ conf.define_cond(c[0], True)
+ conf.env["ATSAM_MEMORY_INTFLASH_SIZE"] = c[1]
+ conf.env["ATSAM_MEMORY_INTSRAM_SIZE"] = c[2]
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: samv71q21
+default-by-variant: []
+description: |
+ Chip variant
+enabled-by: true
+format: '{}'
+links: []
+name: ATSAM_CHIP
+type: build
diff --git a/spec/build/bsps/arm/atsam/optconbaud.yml b/spec/build/bsps/arm/atsam/optconbaud.yml
new file mode 100644
index 0000000000..b0e34e7505
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optconbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ initial baud for console devices (default 115200)
+enabled-by: true
+format: '{}'
+links: []
+name: ATSAM_CONSOLE_BAUD
+type: build
diff --git a/spec/build/bsps/arm/atsam/optconidx.yml b/spec/build/bsps/arm/atsam/optconidx.yml
new file mode 100644
index 0000000000..42fb3b142a
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optconidx.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ device index for /dev/console (default 1, e.g. USART1)
+enabled-by: true
+links: []
+name: ATSAM_CONSOLE_DEVICE_INDEX
+type: build
diff --git a/spec/build/bsps/arm/atsam/optconirq.yml b/spec/build/bsps/arm/atsam/optconirq.yml
new file mode 100644
index 0000000000..a410e05060
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optconirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ use interrupt driven mode for console devices (used by default)
+enabled-by: true
+links: []
+name: ATSAM_CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/arm/atsam/optcontype.yml b/spec/build/bsps/arm/atsam/optcontype.yml
new file mode 100644
index 0000000000..eddbee1063
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optcontype.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ device type for /dev/console, use 0 for USART and 1 for UART (default USART)
+enabled-by: true
+links: []
+name: ATSAM_CONSOLE_DEVICE_TYPE
+type: build
diff --git a/spec/build/bsps/arm/atsam/optmck.yml b/spec/build/bsps/arm/atsam/optmck.yml
new file mode 100644
index 0000000000..d216542285
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optmck.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 123000000
+default-by-variant: []
+description: |
+ Frequency of the MCK in Hz. Set to 0 to force application defined speed. See start/pmc-config.c for available clock configurations.
+enabled-by: true
+format: '{}'
+links: []
+name: ATSAM_MCK
+type: build
diff --git a/spec/build/bsps/arm/atsam/optnocachesz.yml b/spec/build/bsps/arm/atsam/optnocachesz.yml
new file mode 100644
index 0000000000..433633d3b0
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optnocachesz.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- format-and-define: null
+- env-assign: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 4096
+default-by-variant: []
+description: |
+ size of NOCACHE section in bytes
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ATSAM_MEMORY_NOCACHE_SIZE
+type: build
diff --git a/spec/build/bsps/arm/atsam/optoscmain.yml b/spec/build/bsps/arm/atsam/optoscmain.yml
new file mode 100644
index 0000000000..4cafffea37
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optoscmain.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 12000000
+default-by-variant: []
+description: |
+ Main oscillator frequency in Hz (default 12MHz)
+enabled-by: true
+format: '{}'
+links: []
+name: BOARD_MAINOSC
+type: build
diff --git a/spec/build/bsps/arm/atsam/optqspiflashsz.yml b/spec/build/bsps/arm/atsam/optqspiflashsz.yml
new file mode 100644
index 0000000000..a9a71b049f
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optqspiflashsz.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- format-and-define: null
+- env-assign: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 2097152
+default-by-variant: []
+description: |
+ size of QSPI flash in bytes
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ATSAM_MEMORY_QSPIFLASH_SIZE
+type: build
diff --git a/spec/build/bsps/arm/atsam/optsdram.yml b/spec/build/bsps/arm/atsam/optsdram.yml
new file mode 100644
index 0000000000..c07edd9ba5
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optsdram.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- script: |
+ s = ("ATSAM_SDRAM_IS42S16100E_7BLI", 0x00200000)
+ sdram = {
+ "is42s16100e-7bli": s,
+ "is42s16320f-7bl": ("ATSAM_SDRAM_IS42S16320F_7BL", 0x04000000),
+ "mt48lc16m16a2p-6a": ("ATSAM_SDRAM_MT48LC16M16A2P_6A", 0x02000000),
+ }
+ if value:
+ try:
+ s = sdram[value]
+ except:
+ conf.fatal("Unkown SDRAM variant '{}'".format(value))
+ conf.define_cond(s[0], True)
+ conf.env["ATSAM_MEMORY_SDRAM_SIZE"] = s[1]
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: is42s16100e-7bli
+default-by-variant: []
+description: |
+ SDRAM variant
+enabled-by: true
+format: '{}'
+links: []
+name: ATSAM_SDRAM
+type: build
diff --git a/spec/build/bsps/arm/atsam/opttcmsz.yml b/spec/build/bsps/arm/atsam/opttcmsz.yml
new file mode 100644
index 0000000000..7e8b1121e8
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/opttcmsz.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- format-and-define: null
+- env-assign: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ size of tightly coupled memories (TCM) in bytes
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ATSAM_MEMORY_TCM_SIZE
+type: build
diff --git a/spec/build/bsps/arm/atsam/optusextal.yml b/spec/build/bsps/arm/atsam/optusextal.yml
new file mode 100644
index 0000000000..6353956d15
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/optusextal.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Use the external crystal as source for the slow clock instead of the internal RC oscillator. Note that on the ATSAM the NRST pin seems to depend on the slow clock as well as all watchdogs. If ATSAM_SLOWCLOCK_USE_XTAL is set to 1 without a external crystal connected, the controller might hang in the switching process without a working NRST pin.
+enabled-by: true
+links: []
+name: ATSAM_SLOWCLOCK_USE_XTAL
+type: build
diff --git a/spec/build/bsps/arm/atsam/tstatsamv.yml b/spec/build/bsps/arm/atsam/tstatsamv.yml
new file mode 100644
index 0000000000..41d28657e9
--- /dev/null
+++ b/spec/build/bsps/arm/atsam/tstatsamv.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ flashdisk01: exclude
+ fsdosfsname01: exclude
+ ftp01: exclude
+ jffs2fserror: exclude
+ jffs2fslink: exclude
+ jffs2fspatheval: exclude
+ jffs2fspermission: exclude
+ jffs2fsrdwr: exclude
+ jffs2fsscandir01: exclude
+ jffs2fssymlink: exclude
+ jffs2fstime: exclude
+ linpack: exclude
+ mghttpd01: exclude
+ pppd: exclude
+ psxconfig01: exclude
+ record02: exclude
+ sp16: exclude
+ sp25: exclude
+ sp48: exclude
+ spregionerr01: exclude
+ spstkalloc02: exclude
+ tmfine01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/arm/beagle/abi.yml b/spec/build/bsps/arm/beagle/abi.yml
new file mode 100644
index 0000000000..80b94605e7
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=cortex-a8
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/beagle/bspboardorig.yml b/spec/build/bsps/arm/beagle/bspboardorig.yml
new file mode 100644
index 0000000000..92eb7001fd
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/bspboardorig.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: beagleboardorig
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: beagle
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/beagle/bspboardxm.yml b/spec/build/bsps/arm/beagle/bspboardxm.yml
new file mode 100644
index 0000000000..b0869cfbce
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/bspboardxm.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: beagleboardxm
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: beagle
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/beagle/bspboneblack.yml b/spec/build/bsps/arm/beagle/bspboneblack.yml
new file mode 100644
index 0000000000..7818fdebfa
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/bspboneblack.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: beagleboneblack
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: beagle
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/beagle/bspbonewhite.yml b/spec/build/bsps/arm/beagle/bspbonewhite.yml
new file mode 100644
index 0000000000..85ae13cea5
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/bspbonewhite.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: beaglebonewhite
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: beagle
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/beagle/grp.yml b/spec/build/bsps/arm/beagle/grp.yml
new file mode 100644
index 0000000000..1375913fd0
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/grp.yml
@@ -0,0 +1,44 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: optam335x
+- role: build-dependency
+ uid: optconbaud
+- role: build-dependency
+ uid: optconpoll
+- role: build-dependency
+ uid: optdebug
+- role: build-dependency
+ uid: optdm3730
+- role: build-dependency
+ uid: optfdtcpyro
+- role: build-dependency
+ uid: optfdtmxsz
+- role: build-dependency
+ uid: optfdtro
+- role: build-dependency
+ uid: optfdtuboot
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/beagle/obj.yml b/spec/build/bsps/arm/beagle/obj.yml
new file mode 100644
index 0000000000..87c0ad873d
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/obj.yml
@@ -0,0 +1,61 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/beagle/include/bsp.h
+ - bsps/arm/beagle/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/beagle/include/bsp/bbb-gpio.h
+ - bsps/arm/beagle/include/bsp/bbb-pwm.h
+ - bsps/arm/beagle/include/bsp/beagleboneblack.h
+ - bsps/arm/beagle/include/bsp/i2c.h
+ - bsps/arm/beagle/include/bsp/irq.h
+ - bsps/arm/beagle/include/bsp/spi.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/beagle/start/linkcmds
+links: []
+source:
+- bsps/arm/beagle/clock/clock.c
+- bsps/arm/beagle/console/console-config.c
+- bsps/arm/beagle/gpio/bbb-gpio.c
+- bsps/arm/beagle/i2c/bbb-i2c.c
+- bsps/arm/beagle/irq/irq.c
+- bsps/arm/beagle/pwm/pwm.c
+- bsps/arm/beagle/rtc/rtc.c
+- bsps/arm/beagle/spi/spi.c
+- bsps/arm/beagle/start/bspdebug.c
+- bsps/arm/beagle/start/bspreset.c
+- bsps/arm/beagle/start/bspstart.c
+- bsps/arm/beagle/start/bspstarthooks.c
+- bsps/arm/beagle/start/bspstartmmu.c
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/cache/cache-v7ar-disable-data.S
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/gpio/gpio-support.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bsp-fdt.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/beagle/optam335x.yml b/spec/build/bsps/arm/beagle/optam335x.yml
new file mode 100644
index 0000000000..2453aae088
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optam335x.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/beaglebone.*
+description: |
+ true if SOC is AM335X
+enabled-by: true
+links: []
+name: IS_AM335X
+type: build
diff --git a/spec/build/bsps/arm/beagle/optconbaud.yml b/spec/build/bsps/arm/beagle/optconbaud.yml
new file mode 100644
index 0000000000..9c3eaff15b
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optconbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ initial baud for console UART
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_BAUD
+type: build
diff --git a/spec/build/bsps/arm/beagle/optconpoll.yml b/spec/build/bsps/arm/beagle/optconpoll.yml
new file mode 100644
index 0000000000..1717792bb8
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optconpoll.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ polled console i/o (e.g. to run testsuite)
+enabled-by: true
+links: []
+name: CONSOLE_POLLED
+type: build
diff --git a/spec/build/bsps/arm/beagle/optdebug.yml b/spec/build/bsps/arm/beagle/optdebug.yml
new file mode 100644
index 0000000000..54f6c55f9a
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optdebug.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: false
+ variants:
+ - arm/beaglebone.*
+description: |
+ Enable BBB debug
+enabled-by: true
+links: []
+name: BBB_DEBUG
+type: build
diff --git a/spec/build/bsps/arm/beagle/optdm3730.yml b/spec/build/bsps/arm/beagle/optdm3730.yml
new file mode 100644
index 0000000000..3dd60260f3
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optdm3730.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/beagleboard.*
+description: |
+ true if SOC is DM3730
+enabled-by: true
+links: []
+name: IS_DM3730
+type: build
diff --git a/spec/build/bsps/arm/beagle/optfdtcpyro.yml b/spec/build/bsps/arm/beagle/optfdtcpyro.yml
new file mode 100644
index 0000000000..c26b1ae051
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optfdtcpyro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ copy the FDT blob into the read-only load area via bsp_fdt_copy()
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_COPY_TO_READ_ONLY_LOAD_AREA
+type: build
diff --git a/spec/build/bsps/arm/beagle/optfdtmxsz.yml b/spec/build/bsps/arm/beagle/optfdtmxsz.yml
new file mode 100644
index 0000000000..14af766230
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optfdtmxsz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 262144
+default-by-variant: []
+description: |
+ maximum size of the FDT blob in bytes
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_FDT_BLOB_SIZE_MAX
+type: build
diff --git a/spec/build/bsps/arm/beagle/optfdtro.yml b/spec/build/bsps/arm/beagle/optfdtro.yml
new file mode 100644
index 0000000000..a61bb2924b
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optfdtro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ place the FDT blob into the read-only data area
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_READ_ONLY
+type: build
diff --git a/spec/build/bsps/arm/beagle/optfdtuboot.yml b/spec/build/bsps/arm/beagle/optfdtuboot.yml
new file mode 100644
index 0000000000..5805e912ff
--- /dev/null
+++ b/spec/build/bsps/arm/beagle/optfdtuboot.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ copy the U-Boot provided FDT to an internal storage
+enabled-by: true
+links: []
+name: BSP_START_COPY_FDT_FROM_U_BOOT
+type: build
diff --git a/spec/build/bsps/arm/csb336/abi.yml b/spec/build/bsps/arm/csb336/abi.yml
new file mode 100644
index 0000000000..ccf0bc7ea2
--- /dev/null
+++ b/spec/build/bsps/arm/csb336/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=arm920
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/csb336/bspcsb336.yml b/spec/build/bsps/arm/csb336/bspcsb336.yml
new file mode 100644
index 0000000000..2842b0d5ac
--- /dev/null
+++ b/spec/build/bsps/arm/csb336/bspcsb336.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: csb336
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: csb336
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/csb336/include/bsp.h
+ - bsps/arm/csb336/include/mc9328mxl.h
+ - bsps/arm/csb336/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/csb336/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/csb336/start/linkcmds
+ - bsps/arm/csb336/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/csb336/btimer/btimer.c
+- bsps/arm/csb336/clock/clockdrv.c
+- bsps/arm/csb336/console/uart.c
+- bsps/arm/csb336/irq/irq.c
+- bsps/arm/csb336/start/bspstart.c
+- bsps/arm/csb336/start/memmap.c
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/cp15/arm920-mmu.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/arm/csb336/objnet.yml b/spec/build/bsps/arm/csb336/objnet.yml
new file mode 100644
index 0000000000..2888ae50e2
--- /dev/null
+++ b/spec/build/bsps/arm/csb336/objnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/arm/csb336/net/lan91c11x.c
+- bsps/arm/csb336/net/network.c
+type: build
diff --git a/spec/build/bsps/arm/csb336/start.yml b/spec/build/bsps/arm/csb336/start.yml
new file mode 100644
index 0000000000..7791d5b557
--- /dev/null
+++ b/spec/build/bsps/arm/csb336/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/arm/csb336/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/arm/csb337/abi.yml b/spec/build/bsps/arm/csb337/abi.yml
new file mode 100644
index 0000000000..ccf0bc7ea2
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=arm920
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/csb337/bspcsb337.yml b/spec/build/bsps/arm/csb337/bspcsb337.yml
new file mode 100644
index 0000000000..5665a29ef2
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/bspcsb337.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: csb337
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: csb337
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/csb337/bspcsb637.yml b/spec/build/bsps/arm/csb337/bspcsb637.yml
new file mode 100644
index 0000000000..dd8a4e1659
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/bspcsb637.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: csb637
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: csb337
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/csb337/bspkit637v6.yml b/spec/build/bsps/arm/csb337/bspkit637v6.yml
new file mode 100644
index 0000000000..375c264880
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/bspkit637v6.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: kit637_v6
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: csb337
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/csb337/grp.yml b/spec/build/bsps/arm/csb337/grp.yml
new file mode 100644
index 0000000000..ac5fc9279f
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/grp.yml
@@ -0,0 +1,52 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objlcd
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: objumon
+- role: build-dependency
+ uid: objumoncon
+- role: build-dependency
+ uid: optcsb637
+- role: build-dependency
+ uid: optenlcd
+- role: build-dependency
+ uid: optenumon
+- role: build-dependency
+ uid: optenumoncon
+- role: build-dependency
+ uid: optenusart0
+- role: build-dependency
+ uid: optenusart1
+- role: build-dependency
+ uid: optenusart2
+- role: build-dependency
+ uid: optenusart3
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/csb337/obj.yml b/spec/build/bsps/arm/csb337/obj.yml
new file mode 100644
index 0000000000..c541cfc207
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/obj.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/csb337/include/at91rm9200.h
+ - bsps/arm/csb337/include/at91rm9200_dbgu.h
+ - bsps/arm/csb337/include/at91rm9200_emac.h
+ - bsps/arm/csb337/include/at91rm9200_gpio.h
+ - bsps/arm/csb337/include/at91rm9200_mem.h
+ - bsps/arm/csb337/include/at91rm9200_pmc.h
+ - bsps/arm/csb337/include/at91rm9200_usart.h
+ - bsps/arm/csb337/include/bits.h
+ - bsps/arm/csb337/include/bsp.h
+ - bsps/arm/csb337/include/font8x16.h
+ - bsps/arm/csb337/include/sed1356.h
+ - bsps/arm/csb337/include/sed1356_16bit.h
+ - bsps/arm/csb337/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/csb337/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/csb337/start/linkcmds.csb337
+ - bsps/arm/csb337/start/linkcmds.csb637
+links: []
+source:
+- bsps/arm/csb337/btimer/btimer.c
+- bsps/arm/csb337/clock/clock.c
+- bsps/arm/csb337/console/dbgu.c
+- bsps/arm/csb337/console/uarts.c
+- bsps/arm/csb337/console/usart.c
+- bsps/arm/csb337/irq/irq.c
+- bsps/arm/csb337/start/bspreset.c
+- bsps/arm/csb337/start/bspstart.c
+- bsps/arm/csb337/start/memmap.c
+- bsps/arm/csb337/start/pmc.c
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/cp15/arm920-mmu.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/arm/csb337/objlcd.yml b/spec/build/bsps/arm/csb337/objlcd.yml
new file mode 100644
index 0000000000..6db16816cd
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/objlcd.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- ENABLE_LCD
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/csb337/console/fbcons.c
+- bsps/arm/csb337/console/sed1356.c
+type: build
diff --git a/spec/build/bsps/arm/csb337/objnet.yml b/spec/build/bsps/arm/csb337/objnet.yml
new file mode 100644
index 0000000000..60849d530d
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/arm/csb337/net/network.c
+type: build
diff --git a/spec/build/bsps/arm/csb337/objumon.yml b/spec/build/bsps/arm/csb337/objumon.yml
new file mode 100644
index 0000000000..e7d8c38a96
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/objumon.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- ENABLE_UMON
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - bsps/include/rtems/umon.h
+- destination: ${BSP_INCLUDEDIR}/umon
+ source:
+ - bsps/include/umon/cli.h
+ - bsps/include/umon/monlib.h
+ - bsps/include/umon/tfs.h
+links: []
+source:
+- bsps/arm/csb337/start/umonsupp.c
+- bsps/arm/csb337/umon/monlib.c
+- bsps/arm/csb337/umon/tfsDriver.c
+- bsps/arm/csb337/umon/umonrtemsglue.c
+type: build
diff --git a/spec/build/bsps/arm/csb337/objumoncon.yml b/spec/build/bsps/arm/csb337/objumoncon.yml
new file mode 100644
index 0000000000..93e42a8058
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/objumoncon.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- ENABLE_UMON_CONSOLE
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/csb337/umon/umoncons.c
+type: build
diff --git a/spec/build/bsps/arm/csb337/optcsb637.yml b/spec/build/bsps/arm/csb337/optcsb637.yml
new file mode 100644
index 0000000000..5db48e1f0a
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/optcsb637.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/kit637_v6
+- value: true
+ variants:
+ - arm/csb637
+description: |
+ If defined, this indicates that the BSP is being built for the csb637 variant.
+enabled-by: true
+links: []
+name: csb637
+type: build
diff --git a/spec/build/bsps/arm/csb337/optenlcd.yml b/spec/build/bsps/arm/csb337/optenlcd.yml
new file mode 100644
index 0000000000..40617f7c2f
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/optenlcd.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: false
+ variants:
+ - arm/kit637_v6
+description: |
+ If defined, enable use of the SED1356 controller and LCD.
+enabled-by: true
+links: []
+name: ENABLE_LCD
+type: build
diff --git a/spec/build/bsps/arm/csb337/optenumon.yml b/spec/build/bsps/arm/csb337/optenumon.yml
new file mode 100644
index 0000000000..8286e0fa4b
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/optenumon.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, enable use of the uMon console.
+enabled-by: true
+links: []
+name: ENABLE_UMON
+type: build
diff --git a/spec/build/bsps/arm/csb337/optenumoncon.yml b/spec/build/bsps/arm/csb337/optenumoncon.yml
new file mode 100644
index 0000000000..e2ca577184
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/optenumoncon.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, enable use of the MicroMonitor console device.
+enabled-by: true
+links: []
+name: ENABLE_UMON_CONSOLE
+type: build
diff --git a/spec/build/bsps/arm/csb337/optenusart0.yml b/spec/build/bsps/arm/csb337/optenusart0.yml
new file mode 100644
index 0000000000..cd968f8dbc
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/optenusart0.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, enable use of the USART 0.
+enabled-by: true
+links: []
+name: ENABLE_USART0
+type: build
diff --git a/spec/build/bsps/arm/csb337/optenusart1.yml b/spec/build/bsps/arm/csb337/optenusart1.yml
new file mode 100644
index 0000000000..963d2a9742
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/optenusart1.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, enable use of the USART 1.
+enabled-by: true
+links: []
+name: ENABLE_USART1
+type: build
diff --git a/spec/build/bsps/arm/csb337/optenusart2.yml b/spec/build/bsps/arm/csb337/optenusart2.yml
new file mode 100644
index 0000000000..d4ae1fe756
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/optenusart2.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, enable use of the USART 2.
+enabled-by: true
+links: []
+name: ENABLE_USART2
+type: build
diff --git a/spec/build/bsps/arm/csb337/optenusart3.yml b/spec/build/bsps/arm/csb337/optenusart3.yml
new file mode 100644
index 0000000000..200824f3e3
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/optenusart3.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, enable use of the USART 3.
+enabled-by: true
+links: []
+name: ENABLE_USART3
+type: build
diff --git a/spec/build/bsps/arm/csb337/start.yml b/spec/build/bsps/arm/csb337/start.yml
new file mode 100644
index 0000000000..7dd6661d98
--- /dev/null
+++ b/spec/build/bsps/arm/csb337/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/arm/csb337/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/arm/edb7312/abi.yml b/spec/build/bsps/arm/edb7312/abi.yml
new file mode 100644
index 0000000000..ab6ef203fa
--- /dev/null
+++ b/spec/build/bsps/arm/edb7312/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=arm7tdmi
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/edb7312/bspedb7312.yml b/spec/build/bsps/arm/edb7312/bspedb7312.yml
new file mode 100644
index 0000000000..aa73f7a51b
--- /dev/null
+++ b/spec/build/bsps/arm/edb7312/bspedb7312.yml
@@ -0,0 +1,62 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: edb7312
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: edb7312
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/edb7312/include/bsp.h
+ - bsps/arm/edb7312/include/ep7312.h
+ - bsps/arm/edb7312/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/edb7312/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/edb7312/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optskyeye
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/edb7312/btimer/btimer.c
+- bsps/arm/edb7312/clock/clockdrv.c
+- bsps/arm/edb7312/console/uart.c
+- bsps/arm/edb7312/irq/bsp_irq_asm.S
+- bsps/arm/edb7312/irq/irq.c
+- bsps/arm/edb7312/start/bspreset.c
+- bsps/arm/edb7312/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/arm/edb7312/objnet.yml b/spec/build/bsps/arm/edb7312/objnet.yml
new file mode 100644
index 0000000000..7c7d6080cf
--- /dev/null
+++ b/spec/build/bsps/arm/edb7312/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/arm/edb7312/net/network.c
+type: build
diff --git a/spec/build/bsps/arm/edb7312/optskyeye.yml b/spec/build/bsps/arm/edb7312/optskyeye.yml
new file mode 100644
index 0000000000..be55a98c3a
--- /dev/null
+++ b/spec/build/bsps/arm/edb7312/optskyeye.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, enable options which optimize executingon the Skyeye simulator. Speed up the clock ticks while the idle task is running so time spent in the idle task is minimized. This significantly reduces the wall time required to execute the RTEMS test suites.
+enabled-by: true
+links: []
+name: ON_SKYEYE
+type: build
diff --git a/spec/build/bsps/arm/edb7312/start.yml b/spec/build/bsps/arm/edb7312/start.yml
new file mode 100644
index 0000000000..b1270224f1
--- /dev/null
+++ b/spec/build/bsps/arm/edb7312/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/arm/edb7312/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/arm/grp.yml b/spec/build/bsps/arm/grp.yml
new file mode 100644
index 0000000000..2bf0b82423
--- /dev/null
+++ b/spec/build/bsps/arm/grp.yml
@@ -0,0 +1,62 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/include/cmsis_gcc.h
+ - bsps/arm/include/core_cm7.h
+ - bsps/arm/include/core_cmFunc.h
+ - bsps/arm/include/core_cmInstr.h
+ - bsps/arm/include/core_cmSimd.h
+ - bsps/arm/include/uart.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/include/bsp/arm-a8core-start.h
+ - bsps/arm/include/bsp/arm-a9mpcore-clock.h
+ - bsps/arm/include/bsp/arm-a9mpcore-irq.h
+ - bsps/arm/include/bsp/arm-a9mpcore-regs.h
+ - bsps/arm/include/bsp/arm-a9mpcore-start.h
+ - bsps/arm/include/bsp/arm-cp15-start.h
+ - bsps/arm/include/bsp/arm-errata.h
+ - bsps/arm/include/bsp/arm-gic-irq.h
+ - bsps/arm/include/bsp/arm-gic-regs.h
+ - bsps/arm/include/bsp/arm-gic-tm27.h
+ - bsps/arm/include/bsp/arm-gic.h
+ - bsps/arm/include/bsp/arm-pl011-regs.h
+ - bsps/arm/include/bsp/arm-pl011.h
+ - bsps/arm/include/bsp/arm-pl050-regs.h
+ - bsps/arm/include/bsp/arm-pl050.h
+ - bsps/arm/include/bsp/arm-pl111-fb.h
+ - bsps/arm/include/bsp/arm-pl111-regs.h
+ - bsps/arm/include/bsp/arm-release-id.h
+ - bsps/arm/include/bsp/armv7m-irq.h
+ - bsps/arm/include/bsp/clock-armv7m.h
+ - bsps/arm/include/bsp/linker-symbols.h
+ - bsps/arm/include/bsp/lpc-dma.h
+ - bsps/arm/include/bsp/lpc-emc.h
+ - bsps/arm/include/bsp/lpc-i2s.h
+ - bsps/arm/include/bsp/lpc-lcd.h
+ - bsps/arm/include/bsp/lpc-timer.h
+ - bsps/arm/include/bsp/start.h
+ - bsps/arm/include/bsp/zynq-uart-regs.h
+ - bsps/arm/include/bsp/zynq-uart.h
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - bsps/arm/include/libcpu/am335x.h
+ - bsps/arm/include/libcpu/mmu.h
+ - bsps/arm/include/libcpu/omap3.h
+ - bsps/arm/include/libcpu/omap_timer.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/shared/start/linkcmds.armv4
+ - bsps/arm/shared/start/linkcmds.armv7m
+ - bsps/arm/shared/start/linkcmds.base
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/gumstix/abi.yml b/spec/build/bsps/arm/gumstix/abi.yml
new file mode 100644
index 0000000000..41a3903894
--- /dev/null
+++ b/spec/build/bsps/arm/gumstix/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=xscale
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/gumstix/bspgumstix.yml b/spec/build/bsps/arm/gumstix/bspgumstix.yml
new file mode 100644
index 0000000000..49b809561f
--- /dev/null
+++ b/spec/build/bsps/arm/gumstix/bspgumstix.yml
@@ -0,0 +1,66 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: gumstix
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gumstix
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/gumstix/include/bsp.h
+ - bsps/arm/gumstix/include/ffuart.h
+ - bsps/arm/gumstix/include/pxa255.h
+ - bsps/arm/gumstix/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/gumstix/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/gumstix/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optskyeye
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/gumstix/btimer/btimer.c
+- bsps/arm/gumstix/clock/clock.c
+- bsps/arm/gumstix/console/ffuart.c
+- bsps/arm/gumstix/console/uarts.c
+- bsps/arm/gumstix/fb/fb.c
+- bsps/arm/gumstix/irq/irq.c
+- bsps/arm/gumstix/start/bspreset.c
+- bsps/arm/gumstix/start/bspstart.c
+- bsps/arm/gumstix/start/memmap.c
+- bsps/arm/shared/cp15/arm920-mmu.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/arm/gumstix/objnet.yml b/spec/build/bsps/arm/gumstix/objnet.yml
new file mode 100644
index 0000000000..01ca5bea2d
--- /dev/null
+++ b/spec/build/bsps/arm/gumstix/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/arm/gumstix/net/rtl8019.c
+type: build
diff --git a/spec/build/bsps/arm/gumstix/optskyeye.yml b/spec/build/bsps/arm/gumstix/optskyeye.yml
new file mode 100644
index 0000000000..be55a98c3a
--- /dev/null
+++ b/spec/build/bsps/arm/gumstix/optskyeye.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, enable options which optimize executingon the Skyeye simulator. Speed up the clock ticks while the idle task is running so time spent in the idle task is minimized. This significantly reduces the wall time required to execute the RTEMS test suites.
+enabled-by: true
+links: []
+name: ON_SKYEYE
+type: build
diff --git a/spec/build/bsps/arm/gumstix/start.yml b/spec/build/bsps/arm/gumstix/start.yml
new file mode 100644
index 0000000000..e663028666
--- /dev/null
+++ b/spec/build/bsps/arm/gumstix/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/arm/gumstix/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/arm/imx/abi.yml b/spec/build/bsps/arm/imx/abi.yml
new file mode 100644
index 0000000000..169a5e6584
--- /dev/null
+++ b/spec/build/bsps/arm/imx/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=armv7-a
+- -mthumb
+- -mfpu=neon
+- -mfloat-abi=hard
+- -mtune=cortex-a7
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/imx/bspimx.yml b/spec/build/bsps/arm/imx/bspimx.yml
new file mode 100644
index 0000000000..0d32669a4a
--- /dev/null
+++ b/spec/build/bsps/arm/imx/bspimx.yml
@@ -0,0 +1,104 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: imx7
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: imx
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/imx/include/bsp.h
+ - bsps/arm/imx/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/arm/freescale/imx
+ source:
+ - bsps/arm/imx/include/arm/freescale/imx/imx_ccmvar.h
+ - bsps/arm/imx/include/arm/freescale/imx/imx_ecspireg.h
+ - bsps/arm/imx/include/arm/freescale/imx/imx_gpcreg.h
+ - bsps/arm/imx/include/arm/freescale/imx/imx_i2creg.h
+ - bsps/arm/imx/include/arm/freescale/imx/imx_iomuxreg.h
+ - bsps/arm/imx/include/arm/freescale/imx/imx_iomuxvar.h
+ - bsps/arm/imx/include/arm/freescale/imx/imx_srcreg.h
+ - bsps/arm/imx/include/arm/freescale/imx/imx_uartreg.h
+ - bsps/arm/imx/include/arm/freescale/imx/imx_wdogreg.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/imx/include/bsp/imx-gpio.h
+ - bsps/arm/imx/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/imx/start/linkcmds
+ - bsps/arm/imx/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optcachedata
+- role: build-dependency
+ uid: optcacheinst
+- role: build-dependency
+ uid: optccmahb
+- role: build-dependency
+ uid: optcmmecspi
+- role: build-dependency
+ uid: optcmmipg
+- role: build-dependency
+ uid: optcmmsdhci
+- role: build-dependency
+ uid: optcmmuart
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optfdtcpyro
+- role: build-dependency
+ uid: optfdtmxsz
+- role: build-dependency
+ uid: optfdtro
+- role: build-dependency
+ uid: optfdtuboot
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/imx/console/console-config.c
+- bsps/arm/imx/gpio/imx-gpio.c
+- bsps/arm/imx/i2c/imx-i2c.c
+- bsps/arm/imx/spi/imx-ecspi.c
+- bsps/arm/imx/start/bspreset.c
+- bsps/arm/imx/start/bspstart.c
+- bsps/arm/imx/start/bspstarthooks.c
+- bsps/arm/imx/start/ccm.c
+- bsps/arm/imx/start/imx_iomux.c
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/cache/cache-v7ar-disable-data.S
+- bsps/arm/shared/clock/clock-generic-timer.c
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/irq/irq-gic.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bsp-fdt.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/imx/objsmp.yml b/spec/build/bsps/arm/imx/objsmp.yml
new file mode 100644
index 0000000000..80dd811ddc
--- /dev/null
+++ b/spec/build/bsps/arm/imx/objsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/imx/start/bspsmp.c
+- bsps/arm/shared/start/arm-a9mpcore-smp.c
+type: build
diff --git a/spec/build/bsps/arm/imx/optcachedata.yml b/spec/build/bsps/arm/imx/optcachedata.yml
new file mode 100644
index 0000000000..1664b0fc31
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optcachedata.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*qemu
+description: |
+ enable data cache
+enabled-by: true
+links: []
+name: BSP_DATA_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/imx/optcacheinst.yml b/spec/build/bsps/arm/imx/optcacheinst.yml
new file mode 100644
index 0000000000..b191133af9
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optcacheinst.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*qemu
+description: |
+ enable instruction cache
+enabled-by: true
+links: []
+name: BSP_INSTRUCTION_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/imx/optccmahb.yml b/spec/build/bsps/arm/imx/optccmahb.yml
new file mode 100644
index 0000000000..a515a44204
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optccmahb.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 135000000
+default-by-variant: []
+description: |
+ AHB clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: IMX_CCM_AHB_HZ
+type: build
diff --git a/spec/build/bsps/arm/imx/optcmmecspi.yml b/spec/build/bsps/arm/imx/optcmmecspi.yml
new file mode 100644
index 0000000000..1f32305aef
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optcmmecspi.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 67500000
+default-by-variant: []
+description: |
+ ECSPI clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: IMX_CCM_ECSPI_HZ
+type: build
diff --git a/spec/build/bsps/arm/imx/optcmmipg.yml b/spec/build/bsps/arm/imx/optcmmipg.yml
new file mode 100644
index 0000000000..8c62921ef6
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optcmmipg.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 67500000
+default-by-variant: []
+description: |
+ IPG clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: IMX_CCM_IPG_HZ
+type: build
diff --git a/spec/build/bsps/arm/imx/optcmmsdhci.yml b/spec/build/bsps/arm/imx/optcmmsdhci.yml
new file mode 100644
index 0000000000..fa06f8111a
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optcmmsdhci.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 196363000
+default-by-variant: []
+description: |
+ SDHCI clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: IMX_CCM_SDHCI_HZ
+type: build
diff --git a/spec/build/bsps/arm/imx/optcmmuart.yml b/spec/build/bsps/arm/imx/optcmmuart.yml
new file mode 100644
index 0000000000..ab69c87323
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optcmmuart.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 24000000
+default-by-variant: []
+description: |
+ UART clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: IMX_CCM_UART_HZ
+type: build
diff --git a/spec/build/bsps/arm/imx/optconirq.yml b/spec/build/bsps/arm/imx/optconirq.yml
new file mode 100644
index 0000000000..d94a5d20d9
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optconirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ use interrupt driven mode for console devices (used by default)
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/arm/imx/optfdtcpyro.yml b/spec/build/bsps/arm/imx/optfdtcpyro.yml
new file mode 100644
index 0000000000..c26b1ae051
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optfdtcpyro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ copy the FDT blob into the read-only load area via bsp_fdt_copy()
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_COPY_TO_READ_ONLY_LOAD_AREA
+type: build
diff --git a/spec/build/bsps/arm/imx/optfdtmxsz.yml b/spec/build/bsps/arm/imx/optfdtmxsz.yml
new file mode 100644
index 0000000000..14af766230
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optfdtmxsz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 262144
+default-by-variant: []
+description: |
+ maximum size of the FDT blob in bytes
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_FDT_BLOB_SIZE_MAX
+type: build
diff --git a/spec/build/bsps/arm/imx/optfdtro.yml b/spec/build/bsps/arm/imx/optfdtro.yml
new file mode 100644
index 0000000000..a61bb2924b
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optfdtro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ place the FDT blob into the read-only data area
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_READ_ONLY
+type: build
diff --git a/spec/build/bsps/arm/imx/optfdtuboot.yml b/spec/build/bsps/arm/imx/optfdtuboot.yml
new file mode 100644
index 0000000000..5805e912ff
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optfdtuboot.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ copy the U-Boot provided FDT to an internal storage
+enabled-by: true
+links: []
+name: BSP_START_COPY_FDT_FROM_U_BOOT
+type: build
diff --git a/spec/build/bsps/arm/imx/optresetvec.yml b/spec/build/bsps/arm/imx/optresetvec.yml
new file mode 100644
index 0000000000..efd1ea2b2a
--- /dev/null
+++ b/spec/build/bsps/arm/imx/optresetvec.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ reset vector address for BSP start
+enabled-by: true
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/abi.yml b/spec/build/bsps/arm/lm3s69xx/abi.yml
new file mode 100644
index 0000000000..77d5db8cf7
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mthumb
+- -mcpu=cortex-m3
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/bsplm3s3749.yml b/spec/build/bsps/arm/lm3s69xx/bsplm3s3749.yml
new file mode 100644
index 0000000000..f9006ac2cd
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/bsplm3s3749.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lm3s3749
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lm3s69xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlm3s3749
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/bsplm3s6965.yml b/spec/build/bsps/arm/lm3s69xx/bsplm3s6965.yml
new file mode 100644
index 0000000000..aa7627d33f
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/bsplm3s6965.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lm3s6965
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lm3s69xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlm3s6965
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/bsplm4f120.yml b/spec/build/bsps/arm/lm3s69xx/bsplm4f120.yml
new file mode 100644
index 0000000000..cbfe6707d5
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/bsplm4f120.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lm4f120
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lm3s69xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlm4f120
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/bspqemu.yml b/spec/build/bsps/arm/lm3s69xx/bspqemu.yml
new file mode 100644
index 0000000000..ca15af5b37
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/bspqemu.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lm3s6965_qemu
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lm3s69xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/grp.yml b/spec/build/bsps/arm/lm3s69xx/grp.yml
new file mode 100644
index 0000000000..2ab26fe919
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/grp.yml
@@ -0,0 +1,56 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: optenuart0
+- role: build-dependency
+ uid: optenuart1
+- role: build-dependency
+ uid: optenuart2
+- role: build-dependency
+ uid: optgpioahb
+- role: build-dependency
+ uid: optgpionum
+- role: build-dependency
+ uid: optlm3s3749
+- role: build-dependency
+ uid: optlm3s6965
+- role: build-dependency
+ uid: optlm4f120
+- role: build-dependency
+ uid: optssiblks
+- role: build-dependency
+ uid: optssiclk
+- role: build-dependency
+ uid: optsysclk
+- role: build-dependency
+ uid: optuartbaud
+- role: build-dependency
+ uid: optudma
+- role: build-dependency
+ uid: optxtalcfg
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/lm3s69xx/obj.yml b/spec/build/bsps/arm/lm3s69xx/obj.yml
new file mode 100644
index 0000000000..5e01ce7a61
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/obj.yml
@@ -0,0 +1,55 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/lm3s69xx/include/bsp.h
+ - bsps/arm/lm3s69xx/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/lm3s69xx/include/bsp/io.h
+ - bsps/arm/lm3s69xx/include/bsp/irq.h
+ - bsps/arm/lm3s69xx/include/bsp/lm3s69xx.h
+ - bsps/arm/lm3s69xx/include/bsp/ssi.h
+ - bsps/arm/lm3s69xx/include/bsp/syscon.h
+ - bsps/arm/lm3s69xx/include/bsp/uart.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/lm3s69xx/start/linkcmds.lm3s3749
+ - bsps/arm/lm3s69xx/start/linkcmds.lm3s6965
+ - bsps/arm/lm3s69xx/start/linkcmds.lm3s6965_qemu
+links: []
+source:
+- bsps/arm/lm3s69xx/console/console-config.c
+- bsps/arm/lm3s69xx/console/uart.c
+- bsps/arm/lm3s69xx/i2c/ssi.c
+- bsps/arm/lm3s69xx/start/bspstart.c
+- bsps/arm/lm3s69xx/start/bspstarthook.c
+- bsps/arm/lm3s69xx/start/io.c
+- bsps/arm/lm3s69xx/start/syscon.c
+- bsps/arm/shared/clock/clock-armv7m.c
+- bsps/arm/shared/irq/irq-armv7m.c
+- bsps/arm/shared/irq/irq-dispatch-armv7m.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/shared/start/bspreset-armv7m.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optenuart0.yml b/spec/build/bsps/arm/lm3s69xx/optenuart0.yml
new file mode 100644
index 0000000000..fa3254dbf5
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optenuart0.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ enable UART 0
+enabled-by: true
+links: []
+name: LM3S69XX_ENABLE_UART_0
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optenuart1.yml b/spec/build/bsps/arm/lm3s69xx/optenuart1.yml
new file mode 100644
index 0000000000..42c6133cf5
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optenuart1.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable UART 1
+enabled-by: true
+links: []
+name: LM3S69XX_ENABLE_UART_1
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optenuart2.yml b/spec/build/bsps/arm/lm3s69xx/optenuart2.yml
new file mode 100644
index 0000000000..0de60cb7a7
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optenuart2.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable UART 2
+enabled-by: true
+links: []
+name: LM3S69XX_ENABLE_UART_2
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optgpioahb.yml b/spec/build/bsps/arm/lm3s69xx/optgpioahb.yml
new file mode 100644
index 0000000000..5266ec8549
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optgpioahb.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lm3s3749.*
+- value: true
+ variants:
+ - arm/lm4f.*
+description: |
+ use AHB apperture to access GPIO registers
+enabled-by: true
+links: []
+name: LM3S69XX_USE_AHB_FOR_GPIO
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optgpionum.yml b/spec/build/bsps/arm/lm3s69xx/optgpionum.yml
new file mode 100644
index 0000000000..05911d140c
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optgpionum.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 8
+ variants:
+ - arm/lm3s3749.*
+- value: 7
+ variants:
+ - arm/lm3s6965.*
+- value: 6
+ variants:
+ - arm/lm4f120.*
+description: |
+ number of GPIO blocks supported by MCU
+enabled-by: true
+format: '{}'
+links: []
+name: LM3S69XX_NUM_GPIO_BLOCKS
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optlm3s3749.yml b/spec/build/bsps/arm/lm3s69xx/optlm3s3749.yml
new file mode 100644
index 0000000000..22199d8d59
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optlm3s3749.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lm3s3749.*
+description: |
+ board has LM3S3749 MCU
+enabled-by: true
+links: []
+name: LM3S69XX_MCU_LM3S3749
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optlm3s6965.yml b/spec/build/bsps/arm/lm3s69xx/optlm3s6965.yml
new file mode 100644
index 0000000000..be01195f1d
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optlm3s6965.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lm3s6965.*
+description: |
+ board has LM3S6965 MCU
+enabled-by: true
+links: []
+name: LM3S69XX_MCU_LM3S6965
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optlm4f120.yml b/spec/build/bsps/arm/lm3s69xx/optlm4f120.yml
new file mode 100644
index 0000000000..b3c59921b6
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optlm4f120.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lm4f120.*
+description: |
+ board has LM4F120xxx MCU
+enabled-by: true
+links: []
+name: LM3S69XX_MCU_LM4F120
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optssiblks.yml b/spec/build/bsps/arm/lm3s69xx/optssiblks.yml
new file mode 100644
index 0000000000..551a27cbf2
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optssiblks.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 2
+ variants:
+ - arm/lm3s3749.*
+- value: 1
+ variants:
+ - arm/lm3s6965.*
+- value: 4
+ variants:
+ - arm/lm4f120.*
+description: |
+ number of SSI blocks supported by MCU
+enabled-by: true
+format: '{}'
+links: []
+name: LM3S69XX_NUM_SSI_BLOCKS
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optssiclk.yml b/spec/build/bsps/arm/lm3s69xx/optssiclk.yml
new file mode 100644
index 0000000000..b278880160
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optssiclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1000000
+default-by-variant: []
+description: |
+ SSI clock in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LM3S69XX_SSI_CLOCK
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optsysclk.yml b/spec/build/bsps/arm/lm3s69xx/optsysclk.yml
new file mode 100644
index 0000000000..ffdd8d78c3
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optsysclk.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 50000000
+ variants:
+ - arm/lm3s.*
+- value: 80000000
+ variants:
+ - arm/lm4f.*
+description: |
+ system clock in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LM3S69XX_SYSTEM_CLOCK
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optuartbaud.yml b/spec/build/bsps/arm/lm3s69xx/optuartbaud.yml
new file mode 100644
index 0000000000..9b1deff47c
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optuartbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for UARTs
+enabled-by: true
+format: '{}'
+links: []
+name: LM3S69XX_UART_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optudma.yml b/spec/build/bsps/arm/lm3s69xx/optudma.yml
new file mode 100644
index 0000000000..88aae5094c
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optudma.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lm3s3749.*
+- value: true
+ variants:
+ - arm/lm4f.*
+description: |
+ defined if MCU supports UDMA
+enabled-by: true
+links: []
+name: LM3S69XX_HAS_UDMA
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/optxtalcfg.yml b/spec/build/bsps/arm/lm3s69xx/optxtalcfg.yml
new file mode 100644
index 0000000000..d034385cd3
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/optxtalcfg.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 14
+ variants:
+ - arm/lm3s6965.*
+- value: 16
+ variants:
+ - arm/lm3s3749.*
+- value: 21
+ variants:
+ - arm/lm4f120.*
+description: |
+ crystal configuration for RCC register
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: LM3S69XX_XTAL_CONFIG
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/tstlm3s3749.yml b/spec/build/bsps/arm/lm3s69xx/tstlm3s3749.yml
new file mode 100644
index 0000000000..1e62c8bda5
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/tstlm3s3749.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ capture: exclude
+ cdtest: exclude
+ fileio: exclude
+ fsdosfsformat01: exclude
+ fsrfsbitmap01: exclude
+ ftp01: exclude
+ iostream: exclude
+ loopback: exclude
+ mdosfsfserror: exclude
+ mdosfsfsrdwr: exclude
+ mghttpd01: exclude
+ monitor02: exclude
+ paranoia: exclude
+ pppd: exclude
+ record01: exclude
+ rtems: exclude
+ shell01: exclude
+ sptls02: exclude
+ syscall01: exclude
+ telnetd01: exclude
+ ttest01: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnorfs
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/tstlm3s6965.yml b/spec/build/bsps/arm/lm3s69xx/tstlm3s6965.yml
new file mode 100644
index 0000000000..f752f18b93
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/tstlm3s6965.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ ftp01: exclude
+ iostream: exclude
+ mghttpd01: exclude
+ monitor02: exclude
+ pppd: exclude
+ rtems: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/lm3s69xx/tstlm4f120.yml b/spec/build/bsps/arm/lm3s69xx/tstlm4f120.yml
new file mode 100644
index 0000000000..e9dbfc5a9f
--- /dev/null
+++ b/spec/build/bsps/arm/lm3s69xx/tstlm4f120.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ block08: exclude
+ capture: exclude
+ fileio: exclude
+ ftp01: exclude
+ iostream: exclude
+ loopback: exclude
+ mghttpd01: exclude
+ ostream: exclude
+ pppd: exclude
+ psxaio01: exclude
+ psxaio02: exclude
+ psxaio03: exclude
+ psxsignal07: exclude
+ sp16: exclude
+ sp25: exclude
+ sp42: exclude
+ sp48: exclude
+ sp71: exclude
+ spregionerr01: exclude
+ sptimecounter02: exclude
+ sptimecounter03: exclude
+ telnetd01: exclude
+ tmcontext01: exclude
+ top: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/abi.yml b/spec/build/bsps/arm/lpc176x/abi.yml
new file mode 100644
index 0000000000..77d5db8cf7
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mthumb
+- -mcpu=cortex-m3
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/bsplpc1768mbed.yml b/spec/build/bsps/arm/lpc176x/bsplpc1768mbed.yml
new file mode 100644
index 0000000000..189ef44c63
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/bsplpc1768mbed.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc1768_mbed
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc176x
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlpc1768mbed
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/bsplpc1768mbedahbram.yml b/spec/build/bsps/arm/lpc176x/bsplpc1768mbedahbram.yml
new file mode 100644
index 0000000000..705599cbb8
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/bsplpc1768mbedahbram.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc1768_mbed_ahb_ram
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc176x
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlpc1768mbedahbram
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/bsplpc1768mbedahbrameth.yml b/spec/build/bsps/arm/lpc176x/bsplpc1768mbedahbrameth.yml
new file mode 100644
index 0000000000..4d1dddef55
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/bsplpc1768mbedahbrameth.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc1768_mbed_ahb_ram_eth
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc176x
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlpc1768mbedahbrameth
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/grp.yml b/spec/build/bsps/arm/lpc176x/grp.yml
new file mode 100644
index 0000000000..fba2a13cd8
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/grp.yml
@@ -0,0 +1,52 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: optcclk
+- role: build-dependency
+ uid: optconcfg
+- role: build-dependency
+ uid: optdmachn
+- role: build-dependency
+ uid: optlpc1768
+- role: build-dependency
+ uid: optmintskstksz
+- role: build-dependency
+ uid: optoscmain
+- role: build-dependency
+ uid: optoscrtc
+- role: build-dependency
+ uid: optpclkdiv
+- role: build-dependency
+ uid: optstopgpdma
+- role: build-dependency
+ uid: optstopusb
+- role: build-dependency
+ uid: optuart1cfg
+- role: build-dependency
+ uid: optuartbaud
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/lpc176x/obj.yml b/spec/build/bsps/arm/lpc176x/obj.yml
new file mode 100644
index 0000000000..c77a7ce404
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/obj.yml
@@ -0,0 +1,80 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/lpc176x/include/bsp.h
+ - bsps/arm/lpc176x/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/lpc176x/include/bsp/adc-defs.h
+ - bsps/arm/lpc176x/include/bsp/adc.h
+ - bsps/arm/lpc176x/include/bsp/can-defs.h
+ - bsps/arm/lpc176x/include/bsp/can.h
+ - bsps/arm/lpc176x/include/bsp/common-types.h
+ - bsps/arm/lpc176x/include/bsp/dma.h
+ - bsps/arm/lpc176x/include/bsp/gpio-defs.h
+ - bsps/arm/lpc176x/include/bsp/io-defs.h
+ - bsps/arm/lpc176x/include/bsp/io.h
+ - bsps/arm/lpc176x/include/bsp/irq.h
+ - bsps/arm/lpc176x/include/bsp/lpc-clock-config.h
+ - bsps/arm/lpc176x/include/bsp/lpc-gpio.h
+ - bsps/arm/lpc176x/include/bsp/lpc176x.h
+ - bsps/arm/lpc176x/include/bsp/mbed-pinmap.h
+ - bsps/arm/lpc176x/include/bsp/pwmout-defs.h
+ - bsps/arm/lpc176x/include/bsp/pwmout.h
+ - bsps/arm/lpc176x/include/bsp/system-clocks.h
+ - bsps/arm/lpc176x/include/bsp/timer-defs.h
+ - bsps/arm/lpc176x/include/bsp/timer.h
+ - bsps/arm/lpc176x/include/bsp/watchdog-defs.h
+ - bsps/arm/lpc176x/include/bsp/watchdog.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/lpc176x/start/linkcmds.lpc1768_mbed
+ - bsps/arm/lpc176x/start/linkcmds.lpc1768_mbed_ahb_ram
+ - bsps/arm/lpc176x/start/linkcmds.lpc1768_mbed_ahb_ram_eth
+links: []
+source:
+- bsps/arm/lpc176x/btimer/btimer.c
+- bsps/arm/lpc176x/can/can.c
+- bsps/arm/lpc176x/console/console-config.c
+- bsps/arm/lpc176x/gpio/lpc-gpio.c
+- bsps/arm/lpc176x/irq/irq.c
+- bsps/arm/lpc176x/pwm/pwmout.c
+- bsps/arm/lpc176x/rtc/rtc-config.c
+- bsps/arm/lpc176x/start/adc.c
+- bsps/arm/lpc176x/start/bspidle.c
+- bsps/arm/lpc176x/start/bspstart.c
+- bsps/arm/lpc176x/start/bspstarthooks.c
+- bsps/arm/lpc176x/start/dma-copy.c
+- bsps/arm/lpc176x/start/dma.c
+- bsps/arm/lpc176x/start/io.c
+- bsps/arm/lpc176x/start/restart.c
+- bsps/arm/lpc176x/start/system-clocks.c
+- bsps/arm/lpc176x/start/watchdog.c
+- bsps/arm/lpc176x/timer/timer.c
+- bsps/arm/shared/clock/clock-armv7m.c
+- bsps/arm/shared/clock/clock-nxp-lpc.c
+- bsps/arm/shared/irq/irq-armv7m.c
+- bsps/arm/shared/irq/irq-dispatch-armv7m.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/shared/start/bspreset-armv7m.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/dev/serial/uart-output-char.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optcclk.yml b/spec/build/bsps/arm/lpc176x/optcclk.yml
new file mode 100644
index 0000000000..5df9f0a5e2
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optcclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 96000000
+default-by-variant: []
+description: |
+ CPU clock in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC176X_CCLK
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optconcfg.yml b/spec/build/bsps/arm/lpc176x/optconcfg.yml
new file mode 100644
index 0000000000..98ff2a9325
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optconcfg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ configuration for console (UART 0)
+enabled-by: true
+links: []
+name: LPC176X_CONFIG_CONSOLE
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optdmachn.yml b/spec/build/bsps/arm/lpc176x/optdmachn.yml
new file mode 100644
index 0000000000..a7c288b3c7
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optdmachn.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 2
+default-by-variant: []
+description: |
+ DMA channel count
+enabled-by: true
+format: '{}'
+links: []
+name: LPC_DMA_CHANNEL_COUNT
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optlpc1768.yml b/spec/build/bsps/arm/lpc176x/optlpc1768.yml
new file mode 100644
index 0000000000..9d9673b002
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optlpc1768.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ target used for identify LPC1768 board
+enabled-by: true
+links: []
+name: ARM_LPC1768
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optmintskstksz.yml b/spec/build/bsps/arm/lpc176x/optmintskstksz.yml
new file mode 100644
index 0000000000..57e77ae551
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optmintskstksz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1024
+default-by-variant: []
+description: |
+ Suggested minimum task stack size in bytes
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_MINIMUM_TASK_STACK_SIZE
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optoscmain.yml b/spec/build/bsps/arm/lpc176x/optoscmain.yml
new file mode 100644
index 0000000000..eccce9a3ea
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optoscmain.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 12000000
+default-by-variant: []
+description: |
+ main oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC176X_OSCILLATOR_MAIN
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optoscrtc.yml b/spec/build/bsps/arm/lpc176x/optoscrtc.yml
new file mode 100644
index 0000000000..a5eff014e9
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optoscrtc.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 32768
+default-by-variant: []
+description: |
+ RTC oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC176X_OSCILLATOR_RTC
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optpclkdiv.yml b/spec/build/bsps/arm/lpc176x/optpclkdiv.yml
new file mode 100644
index 0000000000..4027f8ad17
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optpclkdiv.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ clock divider for default PCLK (PCLK = CCLK / PCLKDIV)
+enabled-by: true
+format: '{}'
+links: []
+name: LPC176X_PCLKDIV
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optstopgpdma.yml b/spec/build/bsps/arm/lpc176x/optstopgpdma.yml
new file mode 100644
index 0000000000..d407af65e7
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optstopgpdma.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ stop general purpose DMA at start-up to avoid DMA interference
+enabled-by: true
+links: []
+name: LPC176X_STOP_GPDMA
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optstopusb.yml b/spec/build/bsps/arm/lpc176x/optstopusb.yml
new file mode 100644
index 0000000000..708a5bb41c
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optstopusb.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ stop USB controller at start-up to avoid DMA interference
+enabled-by: true
+links: []
+name: LPC176X_STOP_USB
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optuart1cfg.yml b/spec/build/bsps/arm/lpc176x/optuart1cfg.yml
new file mode 100644
index 0000000000..ec9d9843d5
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optuart1cfg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Use Uart 1
+enabled-by: true
+links: []
+name: LPC176X_CONFIG_UART_1
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/optuartbaud.yml b/spec/build/bsps/arm/lpc176x/optuartbaud.yml
new file mode 100644
index 0000000000..c5e094beef
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/optuartbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 9600
+default-by-variant: []
+description: |
+ baud for UARTs
+enabled-by: true
+format: '{}'
+links: []
+name: LPC176X_UART_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/tstlpc1768mbed.yml b/spec/build/bsps/arm/lpc176x/tstlpc1768mbed.yml
new file mode 100644
index 0000000000..566f53a2a3
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/tstlpc1768mbed.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ block08: exclude
+ capture: exclude
+ fileio: exclude
+ ftp01: exclude
+ iostream: exclude
+ loopback: exclude
+ mghttpd01: exclude
+ pppd: exclude
+ psxaio01: exclude
+ psxaio02: exclude
+ psxsignal07: exclude
+ rtems: exclude
+ sp16: exclude
+ sp25: exclude
+ sp42: exclude
+ sp48: exclude
+ sptimecounter02: exclude
+ sptimecounter03: exclude
+ telnetd01: exclude
+ tmcontext01: exclude
+ tmfine01: exclude
+ top: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbram.yml b/spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbram.yml
new file mode 100644
index 0000000000..5f4d24d544
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbram.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ block08: exclude
+ capture: exclude
+ fileio: exclude
+ ftp01: exclude
+ iostream: exclude
+ loopback: exclude
+ mghttpd01: exclude
+ pppd: exclude
+ psxaio01: exclude
+ psxaio02: exclude
+ psxaio03: exclude
+ psxsignal07: exclude
+ rtems: exclude
+ sp16: exclude
+ sp25: exclude
+ sp42: exclude
+ sp48: exclude
+ sptimecounter02: exclude
+ sptimecounter03: exclude
+ sptls02: exclude
+ tmcontext01: exclude
+ tmfine01: exclude
+ top: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbrameth.yml b/spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbrameth.yml
new file mode 100644
index 0000000000..4760c9d08c
--- /dev/null
+++ b/spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbrameth.yml
@@ -0,0 +1,140 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ block08: exclude
+ calloc: exclude
+ capture: exclude
+ cdtest: exclude
+ clockgettime: exclude
+ close: exclude
+ debugger01: exclude
+ defaultconfig01: exclude
+ dhrystone: exclude
+ dup2: exclude
+ fcntl: exclude
+ fileio: exclude
+ flockfile: exclude
+ fork: exclude
+ free: exclude
+ fsdosfswrite01: exclude
+ fsrfsbitmap01: exclude
+ fstat: exclude
+ ftp01: exclude
+ ftrylockfile: exclude
+ funlockfile: exclude
+ getlogin: exclude
+ getpwnam: exclude
+ getpwuid: exclude
+ gettimeofday: exclude
+ getuid: exclude
+ heapwalk: exclude
+ htonl: exclude
+ imfsfserror: exclude
+ imfsfslink: exclude
+ imfsfspatheval: exclude
+ imfsfspermission: exclude
+ imfsfsrdwr: exclude
+ imfsfsscandir01: exclude
+ imfsfssymlink: exclude
+ imfsfstime: exclude
+ iostream: exclude
+ kill: exclude
+ longjmp: exclude
+ loopback: exclude
+ lseek: exclude
+ lstat: exclude
+ malloc: exclude
+ mdosfsfserror: exclude
+ mdosfsfspatheval: exclude
+ mdosfsfsrdwr: exclude
+ mdosfsfsscandir01: exclude
+ mdosfsfsstatvfs: exclude
+ mdosfsfstime: exclude
+ mghttpd01: exclude
+ mimfsfserror: exclude
+ mimfsfslink: exclude
+ mimfsfspatheval: exclude
+ mimfsfspermission: exclude
+ mimfsfsrdwr: exclude
+ mimfsfsrename: exclude
+ mimfsfsscandir01: exclude
+ mimfsfssymlink: exclude
+ mimfsfstime: exclude
+ monitor: exclude
+ monitor01: exclude
+ monitor02: exclude
+ nanosleep: exclude
+ open: exclude
+ pipe: exclude
+ posixmemalign: exclude
+ pppd: exclude
+ psxaio01: exclude
+ psxaio02: exclude
+ psxaio03: exclude
+ psxbarrier01: exclude
+ psxkey07: exclude
+ psxkey08: exclude
+ psxsignal02: exclude
+ psxsignal07: exclude
+ rbheap01: exclude
+ read: exclude
+ readv: exclude
+ realloc: exclude
+ rtems: exclude
+ setjmp: exclude
+ sigaddset: exclude
+ sigdelset: exclude
+ sigemptyset: exclude
+ sigfillset: exclude
+ sigismember: exclude
+ sigprocmask: exclude
+ sp01: exclude
+ sp16: exclude
+ sp20: exclude
+ sp25: exclude
+ sp35: exclude
+ sp42: exclude
+ sp48: exclude
+ spclockerr01: exclude
+ speventerr03: exclude
+ spintrerr01: exclude
+ spmsgqerr01: exclude
+ spmsgqerr02: exclude
+ spporterr01: exclude
+ spratemonerr01: exclude
+ spregionerr01: exclude
+ spsemerr01: exclude
+ spsemerr02: exclude
+ spsignalerr01: exclude
+ spstkalloc: exclude
+ sptaskerr01: exclude
+ sptaskerr03: exclude
+ sptimecounter02: exclude
+ sptimecounter03: exclude
+ sptls02: exclude
+ stat: exclude
+ telnetd01: exclude
+ tm21: exclude
+ tmcontext01: exclude
+ tmfine01: exclude
+ top: exclude
+ unlink: exclude
+ utf8proc01: exclude
+ vfork: exclude
+ wait: exclude
+ waitpid: exclude
+ write: exclude
+ writev: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnorfs
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/abi.yml b/spec/build/bsps/arm/lpc24xx/abi.yml
new file mode 100644
index 0000000000..dd98de97fe
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/abi.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=arm7tdmi-s
+- -mthumb
+default-by-variant:
+- value:
+ - -mthumb
+ - -mcpu=cortex-m3
+ variants:
+ - arm/lpc17xx_ea_ram
+ - arm/lpc17xx_ea_rom_int
+ - arm/lpc17xx_plx800_ram
+ - arm/lpc17xx_plx800_rom_int
+- value:
+ - -mthumb
+ - -mcpu=cortex-m4
+ - -mfpu=fpv4-sp-d16
+ - -mfloat-abi=hard
+ variants:
+ - arm/lpc40xx_ea_ram
+ - arm/lpc40xx_ea_rom_int
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc17xxearam.yml b/spec/build/bsps/arm/lpc24xx/bsplpc17xxearam.yml
new file mode 100644
index 0000000000..181c49c60a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc17xxearam.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc17xx_ea_ram
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc17xxearomint.yml b/spec/build/bsps/arm/lpc24xx/bsplpc17xxearomint.yml
new file mode 100644
index 0000000000..ad6e72110a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc17xxearomint.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc17xx_ea_rom_int
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlpc17xxearomint
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc17xxplx800ram.yml b/spec/build/bsps/arm/lpc24xx/bsplpc17xxplx800ram.yml
new file mode 100644
index 0000000000..c19e6174f0
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc17xxplx800ram.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc17xx_plx800_ram
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc17xxplx800romint.yml b/spec/build/bsps/arm/lpc24xx/bsplpc17xxplx800romint.yml
new file mode 100644
index 0000000000..ec07975717
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc17xxplx800romint.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc17xx_plx800_rom_int
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlpc17xxplx800romint
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc2362.yml b/spec/build/bsps/arm/lpc24xx/bsplpc2362.yml
new file mode 100644
index 0000000000..fe667c755f
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc2362.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc2362
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlpc2362
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc23xxtli800.yml b/spec/build/bsps/arm/lpc24xx/bsplpc23xxtli800.yml
new file mode 100644
index 0000000000..4815cdff2a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc23xxtli800.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc23xx_tli800
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlpc23xxtli800
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc24xxea.yml b/spec/build/bsps/arm/lpc24xx/bsplpc24xxea.yml
new file mode 100644
index 0000000000..8aa5210101
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc24xxea.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc24xx_ea
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc40xxearam.yml b/spec/build/bsps/arm/lpc24xx/bsplpc40xxearam.yml
new file mode 100644
index 0000000000..74dd4b4e0f
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc40xxearam.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc40xx_ea_ram
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bsplpc40xxearomint.yml b/spec/build/bsps/arm/lpc24xx/bsplpc40xxearomint.yml
new file mode 100644
index 0000000000..babf218f6d
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bsplpc40xxearomint.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc40xx_ea_rom_int
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstlpc40xxearomint
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bspncsram.yml b/spec/build/bsps/arm/lpc24xx/bspncsram.yml
new file mode 100644
index 0000000000..f5fd8fb730
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bspncsram.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc24xx_ncs_ram
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bspncsromext.yml b/spec/build/bsps/arm/lpc24xx/bspncsromext.yml
new file mode 100644
index 0000000000..219538f4ba
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bspncsromext.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc24xx_ncs_rom_ext
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bspncsromint.yml b/spec/build/bsps/arm/lpc24xx/bspncsromint.yml
new file mode 100644
index 0000000000..ad3066f149
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bspncsromint.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc24xx_ncs_rom_int
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstncsromint
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bspplx800ram.yml b/spec/build/bsps/arm/lpc24xx/bspplx800ram.yml
new file mode 100644
index 0000000000..1b67bf9030
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bspplx800ram.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc24xx_plx800_ram
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/bspplx800romint.yml b/spec/build/bsps/arm/lpc24xx/bspplx800romint.yml
new file mode 100644
index 0000000000..d205aca3b3
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/bspplx800romint.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc24xx_plx800_rom_int
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc24xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstplx800romint
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/grp.yml b/spec/build/bsps/arm/lpc24xx/grp.yml
new file mode 100644
index 0000000000..ba3d3df09d
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/grp.yml
@@ -0,0 +1,84 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optcclk
+- role: build-dependency
+ uid: optconcfg
+- role: build-dependency
+ uid: optdmachn
+- role: build-dependency
+ uid: optemcclkdiv
+- role: build-dependency
+ uid: optemcis42s32800b
+- role: build-dependency
+ uid: optemcis42s32800d7
+- role: build-dependency
+ uid: optemcm29w160e
+- role: build-dependency
+ uid: optemcm29w320e70
+- role: build-dependency
+ uid: optemcmt48lc4m16a2
+- role: build-dependency
+ uid: optemcsst39vf3201
+- role: build-dependency
+ uid: optemctest
+- role: build-dependency
+ uid: optemcw9825g2jb75i
+- role: build-dependency
+ uid: optethdownpin
+- role: build-dependency
+ uid: optethrmii
+- role: build-dependency
+ uid: optheapext
+- role: build-dependency
+ uid: optoscmain
+- role: build-dependency
+ uid: optoscrtc
+- role: build-dependency
+ uid: optotgi2c
+- role: build-dependency
+ uid: optpclkdiv
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: optstopeth
+- role: build-dependency
+ uid: optstopgpdma
+- role: build-dependency
+ uid: optstopusb
+- role: build-dependency
+ uid: optuart1cfg
+- role: build-dependency
+ uid: optuart2cfg
+- role: build-dependency
+ uid: optuart3cfg
+- role: build-dependency
+ uid: optuartbaud
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/lpc24xx/obj.yml b/spec/build/bsps/arm/lpc24xx/obj.yml
new file mode 100644
index 0000000000..43bdf40820
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/obj.yml
@@ -0,0 +1,90 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/lpc24xx/include/bsp.h
+ - bsps/arm/lpc24xx/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/lpc24xx/include/bsp/dma.h
+ - bsps/arm/lpc24xx/include/bsp/i2c.h
+ - bsps/arm/lpc24xx/include/bsp/io.h
+ - bsps/arm/lpc24xx/include/bsp/irq.h
+ - bsps/arm/lpc24xx/include/bsp/lcd.h
+ - bsps/arm/lpc24xx/include/bsp/lpc-clock-config.h
+ - bsps/arm/lpc24xx/include/bsp/lpc-ethernet-config.h
+ - bsps/arm/lpc24xx/include/bsp/lpc17xx.h
+ - bsps/arm/lpc24xx/include/bsp/lpc24xx.h
+ - bsps/arm/lpc24xx/include/bsp/ssp.h
+ - bsps/arm/lpc24xx/include/bsp/start-config.h
+ - bsps/arm/lpc24xx/include/bsp/system-clocks.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/lpc24xx/start/linkcmds.lpc17xx_ea_ram
+ - bsps/arm/lpc24xx/start/linkcmds.lpc17xx_ea_rom_int
+ - bsps/arm/lpc24xx/start/linkcmds.lpc17xx_plx800_ram
+ - bsps/arm/lpc24xx/start/linkcmds.lpc17xx_plx800_rom_int
+ - bsps/arm/lpc24xx/start/linkcmds.lpc2362
+ - bsps/arm/lpc24xx/start/linkcmds.lpc23xx_tli800
+ - bsps/arm/lpc24xx/start/linkcmds.lpc24xx_ea
+ - bsps/arm/lpc24xx/start/linkcmds.lpc24xx_ncs_ram
+ - bsps/arm/lpc24xx/start/linkcmds.lpc24xx_ncs_rom_ext
+ - bsps/arm/lpc24xx/start/linkcmds.lpc24xx_ncs_rom_int
+ - bsps/arm/lpc24xx/start/linkcmds.lpc24xx_plx800_ram
+ - bsps/arm/lpc24xx/start/linkcmds.lpc24xx_plx800_rom_int
+ - bsps/arm/lpc24xx/start/linkcmds.lpc40xx_ea_ram
+ - bsps/arm/lpc24xx/start/linkcmds.lpc40xx_ea_rom_int
+links: []
+source:
+- bsps/arm/lpc24xx/console/console-config.c
+- bsps/arm/lpc24xx/console/uart-probe-1.c
+- bsps/arm/lpc24xx/console/uart-probe-2.c
+- bsps/arm/lpc24xx/console/uart-probe-3.c
+- bsps/arm/lpc24xx/fb/lcd.c
+- bsps/arm/lpc24xx/i2c/i2c.c
+- bsps/arm/lpc24xx/irq/irq-dispatch.c
+- bsps/arm/lpc24xx/irq/irq.c
+- bsps/arm/lpc24xx/rtc/rtc-config.c
+- bsps/arm/lpc24xx/spi/ssp.c
+- bsps/arm/lpc24xx/start/bspidle.c
+- bsps/arm/lpc24xx/start/bspreset-armv4.c
+- bsps/arm/lpc24xx/start/bspstart.c
+- bsps/arm/lpc24xx/start/bspstarthooks.c
+- bsps/arm/lpc24xx/start/dma-copy.c
+- bsps/arm/lpc24xx/start/dma.c
+- bsps/arm/lpc24xx/start/fb-config.c
+- bsps/arm/lpc24xx/start/io.c
+- bsps/arm/lpc24xx/start/restart.c
+- bsps/arm/lpc24xx/start/start-config-emc-dynamic.c
+- bsps/arm/lpc24xx/start/start-config-emc-static.c
+- bsps/arm/lpc24xx/start/start-config-mpu.c
+- bsps/arm/lpc24xx/start/start-config-pinsel.c
+- bsps/arm/lpc24xx/start/system-clocks.c
+- bsps/arm/lpc24xx/start/timer.c
+- bsps/arm/shared/clock/clock-armv7m.c
+- bsps/arm/shared/clock/clock-nxp-lpc.c
+- bsps/arm/shared/fb/arm-pl111.c
+- bsps/arm/shared/irq/irq-armv7m.c
+- bsps/arm/shared/irq/irq-dispatch-armv7m.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/shared/start/bspreset-armv7m.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/dev/serial/uart-output-char.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/objnet.yml b/spec/build/bsps/arm/lpc24xx/objnet.yml
new file mode 100644
index 0000000000..8534edceaf
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/arm/shared/net/lpc-ethernet.c
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optcclk.yml b/spec/build/bsps/arm/lpc24xx/optcclk.yml
new file mode 100644
index 0000000000..aacf2192c2
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optcclk.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 72000000
+default-by-variant:
+- value: 96000000
+ variants:
+ - arm/lpc17xx_ea.*
+- value: 96000000
+ variants:
+ - arm/lpc40xx_ea.*
+- value: 58982400
+ variants:
+ - arm/lpc23.*
+- value: 51612800
+ variants:
+ - arm/lpc24xx_plx800_.*
+description: |
+ CPU clock in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC24XX_CCLK
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optconcfg.yml b/spec/build/bsps/arm/lpc24xx/optconcfg.yml
new file mode 100644
index 0000000000..4e09164cdf
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optconcfg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ configuration for console (UART 0)
+enabled-by: true
+links: []
+name: LPC24XX_CONFIG_CONSOLE
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optdmachn.yml b/spec/build/bsps/arm/lpc24xx/optdmachn.yml
new file mode 100644
index 0000000000..1a67589bfc
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optdmachn.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 2
+default-by-variant:
+- value: 8
+ variants:
+ - arm/lpc17.*
+- value: 8
+ variants:
+ - arm/lpc40.*
+description: |
+ DMA channel count
+enabled-by: true
+format: '{}'
+links: []
+name: LPC_DMA_CHANNEL_COUNT
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemcclkdiv.yml b/spec/build/bsps/arm/lpc24xx/optemcclkdiv.yml
new file mode 100644
index 0000000000..8851dadfa7
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemcclkdiv.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant:
+- value: 2
+ variants:
+ - arm/lpc17xx_ea.*
+- value: 2
+ variants:
+ - arm/lpc40xx_ea.*
+description: |
+ clock divider for EMCCLK (EMCCLK = CCLK / EMCCLKDIV)
+enabled-by: true
+format: '{}'
+links: []
+name: LPC24XX_EMCCLKDIV
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemcis42s32800b.yml b/spec/build/bsps/arm/lpc24xx/optemcis42s32800b.yml
new file mode 100644
index 0000000000..de40eca73a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemcis42s32800b.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lpc17xx_ea_rom_.*
+- value: true
+ variants:
+ - arm/lpc40xx_ea_rom_.*
+description: |
+ enable ISSI IS42S32800B configuration for EMC
+enabled-by: true
+links: []
+name: LPC24XX_EMC_IS42S32800B
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemcis42s32800d7.yml b/spec/build/bsps/arm/lpc24xx/optemcis42s32800d7.yml
new file mode 100644
index 0000000000..e7ad228709
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemcis42s32800d7.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/.*_plx800_rom_.*
+description: |
+ enable ISSI IS42S32800D7 configuration for EMC
+enabled-by: true
+links: []
+name: LPC24XX_EMC_IS42S32800D7
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemcm29w160e.yml b/spec/build/bsps/arm/lpc24xx/optemcm29w160e.yml
new file mode 100644
index 0000000000..40a4bfbf71
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemcm29w160e.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lpc24xx_ncs_rom_.*
+description: |
+ enable M29W160E configuration for EMC
+enabled-by: true
+links: []
+name: LPC24XX_EMC_M29W160E
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemcm29w320e70.yml b/spec/build/bsps/arm/lpc24xx/optemcm29w320e70.yml
new file mode 100644
index 0000000000..a32c1a3eb6
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemcm29w320e70.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/.*_plx800_rom_.*
+description: |
+ enable M29W320E70 configuration for EMC
+enabled-by: true
+links: []
+name: LPC24XX_EMC_M29W320E70
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemcmt48lc4m16a2.yml b/spec/build/bsps/arm/lpc24xx/optemcmt48lc4m16a2.yml
new file mode 100644
index 0000000000..ab6f25fef8
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemcmt48lc4m16a2.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lpc24xx_ncs_rom_.*
+description: |
+ enable Micron MT48LC4M16A2 configuration for EMC
+enabled-by: true
+links: []
+name: LPC24XX_EMC_MT48LC4M16A2
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemcsst39vf3201.yml b/spec/build/bsps/arm/lpc24xx/optemcsst39vf3201.yml
new file mode 100644
index 0000000000..851c28a275
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemcsst39vf3201.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable SST39VF3201 configuration for EMC
+enabled-by: true
+links: []
+name: LPC24XX_EMC_SST39VF3201
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemctest.yml b/spec/build/bsps/arm/lpc24xx/optemctest.yml
new file mode 100644
index 0000000000..4153bd2664
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemctest.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable tests for EMC
+enabled-by: true
+links: []
+name: LPC24XX_EMC_TEST
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optemcw9825g2jb75i.yml b/spec/build/bsps/arm/lpc24xx/optemcw9825g2jb75i.yml
new file mode 100644
index 0000000000..2be3f76372
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optemcw9825g2jb75i.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable Winbond W9825G2JB75I configuration for EMC
+enabled-by: true
+links: []
+name: LPC24XX_EMC_W9825G2JB75I
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optethdownpin.yml b/spec/build/bsps/arm/lpc24xx/optethdownpin.yml
new file mode 100644
index 0000000000..c3889b0eea
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optethdownpin.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ optional Ethernet power-down pin, output is set to high to enable power
+enabled-by: true
+links: []
+name: LPC24XX_PIN_ETHERNET_POWER_DOWN
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optethrmii.yml b/spec/build/bsps/arm/lpc24xx/optethrmii.yml
new file mode 100644
index 0000000000..c7c3627c82
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optethrmii.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/.*_ea_.*
+description: |
+ enable RMII for Ethernet
+enabled-by: true
+links: []
+name: LPC24XX_ETHERNET_RMII
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optheapext.yml b/spec/build/bsps/arm/lpc24xx/optheapext.yml
new file mode 100644
index 0000000000..b485eb6cc3
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optheapext.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/lpc23.*
+description: |
+ enable heap extend by Ethernet and USB regions
+enabled-by: true
+links: []
+name: LPC24XX_HEAP_EXTEND
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optoscmain.yml b/spec/build/bsps/arm/lpc24xx/optoscmain.yml
new file mode 100644
index 0000000000..ec529345a1
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optoscmain.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 12000000
+default-by-variant:
+- value: 3686400
+ variants:
+ - arm/lpc23.*
+description: |
+ main oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC24XX_OSCILLATOR_MAIN
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optoscrtc.yml b/spec/build/bsps/arm/lpc24xx/optoscrtc.yml
new file mode 100644
index 0000000000..0b66f8a553
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optoscrtc.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 32768
+default-by-variant: []
+description: |
+ RTC oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC24XX_OSCILLATOR_RTC
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optotgi2c.yml b/spec/build/bsps/arm/lpc24xx/optotgi2c.yml
new file mode 100644
index 0000000000..4e205cb0af
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optotgi2c.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 94
+ variants:
+ - arm/lpc17xx_ea.*
+- value: 94
+ variants:
+ - arm/lpc40xx_ea.*
+description: |
+ USB OTG transceiver I2C address used by USB stack
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_USB_OTG_TRANSCEIVER_I2C_ADDR
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optpclkdiv.yml b/spec/build/bsps/arm/lpc24xx/optpclkdiv.yml
new file mode 100644
index 0000000000..296486c78f
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optpclkdiv.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant:
+- value: 2
+ variants:
+ - arm/lpc17xx_ea.*
+- value: 2
+ variants:
+ - arm/lpc40xx_ea.*
+description: |
+ clock divider for default PCLK (PCLK = CCLK / PCLKDIV)
+enabled-by: true
+format: '{}'
+links: []
+name: LPC24XX_PCLKDIV
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optresetvec.yml b/spec/build/bsps/arm/lpc24xx/optresetvec.yml
new file mode 100644
index 0000000000..a73530db7b
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optresetvec.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 2147483712
+ variants:
+ - arm/lpc24xx_ncs_rom_ext
+description: |
+ reset vector address for BSP start
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optstopeth.yml b/spec/build/bsps/arm/lpc24xx/optstopeth.yml
new file mode 100644
index 0000000000..60f07f9a06
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optstopeth.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/lpc23.*
+description: |
+ stop Ethernet controller at start-up to avoid DMA interference
+enabled-by: true
+links: []
+name: LPC24XX_STOP_ETHERNET
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optstopgpdma.yml b/spec/build/bsps/arm/lpc24xx/optstopgpdma.yml
new file mode 100644
index 0000000000..5705cc03ef
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optstopgpdma.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ stop general purpose DMA at start-up to avoid DMA interference
+enabled-by: true
+links: []
+name: LPC24XX_STOP_GPDMA
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optstopusb.yml b/spec/build/bsps/arm/lpc24xx/optstopusb.yml
new file mode 100644
index 0000000000..2f2bfc5c93
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optstopusb.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/lpc23.*
+description: |
+ stop USB controller at start-up to avoid DMA interference
+enabled-by: true
+links: []
+name: LPC24XX_STOP_USB
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optuart1cfg.yml b/spec/build/bsps/arm/lpc24xx/optuart1cfg.yml
new file mode 100644
index 0000000000..c1f133f08f
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optuart1cfg.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*_plx800_.*
+description: |
+ configuration for UART 1
+enabled-by: true
+links: []
+name: LPC24XX_CONFIG_UART_1
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optuart2cfg.yml b/spec/build/bsps/arm/lpc24xx/optuart2cfg.yml
new file mode 100644
index 0000000000..3e523147ca
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optuart2cfg.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: false
+ variants:
+ - arm/lpc23.*
+- value: false
+ variants:
+ - arm/lpc24xx_ncs_.*
+- value: false
+ variants:
+ - arm/.*_plx800_.*
+description: |
+ configuration for UART 2
+enabled-by: true
+links: []
+name: LPC24XX_CONFIG_UART_2
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optuart3cfg.yml b/spec/build/bsps/arm/lpc24xx/optuart3cfg.yml
new file mode 100644
index 0000000000..2af84c927d
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optuart3cfg.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: false
+ variants:
+ - arm/lpc23.*
+- value: false
+ variants:
+ - arm/lpc24xx_ncs_.*
+description: |
+ configuration for UART 3
+enabled-by: true
+links: []
+name: LPC24XX_CONFIG_UART_3
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/optuartbaud.yml b/spec/build/bsps/arm/lpc24xx/optuartbaud.yml
new file mode 100644
index 0000000000..e772d71381
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/optuartbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for UARTs
+enabled-by: true
+format: '{}'
+links: []
+name: LPC24XX_UART_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/tstlpc17xxearomint.yml b/spec/build/bsps/arm/lpc24xx/tstlpc17xxearomint.yml
new file mode 100644
index 0000000000..7d60bda27a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/tstlpc17xxearomint.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsdosfsname01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/tstlpc17xxplx800romint.yml b/spec/build/bsps/arm/lpc24xx/tstlpc17xxplx800romint.yml
new file mode 100644
index 0000000000..7d60bda27a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/tstlpc17xxplx800romint.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsdosfsname01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/tstlpc2362.yml b/spec/build/bsps/arm/lpc24xx/tstlpc2362.yml
new file mode 100644
index 0000000000..da7d418688
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/tstlpc2362.yml
@@ -0,0 +1,55 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ block08: exclude
+ capture: exclude
+ cdtest: exclude
+ fileio: exclude
+ fsdosfsformat01: exclude
+ fsrfsbitmap01: exclude
+ fsrofs01: exclude
+ ftp01: exclude
+ iostream: exclude
+ loopback: exclude
+ math: exclude
+ mdosfsfserror: exclude
+ mdosfsfsrdwr: exclude
+ mghttpd01: exclude
+ monitor02: exclude
+ paranoia: exclude
+ pppd: exclude
+ psxaio01: exclude
+ psxaio02: exclude
+ psxaio03: exclude
+ psxsignal07: exclude
+ record01: exclude
+ rtems: exclude
+ shell01: exclude
+ sp16: exclude
+ sp25: exclude
+ sp42: exclude
+ sp48: exclude
+ spcxx01: exclude
+ sptimecounter02: exclude
+ sptimecounter03: exclude
+ sptls02: exclude
+ syscall01: exclude
+ telnetd01: exclude
+ tmcontext01: exclude
+ tmfine01: exclude
+ top: exclude
+ ttest01: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnorfs
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/tstlpc23xxtli800.yml b/spec/build/bsps/arm/lpc24xx/tstlpc23xxtli800.yml
new file mode 100644
index 0000000000..97a1aa3b43
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/tstlpc23xxtli800.yml
@@ -0,0 +1,66 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ block08: exclude
+ capture: exclude
+ cdtest: exclude
+ complex: exclude
+ crypt01: exclude
+ fileio: exclude
+ fsdosfsformat01: exclude
+ fsdosfswrite01: exclude
+ fsrfsbitmap01: exclude
+ fsrofs01: exclude
+ ftp01: exclude
+ iostream: exclude
+ loopback: exclude
+ math: exclude
+ mathf: exclude
+ mdosfsfserror: exclude
+ mdosfsfspatheval: exclude
+ mdosfsfsrdwr: exclude
+ mdosfsfsscandir01: exclude
+ mdosfsfstime: exclude
+ mghttpd01: exclude
+ monitor: exclude
+ monitor02: exclude
+ paranoia: exclude
+ pppd: exclude
+ psxaio01: exclude
+ psxaio02: exclude
+ psxaio03: exclude
+ psxmsgq01: exclude
+ psxsignal07: exclude
+ record01: exclude
+ rtems: exclude
+ shell01: exclude
+ sp16: exclude
+ sp25: exclude
+ sp42: exclude
+ sp48: exclude
+ spcxx01: exclude
+ sptimecounter02: exclude
+ sptimecounter03: exclude
+ sptls02: exclude
+ syscall01: exclude
+ tar01: exclude
+ telnetd01: exclude
+ termios: exclude
+ tmcontext01: exclude
+ tmfine01: exclude
+ top: exclude
+ ttest01: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnorfs
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/tstlpc40xxearomint.yml b/spec/build/bsps/arm/lpc24xx/tstlpc40xxearomint.yml
new file mode 100644
index 0000000000..7d60bda27a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/tstlpc40xxearomint.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsdosfsname01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/tstncsromint.yml b/spec/build/bsps/arm/lpc24xx/tstncsromint.yml
new file mode 100644
index 0000000000..7d60bda27a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/tstncsromint.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsdosfsname01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/arm/lpc24xx/tstplx800romint.yml b/spec/build/bsps/arm/lpc24xx/tstplx800romint.yml
new file mode 100644
index 0000000000..7d60bda27a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc24xx/tstplx800romint.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsdosfsname01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/abi.yml b/spec/build/bsps/arm/lpc32xx/abi.yml
new file mode 100644
index 0000000000..ae245b4eb0
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=arm926ej-s
+- -mthumb
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/bsplpc32xxmzx.yml b/spec/build/bsps/arm/lpc32xx/bsplpc32xxmzx.yml
new file mode 100644
index 0000000000..9a9762dd5d
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/bsplpc32xxmzx.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc32xx_mzx
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc32xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/bspmzxstage1.yml b/spec/build/bsps/arm/lpc32xx/bspmzxstage1.yml
new file mode 100644
index 0000000000..09a70a0654
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/bspmzxstage1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc32xx_mzx_stage_1
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc32xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstmzxstage1
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/bspmzxstage2.yml b/spec/build/bsps/arm/lpc32xx/bspmzxstage2.yml
new file mode 100644
index 0000000000..ff709b0bc3
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/bspmzxstage2.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc32xx_mzx_stage_2
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc32xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/bspphycore.yml b/spec/build/bsps/arm/lpc32xx/bspphycore.yml
new file mode 100644
index 0000000000..74396727d6
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/bspphycore.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: lpc32xx_phycore
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lpc32xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/grp.yml b/spec/build/bsps/arm/lpc32xx/grp.yml
new file mode 100644
index 0000000000..510909428c
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/grp.yml
@@ -0,0 +1,84 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optdismmu
+- role: build-dependency
+ uid: optdisroprot
+- role: build-dependency
+ uid: optdisrwdc
+- role: build-dependency
+ uid: optdmachn
+- role: build-dependency
+ uid: optenwdgrst
+- role: build-dependency
+ uid: optethrmii
+- role: build-dependency
+ uid: optoscmain
+- role: build-dependency
+ uid: optoscrtc
+- role: build-dependency
+ uid: optotgi2c
+- role: build-dependency
+ uid: optotgvbus
+- role: build-dependency
+ uid: optperiphclk
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: optscratchsz
+- role: build-dependency
+ uid: optstopeth
+- role: build-dependency
+ uid: optstopgpdma
+- role: build-dependency
+ uid: optstopusb
+- role: build-dependency
+ uid: optu3clk
+- role: build-dependency
+ uid: optu4clk
+- role: build-dependency
+ uid: optu5clk
+- role: build-dependency
+ uid: optu6clk
+- role: build-dependency
+ uid: optuart1baud
+- role: build-dependency
+ uid: optuart2baud
+- role: build-dependency
+ uid: optuart3baud
+- role: build-dependency
+ uid: optuart4baud
+- role: build-dependency
+ uid: optuart5baud
+- role: build-dependency
+ uid: optuart6baud
+- role: build-dependency
+ uid: optuart7baud
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/lpc32xx/obj.yml b/spec/build/bsps/arm/lpc32xx/obj.yml
new file mode 100644
index 0000000000..70ee86302c
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/obj.yml
@@ -0,0 +1,69 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/lpc32xx/include/bsp.h
+ - bsps/arm/lpc32xx/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/lpc32xx/include/bsp/boot.h
+ - bsps/arm/lpc32xx/include/bsp/emc.h
+ - bsps/arm/lpc32xx/include/bsp/hsu.h
+ - bsps/arm/lpc32xx/include/bsp/i2c.h
+ - bsps/arm/lpc32xx/include/bsp/irq.h
+ - bsps/arm/lpc32xx/include/bsp/lpc-clock-config.h
+ - bsps/arm/lpc32xx/include/bsp/lpc-ethernet-config.h
+ - bsps/arm/lpc32xx/include/bsp/lpc32xx.h
+ - bsps/arm/lpc32xx/include/bsp/mmu.h
+ - bsps/arm/lpc32xx/include/bsp/nand-mlc.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/lpc32xx/start/linkcmds.lpc32xx
+ - bsps/arm/lpc32xx/start/linkcmds.lpc32xx_mzx
+ - bsps/arm/lpc32xx/start/linkcmds.lpc32xx_mzx_stage_1
+ - bsps/arm/lpc32xx/start/linkcmds.lpc32xx_mzx_stage_2
+ - bsps/arm/lpc32xx/start/linkcmds.lpc32xx_phycore
+links: []
+source:
+- bsps/arm/lpc32xx/console/console-config.c
+- bsps/arm/lpc32xx/console/hsu.c
+- bsps/arm/lpc32xx/i2c/i2c.c
+- bsps/arm/lpc32xx/irq/irq.c
+- bsps/arm/lpc32xx/nand/nand-mlc-erase-block-safe.c
+- bsps/arm/lpc32xx/nand/nand-mlc-read-blocks.c
+- bsps/arm/lpc32xx/nand/nand-mlc-write-blocks.c
+- bsps/arm/lpc32xx/nand/nand-mlc.c
+- bsps/arm/lpc32xx/nand/nand-select.c
+- bsps/arm/lpc32xx/rtc/rtc-config.c
+- bsps/arm/lpc32xx/start/boot.c
+- bsps/arm/lpc32xx/start/bspidle.c
+- bsps/arm/lpc32xx/start/bspreset.c
+- bsps/arm/lpc32xx/start/bspstart.c
+- bsps/arm/lpc32xx/start/bspstarthooks.c
+- bsps/arm/lpc32xx/start/emc.c
+- bsps/arm/lpc32xx/start/restart.c
+- bsps/arm/lpc32xx/start/system-clocks.c
+- bsps/arm/lpc32xx/start/timer.c
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/clock/clock-nxp-lpc.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/dev/serial/uart-output-char.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/objnet.yml b/spec/build/bsps/arm/lpc32xx/objnet.yml
new file mode 100644
index 0000000000..8534edceaf
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/arm/shared/net/lpc-ethernet.c
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optdismmu.yml b/spec/build/bsps/arm/lpc32xx/optdismmu.yml
new file mode 100644
index 0000000000..b431f04841
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optdismmu.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ disable MMU
+enabled-by: true
+links: []
+name: LPC32XX_DISABLE_MMU
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optdisroprot.yml b/spec/build/bsps/arm/lpc32xx/optdisroprot.yml
new file mode 100644
index 0000000000..5ce23607b8
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optdisroprot.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ disable MMU protection of read-only sections
+enabled-by: true
+links: []
+name: LPC32XX_DISABLE_READ_ONLY_PROTECTION
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optdisrwdc.yml b/spec/build/bsps/arm/lpc32xx/optdisrwdc.yml
new file mode 100644
index 0000000000..55765c3e8e
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optdisrwdc.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ disable cache for read-write data sections
+enabled-by: true
+links: []
+name: LPC32XX_DISABLE_READ_WRITE_DATA_CACHE
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optdmachn.yml b/spec/build/bsps/arm/lpc32xx/optdmachn.yml
new file mode 100644
index 0000000000..4c826a5f01
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optdmachn.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 8
+default-by-variant: []
+description: |
+ DMA channel count
+enabled-by: true
+format: '{}'
+links: []
+name: LPC_DMA_CHANNEL_COUNT
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optenwdgrst.yml b/spec/build/bsps/arm/lpc32xx/optenwdgrst.yml
new file mode 100644
index 0000000000..d36a5c0398
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optenwdgrst.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ bsp_reset() will use the watchdog to reset the chip
+enabled-by: true
+links: []
+name: LPC32XX_ENABLE_WATCHDOG_RESET
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optethrmii.yml b/spec/build/bsps/arm/lpc32xx/optethrmii.yml
new file mode 100644
index 0000000000..ccb4c95abc
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optethrmii.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ enable RMII for Ethernet
+enabled-by: true
+links: []
+name: LPC32XX_ETHERNET_RMII
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optoscmain.yml b/spec/build/bsps/arm/lpc32xx/optoscmain.yml
new file mode 100644
index 0000000000..aadb9b6799
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optoscmain.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 13000000
+default-by-variant: []
+description: |
+ main oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC32XX_OSCILLATOR_MAIN
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optoscrtc.yml b/spec/build/bsps/arm/lpc32xx/optoscrtc.yml
new file mode 100644
index 0000000000..09aab2d9c6
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optoscrtc.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 32768
+default-by-variant: []
+description: |
+ RTC oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC32XX_OSCILLATOR_RTC
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optotgi2c.yml b/spec/build/bsps/arm/lpc32xx/optotgi2c.yml
new file mode 100644
index 0000000000..72137d9c27
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optotgi2c.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 88
+ variants:
+ - arm/lpc32xx_mzx.*
+description: |
+ USB OTG transceiver I2C address used by USB stack
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_USB_OTG_TRANSCEIVER_I2C_ADDR
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optotgvbus.yml b/spec/build/bsps/arm/lpc32xx/optotgvbus.yml
new file mode 100644
index 0000000000..0d9d6b65f5
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optotgvbus.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: USB_OTG_VBUS_POWER_WITH_CHARGE_PUMP
+ variants:
+ - arm/lpc32xx_mzx.*
+description: |
+ USB OTG transceiver VBUS policy
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_USB_OTG_TRANSCEIVER_VBUS
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optperiphclk.yml b/spec/build/bsps/arm/lpc32xx/optperiphclk.yml
new file mode 100644
index 0000000000..70be8d51bf
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optperiphclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 13000000
+default-by-variant: []
+description: |
+ peripheral clock in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: LPC32XX_PERIPH_CLK
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optresetvec.yml b/spec/build/bsps/arm/lpc32xx/optresetvec.yml
new file mode 100644
index 0000000000..efd1ea2b2a
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optresetvec.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ reset vector address for BSP start
+enabled-by: true
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optscratchsz.yml b/spec/build/bsps/arm/lpc32xx/optscratchsz.yml
new file mode 100644
index 0000000000..c54f1ae7b3
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optscratchsz.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 4096
+ variants:
+ - arm/lpc32xx_mzx.*
+description: |
+ size of scratch area
+enabled-by: true
+format: '{}'
+links: []
+name: LPC32XX_SCRATCH_AREA_SIZE
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optstopeth.yml b/spec/build/bsps/arm/lpc32xx/optstopeth.yml
new file mode 100644
index 0000000000..2d430a1862
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optstopeth.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ stop Ethernet controller at start-up to avoid DMA interference
+enabled-by: true
+links: []
+name: LPC32XX_STOP_ETHERNET
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optstopgpdma.yml b/spec/build/bsps/arm/lpc32xx/optstopgpdma.yml
new file mode 100644
index 0000000000..5096cc48a9
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optstopgpdma.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ stop general purpose DMA at start-up to avoid DMA interference
+enabled-by: true
+links: []
+name: LPC32XX_STOP_GPDMA
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optstopusb.yml b/spec/build/bsps/arm/lpc32xx/optstopusb.yml
new file mode 100644
index 0000000000..e2bbc72f5f
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optstopusb.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ stop USB controller at start-up to avoid DMA interference
+enabled-by: true
+links: []
+name: LPC32XX_STOP_USB
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optu3clk.yml b/spec/build/bsps/arm/lpc32xx/optu3clk.yml
new file mode 100644
index 0000000000..e8aa25671f
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optu3clk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 4998
+default-by-variant: []
+description: |
+ clock configuration for UART 3
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: LPC32XX_CONFIG_U3CLK
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optu4clk.yml b/spec/build/bsps/arm/lpc32xx/optu4clk.yml
new file mode 100644
index 0000000000..19c36967e1
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optu4clk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 4998
+default-by-variant: []
+description: |
+ clock configuration for UART 4
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: LPC32XX_CONFIG_U4CLK
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optu5clk.yml b/spec/build/bsps/arm/lpc32xx/optu5clk.yml
new file mode 100644
index 0000000000..66a67dea95
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optu5clk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 4998
+default-by-variant: []
+description: |
+ clock configuration for UART 5
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: LPC32XX_CONFIG_U5CLK
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optu6clk.yml b/spec/build/bsps/arm/lpc32xx/optu6clk.yml
new file mode 100644
index 0000000000..364e3143f9
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optu6clk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 4998
+default-by-variant: []
+description: |
+ clock configuration for UART 6
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: LPC32XX_CONFIG_U6CLK
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optuart1baud.yml b/spec/build/bsps/arm/lpc32xx/optuart1baud.yml
new file mode 100644
index 0000000000..d0b7a546db
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optuart1baud.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ baud for UART 1
+enabled-by: true
+links: []
+name: LPC32XX_UART_1_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optuart2baud.yml b/spec/build/bsps/arm/lpc32xx/optuart2baud.yml
new file mode 100644
index 0000000000..5bdf8be11b
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optuart2baud.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ baud for UART 2
+enabled-by: true
+links: []
+name: LPC32XX_UART_2_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optuart3baud.yml b/spec/build/bsps/arm/lpc32xx/optuart3baud.yml
new file mode 100644
index 0000000000..95e63cf56e
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optuart3baud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for UART 3
+enabled-by: true
+format: '{}'
+links: []
+name: LPC32XX_UART_3_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optuart4baud.yml b/spec/build/bsps/arm/lpc32xx/optuart4baud.yml
new file mode 100644
index 0000000000..d210bd3c6b
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optuart4baud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for UART 4
+enabled-by: true
+format: '{}'
+links: []
+name: LPC32XX_UART_4_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optuart5baud.yml b/spec/build/bsps/arm/lpc32xx/optuart5baud.yml
new file mode 100644
index 0000000000..0021d5c9ed
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optuart5baud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for UART 5
+enabled-by: true
+format: '{}'
+links: []
+name: LPC32XX_UART_5_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optuart6baud.yml b/spec/build/bsps/arm/lpc32xx/optuart6baud.yml
new file mode 100644
index 0000000000..dc856fa33e
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optuart6baud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for UART 6
+enabled-by: true
+format: '{}'
+links: []
+name: LPC32XX_UART_6_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/optuart7baud.yml b/spec/build/bsps/arm/lpc32xx/optuart7baud.yml
new file mode 100644
index 0000000000..867d534e57
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/optuart7baud.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ baud for UART 7
+enabled-by: true
+links: []
+name: LPC32XX_UART_7_BAUD
+type: build
diff --git a/spec/build/bsps/arm/lpc32xx/tstmzxstage1.yml b/spec/build/bsps/arm/lpc32xx/tstmzxstage1.yml
new file mode 100644
index 0000000000..0bb2da517c
--- /dev/null
+++ b/spec/build/bsps/arm/lpc32xx/tstmzxstage1.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ ftp01: exclude
+ iostream: exclude
+ mghttpd01: exclude
+ monitor02: exclude
+ pppd: exclude
+ rtems: exclude
+ sp71: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/opta9periphclk.yml b/spec/build/bsps/arm/opta9periphclk.yml
new file mode 100644
index 0000000000..8d8c240606
--- /dev/null
+++ b/spec/build/bsps/arm/opta9periphclk.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 100000000
+default-by-variant:
+- value: 333333333
+ variants:
+ - arm/xilinx_zynq_zc702
+- value: 666666667
+ variants:
+ - arm/xilinx_zynq_zedboard
+description: |
+ ARM Cortex-A9 MPCore PERIPHCLK clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_ARM_A9MPCORE_PERIPHCLK
+type: build
diff --git a/spec/build/bsps/arm/optmmusmallpages.yml b/spec/build/bsps/arm/optmmusmallpages.yml
new file mode 100644
index 0000000000..a080dec5c6
--- /dev/null
+++ b/spec/build/bsps/arm/optmmusmallpages.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-assign: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Use MMU with small pages (4KiB)
+enabled-by: true
+format: '{}'
+links: []
+name: ARM_MMU_USE_SMALL_PAGES
+type: build
diff --git a/spec/build/bsps/arm/optmmusz.yml b/spec/build/bsps/arm/optmmusz.yml
new file mode 100644
index 0000000000..64c97be60a
--- /dev/null
+++ b/spec/build/bsps/arm/optmmusz.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-ge: 16384
+- assert-le: 33554432
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 16384
+default-by-variant: []
+description: |
+ Defines the size of the MMU translation table in bytes. The translation
+ table size depends on the configured MMU granularity, for example 4KiB pages
+ or 1MiB sections.
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ARM_MMU_TRANSLATION_TABLE_SIZE
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/abi.yml b/spec/build/bsps/arm/raspberrypi/abi.yml
new file mode 100644
index 0000000000..66459a1e1b
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/abi.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=armv7-a
+- -mthumb
+- -mfpu=neon
+- -mfloat-abi=hard
+- -mtune=cortex-a7
+default-by-variant:
+- value:
+ - -mcpu=arm1176jzf-s
+ variants:
+ - arm/raspberrypi
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/bspraspberrypi.yml b/spec/build/bsps/arm/raspberrypi/bspraspberrypi.yml
new file mode 100644
index 0000000000..ceef1d06e0
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/bspraspberrypi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: raspberrypi
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: raspberrypi
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/bspraspberrypi2.yml b/spec/build/bsps/arm/raspberrypi/bspraspberrypi2.yml
new file mode 100644
index 0000000000..5f604aa42f
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/bspraspberrypi2.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: raspberrypi2
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: raspberrypi
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/grp.yml b/spec/build/bsps/arm/raspberrypi/grp.yml
new file mode 100644
index 0000000000..e28f387c8d
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/grp.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optenhyp
+- role: build-dependency
+ uid: opti2ciomode
+- role: build-dependency
+ uid: ../optmmusz
+- role: build-dependency
+ uid: optnocachelen
+- role: build-dependency
+ uid: optramlen
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: optrpi2
+- role: build-dependency
+ uid: optspiiomode
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: linkcmds
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/raspberrypi/linkcmds.yml b/spec/build/bsps/arm/raspberrypi/linkcmds.yml
new file mode 100644
index 0000000000..100d593757
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/linkcmds.yml
@@ -0,0 +1,43 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ MEMORY {
+ RAM_MMU (AIW) : ORIGIN = 0x00100000, LENGTH = ${ARM_MMU_TRANSLATION_TABLE_SIZE}
+ RAM (AIW) : ORIGIN = 0x00200000, LENGTH = ${RPI_RAM_LENGTH_AVAILABLE} - ${RPI_RAM_NOCACHE_LENGTH}
+ }
+
+ REGION_ALIAS ("REGION_START", RAM);
+ REGION_ALIAS ("REGION_VECTOR", RAM);
+ REGION_ALIAS ("REGION_TEXT", RAM);
+ REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_RODATA", RAM);
+ REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_DATA", RAM);
+ REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_BSS", RAM);
+ REGION_ALIAS ("REGION_WORK", RAM);
+ REGION_ALIAS ("REGION_STACK", RAM);
+ REGION_ALIAS ("REGION_NOCACHE", RAM);
+ REGION_ALIAS ("REGION_NOCACHE_LOAD", RAM);
+
+ bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 1024;
+
+ bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;
+
+ bsp_vector_table_in_start_section = 1;
+
+ bsp_translation_table_base = ORIGIN (RAM_MMU);
+ bsp_translation_table_end = ORIGIN (RAM_MMU) + LENGTH (RAM_MMU);
+
+ INCLUDE linkcmds.armv4
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/obj.yml b/spec/build/bsps/arm/raspberrypi/obj.yml
new file mode 100644
index 0000000000..45180cdd5f
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/obj.yml
@@ -0,0 +1,61 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/raspberrypi/include/bsp.h
+ - bsps/arm/raspberrypi/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/raspberrypi/include/bsp/fbcons.h
+ - bsps/arm/raspberrypi/include/bsp/i2c.h
+ - bsps/arm/raspberrypi/include/bsp/irq.h
+ - bsps/arm/raspberrypi/include/bsp/mailbox.h
+ - bsps/arm/raspberrypi/include/bsp/mmu.h
+ - bsps/arm/raspberrypi/include/bsp/raspberrypi.h
+ - bsps/arm/raspberrypi/include/bsp/rpi-fb.h
+ - bsps/arm/raspberrypi/include/bsp/rpi-gpio.h
+ - bsps/arm/raspberrypi/include/bsp/spi.h
+ - bsps/arm/raspberrypi/include/bsp/usart.h
+ - bsps/arm/raspberrypi/include/bsp/vc.h
+links: []
+source:
+- bsps/arm/raspberrypi/clock/clockdrv.c
+- bsps/arm/raspberrypi/console/console-config.c
+- bsps/arm/raspberrypi/console/fb.c
+- bsps/arm/raspberrypi/console/fbcons.c
+- bsps/arm/raspberrypi/console/outch.c
+- bsps/arm/raspberrypi/gpio/rpi-gpio.c
+- bsps/arm/raspberrypi/i2c/i2c.c
+- bsps/arm/raspberrypi/irq/irq.c
+- bsps/arm/raspberrypi/spi/spi.c
+- bsps/arm/raspberrypi/start/bspreset.c
+- bsps/arm/raspberrypi/start/bspstart.c
+- bsps/arm/raspberrypi/start/bspstarthooks.c
+- bsps/arm/raspberrypi/start/cmdline.c
+- bsps/arm/raspberrypi/start/mailbox.c
+- bsps/arm/raspberrypi/start/timer.c
+- bsps/arm/raspberrypi/start/vc.c
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/cache/cache-v7ar-disable-data.S
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/serial/arm-pl011.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/gpio/gpio-support.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bsp-fdt.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/objsmp.yml b/spec/build/bsps/arm/raspberrypi/objsmp.yml
new file mode 100644
index 0000000000..547c39abf5
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/objsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/raspberrypi/start/bspsmp.c
+- bsps/arm/raspberrypi/start/bspsmp_init.c
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/optenhyp.yml b/spec/build/bsps/arm/raspberrypi/optenhyp.yml
new file mode 100644
index 0000000000..b9b9cb89ae
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/optenhyp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Support start of BSP in ARM HYP mode
+enabled-by: true
+links: []
+name: BSP_START_IN_HYP_SUPPORT
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/opti2ciomode.yml b/spec/build/bsps/arm/raspberrypi/opti2ciomode.yml
new file mode 100644
index 0000000000..82ba37dc4d
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/opti2ciomode.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Define to 1 to use interrupt-driven I/O with the Raspberry Pi I2C bus. If defined to other value the access will be polled-driven.
+enabled-by: true
+links: []
+name: I2C_IO_MODE
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/optnocachelen.yml b/spec/build/bsps/arm/raspberrypi/optnocachelen.yml
new file mode 100644
index 0000000000..b9d9071b17
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/optnocachelen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 2097152
+default-by-variant: []
+description: |
+ No-cache region length
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: RPI_RAM_NOCACHE_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/optramlen.yml b/spec/build/bsps/arm/raspberrypi/optramlen.yml
new file mode 100644
index 0000000000..040d514dad
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/optramlen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 268435456
+default-by-variant: []
+description: |
+ RAM region length
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: RPI_RAM_LENGTH_AVAILABLE
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/optresetvec.yml b/spec/build/bsps/arm/raspberrypi/optresetvec.yml
new file mode 100644
index 0000000000..efd1ea2b2a
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/optresetvec.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ reset vector address for BSP start
+enabled-by: true
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/optrpi2.yml b/spec/build/bsps/arm/raspberrypi/optrpi2.yml
new file mode 100644
index 0000000000..08e3a1e381
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/optrpi2.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/raspberrypi2
+description: |
+ Set if the BSP variant is Raspberry Pi 2.
+enabled-by: true
+links: []
+name: BSP_IS_RPI2
+type: build
diff --git a/spec/build/bsps/arm/raspberrypi/optspiiomode.yml b/spec/build/bsps/arm/raspberrypi/optspiiomode.yml
new file mode 100644
index 0000000000..bb0b94a683
--- /dev/null
+++ b/spec/build/bsps/arm/raspberrypi/optspiiomode.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Define to 1 to use interrupt-driven I/O with the Raspberry Pi SPI bus. If defined to other value the access will be polled-driven.
+enabled-by: true
+links: []
+name: SPI_IO_MODE
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/abi.yml b/spec/build/bsps/arm/realview-pbx-a9/abi.yml
new file mode 100644
index 0000000000..a3a710c97d
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=armv7-a
+- -mthumb
+- -mfpu=neon
+- -mfloat-abi=hard
+- -mtune=cortex-a9
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/bsprealviewpbxa9.yml b/spec/build/bsps/arm/realview-pbx-a9/bsprealviewpbxa9.yml
new file mode 100644
index 0000000000..2721152b93
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/bsprealviewpbxa9.yml
@@ -0,0 +1,84 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: realview_pbx_a9_qemu
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: realview-pbx-a9
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/realview-pbx-a9/include/bsp.h
+ - bsps/arm/realview-pbx-a9/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/realview-pbx-a9/include/bsp/console.h
+ - bsps/arm/realview-pbx-a9/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/realview-pbx-a9/start/linkcmds.realview_pbx_a9_qemu
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: opta9periphclk
+- role: build-dependency
+ uid: optcachedata
+- role: build-dependency
+ uid: optcacheinst
+- role: build-dependency
+ uid: optclkbootcpu
+- role: build-dependency
+ uid: optclkfastidle
+- role: build-dependency
+ uid: optmmusmallpages
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto0
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/realview-pbx-a9/console/console-config.c
+- bsps/arm/realview-pbx-a9/console/console-polled.c
+- bsps/arm/realview-pbx-a9/start/bspreset.c
+- bsps/arm/realview-pbx-a9/start/bspstart.c
+- bsps/arm/realview-pbx-a9/start/bspstarthooks.c
+- bsps/arm/realview-pbx-a9/start/fb-config.c
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/cache/cache-v7ar-disable-data.S
+- bsps/arm/shared/clock/clock-a9mpcore.c
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/fb/arm-pl111.c
+- bsps/arm/shared/irq/irq-gic.c
+- bsps/arm/shared/serial/arm-pl011.c
+- bsps/arm/shared/serial/arm-pl050.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/dev/serial/getserialmouseps2.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/objsmp.yml b/spec/build/bsps/arm/realview-pbx-a9/objsmp.yml
new file mode 100644
index 0000000000..0c1ac9e6bb
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/objsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/realview-pbx-a9/start/bspsmp.c
+- bsps/arm/shared/start/arm-a9mpcore-smp.c
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/opta9periphclk.yml b/spec/build/bsps/arm/realview-pbx-a9/opta9periphclk.yml
new file mode 100644
index 0000000000..3ab2b72830
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/opta9periphclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 100000000
+default-by-variant: []
+description: |
+ ARM Cortex-A9 MPCore PERIPHCLK clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_ARM_A9MPCORE_PERIPHCLK
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/optcachedata.yml b/spec/build/bsps/arm/realview-pbx-a9/optcachedata.yml
new file mode 100644
index 0000000000..1664b0fc31
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/optcachedata.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*qemu
+description: |
+ enable data cache
+enabled-by: true
+links: []
+name: BSP_DATA_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/optcacheinst.yml b/spec/build/bsps/arm/realview-pbx-a9/optcacheinst.yml
new file mode 100644
index 0000000000..b191133af9
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/optcacheinst.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*qemu
+description: |
+ enable instruction cache
+enabled-by: true
+links: []
+name: BSP_INSTRUCTION_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/optclkbootcpu.yml b/spec/build/bsps/arm/realview-pbx-a9/optclkbootcpu.yml
new file mode 100644
index 0000000000..8d78c9ce6a
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/optclkbootcpu.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/.*qemu.*
+description: |
+ If defined, then do the clock tick processing on the boot processor on behalf of all other processors.
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/optclkfastidle.yml b/spec/build/bsps/arm/realview-pbx-a9/optclkfastidle.yml
new file mode 100644
index 0000000000..e4624223eb
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/optclkfastidle.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/.*qemu.*
+description: |
+ This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_FAST_IDLE
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/optmmusmallpages.yml b/spec/build/bsps/arm/realview-pbx-a9/optmmusmallpages.yml
new file mode 100644
index 0000000000..d24005197e
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/optmmusmallpages.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ use MMU with small pages (4KiB)
+enabled-by: true
+links: []
+name: ARM_MMU_USE_SMALL_PAGES
+type: build
diff --git a/spec/build/bsps/arm/realview-pbx-a9/optresetvec.yml b/spec/build/bsps/arm/realview-pbx-a9/optresetvec.yml
new file mode 100644
index 0000000000..efd1ea2b2a
--- /dev/null
+++ b/spec/build/bsps/arm/realview-pbx-a9/optresetvec.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ reset vector address for BSP start
+enabled-by: true
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/abi.yml b/spec/build/bsps/arm/rtl22xx/abi.yml
new file mode 100644
index 0000000000..abb7f66b50
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/abi.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=arm7tdmi
+- -mthumb
+default-by-variant:
+- value:
+ - -mcpu=arm7tdmi
+ variants:
+ - arm/rtl22xx
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/bsprtl22xx.yml b/spec/build/bsps/arm/rtl22xx/bsprtl22xx.yml
new file mode 100644
index 0000000000..340172deef
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/bsprtl22xx.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: rtl22xx
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: rtl22xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstrtl22xx
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/bsprtl22xxt.yml b/spec/build/bsps/arm/rtl22xx/bsprtl22xxt.yml
new file mode 100644
index 0000000000..ecd5f8baec
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/bsprtl22xxt.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: rtl22xx_t
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: rtl22xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstrtl22xxt
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/grp.yml b/spec/build/bsps/arm/rtl22xx/grp.yml
new file mode 100644
index 0000000000..4d560158f4
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/grp.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optskyeye
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/rtl22xx/obj.yml b/spec/build/bsps/arm/rtl22xx/obj.yml
new file mode 100644
index 0000000000..1889f0d842
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/obj.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/rtl22xx/include/bsp.h
+ - bsps/arm/rtl22xx/include/lpc22xx.h
+ - bsps/arm/rtl22xx/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/rtl22xx/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/rtl22xx/start/linkcmds
+links: []
+source:
+- bsps/arm/rtl22xx/btimer/btimer.c
+- bsps/arm/rtl22xx/clock/clockdrv.c
+- bsps/arm/rtl22xx/console/uart.c
+- bsps/arm/rtl22xx/irq/irq.c
+- bsps/arm/rtl22xx/start/bspreset.c
+- bsps/arm/rtl22xx/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/objnet.yml b/spec/build/bsps/arm/rtl22xx/objnet.yml
new file mode 100644
index 0000000000..3e9f691ec5
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/arm/rtl22xx/net/network.c
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/optskyeye.yml b/spec/build/bsps/arm/rtl22xx/optskyeye.yml
new file mode 100644
index 0000000000..be55a98c3a
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/optskyeye.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, enable options which optimize executingon the Skyeye simulator. Speed up the clock ticks while the idle task is running so time spent in the idle task is minimized. This significantly reduces the wall time required to execute the RTEMS test suites.
+enabled-by: true
+links: []
+name: ON_SKYEYE
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/start.yml b/spec/build/bsps/arm/rtl22xx/start.yml
new file mode 100644
index 0000000000..4fe0065e7e
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/arm/rtl22xx/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/tstrtl22xx.yml b/spec/build/bsps/arm/rtl22xx/tstrtl22xx.yml
new file mode 100644
index 0000000000..9e3fe758bc
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/tstrtl22xx.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ dl10: exclude
+ fileio: exclude
+ fsdosfsname01: exclude
+ iostream: exclude
+ linpack: exclude
+ record02: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/arm/rtl22xx/tstrtl22xxt.yml b/spec/build/bsps/arm/rtl22xx/tstrtl22xxt.yml
new file mode 100644
index 0000000000..53b3efd010
--- /dev/null
+++ b/spec/build/bsps/arm/rtl22xx/tstrtl22xxt.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ dl10: exclude
+ fsdosfsname01: exclude
+ linpack: exclude
+ record02: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/arm/smdk2410/abi.yml b/spec/build/bsps/arm/smdk2410/abi.yml
new file mode 100644
index 0000000000..d964ca5d2f
--- /dev/null
+++ b/spec/build/bsps/arm/smdk2410/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=arm920t
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/smdk2410/bspsmdk2410.yml b/spec/build/bsps/arm/smdk2410/bspsmdk2410.yml
new file mode 100644
index 0000000000..3b15c7ca91
--- /dev/null
+++ b/spec/build/bsps/arm/smdk2410/bspsmdk2410.yml
@@ -0,0 +1,69 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: smdk2410
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: smdk2410
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/smdk2410/include/bsp.h
+ - bsps/arm/smdk2410/include/s3c2400.h
+ - bsps/arm/smdk2410/include/s3c2410.h
+ - bsps/arm/smdk2410/include/s3c24xx.h
+ - bsps/arm/smdk2410/include/smc.h
+ - bsps/arm/smdk2410/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/smdk2410/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/smdk2410/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optcpus3c2410
+- role: build-dependency
+ uid: optskyeye
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/cp15/arm920-mmu.c
+- bsps/arm/smdk2410/btimer/btimer.c
+- bsps/arm/smdk2410/clock/clockdrv.c
+- bsps/arm/smdk2410/clock/support.c
+- bsps/arm/smdk2410/console/uart.c
+- bsps/arm/smdk2410/irq/irq.c
+- bsps/arm/smdk2410/smc/smc.c
+- bsps/arm/smdk2410/start/bspidle.c
+- bsps/arm/smdk2410/start/bspreset.c
+- bsps/arm/smdk2410/start/bspstart.c
+- bsps/arm/smdk2410/start/memmap.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/arm/smdk2410/optcpus3c2410.yml b/spec/build/bsps/arm/smdk2410/optcpus3c2410.yml
new file mode 100644
index 0000000000..ba24539e4a
--- /dev/null
+++ b/spec/build/bsps/arm/smdk2410/optcpus3c2410.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/smdk2410
+description: |
+ If defined, enable optons for the S3C2410 CPU model.
+enabled-by: true
+links: []
+name: CPU_S3C2410
+type: build
diff --git a/spec/build/bsps/arm/smdk2410/optskyeye.yml b/spec/build/bsps/arm/smdk2410/optskyeye.yml
new file mode 100644
index 0000000000..be55a98c3a
--- /dev/null
+++ b/spec/build/bsps/arm/smdk2410/optskyeye.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, enable options which optimize executingon the Skyeye simulator. Speed up the clock ticks while the idle task is running so time spent in the idle task is minimized. This significantly reduces the wall time required to execute the RTEMS test suites.
+enabled-by: true
+links: []
+name: ON_SKYEYE
+type: build
diff --git a/spec/build/bsps/arm/smdk2410/start.yml b/spec/build/bsps/arm/smdk2410/start.yml
new file mode 100644
index 0000000000..6910892daf
--- /dev/null
+++ b/spec/build/bsps/arm/smdk2410/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/arm/smdk2410/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/arm/start.yml b/spec/build/bsps/arm/start.yml
new file mode 100644
index 0000000000..07120dcc71
--- /dev/null
+++ b/spec/build/bsps/arm/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/arm/shared/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/abi.yml b/spec/build/bsps/arm/stm32f4/abi.yml
new file mode 100644
index 0000000000..8c9b62c6ea
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/abi.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mthumb
+- -mcpu=cortex-m4
+default-by-variant:
+- value:
+ - -mthumb
+ - -mcpu=cortex-m3
+ variants:
+ - arm/stm32f105rc
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/bspstm32f105rc.yml b/spec/build/bsps/arm/stm32f4/bspstm32f105rc.yml
new file mode 100644
index 0000000000..f00a177dc0
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/bspstm32f105rc.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: stm32f105rc
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: stm32f4
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tststm32f105rc
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/bspstm32f4.yml b/spec/build/bsps/arm/stm32f4/bspstm32f4.yml
new file mode 100644
index 0000000000..f3c6426f07
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/bspstm32f4.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: stm32f4
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: stm32f4
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstsmallmem
+source: []
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/grp.yml b/spec/build/bsps/arm/stm32f4/grp.yml
new file mode 100644
index 0000000000..ad08ee63c1
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/grp.yml
@@ -0,0 +1,60 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: opteni2c1
+- role: build-dependency
+ uid: opteni2c2
+- role: build-dependency
+ uid: optenuart4
+- role: build-dependency
+ uid: optenuart5
+- role: build-dependency
+ uid: optenusart1
+- role: build-dependency
+ uid: optenusart2
+- role: build-dependency
+ uid: optenusart3
+- role: build-dependency
+ uid: optenusart6
+- role: build-dependency
+ uid: optf10xxx
+- role: build-dependency
+ uid: optf4xxxx
+- role: build-dependency
+ uid: opthclk
+- role: build-dependency
+ uid: optoschse
+- role: build-dependency
+ uid: optpclk1
+- role: build-dependency
+ uid: optpclk2
+- role: build-dependency
+ uid: optsysclk
+- role: build-dependency
+ uid: optusartbaud
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/stm32f4/obj.yml b/spec/build/bsps/arm/stm32f4/obj.yml
new file mode 100644
index 0000000000..22b73177cd
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/obj.yml
@@ -0,0 +1,70 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/stm32f4/include/bsp.h
+ - bsps/arm/stm32f4/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/stm32f4/include/bsp/i2c.h
+ - bsps/arm/stm32f4/include/bsp/io.h
+ - bsps/arm/stm32f4/include/bsp/irq.h
+ - bsps/arm/stm32f4/include/bsp/rcc.h
+ - bsps/arm/stm32f4/include/bsp/stm32_i2c.h
+ - bsps/arm/stm32f4/include/bsp/stm32_usart.h
+ - bsps/arm/stm32f4/include/bsp/stm32f10xxx_exti.h
+ - bsps/arm/stm32f4/include/bsp/stm32f10xxx_gpio.h
+ - bsps/arm/stm32f4/include/bsp/stm32f10xxx_rcc.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_adc.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_exti.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_flash.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_gpio.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_otgfs.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_pwr.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_rcc.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_syscfg.h
+ - bsps/arm/stm32f4/include/bsp/stm32f4xxxx_tim.h
+ - bsps/arm/stm32f4/include/bsp/usart.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/stm32f4/start/linkcmds.stm32f105rc
+ - bsps/arm/stm32f4/start/linkcmds.stm32f4
+links: []
+source:
+- bsps/arm/shared/clock/clock-armv7m.c
+- bsps/arm/shared/irq/irq-armv7m.c
+- bsps/arm/shared/irq/irq-dispatch-armv7m.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/stm32f4/console/console-config.c
+- bsps/arm/stm32f4/console/usart.c
+- bsps/arm/stm32f4/i2c/i2c-config.c
+- bsps/arm/stm32f4/i2c/i2c.c
+- bsps/arm/stm32f4/start/bspreset.c
+- bsps/arm/stm32f4/start/bspstart.c
+- bsps/arm/stm32f4/start/bspstarthook.c
+- bsps/arm/stm32f4/start/io.c
+- bsps/arm/stm32f4/start/rcc.c
+- bsps/arm/stm32f4/start/start-config-io.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/cpucounter/cpucounterfrequency.c
+- bsps/shared/dev/cpucounter/cpucounterread.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/opteni2c1.yml b/spec/build/bsps/arm/stm32f4/opteni2c1.yml
new file mode 100644
index 0000000000..e200c81623
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/opteni2c1.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/stm32f1.*
+description: |
+ enable I2C 1
+enabled-by: true
+links: []
+name: STM32F4_ENABLE_I2C1
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/opteni2c2.yml b/spec/build/bsps/arm/stm32f4/opteni2c2.yml
new file mode 100644
index 0000000000..d4ef7328e1
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/opteni2c2.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable I2C 2
+enabled-by: true
+links: []
+name: STM32F4_ENABLE_I2C2
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optenuart4.yml b/spec/build/bsps/arm/stm32f4/optenuart4.yml
new file mode 100644
index 0000000000..5bf266707f
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optenuart4.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable UART 4
+enabled-by: true
+links: []
+name: STM32F4_ENABLE_UART_4
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optenuart5.yml b/spec/build/bsps/arm/stm32f4/optenuart5.yml
new file mode 100644
index 0000000000..21f1e6f963
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optenuart5.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable UART 5
+enabled-by: true
+links: []
+name: STM32F4_ENABLE_UART_5
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optenusart1.yml b/spec/build/bsps/arm/stm32f4/optenusart1.yml
new file mode 100644
index 0000000000..9fd8f99af2
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optenusart1.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable USART 1
+enabled-by: true
+links: []
+name: STM32F4_ENABLE_USART_1
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optenusart2.yml b/spec/build/bsps/arm/stm32f4/optenusart2.yml
new file mode 100644
index 0000000000..d9dd3a3d22
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optenusart2.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable USART 2
+enabled-by: true
+links: []
+name: STM32F4_ENABLE_USART_2
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optenusart3.yml b/spec/build/bsps/arm/stm32f4/optenusart3.yml
new file mode 100644
index 0000000000..3cc11ba79b
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optenusart3.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ enable USART 3
+enabled-by: true
+links: []
+name: STM32F4_ENABLE_USART_3
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optenusart6.yml b/spec/build/bsps/arm/stm32f4/optenusart6.yml
new file mode 100644
index 0000000000..4e20fb4317
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optenusart6.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable USART 6
+enabled-by: true
+links: []
+name: STM32F4_ENABLE_USART_6
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optf10xxx.yml b/spec/build/bsps/arm/stm32f4/optf10xxx.yml
new file mode 100644
index 0000000000..54f1418cf9
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optf10xxx.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/stm32f1.*
+description: |
+ Chip belongs to the STM32F10XXX family.
+enabled-by: true
+links: []
+name: STM32F4_FAMILY_F10XXX
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optf4xxxx.yml b/spec/build/bsps/arm/stm32f4/optf4xxxx.yml
new file mode 100644
index 0000000000..66604f249a
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optf4xxxx.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/stm32f4.*
+description: |
+ Chip belongs to the STM32F4XXXX family.
+enabled-by: true
+links: []
+name: STM32F4_FAMILY_F4XXXX
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/opthclk.yml b/spec/build/bsps/arm/stm32f4/opthclk.yml
new file mode 100644
index 0000000000..7f315f12b2
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/opthclk.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 16000000
+default-by-variant:
+- value: 8000000
+ variants:
+ - arm/stm32f1.*
+description: |
+ HCLK frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: STM32F4_HCLK
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optoschse.yml b/spec/build/bsps/arm/stm32f4/optoschse.yml
new file mode 100644
index 0000000000..2b1dad620e
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optoschse.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 8000000
+default-by-variant: []
+description: |
+ HSE oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: STM32F4_HSE_OSCILLATOR
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optpclk1.yml b/spec/build/bsps/arm/stm32f4/optpclk1.yml
new file mode 100644
index 0000000000..9ac285b0bc
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optpclk1.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 16000000
+default-by-variant:
+- value: 8000000
+ variants:
+ - arm/stm32f1.*
+description: |
+ PCLK1 frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: STM32F4_PCLK1
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optpclk2.yml b/spec/build/bsps/arm/stm32f4/optpclk2.yml
new file mode 100644
index 0000000000..e51eeaf36f
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optpclk2.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 16000000
+default-by-variant:
+- value: 8000000
+ variants:
+ - arm/stm32f1.*
+description: |
+ PCLK2 frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: STM32F4_PCLK2
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optsysclk.yml b/spec/build/bsps/arm/stm32f4/optsysclk.yml
new file mode 100644
index 0000000000..5f08d4ecde
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optsysclk.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 16000000
+default-by-variant:
+- value: 8000000
+ variants:
+ - arm/stm32f1.*
+description: |
+ SYSCLK frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: STM32F4_SYSCLK
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/optusartbaud.yml b/spec/build/bsps/arm/stm32f4/optusartbaud.yml
new file mode 100644
index 0000000000..b102e37eb6
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/optusartbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for USARTs
+enabled-by: true
+format: '{}'
+links: []
+name: STM32F4_USART_BAUD
+type: build
diff --git a/spec/build/bsps/arm/stm32f4/tststm32f105rc.yml b/spec/build/bsps/arm/stm32f4/tststm32f105rc.yml
new file mode 100644
index 0000000000..f752f18b93
--- /dev/null
+++ b/spec/build/bsps/arm/stm32f4/tststm32f105rc.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ ftp01: exclude
+ iostream: exclude
+ mghttpd01: exclude
+ monitor02: exclude
+ pppd: exclude
+ rtems: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/tms570/abi.yml b/spec/build/bsps/arm/tms570/abi.yml
new file mode 100644
index 0000000000..0177616e2a
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=armv7-r
+- -mthumb
+- -mbig-endian
+- -mfpu=vfpv3-d16
+- -mfloat-abi=hard
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/tms570/bspls3137hdk.yml b/spec/build/bsps/arm/tms570/bspls3137hdk.yml
new file mode 100644
index 0000000000..e2704a268d
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/bspls3137hdk.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: tms570ls3137_hdk
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: tms570
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstsmallmem
+source: []
+type: build
diff --git a/spec/build/bsps/arm/tms570/bspls3137hdkintram.yml b/spec/build/bsps/arm/tms570/bspls3137hdkintram.yml
new file mode 100644
index 0000000000..77a21e861b
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/bspls3137hdkintram.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: tms570ls3137_hdk_intram
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: tms570
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstls3137hdkintram
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/tms570/bspls3137hdksdram.yml b/spec/build/bsps/arm/tms570/bspls3137hdksdram.yml
new file mode 100644
index 0000000000..8ffb5294d2
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/bspls3137hdksdram.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: tms570ls3137_hdk_sdram
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: tms570
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/tms570/bspls3137hdkwithloader.yml b/spec/build/bsps/arm/tms570/bspls3137hdkwithloader.yml
new file mode 100644
index 0000000000..f8e8cb81bb
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/bspls3137hdkwithloader.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: tms570ls3137_hdk_with_loader
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: tms570
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstsmallmem
+source: []
+type: build
diff --git a/spec/build/bsps/arm/tms570/grp.yml b/spec/build/bsps/arm/tms570/grp.yml
new file mode 100644
index 0000000000..f7b84e2f57
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/grp.yml
@@ -0,0 +1,48 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objhwinit
+- role: build-dependency
+ uid: optcclk
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optlowinit
+- role: build-dependency
+ uid: optmintskstksz
+- role: build-dependency
+ uid: optoscmain
+- role: build-dependency
+ uid: optoscrtc
+- role: build-dependency
+ uid: optreginit
+- role: build-dependency
+ uid: optscibaud
+- role: build-dependency
+ uid: opttms570ls3137
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/tms570/obj.yml b/spec/build/bsps/arm/tms570/obj.yml
new file mode 100644
index 0000000000..8e5b665a78
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/obj.yml
@@ -0,0 +1,100 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/tms570/include/bsp.h
+ - bsps/arm/tms570/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/tms570/include/bsp/irq.h
+ - bsps/arm/tms570/include/bsp/system-clocks.h
+ - bsps/arm/tms570/include/bsp/tms570-pinmux.h
+ - bsps/arm/tms570/include/bsp/tms570-pins.h
+ - bsps/arm/tms570/include/bsp/tms570-pom.h
+ - bsps/arm/tms570/include/bsp/tms570-rti.h
+ - bsps/arm/tms570/include/bsp/tms570-sci-driver.h
+ - bsps/arm/tms570/include/bsp/tms570-sci.h
+ - bsps/arm/tms570/include/bsp/tms570-vim.h
+ - bsps/arm/tms570/include/bsp/tms570.h
+ - bsps/arm/tms570/include/bsp/tms570_hwinit.h
+ - bsps/arm/tms570/include/bsp/tms570_selftest.h
+ - bsps/arm/tms570/include/bsp/tms570_selftest_parity.h
+ - bsps/arm/tms570/include/bsp/tms570lc4357-pins.h
+ - bsps/arm/tms570/include/bsp/tms570ls3137zwt-pins.h
+- destination: ${BSP_INCLUDEDIR}/bsp/ti/herc
+ source:
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_adc.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_ccmsr.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_crc.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_dcan.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_dcc.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_dma.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_dmm.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_efuse.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_emacc.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_emacm.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_emif.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_esm.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_flash.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_flex_ray.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_gio.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_htu.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_i2c.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_iomm.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_lin.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_mdio.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_n2het.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_pbist.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_pcr.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_pll.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_pmm.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_pom.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_rti.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_rtp.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_sci.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_spi.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_stc.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_sys.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_sys2.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_tcr.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_tcram.h
+ - bsps/arm/tms570/include/bsp/ti_herc/reg_vim.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/arm/tms570/start/linkcmds.tms570ls3137_hdk
+ - bsps/arm/tms570/start/linkcmds.tms570ls3137_hdk_intram
+ - bsps/arm/tms570/start/linkcmds.tms570ls3137_hdk_sdram
+ - bsps/arm/tms570/start/linkcmds.tms570ls3137_hdk_with_loader
+links: []
+source:
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/tms570/clock/clock.c
+- bsps/arm/tms570/console/printk-support.c
+- bsps/arm/tms570/console/tms570-sci.c
+- bsps/arm/tms570/cpucounter/cpucounterread.c
+- bsps/arm/tms570/irq/irq.c
+- bsps/arm/tms570/start/bspreset.c
+- bsps/arm/tms570/start/bspstart.c
+- bsps/arm/tms570/start/bspstarthooks.c
+- bsps/arm/tms570/start/pinmux.c
+- bsps/arm/tms570/start/tms570-pom.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-cpucounter.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/tms570/objhwinit.yml b/spec/build/bsps/arm/tms570/objhwinit.yml
new file mode 100644
index 0000000000..04241dffc9
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/objhwinit.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- TMS570_USE_HWINIT_STARTUP
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/tms570/start/bspstarthooks-hwinit.c
+- bsps/arm/tms570/start/fail_notification.c
+- bsps/arm/tms570/start/init_emif_sdram.c
+- bsps/arm/tms570/start/init_esm.c
+- bsps/arm/tms570/start/init_pinmux.c
+- bsps/arm/tms570/start/init_system.c
+- bsps/arm/tms570/start/tms570_selftest.c
+- bsps/arm/tms570/start/tms570_selftest_par_can.c
+- bsps/arm/tms570/start/tms570_selftest_par_mibspi.c
+- bsps/arm/tms570/start/tms570_selftest_par_std.c
+- bsps/arm/tms570/start/tms570_selftest_parity.c
+- bsps/arm/tms570/start/tms570_sys_core.S
+- bsps/arm/tms570/start/tms570_tcram_tests.c
+type: build
diff --git a/spec/build/bsps/arm/tms570/optcclk.yml b/spec/build/bsps/arm/tms570/optcclk.yml
new file mode 100644
index 0000000000..674ec1ac86
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/optcclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 96000000
+default-by-variant: []
+description: |
+ CPU clock in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: TMS570_CCLK
+type: build
diff --git a/spec/build/bsps/arm/tms570/optconirq.yml b/spec/build/bsps/arm/tms570/optconirq.yml
new file mode 100644
index 0000000000..3e3dc5a836
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/optconirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ The tms570 console driver can operate in either polled or interrupt mode.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/arm/tms570/optlowinit.yml b/spec/build/bsps/arm/tms570/optlowinit.yml
new file mode 100644
index 0000000000..d889dd2573
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/optlowinit.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Include BSP startup code for TMS570LS3137 which allows to start RTEMS application directly after reset
+enabled-by: true
+links: []
+name: TMS570_USE_HWINIT_STARTUP
+type: build
diff --git a/spec/build/bsps/arm/tms570/optmintskstksz.yml b/spec/build/bsps/arm/tms570/optmintskstksz.yml
new file mode 100644
index 0000000000..57e77ae551
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/optmintskstksz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1024
+default-by-variant: []
+description: |
+ Suggested minimum task stack size in bytes
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_MINIMUM_TASK_STACK_SIZE
+type: build
diff --git a/spec/build/bsps/arm/tms570/optoscmain.yml b/spec/build/bsps/arm/tms570/optoscmain.yml
new file mode 100644
index 0000000000..8ebd6bb82d
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/optoscmain.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 12000000
+default-by-variant: []
+description: |
+ main oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: TMS570_OSCILLATOR_MAIN
+type: build
diff --git a/spec/build/bsps/arm/tms570/optoscrtc.yml b/spec/build/bsps/arm/tms570/optoscrtc.yml
new file mode 100644
index 0000000000..8e14cbf9a8
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/optoscrtc.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 32768
+default-by-variant: []
+description: |
+ RTC oscillator frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: TMS570_OSCILLATOR_RTC
+type: build
diff --git a/spec/build/bsps/arm/tms570/optreginit.yml b/spec/build/bsps/arm/tms570/optreginit.yml
new file mode 100644
index 0000000000..3f7e9f2bf2
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/optreginit.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ The TMS570 needs to have the registers of its CPU initialized to avoid CCMR4F errors
+enabled-by: true
+links: []
+name: BSP_START_NEEDS_REGISTER_INITIALIZATION
+type: build
diff --git a/spec/build/bsps/arm/tms570/optscibaud.yml b/spec/build/bsps/arm/tms570/optscibaud.yml
new file mode 100644
index 0000000000..e4eedd871b
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/optscibaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ baud for UARTs
+enabled-by: true
+format: '{}'
+links: []
+name: TMS570_SCI_BAUD_RATE
+type: build
diff --git a/spec/build/bsps/arm/tms570/opttms570ls3137.yml b/spec/build/bsps/arm/tms570/opttms570ls3137.yml
new file mode 100644
index 0000000000..344f209ca1
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/opttms570ls3137.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ target used for identify TMS570LS3137 board
+enabled-by: true
+links: []
+name: ARM_TMS570LS3137
+type: build
diff --git a/spec/build/bsps/arm/tms570/tstls3137hdkintram.yml b/spec/build/bsps/arm/tms570/tstls3137hdkintram.yml
new file mode 100644
index 0000000000..c9271afdd0
--- /dev/null
+++ b/spec/build/bsps/arm/tms570/tstls3137hdkintram.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ ftp01: exclude
+ iostream: exclude
+ loopback: exclude
+ mghttpd01: exclude
+ monitor02: exclude
+ pppd: exclude
+ syscall01: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/arm/xen/abi.yml b/spec/build/bsps/arm/xen/abi.yml
new file mode 100644
index 0000000000..ed581d94f4
--- /dev/null
+++ b/spec/build/bsps/arm/xen/abi.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=armv7-a
+- -mthumb
+- -mfpu=neon
+- -mfloat-abi=hard
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/xen/bspxen.yml b/spec/build/bsps/arm/xen/bspxen.yml
new file mode 100644
index 0000000000..e469170e34
--- /dev/null
+++ b/spec/build/bsps/arm/xen/bspxen.yml
@@ -0,0 +1,78 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: xen_virtual
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: xen
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/xen/include/bsp.h
+ - bsps/arm/xen/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/xen/include/bsp/irq.h
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optgentmrusevirt
+- role: build-dependency
+ uid: optgentmunmask
+- role: build-dependency
+ uid: optloadoff
+- role: build-dependency
+ uid: ../optmmusz
+- role: build-dependency
+ uid: optnocachelen
+- role: build-dependency
+ uid: optramlen
+- role: build-dependency
+ uid: optramori
+- role: build-dependency
+ uid: optzimghdr
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../optcachedata
+- role: build-dependency
+ uid: ../../optcacheinst
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: linkcmds
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/clock/clock-generic-timer.c
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/irq/irq-gic.c
+- bsps/arm/shared/serial/arm-pl011.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/xen/console/console.c
+- bsps/arm/xen/start/bspstart.c
+- bsps/arm/xen/start/bspstarthooks.c
+- bsps/arm/xen/start/bspstartmmu.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/arm/xen/linkcmds.yml b/spec/build/bsps/arm/xen/linkcmds.yml
new file mode 100644
index 0000000000..ab36af512b
--- /dev/null
+++ b/spec/build/bsps/arm/xen/linkcmds.yml
@@ -0,0 +1,72 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ /*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (C) 2019 DornerWorks
+ * Written by Jeff Kubascik <jeff.kubascik@dornerworks.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ MEMORY {
+ RAM_MMU : ORIGIN = ${BSP_XEN_RAM_BASE}, LENGTH = ${ARM_MMU_TRANSLATION_TABLE_SIZE}
+ RAM : ORIGIN = ${BSP_XEN_RAM_BASE} + ${BSP_XEN_LOAD_OFFSET}, LENGTH = ${BSP_XEN_RAM_LENGTH} - ${BSP_XEN_LOAD_OFFSET} - ${BSP_XEN_NOCACHE_LENGTH}
+ NOCACHE : ORIGIN = ${BSP_XEN_RAM_BASE} + ${BSP_XEN_RAM_LENGTH} - ${BSP_XEN_NOCACHE_LENGTH}, LENGTH = ${BSP_XEN_NOCACHE_LENGTH}
+ }
+
+ REGION_ALIAS ("REGION_START", RAM);
+ REGION_ALIAS ("REGION_VECTOR", RAM);
+ REGION_ALIAS ("REGION_TEXT", RAM);
+ REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_RODATA", RAM);
+ REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_DATA", RAM);
+ REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_BSS", RAM);
+ REGION_ALIAS ("REGION_WORK", RAM);
+ REGION_ALIAS ("REGION_STACK", RAM);
+ REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
+ REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE);
+
+ bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 1024;
+
+ bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;
+
+ bsp_vector_table_in_start_section = 1;
+
+ bsp_translation_table_base = ORIGIN (RAM_MMU);
+ bsp_translation_table_end = ORIGIN (RAM_MMU) + LENGTH (RAM_MMU);
+
+ INCLUDE linkcmds.armv4
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds
+type: build
diff --git a/spec/build/bsps/arm/xen/optgentmrusevirt.yml b/spec/build/bsps/arm/xen/optgentmrusevirt.yml
new file mode 100644
index 0000000000..cfcc9e86d3
--- /dev/null
+++ b/spec/build/bsps/arm/xen/optgentmrusevirt.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ use virtual ARM generic timer
+enabled-by: true
+links: []
+name: ARM_GENERIC_TIMER_USE_VIRTUAL
+type: build
diff --git a/spec/build/bsps/arm/xen/optgentmunmask.yml b/spec/build/bsps/arm/xen/optgentmunmask.yml
new file mode 100644
index 0000000000..1e7c523f15
--- /dev/null
+++ b/spec/build/bsps/arm/xen/optgentmunmask.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ unmask the timer in the tick handler, since Xen will mask the virtual timer before injecting the interrupt to the guest
+enabled-by: true
+links: []
+name: ARM_GENERIC_TIMER_UNMASK_AT_TICK
+type: build
diff --git a/spec/build/bsps/arm/xen/optloadoff.yml b/spec/build/bsps/arm/xen/optloadoff.yml
new file mode 100644
index 0000000000..4589807f88
--- /dev/null
+++ b/spec/build/bsps/arm/xen/optloadoff.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 32768
+default-by-variant: []
+description: |
+ offset of RAM region from memory area base
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_XEN_LOAD_OFFSET
+type: build
diff --git a/spec/build/bsps/arm/xen/optnocachelen.yml b/spec/build/bsps/arm/xen/optnocachelen.yml
new file mode 100644
index 0000000000..389fbb596b
--- /dev/null
+++ b/spec/build/bsps/arm/xen/optnocachelen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1048576
+default-by-variant: []
+description: |
+ length of nocache RAM region
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_XEN_NOCACHE_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xen/optramlen.yml b/spec/build/bsps/arm/xen/optramlen.yml
new file mode 100644
index 0000000000..1d1b43615a
--- /dev/null
+++ b/spec/build/bsps/arm/xen/optramlen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 8388608
+default-by-variant: []
+description: |
+ length of memory area available to the BSP
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_XEN_RAM_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xen/optramori.yml b/spec/build/bsps/arm/xen/optramori.yml
new file mode 100644
index 0000000000..95fbf64079
--- /dev/null
+++ b/spec/build/bsps/arm/xen/optramori.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1073741824
+default-by-variant: []
+description: |
+ base address of memory area available to the BSP
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_XEN_RAM_BASE
+type: build
diff --git a/spec/build/bsps/arm/xen/optzimghdr.yml b/spec/build/bsps/arm/xen/optzimghdr.yml
new file mode 100644
index 0000000000..56aa00c8b1
--- /dev/null
+++ b/spec/build/bsps/arm/xen/optzimghdr.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ include zImage boot header
+enabled-by: true
+links: []
+name: BSP_START_ZIMAGE_HEADER
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/abi.yml b/spec/build/bsps/arm/xilinx-zynq/abi.yml
new file mode 100644
index 0000000000..a3a710c97d
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=armv7-a
+- -mthumb
+- -mfpu=neon
+- -mfloat-abi=hard
+- -mtune=cortex-a9
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/bspqemu.yml b/spec/build/bsps/arm/xilinx-zynq/bspqemu.yml
new file mode 100644
index 0000000000..a8f59548d9
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/bspqemu.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: xilinx_zynq_a9_qemu
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: xilinx-zynq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/bspzc702.yml b/spec/build/bsps/arm/xilinx-zynq/bspzc702.yml
new file mode 100644
index 0000000000..683c2c7b8c
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/bspzc702.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: xilinx_zynq_zc702
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: xilinx-zynq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/bspzc706.yml b/spec/build/bsps/arm/xilinx-zynq/bspzc706.yml
new file mode 100644
index 0000000000..eca7aaf46c
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/bspzc706.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: xilinx_zynq_zc706
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: xilinx-zynq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/bspzedboard.yml b/spec/build/bsps/arm/xilinx-zynq/bspzedboard.yml
new file mode 100644
index 0000000000..ba285c1b80
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/bspzedboard.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: xilinx_zynq_zedboard
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: xilinx-zynq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/grp.yml b/spec/build/bsps/arm/xilinx-zynq/grp.yml
new file mode 100644
index 0000000000..264308e6ad
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/grp.yml
@@ -0,0 +1,64 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: opta9periphclk
+- role: build-dependency
+ uid: optcachedata
+- role: build-dependency
+ uid: optcacheinst
+- role: build-dependency
+ uid: optclkcpu1x
+- role: build-dependency
+ uid: optclkfastidle
+- role: build-dependency
+ uid: optclkuart
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optconminor
+- role: build-dependency
+ uid: optint0len
+- role: build-dependency
+ uid: optint0ori
+- role: build-dependency
+ uid: optint1len
+- role: build-dependency
+ uid: optint1ori
+- role: build-dependency
+ uid: ../optmmusz
+- role: build-dependency
+ uid: optnocachelen
+- role: build-dependency
+ uid: optramlen
+- role: build-dependency
+ uid: optramori
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: linkcmds
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/arm/xilinx-zynq/linkcmds.yml b/spec/build/bsps/arm/xilinx-zynq/linkcmds.yml
new file mode 100644
index 0000000000..d7c0934f78
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/linkcmds.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ MEMORY {
+ RAM_INT_0 : ORIGIN = ${ZYNQ_RAM_INT_0_ORIGIN:#010x}, LENGTH = ${ZYNQ_RAM_INT_0_LENGTH:#010x}
+ RAM_INT_1 : ORIGIN = ${ZYNQ_RAM_INT_1_ORIGIN:#010x}, LENGTH = ${ZYNQ_RAM_INT_1_LENGTH:#010x}
+ RAM_MMU : ORIGIN = ${ZYNQ_RAM_ORIGIN:#010x}, LENGTH = ${ARM_MMU_TRANSLATION_TABLE_SIZE:#010x}
+ RAM : ORIGIN = ${ZYNQ_RAM_ORIGIN:#010x} + ${ARM_MMU_TRANSLATION_TABLE_SIZE:#010x}, LENGTH = ${ZYNQ_RAM_LENGTH:#010x} - ${ZYNQ_RAM_ORIGIN:#010x} - ${ARM_MMU_TRANSLATION_TABLE_SIZE:#010x} - ${ZYNQ_RAM_NOCACHE_LENGTH:#010x}
+ NOCACHE : ORIGIN = ${ZYNQ_RAM_LENGTH:#010x} - ${ZYNQ_RAM_NOCACHE_LENGTH:#010x}, LENGTH = ${ZYNQ_RAM_NOCACHE_LENGTH:#010x}
+ }
+
+ REGION_ALIAS ("REGION_START", RAM);
+ REGION_ALIAS ("REGION_VECTOR", RAM);
+ REGION_ALIAS ("REGION_TEXT", RAM);
+ REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_RODATA", RAM);
+ REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_DATA", RAM);
+ REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_BSS", RAM);
+ REGION_ALIAS ("REGION_WORK", RAM);
+ REGION_ALIAS ("REGION_STACK", RAM);
+ REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
+ REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE);
+
+ bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 1024;
+
+ bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;
+
+ bsp_vector_table_in_start_section = 1;
+
+ bsp_translation_table_base = ORIGIN (RAM_MMU);
+ bsp_translation_table_end = ORIGIN (RAM_MMU) + LENGTH (RAM_MMU);
+
+ INCLUDE linkcmds.armv4
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/obj.yml b/spec/build/bsps/arm/xilinx-zynq/obj.yml
new file mode 100644
index 0000000000..6f7f8ab39a
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/obj.yml
@@ -0,0 +1,47 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/xilinx-zynq/include/bsp.h
+ - bsps/arm/xilinx-zynq/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/xilinx-zynq/include/bsp/cadence-i2c-regs.h
+ - bsps/arm/xilinx-zynq/include/bsp/cadence-i2c.h
+ - bsps/arm/xilinx-zynq/include/bsp/i2c.h
+ - bsps/arm/xilinx-zynq/include/bsp/irq.h
+links: []
+source:
+- bsps/arm/shared/cache/cache-l2c-310.c
+- bsps/arm/shared/clock/clock-a9mpcore.c
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/irq/irq-gic.c
+- bsps/arm/shared/serial/zynq-uart.c
+- bsps/arm/shared/serial/zynq-uart-polled.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/xilinx-zynq/console/console-config.c
+- bsps/arm/xilinx-zynq/console/console-init.c
+- bsps/arm/xilinx-zynq/console/debug-console.c
+- bsps/arm/xilinx-zynq/i2c/cadence-i2c.c
+- bsps/arm/xilinx-zynq/start/bspreset.c
+- bsps/arm/xilinx-zynq/start/bspstart.c
+- bsps/arm/xilinx-zynq/start/bspstarthooks.c
+- bsps/arm/xilinx-zynq/start/bspstartmmu.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/objsmp.yml b/spec/build/bsps/arm/xilinx-zynq/objsmp.yml
new file mode 100644
index 0000000000..587884f6a3
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/objsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/shared/start/arm-a9mpcore-smp.c
+- bsps/arm/xilinx-zynq/start/bspsmp.c
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml b/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml
new file mode 100644
index 0000000000..0b10b47bc2
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 100000000
+default-by-variant:
+- value: 333333333
+ variants:
+ - arm/xilinx_zynq_zc702.*
+- value: 666666667
+ variants:
+ - arm/xilinx_zynq_zedboard.*
+description: |
+ ARM Cortex-A9 MPCore PERIPHCLK clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_ARM_A9MPCORE_PERIPHCLK
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optcachedata.yml b/spec/build/bsps/arm/xilinx-zynq/optcachedata.yml
new file mode 100644
index 0000000000..1664b0fc31
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optcachedata.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*qemu
+description: |
+ enable data cache
+enabled-by: true
+links: []
+name: BSP_DATA_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optcacheinst.yml b/spec/build/bsps/arm/xilinx-zynq/optcacheinst.yml
new file mode 100644
index 0000000000..b191133af9
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optcacheinst.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*qemu
+description: |
+ enable instruction cache
+enabled-by: true
+links: []
+name: BSP_INSTRUCTION_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optclkcpu1x.yml b/spec/build/bsps/arm/xilinx-zynq/optclkcpu1x.yml
new file mode 100644
index 0000000000..1f93f52a8a
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optclkcpu1x.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 111111111
+default-by-variant:
+- value: 111111111
+ variants:
+ - arm/xilinx_zynq_zc702.*
+- value: 111111111
+ variants:
+ - arm/xilinx_zynq_zedboard.*
+description: |
+ Zynq cpu_1x clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: ZYNQ_CLOCK_CPU_1X
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optclkfastidle.yml b/spec/build/bsps/arm/xilinx-zynq/optclkfastidle.yml
new file mode 100644
index 0000000000..b800b20428
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optclkfastidle.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/.*qemu
+description: |
+ This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_FAST_IDLE
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optclkuart.yml b/spec/build/bsps/arm/xilinx-zynq/optclkuart.yml
new file mode 100644
index 0000000000..7d69273eb2
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optclkuart.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 50000000
+default-by-variant:
+- value: 50000000
+ variants:
+ - arm/xilinx_zynq_zc702.*
+- value: 50000000
+ variants:
+ - arm/xilinx_zynq_zedboard.*
+description: |
+ Zynq UART clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: ZYNQ_CLOCK_UART
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optconirq.yml b/spec/build/bsps/arm/xilinx-zynq/optconirq.yml
new file mode 100644
index 0000000000..ecb91d81a3
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optconirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ use interrupt driven mode for console devices (used by default)
+enabled-by: true
+links: []
+name: ZYNQ_CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optconminor.yml b/spec/build/bsps/arm/xilinx-zynq/optconminor.yml
new file mode 100644
index 0000000000..55074c6dac
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optconminor.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ minor number of console device
+enabled-by: true
+links: []
+name: BSP_CONSOLE_MINOR
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optint0len.yml b/spec/build/bsps/arm/xilinx-zynq/optint0len.yml
new file mode 100644
index 0000000000..90d77daeb7
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optint0len.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 196608
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQ_RAM_INT_0_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optint0ori.yml b/spec/build/bsps/arm/xilinx-zynq/optint0ori.yml
new file mode 100644
index 0000000000..a8c4514fd9
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optint0ori.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQ_RAM_INT_0_ORIGIN
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optint1len.yml b/spec/build/bsps/arm/xilinx-zynq/optint1len.yml
new file mode 100644
index 0000000000..32a2c8f3d6
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optint1len.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 65024
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQ_RAM_INT_1_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optint1ori.yml b/spec/build/bsps/arm/xilinx-zynq/optint1ori.yml
new file mode 100644
index 0000000000..f089c467c4
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optint1ori.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 4294901760
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQ_RAM_INT_1_ORIGIN
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optnocachelen.yml b/spec/build/bsps/arm/xilinx-zynq/optnocachelen.yml
new file mode 100644
index 0000000000..7a553ab9a2
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optnocachelen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1048576
+default-by-variant: []
+description: |
+ length of nocache RAM region
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQ_RAM_NOCACHE_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optramlen.yml b/spec/build/bsps/arm/xilinx-zynq/optramlen.yml
new file mode 100644
index 0000000000..e51d3ebf38
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optramlen.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 268435456
+default-by-variant:
+- value: 268435456
+ variants:
+ - arm/xilinx_zynq_a9_qemu
+- value: 1073741824
+ variants:
+ - arm/xilinx_zynq_zc702
+- value: 1073741824
+ variants:
+ - arm/xilinx_zynq_zc706
+- value: 536870912
+ variants:
+ - arm/xilinx_zynq_zedboard
+description: |
+ override a BSP's default RAM length
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQ_RAM_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optramori.yml b/spec/build/bsps/arm/xilinx-zynq/optramori.yml
new file mode 100644
index 0000000000..5723b73d53
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optramori.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- assert-aligned: 1048576
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1048576
+default-by-variant:
+- value: 4194304
+ variants:
+ - arm/xilinx_zynq_zc706
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQ_RAM_ORIGIN
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optresetvec.yml b/spec/build/bsps/arm/xilinx-zynq/optresetvec.yml
new file mode 100644
index 0000000000..efd1ea2b2a
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynq/optresetvec.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ reset vector address for BSP start
+enabled-by: true
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/abi.yml b/spec/build/bsps/arm/xilinx-zynqmp/abi.yml
new file mode 100644
index 0000000000..23c66bb5b8
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=armv7-a
+- -mthumb
+- -mfpu=neon
+- -mfloat-abi=hard
+- -mtune=cortex-a53
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml b/spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml
new file mode 100644
index 0000000000..fe56228c38
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml
@@ -0,0 +1,95 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: arm
+bsp: xilinx_zynqmp_ultra96
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: xilinx-zynqmp
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/arm/xilinx-zynqmp/include/bsp.h
+ - bsps/arm/xilinx-zynqmp/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/arm/xilinx-zynqmp/include/bsp/irq.h
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optcachedata
+- role: build-dependency
+ uid: optcacheinst
+- role: build-dependency
+ uid: optclkfastidle
+- role: build-dependency
+ uid: optclkuart
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optconminor
+- role: build-dependency
+ uid: optgentmrfreq
+- role: build-dependency
+ uid: optgentmrusevirt
+- role: build-dependency
+ uid: optint0len
+- role: build-dependency
+ uid: optint0ori
+- role: build-dependency
+ uid: optint1len
+- role: build-dependency
+ uid: optint1ori
+- role: build-dependency
+ uid: ../optmmusz
+- role: build-dependency
+ uid: optnocachelen
+- role: build-dependency
+ uid: optramlen
+- role: build-dependency
+ uid: optramori
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: linkcmds
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/arm/shared/cache/cache-cp15.c
+- bsps/arm/shared/clock/clock-generic-timer.c
+- bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
+- bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
+- bsps/arm/shared/irq/irq-gic.c
+- bsps/arm/shared/serial/zynq-uart.c
+- bsps/arm/shared/serial/zynq-uart-polled.c
+- bsps/arm/shared/start/bsp-start-memcpy.S
+- bsps/arm/xilinx-zynqmp/console/console-config.c
+- bsps/arm/xilinx-zynqmp/start/bspreset.c
+- bsps/arm/xilinx-zynqmp/start/bspstart.c
+- bsps/arm/xilinx-zynqmp/start/bspstarthooks.c
+- bsps/arm/xilinx-zynqmp/start/bspstartmmu.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/linkcmds.yml b/spec/build/bsps/arm/xilinx-zynqmp/linkcmds.yml
new file mode 100644
index 0000000000..77bd5fb763
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/linkcmds.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ MEMORY {
+ RAM_INT_0 : ORIGIN = ${ZYNQMP_RAM_INT_0_ORIGIN:#010x}, LENGTH = ${ZYNQMP_RAM_INT_0_LENGTH:#010x}
+ RAM_INT_1 : ORIGIN = ${ZYNQMP_RAM_INT_1_ORIGIN:#010x}, LENGTH = ${ZYNQMP_RAM_INT_1_LENGTH:#010x}
+ RAM_MMU : ORIGIN = ${ZYNQMP_RAM_ORIGIN:#010x}, LENGTH = ${ARM_MMU_TRANSLATION_TABLE_SIZE:#010x}
+ RAM : ORIGIN = ${ZYNQMP_RAM_ORIGIN:#010x} + ${ARM_MMU_TRANSLATION_TABLE_SIZE:#010x}, LENGTH = ${ZYNQMP_RAM_LENGTH:#010x} - ${ZYNQMP_RAM_ORIGIN:#010x} - ${ARM_MMU_TRANSLATION_TABLE_SIZE:#010x} - ${ZYNQMP_RAM_NOCACHE_LENGTH:#010x}
+ NOCACHE : ORIGIN = ${ZYNQMP_RAM_LENGTH:#010x} - ${ZYNQMP_RAM_NOCACHE_LENGTH:#010x}, LENGTH = ${ZYNQMP_RAM_NOCACHE_LENGTH:#010x}
+ }
+
+ REGION_ALIAS ("REGION_START", RAM);
+ REGION_ALIAS ("REGION_VECTOR", RAM);
+ REGION_ALIAS ("REGION_TEXT", RAM);
+ REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_RODATA", RAM);
+ REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_DATA", RAM);
+ REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_BSS", RAM);
+ REGION_ALIAS ("REGION_WORK", RAM);
+ REGION_ALIAS ("REGION_STACK", RAM);
+ REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
+ REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE);
+
+ bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 1024;
+
+ bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;
+
+ bsp_vector_table_in_start_section = 1;
+
+ bsp_translation_table_base = ORIGIN (RAM_MMU);
+ bsp_translation_table_end = ORIGIN (RAM_MMU) + LENGTH (RAM_MMU);
+
+ INCLUDE linkcmds.armv4
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/objsmp.yml b/spec/build/bsps/arm/xilinx-zynqmp/objsmp.yml
new file mode 100644
index 0000000000..e8b954b5cb
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/objsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/arm/shared/start/arm-a9mpcore-smp.c
+- bsps/arm/xilinx-zynqmp/start/bspsmp.c
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optcachedata.yml b/spec/build/bsps/arm/xilinx-zynqmp/optcachedata.yml
new file mode 100644
index 0000000000..1664b0fc31
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optcachedata.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*qemu
+description: |
+ enable data cache
+enabled-by: true
+links: []
+name: BSP_DATA_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optcacheinst.yml b/spec/build/bsps/arm/xilinx-zynqmp/optcacheinst.yml
new file mode 100644
index 0000000000..b191133af9
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optcacheinst.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - arm/.*qemu
+description: |
+ enable instruction cache
+enabled-by: true
+links: []
+name: BSP_INSTRUCTION_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optclkfastidle.yml b/spec/build/bsps/arm/xilinx-zynqmp/optclkfastidle.yml
new file mode 100644
index 0000000000..b800b20428
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optclkfastidle.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - arm/.*qemu
+description: |
+ This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_FAST_IDLE
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optclkuart.yml b/spec/build/bsps/arm/xilinx-zynqmp/optclkuart.yml
new file mode 100644
index 0000000000..a2def36606
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optclkuart.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 100000000
+default-by-variant:
+- value: 100000000
+ variants:
+ - arm/xilinx_zynqmp_ultra96.*
+description: |
+ Zynq UART clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: ZYNQ_CLOCK_UART
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optconirq.yml b/spec/build/bsps/arm/xilinx-zynqmp/optconirq.yml
new file mode 100644
index 0000000000..ecb91d81a3
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optconirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ use interrupt driven mode for console devices (used by default)
+enabled-by: true
+links: []
+name: ZYNQ_CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml b/spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml
new file mode 100644
index 0000000000..55074c6dac
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ minor number of console device
+enabled-by: true
+links: []
+name: BSP_CONSOLE_MINOR
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optgentmrfreq.yml b/spec/build/bsps/arm/xilinx-zynqmp/optgentmrfreq.yml
new file mode 100644
index 0000000000..a31630ebd6
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optgentmrfreq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ ARM generic timer frequency in Hz
+enabled-by: true
+links: []
+name: ARM_GENERIC_TIMER_FREQ
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optgentmrusevirt.yml b/spec/build/bsps/arm/xilinx-zynqmp/optgentmrusevirt.yml
new file mode 100644
index 0000000000..794f66244b
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optgentmrusevirt.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Use virtual ARM generic timer
+enabled-by: true
+links: []
+name: ARM_GENERIC_TIMER_USE_VIRTUAL
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optint0len.yml b/spec/build/bsps/arm/xilinx-zynqmp/optint0len.yml
new file mode 100644
index 0000000000..55b3487553
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optint0len.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 196608
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQMP_RAM_INT_0_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optint0ori.yml b/spec/build/bsps/arm/xilinx-zynqmp/optint0ori.yml
new file mode 100644
index 0000000000..f6a8b5f7d4
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optint0ori.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQMP_RAM_INT_0_ORIGIN
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optint1len.yml b/spec/build/bsps/arm/xilinx-zynqmp/optint1len.yml
new file mode 100644
index 0000000000..bdaef49951
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optint1len.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 65024
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQMP_RAM_INT_1_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optint1ori.yml b/spec/build/bsps/arm/xilinx-zynqmp/optint1ori.yml
new file mode 100644
index 0000000000..55caa6f4a2
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optint1ori.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 4294901760
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQMP_RAM_INT_1_ORIGIN
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optnocachelen.yml b/spec/build/bsps/arm/xilinx-zynqmp/optnocachelen.yml
new file mode 100644
index 0000000000..4b9118d926
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optnocachelen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1048576
+default-by-variant: []
+description: |
+ length of nocache RAM region
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQMP_RAM_NOCACHE_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optramlen.yml b/spec/build/bsps/arm/xilinx-zynqmp/optramlen.yml
new file mode 100644
index 0000000000..6efaf7b13b
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optramlen.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 268435456
+default-by-variant:
+- value: 2147483648
+ variants:
+ - arm/xilinx_zynqmp_ultra96
+description: |
+ override a BSP's default RAM length
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQMP_RAM_LENGTH
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optramori.yml b/spec/build/bsps/arm/xilinx-zynqmp/optramori.yml
new file mode 100644
index 0000000000..401b8ec3a3
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optramori.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- assert-aligned: 1048576
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1048576
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: ZYNQMP_RAM_ORIGIN
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optresetvec.yml b/spec/build/bsps/arm/xilinx-zynqmp/optresetvec.yml
new file mode 100644
index 0000000000..efd1ea2b2a
--- /dev/null
+++ b/spec/build/bsps/arm/xilinx-zynqmp/optresetvec.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ reset vector address for BSP start
+enabled-by: true
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/bfin/TLL6527M/abi.yml b/spec/build/bsps/bfin/TLL6527M/abi.yml
new file mode 100644
index 0000000000..861623f2a5
--- /dev/null
+++ b/spec/build/bsps/bfin/TLL6527M/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=bf527
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/bfin/TLL6527M/bsptll6527m.yml b/spec/build/bsps/bfin/TLL6527M/bsptll6527m.yml
new file mode 100644
index 0000000000..8c90c20272
--- /dev/null
+++ b/spec/build/bsps/bfin/TLL6527M/bsptll6527m.yml
@@ -0,0 +1,62 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: bfin
+bsp: TLL6527M
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: TLL6527M
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/bfin/TLL6527M/include/bsp.h
+ - bsps/bfin/TLL6527M/include/cplb.h
+ - bsps/bfin/TLL6527M/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/bfin/TLL6527M/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/bfin/TLL6527M/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optconbaud
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optirqtbl
+- role: build-dependency
+ uid: optskyeye
+- role: build-dependency
+ uid: optuartdma
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/bfin/TLL6527M/console/console.c
+- bsps/bfin/TLL6527M/start/bspstart.c
+- bsps/bfin/TLL6527M/start/interrupt.c
+- bsps/bfin/shared/cache/cache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/bfin/TLL6527M/optconbaud.yml b/spec/build/bsps/bfin/TLL6527M/optconbaud.yml
new file mode 100644
index 0000000000..c1823caa93
--- /dev/null
+++ b/spec/build/bsps/bfin/TLL6527M/optconbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 9600
+default-by-variant: []
+description: |
+ The baudrate of the console uart.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_BAUDRATE
+type: build
diff --git a/spec/build/bsps/bfin/TLL6527M/optconirq.yml b/spec/build/bsps/bfin/TLL6527M/optconirq.yml
new file mode 100644
index 0000000000..1557437cae
--- /dev/null
+++ b/spec/build/bsps/bfin/TLL6527M/optconirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ The console driver can operate in either polled or interrupt mode.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/bfin/TLL6527M/optirqtbl.yml b/spec/build/bsps/bfin/TLL6527M/optirqtbl.yml
new file mode 100644
index 0000000000..925753a83b
--- /dev/null
+++ b/spec/build/bsps/bfin/TLL6527M/optirqtbl.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Select if INTERRUPT use table or link list
+enabled-by: true
+links: []
+name: INTERRUPT_USE_TABLE
+type: build
diff --git a/spec/build/bsps/bfin/TLL6527M/optskyeye.yml b/spec/build/bsps/bfin/TLL6527M/optskyeye.yml
new file mode 100644
index 0000000000..f6b9655e57
--- /dev/null
+++ b/spec/build/bsps/bfin/TLL6527M/optskyeye.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ (BSP--Skyeye) If defined, disable features which are not supported on Skyeye.
+enabled-by: true
+links: []
+name: BFIN_ON_SKYEYE
+type: build
diff --git a/spec/build/bsps/bfin/TLL6527M/optuartdma.yml b/spec/build/bsps/bfin/TLL6527M/optuartdma.yml
new file mode 100644
index 0000000000..915333096d
--- /dev/null
+++ b/spec/build/bsps/bfin/TLL6527M/optuartdma.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ The uart driver can operate in dma mode with interrupts. Set to 1 if DMA operation is required
+enabled-by: true
+links: []
+name: UART_USE_DMA
+type: build
diff --git a/spec/build/bsps/bfin/bf537Stamp/abi.yml b/spec/build/bsps/bfin/bf537Stamp/abi.yml
new file mode 100644
index 0000000000..530e7a5d14
--- /dev/null
+++ b/spec/build/bsps/bfin/bf537Stamp/abi.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: []
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/bfin/bf537Stamp/bspbf537stamp.yml b/spec/build/bsps/bfin/bf537Stamp/bspbf537stamp.yml
new file mode 100644
index 0000000000..3307b2d110
--- /dev/null
+++ b/spec/build/bsps/bfin/bf537Stamp/bspbf537stamp.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: bfin
+bsp: bf537Stamp
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: bf537Stamp
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/bfin/bf537Stamp/include/bsp.h
+ - bsps/bfin/bf537Stamp/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/bfin/bf537Stamp/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/bfin/bf537Stamp/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optskyeye
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/bfin/bf537Stamp/console/console.c
+- bsps/bfin/bf537Stamp/start/bspstart.c
+- bsps/bfin/shared/cache/cache.c
+- bsps/bfin/shared/interrupt.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/bfin/bf537Stamp/objnet.yml b/spec/build/bsps/bfin/bf537Stamp/objnet.yml
new file mode 100644
index 0000000000..151d36831e
--- /dev/null
+++ b/spec/build/bsps/bfin/bf537Stamp/objnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/bfin/bf537Stamp/net/ethernet.c
+- bsps/bfin/bf537Stamp/net/networkconfig.c
+type: build
diff --git a/spec/build/bsps/bfin/bf537Stamp/optconirq.yml b/spec/build/bsps/bfin/bf537Stamp/optconirq.yml
new file mode 100644
index 0000000000..683469c931
--- /dev/null
+++ b/spec/build/bsps/bfin/bf537Stamp/optconirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ The console driver can operate in either polled or interrupt mode.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/bfin/bf537Stamp/optskyeye.yml b/spec/build/bsps/bfin/bf537Stamp/optskyeye.yml
new file mode 100644
index 0000000000..f6b9655e57
--- /dev/null
+++ b/spec/build/bsps/bfin/bf537Stamp/optskyeye.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ (BSP--Skyeye) If defined, disable features which are not supported on Skyeye.
+enabled-by: true
+links: []
+name: BFIN_ON_SKYEYE
+type: build
diff --git a/spec/build/bsps/bfin/bf537Stamp/start.yml b/spec/build/bsps/bfin/bf537Stamp/start.yml
new file mode 100644
index 0000000000..e105798e1d
--- /dev/null
+++ b/spec/build/bsps/bfin/bf537Stamp/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/bfin/bf537Stamp/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/bfin/eZKit533/abi.yml b/spec/build/bsps/bfin/eZKit533/abi.yml
new file mode 100644
index 0000000000..530e7a5d14
--- /dev/null
+++ b/spec/build/bsps/bfin/eZKit533/abi.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: []
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/bfin/eZKit533/bspezkit533.yml b/spec/build/bsps/bfin/eZKit533/bspezkit533.yml
new file mode 100644
index 0000000000..aebacd3596
--- /dev/null
+++ b/spec/build/bsps/bfin/eZKit533/bspezkit533.yml
@@ -0,0 +1,56 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: bfin
+bsp: eZKit533
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: eZKit533
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/bfin/eZKit533/include/bsp.h
+ - bsps/bfin/eZKit533/include/cplb.h
+ - bsps/bfin/eZKit533/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/bfin/eZKit533/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/bfin/eZKit533/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optskyeye
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/bfin/eZKit533/console/console-io.c
+- bsps/bfin/eZKit533/start/bspstart.c
+- bsps/bfin/shared/cache/cache.c
+- bsps/bfin/shared/interrupt.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/bfin/eZKit533/optconirq.yml b/spec/build/bsps/bfin/eZKit533/optconirq.yml
new file mode 100644
index 0000000000..683469c931
--- /dev/null
+++ b/spec/build/bsps/bfin/eZKit533/optconirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ The console driver can operate in either polled or interrupt mode.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/bfin/eZKit533/optskyeye.yml b/spec/build/bsps/bfin/eZKit533/optskyeye.yml
new file mode 100644
index 0000000000..f6b9655e57
--- /dev/null
+++ b/spec/build/bsps/bfin/eZKit533/optskyeye.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ (BSP--Skyeye) If defined, disable features which are not supported on Skyeye.
+enabled-by: true
+links: []
+name: BFIN_ON_SKYEYE
+type: build
diff --git a/spec/build/bsps/bfin/grp.yml b/spec/build/bsps/bfin/grp.yml
new file mode 100644
index 0000000000..86241a16cf
--- /dev/null
+++ b/spec/build/bsps/bfin/grp.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/bfin/include/bf52x.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/bfin/include/bsp/interrupt.h
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - bsps/bfin/include/libcpu/bf533.h
+ - bsps/bfin/include/libcpu/bf537.h
+ - bsps/bfin/include/libcpu/cecRegs.h
+ - bsps/bfin/include/libcpu/coreTimerRegs.h
+ - bsps/bfin/include/libcpu/dmaRegs.h
+ - bsps/bfin/include/libcpu/ebiuRegs.h
+ - bsps/bfin/include/libcpu/ethernet.h
+ - bsps/bfin/include/libcpu/ethernetRegs.h
+ - bsps/bfin/include/libcpu/gpioRegs.h
+ - bsps/bfin/include/libcpu/interrupt.h
+ - bsps/bfin/include/libcpu/memoryRegs.h
+ - bsps/bfin/include/libcpu/mmu.h
+ - bsps/bfin/include/libcpu/mmuRegs.h
+ - bsps/bfin/include/libcpu/ppiRegs.h
+ - bsps/bfin/include/libcpu/rtcRegs.h
+ - bsps/bfin/include/libcpu/sicRegs.h
+ - bsps/bfin/include/libcpu/spi.h
+ - bsps/bfin/include/libcpu/spiRegs.h
+ - bsps/bfin/include/libcpu/sport.h
+ - bsps/bfin/include/libcpu/sportRegs.h
+ - bsps/bfin/include/libcpu/timerRegs.h
+ - bsps/bfin/include/libcpu/twi.h
+ - bsps/bfin/include/libcpu/twiRegs.h
+ - bsps/bfin/include/libcpu/uart.h
+ - bsps/bfin/include/libcpu/uartRegs.h
+ - bsps/bfin/include/libcpu/wdogRegs.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/bfin/obj.yml b/spec/build/bsps/bfin/obj.yml
new file mode 100644
index 0000000000..b5f666414d
--- /dev/null
+++ b/spec/build/bsps/bfin/obj.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+links: []
+source:
+- bsps/bfin/shared/mmu.c
+- bsps/bfin/shared/dev/clock.c
+- bsps/bfin/shared/dev/rtc.c
+- bsps/bfin/shared/dev/spi.c
+- bsps/bfin/shared/dev/sport.c
+- bsps/bfin/shared/dev/timer.c
+- bsps/bfin/shared/dev/twi.c
+- bsps/bfin/shared/dev/uart.c
+type: build
diff --git a/spec/build/bsps/bfin/start.yml b/spec/build/bsps/bfin/start.yml
new file mode 100644
index 0000000000..bf4c4457c4
--- /dev/null
+++ b/spec/build/bsps/bfin/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/bfin/shared/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/bspopts.yml b/spec/build/bsps/bspopts.yml
new file mode 100644
index 0000000000..836d94476e
--- /dev/null
+++ b/spec/build/bsps/bspopts.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-header
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+guard: __BSP_OPTIONS_H
+include-headers: []
+install-path: ${BSP_INCLUDEDIR}
+links:
+- role: build-dependency
+ uid: optabi
+- role: build-dependency
+ uid: optasflags
+- role: build-dependency
+ uid: optbsp
+- role: build-dependency
+ uid: optfatalverb
+- role: build-dependency
+ uid: optincludes
+- role: build-dependency
+ uid: optldflags
+- role: build-dependency
+ uid: optldflagsbsp
+- role: build-dependency
+ uid: optmakelegacy
+- role: build-dependency
+ uid: optprintexcpt
+- role: build-dependency
+ uid: optreset
+- role: build-dependency
+ uid: optresetkey
+- role: build-dependency
+ uid: pkgconfig
+- role: build-dependency
+ uid: tst
+- role: build-dependency
+ uid: grpmake
+target: bsps/include/bspopts.h
+type: build
diff --git a/spec/build/bsps/grpmake.yml b/spec/build/bsps/grpmake.yml
new file mode 100644
index 0000000000..0998efc49e
--- /dev/null
+++ b/spec/build/bsps/grpmake.yml
@@ -0,0 +1,44 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- INSTALL_LEGACY_MAKEFILES
+includes: []
+install:
+- destination: ${PREFIX}/share/rtems${__RTEMS_MAJOR__}/make
+ source:
+ - make/lib.cfg
+ - make/host.cfg
+ - make/directory.cfg
+ - make/README
+- destination: ${PREFIX}/share/rtems${__RTEMS_MAJOR__}/make/compilers
+ source:
+ - make/compilers/gcc-target-default.cfg
+- destination: ${PREFIX}/share/rtems${__RTEMS_MAJOR__}/make/Templates
+ source:
+ - make/Templates/Makefile.dir
+ - make/Templates/Makefile.lib
+ - make/Templates/Makefile.leaf
+- destination: ${PREFIX}/make
+ source:
+ - make/main.cfg
+ - make/leaf.cfg
+- destination: ${PREFIX}/make/custom
+ source:
+ - make/custom/default.cfg
+ldflags: []
+links:
+- role: build-dependency
+ uid: makebsp
+- role: build-dependency
+ uid: makecustom
+- role: build-dependency
+ uid: makeinc
+- role: build-dependency
+ uid: maketarget
+- role: build-dependency
+ uid: optmake
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/i386/grp.yml b/spec/build/bsps/i386/grp.yml
new file mode 100644
index 0000000000..bd68f7f340
--- /dev/null
+++ b/spec/build/bsps/i386/grp.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/i386/include/i386_io.h
+ - bsps/i386/include/uart.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/i386/include/bsp/apic.h
+ - bsps/i386/include/bsp/irq.h
+ - bsps/i386/include/bsp/irq_asm.h
+ - bsps/i386/include/bsp/realmode_int.h
+ - bsps/i386/include/bsp/smp-imps.h
+ - bsps/i386/include/bsp/tty_drv.h
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - bsps/i386/include/libcpu/byteorder.h
+ - bsps/i386/include/libcpu/cpuModel.h
+ - bsps/i386/include/libcpu/page.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/i386/pc386/abi.yml b/spec/build/bsps/i386/pc386/abi.yml
new file mode 100644
index 0000000000..ed933804f5
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/abi.yml
@@ -0,0 +1,48 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mtune=pentium4
+- -march=pentium4
+- -msse3
+- -mtune=i386
+default-by-variant:
+- value:
+ - -mtune=pentiumpro
+ - -march=pentium
+ - -mtune=i386
+ variants:
+ - i386/pc686
+- value:
+ - -mtune=pentium
+ - -march=pentium
+ - -msse2
+ - -mtune=i386
+ variants:
+ - i386/pc586-sse
+- value:
+ - -mtune=pentium
+ - -march=pentium
+ - -mtune=i386
+ variants:
+ - i386/pc586
+- value:
+ - -mtune=i486
+ - -mtune=i386
+ variants:
+ - i386/pc486
+- value:
+ - -mtune=i386
+ variants:
+ - i386/pc386
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/i386/pc386/bsppc386.yml b/spec/build/bsps/i386/pc386/bsppc386.yml
new file mode 100644
index 0000000000..a221bb5820
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/bsppc386.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: i386
+bsp: pc386
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: pc386
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/i386/pc386/bsppc486.yml b/spec/build/bsps/i386/pc386/bsppc486.yml
new file mode 100644
index 0000000000..7a14db2f06
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/bsppc486.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: i386
+bsp: pc486
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: pc386
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/i386/pc386/bsppc586.yml b/spec/build/bsps/i386/pc386/bsppc586.yml
new file mode 100644
index 0000000000..5c73a6368b
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/bsppc586.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: i386
+bsp: pc586
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: pc386
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/i386/pc386/bsppc586sse.yml b/spec/build/bsps/i386/pc386/bsppc586sse.yml
new file mode 100644
index 0000000000..5af45aba6d
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/bsppc586sse.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: i386
+bsp: pc586-sse
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: pc386
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/i386/pc386/bsppc686.yml b/spec/build/bsps/i386/pc386/bsppc686.yml
new file mode 100644
index 0000000000..4f491b47d4
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/bsppc686.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: i386
+bsp: pc686
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: pc386
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/i386/pc386/bsppcp4.yml b/spec/build/bsps/i386/pc386/bsppcp4.yml
new file mode 100644
index 0000000000..41329d7930
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/bsppcp4.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: i386
+bsp: pcp4
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: pc386
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/i386/pc386/grp.yml b/spec/build/bsps/i386/pc386/grp.yml
new file mode 100644
index 0000000000..03aa8cf46e
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/grp.yml
@@ -0,0 +1,68 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objide
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: objvga
+- role: build-dependency
+ uid: optvberm
+- role: build-dependency
+ uid: objvgacir
+- role: build-dependency
+ uid: objvgavbe
+- role: build-dependency
+ uid: objvgavga
+- role: build-dependency
+ uid: optcirrus
+- role: build-dependency
+ uid: optclk8253
+- role: build-dependency
+ uid: optclktsc
+- role: build-dependency
+ uid: optconcom1
+- role: build-dependency
+ uid: optencom14
+- role: build-dependency
+ uid: optenide
+- role: build-dependency
+ uid: optenvga
+- role: build-dependency
+ uid: optgdbstub
+- role: build-dependency
+ uid: optidepriifc
+- role: build-dependency
+ uid: optidesecifc
+- role: build-dependency
+ uid: optvga
+- role: build-dependency
+ uid: optvideo80x50
+- role: build-dependency
+ uid: optgdtdesc
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/i386/pc386/obj.yml b/spec/build/bsps/i386/pc386/obj.yml
new file mode 100644
index 0000000000..e9a6decddc
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/obj.yml
@@ -0,0 +1,83 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/i386/pc386/include/bsp.h
+ - bsps/i386/pc386/include/crt.h
+ - bsps/i386/pc386/include/edid.h
+ - bsps/i386/pc386/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/i386/pc386/include/bsp/bspimpl.h
+ - bsps/i386/pc386/include/bsp/exar17d15x.h
+ - bsps/i386/pc386/include/bsp/fb_default_mode.h
+ - bsps/i386/pc386/include/bsp/fb_vesa.h
+ - bsps/i386/pc386/include/bsp/rtd316.h
+ - bsps/i386/pc386/include/bsp/tblsizes.h
+ - bsps/i386/pc386/include/bsp/vbe3.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - bsps/i386/pc386/include/rtems/kd.h
+ - bsps/i386/pc386/include/rtems/keyboard.h
+ - bsps/i386/pc386/include/rtems/ps2_drv.h
+ - bsps/i386/pc386/include/rtems/vgacons.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/i386/pc386/start/linkcmds
+links: []
+source:
+- bsps/i386/pc386/btimer/btimer.c
+- bsps/i386/pc386/btimer/timerisr.S
+- bsps/i386/pc386/clock/ckinit.c
+- bsps/i386/pc386/clock/todcfg.c
+- bsps/i386/pc386/console/conscfg.c
+- bsps/i386/pc386/console/console_control.c
+- bsps/i386/pc386/console/console_select.c
+- bsps/i386/pc386/console/exar17d15x.c
+- bsps/i386/pc386/console/gdb_glue.c
+- bsps/i386/pc386/console/gdb_select.c
+- bsps/i386/pc386/console/i386-stub-glue.c
+- bsps/i386/pc386/console/i386-stub.c
+- bsps/i386/pc386/console/printk_support.c
+- bsps/i386/pc386/console/rtd316.c
+- bsps/i386/pc386/console/serial_mouse_config.c
+- bsps/i386/pc386/console/tty_drv.c
+- bsps/i386/pc386/console/uart.c
+- bsps/i386/pc386/console/uart_bus_pci.c
+- bsps/i386/pc386/start/bsp_fatal_halt.c
+- bsps/i386/pc386/start/bspcmdline.c
+- bsps/i386/pc386/start/bspgetworkarea.c
+- bsps/i386/pc386/start/bspidle.S
+- bsps/i386/pc386/start/bspreset.c
+- bsps/i386/pc386/start/bspstart.c
+- bsps/i386/pc386/start/cpuModel.S
+- bsps/i386/pc386/start/displayCpu.c
+- bsps/i386/pc386/start/idtr.S
+- bsps/i386/pc386/start/ldsegs.S
+- bsps/i386/pc386/start/page.c
+- bsps/i386/pc386/start/realmode_int.c
+- bsps/i386/shared/cache/cache.c
+- bsps/i386/shared/irq/elcr.c
+- bsps/i386/shared/irq/idt.c
+- bsps/i386/shared/irq/irq.c
+- bsps/i386/shared/irq/irq_asm.S
+- bsps/i386/shared/irq/irq_init.c
+- bsps/i386/shared/pci/pci_io.c
+- bsps/i386/shared/pci/pcibios.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/pci/pci_bus_count.c
+- bsps/shared/dev/pci/pci_find_device.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/i386/pc386/objide.yml b/spec/build/bsps/i386/pc386/objide.yml
new file mode 100644
index 0000000000..8065afc402
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/objide.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- BSP_ENABLE_IDE
+includes: []
+install: []
+links: []
+source:
+- bsps/i386/pc386/ata/ide.c
+- bsps/i386/pc386/ata/idecfg.c
+type: build
diff --git a/spec/build/bsps/i386/pc386/objnet.yml b/spec/build/bsps/i386/pc386/objnet.yml
new file mode 100644
index 0000000000..da30f2423b
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/objnet.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/i386/pc386/net/3c509.c
+- bsps/i386/pc386/net/elink.c
+- bsps/i386/pc386/net/ne2000.c
+- bsps/i386/pc386/net/wd8003.c
+type: build
diff --git a/spec/build/bsps/i386/pc386/objsmp.yml b/spec/build/bsps/i386/pc386/objsmp.yml
new file mode 100644
index 0000000000..af882cb425
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/objsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/i386/pc386/start/getcpuid.c
+- bsps/i386/pc386/start/smp-imps.c
+type: build
diff --git a/spec/build/bsps/i386/pc386/objvga.yml b/spec/build/bsps/i386/pc386/objvga.yml
new file mode 100644
index 0000000000..9e212637bb
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/objvga.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- BSP_ENABLE_VGA
+includes: []
+install: []
+links: []
+source:
+- bsps/i386/pc386/console/defkeymap.c
+- bsps/i386/pc386/console/inch.c
+- bsps/i386/pc386/console/kbd_parser.c
+- bsps/i386/pc386/console/keyboard.c
+- bsps/i386/pc386/console/outch.c
+- bsps/i386/pc386/console/pc_keyb.c
+- bsps/i386/pc386/console/ps2_mouse.c
+- bsps/i386/pc386/console/vgacons.c
+- bsps/i386/pc386/console/vgainit.c
+- bsps/i386/pc386/console/videoAsm.S
+- bsps/i386/pc386/console/vt.c
+type: build
diff --git a/spec/build/bsps/i386/pc386/objvgacir.yml b/spec/build/bsps/i386/pc386/objvgacir.yml
new file mode 100644
index 0000000000..530c12b99d
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/objvgacir.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- and:
+ - BSP_ENABLE_VGA
+ - USE_CIRRUS_GD5446
+includes: []
+install: []
+links: []
+source:
+- bsps/i386/pc386/console/fb_cirrus.c
+type: build
diff --git a/spec/build/bsps/i386/pc386/objvgavbe.yml b/spec/build/bsps/i386/pc386/objvgavbe.yml
new file mode 100644
index 0000000000..57206ff9de
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/objvgavbe.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- and:
+ - BSP_ENABLE_VGA
+ - USE_VBE_RM
+includes: []
+install: []
+links: []
+source:
+- bsps/i386/pc386/console/fb_vesa_rm.c
+type: build
diff --git a/spec/build/bsps/i386/pc386/objvgavga.yml b/spec/build/bsps/i386/pc386/objvgavga.yml
new file mode 100644
index 0000000000..5f658c0d2f
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/objvgavga.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- and:
+ - BSP_ENABLE_VGA
+ - USE_VGA
+includes: []
+install: []
+links: []
+source:
+- bsps/i386/pc386/console/fb_vga.c
+type: build
diff --git a/spec/build/bsps/i386/pc386/optcirrus.yml b/spec/build/bsps/i386/pc386/optcirrus.yml
new file mode 100644
index 0000000000..c974001647
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optcirrus.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, enables use of the Cirrus GD5446 controller rather than the controller utilizing Vesa Bios Extensions - real mode interface. NOTE: This has only been tested on Qemu.
+enabled-by: true
+links: []
+name: USE_CIRRUS_GD5446
+type: build
diff --git a/spec/build/bsps/i386/pc386/optclk8253.yml b/spec/build/bsps/i386/pc386/optclk8253.yml
new file mode 100644
index 0000000000..ddaeb3bb75
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optclk8253.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ None
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_8254
+type: build
diff --git a/spec/build/bsps/i386/pc386/optclktsc.yml b/spec/build/bsps/i386/pc386/optclktsc.yml
new file mode 100644
index 0000000000..2b02523def
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optclktsc.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ None
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_TSC
+type: build
diff --git a/spec/build/bsps/i386/pc386/optconcom1.yml b/spec/build/bsps/i386/pc386/optconcom1.yml
new file mode 100644
index 0000000000..6743683ecc
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optconcom1.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Determines, whether the console will be associated with the standard VGA display or with the COM1 serial port. Currently only the VGA display and COM1 support printk.
+enabled-by: true
+links: []
+name: USE_COM1_AS_CONSOLE
+type: build
diff --git a/spec/build/bsps/i386/pc386/optencom14.yml b/spec/build/bsps/i386/pc386/optencom14.yml
new file mode 100644
index 0000000000..1547f5d890
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optencom14.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Set if COM1..COM4 support is enabled.
+enabled-by: true
+links: []
+name: BSP_ENABLE_COM1_COM4
+type: build
diff --git a/spec/build/bsps/i386/pc386/optenide.yml b/spec/build/bsps/i386/pc386/optenide.yml
new file mode 100644
index 0000000000..db3a9aaf04
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optenide.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Set if IDE support is enabled.
+enabled-by: true
+links: []
+name: BSP_ENABLE_IDE
+type: build
diff --git a/spec/build/bsps/i386/pc386/optenvga.yml b/spec/build/bsps/i386/pc386/optenvga.yml
new file mode 100644
index 0000000000..d2f4755a8b
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optenvga.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Set if the VGA and keyboard console support is enabled.
+enabled-by: true
+links: []
+name: BSP_ENABLE_VGA
+type: build
diff --git a/spec/build/bsps/i386/pc386/optgdbstub.yml b/spec/build/bsps/i386/pc386/optgdbstub.yml
new file mode 100644
index 0000000000..6af1c8ec56
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optgdbstub.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Defined by default. Enables use of the GDB stub for debugging via a serial port.
+enabled-by: true
+links: []
+name: BSP_GDB_STUB
+type: build
diff --git a/spec/build/bsps/i386/pc386/optgdtdesc.yml b/spec/build/bsps/i386/pc386/optgdtdesc.yml
new file mode 100644
index 0000000000..8898bf4726
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optgdtdesc.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- script: |
+ if "USE_CIRRUS_GD5446" not in conf.env.ENABLE and "USE_VGA" not in conf.env.ENABLE:
+ if "USE_VBE_RM" not in conf.env.ENABLE:
+ conf.fatal(
+ "USE_VBE_RM must be enabled in case USE_CIRRUS_GD5446 and USE_VGA are disabled"
+ )
+ if value:
+ value += 2
+ else:
+ value = 2
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ Defines how many descriptors in GDT may be allocated for application or driver usage.
+enabled-by: true
+format: '{}'
+links: []
+name: NUM_APP_DRV_GDT_DESCRIPTORS
+type: build
diff --git a/spec/build/bsps/i386/pc386/optidepriifc.yml b/spec/build/bsps/i386/pc386/optidepriifc.yml
new file mode 100644
index 0000000000..375b89904b
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optidepriifc.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Determines, whether RTEMS will try to use the primary IDE interface. Disable it, if: - you have no primary IDE interface - or you have no disk attached to this interface - or you do not want to access disks attached to this interface
+enabled-by: true
+links: []
+name: IDE_USE_PRIMARY_INTERFACE
+type: build
diff --git a/spec/build/bsps/i386/pc386/optidesecifc.yml b/spec/build/bsps/i386/pc386/optidesecifc.yml
new file mode 100644
index 0000000000..4b61958f7d
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optidesecifc.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Determines, whether RTEMS will try to use the secondary IDE interface. Enable it, if: - you have a secondary IDE interface - and you have at least one disk attached to this interface - and you do want to access disks attached to this interface
+enabled-by: true
+links: []
+name: IDE_USE_SECONDARY_INTERFACE
+type: build
diff --git a/spec/build/bsps/i386/pc386/optvberm.yml b/spec/build/bsps/i386/pc386/optvberm.yml
new file mode 100644
index 0000000000..dce5975ef8
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optvberm.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Defined by default. Enables use of the Vesa Bios Extensions - real mode interface, which enables graphical mode and introduce it upon bootup.
+enabled-by: true
+links: []
+name: USE_VBE_RM
+type: build
diff --git a/spec/build/bsps/i386/pc386/optvga.yml b/spec/build/bsps/i386/pc386/optvga.yml
new file mode 100644
index 0000000000..5477de3e0b
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optvga.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, enables use of the very basic VGA driver for framebuffer support rather than the controller utilizing Vesa Bios Extensions - real mode interface.
+enabled-by: true
+links: []
+name: USE_VGA
+type: build
diff --git a/spec/build/bsps/i386/pc386/optvideo80x50.yml b/spec/build/bsps/i386/pc386/optvideo80x50.yml
new file mode 100644
index 0000000000..f95225bc04
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/optvideo80x50.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, set the VGA display to 80x50.
+enabled-by: true
+links: []
+name: BSP_VIDEO_80x50
+type: build
diff --git a/spec/build/bsps/i386/pc386/start.yml b/spec/build/bsps/i386/pc386/start.yml
new file mode 100644
index 0000000000..99cefa2751
--- /dev/null
+++ b/spec/build/bsps/i386/pc386/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/i386/pc386/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/linkcmds.yml b/spec/build/bsps/linkcmds.yml
new file mode 100644
index 0000000000..420108473d
--- /dev/null
+++ b/spec/build/bsps/linkcmds.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+do-build: |
+ bld.install_as(
+ "${BSP_LIBDIR}/linkcmds",
+ "bsps/" + bld.env.ARCH + "/" + bld.env.BSP_FAMILY +
+ "/start/linkcmds." + bld.env.BSP_BASE
+ )
+do-configure: |
+ conf.env.append_value(
+ "LINKFLAGS",
+ ["-qnolinkcmds", "-T", "linkcmds." + conf.env.BSP_BASE]
+ )
+enabled-by: true
+links: []
+prepare-build: null
+prepare-configure: null
+type: build
diff --git a/spec/build/bsps/lm32/grp.yml b/spec/build/bsps/lm32/grp.yml
new file mode 100644
index 0000000000..218367fb08
--- /dev/null
+++ b/spec/build/bsps/lm32/grp.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/lm32/include/bsp/irq.h
+ - bsps/lm32/include/bsp/milkymist_ac97.h
+ - bsps/lm32/include/bsp/milkymist_buttons.h
+ - bsps/lm32/include/bsp/milkymist_dmx.h
+ - bsps/lm32/include/bsp/milkymist_flash.h
+ - bsps/lm32/include/bsp/milkymist_gpio.h
+ - bsps/lm32/include/bsp/milkymist_ir.h
+ - bsps/lm32/include/bsp/milkymist_memcard.h
+ - bsps/lm32/include/bsp/milkymist_midi.h
+ - bsps/lm32/include/bsp/milkymist_pfpu.h
+ - bsps/lm32/include/bsp/milkymist_tmu.h
+ - bsps/lm32/include/bsp/milkymist_usbinput.h
+ - bsps/lm32/include/bsp/milkymist_versions.h
+ - bsps/lm32/include/bsp/milkymist_video.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/lm32/lm32_evr/abi.yml b/spec/build/bsps/lm32/lm32_evr/abi.yml
new file mode 100644
index 0000000000..530e7a5d14
--- /dev/null
+++ b/spec/build/bsps/lm32/lm32_evr/abi.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: []
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/lm32/lm32_evr/bspgdbsim.yml b/spec/build/bsps/lm32/lm32_evr/bspgdbsim.yml
new file mode 100644
index 0000000000..8c9c736d8f
--- /dev/null
+++ b/spec/build/bsps/lm32/lm32_evr/bspgdbsim.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: lm32
+bsp: lm32_evr_gdbsim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lm32_evr
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstnointrcrit
+source: []
+type: build
diff --git a/spec/build/bsps/lm32/lm32_evr/bsplm32evr.yml b/spec/build/bsps/lm32/lm32_evr/bsplm32evr.yml
new file mode 100644
index 0000000000..f3576154ca
--- /dev/null
+++ b/spec/build/bsps/lm32/lm32_evr/bsplm32evr.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: lm32
+bsp: lm32_evr
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: lm32_evr
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/lm32/lm32_evr/grp.yml b/spec/build/bsps/lm32/lm32_evr/grp.yml
new file mode 100644
index 0000000000..3dec0056fb
--- /dev/null
+++ b/spec/build/bsps/lm32/lm32_evr/grp.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optsim
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/lm32/lm32_evr/obj.yml b/spec/build/bsps/lm32/lm32_evr/obj.yml
new file mode 100644
index 0000000000..eec04aefe8
--- /dev/null
+++ b/spec/build/bsps/lm32/lm32_evr/obj.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/lm32/lm32_evr/include/bsp.h
+ - bsps/lm32/lm32_evr/include/system_conf.h
+ - bsps/lm32/lm32_evr/include/tm27.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/lm32/lm32_evr/start/linkcmds
+links: []
+source:
+- bsps/lm32/shared/btimer/btimer.c
+- bsps/lm32/shared/clock/ckinit.c
+- bsps/lm32/shared/console/console.c
+- bsps/lm32/shared/console/uart.c
+- bsps/lm32/shared/start/bspreset.c
+- bsps/lm32/shared/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/lm32/lm32_evr/objnet.yml b/spec/build/bsps/lm32/lm32_evr/objnet.yml
new file mode 100644
index 0000000000..32e64832c7
--- /dev/null
+++ b/spec/build/bsps/lm32/lm32_evr/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/lm32/shared/net/tsmac.c
+type: build
diff --git a/spec/build/bsps/lm32/lm32_evr/optsim.yml b/spec/build/bsps/lm32/lm32_evr/optsim.yml
new file mode 100644
index 0000000000..b02e333c26
--- /dev/null
+++ b/spec/build/bsps/lm32/lm32_evr/optsim.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - lm32/lm32_evr_gdbsim
+description: |
+ If defined, this indicates the BSP is being built to run on the lm32 simulator in GDB. This enables fast idle support which speeds up the clock ticks while the idle task is running so time spent in the idle task is minimized. This significantly reduces the wall time required to execute the RTEMS test suites. It also enables a special exit and alternate printk support.
+enabled-by: true
+links: []
+name: LM32_ON_SIMULATOR
+type: build
diff --git a/spec/build/bsps/lm32/milkymist/abi.yml b/spec/build/bsps/lm32/milkymist/abi.yml
new file mode 100644
index 0000000000..1b553c1f4d
--- /dev/null
+++ b/spec/build/bsps/lm32/milkymist/abi.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mbarrel-shift-enabled
+- -mmultiply-enabled
+- -mdivide-enabled
+- -msign-extend-enabled
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/lm32/milkymist/bspmilkymist.yml b/spec/build/bsps/lm32/milkymist/bspmilkymist.yml
new file mode 100644
index 0000000000..a599d42f8d
--- /dev/null
+++ b/spec/build/bsps/lm32/milkymist/bspmilkymist.yml
@@ -0,0 +1,67 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: lm32
+bsp: milkymist
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: milkymist
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/lm32/milkymist/include/bsp.h
+ - bsps/lm32/milkymist/include/system_conf.h
+ - bsps/lm32/milkymist/include/tm27.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/lm32/milkymist/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optsim
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/lm32/milkymist/start/bspclean.c
+- bsps/lm32/shared/irq/irq.c
+- bsps/lm32/shared/milkymist_ac97/ac97.c
+- bsps/lm32/shared/milkymist_buttons/buttons.c
+- bsps/lm32/shared/milkymist_clock/ckinit.c
+- bsps/lm32/shared/milkymist_console/console.c
+- bsps/lm32/shared/milkymist_console/uart.c
+- bsps/lm32/shared/milkymist_dmx/dmx.c
+- bsps/lm32/shared/milkymist_flash/flash.c
+- bsps/lm32/shared/milkymist_framebuffer/framebuffer.c
+- bsps/lm32/shared/milkymist_gpio/gpio.c
+- bsps/lm32/shared/milkymist_ir/ir.c
+- bsps/lm32/shared/milkymist_memcard/memcard.c
+- bsps/lm32/shared/milkymist_midi/midi.c
+- bsps/lm32/shared/milkymist_pfpu/pfpu.c
+- bsps/lm32/shared/milkymist_timer/timer.c
+- bsps/lm32/shared/milkymist_tmu/tmu.c
+- bsps/lm32/shared/milkymist_usbinput/usbinput.c
+- bsps/lm32/shared/milkymist_versions/versions.c
+- bsps/lm32/shared/milkymist_video/video.c
+- bsps/lm32/shared/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/lm32/milkymist/objnet.yml b/spec/build/bsps/lm32/milkymist/objnet.yml
new file mode 100644
index 0000000000..14d84f9e7e
--- /dev/null
+++ b/spec/build/bsps/lm32/milkymist/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/lm32/shared/net/network.c
+type: build
diff --git a/spec/build/bsps/lm32/milkymist/optsim.yml b/spec/build/bsps/lm32/milkymist/optsim.yml
new file mode 100644
index 0000000000..5172e03c63
--- /dev/null
+++ b/spec/build/bsps/lm32/milkymist/optsim.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, this indicates the BSP is being built to run on the lm32 simulator in GDB. This enables fast idle support which speeds up the clock ticks while the idle task is running so time spent in the idle task is minimized. This significantly reduces the wall time required to execute the RTEMS test suites. It also enables a special exit and alternate printk support.
+enabled-by: true
+links: []
+name: LM32_ON_SIMULATOR
+type: build
diff --git a/spec/build/bsps/lm32/start.yml b/spec/build/bsps/lm32/start.yml
new file mode 100644
index 0000000000..4ebb69a1e1
--- /dev/null
+++ b/spec/build/bsps/lm32/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/lm32/shared/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/av5282/abi.yml b/spec/build/bsps/m68k/av5282/abi.yml
new file mode 100644
index 0000000000..78f70236d3
--- /dev/null
+++ b/spec/build/bsps/m68k/av5282/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=528x
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/av5282/bspav5282.yml b/spec/build/bsps/m68k/av5282/bspav5282.yml
new file mode 100644
index 0000000000..66ab1333d2
--- /dev/null
+++ b/spec/build/bsps/m68k/av5282/bspav5282.yml
@@ -0,0 +1,55 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: av5282
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: av5282
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/av5282/include/bsp.h
+ - bsps/m68k/av5282/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/av5282/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/av5282/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/av5282/btimer/btimer.c
+- bsps/m68k/av5282/clock/clock.c
+- bsps/m68k/av5282/console/console.c
+- bsps/m68k/av5282/start/bspstart.c
+- bsps/m68k/av5282/start/init5282.c
+- bsps/m68k/shared/cache/cache-mcf5282.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/av5282/objnet.yml b/spec/build/bsps/m68k/av5282/objnet.yml
new file mode 100644
index 0000000000..4346dad873
--- /dev/null
+++ b/spec/build/bsps/m68k/av5282/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/m68k/av5282/net/network.c
+type: build
diff --git a/spec/build/bsps/m68k/av5282/start.yml b/spec/build/bsps/m68k/av5282/start.yml
new file mode 100644
index 0000000000..a67f06364f
--- /dev/null
+++ b/spec/build/bsps/m68k/av5282/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/av5282/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/csb360/abi.yml b/spec/build/bsps/m68k/csb360/abi.yml
new file mode 100644
index 0000000000..1ff2806a6c
--- /dev/null
+++ b/spec/build/bsps/m68k/csb360/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=5272
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/csb360/bspcsb360.yml b/spec/build/bsps/m68k/csb360/bspcsb360.yml
new file mode 100644
index 0000000000..e2add1c268
--- /dev/null
+++ b/spec/build/bsps/m68k/csb360/bspcsb360.yml
@@ -0,0 +1,55 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: csb360
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: csb360
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/csb360/include/bsp.h
+ - bsps/m68k/csb360/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/csb360/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/csb360/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/csb360/console/console-io.c
+- bsps/m68k/csb360/dev/ckinit.c
+- bsps/m68k/csb360/dev/timer.c
+- bsps/m68k/csb360/dev/timerisr.S
+- bsps/m68k/csb360/start/idle-mcf5272.c
+- bsps/m68k/csb360/start/init5272.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/csb360/start.yml b/spec/build/bsps/m68k/csb360/start.yml
new file mode 100644
index 0000000000..fd94bd5958
--- /dev/null
+++ b/spec/build/bsps/m68k/csb360/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/csb360/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/gen68340/abi.yml b/spec/build/bsps/m68k/gen68340/abi.yml
new file mode 100644
index 0000000000..0daf8ee06b
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68340/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=cpu32
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/gen68340/bspgen68340.yml b/spec/build/bsps/m68k/gen68340/bspgen68340.yml
new file mode 100644
index 0000000000..e07abddd43
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68340/bspgen68340.yml
@@ -0,0 +1,61 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: gen68340
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen68340
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/gen68340/include/bsp.h
+ - bsps/m68k/gen68340/include/m340timer.h
+ - bsps/m68k/gen68340/include/m340uart.h
+ - bsps/m68k/gen68340/include/m68340.h
+ - bsps/m68k/gen68340/include/m68340.inc
+ - bsps/m68k/gen68340/include/m68349.inc
+ - bsps/m68k/gen68340/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/gen68340/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/gen68340/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/gen68340/btimer/btimer.c
+- bsps/m68k/gen68340/clock/ckinit.c
+- bsps/m68k/gen68340/console/console.c
+- bsps/m68k/gen68340/console/m340uart.c
+- bsps/m68k/gen68340/start/dumpanic.c
+- bsps/m68k/gen68340/start/init68340.c
+- bsps/m68k/shared/cache/cache.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/gen68340/start.yml b/spec/build/bsps/m68k/gen68340/start.yml
new file mode 100644
index 0000000000..be6f431af3
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68340/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/gen68340/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/abi.yml b/spec/build/bsps/m68k/gen68360/abi.yml
new file mode 100644
index 0000000000..5e83fae804
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/abi.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu32
+default-by-variant:
+- value:
+ - -mcpu=68040
+ variants:
+ - m68k/gen68360_040
+- value:
+ - -mcpu=cpu32
+ variants:
+ - m68k/gen68360
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/bspgen68360.yml b/spec/build/bsps/m68k/gen68360/bspgen68360.yml
new file mode 100644
index 0000000000..3fe72993b3
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/bspgen68360.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: gen68360
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen68360
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/bspgen68360040.yml b/spec/build/bsps/m68k/gen68360/bspgen68360040.yml
new file mode 100644
index 0000000000..24c1d855a5
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/bspgen68360040.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: gen68360_040
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen68360
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/bsppgh360.yml b/spec/build/bsps/m68k/gen68360/bsppgh360.yml
new file mode 100644
index 0000000000..2a8f2f2131
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/bsppgh360.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: pgh360
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen68360
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/grp.yml b/spec/build/bsps/m68k/gen68360/grp.yml
new file mode 100644
index 0000000000..56357004ce
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/grp.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: opt68360
+- role: build-dependency
+ uid: opt68360x040
+- role: build-dependency
+ uid: optpgh360
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../objfpsp
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/m68k/gen68360/obj.yml b/spec/build/bsps/m68k/gen68360/obj.yml
new file mode 100644
index 0000000000..27e7bb8517
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/obj.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/gen68360/include/bsp.h
+ - bsps/m68k/gen68360/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/gen68360/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/gen68360/start/linkcmds
+ - bsps/m68k/gen68360/start/linkcmds.bootp
+ - bsps/m68k/gen68360/start/linkcmds.prom
+links: []
+source:
+- bsps/m68k/gen68360/btimer/btimer.c
+- bsps/m68k/gen68360/clock/clock.c
+- bsps/m68k/gen68360/console/console.c
+- bsps/m68k/gen68360/start/alloc360.c
+- bsps/m68k/gen68360/start/init68360.c
+- bsps/m68k/shared/cache/cache.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/objnet.yml b/spec/build/bsps/m68k/gen68360/objnet.yml
new file mode 100644
index 0000000000..4b9ee8164b
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/m68k/gen68360/net/network.c
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/opt68360.yml b/spec/build/bsps/m68k/gen68360/opt68360.yml
new file mode 100644
index 0000000000..11f0f054c9
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/opt68360.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - m68k/gen68360
+description: |
+ If defined, use custom settings for the gen68360 BSP.
+enabled-by: true
+links: []
+name: GEN68360
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/opt68360x040.yml b/spec/build/bsps/m68k/gen68360/opt68360x040.yml
new file mode 100644
index 0000000000..c176a780a3
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/opt68360x040.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - m68k/gen68360_040
+description: |
+ If defined, use custom settings for the gen68360_040 BSP.
+enabled-by: true
+links: []
+name: GEN68360_040
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/optpgh360.yml b/spec/build/bsps/m68k/gen68360/optpgh360.yml
new file mode 100644
index 0000000000..8fea68fa42
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/optpgh360.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - m68k/pgh360
+description: |
+ If defined, use custom settings for the pgh360 BSP.
+enabled-by: true
+links: []
+name: PGH360
+type: build
diff --git a/spec/build/bsps/m68k/gen68360/start.yml b/spec/build/bsps/m68k/gen68360/start.yml
new file mode 100644
index 0000000000..88a6949b60
--- /dev/null
+++ b/spec/build/bsps/m68k/gen68360/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/gen68360/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/abi.yml b/spec/build/bsps/m68k/genmcf548x/abi.yml
new file mode 100644
index 0000000000..6680decb4c
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcfv4e
+- -Wa,-memac
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/bspcobra5475.yml b/spec/build/bsps/m68k/genmcf548x/bspcobra5475.yml
new file mode 100644
index 0000000000..481c2edbe5
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/bspcobra5475.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: COBRA5475
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: genmcf548x
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/bspm5484fireengine.yml b/spec/build/bsps/m68k/genmcf548x/bspm5484fireengine.yml
new file mode 100644
index 0000000000..51d434bd02
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/bspm5484fireengine.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: m5484FireEngine
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: genmcf548x
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/grp.yml b/spec/build/bsps/m68k/genmcf548x/grp.yml
new file mode 100644
index 0000000000..b4e72b6199
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/grp.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optcpuclk
+- role: build-dependency
+ uid: optdbug
+- role: build-dependency
+ uid: optlowinit
+- role: build-dependency
+ uid: optm5484fireengine
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../optconsolebaud
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/m68k/genmcf548x/obj.yml b/spec/build/bsps/m68k/genmcf548x/obj.yml
new file mode 100644
index 0000000000..729c1f045a
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/obj.yml
@@ -0,0 +1,52 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/genmcf548x/include/bsp.h
+ - bsps/m68k/genmcf548x/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/genmcf548x/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/genmcf548x/start/linkcmds.COBRA5475
+ - bsps/m68k/genmcf548x/start/linkcmds.m5484FireEngine
+ - bsps/m68k/genmcf548x/start/linkcmds.m5484FireEngine.flash
+ - bsps/m68k/shared/start/linkcmds.base
+links: []
+source:
+- bsps/m68k/genmcf548x/btimer/btimer.c
+- bsps/m68k/genmcf548x/clock/clock.c
+- bsps/m68k/genmcf548x/console/console.c
+- bsps/m68k/genmcf548x/irq/intc-icr-init-values.c
+- bsps/m68k/genmcf548x/irq/irq.c
+- bsps/m68k/genmcf548x/mcdma/MCD_dmaApi.c
+- bsps/m68k/genmcf548x/mcdma/MCD_tasks.c
+- bsps/m68k/genmcf548x/mcdma/MCD_tasksInit.c
+- bsps/m68k/genmcf548x/mcdma/mcdma_glue.c
+- bsps/m68k/genmcf548x/start/bspstart.c
+- bsps/m68k/genmcf548x/start/cache.c
+- bsps/m68k/genmcf548x/start/init548x.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/irq/irq-info.c
+- bsps/shared/irq/irq-legacy.c
+- bsps/shared/irq/irq-lock.c
+- bsps/shared/irq/irq-server.c
+- bsps/shared/irq/irq-shell.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/objnet.yml b/spec/build/bsps/m68k/genmcf548x/objnet.yml
new file mode 100644
index 0000000000..203cb408a8
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/m68k/genmcf548x/net/network.c
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/optcpuclk.yml b/spec/build/bsps/m68k/genmcf548x/optcpuclk.yml
new file mode 100644
index 0000000000..6cf392fbb6
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/optcpuclk.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 100000000
+default-by-variant:
+- value: 132000000
+ variants:
+ - m68k/COBRA5475
+- value: 100000000
+ variants:
+ - m68k/m5484FireEngine
+description: |
+ The bus clock to be used inside the mcf54xx
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_CPU_CLOCK_SPEED
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/optdbug.yml b/spec/build/bsps/m68k/genmcf548x/optdbug.yml
new file mode 100644
index 0000000000..26f93cd969
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/optdbug.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - m68k/COBRA5475
+description: |
+ If defined, we will not boot from RESET, but from Freescale DBug monitor.
+enabled-by: true
+links: []
+name: HAS_DBUG
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/optlowinit.yml b/spec/build/bsps/m68k/genmcf548x/optlowinit.yml
new file mode 100644
index 0000000000..7d0f76a6be
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/optlowinit.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - m68k/m5484FireEngine
+description: |
+ If defined, we will do all the low level init of the chip (like bus/memory...).
+enabled-by: true
+links: []
+name: HAS_LOW_LEVEL_INIT
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/optm5484fireengine.yml b/spec/build/bsps/m68k/genmcf548x/optm5484fireengine.yml
new file mode 100644
index 0000000000..e2b71f1af1
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/optm5484fireengine.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - m68k/m5484FireEngine
+description: |
+ If defined, use custom settings for the m5484FireEngine BSP.
+enabled-by: true
+links: []
+name: M5484FIREENGINE
+type: build
diff --git a/spec/build/bsps/m68k/genmcf548x/start.yml b/spec/build/bsps/m68k/genmcf548x/start.yml
new file mode 100644
index 0000000000..7176737200
--- /dev/null
+++ b/spec/build/bsps/m68k/genmcf548x/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/genmcf548x/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/grp.yml b/spec/build/bsps/m68k/grp.yml
new file mode 100644
index 0000000000..f04277d74c
--- /dev/null
+++ b/spec/build/bsps/m68k/grp.yml
@@ -0,0 +1,49 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/include/mvme16x_hw.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/include/bsp/linker-symbols.h
+- destination: ${BSP_INCLUDEDIR}/mcf5206
+ source:
+ - bsps/m68k/include/mcf5206/mcf5206e.h
+ - bsps/m68k/include/mcf5206/mcfmbus.h
+ - bsps/m68k/include/mcf5206/mcfuart.h
+- destination: ${BSP_INCLUDEDIR}/mcf5223x
+ source:
+ - bsps/m68k/include/mcf5223x/mcf5223x.h
+- destination: ${BSP_INCLUDEDIR}/mcf5225x
+ source:
+ - bsps/m68k/include/mcf5225x/fec.h
+ - bsps/m68k/include/mcf5225x/mcf5225x.h
+- destination: ${BSP_INCLUDEDIR}/mcf5235
+ source:
+ - bsps/m68k/include/mcf5235/mcf5235.h
+- destination: ${BSP_INCLUDEDIR}/mcf5272
+ source:
+ - bsps/m68k/include/mcf5272/mcf5272.h
+- destination: ${BSP_INCLUDEDIR}/mcf5282
+ source:
+ - bsps/m68k/include/mcf5282/mcf5282.h
+- destination: ${BSP_INCLUDEDIR}/mcf532x
+ source:
+ - bsps/m68k/include/mcf532x/mcf532x.h
+- destination: ${BSP_INCLUDEDIR}/mcf548x
+ source:
+ - bsps/m68k/include/mcf548x/MCD_dma.h
+ - bsps/m68k/include/mcf548x/MCD_progCheck.h
+ - bsps/m68k/include/mcf548x/MCD_tasksInit.h
+ - bsps/m68k/include/mcf548x/mcdma_glue.h
+ - bsps/m68k/include/mcf548x/mcf548x.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/m68k/mcf5206elite/abi.yml b/spec/build/bsps/m68k/mcf5206elite/abi.yml
new file mode 100644
index 0000000000..703730cf3d
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5206elite/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=5206
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mcf5206elite/bspmcf5206elite.yml b/spec/build/bsps/m68k/mcf5206elite/bspmcf5206elite.yml
new file mode 100644
index 0000000000..b00f11c217
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5206elite/bspmcf5206elite.yml
@@ -0,0 +1,71 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mcf5206elite
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mcf5206elite
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mcf5206elite/include/bsp.h
+ - bsps/m68k/mcf5206elite/include/ds1307.h
+ - bsps/m68k/mcf5206elite/include/i2c.h
+ - bsps/m68k/mcf5206elite/include/i2cdrv.h
+ - bsps/m68k/mcf5206elite/include/nvram.h
+ - bsps/m68k/mcf5206elite/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mcf5206elite/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mcf5206elite/start/gdbinit
+ - bsps/m68k/mcf5206elite/start/linkcmds
+ - bsps/m68k/mcf5206elite/start/linkcmds.flash
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: tstmcf5206elite
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mcf5206elite/console/console.c
+- bsps/m68k/mcf5206elite/dev/ckinit.c
+- bsps/m68k/mcf5206elite/dev/mcfmbus.c
+- bsps/m68k/mcf5206elite/dev/mcfuart.c
+- bsps/m68k/mcf5206elite/dev/timer.c
+- bsps/m68k/mcf5206elite/dev/timerisr.S
+- bsps/m68k/mcf5206elite/i2c/i2c.c
+- bsps/m68k/mcf5206elite/i2c/i2cdrv.c
+- bsps/m68k/mcf5206elite/nvram/nvram.c
+- bsps/m68k/mcf5206elite/rtc/ds1307.c
+- bsps/m68k/mcf5206elite/rtc/todcfg.c
+- bsps/m68k/mcf5206elite/start/init5206e.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mcf5206elite/start.yml b/spec/build/bsps/m68k/mcf5206elite/start.yml
new file mode 100644
index 0000000000..624d89a612
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5206elite/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/mcf5206elite/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/mcf5206elite/tstmcf5206elite.yml b/spec/build/bsps/m68k/mcf5206elite/tstmcf5206elite.yml
new file mode 100644
index 0000000000..02faf0a666
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5206elite/tstmcf5206elite.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ dl05: exclude
+ fsdosfsname01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/m68k/mcf52235/abi.yml b/spec/build/bsps/m68k/mcf52235/abi.yml
new file mode 100644
index 0000000000..643eaa7548
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf52235/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=52235
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mcf52235/bspmcf52235.yml b/spec/build/bsps/m68k/mcf52235/bspmcf52235.yml
new file mode 100644
index 0000000000..56e342023c
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf52235/bspmcf52235.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mcf52235
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mcf52235
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mcf52235/include/bsp.h
+ - bsps/m68k/mcf52235/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mcf52235/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mcf52235/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: tstmcf52235
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mcf52235/btimer/btimer.c
+- bsps/m68k/mcf52235/clock/clock.c
+- bsps/m68k/mcf52235/console/console.c
+- bsps/m68k/mcf52235/console/debugio.c
+- bsps/m68k/mcf52235/start/bspgetcpuclockspeed.c
+- bsps/m68k/mcf52235/start/cfinit.c
+- bsps/m68k/mcf52235/start/init52235.c
+- bsps/m68k/shared/cache/cache-mcf5223x.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mcf52235/start.yml b/spec/build/bsps/m68k/mcf52235/start.yml
new file mode 100644
index 0000000000..16383bedde
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf52235/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/mcf52235/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/mcf52235/tstmcf52235.yml b/spec/build/bsps/m68k/mcf52235/tstmcf52235.yml
new file mode 100644
index 0000000000..f1b5135b3c
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf52235/tstmcf52235.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ block08: exclude
+ capture: exclude
+ cdtest: exclude
+ fileio: exclude
+ fsdosfsformat01: exclude
+ ftp01: exclude
+ iostream: exclude
+ loopback: exclude
+ mghttpd01: exclude
+ monitor02: exclude
+ paranoia: exclude
+ pppd: exclude
+ sp16: exclude
+ sptimecounter02: exclude
+ sptimecounter03: exclude
+ syscall01: exclude
+ tmcontext01: exclude
+ tmfine01: exclude
+ top: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/m68k/mcf5225x/abi.yml b/spec/build/bsps/m68k/mcf5225x/abi.yml
new file mode 100644
index 0000000000..643eaa7548
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5225x/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=52235
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mcf5225x/bspmcf5225x.yml b/spec/build/bsps/m68k/mcf5225x/bspmcf5225x.yml
new file mode 100644
index 0000000000..81591fa4e0
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5225x/bspmcf5225x.yml
@@ -0,0 +1,56 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mcf5225x
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mcf5225x
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mcf5225x/include/bsp.h
+ - bsps/m68k/mcf5225x/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mcf5225x/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mcf5225x/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: tstmcf5225x
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mcf5225x/btimer/btimer.c
+- bsps/m68k/mcf5225x/clock/clock.c
+- bsps/m68k/mcf5225x/console/console.c
+- bsps/m68k/mcf5225x/console/debugio.c
+- bsps/m68k/mcf5225x/start/bspstart.c
+- bsps/m68k/mcf5225x/start/init5225x.c
+- bsps/m68k/shared/cache/cache-mcf5225x.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mcf5225x/start.yml b/spec/build/bsps/m68k/mcf5225x/start.yml
new file mode 100644
index 0000000000..d43849e9c5
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5225x/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/mcf5225x/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/mcf5225x/tstmcf5225x.yml b/spec/build/bsps/m68k/mcf5225x/tstmcf5225x.yml
new file mode 100644
index 0000000000..aebe0bc83e
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5225x/tstmcf5225x.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ cdtest: exclude
+ fileio: exclude
+ iostream: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/m68k/mcf5235/abi.yml b/spec/build/bsps/m68k/mcf5235/abi.yml
new file mode 100644
index 0000000000..3e7f43f45f
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5235/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=5235
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mcf5235/bspmcf5235.yml b/spec/build/bsps/m68k/mcf5235/bspmcf5235.yml
new file mode 100644
index 0000000000..542a495929
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5235/bspmcf5235.yml
@@ -0,0 +1,60 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mcf5235
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mcf5235
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mcf5235/include/bsp.h
+ - bsps/m68k/mcf5235/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mcf5235/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mcf5235/start/linkcmds
+ - bsps/m68k/mcf5235/start/linkcmds
+ - bsps/m68k/mcf5235/start/linkcmdsflash
+ - bsps/m68k/mcf5235/start/linkcmdsram
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mcf5235/btimer/btimer.c
+- bsps/m68k/mcf5235/clock/clock.c
+- bsps/m68k/mcf5235/console/console.c
+- bsps/m68k/mcf5235/start/bspgetcpuclockspeed.c
+- bsps/m68k/mcf5235/start/bspstart.c
+- bsps/m68k/mcf5235/start/copyvectors.c
+- bsps/m68k/mcf5235/start/init5235.c
+- bsps/m68k/shared/cache/cache-mcf5235.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mcf5235/objnet.yml b/spec/build/bsps/m68k/mcf5235/objnet.yml
new file mode 100644
index 0000000000..48a3c73242
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5235/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/m68k/mcf5235/net/network.c
+type: build
diff --git a/spec/build/bsps/m68k/mcf5235/start.yml b/spec/build/bsps/m68k/mcf5235/start.yml
new file mode 100644
index 0000000000..e9bc319e6e
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5235/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/mcf5235/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/mcf5329/abi.yml b/spec/build/bsps/m68k/mcf5329/abi.yml
new file mode 100644
index 0000000000..163fedd212
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5329/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=5307
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mcf5329/bspmcf5329.yml b/spec/build/bsps/m68k/mcf5329/bspmcf5329.yml
new file mode 100644
index 0000000000..e0def013f4
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5329/bspmcf5329.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mcf5329
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mcf5329
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mcf5329/include/bsp.h
+ - bsps/m68k/mcf5329/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mcf5329/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mcf5329/start/linkcmds
+ - bsps/m68k/mcf5329/start/linkcmdsflash
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mcf5329/btimer/btimer.c
+- bsps/m68k/mcf5329/clock/clock.c
+- bsps/m68k/mcf5329/console/console.c
+- bsps/m68k/mcf5329/start/bspstart.c
+- bsps/m68k/mcf5329/start/cfinit.c
+- bsps/m68k/mcf5329/start/init5329.c
+- bsps/m68k/shared/cache/cache-mcf532x.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mcf5329/objnet.yml b/spec/build/bsps/m68k/mcf5329/objnet.yml
new file mode 100644
index 0000000000..c5951112c5
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5329/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/m68k/mcf5329/net/network.c
+type: build
diff --git a/spec/build/bsps/m68k/mcf5329/start.yml b/spec/build/bsps/m68k/mcf5329/start.yml
new file mode 100644
index 0000000000..cdf3bc0e28
--- /dev/null
+++ b/spec/build/bsps/m68k/mcf5329/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/mcf5329/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/mrm332/abi.yml b/spec/build/bsps/m68k/mrm332/abi.yml
new file mode 100644
index 0000000000..0daf8ee06b
--- /dev/null
+++ b/spec/build/bsps/m68k/mrm332/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=cpu32
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mrm332/bspmrm332.yml b/spec/build/bsps/m68k/mrm332/bspmrm332.yml
new file mode 100644
index 0000000000..1162b6c8ff
--- /dev/null
+++ b/spec/build/bsps/m68k/mrm332/bspmrm332.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mrm332
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mrm332
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mrm332/include/bsp.h
+ - bsps/m68k/mrm332/include/mrm332.h
+ - bsps/m68k/mrm332/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mrm332/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mrm332/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: tstmrm332
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../optos
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mrm332/btimer/btimer.c
+- bsps/m68k/mrm332/clock/ckinit.c
+- bsps/m68k/mrm332/console/console.c
+- bsps/m68k/mrm332/console/sci.c
+- bsps/m68k/mrm332/start/bspstart.c
+- bsps/m68k/mrm332/start/spinit.c
+- bsps/m68k/mrm332/start/start_c.c
+- bsps/m68k/shared/cache/cache.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mrm332/start.yml b/spec/build/bsps/m68k/mrm332/start.yml
new file mode 100644
index 0000000000..a545905944
--- /dev/null
+++ b/spec/build/bsps/m68k/mrm332/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/mrm332/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/mrm332/tstmrm332.yml b/spec/build/bsps/m68k/mrm332/tstmrm332.yml
new file mode 100644
index 0000000000..5c045c1764
--- /dev/null
+++ b/spec/build/bsps/m68k/mrm332/tstmrm332.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ cdtest: exclude
+ dl05: exclude
+ dl10: exclude
+ fileio: exclude
+ fsdosfsname01: exclude
+ iostream: exclude
+ linpack: exclude
+ record02: exclude
+ sptls01: exclude
+ sptls02: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/m68k/mvme147/abi.yml b/spec/build/bsps/m68k/mvme147/abi.yml
new file mode 100644
index 0000000000..9d29b297c5
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme147/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=68030
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mvme147/bspmvme147.yml b/spec/build/bsps/m68k/mvme147/bspmvme147.yml
new file mode 100644
index 0000000000..1c96cf548a
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme147/bspmvme147.yml
@@ -0,0 +1,55 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mvme147
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mvme147
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mvme147/include/bsp.h
+ - bsps/m68k/mvme147/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mvme147/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mvme147/start/linkcmds
+ - bsps/m68k/shared/start/linkcmds.base
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mvme147/btimer/btimer.c
+- bsps/m68k/mvme147/btimer/timerisr.S
+- bsps/m68k/mvme147/clock/ckinit.c
+- bsps/m68k/mvme147/console/console.c
+- bsps/m68k/mvme147/start/bspclean.c
+- bsps/m68k/mvme147/start/bspstart.c
+- bsps/m68k/shared/cache/cache.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mvme147s/abi.yml b/spec/build/bsps/m68k/mvme147s/abi.yml
new file mode 100644
index 0000000000..9d29b297c5
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme147s/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=68030
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mvme147s/bspmvme147s.yml b/spec/build/bsps/m68k/mvme147s/bspmvme147s.yml
new file mode 100644
index 0000000000..ee2f4cc64d
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme147s/bspmvme147s.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mvme147s
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mvme147s
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mvme147s/include/bsp.h
+ - bsps/m68k/mvme147s/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mvme147s/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mvme147s/start/linkcmds
+ - bsps/m68k/shared/start/linkcmds.base
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objmpci
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mvme147/btimer/btimer.c
+- bsps/m68k/mvme147/btimer/timerisr.S
+- bsps/m68k/mvme147/clock/ckinit.c
+- bsps/m68k/mvme147/console/console.c
+- bsps/m68k/mvme147s/start/bspstart.c
+- bsps/m68k/shared/cache/cache.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mvme147s/objmpci.yml b/spec/build/bsps/m68k/mvme147s/objmpci.yml
new file mode 100644
index 0000000000..2d7b87cf88
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme147s/objmpci.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+install: []
+links: []
+source:
+- bsps/m68k/mvme147s/mpci/addrconv.c
+- bsps/m68k/mvme147s/mpci/getcfg.c
+- bsps/m68k/mvme147s/mpci/lock.c
+- bsps/m68k/mvme147s/mpci/mpisr.c
+type: build
diff --git a/spec/build/bsps/m68k/mvme162/abi.yml b/spec/build/bsps/m68k/mvme162/abi.yml
new file mode 100644
index 0000000000..87a7b8c43a
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme162/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=68040
+- -msoft-float
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mvme162/bspmvme162.yml b/spec/build/bsps/m68k/mvme162/bspmvme162.yml
new file mode 100644
index 0000000000..5d5f0d3911
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme162/bspmvme162.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mvme162
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mvme162
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstmvme162
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/m68k/mvme162/bspmvme162lx.yml b/spec/build/bsps/m68k/mvme162/bspmvme162lx.yml
new file mode 100644
index 0000000000..bcd810eb69
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme162/bspmvme162lx.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mvme162lx
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mvme162
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstmvme162lx
+- role: build-dependency
+ uid: ../../opto2
+source: []
+type: build
diff --git a/spec/build/bsps/m68k/mvme162/grp.yml b/spec/build/bsps/m68k/mvme162/grp.yml
new file mode 100644
index 0000000000..12b102d57f
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme162/grp.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: ../objfpsp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/m68k/mvme162/obj.yml b/spec/build/bsps/m68k/mvme162/obj.yml
new file mode 100644
index 0000000000..e009ed3bf4
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme162/obj.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mvme162/include/bsp.h
+ - bsps/m68k/mvme162/include/page_table.h
+ - bsps/m68k/mvme162/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mvme162/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mvme162/start/linkcmds
+ - bsps/m68k/shared/start/linkcmds.base
+links: []
+source:
+- bsps/m68k/mvme162/btimer/btimer.c
+- bsps/m68k/mvme162/btimer/timerisr.S
+- bsps/m68k/mvme162/clock/ckinit.c
+- bsps/m68k/mvme162/console/console.c
+- bsps/m68k/mvme162/rtc/tod.c
+- bsps/m68k/mvme162/start/bspclean.c
+- bsps/m68k/mvme162/start/bspstart.c
+- bsps/m68k/mvme162/start/page_table.c
+- bsps/m68k/shared/cache/cache.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mvme162/objnet.yml b/spec/build/bsps/m68k/mvme162/objnet.yml
new file mode 100644
index 0000000000..89344f51f6
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme162/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/m68k/mvme167/net/network.c
+type: build
diff --git a/spec/build/bsps/m68k/mvme162/tstmvme162.yml b/spec/build/bsps/m68k/mvme162/tstmvme162.yml
new file mode 100644
index 0000000000..153cfab0e3
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme162/tstmvme162.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsdosfsname01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/m68k/mvme162/tstmvme162lx.yml b/spec/build/bsps/m68k/mvme162/tstmvme162lx.yml
new file mode 100644
index 0000000000..153cfab0e3
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme162/tstmvme162lx.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsdosfsname01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/abi.yml b/spec/build/bsps/m68k/mvme167/abi.yml
new file mode 100644
index 0000000000..3bedb8a896
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=68040
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/bspmvme167.yml b/spec/build/bsps/m68k/mvme167/bspmvme167.yml
new file mode 100644
index 0000000000..fd12e9b659
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/bspmvme167.yml
@@ -0,0 +1,72 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: mvme167
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mvme167
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/mvme167/include/bsp.h
+ - bsps/m68k/mvme167/include/page_table.h
+ - bsps/m68k/mvme167/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/mvme167/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/mvme167/start/linkcmds
+ - bsps/m68k/shared/start/linkcmds.base
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optconminor
+- role: build-dependency
+ uid: optintlvl
+- role: build-dependency
+ uid: optiomode
+- role: build-dependency
+ uid: optmvme167
+- role: build-dependency
+ uid: optprintkminor
+- role: build-dependency
+ uid: optuseterm
+- role: build-dependency
+ uid: ../objfpsp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/mvme167/btimer/btimer.c
+- bsps/m68k/mvme167/btimer/timerisr.S
+- bsps/m68k/mvme167/clock/ckinit.c
+- bsps/m68k/mvme167/console/console.c
+- bsps/m68k/mvme167/start/bspclean.c
+- bsps/m68k/mvme167/start/bspstart.c
+- bsps/m68k/mvme167/start/page_table.c
+- bsps/m68k/shared/cache/cache.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/objnet.yml b/spec/build/bsps/m68k/mvme167/objnet.yml
new file mode 100644
index 0000000000..89344f51f6
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/m68k/mvme167/net/network.c
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/optconminor.yml b/spec/build/bsps/m68k/mvme167/optconminor.yml
new file mode 100644
index 0000000000..f6694db348
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/optconminor.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Port to use for the RTEMS console. 0 - /dev/tty0, Serial Port 1/Console on the MVME712M. 1 - /dev/tty1, Serial Port 2/TTY01 on the MVME712M. 2 - /dev/tty2, Serial Port 3 on the MVME712M. 3 - /dev/tty3, Serial Port 4 on the MVME712M.
+enabled-by: true
+links: []
+name: CONSOLE_MINOR
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/optintlvl.yml b/spec/build/bsps/m68k/mvme167/optintlvl.yml
new file mode 100644
index 0000000000..6b5005c11d
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/optintlvl.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Interrupt level for the CD2401(when CD2401_IO_MODE == 1).
+enabled-by: true
+links: []
+name: CD2401_INT_LEVEL
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/optiomode.yml b/spec/build/bsps/m68k/mvme167/optiomode.yml
new file mode 100644
index 0000000000..44b38da713
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/optiomode.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ 0 for polled I/O, 1 for interrupt-driven.
+enabled-by: true
+links: []
+name: CD2401_IO_MODE
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/optmvme167.yml b/spec/build/bsps/m68k/mvme167/optmvme167.yml
new file mode 100644
index 0000000000..b857d705bd
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/optmvme167.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: mvme167
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: |
+ Defines mvme167 in <bspopts.h>.
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/optprintkminor.yml b/spec/build/bsps/m68k/mvme167/optprintkminor.yml
new file mode 100644
index 0000000000..5976e1dbbb
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/optprintkminor.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ Port to use for printk debugging output. 0 - /dev/tty0, Serial Port 1/Console on the MVME712M. 1 - /dev/tty1, Serial Port 2/TTY01 on the MVME712M. 2 - /dev/tty2, Serial Port 3 on the MVME712M. 3 - /dev/tty3, Serial Port 4 on the MVME712M.
+enabled-by: true
+format: '{}'
+links: []
+name: PRINTK_MINOR
+type: build
diff --git a/spec/build/bsps/m68k/mvme167/optuseterm.yml b/spec/build/bsps/m68k/mvme167/optuseterm.yml
new file mode 100644
index 0000000000..585bd63329
--- /dev/null
+++ b/spec/build/bsps/m68k/mvme167/optuseterm.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ 1 for using termios based console.
+enabled-by: true
+links: []
+name: CD2401_USE_TERMIOS
+type: build
diff --git a/spec/build/bsps/m68k/objfpsp.yml b/spec/build/bsps/m68k/objfpsp.yml
new file mode 100644
index 0000000000..cf8ebfbcd7
--- /dev/null
+++ b/spec/build/bsps/m68k/objfpsp.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- m68k/gen68360_040
+- m68k/mvme167
+includes: []
+install: []
+links: []
+source:
+- bsps/m68k/shared/fpsp/bindec.S
+- bsps/m68k/shared/fpsp/binstr.S
+- bsps/m68k/shared/fpsp/bugfix.S
+- bsps/m68k/shared/fpsp/decbin.S
+- bsps/m68k/shared/fpsp/do_func.S
+- bsps/m68k/shared/fpsp/gen_except.S
+- bsps/m68k/shared/fpsp/get_op.S
+- bsps/m68k/shared/fpsp/kernel_ex.S
+- bsps/m68k/shared/fpsp/res_func.S
+- bsps/m68k/shared/fpsp/round.S
+- bsps/m68k/shared/fpsp/rtems_fpsp.c
+- bsps/m68k/shared/fpsp/rtems_skel.S
+- bsps/m68k/shared/fpsp/sacos.S
+- bsps/m68k/shared/fpsp/sasin.S
+- bsps/m68k/shared/fpsp/satanh.S
+- bsps/m68k/shared/fpsp/satan.S
+- bsps/m68k/shared/fpsp/scale.S
+- bsps/m68k/shared/fpsp/scosh.S
+- bsps/m68k/shared/fpsp/setox.S
+- bsps/m68k/shared/fpsp/sgetem.S
+- bsps/m68k/shared/fpsp/sint.S
+- bsps/m68k/shared/fpsp/slog2.S
+- bsps/m68k/shared/fpsp/slogn.S
+- bsps/m68k/shared/fpsp/smovecr.S
+- bsps/m68k/shared/fpsp/srem_mod.S
+- bsps/m68k/shared/fpsp/ssinh.S
+- bsps/m68k/shared/fpsp/ssin.S
+- bsps/m68k/shared/fpsp/stanh.S
+- bsps/m68k/shared/fpsp/stan.S
+- bsps/m68k/shared/fpsp/sto_res.S
+- bsps/m68k/shared/fpsp/stwotox.S
+- bsps/m68k/shared/fpsp/tbldo.S
+- bsps/m68k/shared/fpsp/util.S
+- bsps/m68k/shared/fpsp/x_bsun.S
+- bsps/m68k/shared/fpsp/x_fline.S
+- bsps/m68k/shared/fpsp/x_operr.S
+- bsps/m68k/shared/fpsp/x_ovfl.S
+- bsps/m68k/shared/fpsp/x_snan.S
+- bsps/m68k/shared/fpsp/x_store.S
+- bsps/m68k/shared/fpsp/x_unfl.S
+- bsps/m68k/shared/fpsp/x_unimp.S
+- bsps/m68k/shared/fpsp/x_unsupp.S
+type: build
diff --git a/spec/build/bsps/m68k/start.yml b/spec/build/bsps/m68k/start.yml
new file mode 100644
index 0000000000..0a5aa7cff5
--- /dev/null
+++ b/spec/build/bsps/m68k/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/shared/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/m68k/uC5282/abi.yml b/spec/build/bsps/m68k/uC5282/abi.yml
new file mode 100644
index 0000000000..a2d11d2bf3
--- /dev/null
+++ b/spec/build/bsps/m68k/uC5282/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=5282
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/m68k/uC5282/bspuc5282.yml b/spec/build/bsps/m68k/uC5282/bspuc5282.yml
new file mode 100644
index 0000000000..310f7f336b
--- /dev/null
+++ b/spec/build/bsps/m68k/uC5282/bspuc5282.yml
@@ -0,0 +1,55 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: m68k
+bsp: uC5282
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: uC5282
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/m68k/uC5282/include/bsp.h
+ - bsps/m68k/uC5282/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/m68k/uC5282/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/m68k/uC5282/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/m68k/shared/cache/cache-mcf5282.c
+- bsps/m68k/shared/m68kidle.c
+- bsps/m68k/shared/memProbe.c
+- bsps/m68k/uC5282/btimer/btimer.c
+- bsps/m68k/uC5282/clock/clock.c
+- bsps/m68k/uC5282/console/console.c
+- bsps/m68k/uC5282/start/bspclean.c
+- bsps/m68k/uC5282/start/bspreset.c
+- bsps/m68k/uC5282/start/bspstart.c
+- bsps/m68k/uC5282/start/init5282.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/m68k/uC5282/objnet.yml b/spec/build/bsps/m68k/uC5282/objnet.yml
new file mode 100644
index 0000000000..86e65eeb48
--- /dev/null
+++ b/spec/build/bsps/m68k/uC5282/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/m68k/uC5282/net/network.c
+type: build
diff --git a/spec/build/bsps/m68k/uC5282/start.yml b/spec/build/bsps/m68k/uC5282/start.yml
new file mode 100644
index 0000000000..6dc9769b53
--- /dev/null
+++ b/spec/build/bsps/m68k/uC5282/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/m68k/uC5282/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/makebsp.yml b/spec/build/bsps/makebsp.yml
new file mode 100644
index 0000000000..9ea6f53516
--- /dev/null
+++ b/spec/build/bsps/makebsp.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ ## BSP configuration flags for BSP "${ARCH}/${BSP_NAME}"
+
+ ##
+ ## Does this BSP support multiprocessing ?
+ ##
+ HAS_MP = ${RTEMS_HAS_MULTIPROCESSING}
+
+ ##
+ ## Does this BSP support RTEMS's remote debugger ?
+ ##
+ HAS_RDBG = no
+
+ ##
+ ## Does this BSP support RTEMS's posix API ?
+ ##
+ HAS_POSIX_API = ${RTEMS_HAS_POSIX_API}
+
+ ##
+ ## Does this BSP support RTEMS's ITRON API ?
+ ##
+ HAS_ITRON_API = no
+
+ ##
+ ## Does this BSP support RTEMS's CXX API ?
+ ##
+ HAS_CPLUSPLUS = yes
+
+ ##
+ ## Does this BSP support RTEMS's networking ?
+ ##
+ HAS_NETWORKING = ${RTEMS_HAS_NETWORKING}
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${PREFIX}/${ARCH}-rtems${__RTEMS_MAJOR__}/${BSP_NAME}/make
+links: []
+target: bsp.cfg
+type: build
diff --git a/spec/build/bsps/makecustom.yml b/spec/build/bsps/makecustom.yml
new file mode 100644
index 0000000000..e04d4281c7
--- /dev/null
+++ b/spec/build/bsps/makecustom.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ include $$(RTEMS_ROOT)/make/custom/default.cfg
+ RTEMS_CPU = ${ARCH}
+ CPU_CFLAGS = ${ABI_FLAGS}
+ CFLAGS_OPTIMIZE_V = ${OPTIMIZATION_FLAGS}
+ LDFLAGS = ${LDFLAGS}
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${PREFIX}/make/custom
+links: []
+target: ${BSP_NAME}.cfg
+type: build
diff --git a/spec/build/bsps/makeinc.yml b/spec/build/bsps/makeinc.yml
new file mode 100644
index 0000000000..afe135049d
--- /dev/null
+++ b/spec/build/bsps/makeinc.yml
@@ -0,0 +1,65 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ #
+ # BSP specific settings. To be included in application Makefiles
+ #
+ # This support will be removed from RTEMS. Please consider other
+ # ways to build applications.
+ #
+
+ RTEMS_API = ${__RTEMS_MAJOR__}
+
+ RTEMS_CPU = ${ARCH}
+ RTEMS_BSP = ${BSP_NAME}
+
+ prefix = ${PREFIX}
+ exec_prefix = $${prefix}/${ARCH}-rtems${__RTEMS_MAJOR__}
+
+ CC_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-gcc
+ CXX_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-g++
+ AS_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-as
+ AR_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-ar
+ NM_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-nm
+ LD_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-ld
+ SIZE_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-size
+ OBJCOPY_FOR_TARGET = ${ARCH}-rtems${__RTEMS_MAJOR__}-objcopy
+
+ CC= $$(CC_FOR_TARGET)
+ CXX= $$(CXX_FOR_TARGET)
+ AS= $$(AS_FOR_TARGET)
+ LD= $$(LD_FOR_TARGET)
+ NM= $$(NM_FOR_TARGET)
+ AR= $$(AR_FOR_TARGET)
+ SIZE= $$(SIZE_FOR_TARGET)
+ OBJCOPY= $$(OBJCOPY_FOR_TARGET)
+
+ export CC
+ export CXX
+ export AS
+ export LD
+ export NM
+ export AR
+ export SIZE
+ export OBJCOPY
+
+ RTEMS_ROOT ?= $$(prefix)
+ PROJECT_ROOT = $$(RTEMS_ROOT)
+ RTEMS_CUSTOM = $$(RTEMS_ROOT)/make/custom/$$(RTEMS_BSP).cfg
+ RTEMS_SHARE = $$(RTEMS_ROOT)/share/rtems$$(RTEMS_API)
+
+ RTEMS_USE_OWN_PDIR = no
+ RTEMS_HAS_POSIX_API = ${RTEMS_HAS_POSIX_API}
+ RTEMS_HAS_ITRON_API = no
+ RTEMS_HAS_CPLUSPLUS = yes
+
+ export RTEMS_BSP
+ export RTEMS_CUSTOM
+ export PROJECT_ROOT
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${PREFIX}/${ARCH}-rtems${__RTEMS_MAJOR__}/${BSP_NAME}
+links: []
+target: Makefile.inc
+type: build
diff --git a/spec/build/bsps/maketarget.yml b/spec/build/bsps/maketarget.yml
new file mode 100644
index 0000000000..dd920dcd1f
--- /dev/null
+++ b/spec/build/bsps/maketarget.yml
@@ -0,0 +1,55 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ #
+ # Target specific settings.
+ #
+
+ CFLAGS = ${WARNING_FLAGS} ${CC_WARNING_FLAGS} ${OPTIMIZATION_FLAGS} ${ABI_FLAGS}
+ CPPFLAGS =
+ LDFLAGS =
+ LIBS =
+
+ RTEMS_API = ${__RTEMS_MAJOR__}
+ CC = ${ARCH}-rtems${__RTEMS_MAJOR__}-gcc --pipe
+ AS = ${ARCH}-rtems${__RTEMS_MAJOR__}-as
+ AR = ${ARCH}-rtems${__RTEMS_MAJOR__}-ar
+ NM = ${ARCH}-rtems${__RTEMS_MAJOR__}-nm
+ LD = ${ARCH}-rtems${__RTEMS_MAJOR__}-ld
+ SIZE = ${ARCH}-rtems${__RTEMS_MAJOR__}-size
+ STRIP = ${ARCH}-rtems${__RTEMS_MAJOR__}-strip
+ OBJCOPY = ${ARCH}-rtems${__RTEMS_MAJOR__}-objcopy
+ RANLIB = ${ARCH}-rtems${__RTEMS_MAJOR__}-ranlib
+
+ CXX = ${ARCH}-rtems${__RTEMS_MAJOR__}-g++
+
+ export CC
+ export AS
+ export LD
+ export NM
+ export AR
+ export SIZE
+ export OBJCOPY
+
+ export CXX
+
+ RTEMS_HAS_MULTIPROCESSING = ${RTEMS_HAS_MULTIPROCESSING}
+ RTEMS_HAS_POSIX_API = ${RTEMS_HAS_POSIX_API}
+ RTEMS_HAS_ITRON_API = no
+ RTEMS_HAS_NETWORKING = ${RTEMS_HAS_NETWORKING}
+ RTEMS_HAS_RDBG = no
+ RTEMS_HAS_CPLUSPLUS = yes
+ RTEMS_CPU = ${ARCH}
+
+ XCFLAGS=$$(CFLAGS_FOR_TARGET)
+
+ export RTEMS_BSP
+ export RTEMS_CUSTOM
+ export PROJECT_ROOT
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${PREFIX}/${ARCH}-rtems${__RTEMS_MAJOR__}/${BSP_NAME}/make
+links: []
+target: target.cfg
+type: build
diff --git a/spec/build/bsps/mips/csb350/abi.yml b/spec/build/bsps/mips/csb350/abi.yml
new file mode 100644
index 0000000000..049de557ad
--- /dev/null
+++ b/spec/build/bsps/mips/csb350/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mips32
+- -G0
+- -msoft-float
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/mips/csb350/bspcsb350.yml b/spec/build/bsps/mips/csb350/bspcsb350.yml
new file mode 100644
index 0000000000..3d29ba81d9
--- /dev/null
+++ b/spec/build/bsps/mips/csb350/bspcsb350.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: mips
+bsp: csb350
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: csb350
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/mips/csb350/include/bsp.h
+ - bsps/mips/csb350/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/mips/csb350/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/mips/csb350/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/mips/csb350/btimer/btimer.c
+- bsps/mips/csb350/clock/clockdrv.c
+- bsps/mips/csb350/console/console-io.c
+- bsps/mips/csb350/irq/vectorisrs.c
+- bsps/mips/csb350/start/bspreset.c
+- bsps/mips/csb350/start/bspstart.c
+- bsps/mips/shared/irq/installisrentries.c
+- bsps/mips/shared/irq/interruptmask.c
+- bsps/mips/shared/irq/irq.c
+- bsps/mips/shared/irq/isr_entries.S
+- bsps/mips/shared/irq/vectorexceptions.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/mips/csb350/objnet.yml b/spec/build/bsps/mips/csb350/objnet.yml
new file mode 100644
index 0000000000..6fc6c4e0fd
--- /dev/null
+++ b/spec/build/bsps/mips/csb350/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/mips/csb350/net/network.c
+type: build
diff --git a/spec/build/bsps/mips/csb350/start.yml b/spec/build/bsps/mips/csb350/start.yml
new file mode 100644
index 0000000000..5728c48d90
--- /dev/null
+++ b/spec/build/bsps/mips/csb350/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/mips/csb350/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/mips/grp.yml b/spec/build/bsps/mips/grp.yml
new file mode 100644
index 0000000000..359e9b74cc
--- /dev/null
+++ b/spec/build/bsps/mips/grp.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/mips/include/bsp/i8259.h
+ - bsps/mips/include/bsp/regs.h
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - bsps/mips/include/libcpu/au1x00.h
+ - bsps/mips/include/libcpu/isr_entries.h
+ - bsps/mips/include/libcpu/rm5231.h
+ - bsps/mips/include/libcpu/tx3904.h
+ - bsps/mips/include/libcpu/tx4925.h
+ - bsps/mips/include/libcpu/tx4938.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/mips/hurricane/abi.yml b/spec/build/bsps/mips/hurricane/abi.yml
new file mode 100644
index 0000000000..79408e4eb3
--- /dev/null
+++ b/spec/build/bsps/mips/hurricane/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mips3
+- -G0
+- -EL
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/mips/hurricane/bsphurricane.yml b/spec/build/bsps/mips/hurricane/bsphurricane.yml
new file mode 100644
index 0000000000..9e934e3e34
--- /dev/null
+++ b/spec/build/bsps/mips/hurricane/bsphurricane.yml
@@ -0,0 +1,70 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: mips
+bsp: hurricane
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: hurricane
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/mips/hurricane/include/bsp.h
+ - bsps/mips/hurricane/include/tm27.h
+ - bsps/mips/hurricane/include/usc.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/mips/hurricane/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/mips/hurricane/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optrm52xx
+- role: build-dependency
+ uid: optusc320
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstnolibdl
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/mips/hurricane/clock/ckinit.c
+- bsps/mips/hurricane/console/console.c
+- bsps/mips/hurricane/irq/vectorisrs.c
+- bsps/mips/hurricane/start/bspstart.c
+- bsps/mips/hurricane/start/inittlb.c
+- bsps/mips/hurricane/start/usc.S
+- bsps/mips/shared/irq/exception.S
+- bsps/mips/shared/irq/installisrentries.c
+- bsps/mips/shared/irq/interruptmask.c
+- bsps/mips/shared/irq/irq.c
+- bsps/mips/shared/irq/isr_entries.S
+- bsps/mips/shared/irq/vectorexceptions.c
+- bsps/mips/shared/liblnk/lnklib.S
+- bsps/mips/shared/liblnk/pmon.S
+- bsps/mips/shared/start/idtmem.S
+- bsps/mips/shared/start/idttlb.S
+- bsps/mips/shared/timer/gettime.S
+- bsps/mips/shared/timer/timer.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/mips/hurricane/optrm52xx.yml b/spec/build/bsps/mips/hurricane/optrm52xx.yml
new file mode 100644
index 0000000000..1fc3d504e4
--- /dev/null
+++ b/spec/build/bsps/mips/hurricane/optrm52xx.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ This BSP has a RM52xx compatible CPU.
+enabled-by: true
+links: []
+name: BSP_HAS_RM52xx
+type: build
diff --git a/spec/build/bsps/mips/hurricane/optusc320.yml b/spec/build/bsps/mips/hurricane/optusc320.yml
new file mode 100644
index 0000000000..74ddd56d4f
--- /dev/null
+++ b/spec/build/bsps/mips/hurricane/optusc320.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ This BSP has a V3 USC320 system controller chip.
+enabled-by: true
+links: []
+name: BSP_HAS_USC320
+type: build
diff --git a/spec/build/bsps/mips/hurricane/start.yml b/spec/build/bsps/mips/hurricane/start.yml
new file mode 100644
index 0000000000..834ac8e1e3
--- /dev/null
+++ b/spec/build/bsps/mips/hurricane/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/mips/hurricane/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/mips/jmr3904/abi.yml b/spec/build/bsps/mips/jmr3904/abi.yml
new file mode 100644
index 0000000000..c46d4f8c3e
--- /dev/null
+++ b/spec/build/bsps/mips/jmr3904/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=r3900
+- -Wa,-xgot
+- -G0
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/mips/jmr3904/bspjmr3904.yml b/spec/build/bsps/mips/jmr3904/bspjmr3904.yml
new file mode 100644
index 0000000000..ccb4eebe44
--- /dev/null
+++ b/spec/build/bsps/mips/jmr3904/bspjmr3904.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: mips
+bsp: jmr3904
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: jmr3904
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/mips/jmr3904/include/bsp.h
+ - bsps/mips/jmr3904/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/mips/jmr3904/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/mips/jmr3904/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: tstjmr3904
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/mips/jmr3904/btimer/btimer.c
+- bsps/mips/jmr3904/clock/clockdrv.c
+- bsps/mips/jmr3904/console/console-io.c
+- bsps/mips/jmr3904/irq/vectorisrs.c
+- bsps/mips/jmr3904/start/bspstart.c
+- bsps/mips/shared/irq/installisrentries.c
+- bsps/mips/shared/irq/interruptmask.c
+- bsps/mips/shared/irq/irq.c
+- bsps/mips/shared/irq/isr_entries.S
+- bsps/mips/shared/irq/vectorexceptions.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/mips/jmr3904/start.yml b/spec/build/bsps/mips/jmr3904/start.yml
new file mode 100644
index 0000000000..c0868a88e9
--- /dev/null
+++ b/spec/build/bsps/mips/jmr3904/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/mips/jmr3904/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/mips/jmr3904/tstjmr3904.yml b/spec/build/bsps/mips/jmr3904/tstjmr3904.yml
new file mode 100644
index 0000000000..9ae030d919
--- /dev/null
+++ b/spec/build/bsps/mips/jmr3904/tstjmr3904.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ spfatal26: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnointrcrit
+type: build
diff --git a/spec/build/bsps/mips/malta/abi.yml b/spec/build/bsps/mips/malta/abi.yml
new file mode 100644
index 0000000000..99038088b2
--- /dev/null
+++ b/spec/build/bsps/mips/malta/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=24kf1_1
+- -Wa,-xgot
+- -G0
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/mips/malta/bspmalta.yml b/spec/build/bsps/mips/malta/bspmalta.yml
new file mode 100644
index 0000000000..74462018dc
--- /dev/null
+++ b/spec/build/bsps/mips/malta/bspmalta.yml
@@ -0,0 +1,67 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: mips
+bsp: malta
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: malta
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/mips/malta/include/bsp.h
+ - bsps/mips/malta/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/mips/malta/include/bsp/irq.h
+ - bsps/mips/malta/include/bsp/pci.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/mips/malta/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto0
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/mips/malta/console/conscfg.c
+- bsps/mips/malta/console/printk_support.c
+- bsps/mips/malta/irq/interruptmask.c
+- bsps/mips/malta/irq/vectorisrs.c
+- bsps/mips/malta/pci/pci.c
+- bsps/mips/malta/start/bspreset.c
+- bsps/mips/malta/start/bspstart.c
+- bsps/mips/malta/start/inittlb.c
+- bsps/mips/malta/start/simple_access.c
+- bsps/mips/shared/clock/clockdrv.c
+- bsps/mips/shared/clock/mips_timer.S
+- bsps/mips/shared/irq/i8259.c
+- bsps/mips/shared/irq/installisrentries.c
+- bsps/mips/shared/irq/irq.c
+- bsps/mips/shared/irq/isr_entries.S
+- bsps/mips/shared/irq/vectorexceptions.c
+- bsps/mips/shared/start/idttlb.S
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/pci/pci_find_device.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/mips/malta/start.yml b/spec/build/bsps/mips/malta/start.yml
new file mode 100644
index 0000000000..02487ecb2e
--- /dev/null
+++ b/spec/build/bsps/mips/malta/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/mips/malta/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/mips/rbtx4925/abi.yml b/spec/build/bsps/mips/rbtx4925/abi.yml
new file mode 100644
index 0000000000..79408e4eb3
--- /dev/null
+++ b/spec/build/bsps/mips/rbtx4925/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mips3
+- -G0
+- -EL
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/mips/rbtx4925/bsprbtx4925.yml b/spec/build/bsps/mips/rbtx4925/bsprbtx4925.yml
new file mode 100644
index 0000000000..17af736a91
--- /dev/null
+++ b/spec/build/bsps/mips/rbtx4925/bsprbtx4925.yml
@@ -0,0 +1,66 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: mips
+bsp: rbtx4925
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: rbtx4925
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/mips/rbtx4925/include/bsp.h
+ - bsps/mips/rbtx4925/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/mips/rbtx4925/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/mips/rbtx4925/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: opttx49xx
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstnolibdl
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/mips/rbtx4925/clock/clockdrv.c
+- bsps/mips/rbtx4925/console/console-io.c
+- bsps/mips/rbtx4925/irq/vectorisrs.c
+- bsps/mips/rbtx4925/start/bspstart.c
+- bsps/mips/rbtx4925/start/inittlb.c
+- bsps/mips/shared/irq/exception.S
+- bsps/mips/shared/irq/installisrentries.c
+- bsps/mips/shared/irq/interruptmask_TX49.c
+- bsps/mips/shared/irq/irq.c
+- bsps/mips/shared/irq/isr_entries.S
+- bsps/mips/shared/irq/vectorexceptions.c
+- bsps/mips/shared/liblnk/lnklib.S
+- bsps/mips/shared/liblnk/pmon.S
+- bsps/mips/shared/start/idtmem.S
+- bsps/mips/shared/start/idttlb.S
+- bsps/mips/shared/timer/gettime.S
+- bsps/mips/shared/timer/timer.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/mips/rbtx4925/opttx49xx.yml b/spec/build/bsps/mips/rbtx4925/opttx49xx.yml
new file mode 100644
index 0000000000..a9e7f96fe2
--- /dev/null
+++ b/spec/build/bsps/mips/rbtx4925/opttx49xx.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ This BSP has a RM52xx compatible CPU.
+enabled-by: true
+links: []
+name: BSP_HAS_TX49xx
+type: build
diff --git a/spec/build/bsps/mips/rbtx4925/start.yml b/spec/build/bsps/mips/rbtx4925/start.yml
new file mode 100644
index 0000000000..13980cbbba
--- /dev/null
+++ b/spec/build/bsps/mips/rbtx4925/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/mips/rbtx4925/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/mips/rbtx4938/abi.yml b/spec/build/bsps/mips/rbtx4938/abi.yml
new file mode 100644
index 0000000000..79408e4eb3
--- /dev/null
+++ b/spec/build/bsps/mips/rbtx4938/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mips3
+- -G0
+- -EL
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/mips/rbtx4938/bsprbtx4938.yml b/spec/build/bsps/mips/rbtx4938/bsprbtx4938.yml
new file mode 100644
index 0000000000..4215d0f9cc
--- /dev/null
+++ b/spec/build/bsps/mips/rbtx4938/bsprbtx4938.yml
@@ -0,0 +1,64 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: mips
+bsp: rbtx4938
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: rbtx4938
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/mips/rbtx4938/include/bsp.h
+ - bsps/mips/rbtx4938/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/mips/rbtx4938/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/mips/rbtx4938/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstnolibdl
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/mips/rbtx4938/clock/clockdrv.c
+- bsps/mips/rbtx4938/console/console-io.c
+- bsps/mips/rbtx4938/irq/vectorisrs.c
+- bsps/mips/rbtx4938/start/bspstart.c
+- bsps/mips/rbtx4938/start/inittlb.c
+- bsps/mips/shared/irq/exception.S
+- bsps/mips/shared/irq/installisrentries.c
+- bsps/mips/shared/irq/interruptmask_TX49.c
+- bsps/mips/shared/irq/irq.c
+- bsps/mips/shared/irq/isr_entries.S
+- bsps/mips/shared/irq/vectorexceptions.c
+- bsps/mips/shared/liblnk/lnklib.S
+- bsps/mips/shared/liblnk/pmon.S
+- bsps/mips/shared/start/idtmem.S
+- bsps/mips/shared/start/idttlb.S
+- bsps/mips/shared/timer/gettime.S
+- bsps/mips/shared/timer/timer.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/mips/rbtx4938/start.yml b/spec/build/bsps/mips/rbtx4938/start.yml
new file mode 100644
index 0000000000..1f74c12595
--- /dev/null
+++ b/spec/build/bsps/mips/rbtx4938/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/mips/rbtx4938/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/moxie/moxiesim/abi.yml b/spec/build/bsps/moxie/moxiesim/abi.yml
new file mode 100644
index 0000000000..530e7a5d14
--- /dev/null
+++ b/spec/build/bsps/moxie/moxiesim/abi.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: []
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/moxie/moxiesim/bspmoxiesim.yml b/spec/build/bsps/moxie/moxiesim/bspmoxiesim.yml
new file mode 100644
index 0000000000..bf0388291f
--- /dev/null
+++ b/spec/build/bsps/moxie/moxiesim/bspmoxiesim.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: moxie
+bsp: moxiesim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: moxiesim
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/moxie/moxiesim/include/bsp.h
+ - bsps/moxie/moxiesim/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/moxie/moxiesim/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/moxie/moxiesim/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../optos
+- role: build-dependency
+ uid: ../../tstnolibdl
+- role: build-dependency
+ uid: ../../tstreqtick
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/moxie/moxiesim/console/console-io.c
+- bsps/moxie/moxiesim/console/syscalls.S
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/clock/clock-simidle.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/moxie/moxiesim/start.yml b/spec/build/bsps/moxie/moxiesim/start.yml
new file mode 100644
index 0000000000..d9d7418c34
--- /dev/null
+++ b/spec/build/bsps/moxie/moxiesim/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/moxie/moxiesim/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/nios2/nios2_iss/abi.yml b/spec/build/bsps/nios2/nios2_iss/abi.yml
new file mode 100644
index 0000000000..231cb54350
--- /dev/null
+++ b/spec/build/bsps/nios2/nios2_iss/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mno-hw-mul
+- -mno-hw-div
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/nios2/nios2_iss/bspnios2iss.yml b/spec/build/bsps/nios2/nios2_iss/bspnios2iss.yml
new file mode 100644
index 0000000000..c62f0d0b65
--- /dev/null
+++ b/spec/build/bsps/nios2/nios2_iss/bspnios2iss.yml
@@ -0,0 +1,49 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: nios2
+bsp: nios2_iss
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: nios2_iss
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/nios2/nios2_iss/include/bsp.h
+ - bsps/nios2/nios2_iss/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/nios2/nios2_iss/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/nios2/nios2_iss/start/linkcmds
+links:
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto0
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/nios2/nios2_iss/btimer/btimer.c
+- bsps/nios2/nios2_iss/clock/clock.c
+- bsps/nios2/nios2_iss/console/console.c
+- bsps/nios2/nios2_iss/start/bspstart.c
+- bsps/nios2/nios2_iss/start/setvec.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/nios2/nios2_iss/start.yml b/spec/build/bsps/nios2/nios2_iss/start.yml
new file mode 100644
index 0000000000..537aa67a88
--- /dev/null
+++ b/spec/build/bsps/nios2/nios2_iss/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/nios2/nios2_iss/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/obj.yml b/spec/build/bsps/obj.yml
new file mode 100644
index 0000000000..8809238057
--- /dev/null
+++ b/spec/build/bsps/obj.yml
@@ -0,0 +1,107 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/include/bsp/bootcard.h
+ - bsps/include/bsp/console-polled.h
+ - bsps/include/bsp/console-termios.h
+ - bsps/include/bsp/default-initial-extension.h
+ - bsps/include/bsp/fatal.h
+ - bsps/include/bsp/fdt.h
+ - bsps/include/bsp/gpio.h
+ - bsps/include/bsp/irq-default.h
+ - bsps/include/bsp/irq-generic.h
+ - bsps/include/bsp/irq-info.h
+ - bsps/include/bsp/stackalloc.h
+ - bsps/include/bsp/u-boot.h
+ - bsps/include/bsp/uart-output-char.h
+ - bsps/include/bsp/utility.h
+- destination: ${BSP_INCLUDEDIR}/libchip
+ source:
+ - bsps/include/libchip/am29lv160.h
+ - bsps/include/libchip/ata.h
+ - bsps/include/libchip/ata_internal.h
+ - bsps/include/libchip/disp_hcms29xx.h
+ - bsps/include/libchip/ds1375-rtc.h
+ - bsps/include/libchip/i2c-2b-eeprom.h
+ - bsps/include/libchip/i2c-ds1621.h
+ - bsps/include/libchip/i2c-sc620.h
+ - bsps/include/libchip/icm7170.h
+ - bsps/include/libchip/ide_ctrl.h
+ - bsps/include/libchip/ide_ctrl_cfg.h
+ - bsps/include/libchip/ide_ctrl_io.h
+ - bsps/include/libchip/m48t08.h
+ - bsps/include/libchip/mc146818a.h
+ - bsps/include/libchip/mc68681.h
+ - bsps/include/libchip/ns16550.h
+ - bsps/include/libchip/ns16550_p.h
+ - bsps/include/libchip/rtc.h
+ - bsps/include/libchip/serial.h
+ - bsps/include/libchip/sersupp.h
+ - bsps/include/libchip/spi-flash-m25p40.h
+ - bsps/include/libchip/spi-fram-fm25l256.h
+ - bsps/include/libchip/spi-memdrv.h
+ - bsps/include/libchip/spi-sd-card.h
+ - bsps/include/libchip/wd80x3.h
+ - bsps/include/libchip/z85c30.h
+- destination: ${BSP_INCLUDEDIR}/rtems/zilog
+ source:
+ - bsps/include/rtems/zilog/z8036.h
+ - bsps/include/rtems/zilog/z8530.h
+links:
+- role: build-dependency
+ uid: objmpci
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: objnetnosmp
+source:
+- bsps/shared/dev/display/disp_hcms29xx.c
+- bsps/shared/dev/display/font_hcms29xx.c
+- bsps/shared/dev/flash/am29lv160.c
+- bsps/shared/dev/i2c/i2c-2b-eeprom.c
+- bsps/shared/dev/i2c/i2c-ds1621.c
+- bsps/shared/dev/i2c/i2c-sc620.c
+- bsps/shared/dev/i2c/spi-flash-m25p40.c
+- bsps/shared/dev/i2c/spi-fram-fm25l256.c
+- bsps/shared/dev/i2c/spi-memdrv.c
+- bsps/shared/dev/i2c/spi-sd-card.c
+- bsps/shared/dev/ide/ata.c
+- bsps/shared/dev/ide/ata_util.c
+- bsps/shared/dev/ide/ide_controller.c
+- bsps/shared/dev/rtc/ds1375.c
+- bsps/shared/dev/rtc/icm7170.c
+- bsps/shared/dev/rtc/icm7170_reg2.c
+- bsps/shared/dev/rtc/icm7170_reg4.c
+- bsps/shared/dev/rtc/icm7170_reg8.c
+- bsps/shared/dev/rtc/icm7170_reg.c
+- bsps/shared/dev/rtc/m48t08.c
+- bsps/shared/dev/rtc/m48t08_reg2.c
+- bsps/shared/dev/rtc/m48t08_reg4.c
+- bsps/shared/dev/rtc/m48t08_reg8.c
+- bsps/shared/dev/rtc/m48t08_reg.c
+- bsps/shared/dev/rtc/mc146818a.c
+- bsps/shared/dev/rtc/mc146818a_ioreg.c
+- bsps/shared/dev/rtc/rtcprobe.c
+- bsps/shared/dev/serial/mc68681_baud.c
+- bsps/shared/dev/serial/mc68681.c
+- bsps/shared/dev/serial/mc68681_reg2.c
+- bsps/shared/dev/serial/mc68681_reg4.c
+- bsps/shared/dev/serial/mc68681_reg8.c
+- bsps/shared/dev/serial/mc68681_reg.c
+- bsps/shared/dev/serial/ns16550.c
+- bsps/shared/dev/serial/ns16550-context.c
+- bsps/shared/dev/serial/serprobe.c
+- bsps/shared/dev/serial/z85c30.c
+- bsps/shared/dev/serial/z85c30_reg.c
+- bsps/shared/start/bootcard.c
+- bsps/shared/rtems-version.c
+type: build
diff --git a/spec/build/bsps/objgrlib.yml b/spec/build/bsps/objgrlib.yml
new file mode 100644
index 0000000000..67a252f17a
--- /dev/null
+++ b/spec/build/bsps/objgrlib.yml
@@ -0,0 +1,142 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/grlib
+ source:
+ - bsps/include/grlib/ahbstat.h
+ - bsps/include/grlib/ambapp.h
+ - bsps/include/grlib/ambapp_bus.h
+ - bsps/include/grlib/ambapp_bus_grlib.h
+ - bsps/include/grlib/ambapp_ids.h
+ - bsps/include/grlib/apbuart.h
+ - bsps/include/grlib/apbuart_cons.h
+ - bsps/include/grlib/apbuart_termios.h
+ - bsps/include/grlib/b1553brm.h
+ - bsps/include/grlib/b1553rt.h
+ - bsps/include/grlib/bspcommon.h
+ - bsps/include/grlib/canmux.h
+ - bsps/include/grlib/cons.h
+ - bsps/include/grlib/debug_defs.h
+ - bsps/include/grlib/genirq.h
+ - bsps/include/grlib/gpiolib.h
+ - bsps/include/grlib/gptimer.h
+ - bsps/include/grlib/gr1553b.h
+ - bsps/include/grlib/gr1553bc.h
+ - bsps/include/grlib/gr1553bc_list.h
+ - bsps/include/grlib/gr1553bm.h
+ - bsps/include/grlib/gr1553rt.h
+ - bsps/include/grlib/gr_701.h
+ - bsps/include/grlib/gr_cpci_gr740.h
+ - bsps/include/grlib/gr_rasta_adcdac.h
+ - bsps/include/grlib/gr_rasta_io.h
+ - bsps/include/grlib/gr_rasta_spw_router.h
+ - bsps/include/grlib/gr_rasta_tmtc.h
+ - bsps/include/grlib/gr_tmtc_1553.h
+ - bsps/include/grlib/gradcdac.h
+ - bsps/include/grlib/grascs.h
+ - bsps/include/grlib/grcan.h
+ - bsps/include/grlib/grctm.h
+ - bsps/include/grlib/greth.h
+ - bsps/include/grlib/grgpio.h
+ - bsps/include/grlib/griommu.h
+ - bsps/include/grlib/grlib.h
+ - bsps/include/grlib/grlib_impl.h
+ - bsps/include/grlib/grpci.h
+ - bsps/include/grlib/grpci2.h
+ - bsps/include/grlib/grpci2dma.h
+ - bsps/include/grlib/grpwm.h
+ - bsps/include/grlib/grslink.h
+ - bsps/include/grlib/grspw.h
+ - bsps/include/grlib/grspw_pkt.h
+ - bsps/include/grlib/grspw_router.h
+ - bsps/include/grlib/grtc.h
+ - bsps/include/grlib/grtm.h
+ - bsps/include/grlib/i2cmst.h
+ - bsps/include/grlib/l2c.h
+ - bsps/include/grlib/l4stat.h
+ - bsps/include/grlib/mctrl.h
+ - bsps/include/grlib/memscrub.h
+ - bsps/include/grlib/network_interface_add.h
+ - bsps/include/grlib/occan.h
+ - bsps/include/grlib/pcif.h
+ - bsps/include/grlib/satcan.h
+ - bsps/include/grlib/spictrl.h
+ - bsps/include/grlib/spwcuc.h
+ - bsps/include/grlib/spwtdp.h
+ - bsps/include/grlib/tlib.h
+links:
+- role: build-dependency
+ uid: objgrlibnet
+- role: build-dependency
+ uid: objgrlibnosmp
+source:
+- bsps/shared/grlib/1553/b1553brm.c
+- bsps/shared/grlib/1553/b1553rt.c
+- bsps/shared/grlib/1553/gr1553b.c
+- bsps/shared/grlib/1553/gr1553bc.c
+- bsps/shared/grlib/1553/gr1553bm.c
+- bsps/shared/grlib/1553/gr1553rt.c
+- bsps/shared/grlib/amba/ahbstat.c
+- bsps/shared/grlib/amba/ambapp_alloc.c
+- bsps/shared/grlib/amba/ambapp.c
+- bsps/shared/grlib/amba/ambapp_count.c
+- bsps/shared/grlib/amba/ambapp_depth.c
+- bsps/shared/grlib/amba/ambapp_find_by_idx.c
+- bsps/shared/grlib/amba/ambapp_freq.c
+- bsps/shared/grlib/amba/ambapp_names.c
+- bsps/shared/grlib/amba/ambapp_old.c
+- bsps/shared/grlib/amba/ambapp_parent.c
+- bsps/shared/grlib/amba/ambapp_show.c
+- bsps/shared/grlib/analog/gradcdac.c
+- bsps/shared/grlib/ascs/grascs.c
+- bsps/shared/grlib/btimer/gptimer.c
+- bsps/shared/grlib/btimer/tlib.c
+- bsps/shared/grlib/btimer/tlib_ckinit.c
+- bsps/shared/grlib/can/canmux.c
+- bsps/shared/grlib/can/grcan.c
+- bsps/shared/grlib/can/occan.c
+- bsps/shared/grlib/can/satcan.c
+- bsps/shared/grlib/drvmgr/ambapp_bus.c
+- bsps/shared/grlib/drvmgr/ambapp_bus_grlib.c
+- bsps/shared/grlib/drvmgr/get_resarray_count.c
+- bsps/shared/grlib/gpio/gpiolib.c
+- bsps/shared/grlib/gpio/grgpio.c
+- bsps/shared/grlib/i2c/i2cmst.c
+- bsps/shared/grlib/iommu/griommu.c
+- bsps/shared/grlib/irq/genirq.c
+- bsps/shared/grlib/l2c/l2c.c
+- bsps/shared/grlib/mem/mctrl.c
+- bsps/shared/grlib/pci/gr_701.c
+- bsps/shared/grlib/pci/grpci2.c
+- bsps/shared/grlib/pci/grpci2dma.c
+- bsps/shared/grlib/pci/grpci.c
+- bsps/shared/grlib/pci/gr_rasta_adcdac.c
+- bsps/shared/grlib/pci/gr_rasta_io.c
+- bsps/shared/grlib/pci/gr_rasta_spw_router.c
+- bsps/shared/grlib/pci/gr_rasta_tmtc.c
+- bsps/shared/grlib/pci/gr_tmtc_1553.c
+- bsps/shared/grlib/pci/pcif.c
+- bsps/shared/grlib/pwm/grpwm.c
+- bsps/shared/grlib/scrub/memscrub.c
+- bsps/shared/grlib/slink/grslink.c
+- bsps/shared/grlib/spi/spictrl.c
+- bsps/shared/grlib/spw/grspw_pkt.c
+- bsps/shared/grlib/spw/grspw_router.c
+- bsps/shared/grlib/spw/spwtdp.c
+- bsps/shared/grlib/stat/l4stat.c
+- bsps/shared/grlib/time/grctm.c
+- bsps/shared/grlib/time/spwcuc.c
+- bsps/shared/grlib/tmtc/grtc.c
+- bsps/shared/grlib/tmtc/grtm.c
+- bsps/shared/grlib/uart/apbuart_cons.c
+- bsps/shared/grlib/uart/apbuart_polled.c
+- bsps/shared/grlib/uart/apbuart_termios.c
+- bsps/shared/grlib/uart/cons.c
+type: build
diff --git a/spec/build/bsps/objgrlibnet.yml b/spec/build/bsps/objgrlibnet.yml
new file mode 100644
index 0000000000..a8c109257c
--- /dev/null
+++ b/spec/build/bsps/objgrlibnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/shared/grlib/net/greth.c
+- bsps/shared/grlib/net/network_interface_add.c
+type: build
diff --git a/spec/build/bsps/objgrlibnosmp.yml b/spec/build/bsps/objgrlibnosmp.yml
new file mode 100644
index 0000000000..ad1b6262f6
--- /dev/null
+++ b/spec/build/bsps/objgrlibnosmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- not: RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/shared/grlib/spw/grspw.c
+type: build
diff --git a/spec/build/bsps/objirq.yml b/spec/build/bsps/objirq.yml
new file mode 100644
index 0000000000..aa3da23aa7
--- /dev/null
+++ b/spec/build/bsps/objirq.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+links: []
+source:
+- bsps/shared/irq/irq-generic.c
+- bsps/shared/irq/irq-info.c
+- bsps/shared/irq/irq-legacy.c
+- bsps/shared/irq/irq-lock.c
+- bsps/shared/irq/irq-server.c
+- bsps/shared/irq/irq-shell.c
+type: build
diff --git a/spec/build/bsps/objirqdflt.yml b/spec/build/bsps/objirqdflt.yml
new file mode 100644
index 0000000000..56c818d870
--- /dev/null
+++ b/spec/build/bsps/objirqdflt.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: objirq
+source:
+- bsps/shared/irq/irq-default.c
+- bsps/shared/irq/irq-default-handler.c
+type: build
diff --git a/spec/build/bsps/objmpci.yml b/spec/build/bsps/objmpci.yml
new file mode 100644
index 0000000000..e7b0c88057
--- /dev/null
+++ b/spec/build/bsps/objmpci.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/include/mpci.h
+ - bsps/include/shm_driver.h
+links: []
+source:
+- bsps/shared/shmdr/shmdr-addlq.c
+- bsps/shared/shmdr/shmdr-cnvpkt.c
+- bsps/shared/shmdr/shmdr-dump.c
+- bsps/shared/shmdr/shmdr-fatal.c
+- bsps/shared/shmdr/shmdr-getlq.c
+- bsps/shared/shmdr/shmdr-getpkt.c
+- bsps/shared/shmdr/shmdr-init.c
+- bsps/shared/shmdr/shmdr-initlq.c
+- bsps/shared/shmdr/shmdr-intr.c
+- bsps/shared/shmdr/shmdr-mpisr.c
+- bsps/shared/shmdr/shmdr-poll.c
+- bsps/shared/shmdr/shmdr-receive.c
+- bsps/shared/shmdr/shmdr-retpkt.c
+- bsps/shared/shmdr/shmdr-send.c
+type: build
diff --git a/spec/build/bsps/objnet.yml b/spec/build/bsps/objnet.yml
new file mode 100644
index 0000000000..fc002fce5a
--- /dev/null
+++ b/spec/build/bsps/objnet.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install:
+- destination: ${BSP_INCLUDEDIR}/libchip
+ source:
+ - bsps/include/libchip/cs8900.h
+ - bsps/include/libchip/i82586var.h
+ - bsps/include/libchip/if_dcreg.h
+ - bsps/include/libchip/if_fxpvar.h
+ - bsps/include/libchip/open_eth.h
+ - bsps/include/libchip/smc91111.h
+ - bsps/include/libchip/smc91111exp.h
+ - bsps/include/libchip/sonic.h
+links: []
+source:
+- bsps/shared/net/cs8900.c
+- bsps/shared/net/dec21140.c
+- bsps/shared/net/elnk.c
+- bsps/shared/net/i82586.c
+- bsps/shared/net/if_dc.c
+- bsps/shared/net/if_fxp.c
+- bsps/shared/net/open_eth.c
+- bsps/shared/net/smc91111.c
+- bsps/shared/net/sonic.c
+type: build
diff --git a/spec/build/bsps/objnetnosmp.yml b/spec/build/bsps/objnetnosmp.yml
new file mode 100644
index 0000000000..5a01e1b2bc
--- /dev/null
+++ b/spec/build/bsps/objnetnosmp.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- and:
+ - RTEMS_NETWORKING
+ - not: RTEMS_SMP
+includes:
+- cpukit/libnetworking
+install:
+- destination: ${BSP_INCLUDEDIR}/libchip
+ source:
+ - bsps/include/libchip/greth.h
+links: []
+source:
+- bsps/shared/net/greth2.c
+type: build
diff --git a/spec/build/bsps/optabi.yml b/spec/build/bsps/optabi.yml
new file mode 100644
index 0000000000..d7852a082c
--- /dev/null
+++ b/spec/build/bsps/optabi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-env: ABI_FLAGS
+- env-append: ASFLAGS
+- env-append: CFLAGS
+- env-append: CXXFLAGS
+- env-append: LDFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/optasflags.yml b/spec/build/bsps/optasflags.yml
new file mode 100644
index 0000000000..1f10274103
--- /dev/null
+++ b/spec/build/bsps/optasflags.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value:
+ - -DASM
+ - -g
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: ASFLAGS
+type: build
diff --git a/spec/build/bsps/optbsp.yml b/spec/build/bsps/optbsp.yml
new file mode 100644
index 0000000000..abe9fe840f
--- /dev/null
+++ b/spec/build/bsps/optbsp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: ${BSP_BASE}
+- substitute: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: RTEMS_BSP
+type: build
diff --git a/spec/build/bsps/optcachedata.yml b/spec/build/bsps/optcachedata.yml
new file mode 100644
index 0000000000..6e48d171ff
--- /dev/null
+++ b/spec/build/bsps/optcachedata.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - .*qemu.*
+description: |
+ Enable data cache
+enabled-by: true
+links: []
+name: BSP_DATA_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/optcacheinst.yml b/spec/build/bsps/optcacheinst.yml
new file mode 100644
index 0000000000..035414bf0c
--- /dev/null
+++ b/spec/build/bsps/optcacheinst.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - .*qemu.*
+description: |
+ Enable instruction cache
+enabled-by: true
+links: []
+name: BSP_INSTRUCTION_CACHE_ENABLED
+type: build
diff --git a/spec/build/bsps/optclang.yml b/spec/build/bsps/optclang.yml
new file mode 100644
index 0000000000..14e13d32c4
--- /dev/null
+++ b/spec/build/bsps/optclang.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: INPUT
+- env-assign: LINKCMDS_START_DIRECTIVE
+- set-value: ALIGN(8)
+- env-assign: LINKCMDS_ALIGN_DIRECTIVE
+build-type: option
+copyrights:
+- Copyright (C) 2020 Hesham Almatary <Hesham.Almatary@cl.cam.ac.uk>
+default: null
+default-by-variant: []
+description: Provides clang support for linker command files.
+enabled-by:
+- clang
+links: []
+name: UNUSED
+type: build
diff --git a/spec/build/bsps/optclkbootcpu.yml b/spec/build/bsps/optclkbootcpu.yml
new file mode 100644
index 0000000000..d65cc2b67f
--- /dev/null
+++ b/spec/build/bsps/optclkbootcpu.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-assign: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - .*qemu.*
+description: |
+ Do the clock tick processing on the boot processor on behalf of all other
+ processors.
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR
+type: build
diff --git a/spec/build/bsps/optclkfastidle.yml b/spec/build/bsps/optclkfastidle.yml
new file mode 100644
index 0000000000..31fb840a9c
--- /dev/null
+++ b/spec/build/bsps/optclkfastidle.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - .*qemu.*
+description: |
+ Set a mode where the time runs as fast as possible when a clock ISR occurs
+ while the IDLE thread is executing; this can significantly reduce simulation
+ times
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_FAST_IDLE
+type: build
diff --git a/spec/build/bsps/optconsolebaud.yml b/spec/build/bsps/optconsolebaud.yml
new file mode 100644
index 0000000000..3fe1eeec24
--- /dev/null
+++ b/spec/build/bsps/optconsolebaud.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant:
+- value: 9600
+ variants:
+ - m68k/m5484FireEngine
+ - powerpc/hsc_cm01
+- value: 19200
+ variants:
+ - m68k/COBRA5475
+description: |
+ Default baud for console and other serial devices.
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_CONSOLE_BAUD
+type: build
diff --git a/spec/build/bsps/optconsoleirq.yml b/spec/build/bsps/optconsoleirq.yml
new file mode 100644
index 0000000000..f20a56be37
--- /dev/null
+++ b/spec/build/bsps/optconsoleirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Use the Termios interrupt mode in the console driver.
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/optfatalverb.yml b/spec/build/bsps/optfatalverb.yml
new file mode 100644
index 0000000000..d5db6e6c21
--- /dev/null
+++ b/spec/build/bsps/optfatalverb.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ If defined to a non-zero value, prints the some information in case of a
+ fatal error.
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_VERBOSE_FATAL_EXTENSION
+type: build
diff --git a/spec/build/bsps/optgcc.yml b/spec/build/bsps/optgcc.yml
new file mode 100644
index 0000000000..ee75b8397e
--- /dev/null
+++ b/spec/build/bsps/optgcc.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: STARTUP
+- env-assign: LINKCMDS_START_DIRECTIVE
+- set-value: ALIGN_WITH_INPUT
+- env-assign: LINKCMDS_ALIGN_DIRECTIVE
+build-type: option
+copyrights:
+- Copyright (C) 2020 Hesham Almatary <Hesham.Almatary@cl.cam.ac.uk>
+default: null
+default-by-variant: []
+description: Provides GNU ld support for linker command files.
+enabled-by:
+- gcc
+links: []
+name: UNUSED
+type: build
diff --git a/spec/build/bsps/optincludes.yml b/spec/build/bsps/optincludes.yml
new file mode 100644
index 0000000000..0b4a71031c
--- /dev/null
+++ b/spec/build/bsps/optincludes.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: |
+ bsps/include bsps/${ARCH}/include bsps/${ARCH}/${BSP_FAMILY}/include
+- substitute: null
+- env-assign: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: BSP_INCLUDES
+type: build
diff --git a/spec/build/bsps/optldflags.yml b/spec/build/bsps/optldflags.yml
new file mode 100644
index 0000000000..d0e365f407
--- /dev/null
+++ b/spec/build/bsps/optldflags.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+- env-append: PKGCONFIG_LDFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Wl,--gc-sections
+default-by-variant: []
+description: |
+ Flags passed to the linker (GNU ld)
+enabled-by: true
+links: []
+name: LDFLAGS
+type: build
diff --git a/spec/build/bsps/optldflagsbsp.yml b/spec/build/bsps/optldflagsbsp.yml
new file mode 100644
index 0000000000..74f15bd559
--- /dev/null
+++ b/spec/build/bsps/optldflagsbsp.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value:
+ - -L${TOP}/bsps/${ARCH}/shared/start
+ - -L${TOP}/bsps/${ARCH}/${BSP_FAMILY}/start
+- substitute: null
+- env-append: LDFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: LDFLAGS
+type: build
diff --git a/spec/build/bsps/optmake.yml b/spec/build/bsps/optmake.yml
new file mode 100644
index 0000000000..3ef1b515af
--- /dev/null
+++ b/spec/build/bsps/optmake.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- script: |
+ def yesno(conf, enable):
+ if enable in conf.env.ENABLE:
+ return "yes"
+ return "no"
+ conf.env["RTEMS_HAS_MULTIPROCESSING"] = yesno(conf, "RTEMS_MULTIPROCESSING")
+ conf.env["RTEMS_HAS_NETWORKING"] = yesno(conf, "RTEMS_NETWORKING")
+ conf.env["RTEMS_HAS_POSIX_API"] = yesno(conf, "RTEMS_POSIX_API")
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/optmakelegacy.yml b/spec/build/bsps/optmakelegacy.yml
new file mode 100644
index 0000000000..3810761d3d
--- /dev/null
+++ b/spec/build/bsps/optmakelegacy.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Install the legacy application Makefile framework.
+enabled-by: true
+links: []
+name: INSTALL_LEGACY_MAKEFILES
+type: build
diff --git a/spec/build/bsps/opto0.yml b/spec/build/bsps/opto0.yml
new file mode 100644
index 0000000000..406286980f
--- /dev/null
+++ b/spec/build/bsps/opto0.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: null
+- env-append: CFLAGS
+- env-append: CXXFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -O0
+- -g
+- -fdata-sections
+- -ffunction-sections
+default-by-variant: []
+description: |
+ Optimization flags passed to the C and C++ compiler
+enabled-by: true
+links: []
+name: OPTIMIZATION_FLAGS
+type: build
diff --git a/spec/build/bsps/opto1.yml b/spec/build/bsps/opto1.yml
new file mode 100644
index 0000000000..52d285c2ab
--- /dev/null
+++ b/spec/build/bsps/opto1.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: null
+- env-append: CFLAGS
+- env-append: CXXFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -O1
+- -g
+- -fdata-sections
+- -ffunction-sections
+default-by-variant: []
+description: |
+ Optimization flags passed to the C and C++ compiler
+enabled-by: true
+links: []
+name: OPTIMIZATION_FLAGS
+type: build
diff --git a/spec/build/bsps/opto2.yml b/spec/build/bsps/opto2.yml
new file mode 100644
index 0000000000..071e5411d5
--- /dev/null
+++ b/spec/build/bsps/opto2.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: null
+- env-append: CFLAGS
+- env-append: CXXFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -O2
+- -g
+- -fdata-sections
+- -ffunction-sections
+default-by-variant: []
+description: |
+ Optimization flags passed to the C and C++ compiler
+enabled-by: true
+links: []
+name: OPTIMIZATION_FLAGS
+type: build
diff --git a/spec/build/bsps/optog.yml b/spec/build/bsps/optog.yml
new file mode 100644
index 0000000000..d08bd7b2b2
--- /dev/null
+++ b/spec/build/bsps/optog.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: null
+- env-append: CFLAGS
+- env-append: CXXFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Og
+- -g
+- -fdata-sections
+- -ffunction-sections
+default-by-variant: []
+description: |
+ Optimization flags passed to the C and C++ compiler
+enabled-by: true
+links: []
+name: OPTIMIZATION_FLAGS
+type: build
diff --git a/spec/build/bsps/optos.yml b/spec/build/bsps/optos.yml
new file mode 100644
index 0000000000..df9e0efd02
--- /dev/null
+++ b/spec/build/bsps/optos.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: null
+- env-append: CFLAGS
+- env-append: CXXFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Os
+- -g
+- -fdata-sections
+- -ffunction-sections
+default-by-variant: []
+description: |
+ Optimization flags passed to the C and C++ compiler
+enabled-by: true
+links: []
+name: OPTIMIZATION_FLAGS
+type: build
diff --git a/spec/build/bsps/optprintexcpt.yml b/spec/build/bsps/optprintexcpt.yml
new file mode 100644
index 0000000000..cf8ffc006c
--- /dev/null
+++ b/spec/build/bsps/optprintexcpt.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ If defined to a non-zero value, prints the exception context when an
+ unexpected exception occurs.
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_PRINT_EXCEPTION_CONTEXT
+type: build
diff --git a/spec/build/bsps/optreset.yml b/spec/build/bsps/optreset.yml
new file mode 100644
index 0000000000..886a059392
--- /dev/null
+++ b/spec/build/bsps/optreset.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ If defined to a non-zero value, reset the board when the application exits.
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_RESET_BOARD_AT_EXIT
+type: build
diff --git a/spec/build/bsps/optresetkey.yml b/spec/build/bsps/optresetkey.yml
new file mode 100644
index 0000000000..bcd7887962
--- /dev/null
+++ b/spec/build/bsps/optresetkey.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ If defined to a non-zero value, print a message and wait until pressed before
+ resetting board when application exits.
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_PRESS_KEY_FOR_RESET
+type: build
diff --git a/spec/build/bsps/or1k/generic_or1k/abi.yml b/spec/build/bsps/or1k/generic_or1k/abi.yml
new file mode 100644
index 0000000000..48034df3b0
--- /dev/null
+++ b/spec/build/bsps/or1k/generic_or1k/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -O2
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/or1k/generic_or1k/bspgenericor1k.yml b/spec/build/bsps/or1k/generic_or1k/bspgenericor1k.yml
new file mode 100644
index 0000000000..321913e5ff
--- /dev/null
+++ b/spec/build/bsps/or1k/generic_or1k/bspgenericor1k.yml
@@ -0,0 +1,67 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: or1k
+bsp: generic_or1k
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: generic_or1k
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/or1k/generic_or1k/include/bsp.h
+ - bsps/or1k/generic_or1k/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/or1k/generic_or1k/include/bsp/generic_or1k.h
+ - bsps/or1k/generic_or1k/include/bsp/irq.h
+ - bsps/or1k/generic_or1k/include/bsp/uart.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/or1k/generic_or1k/start/linkcmds
+ - bsps/or1k/shared/start/linkcmds.base
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto0
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optperiphclk
+- role: build-dependency
+ uid: optresetvec
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../tstnoiconv
+- role: build-dependency
+ uid: ../../tstnointrcrit
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/or1k/generic_or1k/btimer/btimer.c
+- bsps/or1k/generic_or1k/clock/clockdrv.c
+- bsps/or1k/generic_or1k/console/console-config.c
+- bsps/or1k/generic_or1k/console/uart.c
+- bsps/or1k/generic_or1k/irq/irq.c
+- bsps/or1k/generic_or1k/start/bspstart.c
+- bsps/or1k/shared/cache/cache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/or1k/generic_or1k/optperiphclk.yml b/spec/build/bsps/or1k/generic_or1k/optperiphclk.yml
new file mode 100644
index 0000000000..ffe76b552b
--- /dev/null
+++ b/spec/build/bsps/or1k/generic_or1k/optperiphclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 50000000
+default-by-variant: []
+description: |
+ or1k PERIPHCLK clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_GENERIC_OR1K_PERIPHCLK
+type: build
diff --git a/spec/build/bsps/or1k/generic_or1k/optresetvec.yml b/spec/build/bsps/or1k/generic_or1k/optresetvec.yml
new file mode 100644
index 0000000000..efd1ea2b2a
--- /dev/null
+++ b/spec/build/bsps/or1k/generic_or1k/optresetvec.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ reset vector address for BSP start
+enabled-by: true
+links: []
+name: BSP_START_RESET_VECTOR
+type: build
diff --git a/spec/build/bsps/or1k/generic_or1k/start.yml b/spec/build/bsps/or1k/generic_or1k/start.yml
new file mode 100644
index 0000000000..b07312a0c6
--- /dev/null
+++ b/spec/build/bsps/or1k/generic_or1k/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/or1k/generic_or1k/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/or1k/grp.yml b/spec/build/bsps/or1k/grp.yml
new file mode 100644
index 0000000000..154f2cccc6
--- /dev/null
+++ b/spec/build/bsps/or1k/grp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/or1k/include/bsp/linker-symbols.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/pkgconfig.yml b/spec/build/bsps/pkgconfig.yml
new file mode 100644
index 0000000000..6240ce7ab0
--- /dev/null
+++ b/spec/build/bsps/pkgconfig.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ #
+ # pkg-config support file for RTEMS BSP ${ARCH}/${BSP_NAME}
+ #
+ # Warning: This stuff is experimental and may be changed at any time.
+ #
+
+ prefix=${PREFIX}
+ exec_prefix=$${prefix}/${ARCH}-rtems${__RTEMS_MAJOR__}
+ libdir=$${exec_prefix}/${BSP_NAME}/lib
+ includedir=$${libdir}/include
+
+ ABI_FLAGS=${ABI_FLAGS}
+ RTEMS_ARCH=${ARCH}
+ RTEMS_BSP=${BSP_NAME}
+ RTEMS_MAJOR=${__RTEMS_MAJOR__}
+ RTEMS_MINOR=${__RTEMS_MINOR__}
+ RTEMS_REVISION=${__RTEMS_REVISION__}
+
+ Name: ${ARCH}-rtems${__RTEMS_MAJOR__}-${BSP_NAME}
+ Version: ${RTEMS_VERSION}
+ Description: RTEMS BSP ${ARCH}/${BSP_NAME}
+ Cflags: $${ABI_FLAGS} -I$${includedir}
+ Ldflags: -L$${libdir} ${PKGCONFIG_LDFLAGS}
+ Libs: -L$${libdir} ${PKGCONFIG_LDFLAGS}
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${PREFIX}/lib/pkgconfig
+links: []
+target: ${ARCH}-rtems${__RTEMS_MAJOR__}-${BSP_NAME}.pc
+type: build
diff --git a/spec/build/bsps/powerpc/beatnik/abi.yml b/spec/build/bsps/powerpc/beatnik/abi.yml
new file mode 100644
index 0000000000..2413eebb8f
--- /dev/null
+++ b/spec/build/bsps/powerpc/beatnik/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -D__ppc_generic
+- -mcpu=7400
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/beatnik/bspbeatnik.yml b/spec/build/bsps/powerpc/beatnik/bspbeatnik.yml
new file mode 100644
index 0000000000..d83ab54f7f
--- /dev/null
+++ b/spec/build/bsps/powerpc/beatnik/bspbeatnik.yml
@@ -0,0 +1,107 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: beatnik
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: beatnik
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/beatnik/include/bsp.h
+ - bsps/powerpc/beatnik/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/beatnik/include/bsp/VMEConfig.h
+ - bsps/powerpc/beatnik/include/bsp/bsp_bsdnet_attach.h
+ - bsps/powerpc/beatnik/include/bsp/early_enet_link_status.h
+ - bsps/powerpc/beatnik/include/bsp/gt_timer.h
+ - bsps/powerpc/beatnik/include/bsp/gti2c_busdrv.h
+ - bsps/powerpc/beatnik/include/bsp/gti2creg.h
+ - bsps/powerpc/beatnik/include/bsp/gtintrreg.h
+ - bsps/powerpc/beatnik/include/bsp/gtpcireg.h
+ - bsps/powerpc/beatnik/include/bsp/gtreg.h
+ - bsps/powerpc/beatnik/include/bsp/if_em_pub.h
+ - bsps/powerpc/beatnik/include/bsp/if_gfe_pub.h
+ - bsps/powerpc/beatnik/include/bsp/if_mve_pub.h
+ - bsps/powerpc/beatnik/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/beatnik/start/linkcmds
+ - bsps/powerpc/shared/start/linkcmds.share
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optsbrk
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../objvme
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../motld
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/beatnik/flash/flashcfg.c
+- bsps/powerpc/beatnik/irq/discovery_pic.c
+- bsps/powerpc/beatnik/irq/irq_init.c
+- bsps/powerpc/beatnik/marvell/discovery.c
+- bsps/powerpc/beatnik/marvell/gt_timer.c
+- bsps/powerpc/beatnik/marvell/gti2c.c
+- bsps/powerpc/beatnik/pci/gt_pci_init.c
+- bsps/powerpc/beatnik/pci/motload_fixup.c
+- bsps/powerpc/beatnik/pci/pci_io_remap.c
+- bsps/powerpc/beatnik/rtc/todcfg.c
+- bsps/powerpc/beatnik/start/bspclean.c
+- bsps/powerpc/beatnik/start/bspreset.c
+- bsps/powerpc/beatnik/start/bspstart.c
+- bsps/powerpc/beatnik/start/i2c_init.c
+- bsps/powerpc/shared/altivec/vec_sup.c
+- bsps/powerpc/shared/altivec/vec_sup_asm.S
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock-ppc-dec.c
+- bsps/powerpc/shared/clock/p_clock.c
+- bsps/powerpc/shared/console/console.c
+- bsps/powerpc/shared/console/uart.c
+- bsps/powerpc/shared/flash/flash.c
+- bsps/powerpc/shared/flash/intelFlash.c
+- bsps/powerpc/shared/irq/ppc-irq-legacy.c
+- bsps/powerpc/shared/mmu/bat.c
+- bsps/powerpc/shared/mmu/mmuAsm.S
+- bsps/powerpc/shared/mmu/pte121.c
+- bsps/powerpc/shared/pci/pci.c
+- bsps/powerpc/shared/pci/pcifinddevice.c
+- bsps/powerpc/shared/start/bspgetworkarea.c
+- bsps/powerpc/shared/start/pgtbl_activate.c
+- bsps/powerpc/shared/start/pgtbl_setup.c
+- bsps/powerpc/shared/start/probeMemEnd.c
+- bsps/powerpc/shared/start/sbrk.c
+- bsps/powerpc/shared/start/vpd.c
+- bsps/powerpc/shared/start/zerobss.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+type: build
diff --git a/spec/build/bsps/powerpc/beatnik/objnet.yml b/spec/build/bsps/powerpc/beatnik/objnet.yml
new file mode 100644
index 0000000000..8ee85f2df0
--- /dev/null
+++ b/spec/build/bsps/powerpc/beatnik/objnet.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/beatnik/net/if_em/if_em.c
+- bsps/powerpc/beatnik/net/if_em/if_em_hw.c
+- bsps/powerpc/beatnik/net/if_em/if_em_rtems.c
+- bsps/powerpc/beatnik/net/if_gfe/if_gfe.c
+- bsps/powerpc/beatnik/net/if_gfe/if_gfe_rtems.c
+- bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c
+- bsps/powerpc/beatnik/net/support/bsp_attach.c
+- bsps/powerpc/beatnik/net/support/early_link_status.c
+type: build
diff --git a/spec/build/bsps/powerpc/beatnik/optsbrk.yml b/spec/build/bsps/powerpc/beatnik/optsbrk.yml
new file mode 100644
index 0000000000..05a1acd75f
--- /dev/null
+++ b/spec/build/bsps/powerpc/beatnik/optsbrk.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined then the BSP may reduce the available memory size initially. This can be useful for debugging (reduce the core size) or dynamic loading (std gcc text offsets/jumps are < +/-32M). Note that the policy can still be defined by the application (see sbrk.c, BSP_sbrk_policy). By undefining CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK this feature is removed and a little memory is saved.
+enabled-by: true
+links: []
+name: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
+type: build
diff --git a/spec/build/bsps/powerpc/crti.yml b/spec/build/bsps/powerpc/crti.yml
new file mode 100644
index 0000000000..01866225fa
--- /dev/null
+++ b/spec/build/bsps/powerpc/crti.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/shared/start/rtems_crti.S
+target: rtems_crti.o
+type: build
diff --git a/spec/build/bsps/powerpc/crtn.yml b/spec/build/bsps/powerpc/crtn.yml
new file mode 100644
index 0000000000..56669b9294
--- /dev/null
+++ b/spec/build/bsps/powerpc/crtn.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/shared/start/rtems_crtn.S
+target: rtems_crtn.o
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/abi.yml b/spec/build/bsps/powerpc/gen5200/abi.yml
new file mode 100644
index 0000000000..032924fbc9
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=603e
+- -mstrict-align
+- -meabi
+- -msdata=sysv
+- -fno-common
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/bspicecube.yml b/spec/build/bsps/powerpc/gen5200/bspicecube.yml
new file mode 100644
index 0000000000..7f95524151
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/bspicecube.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: icecube
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen5200
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/bsppm520cr825.yml b/spec/build/bsps/powerpc/gen5200/bsppm520cr825.yml
new file mode 100644
index 0000000000..cb5aa0b048
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/bsppm520cr825.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: pm520_cr825
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen5200
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/bsppm520ze30.yml b/spec/build/bsps/powerpc/gen5200/bsppm520ze30.yml
new file mode 100644
index 0000000000..cc005c5782
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/bsppm520ze30.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: pm520_ze30
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen5200
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/grp.yml b/spec/build/bsps/powerpc/gen5200/grp.yml
new file mode 100644
index 0000000000..3132c60559
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/grp.yml
@@ -0,0 +1,64 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optbenchirq
+- role: build-dependency
+ uid: optenirqnest
+- role: build-dependency
+ uid: optgpiomsk
+- role: build-dependency
+ uid: optgpioval
+- role: build-dependency
+ uid: opticecub
+- role: build-dependency
+ uid: optpm520cr825
+- role: build-dependency
+ uid: optpm520ze30
+- role: build-dependency
+ uid: optprintkminor
+- role: build-dependency
+ uid: optpscgps
+- role: build-dependency
+ uid: optsinglechar
+- role: build-dependency
+ uid: optuartmsk
+- role: build-dependency
+ uid: optuartstermirq
+- role: build-dependency
+ uid: optuboot
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/powerpc/gen5200/obj.yml b/spec/build/bsps/powerpc/gen5200/obj.yml
new file mode 100644
index 0000000000..2f83305cad
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/obj.yml
@@ -0,0 +1,117 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/gen5200/include/bsp.h
+ - bsps/powerpc/gen5200/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/gen5200/include/bsp/ata.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm_ops.h
+ - bsps/powerpc/gen5200/include/bsp/i2c.h
+ - bsps/powerpc/gen5200/include/bsp/i2cdrv.h
+ - bsps/powerpc/gen5200/include/bsp/irq.h
+ - bsps/powerpc/gen5200/include/bsp/mpc5200.h
+ - bsps/powerpc/gen5200/include/bsp/mscan-base.h
+ - bsps/powerpc/gen5200/include/bsp/mscan.h
+ - bsps/powerpc/gen5200/include/bsp/nvram.h
+ - bsps/powerpc/gen5200/include/bsp/slicetimer.h
+ - bsps/powerpc/gen5200/include/bsp/u-boot-config.h
+- destination: ${BSP_INCLUDEDIR}/bsp/bestcomm
+ source:
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/bestcomm_api.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/bestcomm_glue.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/bestcomm_priv.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/dma_image.capi.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/dma_image.h
+- destination: ${BSP_INCLUDEDIR}/bsp/bestcomm/${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/include/ppctypes.h
+- destination: ${BSP_INCLUDEDIR}/bsp/bestcomm/${BSP_INCLUDEDIR}/mgt5200
+ source:
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/include/mgt5200/mgt5200.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/include/mgt5200/sdma.h
+- destination: ${BSP_INCLUDEDIR}/bsp/bestcomm/task/api
+ source:
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/task_api/bestcomm_api_mem.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/task_api/bestcomm_cntrl.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/task_api/tasksetup_bdtable.h
+ - bsps/powerpc/gen5200/include/bsp/bestcomm/task_api/tasksetup_general.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/gen5200/start/linkcmds.gen5200_base
+ - bsps/powerpc/gen5200/start/linkcmds.icecube
+ - bsps/powerpc/gen5200/start/linkcmds.pm520_cr825
+ - bsps/powerpc/gen5200/start/linkcmds.pm520_ze30
+links: []
+source:
+- bsps/powerpc/gen5200/ata/ata-dma-pio-single.c
+- bsps/powerpc/gen5200/ata/ata-instance.c
+- bsps/powerpc/gen5200/ata/idecfg.c
+- bsps/powerpc/gen5200/ata/pcmcia_ide.c
+- bsps/powerpc/gen5200/bestcomm/bestcomm_api.c
+- bsps/powerpc/gen5200/bestcomm/bestcomm_glue.c
+- bsps/powerpc/gen5200/bestcomm/dma_image.c
+- bsps/powerpc/gen5200/bestcomm/dma_image.reloc.c
+- bsps/powerpc/gen5200/bestcomm/load_task.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_ata.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_bdtable.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_crc16_dp_0.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_crc16_dp_1.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_fec_rx_bd.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_fec_tx_bd.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_gen_dp_0.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_gen_dp_1.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_gen_dp_2.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_gen_dp_3.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_gen_dp_bd_0.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_gen_dp_bd_1.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_gen_rx_bd.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_gen_tx_bd.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_lpc.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_pci_rx.c
+- bsps/powerpc/gen5200/bestcomm/tasksetup_pci_tx.c
+- bsps/powerpc/gen5200/console/console.c
+- bsps/powerpc/gen5200/dev/mpc5200-ata.c
+- bsps/powerpc/gen5200/i2c/i2c.c
+- bsps/powerpc/gen5200/i2c/i2cdrv.c
+- bsps/powerpc/gen5200/i2c/mpc5200mbus.c
+- bsps/powerpc/gen5200/irq/irq.c
+- bsps/powerpc/gen5200/mscan/mscan-base.c
+- bsps/powerpc/gen5200/mscan/mscan.c
+- bsps/powerpc/gen5200/nvram/nvram.c
+- bsps/powerpc/gen5200/rtc/pcf8563.c
+- bsps/powerpc/gen5200/rtc/todcfg.c
+- bsps/powerpc/gen5200/slicetimer/slicetimer.c
+- bsps/powerpc/gen5200/start/bestcomm.c
+- bsps/powerpc/gen5200/start/bspreset.c
+- bsps/powerpc/gen5200/start/bspstart.c
+- bsps/powerpc/gen5200/start/cpuinit.c
+- bsps/powerpc/gen5200/start/uboot_support.c
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock.c
+- bsps/powerpc/shared/mmu/bat.c
+- bsps/powerpc/shared/mmu/mmuAsm.S
+- bsps/powerpc/shared/mmu/pte121.c
+- bsps/powerpc/shared/start/bspidle.c
+- bsps/powerpc/shared/start/memcpy.c
+- bsps/powerpc/shared/start/showbats.c
+- bsps/powerpc/shared/u-boot/uboot_dump_bdinfo.c
+- bsps/powerpc/shared/u-boot/uboot_getenv.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/start/bsp-uboot-board-info.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/objnet.yml b/spec/build/bsps/powerpc/gen5200/objnet.yml
new file mode 100644
index 0000000000..31f2ceff57
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/gen5200/net/network.c
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optbenchirq.yml b/spec/build/bsps/powerpc/gen5200/optbenchirq.yml
new file mode 100644
index 0000000000..3ade789573
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optbenchirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If set to !0, enable code to benchmark IRQ processing.
+enabled-by: true
+links: []
+name: BENCHMARK_IRQ_PROCESSING
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optenirqnest.yml b/spec/build/bsps/powerpc/gen5200/optenirqnest.yml
new file mode 100644
index 0000000000..2dfcefb5ea
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optenirqnest.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - powerpc/icecube
+description: |
+ If set to !0, allow nested IRQ processing.
+enabled-by: true
+links: []
+name: ALLOW_IRQ_NESTING
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optgpiomsk.yml b/spec/build/bsps/powerpc/gen5200/optgpiomsk.yml
new file mode 100644
index 0000000000..c39ec0ce43
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optgpiomsk.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 856625015
+default-by-variant:
+- value: 58670855
+ variants:
+ - powerpc/pm520_ze30
+description: |
+ Defines the bits cleared in the MPC5200 GPIOPCR register during
+ initialization. Must match the hardware requirements. Must be consistent
+ with BSP_GPIOPCR_INITVAL. The bits are cleared via BSP_GPIOPCR_INITMASK and
+ then set via BSP_GPIOPCR_INITVAL.
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_GPIOPCR_INITMASK
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optgpioval.yml b/spec/build/bsps/powerpc/gen5200/optgpioval.yml
new file mode 100644
index 0000000000..029df6a4f7
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optgpioval.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 17105988
+default-by-variant:
+- value: 22356228
+ variants:
+ - powerpc/pm520_ze30
+description: |
+ Defines the bits set in the MPC5200 GPIOPCR register during initialization.
+ Must match the hardware requirements. Must be consistent with
+ BSP_GPIOPCR_INITMASK. The bits are cleared via BSP_GPIOPCR_INITMASK and then
+ set via BSP_GPIOPCR_INITVAL.
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_GPIOPCR_INITVAL
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/opticecub.yml b/spec/build/bsps/powerpc/gen5200/opticecub.yml
new file mode 100644
index 0000000000..c93eafa7b2
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/opticecub.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/icecube
+description: |
+ enable settings for IceCube
+enabled-by: true
+links: []
+name: MPC5200_BOARD_ICECUBE
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optpm520cr825.yml b/spec/build/bsps/powerpc/gen5200/optpm520cr825.yml
new file mode 100644
index 0000000000..72d96a0696
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optpm520cr825.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/pm520_cr825
+description: |
+ enable settings for PM520 CR825
+enabled-by: true
+links: []
+name: MPC5200_BOARD_PM520_CR825
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optpm520ze30.yml b/spec/build/bsps/powerpc/gen5200/optpm520ze30.yml
new file mode 100644
index 0000000000..8a285a99aa
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optpm520ze30.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/pm520_ze30
+description: |
+ enable settings for PM520 ZE30
+enabled-by: true
+links: []
+name: MPC5200_BOARD_PM520_ZE30
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optprintkminor.yml b/spec/build/bsps/powerpc/gen5200/optprintkminor.yml
new file mode 100644
index 0000000000..fd101467b9
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optprintkminor.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ console minor number used by printk()
+enabled-by: true
+format: '{}'
+links: []
+name: PRINTK_MINOR
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optpscgps.yml b/spec/build/bsps/powerpc/gen5200/optpscgps.yml
new file mode 100644
index 0000000000..1a80a6b34e
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optpscgps.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ PSC index for GPS module, if defined results in '/dev/gps'
+enabled-by: true
+format: '{}'
+links: []
+name: MPC5200_PSC_INDEX_FOR_GPS_MODULE
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optsinglechar.yml b/spec/build/bsps/powerpc/gen5200/optsinglechar.yml
new file mode 100644
index 0000000000..26f3e4b8a6
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optsinglechar.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable single character mode for the PSC console driver
+enabled-by: true
+links: []
+name: SINGLE_CHAR_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optuartmsk.yml b/spec/build/bsps/powerpc/gen5200/optuartmsk.yml
new file mode 100644
index 0000000000..2a211006e4
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optuartmsk.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant:
+- value: 57
+ variants:
+ - powerpc/pm520_ze30
+- value: 7
+ variants:
+ - powerpc/pm520_cr825
+- value: 1
+ variants:
+ - powerpc/icecube
+description: |
+ bit mask to specify the UARTS (PSCs), which should be enabled on this board. Must match the hardware requirements. PSC1 corresponds to the LSB
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_UART_AVAIL_MASK
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optuartstermirq.yml b/spec/build/bsps/powerpc/gen5200/optuartstermirq.yml
new file mode 100644
index 0000000000..219d19a564
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optuartstermirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ enable interrupt support for the PSC console driver
+enabled-by: true
+links: []
+name: UARTS_USE_TERMIOS_INT
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/optuboot.yml b/spec/build/bsps/powerpc/gen5200/optuboot.yml
new file mode 100644
index 0000000000..19ed770a9f
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/optuboot.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/pm520.*
+- value: true
+ variants:
+ - powerpc/icecube
+description: |
+ enable U-Boot startup
+enabled-by: true
+links: []
+name: HAS_UBOOT
+type: build
diff --git a/spec/build/bsps/powerpc/gen5200/start.yml b/spec/build/bsps/powerpc/gen5200/start.yml
new file mode 100644
index 0000000000..22f4e14fb4
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen5200/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/gen5200/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/abi.yml b/spec/build/bsps/powerpc/gen83xx/abi.yml
new file mode 100644
index 0000000000..3451659154
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=603e
+- -meabi
+- -msdata=sysv
+- -fno-common
+- -mstrict-align
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/bspbruid.yml b/spec/build/bsps/powerpc/gen83xx/bspbruid.yml
new file mode 100644
index 0000000000..dec3e58c8d
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/bspbruid.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: br_uid
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen83xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/bsphsccm01.yml b/spec/build/bsps/powerpc/gen83xx/bsphsccm01.yml
new file mode 100644
index 0000000000..02dac5d72b
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/bsphsccm01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: hsc_cm01
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen83xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/bspmpc8309som.yml b/spec/build/bsps/powerpc/gen83xx/bspmpc8309som.yml
new file mode 100644
index 0000000000..9fa34b4fad
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/bspmpc8309som.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mpc8309som
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen83xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/bspmpc8313erdb.yml b/spec/build/bsps/powerpc/gen83xx/bspmpc8313erdb.yml
new file mode 100644
index 0000000000..f748df9ef6
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/bspmpc8313erdb.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mpc8313erdb
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen83xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/bspmpc8349eamds.yml b/spec/build/bsps/powerpc/gen83xx/bspmpc8349eamds.yml
new file mode 100644
index 0000000000..d50f84cdb9
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/bspmpc8349eamds.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mpc8349eamds
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gen83xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/grp.yml b/spec/build/bsps/powerpc/gen83xx/grp.yml
new file mode 100644
index 0000000000..602c74524b
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/grp.yml
@@ -0,0 +1,66 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../optconsolebaud
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optbruid
+- role: build-dependency
+ uid: optchiptype
+- role: build-dependency
+ uid: opthsccm01
+- role: build-dependency
+ uid: optirqnest
+- role: build-dependency
+ uid: optmpc8309som
+- role: build-dependency
+ uid: optmpc8313erdb
+- role: build-dependency
+ uid: optmpc8349eamds
+- role: build-dependency
+ uid: optnandcs0
+- role: build-dependency
+ uid: optnet0phy
+- role: build-dependency
+ uid: optuart2
+- role: build-dependency
+ uid: optuartirq
+- role: build-dependency
+ uid: optuboot
+- role: build-dependency
+ uid: optulpi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/powerpc/gen83xx/obj.yml b/spec/build/bsps/powerpc/gen83xx/obj.yml
new file mode 100644
index 0000000000..637058b976
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/obj.yml
@@ -0,0 +1,60 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/gen83xx/include/bsp.h
+ - bsps/powerpc/gen83xx/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/gen83xx/include/bsp/hwreg_vals.h
+ - bsps/powerpc/gen83xx/include/bsp/irq.h
+ - bsps/powerpc/gen83xx/include/bsp/tsec-config.h
+ - bsps/powerpc/gen83xx/include/bsp/u-boot-config.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/gen83xx/start/linkcmds.br_uid
+ - bsps/powerpc/gen83xx/start/linkcmds.hsc_cm01
+ - bsps/powerpc/gen83xx/start/linkcmds.mpc8309som
+ - bsps/powerpc/gen83xx/start/linkcmds.mpc8313erdb
+ - bsps/powerpc/gen83xx/start/linkcmds.mpc8349eamds
+ - bsps/powerpc/gen83xx/start/linkcmds.mpc83xx
+ - bsps/powerpc/shared/start/linkcmds.base
+links: []
+source:
+- bsps/powerpc/gen83xx/console/console-config.c
+- bsps/powerpc/gen83xx/dev/gtm.c
+- bsps/powerpc/gen83xx/dev/mpc83xx_i2cdrv.c
+- bsps/powerpc/gen83xx/dev/mpc83xx_spidrv.c
+- bsps/powerpc/gen83xx/i2c/i2c_init.c
+- bsps/powerpc/gen83xx/irq/irq.c
+- bsps/powerpc/gen83xx/spi/spi_init.c
+- bsps/powerpc/gen83xx/start/bspreset.c
+- bsps/powerpc/gen83xx/start/bsprestart.c
+- bsps/powerpc/gen83xx/start/bspstart.c
+- bsps/powerpc/gen83xx/start/cpuinit.c
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock.c
+- bsps/powerpc/shared/mmu/bat.c
+- bsps/powerpc/shared/mmu/mmuAsm.S
+- bsps/powerpc/shared/mmu/pte121.c
+- bsps/powerpc/shared/start/bspidle.c
+- bsps/powerpc/shared/start/tictac.c
+- bsps/powerpc/shared/u-boot/uboot_getenv.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bsp-uboot-board-info.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/objnet.yml b/spec/build/bsps/powerpc/gen83xx/objnet.yml
new file mode 100644
index 0000000000..0a750f77de
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/objnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/gen83xx/net/network.c
+- bsps/powerpc/shared/net/tsec.c
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optbruid.yml b/spec/build/bsps/powerpc/gen83xx/optbruid.yml
new file mode 100644
index 0000000000..e5732379ea
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optbruid.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/br_uid
+description: |
+ if defined, then use settings for the BR UID board
+enabled-by: true
+links: []
+name: MPC83XX_BOARD_BR_UID
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optchiptype.yml b/spec/build/bsps/powerpc/gen83xx/optchiptype.yml
new file mode 100644
index 0000000000..a46f38d4fd
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optchiptype.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 8313
+default-by-variant:
+- value: 8309
+ variants:
+ - powerpc/mpc8309som
+- value: 8309
+ variants:
+ - powerpc/br_uid
+- value: 8349
+ variants:
+ - powerpc/mpc8349eamds
+- value: 8349
+ variants:
+ - powerpc/hsc_cm01
+description: |
+ chip type of the MPC83XX family
+enabled-by: true
+format: '{}'
+links: []
+name: MPC83XX_CHIP_TYPE
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/opthsccm01.yml b/spec/build/bsps/powerpc/gen83xx/opthsccm01.yml
new file mode 100644
index 0000000000..d934919885
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/opthsccm01.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/hsc_cm01
+description: |
+ if defined, then use settings for the HSC_CM01 board
+enabled-by: true
+links: []
+name: MPC83XX_BOARD_HSC_CM01
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optirqnest.yml b/spec/build/bsps/powerpc/gen83xx/optirqnest.yml
new file mode 100644
index 0000000000..e24b81f9c6
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optirqnest.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - powerpc/mpc8313erdb
+- value: false
+ variants:
+ - powerpc/br_uid
+description: |
+ enable interrupt nesting
+enabled-by: true
+links: []
+name: GEN83XX_ENABLE_INTERRUPT_NESTING
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optmpc8309som.yml b/spec/build/bsps/powerpc/gen83xx/optmpc8309som.yml
new file mode 100644
index 0000000000..6722fa2fb3
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optmpc8309som.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mpc8309som
+description: |
+ if defined, then use settings for the MPC8309SOM board
+enabled-by: true
+links: []
+name: MPC83XX_BOARD_MPC8309SOM
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optmpc8313erdb.yml b/spec/build/bsps/powerpc/gen83xx/optmpc8313erdb.yml
new file mode 100644
index 0000000000..f8a9e0b47e
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optmpc8313erdb.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mpc8313erdb
+description: |
+ if defined, then use settings for the MPC8313ERDB board
+enabled-by: true
+links: []
+name: MPC83XX_BOARD_MPC8313ERDB
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optmpc8349eamds.yml b/spec/build/bsps/powerpc/gen83xx/optmpc8349eamds.yml
new file mode 100644
index 0000000000..f6b766099d
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optmpc8349eamds.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mpc8349eamds
+description: |
+ if defined, then use settings for the MPC8349EAMDS board
+enabled-by: true
+links: []
+name: MPC83XX_BOARD_MPC8349EAMDS
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optnandcs0.yml b/spec/build/bsps/powerpc/gen83xx/optnandcs0.yml
new file mode 100644
index 0000000000..d41820ea43
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optnandcs0.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/br_uid
+description: |
+ indicates if the board has a NAND large page flash on chip select 0
+enabled-by: true
+links: []
+name: MPC83XX_HAS_NAND_LP_FLASH_ON_CS0
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optnet0phy.yml b/spec/build/bsps/powerpc/gen83xx/optnet0phy.yml
new file mode 100644
index 0000000000..70daf1fe3e
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optnet0phy.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 17
+ variants:
+ - powerpc/mpc8309som
+- value: -1
+ variants:
+ - powerpc/br_uid
+description: |
+ PHY address of network interface 0
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: MPC83XX_NETWORK_INTERFACE_0_PHY_ADDR
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optuart2.yml b/spec/build/bsps/powerpc/gen83xx/optuart2.yml
new file mode 100644
index 0000000000..c86b36f11b
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optuart2.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ if defined, enables UART2
+enabled-by: true
+links: []
+name: BSP_USE_UART2
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optuartirq.yml b/spec/build/bsps/powerpc/gen83xx/optuartirq.yml
new file mode 100644
index 0000000000..5a845aa5fe
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optuartirq.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - powerpc/hsc_cm01
+description: |
+ enable usage of interrupts for the UART modules
+enabled-by: true
+links: []
+name: BSP_USE_UART_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optuboot.yml b/spec/build/bsps/powerpc/gen83xx/optuboot.yml
new file mode 100644
index 0000000000..6b1166553e
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optuboot.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mpc8309som
+- value: true
+ variants:
+ - powerpc/mpc8313erdb
+- value: true
+ variants:
+ - powerpc/mpc8349eamds
+description: |
+ if defined, enables U-Boot support
+enabled-by: true
+links: []
+name: HAS_UBOOT
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/optulpi.yml b/spec/build/bsps/powerpc/gen83xx/optulpi.yml
new file mode 100644
index 0000000000..fd9be9f12f
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/optulpi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/br_uid
+description: |
+ the board has an ULPI PHY connected to the USB EHCI controller
+enabled-by: true
+links: []
+name: BSP_USB_EHCI_MPC83XX_HAS_ULPI
+type: build
diff --git a/spec/build/bsps/powerpc/gen83xx/start.yml b/spec/build/bsps/powerpc/gen83xx/start.yml
new file mode 100644
index 0000000000..64de86b044
--- /dev/null
+++ b/spec/build/bsps/powerpc/gen83xx/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/gen83xx/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/grp.yml b/spec/build/bsps/powerpc/grp.yml
new file mode 100644
index 0000000000..d10b1c7bb5
--- /dev/null
+++ b/spec/build/bsps/powerpc/grp.yml
@@ -0,0 +1,91 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/include/ictrl.h
+ - bsps/powerpc/include/mpc5xx.h
+ - bsps/powerpc/include/mpc8260.h
+ - bsps/powerpc/include/mpc8xx.h
+ - bsps/powerpc/include/nvram.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/include/bsp/VME.h
+ - bsps/powerpc/include/bsp/VMEDMA.h
+ - bsps/powerpc/include/bsp/bspVmeDmaList.h
+ - bsps/powerpc/include/bsp/consoleIo.h
+ - bsps/powerpc/include/bsp/flashPgm.h
+ - bsps/powerpc/include/bsp/flashPgmPvt.h
+ - bsps/powerpc/include/bsp/irq_supp.h
+ - bsps/powerpc/include/bsp/linker-symbols.h
+ - bsps/powerpc/include/bsp/motorola.h
+ - bsps/powerpc/include/bsp/openpic.h
+ - bsps/powerpc/include/bsp/pci.h
+ - bsps/powerpc/include/bsp/pnp.h
+ - bsps/powerpc/include/bsp/residual.h
+ - bsps/powerpc/include/bsp/start.h
+ - bsps/powerpc/include/bsp/tictac.h
+ - bsps/powerpc/include/bsp/tsec.h
+ - bsps/powerpc/include/bsp/u-boot-board-info.h
+ - bsps/powerpc/include/bsp/uart.h
+ - bsps/powerpc/include/bsp/vectors.h
+ - bsps/powerpc/include/bsp/vmeTsi148.h
+ - bsps/powerpc/include/bsp/vmeTsi148DMA.h
+ - bsps/powerpc/include/bsp/vmeUniverse.h
+ - bsps/powerpc/include/bsp/vmeUniverseDMA.h
+ - bsps/powerpc/include/bsp/vme_am_defs.h
+ - bsps/powerpc/include/bsp/vpd.h
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - bsps/powerpc/include/libcpu/bat.h
+ - bsps/powerpc/include/libcpu/byteorder.h
+ - bsps/powerpc/include/libcpu/c_clock.h
+ - bsps/powerpc/include/libcpu/cpuIdent.h
+ - bsps/powerpc/include/libcpu/e500_mmu.h
+ - bsps/powerpc/include/libcpu/io.h
+ - bsps/powerpc/include/libcpu/irq.h
+ - bsps/powerpc/include/libcpu/mmu.h
+ - bsps/powerpc/include/libcpu/pgtable.h
+ - bsps/powerpc/include/libcpu/powerpc-utility.h
+ - bsps/powerpc/include/libcpu/pte121.h
+ - bsps/powerpc/include/libcpu/raw_exception.h
+ - bsps/powerpc/include/libcpu/spr.h
+ - bsps/powerpc/include/libcpu/stackTrace.h
+ - bsps/powerpc/include/libcpu/vectors.h
+- destination: ${BSP_INCLUDEDIR}/mpc5xx
+ source:
+ - bsps/powerpc/include/mpc5xx/console.h
+- destination: ${BSP_INCLUDEDIR}/mpc8260
+ source:
+ - bsps/powerpc/include/mpc8260/console.h
+ - bsps/powerpc/include/mpc8260/cpm.h
+ - bsps/powerpc/include/mpc8260/mmu.h
+- destination: ${BSP_INCLUDEDIR}/mpc83xx
+ source:
+ - bsps/powerpc/include/mpc83xx/gtm.h
+ - bsps/powerpc/include/mpc83xx/mpc83xx.h
+ - bsps/powerpc/include/mpc83xx/mpc83xx_i2cdrv.h
+ - bsps/powerpc/include/mpc83xx/mpc83xx_spidrv.h
+- destination: ${BSP_INCLUDEDIR}/mpc8xx
+ source:
+ - bsps/powerpc/include/mpc8xx/console.h
+ - bsps/powerpc/include/mpc8xx/cpm.h
+ - bsps/powerpc/include/mpc8xx/mmu.h
+- destination: ${BSP_INCLUDEDIR}/ppc4xx
+ source:
+ - bsps/powerpc/include/ppc4xx/ppc405ex.h
+ - bsps/powerpc/include/ppc4xx/ppc405gp.h
+- destination: ${BSP_INCLUDEDIR}/rtems/powerpc
+ source:
+ - bsps/powerpc/include/rtems/powerpc/cache.h
+ - bsps/powerpc/include/rtems/powerpc/debugmod.h
+ - bsps/powerpc/include/rtems/powerpc/powerpc.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/powerpc/haleakala/abi.yml b/spec/build/bsps/powerpc/haleakala/abi.yml
new file mode 100644
index 0000000000..1fc318b3cb
--- /dev/null
+++ b/spec/build/bsps/powerpc/haleakala/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dppc405
+- -mcpu=405
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/haleakala/bsphaleakala.yml b/spec/build/bsps/powerpc/haleakala/bsphaleakala.yml
new file mode 100644
index 0000000000..8076f1f55f
--- /dev/null
+++ b/spec/build/bsps/powerpc/haleakala/bsphaleakala.yml
@@ -0,0 +1,70 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: haleakala
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: haleakala
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/haleakala/include/bsp.h
+ - bsps/powerpc/haleakala/include/mmu_405.h
+ - bsps/powerpc/haleakala/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/haleakala/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/haleakala/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto1
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optsprg
+- role: build-dependency
+ uid: optvecbase
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/haleakala/irq/irq.c
+- bsps/powerpc/haleakala/irq/irq_init.c
+- bsps/powerpc/haleakala/start/bspstart.c
+- bsps/powerpc/haleakala/start/mmu_405.c
+- bsps/powerpc/haleakala/start/mmu_405asm.S
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock-ppc403.c
+- bsps/powerpc/shared/console/console.c
+- bsps/powerpc/shared/console/uart.c
+- bsps/powerpc/shared/irq/ppc-irq-legacy.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/haleakala/objnet.yml b/spec/build/bsps/powerpc/haleakala/objnet.yml
new file mode 100644
index 0000000000..c308d98009
--- /dev/null
+++ b/spec/build/bsps/powerpc/haleakala/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/haleakala/net/network.c
+type: build
diff --git a/spec/build/bsps/powerpc/haleakala/optsprg.yml b/spec/build/bsps/powerpc/haleakala/optsprg.yml
new file mode 100644
index 0000000000..1e1a112f43
--- /dev/null
+++ b/spec/build/bsps/powerpc/haleakala/optsprg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, then the PowerPC specific code in RTEMS will use some of the special purpose registers to slightly optimize interrupt response time. The use of these registers can conflict with other tools like debuggers.
+enabled-by: true
+links: []
+name: PPC_USE_SPRG
+type: build
diff --git a/spec/build/bsps/powerpc/haleakala/optvecbase.yml b/spec/build/bsps/powerpc/haleakala/optvecbase.yml
new file mode 100644
index 0000000000..93812ff965
--- /dev/null
+++ b/spec/build/bsps/powerpc/haleakala/optvecbase.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 256
+default-by-variant: []
+description: |
+ This defines the base address of the exception table. NOTE: Vectors are actually at 0xFFF00000 but file starts at offset.
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: PPC_VECTOR_FILE_BASE
+type: build
diff --git a/spec/build/bsps/powerpc/haleakala/start.yml b/spec/build/bsps/powerpc/haleakala/start.yml
new file mode 100644
index 0000000000..204dfd4180
--- /dev/null
+++ b/spec/build/bsps/powerpc/haleakala/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/haleakala/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/motld.yml b/spec/build/bsps/powerpc/motld.yml
new file mode 100644
index 0000000000..aa9b908403
--- /dev/null
+++ b/spec/build/bsps/powerpc/motld.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: script
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ preload_o = "bsps/powerpc/shared/start/preload.o"
+ self.asm(bld, bic, "bsps/powerpc/shared/start/preload.S", preload_o)
+ vectors_entry_o = "bsps/powerpc/shared/start/vectors_entry.o"
+ self.asm(
+ bld, bic, "bsps/powerpc/shared/start/vectors_entry.S", vectors_entry_o
+ )
+ target = "motld_start.o"
+ bld(
+ before=["cstlib"],
+ rule="${LD} -o ${TGT} -r ${SRC}",
+ source=[preload_o, vectors_entry_o, "start.o"],
+ target=target,
+ )
+ bld.install_files("${BSP_LIBDIR}", target)
+do-configure: null
+enabled-by: true
+includes: []
+links: []
+prepare-build: null
+prepare-configure: null
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/abi.yml b/spec/build/bsps/powerpc/motorola_powerpc/abi.yml
new file mode 100644
index 0000000000..f3e4613658
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/abi.yml
@@ -0,0 +1,43 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=603e
+default-by-variant:
+- value:
+ - -mcpu=7400
+ - -mmultiple
+ - -mstring
+ - -mstrict-align
+ variants:
+ - powerpc/qemuprep-altivec
+- value:
+ - -mcpu=powerpc
+ - -mmultiple
+ - -mstring
+ - -mstrict-align
+ variants:
+ - powerpc/qemuprep
+- value:
+ - -mcpu=604
+ - -mmultiple
+ - -mstring
+ - -mstrict-align
+ - -meabi
+ variants:
+ - powerpc/mvme2307
+- value:
+ - -mcpu=750
+ variants:
+ - powerpc/mcp750
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/boot.yml b/spec/build/bsps/powerpc/motorola_powerpc/boot.yml
new file mode 100644
index 0000000000..3f7a9e3dc8
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/boot.yml
@@ -0,0 +1,49 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+do-build: |
+ def cc(self, bld, bic, flags, source):
+ root, ext = os.path.splitext(source)
+ target = root + ".o"
+ bld(
+ features="asm c",
+ includes=bic.includes,
+ rule="${CC} " + flags + " ${CPPFLAGS} ${DEFINES_ST:DEFINES} ${CPPPATH_ST:INCPATHS} -c ${SRC} -o ${TGT}",
+ source=source,
+ target=target,
+ )
+ return target
+ flags = "-D__BOOT__ -mrelocatable"
+ for f in bld.env.ABI_FLAGS:
+ if f != "-meabi":
+ flags += " " + f
+ asmflags = "-DASM " + flags
+ cflags = "-msoft-float -mstrict-align -fno-builtin -Wall -mmultiple -mstring -O2 -fomit-frame-pointer -ffixed-r13 -mno-sdata " + flags
+ source = []
+ source.append(cc(self, bld, bic, asmflags, "bsps/powerpc/motorola_powerpc/bootloader/head.S"))
+ source.append(cc(self, bld, bic, asmflags, "bsps/powerpc/motorola_powerpc/bootloader/exception.S"))
+ source.append(cc(self, bld, bic, asmflags, "bsps/powerpc/motorola_powerpc/bootloader/em86real.S"))
+ source.append(cc(self, bld, bic, cflags, "bsps/powerpc/motorola_powerpc/bootloader/misc.c"))
+ source.append(cc(self, bld, bic, cflags, "bsps/powerpc/motorola_powerpc/bootloader/pci.c"))
+ source.append(cc(self, bld, bic, cflags, "bsps/powerpc/motorola_powerpc/bootloader/zlib.c"))
+ source.append(cc(self, bld, bic, cflags, "bsps/powerpc/motorola_powerpc/bootloader/mm.c"))
+ source.append(cc(self, bld, bic, cflags, "bsps/powerpc/motorola_powerpc/bootloader/em86.c"))
+ source.append(cc(self, bld, bic, cflags, "bsps/powerpc/motorola_powerpc/console/polled_io.c"))
+ source.append(cc(self, bld, bic, cflags, "bsps/powerpc/motorola_powerpc/bootloader/lib.c"))
+ target = "bootloader.o"
+ bld(
+ rule="${LD} -o ${TGT} -r ${SRC}",
+ source=source,
+ target=target,
+ )
+ bld.install_files(
+ "${BSP_LIBDIR}",
+ [target, "bsps/powerpc/motorola_powerpc/bootloader/ppcboot.lds"],
+ )
+do-configure: null
+enabled-by: true
+links: []
+prepare-build: null
+prepare-configure: null
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/bspmcp750.yml b/spec/build/bsps/powerpc/motorola_powerpc/bspmcp750.yml
new file mode 100644
index 0000000000..274c418212
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/bspmcp750.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mcp750
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: motorola_powerpc
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/bspmtx603e.yml b/spec/build/bsps/powerpc/motorola_powerpc/bspmtx603e.yml
new file mode 100644
index 0000000000..5564ae1d9f
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/bspmtx603e.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mtx603e
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: motorola_powerpc
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/bspmvme2100.yml b/spec/build/bsps/powerpc/motorola_powerpc/bspmvme2100.yml
new file mode 100644
index 0000000000..46bdc8933f
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/bspmvme2100.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mvme2100
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: motorola_powerpc
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/bspmvme2307.yml b/spec/build/bsps/powerpc/motorola_powerpc/bspmvme2307.yml
new file mode 100644
index 0000000000..8abf0d8afa
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/bspmvme2307.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mvme2307
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: motorola_powerpc
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/bspqemu.yml b/spec/build/bsps/powerpc/motorola_powerpc/bspqemu.yml
new file mode 100644
index 0000000000..eacdc84750
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/bspqemu.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: qemuprep-altivec
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: motorola_powerpc
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/bspqemualtivec.yml b/spec/build/bsps/powerpc/motorola_powerpc/bspqemualtivec.yml
new file mode 100644
index 0000000000..eacdc84750
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/bspqemualtivec.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: qemuprep-altivec
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: motorola_powerpc
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/grp.yml b/spec/build/bsps/powerpc/motorola_powerpc/grp.yml
new file mode 100644
index 0000000000..5b84b81fe5
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/grp.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objqemunet
+- role: build-dependency
+ uid: optmpc603e
+- role: build-dependency
+ uid: optmpc750
+- role: build-dependency
+ uid: optmpc8240
+- role: build-dependency
+ uid: optmvme2100
+- role: build-dependency
+ uid: optppcgeneric
+- role: build-dependency
+ uid: optqemu
+- role: build-dependency
+ uid: optsbrk
+- role: build-dependency
+ uid: boot
+- role: build-dependency
+ uid: qemufakerom
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../objvme
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../vecentry
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/obj.yml b/spec/build/bsps/powerpc/motorola_powerpc/obj.yml
new file mode 100644
index 0000000000..07ee6fa721
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/obj.yml
@@ -0,0 +1,61 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/motorola_powerpc/include/bsp.h
+ - bsps/powerpc/motorola_powerpc/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/motorola_powerpc/include/bsp/VMEConfig.h
+ - bsps/powerpc/motorola_powerpc/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/motorola_powerpc/start/linkcmds
+ - bsps/powerpc/shared/start/linkcmds.share
+links: []
+source:
+- bsps/powerpc/motorola_powerpc/console/polled_io.c
+- bsps/powerpc/motorola_powerpc/start/bspreset.c
+- bsps/powerpc/motorola_powerpc/start/bspstart.c
+- bsps/powerpc/motorola_powerpc/start/motorola.c
+- bsps/powerpc/motorola_powerpc/start/residual.c
+- bsps/powerpc/shared/altivec/vec_sup.c
+- bsps/powerpc/shared/altivec/vec_sup_asm.S
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock-ppc-dec.c
+- bsps/powerpc/shared/clock/p_clock.c
+- bsps/powerpc/shared/console/console.c
+- bsps/powerpc/shared/console/uart.c
+- bsps/powerpc/shared/irq/i8259.c
+- bsps/powerpc/shared/irq/irq_init.c
+- bsps/powerpc/shared/irq/openpic.c
+- bsps/powerpc/shared/irq/openpic_i8259_irq.c
+- bsps/powerpc/shared/irq/ppc-irq-legacy.c
+- bsps/powerpc/shared/mmu/bat.c
+- bsps/powerpc/shared/mmu/mmuAsm.S
+- bsps/powerpc/shared/mmu/pte121.c
+- bsps/powerpc/shared/pci/detect_raven_bridge.c
+- bsps/powerpc/shared/pci/generic_clear_hberrs.c
+- bsps/powerpc/shared/pci/pci.c
+- bsps/powerpc/shared/pci/pcifinddevice.c
+- bsps/powerpc/shared/rtc/todcfg.c
+- bsps/powerpc/shared/start/bspgetworkarea.c
+- bsps/powerpc/shared/start/pgtbl_activate.c
+- bsps/powerpc/shared/start/pgtbl_setup.c
+- bsps/powerpc/shared/start/ppc_idle.c
+- bsps/powerpc/shared/start/sbrk.c
+- bsps/powerpc/shared/start/showbats.c
+- bsps/powerpc/shared/start/zerobss.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/start/bspfatal-default.c
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/objqemunet.yml b/spec/build/bsps/powerpc/motorola_powerpc/objqemunet.yml
new file mode 100644
index 0000000000..f3cd85b6b9
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/objqemunet.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- and:
+ - qemuprep
+ - RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/i386/pc386/net/ne2000.c
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/optmpc603e.yml b/spec/build/bsps/powerpc/motorola_powerpc/optmpc603e.yml
new file mode 100644
index 0000000000..509f6c9c8a
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/optmpc603e.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mtx603e
+- value: true
+ variants:
+ - powerpc/mvme2100
+description: |
+ Define when ppc603e -- undefined for others
+enabled-by: true
+links: []
+name: mpc603e
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/optmpc750.yml b/spec/build/bsps/powerpc/motorola_powerpc/optmpc750.yml
new file mode 100644
index 0000000000..d132c17552
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/optmpc750.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mcp750
+description: |
+ Define when mpc750 -- undefined for others
+enabled-by: true
+links: []
+name: mpc750
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/optmpc8240.yml b/spec/build/bsps/powerpc/motorola_powerpc/optmpc8240.yml
new file mode 100644
index 0000000000..5cc6475589
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/optmpc8240.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mvme2100
+description: |
+ Defined for boards with MPC8240 -- undefined for others
+enabled-by: true
+links: []
+name: mpc8240
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/optmvme2100.yml b/spec/build/bsps/powerpc/motorola_powerpc/optmvme2100.yml
new file mode 100644
index 0000000000..2443f4bfe8
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/optmvme2100.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mvme2100
+description: |
+ Defined for MVME2100 -- undefined for others
+enabled-by: true
+links: []
+name: mvme2100
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/optppcgeneric.yml b/spec/build/bsps/powerpc/motorola_powerpc/optppcgeneric.yml
new file mode 100644
index 0000000000..275adbb877
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/optppcgeneric.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/qemuprep
+- value: true
+ variants:
+ - powerpc/qemuprep-altivec
+description: |
+ Define when generic PPC -- undefined for others
+enabled-by: true
+links: []
+name: __ppc_generic
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/optqemu.yml b/spec/build/bsps/powerpc/motorola_powerpc/optqemu.yml
new file mode 100644
index 0000000000..962584da83
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/optqemu.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/qemuprep.*
+description: |
+ Defined for QEMU BSP -- undefined for others
+enabled-by: true
+links: []
+name: qemu
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/optsbrk.yml b/spec/build/bsps/powerpc/motorola_powerpc/optsbrk.yml
new file mode 100644
index 0000000000..1018b3a4a1
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/optsbrk.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ None
+enabled-by: true
+links: []
+name: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
+type: build
diff --git a/spec/build/bsps/powerpc/motorola_powerpc/qemufakerom.yml b/spec/build/bsps/powerpc/motorola_powerpc/qemufakerom.yml
new file mode 100644
index 0000000000..09e7f318c5
--- /dev/null
+++ b/spec/build/bsps/powerpc/motorola_powerpc/qemufakerom.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+do-build: |
+ def cc(self, bld, bic, flags, source):
+ root, ext = os.path.splitext(source)
+ target = root + ".o"
+ bld(
+ features="asm c",
+ includes=bic.includes,
+ rule="${CC} ${CPPFLAGS} " + flags + " ${DEFINES_ST:DEFINES} ${CPPPATH_ST:INCPATHS} -c ${SRC} -o ${TGT}",
+ source=source,
+ target=target,
+ )
+ return target
+ fakerom_o = cc(self, bld, bic, "-DASM", "bsps/powerpc/motorola_powerpc/bootloader/qemu_fakerom.S")
+ fakeres_o = cc(self, bld, bic, "", "bsps/powerpc/motorola_powerpc/bootloader/qemu_fakeres.c")
+ rule = "${LD} -o ${TGT} ${SRC} -nostdlib -Ttext 0xfff00000 --section-start=.romentry=0xfffffffc"
+ elf = "qemu_fakerom.elf"
+ bld(
+ rule=rule,
+ source=[fakerom_o, fakeres_o],
+ target=elf,
+ )
+ bin = "qemu_fakerom.bin"
+ bld(
+ rule=rule + " --oformat binary",
+ source=[fakerom_o, fakeres_o],
+ target=bin,
+ )
+ bld.install_files("${BSP_LIBDIR}", [fakerom_o, elf, bin])
+do-configure: null
+enabled-by: true
+links: []
+prepare-build: null
+prepare-configure: null
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/abi.yml b/spec/build/bsps/powerpc/mpc55xxevb/abi.yml
new file mode 100644
index 0000000000..bb706544ba
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/abi.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -D__ppc_generic
+- -mcpu=8540
+- -msoft-float
+- -meabi
+- -msdata=sysv
+- -fno-common
+- -mstrict-align
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/bspgwlcfm.yml b/spec/build/bsps/powerpc/mpc55xxevb/bspgwlcfm.yml
new file mode 100644
index 0000000000..ade116468e
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/bspgwlcfm.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: gwlcfm
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mpc55xxevb
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstgwlcfm
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5566evb.yml b/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5566evb.yml
new file mode 100644
index 0000000000..7763c79f4e
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5566evb.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mpc5566evb
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mpc55xxevb
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstsmallmem
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5643levb.yml b/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5643levb.yml
new file mode 100644
index 0000000000..a34997e6e4
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5643levb.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mpc5643l_evb
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mpc55xxevb
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstmpc5643levb
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5668g.yml b/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5668g.yml
new file mode 100644
index 0000000000..7a838a44a5
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5668g.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mpc5668g
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mpc55xxevb
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstsmallmem
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5674fevb.yml b/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5674fevb.yml
new file mode 100644
index 0000000000..281f160aef
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/bspmpc5674fevb.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mpc5674fevb
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mpc55xxevb
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstsmallmem
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/bspphycorempc5554.yml b/spec/build/bsps/powerpc/mpc55xxevb/bspphycorempc5554.yml
new file mode 100644
index 0000000000..af2069fa30
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/bspphycorempc5554.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: phycore_mpc5554
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mpc55xxevb
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstsmallmem
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/grp.yml b/spec/build/bsps/powerpc/mpc55xxevb/grp.yml
new file mode 100644
index 0000000000..d811ad6bbb
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/grp.yml
@@ -0,0 +1,112 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: ofmpllptmfd
+- role: build-dependency
+ uid: optbootflg
+- role: build-dependency
+ uid: optcachewritethru
+- role: build-dependency
+ uid: optchipfam
+- role: build-dependency
+ uid: optchiptype
+- role: build-dependency
+ uid: optclkemios
+- role: build-dependency
+ uid: optclkpit
+- role: build-dependency
+ uid: optconbaud
+- role: build-dependency
+ uid: optconminor
+- role: build-dependency
+ uid: optearlystksz
+- role: build-dependency
+ uid: opteepromname
+- role: build-dependency
+ uid: opteeprompath
+- role: build-dependency
+ uid: optemiosprescal
+- role: build-dependency
+ uid: optenstartpro
+- role: build-dependency
+ uid: optesciirq
+- role: build-dependency
+ uid: optexcbooke
+- role: build-dependency
+ uid: optexcfixdhdlr
+- role: build-dependency
+ uid: optfmpllesyncr1
+- role: build-dependency
+ uid: optfmpllprediv
+- role: build-dependency
+ uid: optgwlcfm
+- role: build-dependency
+ uid: optirqtblsz
+- role: build-dependency
+ uid: optlowinit
+- role: build-dependency
+ uid: optmpc5566evb
+- role: build-dependency
+ uid: optmpc5674fevb
+- role: build-dependency
+ uid: optnullprot
+- role: build-dependency
+ uid: optphycorempc5554
+- role: build-dependency
+ uid: optrefclk
+- role: build-dependency
+ uid: optsmc91111
+- role: build-dependency
+ uid: optsmc9111enaddr
+- role: build-dependency
+ uid: optsmc9218ibige
+- role: build-dependency
+ uid: optsmc9218iled
+- role: build-dependency
+ uid: optsmc9218ipinirq
+- role: build-dependency
+ uid: optsmc9218ipinrst
+- role: build-dependency
+ uid: optsmc9218irxchn
+- role: build-dependency
+ uid: optsmc9218itxchn
+- role: build-dependency
+ uid: optsysclk
+- role: build-dependency
+ uid: optsysclkdiv
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/obj.yml b/spec/build/bsps/powerpc/mpc55xxevb/obj.yml
new file mode 100644
index 0000000000..d6af1201ab
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/obj.yml
@@ -0,0 +1,97 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/mpc55xxevb/include/bsp.h
+ - bsps/powerpc/mpc55xxevb/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/mpc55xxevb/include/bsp/console-esci.h
+ - bsps/powerpc/mpc55xxevb/include/bsp/console-generic.h
+ - bsps/powerpc/mpc55xxevb/include/bsp/console-linflex.h
+ - bsps/powerpc/mpc55xxevb/include/bsp/irq.h
+ - bsps/powerpc/mpc55xxevb/include/bsp/mpc55xx-config.h
+ - bsps/powerpc/mpc55xxevb/include/bsp/smsc9218i.h
+- destination: ${BSP_INCLUDEDIR}/mpc55xx
+ source:
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/dspi.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/edma.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/emios.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/fsl-mpc551x.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/fsl-mpc555x.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/fsl-mpc556x.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/fsl-mpc564xL.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/fsl-mpc5668.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/fsl-mpc567x.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/mpc55xx.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/reg-defs.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/regs-edma.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/regs-mmu.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/regs.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/siu.h
+ - bsps/powerpc/mpc55xxevb/include/mpc55xx/watchdog.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/mpc55xxevb/start/linkcmds.gwlcfm
+ - bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb
+ - bsps/powerpc/mpc55xxevb/start/linkcmds.mpc55xx
+ - bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5668g
+ - bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb
+ - bsps/powerpc/mpc55xxevb/start/linkcmds.phycore_mpc5554
+ - bsps/powerpc/shared/start/linkcmds.base
+links: []
+source:
+- bsps/powerpc/gen83xx/dev/mpc83xx_i2cdrv.c
+- bsps/powerpc/mpc55xxevb/clock/clock-config.c
+- bsps/powerpc/mpc55xxevb/console/console-config.c
+- bsps/powerpc/mpc55xxevb/console/console-esci.c
+- bsps/powerpc/mpc55xxevb/console/console-generic.c
+- bsps/powerpc/mpc55xxevb/console/console-linflex.c
+- bsps/powerpc/mpc55xxevb/dev/dspi.c
+- bsps/powerpc/mpc55xxevb/i2c/i2c_init.c
+- bsps/powerpc/mpc55xxevb/start/bspgetworkarea.c
+- bsps/powerpc/mpc55xxevb/start/bspreset.c
+- bsps/powerpc/mpc55xxevb/start/bspstart.c
+- bsps/powerpc/mpc55xxevb/start/copy.S
+- bsps/powerpc/mpc55xxevb/start/edma.c
+- bsps/powerpc/mpc55xxevb/start/emios.c
+- bsps/powerpc/mpc55xxevb/start/exc-vector-base.S
+- bsps/powerpc/mpc55xxevb/start/flash_support.c
+- bsps/powerpc/mpc55xxevb/start/get-system-clock.c
+- bsps/powerpc/mpc55xxevb/start/idle-thread.c
+- bsps/powerpc/mpc55xxevb/start/irq.c
+- bsps/powerpc/mpc55xxevb/start/restart.c
+- bsps/powerpc/mpc55xxevb/start/sd-card-init.c
+- bsps/powerpc/mpc55xxevb/start/siu.c
+- bsps/powerpc/mpc55xxevb/start/start-cache.S
+- bsps/powerpc/mpc55xxevb/start/start-clock.c
+- bsps/powerpc/mpc55xxevb/start/start-config-clock.c
+- bsps/powerpc/mpc55xxevb/start/start-config-ebi-cs-cal.c
+- bsps/powerpc/mpc55xxevb/start/start-config-ebi-cs.c
+- bsps/powerpc/mpc55xxevb/start/start-config-ebi.c
+- bsps/powerpc/mpc55xxevb/start/start-config-mmu-early.c
+- bsps/powerpc/mpc55xxevb/start/start-config-mmu.c
+- bsps/powerpc/mpc55xxevb/start/start-config-siu-pcr.c
+- bsps/powerpc/mpc55xxevb/start/start-early.c
+- bsps/powerpc/mpc55xxevb/start/start-flash.S
+- bsps/powerpc/mpc55xxevb/start/start-prologue.c
+- bsps/powerpc/mpc55xxevb/start/start-watchdog.c
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/exceptions/ppc-exc-handler-table.c
+- bsps/powerpc/shared/start/bsp-start-zero.S
+- bsps/powerpc/shared/start/memcpy.c
+- bsps/powerpc/shared/start/tictac.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/stackalloc.c
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/objnet.yml b/spec/build/bsps/powerpc/mpc55xxevb/objnet.yml
new file mode 100644
index 0000000000..e11e7e1de6
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/objnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/mpc55xxevb/net/if_smc.c
+- bsps/powerpc/mpc55xxevb/net/smsc9218i.c
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/ofmpllptmfd.yml b/spec/build/bsps/powerpc/mpc55xxevb/ofmpllptmfd.yml
new file mode 100644
index 0000000000..8918318f51
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/ofmpllptmfd.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 99
+ variants:
+ - powerpc/gwlcfm
+- value: 111
+ variants:
+ - powerpc/mpc5668g.*
+- value: 66
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ Must be defined to be the PLL multiplication factor for clock generation
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_FMPLL_MFD
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optbootflg.yml b/spec/build/bsps/powerpc/mpc55xxevb/optbootflg.yml
new file mode 100644
index 0000000000..a0ae88fc13
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optbootflg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ if defined, builds in bootflags above the RCHW for setup in a debugger to avoid startup MMU setup
+enabled-by: true
+links: []
+name: MPC55XX_BOOTFLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optcachewritethru.yml b/spec/build/bsps/powerpc/mpc55xxevb/optcachewritethru.yml
new file mode 100644
index 0000000000..0311e556f4
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optcachewritethru.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ use write-through for data cache
+enabled-by: true
+links: []
+name: BSP_DATA_CACHE_USE_WRITE_THROUGH
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optchipfam.yml b/spec/build/bsps/powerpc/mpc55xxevb/optchipfam.yml
new file mode 100644
index 0000000000..38a1e3aaf4
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optchipfam.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: (MPC55XX_CHIP_TYPE / 10)
+default-by-variant: []
+description: |
+ specifies the chip family in use (e.g. 555 for MPC5554)
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_CHIP_FAMILY
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optchiptype.yml b/spec/build/bsps/powerpc/mpc55xxevb/optchiptype.yml
new file mode 100644
index 0000000000..ae9ed015e7
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optchiptype.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 5554
+default-by-variant:
+- value: 5516
+ variants:
+ - powerpc/gwlcfm
+- value: 5566
+ variants:
+ - powerpc/mpc5566.*
+- value: 5643
+ variants:
+ - powerpc/mpc5643l.*
+- value: 5668
+ variants:
+ - powerpc/mpc5668g.*
+- value: 5674
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ specifies the chip type in use (e.g. 5554 for MPC5554)
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_CHIP_TYPE
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optclkemios.yml b/spec/build/bsps/powerpc/mpc55xxevb/optclkemios.yml
new file mode 100644
index 0000000000..e60b33217e
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optclkemios.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 23
+default-by-variant:
+- value: null
+ variants:
+ - powerpc/mpc5643l.*
+- value: null
+ variants:
+ - powerpc/mpc5668g.*
+- value: 31
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ selects the eMIOS channel for the RTEMS system tick (the default is the last channel)
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_CLOCK_EMIOS_CHANNEL
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optclkpit.yml b/spec/build/bsps/powerpc/mpc55xxevb/optclkpit.yml
new file mode 100644
index 0000000000..3edac8e3f0
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optclkpit.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant:
+- value: 3
+ variants:
+ - powerpc/mpc5643l.*
+- value: 8
+ variants:
+ - powerpc/mpc5668g.*
+description: |
+ selects the PIT channel for the RTEMS system tick (the default is the last channel)
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_CLOCK_PIT_CHANNEL
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optconbaud.yml b/spec/build/bsps/powerpc/mpc55xxevb/optconbaud.yml
new file mode 100644
index 0000000000..bd26c32da6
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optconbaud.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 115200
+default-by-variant: []
+description: |
+ default console baud
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_DEFAULT_BAUD_RATE
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optconminor.yml b/spec/build/bsps/powerpc/mpc55xxevb/optconminor.yml
new file mode 100644
index 0000000000..99b03fbde1
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optconminor.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ determines which serial device will be registered as /dev/console
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_CONSOLE_MINOR
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optearlystksz.yml b/spec/build/bsps/powerpc/mpc55xxevb/optearlystksz.yml
new file mode 100644
index 0000000000..7c0c8a13a5
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optearlystksz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1024
+default-by-variant: []
+description: |
+ size of the early initialization stack in bytes
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_EARLY_STACK_SIZE
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/opteepromname.yml b/spec/build/bsps/powerpc/mpc55xxevb/opteepromname.yml
new file mode 100644
index 0000000000..0ad69134d4
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/opteepromname.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: eeprom
+ variants:
+ - powerpc/gwlcfm
+description: |
+ EEPROM name for LibI2C
+enabled-by: true
+format: '{}'
+links: []
+name: RTEMS_BSP_I2C_EEPROM_DEVICE_NAME
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/opteeprompath.yml b/spec/build/bsps/powerpc/mpc55xxevb/opteeprompath.yml
new file mode 100644
index 0000000000..1ee19aff5e
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/opteeprompath.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: /dev/i2c1.eeprom
+ variants:
+ - powerpc/gwlcfm
+description: |
+ EEPROM device file path
+enabled-by: true
+format: '{}'
+links: []
+name: RTEMS_BSP_I2C_EEPROM_DEVICE_PATH
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optemiosprescal.yml b/spec/build/bsps/powerpc/mpc55xxevb/optemiosprescal.yml
new file mode 100644
index 0000000000..78bc00dff8
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optemiosprescal.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 66
+ variants:
+ - powerpc/gwlcfm
+- value: null
+ variants:
+ - powerpc/mpc5643l.*
+description: |
+ Must be defined to set the EMIOS prescaler
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_EMIOS_PRESCALER
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optenstartpro.yml b/spec/build/bsps/powerpc/mpc55xxevb/optenstartpro.yml
new file mode 100644
index 0000000000..5fd2f8715b
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optenstartpro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ if defined, enable start prologue
+enabled-by: true
+links: []
+name: MPC55XX_ENABLE_START_PROLOGUE
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optesciirq.yml b/spec/build/bsps/powerpc/mpc55xxevb/optesciirq.yml
new file mode 100644
index 0000000000..9724bdfddf
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optesciirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ define to zero or one to disable or enable interrupts for the eSCI devices
+enabled-by: true
+links: []
+name: MPC55XX_ESCI_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optexcbooke.yml b/spec/build/bsps/powerpc/mpc55xxevb/optexcbooke.yml
new file mode 100644
index 0000000000..e27cb4ab44
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optexcbooke.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ only support Book E exception types
+enabled-by: true
+links: []
+name: PPC_EXC_CONFIG_BOOKE_ONLY
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optexcfixdhdlr.yml b/spec/build/bsps/powerpc/mpc55xxevb/optexcfixdhdlr.yml
new file mode 100644
index 0000000000..b636d8022b
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optexcfixdhdlr.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ use fixed high-level exception handler
+enabled-by: true
+links: []
+name: PPC_EXC_CONFIG_USE_FIXED_HANDLER
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optfmpllesyncr1.yml b/spec/build/bsps/powerpc/mpc55xxevb/optfmpllesyncr1.yml
new file mode 100644
index 0000000000..12e8d37ab5
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optfmpllesyncr1.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 7
+default-by-variant: []
+description: |
+ the FMPLL ESYNCR1[CLKCFG] value
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_FMPLL_ESYNCR1_CLKCFG
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optfmpllprediv.yml b/spec/build/bsps/powerpc/mpc55xxevb/optfmpllprediv.yml
new file mode 100644
index 0000000000..fe81e18515
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optfmpllprediv.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 10
+ variants:
+ - powerpc/gwlcfm
+- value: 6
+ variants:
+ - powerpc/mpc5668g.*
+- value: 5
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ Must be defined to be the PLL predivider factor for clock generation
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_FMPLL_PREDIV
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optgwlcfm.yml b/spec/build/bsps/powerpc/mpc55xxevb/optgwlcfm.yml
new file mode 100644
index 0000000000..a525ccf854
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optgwlcfm.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/gwlcfm
+description: |
+ if defined, use custom settings for GWLCFM board
+enabled-by: true
+links: []
+name: MPC55XX_BOARD_GWLCFM
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optirqtblsz.yml b/spec/build/bsps/powerpc/mpc55xxevb/optirqtblsz.yml
new file mode 100644
index 0000000000..70b5fd0f25
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optirqtblsz.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 63
+default-by-variant:
+- value: 127
+ variants:
+ - powerpc/mpc5643l.*
+- value: 127
+ variants:
+ - powerpc/mpc5566.*
+- value: 255
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ defines the maximum number of interrupt handlers
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_INTERRUPT_HANDLER_TABLE_SIZE
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optlowinit.yml b/spec/build/bsps/powerpc/mpc55xxevb/optlowinit.yml
new file mode 100644
index 0000000000..615b68cdf9
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optlowinit.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - powerpc/mpc5674f_.*app
+description: |
+ if defined, do low level initialization
+enabled-by: true
+links: []
+name: MPC55XX_NEEDS_LOW_LEVEL_INIT
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optmpc5566evb.yml b/spec/build/bsps/powerpc/mpc55xxevb/optmpc5566evb.yml
new file mode 100644
index 0000000000..46d39d959d
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optmpc5566evb.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mpc5566evb.*
+description: |
+ if defined, use custom settings for MPC5566EVB board
+enabled-by: true
+links: []
+name: MPC55XX_BOARD_MPC5566EVB
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optmpc5674fevb.yml b/spec/build/bsps/powerpc/mpc55xxevb/optmpc5674fevb.yml
new file mode 100644
index 0000000000..05679fadb3
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optmpc5674fevb.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mpc5674fevb.*
+description: |
+ if defined, use custom settings for MPC5674FEVB board
+enabled-by: true
+links: []
+name: MPC55XX_BOARD_MPC5674FEVB
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optnullprot.yml b/spec/build/bsps/powerpc/mpc55xxevb/optnullprot.yml
new file mode 100644
index 0000000000..27747835fc
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optnullprot.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/mpc5566.*
+- value: true
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ enable NULL pointer protection
+enabled-by: true
+links: []
+name: MPC55XX_NULL_POINTER_PROTECTION
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optphycorempc5554.yml b/spec/build/bsps/powerpc/mpc55xxevb/optphycorempc5554.yml
new file mode 100644
index 0000000000..0452770f84
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optphycorempc5554.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/phycore_mpc5554
+description: |
+ if defined, use custom settings for phyCORE MPC5554 board
+enabled-by: true
+links: []
+name: MPC55XX_BOARD_PHYCORE_MPC5554
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optrefclk.yml b/spec/build/bsps/powerpc/mpc55xxevb/optrefclk.yml
new file mode 100644
index 0000000000..6748954449
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optrefclk.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 8000000
+default-by-variant:
+- value: 40000000
+ variants:
+ - powerpc/gwlcfm
+- value: 40000000
+ variants:
+ - powerpc/mpc5643l_evb.*
+- value: 25000000
+ variants:
+ - powerpc/mpc5668g.*
+- value: 40000000
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ None
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_REFERENCE_CLOCK
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsmc91111.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsmc91111.yml
new file mode 100644
index 0000000000..04a224edd0
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsmc91111.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/phycore_mpc5554
+description: |
+ If defined the board has the SMC91111 networking chip.
+enabled-by: true
+links: []
+name: HAS_SMC91111
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsmc9111enaddr.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9111enaddr.yml
new file mode 100644
index 0000000000..3bb67b7621
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9111enaddr.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/phycore_mpc5554
+description: |
+ If defined the SMC91111 chip has the ethernet address loaded at reset.
+enabled-by: true
+links: []
+name: SMC91111_ENADDR_IS_SETUP
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ibige.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ibige.yml
new file mode 100644
index 0000000000..bf47d9429c
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ibige.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable big endian support for SMSC9218I network interface
+enabled-by: true
+links: []
+name: SMSC9218I_BIG_ENDIAN_SUPPORT
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218iled.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218iled.yml
new file mode 100644
index 0000000000..a3de39efac
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218iled.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enable LED outputs for SMSC9218I network interface
+enabled-by: true
+links: []
+name: SMSC9218I_ENABLE_LED_OUTPUTS
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ipinirq.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ipinirq.yml
new file mode 100644
index 0000000000..1a339c7e72
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ipinirq.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant:
+- value: 193
+ variants:
+ - powerpc/mpc5566.*
+description: |
+ IRQ pin for SMSC9218I network interface
+enabled-by: true
+format: '{}'
+links: []
+name: SMSC9218I_IRQ_PIN
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ipinrst.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ipinrst.yml
new file mode 100644
index 0000000000..6f8585b6e2
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218ipinrst.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant:
+- value: 186
+ variants:
+ - powerpc/mpc5566.*
+description: |
+ reset pin for SMSC9218I network interface
+enabled-by: true
+format: '{}'
+links: []
+name: SMSC9218I_RESET_PIN
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218irxchn.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218irxchn.yml
new file mode 100644
index 0000000000..0753f5b85b
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218irxchn.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 49
+default-by-variant: []
+description: |
+ receive eDMA channel for SMSC9218I network interface
+enabled-by: true
+format: '{}'
+links: []
+name: SMSC9218I_EDMA_RX_CHANNEL
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218itxchn.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218itxchn.yml
new file mode 100644
index 0000000000..359fb5302c
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsmc9218itxchn.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 48
+default-by-variant: []
+description: |
+ transmit eDMA channel for SMSC9218I network interface
+enabled-by: true
+format: '{}'
+links: []
+name: SMSC9218I_EDMA_TX_CHANNEL
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsysclk.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsysclk.yml
new file mode 100644
index 0000000000..8edffed6e9
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsysclk.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 66000000
+ variants:
+ - powerpc/gwlcfm
+- value: 116000000
+ variants:
+ - powerpc/mpc5668g.*
+- value: 264000000
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ The system clock frequency in Hz.
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_SYSTEM_CLOCK
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/optsysclkdiv.yml b/spec/build/bsps/powerpc/mpc55xxevb/optsysclkdiv.yml
new file mode 100644
index 0000000000..739f139e49
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/optsysclkdiv.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant:
+- value: 2
+ variants:
+ - powerpc/mpc5674f.*
+description: |
+ system clock divider
+enabled-by: true
+format: '{}'
+links: []
+name: MPC55XX_SYSTEM_CLOCK_DIVIDER
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/start.yml b/spec/build/bsps/powerpc/mpc55xxevb/start.yml
new file mode 100644
index 0000000000..56f52a20b6
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/mpc55xxevb/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/tstgwlcfm.yml b/spec/build/bsps/powerpc/mpc55xxevb/tstgwlcfm.yml
new file mode 100644
index 0000000000..69acc1031a
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/tstgwlcfm.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsdosfsname01: exclude
+ linpack: exclude
+ record02: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnojffs2
+- role: build-dependency
+ uid: ../../tstnolibdl
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/tstmpc5643ldpu.yml b/spec/build/bsps/powerpc/mpc55xxevb/tstmpc5643ldpu.yml
new file mode 100644
index 0000000000..629b41c843
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/tstmpc5643ldpu.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ pppd: exclude
+ psxaio02: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/powerpc/mpc55xxevb/tstmpc5643levb.yml b/spec/build/bsps/powerpc/mpc55xxevb/tstmpc5643levb.yml
new file mode 100644
index 0000000000..629b41c843
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc55xxevb/tstmpc5643levb.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ pppd: exclude
+ psxaio02: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstsmallmem
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/abi.yml b/spec/build/bsps/powerpc/mpc8260ads/abi.yml
new file mode 100644
index 0000000000..4ef856022c
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/abi.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dmpc8260
+- -mcpu=603e
+- -mstrict-align
+- -meabi
+- -msdata=sysv
+- -fno-common
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/bspmpc8260ads.yml b/spec/build/bsps/powerpc/mpc8260ads/bspmpc8260ads.yml
new file mode 100644
index 0000000000..3a16b096ec
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/bspmpc8260ads.yml
@@ -0,0 +1,78 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mpc8260ads
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mpc8260ads
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/mpc8260ads/include/bsp.h
+ - bsps/powerpc/mpc8260ads/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/mpc8260ads/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/mpc8260ads/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optconminor
+- role: build-dependency
+ uid: optdisphandstat
+- role: build-dependency
+ uid: optprintkminor
+- role: build-dependency
+ uid: optuartsiomode
+- role: build-dependency
+ uid: optuartsterm
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/mpc8260ads/console/console.c
+- bsps/powerpc/mpc8260ads/dev/console-generic.c
+- bsps/powerpc/mpc8260ads/irq/irq.c
+- bsps/powerpc/mpc8260ads/start/brg.c
+- bsps/powerpc/mpc8260ads/start/bspstart.c
+- bsps/powerpc/mpc8260ads/start/cp.c
+- bsps/powerpc/mpc8260ads/start/cpuinit.c
+- bsps/powerpc/mpc8260ads/start/dpram.c
+- bsps/powerpc/mpc8260ads/start/mmu.c
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock.c
+- bsps/powerpc/shared/start/bspidle.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/objnet.yml b/spec/build/bsps/powerpc/mpc8260ads/objnet.yml
new file mode 100644
index 0000000000..4fbe8604b5
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/objnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/mpc8260ads/net/if_hdlcsubr.c
+- bsps/powerpc/mpc8260ads/net/network.c
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/optconminor.yml b/spec/build/bsps/powerpc/mpc8260ads/optconminor.yml
new file mode 100644
index 0000000000..50755157e9
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/optconminor.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: SCC2_MINOR
+default-by-variant: []
+description: |
+ (BSP--console driver) Must be defined to be one of SMC1_MINOR, SMC2_MINOR, SCC2_MINOR, SCC3_MINOR, or SCC4_MINOR. Determines which device will be registered as /dev/console.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_MINOR
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/optdisphandstat.yml b/spec/build/bsps/powerpc/mpc8260ads/optdisphandstat.yml
new file mode 100644
index 0000000000..b7bcab4e5c
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/optdisphandstat.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ used by irq/irq.c
+enabled-by: true
+links: []
+name: DISPATCH_HANDLER_STAT
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/optprintkminor.yml b/spec/build/bsps/powerpc/mpc8260ads/optprintkminor.yml
new file mode 100644
index 0000000000..bb031dfa83
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/optprintkminor.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: SMC2_MINOR
+default-by-variant: []
+description: |
+ (BSP--console driver) Must be defined to be one of SMC1_MINOR, SMC2_MINOR, SCC2_MINOR, SCC3_MINOR, or SCC4_MINOR. Determines which device is used for output by printk(). If the port that printk() uses is also used for other I/O (e.g. if PRINTK_MINOR == \$CONSOLE_MINOR), then both ports should use the same type of I/O, otherwise the drivers will likely conflict with each other.
+enabled-by: true
+format: '{}'
+links: []
+name: PRINTK_MINOR
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/optuartsiomode.yml b/spec/build/bsps/powerpc/mpc8260ads/optuartsiomode.yml
new file mode 100644
index 0000000000..eb0d9d8bda
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/optuartsiomode.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ (BSP--console driver) Define to 0 or 1 if you want polled I/O performed by RTEMS. Define to 1 if you want interrupt-driven performed by RTEMS. Define to 2 if you want polled I/O performed by EPPCBug. There is no provision to have a mix of interrupt-driven and polled I/O ports, except that the printk port may use a different mode from the other ports. If this is done, do not open the printk port from an RTEMS application. With EPPCBug 1.1, if mode 2 is selected, CONSOLE_MINOR must be set to SMC1_MINOR. This is a deficiency of the firmware: it does not perform serial I/O on any port other than its default debug port, which must be SMC1.
+enabled-by: true
+links: []
+name: UARTS_IO_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/optuartsterm.yml b/spec/build/bsps/powerpc/mpc8260ads/optuartsterm.yml
new file mode 100644
index 0000000000..1aa2122c24
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/optuartsterm.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Define to 1 if you want termios support for every port. Termios support is independent of the choice of UART I/O mode.
+enabled-by: true
+links: []
+name: UARTS_USE_TERMIOS
+type: build
diff --git a/spec/build/bsps/powerpc/mpc8260ads/start.yml b/spec/build/bsps/powerpc/mpc8260ads/start.yml
new file mode 100644
index 0000000000..f44a4b52b4
--- /dev/null
+++ b/spec/build/bsps/powerpc/mpc8260ads/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/mpc8260ads/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/mvme3100/abi.yml b/spec/build/bsps/powerpc/mvme3100/abi.yml
new file mode 100644
index 0000000000..63ced0c662
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme3100/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -D__ppc_generic
+- -mcpu=powerpc
+- -msoft-float
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/mvme3100/bspmvme3100.yml b/spec/build/bsps/powerpc/mvme3100/bspmvme3100.yml
new file mode 100644
index 0000000000..f95367ceea
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme3100/bspmvme3100.yml
@@ -0,0 +1,90 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mvme3100
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mvme3100
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/mvme3100/include/bsp.h
+ - bsps/powerpc/mvme3100/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/mvme3100/include/bsp/VMEConfig.h
+ - bsps/powerpc/mvme3100/include/bsp/if_tsec_pub.h
+ - bsps/powerpc/mvme3100/include/bsp/irq.h
+ - bsps/powerpc/mvme3100/include/bsp/mpc8540_i2c_busdrv.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/mvme3100/start/linkcmds
+ - bsps/powerpc/shared/start/linkcmds.share
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optsbrk
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../objvme
+- role: build-dependency
+ uid: ../motld
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/mvme3100/flash/flashcfg.c
+- bsps/powerpc/mvme3100/i2c/i2c_init.c
+- bsps/powerpc/mvme3100/i2c/mpc8540_i2c.c
+- bsps/powerpc/mvme3100/irq/irq_init.c
+- bsps/powerpc/mvme3100/pci/detect_host_bridge.c
+- bsps/powerpc/mvme3100/rtc/todcfg.c
+- bsps/powerpc/mvme3100/start/bspstart.c
+- bsps/powerpc/mvme3100/start/misc.c
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock-ppc-dec.c
+- bsps/powerpc/shared/clock/p_clock.c
+- bsps/powerpc/shared/console/console.c
+- bsps/powerpc/shared/console/uart.c
+- bsps/powerpc/shared/flash/flash.c
+- bsps/powerpc/shared/flash/spansionFlash.c
+- bsps/powerpc/shared/irq/openpic.c
+- bsps/powerpc/shared/irq/openpic_i8259_irq.c
+- bsps/powerpc/shared/irq/ppc-irq-legacy.c
+- bsps/powerpc/shared/mmu/e500-mmu.c
+- bsps/powerpc/shared/pci/generic_clear_hberrs.c
+- bsps/powerpc/shared/pci/pci.c
+- bsps/powerpc/shared/pci/pcifinddevice.c
+- bsps/powerpc/shared/start/bspgetworkarea.c
+- bsps/powerpc/shared/start/sbrk.c
+- bsps/powerpc/shared/start/vpd.c
+- bsps/powerpc/shared/start/zerobss.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspreset-empty.c
+type: build
diff --git a/spec/build/bsps/powerpc/mvme3100/objnet.yml b/spec/build/bsps/powerpc/mvme3100/objnet.yml
new file mode 100644
index 0000000000..fd6e810168
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme3100/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/mvme3100/net/tsec.c
+type: build
diff --git a/spec/build/bsps/powerpc/mvme3100/optsbrk.yml b/spec/build/bsps/powerpc/mvme3100/optsbrk.yml
new file mode 100644
index 0000000000..05a1acd75f
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme3100/optsbrk.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined then the BSP may reduce the available memory size initially. This can be useful for debugging (reduce the core size) or dynamic loading (std gcc text offsets/jumps are < +/-32M). Note that the policy can still be defined by the application (see sbrk.c, BSP_sbrk_policy). By undefining CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK this feature is removed and a little memory is saved.
+enabled-by: true
+links: []
+name: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
+type: build
diff --git a/spec/build/bsps/powerpc/mvme3100/start.yml b/spec/build/bsps/powerpc/mvme3100/start.yml
new file mode 100644
index 0000000000..e5980acc94
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme3100/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/mvme3100/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/mvme5500/abi.yml b/spec/build/bsps/powerpc/mvme5500/abi.yml
new file mode 100644
index 0000000000..5e31841a7c
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme5500/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dmpc7455
+- -mcpu=7450
+- -mtune=7450
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/mvme5500/bspmvme5500.yml b/spec/build/bsps/powerpc/mvme5500/bspmvme5500.yml
new file mode 100644
index 0000000000..5c6159d655
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme5500/bspmvme5500.yml
@@ -0,0 +1,99 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: mvme5500
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: mvme5500
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/mvme5500/include/bsp.h
+ - bsps/powerpc/mvme5500/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/mvme5500/include/bsp/GT64260TWSI.h
+ - bsps/powerpc/mvme5500/include/bsp/GT64260eth.h
+ - bsps/powerpc/mvme5500/include/bsp/GT64260ethreg.h
+ - bsps/powerpc/mvme5500/include/bsp/VMEConfig.h
+ - bsps/powerpc/mvme5500/include/bsp/VPD.h
+ - bsps/powerpc/mvme5500/include/bsp/bspException.h
+ - bsps/powerpc/mvme5500/include/bsp/bspMvme5500.h
+ - bsps/powerpc/mvme5500/include/bsp/gtpcireg.h
+ - bsps/powerpc/mvme5500/include/bsp/gtreg.h
+ - bsps/powerpc/mvme5500/include/bsp/if_wmreg.h
+ - bsps/powerpc/mvme5500/include/bsp/irq.h
+ - bsps/powerpc/mvme5500/include/bsp/pcireg.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/mvme5500/start/linkcmds
+ - bsps/powerpc/shared/start/linkcmds.share
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optsbrk
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: ../objvme
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/mvme5500/GT64260/GT64260TWSI.c
+- bsps/powerpc/mvme5500/GT64260/MVME5500I2C.c
+- bsps/powerpc/mvme5500/irq/BSP_irq.c
+- bsps/powerpc/mvme5500/irq/irq_init.c
+- bsps/powerpc/mvme5500/pci/detect_host_bridge.c
+- bsps/powerpc/mvme5500/pci/pci.c
+- bsps/powerpc/mvme5500/pci/pci_interface.c
+- bsps/powerpc/mvme5500/rtc/todcfg.c
+- bsps/powerpc/mvme5500/start/bspclean.c
+- bsps/powerpc/mvme5500/start/bspreset.c
+- bsps/powerpc/mvme5500/start/bspstart.c
+- bsps/powerpc/mvme5500/start/exceptionhandler.c
+- bsps/powerpc/mvme5500/start/pgtbl_activate.c
+- bsps/powerpc/shared/altivec/vec_sup.c
+- bsps/powerpc/shared/altivec/vec_sup_asm.S
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock-ppc-dec.c
+- bsps/powerpc/shared/clock/p_clock.c
+- bsps/powerpc/shared/console/console.c
+- bsps/powerpc/shared/console/uart.c
+- bsps/powerpc/shared/irq/ppc-irq-legacy.c
+- bsps/powerpc/shared/mmu/bat.c
+- bsps/powerpc/shared/mmu/mmuAsm.S
+- bsps/powerpc/shared/mmu/pte121.c
+- bsps/powerpc/shared/start/bspgetworkarea.c
+- bsps/powerpc/shared/start/pgtbl_setup.c
+- bsps/powerpc/shared/start/probeMemEnd.c
+- bsps/powerpc/shared/start/sbrk.c
+- bsps/powerpc/shared/start/vectors_entry.S
+- bsps/powerpc/shared/start/zerobss.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/pci/pci_find_device.c
+- bsps/shared/dev/rtc/rtc-support.c
+type: build
diff --git a/spec/build/bsps/powerpc/mvme5500/objnet.yml b/spec/build/bsps/powerpc/mvme5500/objnet.yml
new file mode 100644
index 0000000000..77349d582b
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme5500/objnet.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/mvme5500/net/if_100MHz/GT64260eth.c
+- bsps/powerpc/mvme5500/net/if_1GHz/if_wm.c
+- bsps/powerpc/mvme5500/net/if_1GHz/pci_map.c
+type: build
diff --git a/spec/build/bsps/powerpc/mvme5500/optsbrk.yml b/spec/build/bsps/powerpc/mvme5500/optsbrk.yml
new file mode 100644
index 0000000000..05a1acd75f
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme5500/optsbrk.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined then the BSP may reduce the available memory size initially. This can be useful for debugging (reduce the core size) or dynamic loading (std gcc text offsets/jumps are < +/-32M). Note that the policy can still be defined by the application (see sbrk.c, BSP_sbrk_policy). By undefining CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK this feature is removed and a little memory is saved.
+enabled-by: true
+links: []
+name: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
+type: build
diff --git a/spec/build/bsps/powerpc/mvme5500/start.yml b/spec/build/bsps/powerpc/mvme5500/start.yml
new file mode 100644
index 0000000000..07c201ed34
--- /dev/null
+++ b/spec/build/bsps/powerpc/mvme5500/start.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: script
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ preload_o = "bsps/powerpc/shared/start/preload.o"
+ self.asm(bld, bic, "bsps/powerpc/shared/start/preload.S", preload_o)
+ start_o = "bsps/powerpc/mvme5500/start/start.o"
+ self.asm( bld, bic, "bsps/powerpc/mvme5500/start/start.S", start_o)
+ target = "mvme5500start.o"
+ bld(
+ before=["cstlib"],
+ rule="${LD} -o ${TGT} -r ${SRC}",
+ source=[preload_o, start_o],
+ target=target,
+ )
+ bld.install_files("${BSP_LIBDIR}", target)
+do-configure: null
+enabled-by: true
+includes: []
+links: []
+prepare-build: null
+prepare-configure: null
+type: build
diff --git a/spec/build/bsps/powerpc/obj.yml b/spec/build/bsps/powerpc/obj.yml
new file mode 100644
index 0000000000..d355509ad9
--- /dev/null
+++ b/spec/build/bsps/powerpc/obj.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+links: []
+source:
+- bsps/powerpc/shared/cpu_asm.S
+- bsps/powerpc/shared/cpu.c
+- bsps/powerpc/shared/cpuIdent.c
+- bsps/powerpc/shared/ppc-print-stack.c
+type: build
diff --git a/spec/build/bsps/powerpc/objexc.yml b/spec/build/bsps/powerpc/objexc.yml
new file mode 100644
index 0000000000..8a8b714857
--- /dev/null
+++ b/spec/build/bsps/powerpc/objexc.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+links: []
+source:
+- bsps/powerpc/shared/exceptions/ppc-code-copy.c
+- bsps/powerpc/shared/exceptions/ppc_exc_address.c
+- bsps/powerpc/shared/exceptions/ppc_exc_alignment.c
+- bsps/powerpc/shared/exceptions/ppc_exc_async_normal.S
+- bsps/powerpc/shared/exceptions/ppc_exc_categories.c
+- bsps/powerpc/shared/exceptions/ppc_exc_fatal.S
+- bsps/powerpc/shared/exceptions/ppc_exc_global_handler.c
+- bsps/powerpc/shared/exceptions/ppc_exc_hdl.c
+- bsps/powerpc/shared/exceptions/ppc_exc_initialize.c
+- bsps/powerpc/shared/exceptions/ppc_exc_naked.S
+- bsps/powerpc/shared/exceptions/ppc_exc_print.c
+- bsps/powerpc/shared/exceptions/ppc_exc_prologue.c
+- bsps/powerpc/shared/exceptions/ppc_exc.S
+type: build
diff --git a/spec/build/bsps/powerpc/objvme.yml b/spec/build/bsps/powerpc/objvme.yml
new file mode 100644
index 0000000000..5247228009
--- /dev/null
+++ b/spec/build/bsps/powerpc/objvme.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+links: []
+source:
+- bsps/powerpc/shared/vme/bspVmeDmaList.c
+- bsps/powerpc/shared/vme/vmeconfig.c
+- bsps/powerpc/shared/vme/vmeTsi148.c
+- bsps/powerpc/shared/vme/vme_universe.c
+- bsps/powerpc/shared/vme/vmeUniverse.c
+type: build
diff --git a/spec/build/bsps/powerpc/psim/abi.yml b/spec/build/bsps/powerpc/psim/abi.yml
new file mode 100644
index 0000000000..8155213038
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dppc603e
+- -meabi
+- -mcpu=603e
+- -msdata=sysv
+- -fno-common
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/psim/bsppsim.yml b/spec/build/bsps/powerpc/psim/bsppsim.yml
new file mode 100644
index 0000000000..c281175c90
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/bsppsim.yml
@@ -0,0 +1,85 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: psim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: psim
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/psim/include/bsp.h
+ - bsps/powerpc/psim/include/psim.h
+ - bsps/powerpc/psim/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/psim/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/psim/start/linkcmds
+ - bsps/powerpc/shared/start/linkcmds.base
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objmpci
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optclkfastidle
+- role: build-dependency
+ uid: optsbrk
+- role: build-dependency
+ uid: optsprg
+- role: build-dependency
+ uid: optvecbase
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/psim/console/console-io.c
+- bsps/powerpc/psim/console/consupp.S
+- bsps/powerpc/psim/irq/irq_init.c
+- bsps/powerpc/psim/start/align_h.S
+- bsps/powerpc/psim/start/bspstart.c
+- bsps/powerpc/shared/altivec/vec_sup.c
+- bsps/powerpc/shared/altivec/vec_sup_asm.S
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock-ppc-dec.c
+- bsps/powerpc/shared/clock/p_clock.c
+- bsps/powerpc/shared/irq/openpic.c
+- bsps/powerpc/shared/irq/openpic_i8259_irq.c
+- bsps/powerpc/shared/irq/ppc-irq-legacy.c
+- bsps/powerpc/shared/mmu/bat.c
+- bsps/powerpc/shared/mmu/mmuAsm.S
+- bsps/powerpc/shared/mmu/pte121.c
+- bsps/powerpc/shared/start/sbrk.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+type: build
diff --git a/spec/build/bsps/powerpc/psim/objmpci.yml b/spec/build/bsps/powerpc/psim/objmpci.yml
new file mode 100644
index 0000000000..01e44452f5
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/objmpci.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+install: []
+links: []
+source:
+- bsps/powerpc/psim/mpci/addrconv.c
+- bsps/powerpc/psim/mpci/getcfg.c
+- bsps/powerpc/psim/mpci/lock.c
+- bsps/powerpc/psim/mpci/mpisr.c
+type: build
diff --git a/spec/build/bsps/powerpc/psim/objnet.yml b/spec/build/bsps/powerpc/psim/objnet.yml
new file mode 100644
index 0000000000..f54646395f
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/psim/net/if_sim.c
+type: build
diff --git a/spec/build/bsps/powerpc/psim/optclkfastidle.yml b/spec/build/bsps/powerpc/psim/optclkfastidle.yml
new file mode 100644
index 0000000000..df86867fa7
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/optclkfastidle.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/psim
+description: |
+ This sets a mode where the time runs as fast as possible when a clock ISR occurs while the IDLE thread is executing. This can significantly reduce simulation times.
+enabled-by: true
+links: []
+name: CLOCK_DRIVER_USE_FAST_IDLE
+type: build
diff --git a/spec/build/bsps/powerpc/psim/optsbrk.yml b/spec/build/bsps/powerpc/psim/optsbrk.yml
new file mode 100644
index 0000000000..05a1acd75f
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/optsbrk.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined then the BSP may reduce the available memory size initially. This can be useful for debugging (reduce the core size) or dynamic loading (std gcc text offsets/jumps are < +/-32M). Note that the policy can still be defined by the application (see sbrk.c, BSP_sbrk_policy). By undefining CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK this feature is removed and a little memory is saved.
+enabled-by: true
+links: []
+name: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
+type: build
diff --git a/spec/build/bsps/powerpc/psim/optsprg.yml b/spec/build/bsps/powerpc/psim/optsprg.yml
new file mode 100644
index 0000000000..89f5b47135
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/optsprg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, then the PowerPC specific code in RTEMS will use some of the special purpose registers to slightly optimize interrupt response time. The use of these registers can conflict with other tools like debuggers.
+enabled-by: true
+links: []
+name: PPC_USE_SPRG
+type: build
diff --git a/spec/build/bsps/powerpc/psim/optvecbase.yml b/spec/build/bsps/powerpc/psim/optvecbase.yml
new file mode 100644
index 0000000000..6de89c1aca
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/optvecbase.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 4293918976
+default-by-variant: []
+description: |
+ This defines the base address of the exception table. NOTE: Vectors are actually at 0xFFF00000 but file starts at offset.
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: PPC_VECTOR_FILE_BASE
+type: build
diff --git a/spec/build/bsps/powerpc/psim/start.yml b/spec/build/bsps/powerpc/psim/start.yml
new file mode 100644
index 0000000000..d4d2efd571
--- /dev/null
+++ b/spec/build/bsps/powerpc/psim/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/psim/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/qemuppc/abi.yml b/spec/build/bsps/powerpc/qemuppc/abi.yml
new file mode 100644
index 0000000000..df82553bcb
--- /dev/null
+++ b/spec/build/bsps/powerpc/qemuppc/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dppc603e
+- -mcpu=603e
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/qemuppc/bspqemuppc.yml b/spec/build/bsps/powerpc/qemuppc/bspqemuppc.yml
new file mode 100644
index 0000000000..cb3fc46e7d
--- /dev/null
+++ b/spec/build/bsps/powerpc/qemuppc/bspqemuppc.yml
@@ -0,0 +1,65 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: qemuppc
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: qemuppc
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/qemuppc/include/bsp.h
+ - bsps/powerpc/qemuppc/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/qemuppc/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/qemuppc/start/linkcmds
+ - bsps/powerpc/shared/start/linkcmds.base
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/qemuppc/console/console-io.c
+- bsps/powerpc/qemuppc/irq/irq_init.c
+- bsps/powerpc/qemuppc/start/bspstart.c
+- bsps/powerpc/qemuppc/start/cmain.c
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock.c
+- bsps/powerpc/shared/mmu/bat.c
+- bsps/powerpc/shared/mmu/mmuAsm.S
+- bsps/powerpc/shared/mmu/pte121.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/qemuppc/start.yml b/spec/build/bsps/powerpc/qemuppc/start.yml
new file mode 100644
index 0000000000..2911f795f9
--- /dev/null
+++ b/spec/build/bsps/powerpc/qemuppc/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/qemuppc/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/abi.yml b/spec/build/bsps/powerpc/qoriq/abi.yml
new file mode 100644
index 0000000000..15c08475c7
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/abi.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -D__ppc_generic
+- -mcpu=8540
+- -msoft-float
+- -meabi
+- -msdata=sysv
+- -fno-common
+- -mstrict-align
+default-by-variant:
+- value:
+ - -D__ppc_generic
+ - -mcpu=e6500
+ - -m64
+ - -fno-common
+ variants:
+ - powerpc/qoriq_e6500_64
+- value:
+ - -D__ppc_generic
+ - -mcpu=e6500
+ - -m32
+ - -msdata=sysv
+ - -fno-common
+ variants:
+ - powerpc/qoriq_e6500_32
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/bspcore0.yml b/spec/build/bsps/powerpc/qoriq/bspcore0.yml
new file mode 100644
index 0000000000..8f45629d43
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/bspcore0.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: qoriq_core_0
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: qoriq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstnolibdl
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/bspcore1.yml b/spec/build/bsps/powerpc/qoriq/bspcore1.yml
new file mode 100644
index 0000000000..9324812d54
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/bspcore1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: qoriq_core_1
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: qoriq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstnolibdl
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/bspe500.yml b/spec/build/bsps/powerpc/qoriq/bspe500.yml
new file mode 100644
index 0000000000..06fd9dc25c
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/bspe500.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: qoriq_e500
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: qoriq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstnolibdl
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/bspe650032.yml b/spec/build/bsps/powerpc/qoriq/bspe650032.yml
new file mode 100644
index 0000000000..b558817e8d
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/bspe650032.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: qoriq_e6500_32
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: qoriq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstnolibdl
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/bspe650064.yml b/spec/build/bsps/powerpc/qoriq/bspe650064.yml
new file mode 100644
index 0000000000..3b375ebf78
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/bspe650064.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: qoriq_e6500_64
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: qoriq
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: ../../tstnolibdl
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/grp.yml b/spec/build/bsps/powerpc/qoriq/grp.yml
new file mode 100644
index 0000000000..270fe6e898
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/grp.yml
@@ -0,0 +1,118 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../optconsolebaud
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optbucsr
+- role: build-dependency
+ uid: optbusclkdiv
+- role: build-dependency
+ uid: optcachealign
+- role: build-dependency
+ uid: optcacheblktouch
+- role: build-dependency
+ uid: optcachedatal1sz
+- role: build-dependency
+ uid: optcachedatal2sz
+- role: build-dependency
+ uid: optcacheinstl1sz
+- role: build-dependency
+ uid: optcacheinstl2sz
+- role: build-dependency
+ uid: optchipnum
+- role: build-dependency
+ uid: optchipser
+- role: build-dependency
+ uid: optclktmctr
+- role: build-dependency
+ uid: optclktmr
+- role: build-dependency
+ uid: optcpucnt
+- role: build-dependency
+ uid: optetsec1phy
+- role: build-dependency
+ uid: optetsec2phy
+- role: build-dependency
+ uid: optetsec3phy
+- role: build-dependency
+ uid: optexcbooke
+- role: build-dependency
+ uid: optexcfixdhdlr
+- role: build-dependency
+ uid: optfdtmxsz
+- role: build-dependency
+ uid: optfdtro
+- role: build-dependency
+ uid: opthid0
+- role: build-dependency
+ uid: opthyp
+- role: build-dependency
+ uid: opthypguest
+- role: build-dependency
+ uid: opticombegin
+- role: build-dependency
+ uid: opticomsz
+- role: build-dependency
+ uid: optmas7
+- role: build-dependency
+ uid: optmsr
+- role: build-dependency
+ uid: optspefscr
+- role: build-dependency
+ uid: optthrdcnt
+- role: build-dependency
+ uid: opttlb1cnt
+- role: build-dependency
+ uid: optuart0en
+- role: build-dependency
+ uid: optuart1en
+- role: build-dependency
+ uid: optuartbrg0en
+- role: build-dependency
+ uid: optuartbrg1en
+- role: build-dependency
+ uid: optuartbrgmas
+- role: build-dependency
+ uid: optuartbrgpri
+- role: build-dependency
+ uid: optuartbrgslv
+- role: build-dependency
+ uid: optuartirq
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/powerpc/qoriq/obj.yml b/spec/build/bsps/powerpc/qoriq/obj.yml
new file mode 100644
index 0000000000..0956313b77
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/obj.yml
@@ -0,0 +1,75 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/qoriq/include/bsp.h
+ - bsps/powerpc/qoriq/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/asm
+ source:
+ - bsps/powerpc/qoriq/include/asm/epapr_hcalls.h
+ - bsps/powerpc/qoriq/include/asm/fsl_hcalls.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/qoriq/include/bsp/intercom.h
+ - bsps/powerpc/qoriq/include/bsp/irq.h
+ - bsps/powerpc/qoriq/include/bsp/mmu.h
+ - bsps/powerpc/qoriq/include/bsp/qoriq.h
+ - bsps/powerpc/qoriq/include/bsp/tsec-config.h
+ - bsps/powerpc/qoriq/include/bsp/uart-bridge.h
+- destination: ${BSP_INCLUDEDIR}/uapi/asm
+ source:
+ - bsps/powerpc/qoriq/include/uapi/asm/epapr_hcalls.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/qoriq/start/linkcmds.qoriq_core_0
+ - bsps/powerpc/qoriq/start/linkcmds.qoriq_core_1
+ - bsps/powerpc/qoriq/start/linkcmds.qoriq_e500
+ - bsps/powerpc/qoriq/start/linkcmds.qoriq_e6500_32
+ - bsps/powerpc/qoriq/start/linkcmds.qoriq_e6500_64
+ - bsps/powerpc/shared/start/linkcmds.base
+links: []
+source:
+- bsps/powerpc/qoriq/btimer/btimer.c
+- bsps/powerpc/qoriq/clock/clock-config.c
+- bsps/powerpc/qoriq/console/console-config.c
+- bsps/powerpc/qoriq/console/uart-bridge-master.c
+- bsps/powerpc/qoriq/console/uart-bridge-slave.c
+- bsps/powerpc/qoriq/irq/irq.c
+- bsps/powerpc/qoriq/mpci/intercom-mpci.c
+- bsps/powerpc/qoriq/mpci/intercom.c
+- bsps/powerpc/qoriq/mpci/lock.S
+- bsps/powerpc/qoriq/rtc/rtc-config.c
+- bsps/powerpc/qoriq/start/bspreset.c
+- bsps/powerpc/qoriq/start/bsprestart.c
+- bsps/powerpc/qoriq/start/bspstart.c
+- bsps/powerpc/qoriq/start/epapr_hcalls.S
+- bsps/powerpc/qoriq/start/l1cache.S
+- bsps/powerpc/qoriq/start/l2cache.S
+- bsps/powerpc/qoriq/start/mmu-config.c
+- bsps/powerpc/qoriq/start/mmu-tlb1.S
+- bsps/powerpc/qoriq/start/mmu.c
+- bsps/powerpc/qoriq/start/portal.c
+- bsps/powerpc/qoriq/start/restart.S
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/exceptions/ppc-exc-handler-table.c
+- bsps/powerpc/shared/mmu/e500-mmu.c
+- bsps/powerpc/shared/start/bsp-start-zero.S
+- bsps/powerpc/shared/start/bspidle.c
+- bsps/powerpc/shared/start/tictac.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/rtc/rtc-support.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bsp-fdt.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/objnet.yml b/spec/build/bsps/powerpc/qoriq/objnet.yml
new file mode 100644
index 0000000000..fa8c0a9f43
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/objnet.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/qoriq/net/if_intercom.c
+- bsps/powerpc/qoriq/net/network.c
+- bsps/powerpc/shared/net/tsec.c
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/objsmp.yml b/spec/build/bsps/powerpc/qoriq/objsmp.yml
new file mode 100644
index 0000000000..766227b97d
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/objsmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/powerpc/qoriq/start/bspsmp.c
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optbucsr.yml b/spec/build/bsps/powerpc/qoriq/optbucsr.yml
new file mode 100644
index 0000000000..fe64767307
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optbucsr.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant:
+- value: 20972033
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ initial BUCSR value
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: QORIQ_INITIAL_BUCSR
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optbusclkdiv.yml b/spec/build/bsps/powerpc/qoriq/optbusclkdiv.yml
new file mode 100644
index 0000000000..217718a1dc
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optbusclkdiv.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant:
+- value: 2
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ divider of the platform clock to get the clock most on-chip peripherals
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_BUS_CLOCK_DIVIDER
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optcachealign.yml b/spec/build/bsps/powerpc/qoriq/optcachealign.yml
new file mode 100644
index 0000000000..77e30c86c7
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optcachealign.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant:
+- value: 64
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ the cache alignment
+enabled-by: true
+format: '{}'
+links: []
+name: PPC_CACHE_ALIGNMENT
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optcacheblktouch.yml b/spec/build/bsps/powerpc/qoriq/optcacheblktouch.yml
new file mode 100644
index 0000000000..3b9251a774
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optcacheblktouch.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ if defined use dcbt instruction
+enabled-by: true
+links: []
+name: BSP_USE_DATA_CACHE_BLOCK_TOUCH
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optcachedatal1sz.yml b/spec/build/bsps/powerpc/qoriq/optcachedatal1sz.yml
new file mode 100644
index 0000000000..1717ff9660
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optcachedatal1sz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 32768
+default-by-variant: []
+description: |
+ the L1 data cache size
+enabled-by: true
+format: '{}'
+links: []
+name: PPC_CACHE_DATA_L1_SIZE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optcachedatal2sz.yml b/spec/build/bsps/powerpc/qoriq/optcachedatal2sz.yml
new file mode 100644
index 0000000000..ef4ee635ef
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optcachedatal2sz.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 262144
+default-by-variant:
+- value: 2097152
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ the L2 data cache size
+enabled-by: true
+format: '{}'
+links: []
+name: PPC_CACHE_DATA_L2_SIZE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optcacheinstl1sz.yml b/spec/build/bsps/powerpc/qoriq/optcacheinstl1sz.yml
new file mode 100644
index 0000000000..10e96967f7
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optcacheinstl1sz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 32768
+default-by-variant: []
+description: |
+ the L1 instruction cache size
+enabled-by: true
+format: '{}'
+links: []
+name: PPC_CACHE_INSTRUCTION_L1_SIZE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optcacheinstl2sz.yml b/spec/build/bsps/powerpc/qoriq/optcacheinstl2sz.yml
new file mode 100644
index 0000000000..133941ff7b
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optcacheinstl2sz.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 262144
+default-by-variant:
+- value: 2097152
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ the L2 instruction cache size
+enabled-by: true
+format: '{}'
+links: []
+name: PPC_CACHE_INSTRUCTION_L2_SIZE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optchipnum.yml b/spec/build/bsps/powerpc/qoriq/optchipnum.yml
new file mode 100644
index 0000000000..f8bb14166f
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optchipnum.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1020
+default-by-variant:
+- value: 0
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ chip number, e.g. 1020, 2040, 2080, 4240
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_CHIP_NUMBER
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optchipser.yml b/spec/build/bsps/powerpc/qoriq/optchipser.yml
new file mode 100644
index 0000000000..c566b49761
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optchipser.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: P
+default-by-variant:
+- value: T
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ chip series, e.g. 'P' or 'T'
+enabled-by: true
+format: '''{}'''
+links: []
+name: QORIQ_CHIP_SERIES
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optclktmctr.yml b/spec/build/bsps/powerpc/qoriq/optclktmctr.yml
new file mode 100644
index 0000000000..f3d428e437
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optclktmctr.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant:
+- value: 5
+ variants:
+ - powerpc/qoriq_core_1
+description: |
+ global timer used for the timecounter, 0..3 maps to A0..A3, and 4..7 maps to B0..B3
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_CLOCK_TIMECOUNTER
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optclktmr.yml b/spec/build/bsps/powerpc/qoriq/optclktmr.yml
new file mode 100644
index 0000000000..61596b518c
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optclktmr.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 4
+ variants:
+ - powerpc/qoriq_core_1
+description: |
+ global timer used for system clock, 0..3 maps to A0..A3, and 4..7 maps to B0..B3
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_CLOCK_TIMER
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optcpucnt.yml b/spec/build/bsps/powerpc/qoriq/optcpucnt.yml
new file mode 100644
index 0000000000..db805547e2
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optcpucnt.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 2
+default-by-variant:
+- value: 24
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ maximum virtual processor count
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_CPU_COUNT
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optetsec1phy.yml b/spec/build/bsps/powerpc/qoriq/optetsec1phy.yml
new file mode 100644
index 0000000000..93e44d817c
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optetsec1phy.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: -1
+default-by-variant: []
+description: |
+ PHY address for eTSEC interface 1
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_ETSEC_1_PHY_ADDR
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optetsec2phy.yml b/spec/build/bsps/powerpc/qoriq/optetsec2phy.yml
new file mode 100644
index 0000000000..037db1630a
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optetsec2phy.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ PHY address for eTSEC interface 2
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_ETSEC_2_PHY_ADDR
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optetsec3phy.yml b/spec/build/bsps/powerpc/qoriq/optetsec3phy.yml
new file mode 100644
index 0000000000..21a511339a
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optetsec3phy.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant: []
+description: |
+ PHY address for eTSEC interface 3
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_ETSEC_3_PHY_ADDR
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optexcbooke.yml b/spec/build/bsps/powerpc/qoriq/optexcbooke.yml
new file mode 100644
index 0000000000..e27cb4ab44
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optexcbooke.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ only support Book E exception types
+enabled-by: true
+links: []
+name: PPC_EXC_CONFIG_BOOKE_ONLY
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optexcfixdhdlr.yml b/spec/build/bsps/powerpc/qoriq/optexcfixdhdlr.yml
new file mode 100644
index 0000000000..b636d8022b
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optexcfixdhdlr.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ use fixed high-level exception handler
+enabled-by: true
+links: []
+name: PPC_EXC_CONFIG_USE_FIXED_HANDLER
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optfdtmxsz.yml b/spec/build/bsps/powerpc/qoriq/optfdtmxsz.yml
new file mode 100644
index 0000000000..14af766230
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optfdtmxsz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 262144
+default-by-variant: []
+description: |
+ maximum size of the FDT blob in bytes
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_FDT_BLOB_SIZE_MAX
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optfdtro.yml b/spec/build/bsps/powerpc/qoriq/optfdtro.yml
new file mode 100644
index 0000000000..a61bb2924b
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optfdtro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ place the FDT blob into the read-only data area
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_READ_ONLY
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/opthid0.yml b/spec/build/bsps/powerpc/qoriq/opthid0.yml
new file mode 100644
index 0000000000..c0b1a56346
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/opthid0.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant:
+- value: 1073741824
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ initial HID0 value (EN_L2MMU_MHD is set by default on the T-series)
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: QORIQ_INITIAL_HID0
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/opthyp.yml b/spec/build/bsps/powerpc/qoriq/opthyp.yml
new file mode 100644
index 0000000000..ccb383c8b5
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/opthyp.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ defined if the processor core has a hypervisor mode
+enabled-by: true
+links: []
+name: QORIQ_HAS_HYPERVISOR_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/opthypguest.yml b/spec/build/bsps/powerpc/qoriq/opthypguest.yml
new file mode 100644
index 0000000000..6e579dc06c
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/opthypguest.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ defined if we are a hypervisor guest
+enabled-by: true
+links: []
+name: QORIQ_IS_HYPERVISOR_GUEST
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/opticombegin.yml b/spec/build/bsps/powerpc/qoriq/opticombegin.yml
new file mode 100644
index 0000000000..29dae8f4a5
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/opticombegin.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 50331648
+default-by-variant: []
+description: |
+ inter-processor communication area begin
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: QORIQ_INTERCOM_AREA_BEGIN
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/opticomsz.yml b/spec/build/bsps/powerpc/qoriq/opticomsz.yml
new file mode 100644
index 0000000000..ebb977bac9
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/opticomsz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 16777216
+default-by-variant: []
+description: |
+ inter-processor communication area size
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: QORIQ_INTERCOM_AREA_SIZE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optmas7.yml b/spec/build/bsps/powerpc/qoriq/optmas7.yml
new file mode 100644
index 0000000000..77ed473263
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optmas7.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: 15
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ MAS7 value for device TLB1 entries
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: QORIQ_MMU_DEVICE_MAS7
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optmsr.yml b/spec/build/bsps/powerpc/qoriq/optmsr.yml
new file mode 100644
index 0000000000..5327f63c6f
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optmsr.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 33554944
+default-by-variant:
+- value: 2181046784
+ variants:
+ - powerpc/qoriq_e6500_64.*
+- value: 33563136
+ variants:
+ - powerpc/qoriq_e6500_32.*
+description: |
+ initial MSR value
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: QORIQ_INITIAL_MSR
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optspefscr.yml b/spec/build/bsps/powerpc/qoriq/optspefscr.yml
new file mode 100644
index 0000000000..820eef00ec
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optspefscr.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant:
+- value: null
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ initial SPEFSCR value
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: QORIQ_INITIAL_SPEFSCR
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optthrdcnt.yml b/spec/build/bsps/powerpc/qoriq/optthrdcnt.yml
new file mode 100644
index 0000000000..5a2b67bf5c
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optthrdcnt.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 1
+default-by-variant:
+- value: 2
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ the number of threads per core
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_PHYSICAL_THREAD_COUNT
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/opttlb1cnt.yml b/spec/build/bsps/powerpc/qoriq/opttlb1cnt.yml
new file mode 100644
index 0000000000..4b9ed660b7
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/opttlb1cnt.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 16
+default-by-variant:
+- value: 64
+ variants:
+ - powerpc/qoriq_e6500.*
+description: |
+ TLB1 entry count
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_TLB1_ENTRY_COUNT
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optuart0en.yml b/spec/build/bsps/powerpc/qoriq/optuart0en.yml
new file mode 100644
index 0000000000..c462db34d3
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optuart0en.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - powerpc/qoriq_core_1
+description: |
+ use 1 to enable UART 0, otherwise use 0
+enabled-by: true
+links: []
+name: QORIQ_UART_0_ENABLE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optuart1en.yml b/spec/build/bsps/powerpc/qoriq/optuart1en.yml
new file mode 100644
index 0000000000..af613ec57f
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optuart1en.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - powerpc/qoriq_core_1
+description: |
+ use 1 to enable UART 1, otherwise use 0
+enabled-by: true
+links: []
+name: QORIQ_UART_1_ENABLE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optuartbrg0en.yml b/spec/build/bsps/powerpc/qoriq/optuartbrg0en.yml
new file mode 100644
index 0000000000..05706d7ef7
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optuartbrg0en.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ use 1 to enable UART 0 to Intercom bridge, otherwise use 0
+enabled-by: true
+links: []
+name: QORIQ_UART_BRIDGE_0_ENABLE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optuartbrg1en.yml b/spec/build/bsps/powerpc/qoriq/optuartbrg1en.yml
new file mode 100644
index 0000000000..cc2c43c13a
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optuartbrg1en.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/qoriq_core_0
+- value: true
+ variants:
+ - powerpc/qoriq_core_1
+description: |
+ use 1 to enable UART 1 to Intercom bridge, otherwise use 0
+enabled-by: true
+links: []
+name: QORIQ_UART_BRIDGE_1_ENABLE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optuartbrgmas.yml b/spec/build/bsps/powerpc/qoriq/optuartbrgmas.yml
new file mode 100644
index 0000000000..8a58b8c518
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optuartbrgmas.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ UART to Intercom bridge master core index
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_UART_BRIDGE_MASTER_CORE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optuartbrgpri.yml b/spec/build/bsps/powerpc/qoriq/optuartbrgpri.yml
new file mode 100644
index 0000000000..b653aaf881
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optuartbrgpri.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 250
+default-by-variant: []
+description: |
+ UART to Intercom bridge task priority
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_UART_BRIDGE_TASK_PRIORITY
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optuartbrgslv.yml b/spec/build/bsps/powerpc/qoriq/optuartbrgslv.yml
new file mode 100644
index 0000000000..8a672326f9
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optuartbrgslv.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ UART to Intercom bridge slave core index
+enabled-by: true
+format: '{}'
+links: []
+name: QORIQ_UART_BRIDGE_SLAVE_CORE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/optuartirq.yml b/spec/build/bsps/powerpc/qoriq/optuartirq.yml
new file mode 100644
index 0000000000..152668b2d9
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/optuartirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ enable usage of interrupts for the UART modules
+enabled-by: true
+links: []
+name: BSP_USE_UART_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/start.yml b/spec/build/bsps/powerpc/qoriq/start.yml
new file mode 100644
index 0000000000..c3e8e5c95c
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/qoriq/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/ss555/abi.yml b/spec/build/bsps/powerpc/ss555/abi.yml
new file mode 100644
index 0000000000..5d49ce0905
--- /dev/null
+++ b/spec/build/bsps/powerpc/ss555/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dmpc555
+- -mcpu=505
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/ss555/bspss555.yml b/spec/build/bsps/powerpc/ss555/bspss555.yml
new file mode 100644
index 0000000000..ee366fdec9
--- /dev/null
+++ b/spec/build/bsps/powerpc/ss555/bspss555.yml
@@ -0,0 +1,81 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: ss555
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: ss555
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/ss555/include/bsp.h
+ - bsps/powerpc/ss555/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/ss555/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/ss555/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optconminor
+- role: build-dependency
+ uid: optprintkminor
+- role: build-dependency
+ uid: optuartsiomode
+- role: build-dependency
+ uid: optuartsterm
+- role: build-dependency
+ uid: optwdgtimeout
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/exceptions/ppc_exc_print.c
+- bsps/powerpc/ss555/clock/clock.c
+- bsps/powerpc/ss555/clock/p_clock.c
+- bsps/powerpc/ss555/console/console.c
+- bsps/powerpc/ss555/dev/console-generic.c
+- bsps/powerpc/ss555/start/bspstart.c
+- bsps/powerpc/ss555/start/irq.c
+- bsps/powerpc/ss555/start/irq_asm.S
+- bsps/powerpc/ss555/start/irq_init.c
+- bsps/powerpc/ss555/start/iss555.c
+- bsps/powerpc/ss555/start/raw_exception.c
+- bsps/powerpc/ss555/start/tm27supp.c
+- bsps/powerpc/ss555/start/vectors.S
+- bsps/powerpc/ss555/start/vectors_init.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/irq/irq-default.c
+- bsps/shared/irq/irq-generic.c
+- bsps/shared/irq/irq-info.c
+- bsps/shared/irq/irq-lock.c
+- bsps/shared/irq/irq-server.c
+- bsps/shared/irq/irq-shell.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/ss555/optconminor.yml b/spec/build/bsps/powerpc/ss555/optconminor.yml
new file mode 100644
index 0000000000..edadd92fe1
--- /dev/null
+++ b/spec/build/bsps/powerpc/ss555/optconminor.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: SCI2_MINOR
+default-by-variant: []
+description: |
+ Must be defined to be one of SCI1_MINOR or SCI2_MINOR. Determines which device will be registered as /dev/console.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_MINOR
+type: build
diff --git a/spec/build/bsps/powerpc/ss555/optprintkminor.yml b/spec/build/bsps/powerpc/ss555/optprintkminor.yml
new file mode 100644
index 0000000000..86cb37b0ab
--- /dev/null
+++ b/spec/build/bsps/powerpc/ss555/optprintkminor.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: SCI2_MINOR
+default-by-variant: []
+description: |
+ Must be defined to be one of SCI1_MINOR or SCI2_MINOR. Determines which device is used for output by printk(). The printk port always uses polled I/O. Don't open the printk port from RTEMS unless also using polled I/O for the SCI ports.
+enabled-by: true
+format: '{}'
+links: []
+name: PRINTK_MINOR
+type: build
diff --git a/spec/build/bsps/powerpc/ss555/optuartsiomode.yml b/spec/build/bsps/powerpc/ss555/optuartsiomode.yml
new file mode 100644
index 0000000000..8e351bb7a1
--- /dev/null
+++ b/spec/build/bsps/powerpc/ss555/optuartsiomode.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Define to 1 if you want interrupt-driven I/O for the SCI ports.
+enabled-by: true
+links: []
+name: UARTS_IO_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/ss555/optuartsterm.yml b/spec/build/bsps/powerpc/ss555/optuartsterm.yml
new file mode 100644
index 0000000000..1aa2122c24
--- /dev/null
+++ b/spec/build/bsps/powerpc/ss555/optuartsterm.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Define to 1 if you want termios support for every port. Termios support is independent of the choice of UART I/O mode.
+enabled-by: true
+links: []
+name: UARTS_USE_TERMIOS
+type: build
diff --git a/spec/build/bsps/powerpc/ss555/optwdgtimeout.yml b/spec/build/bsps/powerpc/ss555/optwdgtimeout.yml
new file mode 100644
index 0000000000..2cb717a1fc
--- /dev/null
+++ b/spec/build/bsps/powerpc/ss555/optwdgtimeout.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 65535
+default-by-variant: []
+description: |
+ Define to the desired timeout (in steps of 1/20 msec) to enable the watchdog. Default is to disable the watchdog entirely.
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: WATCHDOG_TIMEOUT
+type: build
diff --git a/spec/build/bsps/powerpc/ss555/start.yml b/spec/build/bsps/powerpc/ss555/start.yml
new file mode 100644
index 0000000000..67d16365b0
--- /dev/null
+++ b/spec/build/bsps/powerpc/ss555/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/ss555/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/start.yml b/spec/build/bsps/powerpc/start.yml
new file mode 100644
index 0000000000..6efecf617f
--- /dev/null
+++ b/spec/build/bsps/powerpc/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/shared/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/t32mppc/abi.yml b/spec/build/bsps/powerpc/t32mppc/abi.yml
new file mode 100644
index 0000000000..eabcbf586e
--- /dev/null
+++ b/spec/build/bsps/powerpc/t32mppc/abi.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -D__ppc_generic
+- -mcpu=8540
+- -msoft-float
+- -meabi
+- -msdata=sysv
+- -fno-common
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/t32mppc/bspt32mppc.yml b/spec/build/bsps/powerpc/t32mppc/bspt32mppc.yml
new file mode 100644
index 0000000000..7c1c1ad4c4
--- /dev/null
+++ b/spec/build/bsps/powerpc/t32mppc/bspt32mppc.yml
@@ -0,0 +1,70 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: t32mppc
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: t32mppc
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/t32mppc/include/bsp.h
+ - bsps/powerpc/t32mppc/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/t32mppc/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/shared/start/linkcmds.base
+ - bsps/powerpc/t32mppc/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../optog
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optexcbooke
+- role: build-dependency
+ uid: optexcfixdhdlr
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/exceptions/ppc-exc-handler-table.c
+- bsps/powerpc/shared/start/bsp-start-zero.S
+- bsps/powerpc/shared/start/tictac.c
+- bsps/powerpc/t32mppc/clock/clock-config.c
+- bsps/powerpc/t32mppc/console/console.c
+- bsps/powerpc/t32mppc/irq/irq.c
+- bsps/powerpc/t32mppc/start/bspreset.c
+- bsps/powerpc/t32mppc/start/bspstart.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/t32mppc/objsmp.yml b/spec/build/bsps/powerpc/t32mppc/objsmp.yml
new file mode 100644
index 0000000000..c69a03be9b
--- /dev/null
+++ b/spec/build/bsps/powerpc/t32mppc/objsmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/shared/start/bspsmp-dummy.c
+type: build
diff --git a/spec/build/bsps/powerpc/t32mppc/optexcbooke.yml b/spec/build/bsps/powerpc/t32mppc/optexcbooke.yml
new file mode 100644
index 0000000000..e27cb4ab44
--- /dev/null
+++ b/spec/build/bsps/powerpc/t32mppc/optexcbooke.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ only support Book E exception types
+enabled-by: true
+links: []
+name: PPC_EXC_CONFIG_BOOKE_ONLY
+type: build
diff --git a/spec/build/bsps/powerpc/t32mppc/optexcfixdhdlr.yml b/spec/build/bsps/powerpc/t32mppc/optexcfixdhdlr.yml
new file mode 100644
index 0000000000..b636d8022b
--- /dev/null
+++ b/spec/build/bsps/powerpc/t32mppc/optexcfixdhdlr.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ use fixed high-level exception handler
+enabled-by: true
+links: []
+name: PPC_EXC_CONFIG_USE_FIXED_HANDLER
+type: build
diff --git a/spec/build/bsps/powerpc/t32mppc/start.yml b/spec/build/bsps/powerpc/t32mppc/start.yml
new file mode 100644
index 0000000000..7a6d2bab5f
--- /dev/null
+++ b/spec/build/bsps/powerpc/t32mppc/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/t32mppc/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/abi.yml b/spec/build/bsps/powerpc/tqm8xx/abi.yml
new file mode 100644
index 0000000000..bf76b930bd
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/abi.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dmpc860
+- -mcpu=860
+- -mstrict-align
+- -fno-strict-aliasing
+- -meabi
+- -msdata=sysv
+- -fno-common
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/bsppghplus.yml b/spec/build/bsps/powerpc/tqm8xx/bsppghplus.yml
new file mode 100644
index 0000000000..cff38f2626
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/bsppghplus.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: pghplus
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: tqm8xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/bspstk8xx.yml b/spec/build/bsps/powerpc/tqm8xx/bspstk8xx.yml
new file mode 100644
index 0000000000..0640e8b872
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/bspstk8xx.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: tqm8xx_stk8xx
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: tqm8xx
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/grp.yml b/spec/build/bsps/powerpc/tqm8xx/grp.yml
new file mode 100644
index 0000000000..61e2b51baa
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/grp.yml
@@ -0,0 +1,56 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optconchn
+- role: build-dependency
+ uid: optconscc1
+- role: build-dependency
+ uid: optconscc2
+- role: build-dependency
+ uid: optconscc3
+- role: build-dependency
+ uid: optconscc4
+- role: build-dependency
+ uid: optconsmc1
+- role: build-dependency
+ uid: optconsmc2
+- role: build-dependency
+ uid: optnetfec
+- role: build-dependency
+ uid: optnetscc
+- role: build-dependency
+ uid: optprintkchn
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/powerpc/tqm8xx/obj.yml b/spec/build/bsps/powerpc/tqm8xx/obj.yml
new file mode 100644
index 0000000000..124b0fb523
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/obj.yml
@@ -0,0 +1,49 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/tqm8xx/include/bsp.h
+ - bsps/powerpc/tqm8xx/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/tqm8xx/include/bsp/8xx_immap.h
+ - bsps/powerpc/tqm8xx/include/bsp/irq.h
+ - bsps/powerpc/tqm8xx/include/bsp/spi.h
+ - bsps/powerpc/tqm8xx/include/bsp/tqm.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/shared/start/linkcmds.base
+ - bsps/powerpc/tqm8xx/start/linkcmds
+links: []
+source:
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock.c
+- bsps/powerpc/shared/start/bspidle.c
+- bsps/powerpc/tqm8xx/btimer/btimer.c
+- bsps/powerpc/tqm8xx/clock/p_clock.c
+- bsps/powerpc/tqm8xx/console/console.c
+- bsps/powerpc/tqm8xx/irq/irq.c
+- bsps/powerpc/tqm8xx/spi/spi.c
+- bsps/powerpc/tqm8xx/start/bspgetworkarea.c
+- bsps/powerpc/tqm8xx/start/bspstart.c
+- bsps/powerpc/tqm8xx/start/cp.c
+- bsps/powerpc/tqm8xx/start/cpuinit.c
+- bsps/powerpc/tqm8xx/start/dpram.c
+- bsps/powerpc/tqm8xx/start/mmu.c
+- bsps/powerpc/tqm8xx/start/mmutlbtab.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/objnet.yml b/spec/build/bsps/powerpc/tqm8xx/objnet.yml
new file mode 100644
index 0000000000..3a3492c0ed
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/objnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/tqm8xx/net/network_fec.c
+- bsps/powerpc/tqm8xx/net/network_scc.c
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optconchn.yml b/spec/build/bsps/powerpc/tqm8xx/optconchn.yml
new file mode 100644
index 0000000000..a33cfc32ab
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optconchn.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: CONS_CHN_SMC1
+default-by-variant: []
+description: |
+ (BSP--console driver) Must be defined to be one of CONS_CHN_SMC1, CONS_CHN_SMC2, CONS_CHN_SCC1, CONS_CHN_SCC2, CONS_CHN_SCC3, or CONS_CHN_SCC4. Determines which device will be registered as /dev/console.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_CHN
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optconscc1.yml b/spec/build/bsps/powerpc/tqm8xx/optconscc1.yml
new file mode 100644
index 0000000000..6c0499daf1
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optconscc1.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: CONS_MODE_UNUSED
+default-by-variant: []
+description: |
+ (BSP--SCC1 UART IF mode) Must be defined if SCC1 is used as a tty (UART) channel. Set it to CONS_MODE_POLLED for polled operation, CONS_MODE_IRQ for interrupt driven (spooled) operation. Set it to CONS_MODE_UNUSED, if not used
+enabled-by: true
+format: '{}'
+links: []
+name: CONS_SCC1_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optconscc2.yml b/spec/build/bsps/powerpc/tqm8xx/optconscc2.yml
new file mode 100644
index 0000000000..754abd522f
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optconscc2.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: CONS_MODE_UNUSED
+default-by-variant: []
+description: |
+ (BSP--SCC2 UART IF mode) Must be defined if SCC2 is used as a tty (UART) channel. Set it to CONS_MODE_POLLED for polled operation, CONS_MODE_IRQ for interrupt driven (spooled) operation. Set it to CONS_MODE_UNUSED, if not used
+enabled-by: true
+format: '{}'
+links: []
+name: CONS_SCC2_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optconscc3.yml b/spec/build/bsps/powerpc/tqm8xx/optconscc3.yml
new file mode 100644
index 0000000000..bdc665cbde
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optconscc3.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: CONS_MODE_UNUSED
+default-by-variant: []
+description: |
+ (BSP--SCC3 UART IF mode) Must be defined if SCC3 is used as a tty (UART) channel. Set it to CONS_MODE_POLLED for polled operation, CONS_MODE_IRQ for interrupt driven (spooled) operation. Set it to CONS_MODE_UNUSED, if not used
+enabled-by: true
+format: '{}'
+links: []
+name: CONS_SCC3_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optconscc4.yml b/spec/build/bsps/powerpc/tqm8xx/optconscc4.yml
new file mode 100644
index 0000000000..e26ffcad07
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optconscc4.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: CONS_MODE_UNUSED
+default-by-variant: []
+description: |
+ (BSP--SCC4 UART IF mode) Must be defined if SCC4 is used as a tty (UART) channel. Set it to CONS_MODE_POLLED for polled operation, CONS_MODE_IRQ for interrupt driven (spooled) operation. Set it to CONS_MODE_UNUSED, if not used
+enabled-by: true
+format: '{}'
+links: []
+name: CONS_SCC4_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optconsmc1.yml b/spec/build/bsps/powerpc/tqm8xx/optconsmc1.yml
new file mode 100644
index 0000000000..7c7f563d00
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optconsmc1.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: CONS_MODE_UNUSED
+default-by-variant:
+- value: CONS_MODE_POLLED
+ variants:
+ - powerpc/tqm8xx_stk8xx
+- value: CONS_MODE_IRQ
+ variants:
+ - powerpc/pghplus
+description: |
+ (BSP--SMC1 UART IF mode) Must be defined if SMC1 is used as a tty (UART) channel. Set it to CONS_MODE_POLLED for polled operation, CONS_MODE_IRQ for interrupt driven (spooled) operation. Set it to CONS_MODE_UNUSED, if not used
+enabled-by: true
+format: '{}'
+links: []
+name: CONS_SMC1_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optconsmc2.yml b/spec/build/bsps/powerpc/tqm8xx/optconsmc2.yml
new file mode 100644
index 0000000000..c19c2850fb
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optconsmc2.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: CONS_MODE_UNUSED
+default-by-variant:
+- value: CONS_MODE_POLLED
+ variants:
+ - powerpc/tqm8xx_stk8xx
+description: |
+ (BSP--SMC2 UART IF mode) Must be defined if SMC2 is used as a tty (UART) channel. Set it to CONS_MODE_POLLED for polled operation, CONS_MODE_IRQ for interrupt driven (spooled) operation. Set it to CONS_MODE_UNUSED, if not used
+enabled-by: true
+format: '{}'
+links: []
+name: CONS_SMC2_MODE
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optnetfec.yml b/spec/build/bsps/powerpc/tqm8xx/optnetfec.yml
new file mode 100644
index 0000000000..52a1fc7afe
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optnetfec.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - powerpc/pghplus
+description: |
+ If defined, then the BSP will use the Fast Ethernet Controller for 10/100MBit networking and used as primary networking interface.
+enabled-by: true
+links: []
+name: BSP_USE_NETWORK_FEC
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optnetscc.yml b/spec/build/bsps/powerpc/tqm8xx/optnetscc.yml
new file mode 100644
index 0000000000..fe3492accf
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optnetscc.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant:
+- value: false
+ variants:
+ - powerpc/pghplus
+description: |
+ If defined, then the BSP will use the Serial Communications Controller (SCC1) for 10MBit networking.
+enabled-by: true
+links: []
+name: BSP_USE_NETWORK_SCC
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/optprintkchn.yml b/spec/build/bsps/powerpc/tqm8xx/optprintkchn.yml
new file mode 100644
index 0000000000..cffd48009d
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/optprintkchn.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: CONS_CHN_SMC1
+default-by-variant: []
+description: |
+ (BSP--console driver) Must be defined to be one of CONS_CHN_SMC1, CONS_CHN_SMC2, CONS_CHN_SCC2, CONS_CHN_SCC3, or CONS_CHN_SCC4. Determines which device is used for output by printk(). If the port that printk() uses is also used for other I/O (e.g. if PRINTK_CHN == CONSOLE_CHN), then both ports should use the same type of I/O, otherwise the drivers will likely conflict with each other.
+enabled-by: true
+format: '{}'
+links: []
+name: PRINTK_CHN
+type: build
diff --git a/spec/build/bsps/powerpc/tqm8xx/start.yml b/spec/build/bsps/powerpc/tqm8xx/start.yml
new file mode 100644
index 0000000000..ac62e13991
--- /dev/null
+++ b/spec/build/bsps/powerpc/tqm8xx/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/tqm8xx/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/vecentry.yml b/spec/build/bsps/powerpc/vecentry.yml
new file mode 100644
index 0000000000..ba7d789c84
--- /dev/null
+++ b/spec/build/bsps/powerpc/vecentry.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/shared/start/vectors_entry.S
+target: vectors_entry.o
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/abi.yml b/spec/build/bsps/powerpc/virtex/abi.yml
new file mode 100644
index 0000000000..8b94b11113
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/abi.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dppc405
+- -mcpu=403
+- -meabi
+- -msdata=sysv
+- -fno-common
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/bspvirtex.yml b/spec/build/bsps/powerpc/virtex/bspvirtex.yml
new file mode 100644
index 0000000000..bf7eebe2b5
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/bspvirtex.yml
@@ -0,0 +1,86 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: virtex
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: virtex
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/virtex/include/bsp.h
+ - bsps/powerpc/virtex/include/tm27.h
+ - bsps/powerpc/virtex/include/xiltemac.h
+ - bsps/powerpc/virtex/include/xparameters_dflt.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/virtex/include/bsp/irq.h
+ - bsps/powerpc/virtex/include/bsp/opbintctrl.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/shared/start/linkcmds.base
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optfastramlen
+- role: build-dependency
+ uid: optfastramorg
+- role: build-dependency
+ uid: optramlen
+- role: build-dependency
+ uid: optramorg
+- role: build-dependency
+ uid: optresetlen
+- role: build-dependency
+ uid: optresetorg
+- role: build-dependency
+ uid: optxparam
+- role: build-dependency
+ uid: linkcmds
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock.c
+- bsps/powerpc/shared/start/bsp-start-zero.S
+- bsps/powerpc/virtex/console/consolelite.c
+- bsps/powerpc/virtex/irq/irq_init.c
+- bsps/powerpc/virtex/start/bspstart.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/linkcmds.yml b/spec/build/bsps/powerpc/virtex/linkcmds.yml
new file mode 100644
index 0000000000..6de570fbdd
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/linkcmds.yml
@@ -0,0 +1,45 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ EXTERN (__vectors)
+
+ MEMORY {
+ RAM : ORIGIN = ${VIRTEX_RAM_ORIGIN}, LENGTH = ${VIRTEX_RAM_LENGTH}
+ FAST_RAM : ORIGIN = ${VIRTEX_FAST_RAM_ORIGIN}, LENGTH = ${VIRTEX_FAST_RAM_LENGTH}
+ RESET : ORIGIN = ${VIRTEX_RESET_ORIGIN}, LENGTH = ${VIRTEX_RESET_LENGTH}
+ EMPTY : ORIGIN = 0x0, LENGTH = 0x0
+ }
+
+ REGION_ALIAS ("REGION_START", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT", FAST_RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_TEXT", RAM);
+ REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_RODATA", RAM);
+ REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA", FAST_RAM);
+ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_DATA", RAM);
+ REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_BSS", RAM);
+ REGION_ALIAS ("REGION_RTEMSSTACK", RAM);
+ REGION_ALIAS ("REGION_WORK", RAM);
+ REGION_ALIAS ("REGION_STACK", RAM);
+ REGION_ALIAS ("REGION_NOCACHE", EMPTY);
+ REGION_ALIAS ("REGION_NOCACHE_LOAD", EMPTY);
+ REGION_ALIAS ("REGION_NVRAM", EMPTY);
+
+ SECTIONS {
+ .virtex_reset : {
+ KEEP (*(.virtex_reset))
+ } > RESET AT > RESET
+ }
+
+ INCLUDE linkcmds.base
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/objnet.yml b/spec/build/bsps/powerpc/virtex/objnet.yml
new file mode 100644
index 0000000000..7d902970a1
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/powerpc/virtex/net/xiltemac.c
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/optconirq.yml b/spec/build/bsps/powerpc/virtex/optconirq.yml
new file mode 100644
index 0000000000..d3e07791a8
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/optconirq.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ if defined use interrupt driven Termios mode
+enabled-by: true
+links: []
+name: VIRTEX_CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/optfastramlen.yml b/spec/build/bsps/powerpc/virtex/optfastramlen.yml
new file mode 100644
index 0000000000..366457a492
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/optfastramlen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ fast RAM region length
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: VIRTEX_FAST_RAM_LENGTH
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/optfastramorg.yml b/spec/build/bsps/powerpc/virtex/optfastramorg.yml
new file mode 100644
index 0000000000..608ddb8c42
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/optfastramorg.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ fast RAM region origin
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: VIRTEX_FAST_RAM_ORIGIN
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/optramlen.yml b/spec/build/bsps/powerpc/virtex/optramlen.yml
new file mode 100644
index 0000000000..e07b9b715e
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/optramlen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 134217708
+default-by-variant: []
+description: |
+ normal RAM region length
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: VIRTEX_RAM_LENGTH
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/optramorg.yml b/spec/build/bsps/powerpc/virtex/optramorg.yml
new file mode 100644
index 0000000000..1c396974c9
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/optramorg.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ normal RAM region origin
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: VIRTEX_RAM_ORIGIN
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/optresetlen.yml b/spec/build/bsps/powerpc/virtex/optresetlen.yml
new file mode 100644
index 0000000000..79892a4f41
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/optresetlen.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 20
+default-by-variant: []
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: VIRTEX_RESET_LENGTH
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/optresetorg.yml b/spec/build/bsps/powerpc/virtex/optresetorg.yml
new file mode 100644
index 0000000000..f60fc4646c
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/optresetorg.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 134217708
+default-by-variant: []
+description: |
+ reset region origin
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: VIRTEX_RESET_ORIGIN
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/optxparam.yml b/spec/build/bsps/powerpc/virtex/optxparam.yml
new file mode 100644
index 0000000000..4fd5f3d1c4
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/optxparam.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: <xparameters_dflt.h>
+default-by-variant: []
+description: |
+ This defines the location of the hardware specific "xparameters.h" file. in the file system. Specify an absolute path. Do not forget the double quotes
+enabled-by: true
+format: '{}'
+links: []
+name: RTEMS_XPARAMETERS_H
+type: build
diff --git a/spec/build/bsps/powerpc/virtex/start.yml b/spec/build/bsps/powerpc/virtex/start.yml
new file mode 100644
index 0000000000..1548744a12
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/virtex/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/virtex4/abi.yml b/spec/build/bsps/powerpc/virtex4/abi.yml
new file mode 100644
index 0000000000..1fc318b3cb
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex4/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dppc405
+- -mcpu=405
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/virtex4/bspvirtex4.yml b/spec/build/bsps/powerpc/virtex4/bspvirtex4.yml
new file mode 100644
index 0000000000..8c5dca9955
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex4/bspvirtex4.yml
@@ -0,0 +1,70 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: virtex4
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: virtex4
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/virtex4/include/bsp.h
+ - bsps/powerpc/virtex4/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/virtex4/include/bsp/irq.h
+ - bsps/powerpc/virtex4/include/bsp/mmu.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/virtex4/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optppccachedata
+- role: build-dependency
+ uid: optsprg
+- role: build-dependency
+ uid: optvecbase
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock-ppc403.c
+- bsps/powerpc/shared/start/memcpy.c
+- bsps/powerpc/shared/start/zerobss.c
+- bsps/powerpc/virtex4/irq/irq_init.c
+- bsps/powerpc/virtex4/start/bspclean.c
+- bsps/powerpc/virtex4/start/bspstart.c
+- bsps/powerpc/virtex4/start/dummy_console.c
+- bsps/powerpc/virtex4/start/mmu.c
+- bsps/powerpc/virtex4/start/start.S
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/virtex4/optppccachedata.yml b/spec/build/bsps/powerpc/virtex4/optppccachedata.yml
new file mode 100644
index 0000000000..ef96c06b8e
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex4/optppccachedata.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, then the PowerPC specific code in RTEMS will use data cache instructions to optimize the context switch code. This code can conflict with debuggers or emulators. It is known to break the Corelis PowerPC emulator with at least some combinations of PowerPC 603e revisions and emulator versions. The BSP actually contains the call that enables this.
+enabled-by: true
+links: []
+name: PPC_USE_DATA_CACHE
+type: build
diff --git a/spec/build/bsps/powerpc/virtex4/optsprg.yml b/spec/build/bsps/powerpc/virtex4/optsprg.yml
new file mode 100644
index 0000000000..1e1a112f43
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex4/optsprg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ If defined, then the PowerPC specific code in RTEMS will use some of the special purpose registers to slightly optimize interrupt response time. The use of these registers can conflict with other tools like debuggers.
+enabled-by: true
+links: []
+name: PPC_USE_SPRG
+type: build
diff --git a/spec/build/bsps/powerpc/virtex4/optvecbase.yml b/spec/build/bsps/powerpc/virtex4/optvecbase.yml
new file mode 100644
index 0000000000..fdc72a1863
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex4/optvecbase.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 256
+default-by-variant: []
+description: |
+ This defines the base address of the exception table.
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: PPC_VECTOR_FILE_BASE
+type: build
diff --git a/spec/build/bsps/powerpc/virtex4/start.yml b/spec/build/bsps/powerpc/virtex4/start.yml
new file mode 100644
index 0000000000..e54271ee99
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex4/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/virtex4/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/powerpc/virtex5/abi.yml b/spec/build/bsps/powerpc/virtex5/abi.yml
new file mode 100644
index 0000000000..3318bbbe42
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex5/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Dppc440
+- -mcpu=440
+- -msoft-float
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/powerpc/virtex5/bspvirtex5.yml b/spec/build/bsps/powerpc/virtex5/bspvirtex5.yml
new file mode 100644
index 0000000000..c0c679f8b8
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex5/bspvirtex5.yml
@@ -0,0 +1,71 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: powerpc
+bsp: virtex5
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: virtex5
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/powerpc/virtex5/include/bsp.h
+ - bsps/powerpc/virtex5/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/powerpc/virtex5/include/bsp/irq.h
+ - bsps/powerpc/virtex5/include/bsp/mmu.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/powerpc/virtex5/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../crti
+- role: build-dependency
+ uid: ../crtn
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../obj
+- role: build-dependency
+ uid: ../objexc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optppccachedata
+- role: build-dependency
+ uid: optsprg
+- role: build-dependency
+ uid: optvecbase
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/powerpc/shared/btimer/btimer-ppc-dec.c
+- bsps/powerpc/shared/cache/cache.c
+- bsps/powerpc/shared/clock/clock-ppc-dec.c
+- bsps/powerpc/shared/clock/p_clock.c
+- bsps/powerpc/shared/start/memcpy.c
+- bsps/powerpc/shared/start/zerobss.c
+- bsps/powerpc/virtex5/irq/irq_init.c
+- bsps/powerpc/virtex5/start/bspclean.c
+- bsps/powerpc/virtex5/start/bspstart.c
+- bsps/powerpc/virtex5/start/dummy_console.c
+- bsps/powerpc/virtex5/start/mmu.c
+- bsps/powerpc/virtex5/start/start.S
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/powerpc/virtex5/optppccachedata.yml b/spec/build/bsps/powerpc/virtex5/optppccachedata.yml
new file mode 100644
index 0000000000..88fed61502
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex5/optppccachedata.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ None
+enabled-by: true
+links: []
+name: PPC_USE_DATA_CACHE
+type: build
diff --git a/spec/build/bsps/powerpc/virtex5/optsprg.yml b/spec/build/bsps/powerpc/virtex5/optsprg.yml
new file mode 100644
index 0000000000..1bb5de32db
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex5/optsprg.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ None
+enabled-by: true
+links: []
+name: PPC_USE_SPRG
+type: build
diff --git a/spec/build/bsps/powerpc/virtex5/optvecbase.yml b/spec/build/bsps/powerpc/virtex5/optvecbase.yml
new file mode 100644
index 0000000000..fdc72a1863
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex5/optvecbase.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 256
+default-by-variant: []
+description: |
+ This defines the base address of the exception table.
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: PPC_VECTOR_FILE_BASE
+type: build
diff --git a/spec/build/bsps/powerpc/virtex5/start.yml b/spec/build/bsps/powerpc/virtex5/start.yml
new file mode 100644
index 0000000000..082172f8ee
--- /dev/null
+++ b/spec/build/bsps/powerpc/virtex5/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/powerpc/virtex5/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/riscv/griscv/abi.yml b/spec/build/bsps/riscv/griscv/abi.yml
new file mode 100644
index 0000000000..fc915468ae
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/abi.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=rv32imafdc
+- -mabi=ilp32d
+default-by-variant:
+- value:
+ - -march=rv32imac
+ - -mabi=ilp32
+ variants:
+ - riscv/grv32imac
+- value:
+ - -march=rv32im
+ - -mabi=ilp32
+ variants:
+ - riscv/grv32im
+- value:
+ - -march=rv32i
+ - -mabi=ilp32
+ variants:
+ - riscv/grv32i
+- value:
+ - -march=rv32imafd
+ - -mabi=ilp32d
+ variants:
+ - riscv/griscv
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/riscv/griscv/bspgriscv.yml b/spec/build/bsps/riscv/griscv/bspgriscv.yml
new file mode 100644
index 0000000000..1992d096de
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/bspgriscv.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: griscv
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: griscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/griscv/bspgrv32i.yml b/spec/build/bsps/riscv/griscv/bspgrv32i.yml
new file mode 100644
index 0000000000..4f130b6cc7
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/bspgrv32i.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: grv32i
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: griscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/griscv/bspgrv32im.yml b/spec/build/bsps/riscv/griscv/bspgrv32im.yml
new file mode 100644
index 0000000000..ed17f1ae11
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/bspgrv32im.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: grv32im
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: griscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/griscv/bspgrv32imac.yml b/spec/build/bsps/riscv/griscv/bspgrv32imac.yml
new file mode 100644
index 0000000000..32c4807b57
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/bspgrv32imac.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: grv32imac
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: griscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/griscv/bspgrv32imafdc.yml b/spec/build/bsps/riscv/griscv/bspgrv32imafdc.yml
new file mode 100644
index 0000000000..1448e19869
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/bspgrv32imafdc.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: grv32imafdc
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: griscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/griscv/grp.yml b/spec/build/bsps/riscv/griscv/grp.yml
new file mode 100644
index 0000000000..1945d984f5
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/grp.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objgrlib
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../optclang
+- role: build-dependency
+ uid: ../../optconsolebaud
+- role: build-dependency
+ uid: ../../optgcc
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optextirqmax
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../optrambegin
+- role: build-dependency
+ uid: ../optramsize
+- role: build-dependency
+ uid: ../linkcmds
+- role: build-dependency
+ uid: ../linkcmdsbase
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/riscv/griscv/obj.yml b/spec/build/bsps/riscv/griscv/obj.yml
new file mode 100644
index 0000000000..769364c8fc
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/obj.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/riscv/griscv/include/amba.h
+ - bsps/riscv/griscv/include/bsp.h
+ - bsps/riscv/griscv/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/riscv/griscv/include/bsp/irq.h
+links: []
+source:
+- bsps/riscv/griscv/clock/clockdrv.c
+- bsps/riscv/griscv/console/console.c
+- bsps/riscv/griscv/console/printk_support.c
+- bsps/riscv/griscv/irq/irq.c
+- bsps/riscv/griscv/start/amba.c
+- bsps/riscv/griscv/start/bsp_fatal_halt.c
+- bsps/riscv/griscv/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+type: build
diff --git a/spec/build/bsps/riscv/griscv/objsmp.yml b/spec/build/bsps/riscv/griscv/objsmp.yml
new file mode 100644
index 0000000000..83f5bb7f31
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/objsmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/riscv/griscv/start/bspsmp.c
+type: build
diff --git a/spec/build/bsps/riscv/griscv/optextirqmax.yml b/spec/build/bsps/riscv/griscv/optextirqmax.yml
new file mode 100644
index 0000000000..ffa84748b6
--- /dev/null
+++ b/spec/build/bsps/riscv/griscv/optextirqmax.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 64
+default-by-variant: []
+description: |
+ maximum number of external interrupts supported by the BSP (default 64)
+enabled-by: true
+format: '{}'
+links: []
+name: RISCV_MAXIMUM_EXTERNAL_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/riscv/grp.yml b/spec/build/bsps/riscv/grp.yml
new file mode 100644
index 0000000000..7dad3970c5
--- /dev/null
+++ b/spec/build/bsps/riscv/grp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/riscv/include/bsp/linker-symbols.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/riscv/linkcmds.yml b/spec/build/bsps/riscv/linkcmds.yml
new file mode 100644
index 0000000000..ed536b3c5d
--- /dev/null
+++ b/spec/build/bsps/riscv/linkcmds.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ MEMORY {
+ RAM : ORIGIN = ${RISCV_RAM_REGION_BEGIN}, LENGTH = ${RISCV_RAM_REGION_SIZE}
+ }
+
+ REGION_ALIAS ("REGION_START", RAM);
+ REGION_ALIAS ("REGION_TEXT", RAM);
+ REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_RODATA", RAM);
+ REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_DATA", RAM);
+ REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_RTEMSSTACK", RAM);
+ REGION_ALIAS ("REGION_WORK", RAM);
+
+ INCLUDE linkcmds.base
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds
+type: build
diff --git a/spec/build/bsps/riscv/linkcmdsbase.yml b/spec/build/bsps/riscv/linkcmdsbase.yml
new file mode 100644
index 0000000000..cbc769552e
--- /dev/null
+++ b/spec/build/bsps/riscv/linkcmdsbase.yml
@@ -0,0 +1,401 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ /* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
+
+ /*
+ * Copyright (c) 2018 embedded brains GmbH.
+ *
+ * Copyright (c) 2015 University of York.
+ * Hesham ALMatary <hmka501@york.ac.uk>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ OUTPUT_ARCH(riscv)
+ ENTRY(_start)
+ ${LINKCMDS_START_DIRECTIVE}(start.o)
+
+ bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
+ bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
+
+ MEMORY {
+ UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
+ }
+
+ SECTIONS {
+ .start : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ bsp_section_start_begin = .;
+ KEEP (*(.bsp_start_text))
+ KEEP (*(.bsp_start_data))
+ bsp_section_start_end = .;
+ } > REGION_START AT > REGION_START
+ bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
+
+ .text : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ bsp_section_text_begin = .;
+ *(.text.unlikely .text.*_unlikely .text.unlikely.*)
+ *(.text.exit .text.exit.*)
+ *(.text.startup .text.startup.*)
+ *(.text.hot .text.hot.*)
+ *(.text .stub .text.* .gnu.linkonce.t.*)
+ /* .gnu.warning sections are handled specially by elf32.em. */
+ *(.gnu.warning)
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .init : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ KEEP (*(SORT_NONE(.init)))
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .fini : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ KEEP (*(SORT_NONE(.fini)))
+ bsp_section_text_end = .;
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
+ bsp_section_text_load_begin = LOADADDR (.text);
+ bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
+
+ .robarrier : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ . = ALIGN (bsp_section_robarrier_align);
+ } > REGION_RODATA AT > REGION_RODATA
+
+ .rodata : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ bsp_section_rodata_begin = .;
+ *(.rodata .rodata.* .gnu.linkonce.r.*)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .rodata1 : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.rodata1)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .sdata2 : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .sbss2 : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .eh_frame_hdr : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .eh_frame : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ KEEP (*(.eh_frame)) *(.eh_frame.*)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .gcc_except_table : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.gcc_except_table .gcc_except_table.*)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .gnu_extab : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.gnu_extab*)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .tdata : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ _TLS_Data_begin = .;
+ *(.tdata .tdata.* .gnu.linkonce.td.*)
+ _TLS_Data_end = .;
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .tbss : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ _TLS_BSS_begin = .;
+ *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
+ _TLS_BSS_end = .;
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
+ _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
+ _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
+ _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
+ _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
+ _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
+ .preinit_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP (*(.preinit_array))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .init_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
+ KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .fini_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
+ KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .ctors : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ /* gcc uses crtbegin.o to find the start of
+ the constructors, so we make sure it is
+ first. Because this is a wildcard, it
+ doesn't matter if the user does not
+ actually link against crtbegin.o; the
+ linker won't look for a file to match a
+ wildcard. The wildcard also means that it
+ doesn't matter which directory crtbegin.o
+ is in. */
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*crtbegin?.o(.ctors))
+ /* We don't want to include the .ctor section from
+ the crtend.o file until after the sorted ctors.
+ The .ctor section from the crtend file contains the
+ end of ctors marker and it must be last */
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .dtors : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*crtbegin?.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .data.rel.ro : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
+ *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .jcr : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ KEEP (*(.jcr))
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .interp : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.interp)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .note.gnu.build-id : { *(.note.gnu.build-id)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .hash : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.hash)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .gnu.hash : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.gnu.hash)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .dynsym : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.dynsym)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .dynstr : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.dynstr)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .gnu.version : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.gnu.version)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .gnu.version_d : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.gnu.version_d)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .gnu.version_r : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.gnu.version_r)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .rela.dyn : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.rela.init)
+ *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
+ *(.rela.fini)
+ *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
+ *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
+ *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
+ *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
+ *(.rela.ctors)
+ *(.rela.dtors)
+ *(.rela.got)
+ *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
+ *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
+ *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
+ *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
+ *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .rela.plt : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.rela.plt)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .plt : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.plt)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .iplt : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.iplt)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .dynamic : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.dynamic)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .tm_clone_table : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.tm_clone_table)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .got : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.got.plt) *(.igot.plt) *(.got) *(.igot)
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .rtemsroset : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ /* Special FreeBSD linker set sections */
+ __start_set_sysctl_set = .;
+ *(set_sysctl_*);
+ __stop_set_sysctl_set = .;
+ *(set_domain_*);
+ *(set_pseudo_*);
+
+ KEEP (*(SORT(.rtemsroset.*)))
+ bsp_section_rodata_end = .;
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
+ bsp_section_rodata_load_begin = LOADADDR (.rodata);
+ bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
+
+ .rwbarrier : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ . = ALIGN (bsp_section_rwbarrier_align);
+ } > REGION_DATA AT > REGION_DATA
+
+ .fast_text : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ bsp_section_fast_text_begin = .;
+ *(.bsp_fast_text)
+ bsp_section_fast_text_end = .;
+ } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
+ bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
+ bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
+ bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
+
+ .fast_data : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ bsp_section_fast_data_begin = .;
+ *(.bsp_fast_data)
+ bsp_section_fast_data_end = .;
+ } > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
+ bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
+ bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
+ bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
+
+ .data : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ bsp_section_data_begin = .;
+ *(.data .data.* .gnu.linkonce.d.*)
+ SORT(CONSTRUCTORS)
+ } > REGION_DATA AT > REGION_DATA_LOAD
+ .data1 : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.data1)
+ } > REGION_DATA AT > REGION_DATA_LOAD
+ .rtemsrwset : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ KEEP (*(SORT(.rtemsrwset.*)))
+ } > REGION_DATA AT > REGION_DATA_LOAD
+ .htif ALIGN(4096) : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.htif)
+ } > REGION_DATA AT > REGION_DATA_LOAD
+ .sdata : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ __global_pointer$$ = . + 0x800;
+ *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)
+ *(.sdata .sdata.* .gnu.linkonce.s.*)
+ bsp_section_data_end = .;
+ } > REGION_DATA AT > REGION_DATA_LOAD
+ bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
+ bsp_section_data_load_begin = LOADADDR (.data);
+ bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
+
+ .sbss : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ bsp_section_bss_begin = .;
+ *(.dynsbss)
+ *(.sbss .sbss.* .gnu.linkonce.sb.*)
+ *(.scommon)
+ } > REGION_DATA AT > REGION_DATA
+ .bss : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ *(.dynbss)
+ *(.bss .bss.* .gnu.linkonce.b.*)
+ *(COMMON)
+ bsp_section_bss_end = .;
+ } > REGION_DATA AT > REGION_DATA
+ bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
+
+ .rtemsstack (NOLOAD) : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ bsp_section_rtemsstack_begin = .;
+ *(SORT(.rtemsstack.*))
+ bsp_section_rtemsstack_end = .;
+ } > REGION_RTEMSSTACK AT > REGION_RTEMSSTACK
+ bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;
+
+ .work (NOLOAD) : ${LINKCMDS_ALIGN_DIRECTIVE} {
+ /*
+ * The work section will occupy the remaining REGION_WORK region and
+ * contains the RTEMS work space and heap.
+ */
+ bsp_section_work_begin = .;
+ . += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
+ bsp_section_work_end = .;
+ } > REGION_WORK AT > REGION_WORK
+ bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
+
+ /* FIXME */
+ RamBase = ORIGIN (REGION_WORK);
+ RamSize = LENGTH (REGION_WORK);
+ RamEnd = RamBase + RamSize;
+ WorkAreaBase = bsp_section_work_begin;
+ HeapSize = 0;
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+ /* DWARF debug sections.
+ Symbols in the DWARF debugging sections are relative to the beginning
+ of the section so we begin them at 0. */
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ /* DWARF 3 */
+ .debug_pubtypes 0 : { *(.debug_pubtypes) }
+ .debug_ranges 0 : { *(.debug_ranges) }
+ /* DWARF Extension. */
+ .debug_macro 0 : { *(.debug_macro) }
+ .debug_addr 0 : { *(.debug_addr) }
+ .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
+ /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
+ .shstrtab 0 : { *(.shstrtab) }
+ .strtab 0 : { *(.strtab) }
+ .symtab 0 : { *(.symtab) }
+ .symtab_shndx 0 : { *(.symtab_shndx) }
+ __cap_relocs 0 : { *(__cap_relocs) }
+
+ /*
+ * This is a RTEMS specific section to catch all unexpected input
+ * sections. In case you get an error like
+ * "section `.unexpected_sections' will not fit in region
+ * `UNEXPECTED_SECTIONS'"
+ * you have to figure out the offending input section and add it to the
+ * appropriate output section definition above.
+ */
+ .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
+ }
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds.base
+type: build
diff --git a/spec/build/bsps/riscv/optrambegin.yml b/spec/build/bsps/riscv/optrambegin.yml
new file mode 100644
index 0000000000..cf5d909562
--- /dev/null
+++ b/spec/build/bsps/riscv/optrambegin.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- assert-aligned: 1048576
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 2147483648
+default-by-variant:
+- value: 2147483648
+ variants:
+ - riscv/rv64.*medany
+- value: 1879048192
+ variants:
+ - riscv/rv64.*
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: RISCV_RAM_REGION_BEGIN
+type: build
diff --git a/spec/build/bsps/riscv/optramsize.yml b/spec/build/bsps/riscv/optramsize.yml
new file mode 100644
index 0000000000..bbc226cc13
--- /dev/null
+++ b/spec/build/bsps/riscv/optramsize.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- assert-aligned: 1048576
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 67108864
+default-by-variant:
+- value: 268435456
+ variants:
+ - riscv/frdme310arty
+description: ''
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: RISCV_RAM_REGION_SIZE
+type: build
diff --git a/spec/build/bsps/riscv/riscv/abi.yml b/spec/build/bsps/riscv/riscv/abi.yml
new file mode 100644
index 0000000000..e975b87c4c
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/abi.yml
@@ -0,0 +1,79 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -march=rv32imac
+- -mabi=ilp32
+default-by-variant:
+- value:
+ - -march=rv64imafdc
+ - -mabi=lp64d
+ - -mcmodel=medany
+ variants:
+ - riscv/rv64imafdc_medany
+- value:
+ - -march=rv64imafdc
+ - -mabi=lp64d
+ variants:
+ - riscv/rv64imafdc
+- value:
+ - -march=rv64imafd
+ - -mabi=lp64d
+ - -mcmodel=medany
+ variants:
+ - riscv/rv64imafd_medany
+- value:
+ - -march=rv64imafd
+ - -mabi=lp64d
+ variants:
+ - riscv/rv64imafd
+- value:
+ - -march=rv64imac
+ - -mabi=lp64
+ - -mcmodel=medany
+ variants:
+ - riscv/rv64imac_medany
+- value:
+ - -march=rv64imac
+ - -mabi=lp64
+ variants:
+ - riscv/rv64imac
+- value: []
+ variants:
+ - riscv/rv32imafdc
+- value:
+ - -march=rv32imafd
+ - -mabi=ilp32d
+ variants:
+ - riscv/rv32imafd
+- value:
+ - -march=rv32imafc
+ - -mabi=ilp32f
+ variants:
+ - riscv/rv32imafc
+- value:
+ - -march=rv32im
+ - -mabi=ilp32
+ variants:
+ - riscv/rv32im
+- value:
+ - -march=rv32iac
+ - -mabi=ilp32
+ variants:
+ - riscv/rv32iac
+- value:
+ - -march=rv32i
+ - -mabi=ilp32
+ variants:
+ - riscv/rv32i
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bspfrdme310arty.yml b/spec/build/bsps/riscv/riscv/bspfrdme310arty.yml
new file mode 100644
index 0000000000..a13b12dc3c
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bspfrdme310arty.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: frdme310arty
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv32i.yml b/spec/build/bsps/riscv/riscv/bsprv32i.yml
new file mode 100644
index 0000000000..168839eb31
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv32i.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv32i
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv32iac.yml b/spec/build/bsps/riscv/riscv/bsprv32iac.yml
new file mode 100644
index 0000000000..ce226c6344
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv32iac.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv32iac
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv32im.yml b/spec/build/bsps/riscv/riscv/bsprv32im.yml
new file mode 100644
index 0000000000..a6c77b421b
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv32im.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv32im
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv32imac.yml b/spec/build/bsps/riscv/riscv/bsprv32imac.yml
new file mode 100644
index 0000000000..25b9a4d00f
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv32imac.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv32imac
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv32imafc.yml b/spec/build/bsps/riscv/riscv/bsprv32imafc.yml
new file mode 100644
index 0000000000..fa8ce6a1d1
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv32imafc.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv32imafc
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv32imafd.yml b/spec/build/bsps/riscv/riscv/bsprv32imafd.yml
new file mode 100644
index 0000000000..5ac45fdd2c
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv32imafd.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv32imafd
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv32imafdc.yml b/spec/build/bsps/riscv/riscv/bsprv32imafdc.yml
new file mode 100644
index 0000000000..104a7a1391
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv32imafdc.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv32imafdc
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv64imac.yml b/spec/build/bsps/riscv/riscv/bsprv64imac.yml
new file mode 100644
index 0000000000..99dab47754
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv64imac.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv64imac
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv64imacmedany.yml b/spec/build/bsps/riscv/riscv/bsprv64imacmedany.yml
new file mode 100644
index 0000000000..c0db3e0720
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv64imacmedany.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv64imac_medany
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv64imafd.yml b/spec/build/bsps/riscv/riscv/bsprv64imafd.yml
new file mode 100644
index 0000000000..730a76a41d
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv64imafd.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv64imafd
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv64imafdc.yml b/spec/build/bsps/riscv/riscv/bsprv64imafdc.yml
new file mode 100644
index 0000000000..32a0837941
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv64imafdc.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv64imafdc
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv64imafdcmedany.yml b/spec/build/bsps/riscv/riscv/bsprv64imafdcmedany.yml
new file mode 100644
index 0000000000..e4ecd4736a
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv64imafdcmedany.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv64imafdc_medany
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/bsprv64imafdmedany.yml b/spec/build/bsps/riscv/riscv/bsprv64imafdmedany.yml
new file mode 100644
index 0000000000..9e01572c70
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/bsprv64imafdmedany.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: riscv
+bsp: rv64imafd_medany
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: riscv
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/riscv/riscv/grp.yml b/spec/build/bsps/riscv/riscv/grp.yml
new file mode 100644
index 0000000000..396f8986ec
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/grp.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../optclang
+- role: build-dependency
+ uid: ../../optconsolebaud
+- role: build-dependency
+ uid: ../../optgcc
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../optrambegin
+- role: build-dependency
+ uid: ../optramsize
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optextirqmax
+- role: build-dependency
+ uid: optfdtcpyro
+- role: build-dependency
+ uid: optfdtmxsz
+- role: build-dependency
+ uid: optfdtro
+- role: build-dependency
+ uid: optfdtuboot
+- role: build-dependency
+ uid: optfrdme310arty
+- role: build-dependency
+ uid: opthtif
+- role: build-dependency
+ uid: optns16550max
+- role: build-dependency
+ uid: ../linkcmds
+- role: build-dependency
+ uid: ../linkcmdsbase
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/riscv/riscv/obj.yml b/spec/build/bsps/riscv/riscv/obj.yml
new file mode 100644
index 0000000000..c16dc226c7
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/obj.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/riscv/riscv/include/bsp.h
+ - bsps/riscv/riscv/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/riscv/riscv/include/bsp/fe310-uart.h
+ - bsps/riscv/riscv/include/bsp/irq.h
+ - bsps/riscv/riscv/include/bsp/riscv.h
+- destination: ${BSP_INCLUDEDIR}/dev/serial
+ source:
+ - bsps/riscv/riscv/include/dev/serial/htif.h
+links: []
+source:
+- bsps/riscv/riscv/clock/clockdrv.c
+- bsps/riscv/riscv/console/console-config.c
+- bsps/riscv/riscv/console/fe310-uart.c
+- bsps/riscv/riscv/console/htif.c
+- bsps/riscv/riscv/irq/irq.c
+- bsps/riscv/riscv/start/bsp_fatal_halt.c
+- bsps/riscv/riscv/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-cpucounter.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bsp-fdt.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+type: build
diff --git a/spec/build/bsps/riscv/riscv/objsmp.yml b/spec/build/bsps/riscv/riscv/objsmp.yml
new file mode 100644
index 0000000000..46369f977e
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/objsmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/riscv/riscv/start/bspsmp.c
+type: build
diff --git a/spec/build/bsps/riscv/riscv/optextirqmax.yml b/spec/build/bsps/riscv/riscv/optextirqmax.yml
new file mode 100644
index 0000000000..ffa84748b6
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/optextirqmax.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 64
+default-by-variant: []
+description: |
+ maximum number of external interrupts supported by the BSP (default 64)
+enabled-by: true
+format: '{}'
+links: []
+name: RISCV_MAXIMUM_EXTERNAL_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/riscv/riscv/optfdtcpyro.yml b/spec/build/bsps/riscv/riscv/optfdtcpyro.yml
new file mode 100644
index 0000000000..c26b1ae051
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/optfdtcpyro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ copy the FDT blob into the read-only load area via bsp_fdt_copy()
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_COPY_TO_READ_ONLY_LOAD_AREA
+type: build
diff --git a/spec/build/bsps/riscv/riscv/optfdtmxsz.yml b/spec/build/bsps/riscv/riscv/optfdtmxsz.yml
new file mode 100644
index 0000000000..63a42f5a29
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/optfdtmxsz.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 65536
+default-by-variant: []
+description: |
+ maximum size of the FDT blob in bytes
+enabled-by: true
+format: '{}'
+links: []
+name: BSP_FDT_BLOB_SIZE_MAX
+type: build
diff --git a/spec/build/bsps/riscv/riscv/optfdtro.yml b/spec/build/bsps/riscv/riscv/optfdtro.yml
new file mode 100644
index 0000000000..a61bb2924b
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/optfdtro.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ place the FDT blob into the read-only data area
+enabled-by: true
+links: []
+name: BSP_FDT_BLOB_READ_ONLY
+type: build
diff --git a/spec/build/bsps/riscv/riscv/optfdtuboot.yml b/spec/build/bsps/riscv/riscv/optfdtuboot.yml
new file mode 100644
index 0000000000..5805e912ff
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/optfdtuboot.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ copy the U-Boot provided FDT to an internal storage
+enabled-by: true
+links: []
+name: BSP_START_COPY_FDT_FROM_U_BOOT
+type: build
diff --git a/spec/build/bsps/riscv/riscv/optfrdme310arty.yml b/spec/build/bsps/riscv/riscv/optfrdme310arty.yml
new file mode 100644
index 0000000000..0623694cca
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/optfrdme310arty.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant:
+- value: true
+ variants:
+ - riscv/frdme310arty.*
+description: |
+ enables support sifive Freedom E310 Arty board if defined to a non-zero value,otherwise it is disabled (disabled by default)
+enabled-by: true
+links: []
+name: RISCV_ENABLE_FRDME310ARTY_SUPPORT
+type: build
diff --git a/spec/build/bsps/riscv/riscv/opthtif.yml b/spec/build/bsps/riscv/riscv/opthtif.yml
new file mode 100644
index 0000000000..9161716869
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/opthtif.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ enables the HTIF support if defined to a non-zero value, otherwise it is disabled (disabled by default)
+enabled-by: true
+links: []
+name: RISCV_ENABLE_HTIF_SUPPORT
+type: build
diff --git a/spec/build/bsps/riscv/riscv/optns16550max.yml b/spec/build/bsps/riscv/riscv/optns16550max.yml
new file mode 100644
index 0000000000..7e385a57b7
--- /dev/null
+++ b/spec/build/bsps/riscv/riscv/optns16550max.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 2
+default-by-variant:
+- value: null
+ variants:
+ - riscv/frdme310arty.*
+description: |
+ maximum number of NS16550 devices supported by the console driver (2 by default)
+enabled-by: true
+format: '{}'
+links: []
+name: RISCV_CONSOLE_MAX_NS16550_DEVICES
+type: build
diff --git a/spec/build/bsps/riscv/start.yml b/spec/build/bsps/riscv/start.yml
new file mode 100644
index 0000000000..3b27ba1169
--- /dev/null
+++ b/spec/build/bsps/riscv/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/riscv/shared/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/sh/gensh1/abi.yml b/spec/build/bsps/sh/gensh1/abi.yml
new file mode 100644
index 0000000000..4e3646562a
--- /dev/null
+++ b/spec/build/bsps/sh/gensh1/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -m1
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sh/gensh1/bspgensh1.yml b/spec/build/bsps/sh/gensh1/bspgensh1.yml
new file mode 100644
index 0000000000..1a87d55042
--- /dev/null
+++ b/spec/build/bsps/sh/gensh1/bspgensh1.yml
@@ -0,0 +1,69 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sh
+bsp: gensh1
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gensh1
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sh/gensh1/include/bsp.h
+ - bsps/sh/gensh1/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sh/gensh1/include/bsp/irq.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - bsps/sh/gensh1/include/rtems/score/iosh7032.h
+ - bsps/sh/gensh1/include/rtems/score/ispsh7032.h
+- destination: ${BSP_INCLUDEDIR}/sh
+ source:
+ - bsps/sh/gensh1/include/sh/sci.h
+ - bsps/sh/gensh1/include/sh/sh7_pfc.h
+ - bsps/sh/gensh1/include/sh/sh7_sci.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sh/gensh1/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optcpuclk
+- role: build-dependency
+ uid: optlowinit
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: tstgensh1
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/sh/gensh1/btimer/btimer.c
+- bsps/sh/gensh1/clock/ckinit.c
+- bsps/sh/gensh1/clock/delay.c
+- bsps/sh/gensh1/console/sci.c
+- bsps/sh/gensh1/console/scitab.c
+- bsps/sh/gensh1/start/cpu_asm.c
+- bsps/sh/gensh1/start/ispsh7032.c
+- bsps/sh/shared/console/console.c
+- bsps/sh/shared/start/bsphwinit.c
+- bsps/sh/shared/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-loop.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/sh/gensh1/optcpuclk.yml b/spec/build/bsps/sh/gensh1/optcpuclk.yml
new file mode 100644
index 0000000000..086145a786
--- /dev/null
+++ b/spec/build/bsps/sh/gensh1/optcpuclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 20000000
+default-by-variant: []
+description: |
+ cpu clock rate in HZ
+enabled-by: true
+format: '{}'
+links: []
+name: CPU_CLOCK_RATE_HZ
+type: build
diff --git a/spec/build/bsps/sh/gensh1/optlowinit.yml b/spec/build/bsps/sh/gensh1/optlowinit.yml
new file mode 100644
index 0000000000..60f16b388b
--- /dev/null
+++ b/spec/build/bsps/sh/gensh1/optlowinit.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, selects whether 'early_hw_init()' is called from 'start.S'; 'bsp_hw_init()' is always called from 'bspstart.c'
+enabled-by: true
+links: []
+name: START_HW_INIT
+type: build
diff --git a/spec/build/bsps/sh/gensh1/start.yml b/spec/build/bsps/sh/gensh1/start.yml
new file mode 100644
index 0000000000..010b43e35d
--- /dev/null
+++ b/spec/build/bsps/sh/gensh1/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/sh/gensh1/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/sh/gensh1/tstgensh1.yml b/spec/build/bsps/sh/gensh1/tstgensh1.yml
new file mode 100644
index 0000000000..6851063503
--- /dev/null
+++ b/spec/build/bsps/sh/gensh1/tstgensh1.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ fsdosfsname01: exclude
+ iostream: exclude
+ linpack: exclude
+ record02: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/sh/gensh2/abi.yml b/spec/build/bsps/sh/gensh2/abi.yml
new file mode 100644
index 0000000000..4bd34deb19
--- /dev/null
+++ b/spec/build/bsps/sh/gensh2/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -m2
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sh/gensh2/bspgensh2.yml b/spec/build/bsps/sh/gensh2/bspgensh2.yml
new file mode 100644
index 0000000000..bbe027c54d
--- /dev/null
+++ b/spec/build/bsps/sh/gensh2/bspgensh2.yml
@@ -0,0 +1,77 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sh
+bsp: gensh2
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gensh2
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sh/gensh2/include/bsp.h
+ - bsps/sh/gensh2/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sh/gensh2/include/bsp/irq.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - bsps/sh/gensh2/include/rtems/score/iosh7045.h
+ - bsps/sh/gensh2/include/rtems/score/ispsh7045.h
+- destination: ${BSP_INCLUDEDIR}/sh
+ source:
+ - bsps/sh/gensh2/include/sh/io_types.h
+ - bsps/sh/gensh2/include/sh/sci.h
+ - bsps/sh/gensh2/include/sh/sci_termios.h
+ - bsps/sh/gensh2/include/sh/sh7_pfc.h
+ - bsps/sh/gensh2/include/sh/sh7_sci.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sh/gensh2/start/linkcmds
+ - bsps/sh/gensh2/start/linkcmds.ram
+ - bsps/sh/gensh2/start/linkcmds.rom
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optcpuclk
+- role: build-dependency
+ uid: optevb
+- role: build-dependency
+ uid: optlowinit
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: tstgensh2
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/sh/gensh2/btimer/btimer.c
+- bsps/sh/gensh2/clock/ckinit.c
+- bsps/sh/gensh2/console/config.c
+- bsps/sh/gensh2/console/sci.c
+- bsps/sh/gensh2/console/sci_termios.c
+- bsps/sh/gensh2/console/scitab.c
+- bsps/sh/gensh2/start/cpu_asm.c
+- bsps/sh/gensh2/start/hw_init.c
+- bsps/sh/gensh2/start/ispsh7045.c
+- bsps/sh/shared/console/console.c
+- bsps/sh/shared/start/bsphwinit.c
+- bsps/sh/shared/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/sh/gensh2/optcpuclk.yml b/spec/build/bsps/sh/gensh2/optcpuclk.yml
new file mode 100644
index 0000000000..086145a786
--- /dev/null
+++ b/spec/build/bsps/sh/gensh2/optcpuclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 20000000
+default-by-variant: []
+description: |
+ cpu clock rate in HZ
+enabled-by: true
+format: '{}'
+links: []
+name: CPU_CLOCK_RATE_HZ
+type: build
diff --git a/spec/build/bsps/sh/gensh2/optevb.yml b/spec/build/bsps/sh/gensh2/optevb.yml
new file mode 100644
index 0000000000..45d1a7d0bc
--- /dev/null
+++ b/spec/build/bsps/sh/gensh2/optevb.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, compiles code to jump-start from FLASH, without a monitor
+enabled-by: true
+links: []
+name: STANDALONE_EVB
+type: build
diff --git a/spec/build/bsps/sh/gensh2/optlowinit.yml b/spec/build/bsps/sh/gensh2/optlowinit.yml
new file mode 100644
index 0000000000..60f16b388b
--- /dev/null
+++ b/spec/build/bsps/sh/gensh2/optlowinit.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, selects whether 'early_hw_init()' is called from 'start.S'; 'bsp_hw_init()' is always called from 'bspstart.c'
+enabled-by: true
+links: []
+name: START_HW_INIT
+type: build
diff --git a/spec/build/bsps/sh/gensh2/start.yml b/spec/build/bsps/sh/gensh2/start.yml
new file mode 100644
index 0000000000..1dff0089a6
--- /dev/null
+++ b/spec/build/bsps/sh/gensh2/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/sh/gensh2/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/sh/gensh2/tstgensh2.yml b/spec/build/bsps/sh/gensh2/tstgensh2.yml
new file mode 100644
index 0000000000..6851063503
--- /dev/null
+++ b/spec/build/bsps/sh/gensh2/tstgensh2.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ fsdosfsname01: exclude
+ iostream: exclude
+ linpack: exclude
+ record02: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+type: build
diff --git a/spec/build/bsps/sh/gensh4/abi.yml b/spec/build/bsps/sh/gensh4/abi.yml
new file mode 100644
index 0000000000..cc406a30b6
--- /dev/null
+++ b/spec/build/bsps/sh/gensh4/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -m4
+- -ml
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sh/gensh4/bspgensh4.yml b/spec/build/bsps/sh/gensh4/bspgensh4.yml
new file mode 100644
index 0000000000..9eabffcc0a
--- /dev/null
+++ b/spec/build/bsps/sh/gensh4/bspgensh4.yml
@@ -0,0 +1,72 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sh
+bsp: gensh4
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gensh4
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sh/gensh4/include/bsp.h
+ - bsps/sh/gensh4/include/sdram.h
+ - bsps/sh/gensh4/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sh/gensh4/include/bsp/irq.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - bsps/sh/gensh4/include/rtems/score/iosh7750.h
+ - bsps/sh/gensh4/include/rtems/score/ipl.h
+ - bsps/sh/gensh4/include/rtems/score/ispsh7750.h
+ - bsps/sh/gensh4/include/rtems/score/sh4_regs.h
+ - bsps/sh/gensh4/include/rtems/score/sh7750_regs.h
+- destination: ${BSP_INCLUDEDIR}/sh
+ source:
+ - bsps/sh/gensh4/include/sh/sh4uart.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sh/gensh4/start/linkcmds
+ - bsps/sh/gensh4/start/linkcmds.rom
+ - bsps/sh/gensh4/start/linkcmds.rom2ram
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optcpuclk
+- role: build-dependency
+ uid: optcpydata
+- role: build-dependency
+ uid: optlowinit
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/sh/gensh4/btimer/btimer.c
+- bsps/sh/gensh4/clock/ckinit.c
+- bsps/sh/gensh4/console/console.c
+- bsps/sh/gensh4/console/sh4uart.c
+- bsps/sh/gensh4/start/cpu_asm.c
+- bsps/sh/gensh4/start/hw_init.c
+- bsps/sh/gensh4/start/ispsh7750.c
+- bsps/sh/shared/start/bsphwinit.c
+- bsps/sh/shared/start/bspstart.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/printk-dummy.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/sh/gensh4/optcpuclk.yml b/spec/build/bsps/sh/gensh4/optcpuclk.yml
new file mode 100644
index 0000000000..086145a786
--- /dev/null
+++ b/spec/build/bsps/sh/gensh4/optcpuclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 20000000
+default-by-variant: []
+description: |
+ cpu clock rate in HZ
+enabled-by: true
+format: '{}'
+links: []
+name: CPU_CLOCK_RATE_HZ
+type: build
diff --git a/spec/build/bsps/sh/gensh4/optcpydata.yml b/spec/build/bsps/sh/gensh4/optcpydata.yml
new file mode 100644
index 0000000000..7d49b9b781
--- /dev/null
+++ b/spec/build/bsps/sh/gensh4/optcpydata.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Whether to copy data from ROM to RAM in start.S
+enabled-by: true
+links: []
+name: COPY_DATA_FROM_ROM
+type: build
diff --git a/spec/build/bsps/sh/gensh4/optlowinit.yml b/spec/build/bsps/sh/gensh4/optlowinit.yml
new file mode 100644
index 0000000000..2a90a73753
--- /dev/null
+++ b/spec/build/bsps/sh/gensh4/optlowinit.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Whether to call early_hw_init from start.S
+enabled-by: true
+links: []
+name: START_HW_INIT
+type: build
diff --git a/spec/build/bsps/sh/gensh4/start.yml b/spec/build/bsps/sh/gensh4/start.yml
new file mode 100644
index 0000000000..1a86ac5498
--- /dev/null
+++ b/spec/build/bsps/sh/gensh4/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/sh/gensh4/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/sh/shsim/abi.yml b/spec/build/bsps/sh/shsim/abi.yml
new file mode 100644
index 0000000000..f5dcf145dc
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/abi.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -m4
+- -ml
+default-by-variant:
+- value:
+ - -m2e
+ - -ml
+ variants:
+ - sh/simsh2e
+- value:
+ - -m2
+ variants:
+ - sh/simsh2
+- value:
+ - -m1
+ variants:
+ - sh/simsh1
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sh/shsim/bspsimsh1.yml b/spec/build/bsps/sh/shsim/bspsimsh1.yml
new file mode 100644
index 0000000000..7789de35c7
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/bspsimsh1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sh
+bsp: simsh1
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: shsim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstsimsh1
+source: []
+type: build
diff --git a/spec/build/bsps/sh/shsim/bspsimsh2.yml b/spec/build/bsps/sh/shsim/bspsimsh2.yml
new file mode 100644
index 0000000000..27486849b6
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/bspsimsh2.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sh
+bsp: simsh2
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: shsim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstsimsh2
+source: []
+type: build
diff --git a/spec/build/bsps/sh/shsim/bspsimsh2e.yml b/spec/build/bsps/sh/shsim/bspsimsh2e.yml
new file mode 100644
index 0000000000..098c9deb4b
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/bspsimsh2e.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sh
+bsp: simsh2e
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: shsim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstsimsh2e
+source: []
+type: build
diff --git a/spec/build/bsps/sh/shsim/bspsimsh4.yml b/spec/build/bsps/sh/shsim/bspsimsh4.yml
new file mode 100644
index 0000000000..1327583366
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/bspsimsh4.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sh
+bsp: simsh4
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: shsim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstsimsh4
+source: []
+type: build
diff --git a/spec/build/bsps/sh/shsim/grp.yml b/spec/build/bsps/sh/shsim/grp.yml
new file mode 100644
index 0000000000..9c73c7ca0f
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/grp.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: optcpuclk
+- role: build-dependency
+ uid: optlowinit
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/sh/shsim/obj.yml b/spec/build/bsps/sh/shsim/obj.yml
new file mode 100644
index 0000000000..90de78fbf0
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/obj.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sh/shsim/include/bsp.h
+ - bsps/sh/shsim/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sh/shsim/include/bsp/irq.h
+ - bsps/sh/shsim/include/bsp/syscall.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sh/shsim/start/linkcmds
+links: []
+source:
+- bsps/sh/shared/start/bsphwinit.c
+- bsps/sh/shared/start/bspstart.c
+- bsps/sh/shsim/console/console-debugio.c
+- bsps/sh/shsim/console/console-io.c
+- bsps/sh/shsim/console/console-support.S
+- bsps/sh/shsim/start/cpu_asm.c
+- bsps/sh/shsim/start/ispshgdb.c
+- bsps/sh/shsim/start/sysexit.c
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/clock/clock-simidle.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+type: build
diff --git a/spec/build/bsps/sh/shsim/optcpuclk.yml b/spec/build/bsps/sh/shsim/optcpuclk.yml
new file mode 100644
index 0000000000..086145a786
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/optcpuclk.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 20000000
+default-by-variant: []
+description: |
+ cpu clock rate in HZ
+enabled-by: true
+format: '{}'
+links: []
+name: CPU_CLOCK_RATE_HZ
+type: build
diff --git a/spec/build/bsps/sh/shsim/optlowinit.yml b/spec/build/bsps/sh/shsim/optlowinit.yml
new file mode 100644
index 0000000000..60f16b388b
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/optlowinit.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, selects whether 'early_hw_init()' is called from 'start.S'; 'bsp_hw_init()' is always called from 'bspstart.c'
+enabled-by: true
+links: []
+name: START_HW_INIT
+type: build
diff --git a/spec/build/bsps/sh/shsim/start.yml b/spec/build/bsps/sh/shsim/start.yml
new file mode 100644
index 0000000000..da632db0d7
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/sh/shsim/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/sh/shsim/tstsimsh1.yml b/spec/build/bsps/sh/shsim/tstsimsh1.yml
new file mode 100644
index 0000000000..a915754a76
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/tstsimsh1.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ fsdosfsname01: exclude
+ iostream: exclude
+ linpack: exclude
+ record02: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+- role: build-dependency
+ uid: ../../tstnointrcrit
+- role: build-dependency
+ uid: ../../tstreqtick
+type: build
diff --git a/spec/build/bsps/sh/shsim/tstsimsh2.yml b/spec/build/bsps/sh/shsim/tstsimsh2.yml
new file mode 100644
index 0000000000..a915754a76
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/tstsimsh2.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ fsdosfsname01: exclude
+ iostream: exclude
+ linpack: exclude
+ record02: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+- role: build-dependency
+ uid: ../../tstnointrcrit
+- role: build-dependency
+ uid: ../../tstreqtick
+type: build
diff --git a/spec/build/bsps/sh/shsim/tstsimsh2e.yml b/spec/build/bsps/sh/shsim/tstsimsh2e.yml
new file mode 100644
index 0000000000..a915754a76
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/tstsimsh2e.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ fsdosfsname01: exclude
+ iostream: exclude
+ linpack: exclude
+ record02: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+- role: build-dependency
+ uid: ../../tstnointrcrit
+- role: build-dependency
+ uid: ../../tstreqtick
+type: build
diff --git a/spec/build/bsps/sh/shsim/tstsimsh4.yml b/spec/build/bsps/sh/shsim/tstsimsh4.yml
new file mode 100644
index 0000000000..a915754a76
--- /dev/null
+++ b/spec/build/bsps/sh/shsim/tstsimsh4.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fileio: exclude
+ fsdosfsname01: exclude
+ iostream: exclude
+ linpack: exclude
+ record02: exclude
+ utf8proc01: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+- role: build-dependency
+ uid: ../../tstnointrcrit
+- role: build-dependency
+ uid: ../../tstreqtick
+type: build
diff --git a/spec/build/bsps/sparc/erc32/abi.yml b/spec/build/bsps/sparc/erc32/abi.yml
new file mode 100644
index 0000000000..f8ea9fb8da
--- /dev/null
+++ b/spec/build/bsps/sparc/erc32/abi.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=cypress
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sparc/erc32/bsperc32.yml b/spec/build/bsps/sparc/erc32/bsperc32.yml
new file mode 100644
index 0000000000..ecf630278f
--- /dev/null
+++ b/spec/build/bsps/sparc/erc32/bsperc32.yml
@@ -0,0 +1,76 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc
+bsp: erc32
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: erc32
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sparc/erc32/include/bsp.h
+ - bsps/sparc/erc32/include/erc32.h
+ - bsps/sparc/erc32/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sparc/erc32/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sparc/erc32/start/linkcmds
+ - bsps/sparc/shared/start/linkcmds.base
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optpwrdwnhlt
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/sparc/erc32/btimer/btimer.c
+- bsps/sparc/erc32/clock/ckinit.c
+- bsps/sparc/erc32/console/debugputs.c
+- bsps/sparc/erc32/console/erc32_console.c
+- bsps/sparc/erc32/gnatsupp/gnatsupp.c
+- bsps/sparc/erc32/start/boardinit.S
+- bsps/sparc/erc32/start/bspdelay.c
+- bsps/sparc/erc32/start/bspidle.c
+- bsps/sparc/erc32/start/bspstart.c
+- bsps/sparc/erc32/start/erc32mec.c
+- bsps/sparc/erc32/start/setvec.c
+- bsps/sparc/erc32/start/spurious.c
+- bsps/sparc/shared/gnatcommon.c
+- bsps/sparc/shared/irq/bsp_isr_handler.c
+- bsps/sparc/shared/irq/irq-shared.c
+- bsps/sparc/shared/start/bsp_fatal_exit.c
+- bsps/sparc/shared/start/bsp_fatal_halt.c
+- bsps/sparc/shared/start/bspgetworkarea.c
+type: build
diff --git a/spec/build/bsps/sparc/erc32/objnet.yml b/spec/build/bsps/sparc/erc32/objnet.yml
new file mode 100644
index 0000000000..bc5c468579
--- /dev/null
+++ b/spec/build/bsps/sparc/erc32/objnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/sparc/erc32/net/erc32sonic.c
+type: build
diff --git a/spec/build/bsps/sparc/erc32/objsmp.yml b/spec/build/bsps/sparc/erc32/objsmp.yml
new file mode 100644
index 0000000000..05aa378fb7
--- /dev/null
+++ b/spec/build/bsps/sparc/erc32/objsmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/sparc/erc32/start/bspsmp.c
+type: build
diff --git a/spec/build/bsps/sparc/erc32/optconirq.yml b/spec/build/bsps/sparc/erc32/optconirq.yml
new file mode 100644
index 0000000000..df25d621b4
--- /dev/null
+++ b/spec/build/bsps/sparc/erc32/optconirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ The erc32 console driver can operate in either polled or interrupt mode. Under the simulator (especially when FAST_UART is defined), polled seems to operate better. It is common for a task to print a line (like the end of test message) and then exit. In this case, the program returns control to the simulator command line before the program has even queued the output to the uart. Thus sis has no chance of getting the data out.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/sparc/erc32/optpwrdwnhlt.yml b/spec/build/bsps/sparc/erc32/optpwrdwnhlt.yml
new file mode 100644
index 0000000000..6627a5b071
--- /dev/null
+++ b/spec/build/bsps/sparc/erc32/optpwrdwnhlt.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, CPU is spinning on fatal exit. Otherwise generate system error which will hand over to debugger, simulator, etc.
+enabled-by: true
+links: []
+name: BSP_POWER_DOWN_AT_FATAL_HALT
+type: build
diff --git a/spec/build/bsps/sparc/grp.yml b/spec/build/bsps/sparc/grp.yml
new file mode 100644
index 0000000000..edae33b04a
--- /dev/null
+++ b/spec/build/bsps/sparc/grp.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sparc/include/bsp/gnatcommon.h
+ - bsps/sparc/include/bsp/gr_leon4_n2x.h
+- destination: ${BSP_INCLUDEDIR}/drvmgr
+ source:
+ - bsps/sparc/include/drvmgr/leon2_amba_bus.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/sparc/leon2/abi.yml b/spec/build/bsps/sparc/leon2/abi.yml
new file mode 100644
index 0000000000..21fe1b77ca
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/abi.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=leon
+default-by-variant:
+- value:
+ - -mcpu=leon
+ - -mfix-at697f
+ variants:
+ - sparc/at697f
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sparc/leon2/bspat697f.yml b/spec/build/bsps/sparc/leon2/bspat697f.yml
new file mode 100644
index 0000000000..6cb215721c
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/bspat697f.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc
+bsp: at697f
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: leon2
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/sparc/leon2/bspleon2.yml b/spec/build/bsps/sparc/leon2/bspleon2.yml
new file mode 100644
index 0000000000..0ed296385d
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/bspleon2.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc
+bsp: leon2
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: leon2
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/sparc/leon2/grp.yml b/spec/build/bsps/sparc/leon2/grp.yml
new file mode 100644
index 0000000000..352576f157
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/grp.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objgrlib
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optpwrdwnhlt
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/sparc/leon2/obj.yml b/spec/build/bsps/sparc/leon2/obj.yml
new file mode 100644
index 0000000000..8f2d9a1394
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/obj.yml
@@ -0,0 +1,52 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sparc/leon2/include/bsp.h
+ - bsps/sparc/leon2/include/leon.h
+ - bsps/sparc/leon2/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sparc/leon2/include/bsp/at697_pci.h
+ - bsps/sparc/leon2/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sparc/leon2/start/linkcmds.at697f
+ - bsps/sparc/leon2/start/linkcmds.leon2
+ - bsps/sparc/shared/start/linkcmds.base
+links: []
+source:
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/sparc/leon2/btimer/btimer.c
+- bsps/sparc/leon2/clock/ckinit.c
+- bsps/sparc/leon2/console/console.c
+- bsps/sparc/leon2/console/debugputs.c
+- bsps/sparc/leon2/gnatsupp/gnatsupp.c
+- bsps/sparc/leon2/pci/at697_pci.c
+- bsps/sparc/leon2/start/bspdelay.c
+- bsps/sparc/leon2/start/bspidle.c
+- bsps/sparc/leon2/start/bspstart.c
+- bsps/sparc/leon2/start/cache.c
+- bsps/sparc/leon2/start/setvec.c
+- bsps/sparc/leon2/start/spurious.c
+- bsps/sparc/shared/drvmgr/ambapp_bus_leon2.c
+- bsps/sparc/shared/drvmgr/leon2_amba_bus.c
+- bsps/sparc/shared/gnatcommon.c
+- bsps/sparc/shared/irq/bsp_isr_handler.c
+- bsps/sparc/shared/irq/irq-shared.c
+- bsps/sparc/shared/start/bsp_fatal_exit.c
+- bsps/sparc/shared/start/bsp_fatal_halt.c
+- bsps/sparc/shared/start/bspgetworkarea.c
+type: build
diff --git a/spec/build/bsps/sparc/leon2/objnet.yml b/spec/build/bsps/sparc/leon2/objnet.yml
new file mode 100644
index 0000000000..d27a71022a
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/objnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/sparc/leon2/net/leon_open_eth.c
+- bsps/sparc/leon2/net/leon_smc91111.c
+type: build
diff --git a/spec/build/bsps/sparc/leon2/objsmp.yml b/spec/build/bsps/sparc/leon2/objsmp.yml
new file mode 100644
index 0000000000..bf5d80637d
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/objsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/shared/start/bspsmp-dummy.c
+- bsps/shared/start/getcurrentprocessor-zero.c
+type: build
diff --git a/spec/build/bsps/sparc/leon2/optconirq.yml b/spec/build/bsps/sparc/leon2/optconirq.yml
new file mode 100644
index 0000000000..4163b30aff
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/optconirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ The leon2 console driver can operate in either polled or interrupt mode. Under the simulator (especially when FAST_UART is defined), polled seems to operate better. It is common for a task to print a line (like the end of test message) and then exit. In this case, the program returns control to the simulator command line before the program has even queued the output to the uart. Thus sis has no chance of getting the data out.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/sparc/leon2/optpwrdwnhlt.yml b/spec/build/bsps/sparc/leon2/optpwrdwnhlt.yml
new file mode 100644
index 0000000000..6627a5b071
--- /dev/null
+++ b/spec/build/bsps/sparc/leon2/optpwrdwnhlt.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, CPU is spinning on fatal exit. Otherwise generate system error which will hand over to debugger, simulator, etc.
+enabled-by: true
+links: []
+name: BSP_POWER_DOWN_AT_FATAL_HALT
+type: build
diff --git a/spec/build/bsps/sparc/leon3/abi.yml b/spec/build/bsps/sparc/leon3/abi.yml
new file mode 100644
index 0000000000..b725d5de48
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/abi.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mcpu=leon3
+default-by-variant:
+- value:
+ - -mcpu=leon3
+ - -mfix-ut700
+ variants:
+ - sparc/ut700
+- value:
+ - -mcpu=leon
+ - -mfix-ut699
+ variants:
+ - sparc/ut699
+- value:
+ - -mcpu=leon3
+ - -mfix-gr712rc
+ variants:
+ - sparc/gr712rc
+description: |
+ ABI flags
+enabled-by:
+- gcc
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sparc/leon3/abiclang.yml b/spec/build/bsps/sparc/leon3/abiclang.yml
new file mode 100644
index 0000000000..6c9646e7cd
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/abiclang.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 Hesham Almatary <Hesham.Almatary@cl.cam.ac.uk>
+default:
+- -mcpu=leon3
+default-by-variant:
+- value:
+ - -mcpu=leon3
+ - -mfix-ut700
+ variants:
+ - sparc/ut700
+- value:
+ - -mcpu=leon
+ - -mfix-ut699
+ variants:
+ - sparc/ut699
+- value:
+ - -mcpu=gr712rc
+ variants:
+ - sparc/gr712rc
+- value:
+ - -mcpu=gr740
+ variants:
+ - sparc/gr740
+description: |
+ ABI flags
+enabled-by:
+- clang
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sparc/leon3/bspgr712rc.yml b/spec/build/bsps/sparc/leon3/bspgr712rc.yml
new file mode 100644
index 0000000000..8a065444ab
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/bspgr712rc.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc
+bsp: gr712rc
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: leon3
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/sparc/leon3/bspgr740.yml b/spec/build/bsps/sparc/leon3/bspgr740.yml
new file mode 100644
index 0000000000..a5f3cd30f6
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/bspgr740.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc
+bsp: gr740
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: leon3
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/sparc/leon3/bspleon3.yml b/spec/build/bsps/sparc/leon3/bspleon3.yml
new file mode 100644
index 0000000000..63b4e54f58
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/bspleon3.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc
+bsp: leon3
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: leon3
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/sparc/leon3/bsput699.yml b/spec/build/bsps/sparc/leon3/bsput699.yml
new file mode 100644
index 0000000000..0a2f9ce596
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/bsput699.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc
+bsp: ut699
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: leon3
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/sparc/leon3/bsput700.yml b/spec/build/bsps/sparc/leon3/bsput700.yml
new file mode 100644
index 0000000000..52353fda7d
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/bsput700.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc
+bsp: ut700
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: leon3
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/sparc/leon3/grp.yml b/spec/build/bsps/sparc/leon3/grp.yml
new file mode 100644
index 0000000000..48d73df908
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/grp.yml
@@ -0,0 +1,46 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../linkcmds
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objgrlib
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abiclang
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: objmpci
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: objnetnosmp
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: optconirq
+- role: build-dependency
+ uid: optleon3smp
+- role: build-dependency
+ uid: optpwrdwnhlt
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/sparc/leon3/obj.yml b/spec/build/bsps/sparc/leon3/obj.yml
new file mode 100644
index 0000000000..03629ee620
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/obj.yml
@@ -0,0 +1,62 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sparc/leon3/include/amba.h
+ - bsps/sparc/leon3/include/bsp.h
+ - bsps/sparc/leon3/include/leon.h
+ - bsps/sparc/leon3/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sparc/leon3/include/bsp/irq.h
+ - bsps/sparc/leon3/include/bsp/watchdog.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sparc/leon3/start/linkcmds.gr712rc
+ - bsps/sparc/leon3/start/linkcmds.gr740
+ - bsps/sparc/leon3/start/linkcmds.leon3
+ - bsps/sparc/leon3/start/linkcmds.ut699
+ - bsps/sparc/leon3/start/linkcmds.ut700
+ - bsps/sparc/shared/start/linkcmds.base
+links: []
+source:
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/sparc/leon3/btimer/btimer.c
+- bsps/sparc/leon3/btimer/watchdog.c
+- bsps/sparc/leon3/clock/ckinit.c
+- bsps/sparc/leon3/console/console.c
+- bsps/sparc/leon3/console/printk_support.c
+- bsps/sparc/leon3/gnatsupp/gnatsupp.c
+- bsps/sparc/leon3/start/amba.c
+- bsps/sparc/leon3/start/bsp_fatal_halt.c
+- bsps/sparc/leon3/start/bspclean.c
+- bsps/sparc/leon3/start/bspdelay.c
+- bsps/sparc/leon3/start/bspidle.S
+- bsps/sparc/leon3/start/bspstart.c
+- bsps/sparc/leon3/start/cache.c
+- bsps/sparc/leon3/start/cpucounter.c
+- bsps/sparc/leon3/start/eirq.c
+- bsps/sparc/leon3/start/setvec.c
+- bsps/sparc/leon3/start/spurious.c
+- bsps/sparc/shared/gnatcommon.c
+- bsps/sparc/shared/irq/bsp_isr_handler.c
+- bsps/sparc/shared/irq/irq-shared.c
+- bsps/sparc/shared/pci/gr_cpci_gr740.c
+- bsps/sparc/shared/pci/gr_leon4_n2x.c
+- bsps/sparc/shared/pci/pci_memreg_sparc_be.c
+- bsps/sparc/shared/pci/pci_memreg_sparc_le.c
+- bsps/sparc/shared/start/bsp_fatal_exit.c
+- bsps/sparc/shared/start/bspgetworkarea.c
+type: build
diff --git a/spec/build/bsps/sparc/leon3/objmpci.yml b/spec/build/bsps/sparc/leon3/objmpci.yml
new file mode 100644
index 0000000000..dee85a3cd1
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/objmpci.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+install: []
+links: []
+source:
+- bsps/sparc/leon3/mpci/addrconv.c
+- bsps/sparc/leon3/mpci/getcfg.c
+- bsps/sparc/leon3/mpci/lock.c
+- bsps/sparc/leon3/mpci/mpisr.c
+type: build
diff --git a/spec/build/bsps/sparc/leon3/objnet.yml b/spec/build/bsps/sparc/leon3/objnet.yml
new file mode 100644
index 0000000000..2e7611e8bc
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/objnet.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/sparc/leon3/net/leon_open_eth.c
+- bsps/sparc/leon3/net/leon_smc91111.c
+type: build
diff --git a/spec/build/bsps/sparc/leon3/objnetnosmp.yml b/spec/build/bsps/sparc/leon3/objnetnosmp.yml
new file mode 100644
index 0000000000..3d4a2c3ed9
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/objnetnosmp.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- and:
+ - RTEMS_NETWORKING
+ - not: RTEMS_SMP
+includes:
+- cpukit/libnetworking
+install: []
+links: []
+source:
+- bsps/sparc/leon3/net/leon_greth.c
+type: build
diff --git a/spec/build/bsps/sparc/leon3/objsmp.yml b/spec/build/bsps/sparc/leon3/objsmp.yml
new file mode 100644
index 0000000000..72a43f2a78
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/objsmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- bsps/sparc/leon3/start/bspsmp.c
+type: build
diff --git a/spec/build/bsps/sparc/leon3/optconirq.yml b/spec/build/bsps/sparc/leon3/optconirq.yml
new file mode 100644
index 0000000000..2278f00ef3
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/optconirq.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: 0
+default-by-variant: []
+description: |
+ The leon3 console driver can operate in either polled or interrupt mode. Under the simulator (especially when FAST_UART is defined), polled seems to operate better.
+enabled-by: true
+format: '{}'
+links: []
+name: CONSOLE_USE_INTERRUPTS
+type: build
diff --git a/spec/build/bsps/sparc/leon3/optleon3smp.yml b/spec/build/bsps/sparc/leon3/optleon3smp.yml
new file mode 100644
index 0000000000..c78929c198
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/optleon3smp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Always defined when on a LEON3 to enable the LEON3 support for determining the CPU core number in an SMP configuration.
+enabled-by: true
+links: []
+name: BSP_LEON3_SMP
+type: build
diff --git a/spec/build/bsps/sparc/leon3/optpwrdwnhlt.yml b/spec/build/bsps/sparc/leon3/optpwrdwnhlt.yml
new file mode 100644
index 0000000000..8923870017
--- /dev/null
+++ b/spec/build/bsps/sparc/leon3/optpwrdwnhlt.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, CPU is powered down on fatal exit. Otherwise generate system error which will hand over to debugger, simulator, etc.
+enabled-by: true
+links: []
+name: BSP_POWER_DOWN_AT_FATAL_HALT
+type: build
diff --git a/spec/build/bsps/sparc/start.yml b/spec/build/bsps/sparc/start.yml
new file mode 100644
index 0000000000..65293d8d8a
--- /dev/null
+++ b/spec/build/bsps/sparc/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/sparc/shared/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/sparc64/grp.yml b/spec/build/bsps/sparc64/grp.yml
new file mode 100644
index 0000000000..83d85d1a01
--- /dev/null
+++ b/spec/build/bsps/sparc64/grp.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sparc64/include/asm.h
+ - bsps/sparc64/include/traptable.h
+- destination: ${BSP_INCLUDEDIR}/arch
+ source:
+ - bsps/sparc64/include/arch/arch.h
+ - bsps/sparc64/include/arch/boot.h
+ - bsps/sparc64/include/arch/regdef.h
+ - bsps/sparc64/include/arch/stack.h
+- destination: ${BSP_INCLUDEDIR}/arch/mm
+ source:
+ - bsps/sparc64/include/arch/mm/cache_spec.h
+ - bsps/sparc64/include/arch/mm/doxygen.h
+ - bsps/sparc64/include/arch/mm/frame.h
+ - bsps/sparc64/include/arch/mm/mmu.h
+ - bsps/sparc64/include/arch/mm/page.h
+ - bsps/sparc64/include/arch/mm/tlb.h
+ - bsps/sparc64/include/arch/mm/tte.h
+- destination: ${BSP_INCLUDEDIR}/arch/mm/sun4u
+ source:
+ - bsps/sparc64/include/arch/mm/sun4u/frame.h
+ - bsps/sparc64/include/arch/mm/sun4u/mmu.h
+ - bsps/sparc64/include/arch/mm/sun4u/page.h
+ - bsps/sparc64/include/arch/mm/sun4u/tlb.h
+ - bsps/sparc64/include/arch/mm/sun4u/tte.h
+- destination: ${BSP_INCLUDEDIR}/arch/sun4u
+ source:
+ - bsps/sparc64/include/arch/sun4u/arch.h
+- destination: ${BSP_INCLUDEDIR}/boot
+ source:
+ - bsps/sparc64/include/boot/align.h
+ - bsps/sparc64/include/boot/balloc.h
+ - bsps/sparc64/include/boot/gentypes.h
+ - bsps/sparc64/include/boot/main.h
+ - bsps/sparc64/include/boot/ofw.h
+ - bsps/sparc64/include/boot/ofw_tree.h
+ - bsps/sparc64/include/boot/ofwarch.h
+ - bsps/sparc64/include/boot/register.h
+ - bsps/sparc64/include/boot/types.h
+- destination: ${BSP_INCLUDEDIR}/genarch/ofw
+ source:
+ - bsps/sparc64/include/genarch/ofw/ofw_tree.h
+- destination: ${BSP_INCLUDEDIR}/kernel
+ source:
+ - bsps/sparc64/include/kernel/align.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/sparc64/niagara/abi.yml b/spec/build/bsps/sparc64/niagara/abi.yml
new file mode 100644
index 0000000000..d8aadc1831
--- /dev/null
+++ b/spec/build/bsps/sparc64/niagara/abi.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -DSUN4V
+- -mcpu=niagara
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sparc64/niagara/bspniagara.yml b/spec/build/bsps/sparc64/niagara/bspniagara.yml
new file mode 100644
index 0000000000..f92726a3a3
--- /dev/null
+++ b/spec/build/bsps/sparc64/niagara/bspniagara.yml
@@ -0,0 +1,63 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc64
+bsp: niagara
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: niagara
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sparc64/niagara/include/bsp.h
+ - bsps/sparc64/niagara/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sparc64/niagara/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sparc64/shared/start/linkcmds
+ - bsps/sparc64/shared/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/sparc64/niagara/start/bspclean.c
+- bsps/sparc64/niagara/start/bspinit.S
+- bsps/sparc64/niagara/start/m5op_sparc.S
+- bsps/sparc64/shared/clock/ckinit.c
+- bsps/sparc64/shared/console/conscfg.c
+- bsps/sparc64/shared/helenos/boot/genarch/balloc.c
+- bsps/sparc64/shared/helenos/boot/genarch/ofw.c
+- bsps/sparc64/shared/helenos/boot/genarch/ofw_tree.c
+- bsps/sparc64/shared/helenos/boot/sparc64/loader/main.c
+- bsps/sparc64/shared/helenos/boot/sparc64/loader/ofwarch.c
+- bsps/sparc64/shared/helenos/boot/sparc64/loader/ofwasm.S
+- bsps/sparc64/shared/start/halt.S
+- bsps/sparc64/shared/start/setvec.c
+type: build
diff --git a/spec/build/bsps/sparc64/start.yml b/spec/build/bsps/sparc64/start.yml
new file mode 100644
index 0000000000..526fb049fd
--- /dev/null
+++ b/spec/build/bsps/sparc64/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/sparc64/shared/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/sparc64/usiii/abi.yml b/spec/build/bsps/sparc64/usiii/abi.yml
new file mode 100644
index 0000000000..77dce75223
--- /dev/null
+++ b/spec/build/bsps/sparc64/usiii/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -DSUN4U
+- -DUS3
+- -mcpu=ultrasparc3
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/sparc64/usiii/bspusiii.yml b/spec/build/bsps/sparc64/usiii/bspusiii.yml
new file mode 100644
index 0000000000..28057de722
--- /dev/null
+++ b/spec/build/bsps/sparc64/usiii/bspusiii.yml
@@ -0,0 +1,67 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: sparc64
+bsp: usiii
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: usiii
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/sparc64/usiii/include/bsp.h
+ - bsps/sparc64/usiii/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/sparc64/usiii/include/bsp/irq.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/sparc64/shared/start/linkcmds
+ - bsps/sparc64/shared/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: optclkfastidle
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/legacy-console-control.c
+- bsps/shared/dev/serial/legacy-console-select.c
+- bsps/shared/dev/serial/legacy-console.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/sparc64/shared/clock/ckinit.c
+- bsps/sparc64/shared/console/conscfg.c
+- bsps/sparc64/shared/helenos/boot/genarch/balloc.c
+- bsps/sparc64/shared/helenos/boot/genarch/ofw.c
+- bsps/sparc64/shared/helenos/boot/genarch/ofw_tree.c
+- bsps/sparc64/shared/helenos/boot/sparc64/loader/main.c
+- bsps/sparc64/shared/helenos/boot/sparc64/loader/ofwarch.c
+- bsps/sparc64/shared/helenos/boot/sparc64/loader/ofwasm.S
+- bsps/sparc64/shared/helenos/kernel/sparc64/src/cache.S
+- bsps/sparc64/shared/helenos/kernel/sparc64/src/sun4u/takemmu.S
+- bsps/sparc64/shared/start/halt.S
+- bsps/sparc64/shared/start/setvec.c
+- bsps/sparc64/shared/start/trap_table.S
+- bsps/sparc64/usiii/start/bspinit.S
+type: build
diff --git a/spec/build/bsps/sparc64/usiii/optclkfastidle.yml b/spec/build/bsps/sparc64/usiii/optclkfastidle.yml
new file mode 100644
index 0000000000..5aed542b4b
--- /dev/null
+++ b/spec/build/bsps/sparc64/usiii/optclkfastidle.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ If defined, speed up the clock ticks while the idle task is running so time spent in the idle task is minimized. This significantly reduces the wall time required to execute the RTEMS test suites.
+enabled-by: true
+links: []
+name: SIMSPARC_FAST_IDLE
+type: build
diff --git a/spec/build/bsps/tst.yml b/spec/build/bsps/tst.yml
new file mode 100644
index 0000000000..8610b375c3
--- /dev/null
+++ b/spec/build/bsps/tst.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ capture: user-input
+ dhrystone: benchmark
+ dl10: user-input
+ fileio: user-input
+ linpack: benchmark
+ monitor: user-input
+ psxfenv01: expected-fail
+ termios: user-input
+ top: user-input
+ whetstone: benchmark
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: |
+ Provides general test states.
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/tstnoiconv.yml b/spec/build/bsps/tstnoiconv.yml
new file mode 100644
index 0000000000..30de0ef1b4
--- /dev/null
+++ b/spec/build/bsps/tstnoiconv.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ iconv: exclude
+ iconvclose: exclude
+ iconvopen: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/tstnointrcrit.yml b/spec/build/bsps/tstnointrcrit.yml
new file mode 100644
index 0000000000..0460aaabb3
--- /dev/null
+++ b/spec/build/bsps/tstnointrcrit.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ psxintrcritical01: exclude
+ spintrcritical01: exclude
+ spintrcritical02: exclude
+ spintrcritical03: exclude
+ spintrcritical04: exclude
+ spintrcritical05: exclude
+ spintrcritical06: exclude
+ spintrcritical07: exclude
+ spintrcritical08: exclude
+ spintrcritical09: exclude
+ spintrcritical10: exclude
+ spintrcritical11: exclude
+ spintrcritical12: exclude
+ spintrcritical13: exclude
+ spintrcritical14: exclude
+ spintrcritical15: exclude
+ spintrcritical16: exclude
+ spintrcritical17: exclude
+ spintrcritical18: exclude
+ spintrcritical20: exclude
+ spintrcritical21: exclude
+ spintrcritical22: exclude
+ spintrcritical23: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/tstnojffs2.yml b/spec/build/bsps/tstnojffs2.yml
new file mode 100644
index 0000000000..4742d42919
--- /dev/null
+++ b/spec/build/bsps/tstnojffs2.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ fsjffs2gc01: exclude
+ jffs2fserror: exclude
+ jffs2fslink: exclude
+ jffs2fspatheval: exclude
+ jffs2fspermission: exclude
+ jffs2fsrdwr: exclude
+ jffs2fsscandir01: exclude
+ jffs2fssymlink: exclude
+ jffs2fstime: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/tstnolibdl.yml b/spec/build/bsps/tstnolibdl.yml
new file mode 100644
index 0000000000..db89e83130
--- /dev/null
+++ b/spec/build/bsps/tstnolibdl.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ dl01: exclude
+ dl02: exclude
+ dl03: exclude
+ dl04: exclude
+ dl05: exclude
+ dl06: exclude
+ dl07: exclude
+ dl08: exclude
+ dl09: exclude
+ dl10: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/tstnorfs.yml b/spec/build/bsps/tstnorfs.yml
new file mode 100644
index 0000000000..ba8ae1c21e
--- /dev/null
+++ b/spec/build/bsps/tstnorfs.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ mrfsfserror: exclude
+ mrfsfsfpathconf: exclude
+ mrfsfslink: exclude
+ mrfsfspatheval: exclude
+ mrfsfspermission: exclude
+ mrfsfsrdwr: exclude
+ mrfsfsrename: exclude
+ mrfsfsscandir01: exclude
+ mrfsfssymlink: exclude
+ mrfsfstime: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/tstreqtick.yml b/spec/build/bsps/tstreqtick.yml
new file mode 100644
index 0000000000..e3ff8389b3
--- /dev/null
+++ b/spec/build/bsps/tstreqtick.yml
@@ -0,0 +1,59 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ cpuuse: exclude
+ psx07: exclude
+ psx09: exclude
+ psx10: exclude
+ psx11: exclude
+ psxcancel01: exclude
+ psxgetrusage01: exclude
+ psxintrcritical01: exclude
+ psxsignal01: exclude
+ psxsignal02: exclude
+ psxspin01: exclude
+ psxtime: exclude
+ psxtimes01: exclude
+ sp04: exclude
+ sp14: exclude
+ sp19: exclude
+ sp35: exclude
+ sp38: exclude
+ sp44: exclude
+ sp69: exclude
+ spcbssched02: exclude
+ spcbssched03: exclude
+ spcontext01: exclude
+ spcpucounter01: exclude
+ spedfsched03: exclude
+ spintrcritical01: exclude
+ spintrcritical02: exclude
+ spintrcritical03: exclude
+ spintrcritical04: exclude
+ spintrcritical05: exclude
+ spintrcritical06: exclude
+ spintrcritical07: exclude
+ spintrcritical08: exclude
+ spintrcritical09: exclude
+ spintrcritical10: exclude
+ spintrcritical11: exclude
+ spintrcritical12: exclude
+ spintrcritical13: exclude
+ spintrcritical14: exclude
+ spintrcritical15: exclude
+ spintrcritical16: exclude
+ spintrcritical17: exclude
+ spintrcritical18: exclude
+ spintrcritical19: exclude
+ spintrcritical20: exclude
+ spnsext01: exclude
+ spqreslib: exclude
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/bsps/tstsmallmem.yml b/spec/build/bsps/tstsmallmem.yml
new file mode 100644
index 0000000000..a7924e732f
--- /dev/null
+++ b/spec/build/bsps/tstsmallmem.yml
@@ -0,0 +1,128 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ flashdisk01: exclude
+ fsdosfsname01: exclude
+ linpack: exclude
+ psxconfig01: exclude
+ psxusleep: exclude
+ record02: exclude
+ sp47: exclude
+ spstkalloc02: exclude
+- set-value: -DPER_ALLOCATION=10
+- append-test-cppflags: sp71
+- set-value: -DMAXIMUM_DISTRIBUTION=10
+- append-test-cppflags: tmck
+- set-value: -DOPERATION_COUNT=3
+- append-test-cppflags: psxtmbarrier01
+- append-test-cppflags: psxtmbarrier02
+- append-test-cppflags: psxtmbarrier03
+- append-test-cppflags: psxtmbarrier04
+- append-test-cppflags: psxtmbarrierattr01
+- append-test-cppflags: psxtmcleanup01
+- append-test-cppflags: psxtmclocknanosleep01
+- append-test-cppflags: psxtmclocknanosleep02
+- append-test-cppflags: psxtmclocknanosleep03
+- append-test-cppflags: psxtmcond01
+- append-test-cppflags: psxtmcond02
+- append-test-cppflags: psxtmcond03
+- append-test-cppflags: psxtmcond04
+- append-test-cppflags: psxtmcond05
+- append-test-cppflags: psxtmcond06
+- append-test-cppflags: psxtmcond07
+- append-test-cppflags: psxtmcond08
+- append-test-cppflags: psxtmcond09
+- append-test-cppflags: psxtmcond10
+- append-test-cppflags: psxtmkey01
+- append-test-cppflags: psxtmkey02
+- append-test-cppflags: psxtmmq01
+- append-test-cppflags: psxtmmqrcvblock01
+- append-test-cppflags: psxtmmqrcvblock02
+- append-test-cppflags: psxtmmutex01
+- append-test-cppflags: psxtmmutex02
+- append-test-cppflags: psxtmmutex03
+- append-test-cppflags: psxtmmutex04
+- append-test-cppflags: psxtmmutex05
+- append-test-cppflags: psxtmmutex06
+- append-test-cppflags: psxtmmutex07
+- append-test-cppflags: psxtmmutexattr01
+- append-test-cppflags: psxtmnanosleep01
+- append-test-cppflags: psxtmnanosleep02
+- append-test-cppflags: psxtmonce01
+- append-test-cppflags: psxtmrwlock01
+- append-test-cppflags: psxtmrwlock02
+- append-test-cppflags: psxtmrwlock03
+- append-test-cppflags: psxtmrwlock04
+- append-test-cppflags: psxtmrwlock05
+- append-test-cppflags: psxtmrwlock06
+- append-test-cppflags: psxtmrwlock07
+- append-test-cppflags: psxtmsem01
+- append-test-cppflags: psxtmsem02
+- append-test-cppflags: psxtmsem03
+- append-test-cppflags: psxtmsem04
+- append-test-cppflags: psxtmsem05
+- append-test-cppflags: psxtmsleep01
+- append-test-cppflags: psxtmsleep02
+- append-test-cppflags: psxtmthread01
+- append-test-cppflags: psxtmthread02
+- append-test-cppflags: psxtmthread03
+- append-test-cppflags: psxtmthread04
+- append-test-cppflags: psxtmthread05
+- append-test-cppflags: psxtmthread06
+- append-test-cppflags: psxtmthreadattr01
+- append-test-cppflags: tm01
+- append-test-cppflags: tm02
+- append-test-cppflags: tm03
+- append-test-cppflags: tm04
+- append-test-cppflags: tm05
+- append-test-cppflags: tm06
+- append-test-cppflags: tm07
+- append-test-cppflags: tm08
+- append-test-cppflags: tm09
+- append-test-cppflags: tm10
+- append-test-cppflags: tm11
+- append-test-cppflags: tm12
+- append-test-cppflags: tm13
+- append-test-cppflags: tm14
+- append-test-cppflags: tm15
+- append-test-cppflags: tm16
+- append-test-cppflags: tm17
+- append-test-cppflags: tm18
+- append-test-cppflags: tm19
+- append-test-cppflags: tm20
+- append-test-cppflags: tm21
+- append-test-cppflags: tm22
+- append-test-cppflags: tm23
+- append-test-cppflags: tm24
+- append-test-cppflags: tm25
+- append-test-cppflags: tm26
+- append-test-cppflags: tm27
+- append-test-cppflags: tm28
+- append-test-cppflags: tm29
+- append-test-cppflags: tm30
+- append-test-cppflags: tm31
+- append-test-cppflags: tm32
+- append-test-cppflags: tm33
+- append-test-cppflags: tm34
+- append-test-cppflags: tm35
+- append-test-cppflags: tm36
+- append-test-cppflags: tmck
+- append-test-cppflags: tmcontext01
+- append-test-cppflags: tmfine01
+- append-test-cppflags: tmonetoone
+- append-test-cppflags: tmtimer01
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: tstnoiconv
+- role: build-dependency
+ uid: tstnojffs2
+- role: build-dependency
+ uid: tstnolibdl
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/abi.yml b/spec/build/bsps/v850/gdbv850sim/abi.yml
new file mode 100644
index 0000000000..7defa55c80
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/abi.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mv850
+default-by-variant:
+- value:
+ - -mv850es
+ variants:
+ - v850/v850essim
+- value:
+ - -mv850e
+ variants:
+ - v850/v850esim
+- value:
+ - -mv850e2v3
+ variants:
+ - v850/v850e2v3sim
+- value:
+ - -mv850e2
+ variants:
+ - v850/v850e2sim
+- value:
+ - -mv850e1
+ variants:
+ - v850/v850e1sim
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/bspv850e1sim.yml b/spec/build/bsps/v850/gdbv850sim/bspv850e1sim.yml
new file mode 100644
index 0000000000..b33b5d32f6
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/bspv850e1sim.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: v850
+bsp: v850e1sim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gdbv850sim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstreqtick
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/bspv850e2sim.yml b/spec/build/bsps/v850/gdbv850sim/bspv850e2sim.yml
new file mode 100644
index 0000000000..e9db30bea6
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/bspv850e2sim.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: v850
+bsp: v850e2sim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gdbv850sim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstreqtick
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/bspv850e2v3sim.yml b/spec/build/bsps/v850/gdbv850sim/bspv850e2v3sim.yml
new file mode 100644
index 0000000000..acc439b720
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/bspv850e2v3sim.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: v850
+bsp: v850e2v3sim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gdbv850sim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstreqtick
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/bspv850esim.yml b/spec/build/bsps/v850/gdbv850sim/bspv850esim.yml
new file mode 100644
index 0000000000..d6418536b3
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/bspv850esim.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: v850
+bsp: v850esim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gdbv850sim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstreqtick
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/bspv850essim.yml b/spec/build/bsps/v850/gdbv850sim/bspv850essim.yml
new file mode 100644
index 0000000000..5916a1ca6f
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/bspv850essim.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: v850
+bsp: v850essim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gdbv850sim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstreqtick
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/bspv850sim.yml b/spec/build/bsps/v850/gdbv850sim/bspv850sim.yml
new file mode 100644
index 0000000000..3288b8e63f
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/bspv850sim.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: v850
+bsp: v850sim
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: gdbv850sim
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../tstreqtick
+- role: build-dependency
+ uid: grp
+source: []
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/grp.yml b/spec/build/bsps/v850/gdbv850sim/grp.yml
new file mode 100644
index 0000000000..1c31b7abe3
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/grp.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirqdflt
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/v850/gdbv850sim/obj.yml b/spec/build/bsps/v850/gdbv850sim/obj.yml
new file mode 100644
index 0000000000..384c23542e
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/obj.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/v850/gdbv850sim/include/bsp.h
+ - bsps/v850/gdbv850sim/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/v850/gdbv850sim/include/bsp/irq.h
+ - bsps/v850/gdbv850sim/include/bsp/syscall.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/v850/gdbv850sim/start/linkcmds
+links: []
+source:
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/clock/clock-simidle.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-polled.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspstart-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/v850/gdbv850sim/console/console-io.c
+- bsps/v850/gdbv850sim/start/bspreset.c
+- bsps/v850/gdbv850sim/start/trap.S
+- bsps/v850/shared/start/crt1.c
+type: build
diff --git a/spec/build/bsps/v850/gdbv850sim/start.yml b/spec/build/bsps/v850/gdbv850sim/start.yml
new file mode 100644
index 0000000000..d1ffc46527
--- /dev/null
+++ b/spec/build/bsps/v850/gdbv850sim/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/v850/gdbv850sim/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/x86_64/amd64/abi.yml b/spec/build/bsps/x86_64/amd64/abi.yml
new file mode 100644
index 0000000000..ca5a815c24
--- /dev/null
+++ b/spec/build/bsps/x86_64/amd64/abi.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -mno-red-zone
+- -mcmodel=large
+- -Werror=return-type
+default-by-variant: []
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/x86_64/amd64/bspamd64.yml b/spec/build/bsps/x86_64/amd64/bspamd64.yml
new file mode 100644
index 0000000000..f11beb15c3
--- /dev/null
+++ b/spec/build/bsps/x86_64/amd64/bspamd64.yml
@@ -0,0 +1,57 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: x86_64
+bsp: amd64
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+family: amd64
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/x86_64/amd64/include/apic.h
+ - bsps/x86_64/amd64/include/bsp.h
+ - bsps/x86_64/amd64/include/clock.h
+ - bsps/x86_64/amd64/include/pic.h
+ - bsps/x86_64/amd64/include/start.h
+ - bsps/x86_64/amd64/include/tm27.h
+- destination: ${BSP_LIBDIR}
+ source:
+ - bsps/x86_64/amd64/start/linkcmds
+links:
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: start
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../../bspopts
+source:
+- bsps/shared/cache/nocache.c
+- bsps/shared/dev/btimer/btimer-stub.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-empty.c
+- bsps/shared/start/sbrk.c
+- bsps/x86_64/amd64/clock/clock.c
+- bsps/x86_64/amd64/console/console.c
+- bsps/x86_64/amd64/interrupts/idt.c
+- bsps/x86_64/amd64/interrupts/isr_handler.S
+- bsps/x86_64/amd64/interrupts/pic.c
+- bsps/x86_64/amd64/start/bspstart.c
+- bsps/x86_64/amd64/start/page.c
+type: build
diff --git a/spec/build/bsps/x86_64/amd64/start.yml b/spec/build/bsps/x86_64/amd64/start.yml
new file mode 100644
index 0000000000..3687f53f5b
--- /dev/null
+++ b/spec/build/bsps/x86_64/amd64/start.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+asflags: []
+build-type: start-file
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- bsps/x86_64/amd64/start/start.S
+target: start.o
+type: build
diff --git a/spec/build/bsps/x86_64/grp.yml b/spec/build/bsps/x86_64/grp.yml
new file mode 100644
index 0000000000..376bab2393
--- /dev/null
+++ b/spec/build/bsps/x86_64/grp.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/x86_64/include/bsp/irq.h
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - bsps/x86_64/include/libcpu/page.h
+ldflags: []
+links: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/cpukit/cfgattrgetaff.yml b/spec/build/cpukit/cfgattrgetaff.yml
new file mode 100644
index 0000000000..d909a7ad81
--- /dev/null
+++ b/spec/build/cpukit/cfgattrgetaff.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_ATTR_GETAFFINITY_NP
+type: build
diff --git a/spec/build/cpukit/cfgattrgetgrdsz.yml b/spec/build/cpukit/cfgattrgetgrdsz.yml
new file mode 100644
index 0000000000..e25c7d7d32
--- /dev/null
+++ b/spec/build/cpukit/cfgattrgetgrdsz.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_ATTR_GETGUARDSIZE
+type: build
diff --git a/spec/build/cpukit/cfgattrgetstack.yml b/spec/build/cpukit/cfgattrgetstack.yml
new file mode 100644
index 0000000000..f0ac46a3c0
--- /dev/null
+++ b/spec/build/cpukit/cfgattrgetstack.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_ATTR_GETSTACK
+type: build
diff --git a/spec/build/cpukit/cfgattrsetaff.yml b/spec/build/cpukit/cfgattrsetaff.yml
new file mode 100644
index 0000000000..9da99651df
--- /dev/null
+++ b/spec/build/cpukit/cfgattrsetaff.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_ATTR_SETAFFINITY_NP
+type: build
diff --git a/spec/build/cpukit/cfgattrsetgrdsz.yml b/spec/build/cpukit/cfgattrsetgrdsz.yml
new file mode 100644
index 0000000000..7f2108a54e
--- /dev/null
+++ b/spec/build/cpukit/cfgattrsetgrdsz.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_ATTR_SETGUARDSIZE
+type: build
diff --git a/spec/build/cpukit/cfgattrsetstack.yml b/spec/build/cpukit/cfgattrsetstack.yml
new file mode 100644
index 0000000000..6e5e8e1674
--- /dev/null
+++ b/spec/build/cpukit/cfgattrsetstack.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_ATTR_SETSTACK
+type: build
diff --git a/spec/build/cpukit/cfgcfghdr.yml b/spec/build/cpukit/cfgcfghdr.yml
new file mode 100644
index 0000000000..efcf15ffd6
--- /dev/null
+++ b/spec/build/cpukit/cfgcfghdr.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: -DHAVE_CONFIG_H=1
+- env-append: CPPFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_CONFIG_H
+type: build
diff --git a/spec/build/cpukit/cfgcleanupctx.yml b/spec/build/cpukit/cfgcleanupctx.yml
new file mode 100644
index 0000000000..3f0d1a8e67
--- /dev/null
+++ b/spec/build/cpukit/cfgcleanupctx.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_STRUCT__PTHREAD_CLEANUP_CONTEXT
+type: build
diff --git a/spec/build/cpukit/cfggetaff.yml b/spec/build/cpukit/cfggetaff.yml
new file mode 100644
index 0000000000..b8c8f1ab06
--- /dev/null
+++ b/spec/build/cpukit/cfggetaff.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_GETAFFINITY_NP
+type: build
diff --git a/spec/build/cpukit/cfggetattr.yml b/spec/build/cpukit/cfggetattr.yml
new file mode 100644
index 0000000000..fcfc3bcedc
--- /dev/null
+++ b/spec/build/cpukit/cfggetattr.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_GETATTR_NP
+type: build
diff --git a/spec/build/cpukit/cfghdr.yml b/spec/build/cpukit/cfghdr.yml
new file mode 100644
index 0000000000..8106a3e227
--- /dev/null
+++ b/spec/build/cpukit/cfghdr.yml
@@ -0,0 +1,69 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-header
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+guard: ''
+include-headers: []
+install-path: null
+links:
+- role: build-dependency
+ uid: cfgattrgetaff
+- role: build-dependency
+ uid: cfgattrgetgrdsz
+- role: build-dependency
+ uid: cfgattrgetstack
+- role: build-dependency
+ uid: cfgattrsetaff
+- role: build-dependency
+ uid: cfgattrsetgrdsz
+- role: build-dependency
+ uid: cfgattrsetstack
+- role: build-dependency
+ uid: cfgcfghdr
+- role: build-dependency
+ uid: cfgcleanupctx
+- role: build-dependency
+ uid: cfggetaff
+- role: build-dependency
+ uid: cfggetattr
+- role: build-dependency
+ uid: cfginttypes
+- role: build-dependency
+ uid: cfgmemory
+- role: build-dependency
+ uid: cfgnewlib
+- role: build-dependency
+ uid: cfgpmtxceilcnst
+- role: build-dependency
+ uid: cfgprionode
+- role: build-dependency
+ uid: cfgpshdprmcnst
+- role: build-dependency
+ uid: cfgrcmd
+- role: build-dependency
+ uid: cfgsetaff
+- role: build-dependency
+ uid: cfgstdatomic
+- role: build-dependency
+ uid: cfgstdint
+- role: build-dependency
+ uid: cfgstdlib
+- role: build-dependency
+ uid: cfgstring
+- role: build-dependency
+ uid: cfgstrings
+- role: build-dependency
+ uid: cfgsysstat
+- role: build-dependency
+ uid: cfgsystypes
+- role: build-dependency
+ uid: cfgszoff
+- role: build-dependency
+ uid: cfgszsize
+- role: build-dependency
+ uid: cfgsztime
+- role: build-dependency
+ uid: cfgunistd
+target: cpukit/include/config.h
+type: build
diff --git a/spec/build/cpukit/cfginttypes.yml b/spec/build/cpukit/cfginttypes.yml
new file mode 100644
index 0000000000..baa25af685
--- /dev/null
+++ b/spec/build/cpukit/cfginttypes.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_INTTYPES_H
+type: build
diff --git a/spec/build/cpukit/cfgmemory.yml b/spec/build/cpukit/cfgmemory.yml
new file mode 100644
index 0000000000..633d98d0cc
--- /dev/null
+++ b/spec/build/cpukit/cfgmemory.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_MEMORY_H
+type: build
diff --git a/spec/build/cpukit/cfgnewlib.yml b/spec/build/cpukit/cfgnewlib.yml
new file mode 100644
index 0000000000..d2ebadc808
--- /dev/null
+++ b/spec/build/cpukit/cfgnewlib.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: RTEMS_NEWLIB
+links: []
+name: RTEMS_NEWLIB
+type: build
diff --git a/spec/build/cpukit/cfgpmtxceilcnst.yml b/spec/build/cpukit/cfgpmtxceilcnst.yml
new file mode 100644
index 0000000000..0baff35782
--- /dev/null
+++ b/spec/build/cpukit/cfgpmtxceilcnst.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: /**/
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_PTHREAD_MUTEX_GETCEILING_CONST
+type: build
diff --git a/spec/build/cpukit/cfgprionode.yml b/spec/build/cpukit/cfgprionode.yml
new file mode 100644
index 0000000000..e26ce4d970
--- /dev/null
+++ b/spec/build/cpukit/cfgprionode.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_STRUCT__PRIORITY_NODE
+type: build
diff --git a/spec/build/cpukit/cfgpshdprmcnst.yml b/spec/build/cpukit/cfgpshdprmcnst.yml
new file mode 100644
index 0000000000..04fa53d142
--- /dev/null
+++ b/spec/build/cpukit/cfgpshdprmcnst.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: /**/
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_PTHREAD_SETSCHEDPARAM_CONST
+type: build
diff --git a/spec/build/cpukit/cfgrcmd.yml b/spec/build/cpukit/cfgrcmd.yml
new file mode 100644
index 0000000000..f65980cbbb
--- /dev/null
+++ b/spec/build/cpukit/cfgrcmd.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_RCMD
+type: build
diff --git a/spec/build/cpukit/cfgsetaff.yml b/spec/build/cpukit/cfgsetaff.yml
new file mode 100644
index 0000000000..04a5f48e2c
--- /dev/null
+++ b/spec/build/cpukit/cfgsetaff.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_DECL_PTHREAD_SETAFFINITY_NP
+type: build
diff --git a/spec/build/cpukit/cfgstdatomic.yml b/spec/build/cpukit/cfgstdatomic.yml
new file mode 100644
index 0000000000..caa724a85e
--- /dev/null
+++ b/spec/build/cpukit/cfgstdatomic.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_STDATOMIC_H
+type: build
diff --git a/spec/build/cpukit/cfgstdint.yml b/spec/build/cpukit/cfgstdint.yml
new file mode 100644
index 0000000000..da6ee92d36
--- /dev/null
+++ b/spec/build/cpukit/cfgstdint.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_STDINT_H
+type: build
diff --git a/spec/build/cpukit/cfgstdlib.yml b/spec/build/cpukit/cfgstdlib.yml
new file mode 100644
index 0000000000..70ba02ab58
--- /dev/null
+++ b/spec/build/cpukit/cfgstdlib.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_STDLIB_H
+type: build
diff --git a/spec/build/cpukit/cfgstring.yml b/spec/build/cpukit/cfgstring.yml
new file mode 100644
index 0000000000..ebd444d539
--- /dev/null
+++ b/spec/build/cpukit/cfgstring.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_STRING_H
+type: build
diff --git a/spec/build/cpukit/cfgstrings.yml b/spec/build/cpukit/cfgstrings.yml
new file mode 100644
index 0000000000..4d202d90c9
--- /dev/null
+++ b/spec/build/cpukit/cfgstrings.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_STRINGS_H
+type: build
diff --git a/spec/build/cpukit/cfgsysstat.yml b/spec/build/cpukit/cfgsysstat.yml
new file mode 100644
index 0000000000..394618ff71
--- /dev/null
+++ b/spec/build/cpukit/cfgsysstat.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_SYS_STAT_H
+type: build
diff --git a/spec/build/cpukit/cfgsystypes.yml b/spec/build/cpukit/cfgsystypes.yml
new file mode 100644
index 0000000000..89494a4edc
--- /dev/null
+++ b/spec/build/cpukit/cfgsystypes.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_SYS_TYPES_H
+type: build
diff --git a/spec/build/cpukit/cfgszoff.yml b/spec/build/cpukit/cfgszoff.yml
new file mode 100644
index 0000000000..edd8861d2e
--- /dev/null
+++ b/spec/build/cpukit/cfgszoff.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: ${__RTEMS_SIZEOF_OFF_T__}
+- substitute: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: SIZEOF_OFF_T
+type: build
diff --git a/spec/build/cpukit/cfgszsize.yml b/spec/build/cpukit/cfgszsize.yml
new file mode 100644
index 0000000000..84926d8e70
--- /dev/null
+++ b/spec/build/cpukit/cfgszsize.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: __SIZEOF_SIZE_T__
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: SIZEOF_SIZE_T
+type: build
diff --git a/spec/build/cpukit/cfgsztime.yml b/spec/build/cpukit/cfgsztime.yml
new file mode 100644
index 0000000000..449eee7699
--- /dev/null
+++ b/spec/build/cpukit/cfgsztime.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: ${__RTEMS_SIZEOF_TIME_T__}
+- substitute: null
+- define-unquoted: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: SIZEOF_TIME_T
+type: build
diff --git a/spec/build/cpukit/cfgunistd.yml b/spec/build/cpukit/cfgunistd.yml
new file mode 100644
index 0000000000..c48ea77b8e
--- /dev/null
+++ b/spec/build/cpukit/cfgunistd.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: HAVE_UNISTD_H
+type: build
diff --git a/spec/build/cpukit/cpuarm.yml b/spec/build/cpukit/cpuarm.yml
new file mode 100644
index 0000000000..6bbbb08c36
--- /dev/null
+++ b/spec/build/cpukit/cpuarm.yml
@@ -0,0 +1,62 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- arm
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - cpukit/score/cpu/arm/include/libcpu/arm-cp15.h
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/arm/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/arm/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/arm/include/rtems/score/arm.h
+ - cpukit/score/cpu/arm/include/rtems/score/armv4.h
+ - cpukit/score/cpu/arm/include/rtems/score/armv7m.h
+ - cpukit/score/cpu/arm/include/rtems/score/cpu.h
+ - cpukit/score/cpu/arm/include/rtems/score/cpu_asm.h
+ - cpukit/score/cpu/arm/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/arm/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/arm/include/rtems/score/paravirt.h
+links: []
+source:
+- cpukit/score/cpu/arm/__aeabi_read_tp.c
+- cpukit/score/cpu/arm/arm-context-validate.S
+- cpukit/score/cpu/arm/arm-context-volatile-clobber.S
+- cpukit/score/cpu/arm/arm_exc_abort.S
+- cpukit/score/cpu/arm/arm-exception-default.c
+- cpukit/score/cpu/arm/arm-exception-frame-print.c
+- cpukit/score/cpu/arm/arm_exc_interrupt.S
+- cpukit/score/cpu/arm/armv4-exception-default.S
+- cpukit/score/cpu/arm/armv4-sync-synchronize.c
+- cpukit/score/cpu/arm/armv7m-context-initialize.c
+- cpukit/score/cpu/arm/armv7m-context-restore.c
+- cpukit/score/cpu/arm/armv7m-context-switch.c
+- cpukit/score/cpu/arm/armv7m-exception-default.c
+- cpukit/score/cpu/arm/armv7m-exception-handler-get.c
+- cpukit/score/cpu/arm/armv7m-exception-handler-set.c
+- cpukit/score/cpu/arm/armv7m-exception-priority-get.c
+- cpukit/score/cpu/arm/armv7m-exception-priority-handler.c
+- cpukit/score/cpu/arm/armv7m-exception-priority-set.c
+- cpukit/score/cpu/arm/armv7m-initialize.c
+- cpukit/score/cpu/arm/armv7m-isr-dispatch.c
+- cpukit/score/cpu/arm/armv7m-isr-enter-leave.c
+- cpukit/score/cpu/arm/armv7m-isr-level-get.c
+- cpukit/score/cpu/arm/armv7m-isr-level-set.c
+- cpukit/score/cpu/arm/armv7m-isr-vector-install.c
+- cpukit/score/cpu/arm/armv7m-multitasking-start-stop.c
+- cpukit/score/cpu/arm/armv7-thread-idle.c
+- cpukit/score/cpu/arm/cpu_asm.S
+- cpukit/score/cpu/arm/cpu.c
+- cpukit/score/cpu/arm/__tls_get_addr.c
+type: build
diff --git a/spec/build/cpukit/cpubfin.yml b/spec/build/cpukit/cpubfin.yml
new file mode 100644
index 0000000000..69698ba67d
--- /dev/null
+++ b/spec/build/cpukit/cpubfin.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- bfin
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/bfin/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/bfin/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/bfin
+ source:
+ - cpukit/score/cpu/bfin/include/rtems/bfin/bf52x.h
+ - cpukit/score/cpu/bfin/include/rtems/bfin/bf533.h
+ - cpukit/score/cpu/bfin/include/rtems/bfin/bfin.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/bfin/include/rtems/score/bfin.h
+ - cpukit/score/cpu/bfin/include/rtems/score/cpu.h
+ - cpukit/score/cpu/bfin/include/rtems/score/cpu_asm.h
+ - cpukit/score/cpu/bfin/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/bfin/include/rtems/score/cpuimpl.h
+links: []
+source:
+- cpukit/score/cpu/bfin/bfin-exception-frame-print.c
+- cpukit/score/cpu/bfin/cpu_asm.S
+- cpukit/score/cpu/bfin/cpu.c
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+type: build
diff --git a/spec/build/cpukit/cpui386.yml b/spec/build/cpukit/cpui386.yml
new file mode 100644
index 0000000000..d24f2622b3
--- /dev/null
+++ b/spec/build/cpukit/cpui386.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- i386
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/i386/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/i386/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/i386/include/rtems/score/cpu.h
+ - cpukit/score/cpu/i386/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/i386/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/i386/include/rtems/score/i386.h
+ - cpukit/score/cpu/i386/include/rtems/score/idtr.h
+ - cpukit/score/cpu/i386/include/rtems/score/interrupts.h
+ - cpukit/score/cpu/i386/include/rtems/score/paravirt.h
+ - cpukit/score/cpu/i386/include/rtems/score/registers.h
+links: []
+source:
+- cpukit/score/cpu/i386/cpu_asm.S
+- cpukit/score/cpu/i386/cpu.c
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+- cpukit/score/cpu/no_cpu/cpuidle.c
+type: build
diff --git a/spec/build/cpukit/cpulm32.yml b/spec/build/cpukit/cpulm32.yml
new file mode 100644
index 0000000000..b9d1c0facb
--- /dev/null
+++ b/spec/build/cpukit/cpulm32.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- lm32
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/lm32/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/lm32/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/lm32/include/rtems/score/cpu.h
+ - cpukit/score/cpu/lm32/include/rtems/score/cpu_asm.h
+ - cpukit/score/cpu/lm32/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/lm32/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/lm32/include/rtems/score/lm32.h
+links: []
+source:
+- cpukit/score/cpu/lm32/cpu_asm.S
+- cpukit/score/cpu/lm32/cpu.c
+- cpukit/score/cpu/lm32/irq.c
+- cpukit/score/cpu/lm32/lm32-exception-frame-print.c
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+type: build
diff --git a/spec/build/cpukit/cpum68k.yml b/spec/build/cpukit/cpum68k.yml
new file mode 100644
index 0000000000..b6eb630078
--- /dev/null
+++ b/spec/build/cpukit/cpum68k.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- m68k
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/m68k/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/m68k/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/m68k
+ source:
+ - cpukit/score/cpu/m68k/include/rtems/m68k/m68302.h
+ - cpukit/score/cpu/m68k/include/rtems/m68k/m68360.h
+ - cpukit/score/cpu/m68k/include/rtems/m68k/qsm.h
+ - cpukit/score/cpu/m68k/include/rtems/m68k/sim.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/m68k/include/rtems/score/cpu.h
+ - cpukit/score/cpu/m68k/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/m68k/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/m68k/include/rtems/score/m68k.h
+links: []
+source:
+- cpukit/score/cpu/m68k/cpu_asm.S
+- cpukit/score/cpu/m68k/cpu.c
+- cpukit/score/cpu/m68k/m68k-exception-frame-print.c
+- cpukit/score/cpu/m68k/__m68k_read_tp.c
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+type: build
diff --git a/spec/build/cpukit/cpumips.yml b/spec/build/cpukit/cpumips.yml
new file mode 100644
index 0000000000..c9d5509804
--- /dev/null
+++ b/spec/build/cpukit/cpumips.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- mips
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/mips/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/mips/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/mips
+ source:
+ - cpukit/score/cpu/mips/include/rtems/mips/idtcpu.h
+ - cpukit/score/cpu/mips/include/rtems/mips/iregdef.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/mips/include/rtems/score/cpu.h
+ - cpukit/score/cpu/mips/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/mips/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/mips/include/rtems/score/mips.h
+links: []
+source:
+- cpukit/score/cpu/mips/cpu_asm.S
+- cpukit/score/cpu/mips/cpu.c
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+type: build
diff --git a/spec/build/cpukit/cpumoxie.yml b/spec/build/cpukit/cpumoxie.yml
new file mode 100644
index 0000000000..42a45155ec
--- /dev/null
+++ b/spec/build/cpukit/cpumoxie.yml
@@ -0,0 +1,32 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- moxie
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/moxie/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/moxie/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/moxie/include/rtems/score/cpu.h
+ - cpukit/score/cpu/moxie/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/moxie/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/moxie/include/rtems/score/moxie.h
+links: []
+source:
+- cpukit/score/cpu/moxie/cpu_asm.S
+- cpukit/score/cpu/moxie/cpu.c
+- cpukit/score/cpu/moxie/moxie-exception-frame-print.c
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+- cpukit/score/cpu/no_cpu/cpuidle.c
+type: build
diff --git a/spec/build/cpukit/cpunios2.yml b/spec/build/cpukit/cpunios2.yml
new file mode 100644
index 0000000000..4b43f852f9
--- /dev/null
+++ b/spec/build/cpukit/cpunios2.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- nios2
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/nios2/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/nios2/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/nios2/include/rtems/score/cpu.h
+ - cpukit/score/cpu/nios2/include/rtems/score/cpu_asm.h
+ - cpukit/score/cpu/nios2/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/nios2/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/nios2/include/rtems/score/nios2-count-zeros.h
+ - cpukit/score/cpu/nios2/include/rtems/score/nios2-utility.h
+ - cpukit/score/cpu/nios2/include/rtems/score/nios2.h
+links: []
+source:
+- cpukit/score/cpu/nios2/nios2-context-initialize.c
+- cpukit/score/cpu/nios2/nios2-context-switch.S
+- cpukit/score/cpu/nios2/nios2-context-validate.S
+- cpukit/score/cpu/nios2/nios2-context-volatile-clobber.S
+- cpukit/score/cpu/nios2/nios2-eic-il-low-level.S
+- cpukit/score/cpu/nios2/nios2-eic-rsie-low-level.S
+- cpukit/score/cpu/nios2/nios2-exception-frame-print.c
+- cpukit/score/cpu/nios2/nios2-fatal-halt.c
+- cpukit/score/cpu/nios2/nios2-iic-irq.c
+- cpukit/score/cpu/nios2/nios2-iic-low-level.S
+- cpukit/score/cpu/nios2/nios2-initialize.c
+- cpukit/score/cpu/nios2/nios2-isr-get-level.c
+- cpukit/score/cpu/nios2/nios2-isr-install-vector.c
+- cpukit/score/cpu/nios2/nios2-isr-is-in-progress.c
+- cpukit/score/cpu/nios2/nios2-isr-set-level.c
+- cpukit/score/cpu/nios2/nios2-mpu-add-region.c
+- cpukit/score/cpu/nios2/nios2-mpu-configuration.c
+- cpukit/score/cpu/nios2/nios2-mpu-descriptor.c
+- cpukit/score/cpu/nios2/nios2-mpu-disable-protected.c
+- cpukit/score/cpu/nios2/nios2-mpu-reset.c
+- cpukit/score/cpu/nios2/nios2-thread-dispatch-disabled.c
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+- cpukit/score/cpu/no_cpu/cpuidle.c
+type: build
diff --git a/spec/build/cpukit/cpuopts.yml b/spec/build/cpukit/cpuopts.yml
new file mode 100644
index 0000000000..5b72c6d8ca
--- /dev/null
+++ b/spec/build/cpukit/cpuopts.yml
@@ -0,0 +1,67 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-header
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+guard: _RTEMS_SCORE_CPUOPTS_H
+include-headers: []
+install-path: ${BSP_INCLUDEDIR}/rtems/score
+links:
+- role: build-dependency
+ uid: optvermaj
+- role: build-dependency
+ uid: optvermin
+- role: build-dependency
+ uid: optverrev
+- role: build-dependency
+ uid: optgcc
+- role: build-dependency
+ uid: optarchbits
+- role: build-dependency
+ uid: optclang
+- role: build-dependency
+ uid: optarflags
+- role: build-dependency
+ uid: optwarn
+- role: build-dependency
+ uid: optwarncc
+- role: build-dependency
+ uid: optwarncxx
+- role: build-dependency
+ uid: optincludes
+- role: build-dependency
+ uid: optinstall
+- role: build-dependency
+ uid: optada
+- role: build-dependency
+ uid: optdebug
+- role: build-dependency
+ uid: optdrvmgr
+- role: build-dependency
+ uid: optmpci
+- role: build-dependency
+ uid: optnet
+- role: build-dependency
+ uid: optnewlib
+- role: build-dependency
+ uid: optparavirt
+- role: build-dependency
+ uid: optposix
+- role: build-dependency
+ uid: optsmp
+- role: build-dependency
+ uid: optlibdl
+- role: build-dependency
+ uid: optszblkcnt
+- role: build-dependency
+ uid: optszblksize
+- role: build-dependency
+ uid: optszmode
+- role: build-dependency
+ uid: optszoff
+- role: build-dependency
+ uid: optsztime
+- role: build-dependency
+ uid: optversion
+target: cpukit/include/rtems/score/cpuopts.h
+type: build
diff --git a/spec/build/cpukit/cpuor1k.yml b/spec/build/cpukit/cpuor1k.yml
new file mode 100644
index 0000000000..24045dc556
--- /dev/null
+++ b/spec/build/cpukit/cpuor1k.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- or1k
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/or1k/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/or1k/include/rtems/score/cpu.h
+ - cpukit/score/cpu/or1k/include/rtems/score/cpu_asm.h
+ - cpukit/score/cpu/or1k/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/or1k/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/or1k/include/rtems/score/or1k-utility.h
+ - cpukit/score/cpu/or1k/include/rtems/score/or1k.h
+links: []
+source:
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/or1k/cpu.c
+- cpukit/score/cpu/or1k/or1k-context-initialize.c
+- cpukit/score/cpu/or1k/or1k-context-switch.S
+- cpukit/score/cpu/or1k/or1k-context-validate.S
+- cpukit/score/cpu/or1k/or1k-context-volatile-clobber.S
+- cpukit/score/cpu/or1k/or1k-exception-default.c
+- cpukit/score/cpu/or1k/or1k-exception-frame-print.c
+- cpukit/score/cpu/or1k/or1k-exception-handler-low.S
+type: build
diff --git a/spec/build/cpukit/cpupowerpc.yml b/spec/build/cpukit/cpupowerpc.yml
new file mode 100644
index 0000000000..e2ffd90d86
--- /dev/null
+++ b/spec/build/cpukit/cpupowerpc.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- powerpc
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/powerpc/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/powerpc/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/powerpc
+ source:
+ - cpukit/score/cpu/powerpc/include/rtems/powerpc/registers.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/powerpc/include/rtems/score/cpu.h
+ - cpukit/score/cpu/powerpc/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/powerpc/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/powerpc/include/rtems/score/paravirt.h
+ - cpukit/score/cpu/powerpc/include/rtems/score/powerpc.h
+links: []
+source:
+- cpukit/score/cpu/no_cpu/cpuidle.c
+- cpukit/score/cpu/powerpc/cpu.c
+- cpukit/score/cpu/powerpc/ppc-context-validate.S
+- cpukit/score/cpu/powerpc/ppc-context-volatile-clobber.S
+- cpukit/score/cpu/powerpc/ppc-isr-disable-mask.S
+type: build
diff --git a/spec/build/cpukit/cpuriscv.yml b/spec/build/cpukit/cpuriscv.yml
new file mode 100644
index 0000000000..08ab96b3d2
--- /dev/null
+++ b/spec/build/cpukit/cpuriscv.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- riscv
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - cpukit/score/cpu/riscv/include/libcpu/access.h
+ - cpukit/score/cpu/riscv/include/libcpu/byteorder.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/riscv/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/riscv/include/rtems/score/cpu.h
+ - cpukit/score/cpu/riscv/include/rtems/score/cpu_asm.h
+ - cpukit/score/cpu/riscv/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/riscv/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/riscv/include/rtems/score/riscv-utility.h
+ - cpukit/score/cpu/riscv/include/rtems/score/riscv.h
+links: []
+source:
+- cpukit/score/cpu/riscv/cpu.c
+- cpukit/score/cpu/riscv/riscv-exception-handler.S
+- cpukit/score/cpu/riscv/riscv-exception-frame-print.c
+- cpukit/score/cpu/riscv/riscv-context-switch.S
+- cpukit/score/cpu/riscv/riscv-context-initialize.c
+- cpukit/score/cpu/riscv/riscv-context-validate.S
+- cpukit/score/cpu/riscv/riscv-context-volatile-clobber.S
+- cpukit/score/cpu/riscv/riscv-counter.S
+type: build
diff --git a/spec/build/cpukit/cpush.yml b/spec/build/cpukit/cpush.yml
new file mode 100644
index 0000000000..cffba020a1
--- /dev/null
+++ b/spec/build/cpukit/cpush.yml
@@ -0,0 +1,30 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- sh
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/sh/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/sh/include/rtems/score/cpu.h
+ - cpukit/score/cpu/sh/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/sh/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/sh/include/rtems/score/sh.h
+ - cpukit/score/cpu/sh/include/rtems/score/sh_io.h
+links: []
+source:
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+- cpukit/score/cpu/no_cpu/cpuidle.c
+- cpukit/score/cpu/sh/context.c
+- cpukit/score/cpu/sh/cpu.c
+- cpukit/score/cpu/sh/sh-exception-frame-print.c
+type: build
diff --git a/spec/build/cpukit/cpusparc.yml b/spec/build/cpukit/cpusparc.yml
new file mode 100644
index 0000000000..c1f4d0720c
--- /dev/null
+++ b/spec/build/cpukit/cpusparc.yml
@@ -0,0 +1,41 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- sparc
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/libcpu
+ source:
+ - cpukit/score/cpu/sparc/include/libcpu/access.h
+ - cpukit/score/cpu/sparc/include/libcpu/byteorder.h
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/sparc/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/sparc/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/sparc/include/rtems/score/cpu.h
+ - cpukit/score/cpu/sparc/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/sparc/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/sparc/include/rtems/score/sparc.h
+ - cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h
+links: []
+source:
+- cpukit/score/cpu/no_cpu/cpuidle.c
+- cpukit/score/cpu/sparc/access_le.c
+- cpukit/score/cpu/sparc/cpu.c
+- cpukit/score/cpu/sparc/cpu_asm.S
+- cpukit/score/cpu/sparc/sparc-access.S
+- cpukit/score/cpu/sparc/sparc-context-validate.S
+- cpukit/score/cpu/sparc/sparc-context-volatile-clobber.S
+- cpukit/score/cpu/sparc/sparc-counter-asm.S
+- cpukit/score/cpu/sparc/syscall.S
+- cpukit/score/cpu/sparc/window.S
+type: build
diff --git a/spec/build/cpukit/cpusparc64.yml b/spec/build/cpukit/cpusparc64.yml
new file mode 100644
index 0000000000..687c0958e6
--- /dev/null
+++ b/spec/build/cpukit/cpusparc64.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- sparc64
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/sparc64/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/sparc64/include/rtems/score/cpu.h
+ - cpukit/score/cpu/sparc64/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/sparc64/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/sparc64/include/rtems/score/sparc64.h
+links: []
+source:
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+- cpukit/score/cpu/no_cpu/cpuidle.c
+- cpukit/score/cpu/sparc64/context.S
+- cpukit/score/cpu/sparc64/cpu.c
+- cpukit/score/cpu/sparc64/interrupt.S
+- cpukit/score/cpu/sparc64/sparc64-exception-frame-print.c
+- cpukit/score/cpu/sparc64/sparc64-syscall.S
+type: build
diff --git a/spec/build/cpukit/cpuv850.yml b/spec/build/cpukit/cpuv850.yml
new file mode 100644
index 0000000000..75f62b0d4a
--- /dev/null
+++ b/spec/build/cpukit/cpuv850.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- v850
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/v850/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/v850/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/v850/include/rtems/score/cpu.h
+ - cpukit/score/cpu/v850/include/rtems/score/cpu_asm.h
+ - cpukit/score/cpu/v850/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/v850/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/v850/include/rtems/score/v850.h
+links: []
+source:
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+- cpukit/score/cpu/no_cpu/cpuidle.c
+- cpukit/score/cpu/v850/cpu_asm.S
+- cpukit/score/cpu/v850/cpu.c
+- cpukit/score/cpu/v850/v850-exception-frame-print.c
+type: build
diff --git a/spec/build/cpukit/cpux8664.yml b/spec/build/cpukit/cpux8664.yml
new file mode 100644
index 0000000000..1268fca62d
--- /dev/null
+++ b/spec/build/cpukit/cpux8664.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- x86_64
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/score/cpu/x86_64/include/machine/elf_machdep.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/score/cpu/x86_64/include/rtems/asm.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/score/cpu/x86_64/include/rtems/score/cpu.h
+ - cpukit/score/cpu/x86_64/include/rtems/score/cpu_asm.h
+ - cpukit/score/cpu/x86_64/include/rtems/score/cpuatomic.h
+ - cpukit/score/cpu/x86_64/include/rtems/score/cpuimpl.h
+ - cpukit/score/cpu/x86_64/include/rtems/score/idt.h
+ - cpukit/score/cpu/x86_64/include/rtems/score/x86_64.h
+links: []
+source:
+- cpukit/score/cpu/no_cpu/cpucounterfrequency.c
+- cpukit/score/cpu/no_cpu/cpucounterread.c
+- cpukit/score/cpu/no_cpu/cpuidle.c
+- cpukit/score/cpu/x86_64/cpu.c
+- cpukit/score/cpu/x86_64/x86_64-context-initialize.c
+- cpukit/score/cpu/x86_64/x86_64-context-switch.S
+type: build
diff --git a/spec/build/cpukit/grp.yml b/spec/build/cpukit/grp.yml
new file mode 100644
index 0000000000..3a285d03fc
--- /dev/null
+++ b/spec/build/cpukit/grp.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: cpuopts
+- role: build-dependency
+ uid: cfghdr
+- role: build-dependency
+ uid: libdebugger
+- role: build-dependency
+ uid: libftpd
+- role: build-dependency
+ uid: libftpfs
+- role: build-dependency
+ uid: libjffs2
+- role: build-dependency
+ uid: libmghttpd
+- role: build-dependency
+ uid: libnfs
+- role: build-dependency
+ uid: libpppd
+- role: build-dependency
+ uid: librtemscpu
+- role: build-dependency
+ uid: librtemsdfltcfg
+- role: build-dependency
+ uid: librtemstest
+- role: build-dependency
+ uid: libtelnetd
+- role: build-dependency
+ uid: libtftpfs
+- role: build-dependency
+ uid: libz
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/cpukit/libdebugger.yml b/spec/build/cpukit/libdebugger.yml
new file mode 100644
index 0000000000..f243e52b7a
--- /dev/null
+++ b/spec/build/cpukit/libdebugger.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+install-path: ${BSP_LIBDIR}
+links:
+- role: build-dependency
+ uid: objdbgarm
+- role: build-dependency
+ uid: objdbgi386
+source:
+- cpukit/libdebugger/rtems-debugger-block.c
+- cpukit/libdebugger/rtems-debugger-bsp.c
+- cpukit/libdebugger/rtems-debugger-cmd.c
+- cpukit/libdebugger/rtems-debugger-remote.c
+- cpukit/libdebugger/rtems-debugger-remote-tcp.c
+- cpukit/libdebugger/rtems-debugger-server.c
+- cpukit/libdebugger/rtems-debugger-target.c
+- cpukit/libdebugger/rtems-debugger-threads.c
+target: debugger
+type: build
diff --git a/spec/build/cpukit/libftpd.yml b/spec/build/cpukit/libftpd.yml
new file mode 100644
index 0000000000..af75cca2cb
--- /dev/null
+++ b/spec/build/cpukit/libftpd.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/include/rtems/ftpd.h
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/ftpd/ftpd.c
+- cpukit/ftpd/ftpd-init.c
+target: ftpd
+type: build
diff --git a/spec/build/cpukit/libftpfs.yml b/spec/build/cpukit/libftpfs.yml
new file mode 100644
index 0000000000..d32304fcf3
--- /dev/null
+++ b/spec/build/cpukit/libftpfs.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/include/rtems/ftpfs.h
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/libnetworking/lib/ftpfs.c
+target: ftpfs
+type: build
diff --git a/spec/build/cpukit/libjffs2.yml b/spec/build/cpukit/libjffs2.yml
new file mode 100644
index 0000000000..bc57baa68b
--- /dev/null
+++ b/spec/build/cpukit/libjffs2.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags:
+- -Wno-pointer-sign
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes:
+- cpukit/libfs/src/jffs2/include
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/include/rtems/jffs2.h
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/libfs/src/jffs2/src/build.c
+- cpukit/libfs/src/jffs2/src/compat-crc32.c
+- cpukit/libfs/src/jffs2/src/compr.c
+- cpukit/libfs/src/jffs2/src/compr_rtime.c
+- cpukit/libfs/src/jffs2/src/compr_zlib.c
+- cpukit/libfs/src/jffs2/src/debug.c
+- cpukit/libfs/src/jffs2/src/dir-rtems.c
+- cpukit/libfs/src/jffs2/src/erase.c
+- cpukit/libfs/src/jffs2/src/flashio.c
+- cpukit/libfs/src/jffs2/src/fs-rtems.c
+- cpukit/libfs/src/jffs2/src/gc.c
+- cpukit/libfs/src/jffs2/src/malloc-rtems.c
+- cpukit/libfs/src/jffs2/src/nodelist.c
+- cpukit/libfs/src/jffs2/src/nodemgmt.c
+- cpukit/libfs/src/jffs2/src/read.c
+- cpukit/libfs/src/jffs2/src/readinode.c
+- cpukit/libfs/src/jffs2/src/scan.c
+- cpukit/libfs/src/jffs2/src/write.c
+target: jffs2
+type: build
diff --git a/spec/build/cpukit/libmghttpd.yml b/spec/build/cpukit/libmghttpd.yml
new file mode 100644
index 0000000000..959d1f5c25
--- /dev/null
+++ b/spec/build/cpukit/libmghttpd.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/mghttpd
+ source:
+ - cpukit/include/mghttpd/mongoose.h
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/mghttpd/mongoose.c
+target: mghttpd
+type: build
diff --git a/spec/build/cpukit/libnfs.yml b/spec/build/cpukit/libnfs.yml
new file mode 100644
index 0000000000..1607d4b340
--- /dev/null
+++ b/spec/build/cpukit/libnfs.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/libfs/src/nfsclient/proto/mount_prot_xdr.c
+- cpukit/libfs/src/nfsclient/proto/nfs_prot_xdr.c
+- cpukit/libfs/src/nfsclient/src/nfs.c
+- cpukit/libfs/src/nfsclient/src/rpcio.c
+- cpukit/libfs/src/nfsclient/src/sock_mbuf.c
+- cpukit/libfs/src/nfsclient/src/xdr_mbuf.c
+target: nfs
+type: build
diff --git a/spec/build/cpukit/libpppd.yml b/spec/build/cpukit/libpppd.yml
new file mode 100644
index 0000000000..d67b93aef8
--- /dev/null
+++ b/spec/build/cpukit/libpppd.yml
@@ -0,0 +1,33 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/pppd/auth.c
+- cpukit/pppd/ccp.c
+- cpukit/pppd/chap.c
+- cpukit/pppd/chap_ms.c
+- cpukit/pppd/chat.c
+- cpukit/pppd/demand.c
+- cpukit/pppd/fsm.c
+- cpukit/pppd/ipcp.c
+- cpukit/pppd/lcp.c
+- cpukit/pppd/magic.c
+- cpukit/pppd/options.c
+- cpukit/pppd/rtemsmain.c
+- cpukit/pppd/rtemspppd.c
+- cpukit/pppd/sys-rtems.c
+- cpukit/pppd/upap.c
+- cpukit/pppd/utils.c
+target: pppd
+type: build
diff --git a/spec/build/cpukit/librtemscpu.yml b/spec/build/cpukit/librtemscpu.yml
new file mode 100644
index 0000000000..fa456b1db6
--- /dev/null
+++ b/spec/build/cpukit/librtemscpu.yml
@@ -0,0 +1,1574 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - cpukit/include/aio.h
+ - cpukit/include/crypt.h
+ - cpukit/include/dlfcn.h
+ - cpukit/include/endian.h
+ - cpukit/include/fdt.h
+ - cpukit/include/libfdt.h
+ - cpukit/include/libfdt_env.h
+ - cpukit/include/link.h
+ - cpukit/include/link_elf.h
+ - cpukit/include/md4.h
+ - cpukit/include/md5.h
+ - cpukit/include/memory.h
+ - cpukit/include/mqueue.h
+ - cpukit/include/pci.h
+ - cpukit/include/poll.h
+ - cpukit/include/rtems.h
+ - cpukit/include/sha256.h
+ - cpukit/include/sha512.h
+ - cpukit/include/xz.h
+- destination: ${BSP_INCLUDEDIR}/arpa
+ source:
+ - cpukit/include/arpa/ftp.h
+- destination: ${BSP_INCLUDEDIR}/dev/i2c
+ source:
+ - cpukit/include/dev/i2c/eeprom.h
+ - cpukit/include/dev/i2c/fpga-i2c-slave.h
+ - cpukit/include/dev/i2c/gpio-nxp-pca9535.h
+ - cpukit/include/dev/i2c/i2c.h
+ - cpukit/include/dev/i2c/sensor-lm75a.h
+ - cpukit/include/dev/i2c/switch-nxp-pca9548a.h
+ - cpukit/include/dev/i2c/ti-ads-16bit-adc.h
+ - cpukit/include/dev/i2c/ti-lm25066a.h
+ - cpukit/include/dev/i2c/ti-tmp112.h
+ - cpukit/include/dev/i2c/xilinx-axi-i2c.h
+- destination: ${BSP_INCLUDEDIR}/dev/serial
+ source:
+ - cpukit/include/dev/serial/sc16is752.h
+- destination: ${BSP_INCLUDEDIR}/dev/spi
+ source:
+ - cpukit/include/dev/spi/spi.h
+- destination: ${BSP_INCLUDEDIR}/linux
+ source:
+ - cpukit/include/linux/i2c-dev.h
+ - cpukit/include/linux/i2c.h
+ - cpukit/include/linux/rbtree.h
+- destination: ${BSP_INCLUDEDIR}/linux/spi
+ source:
+ - cpukit/include/linux/spi/spidev.h
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/include/machine/_kernel_cpuset.h
+ - cpukit/include/machine/_kernel_in.h
+ - cpukit/include/machine/_kernel_in6.h
+ - cpukit/include/machine/_kernel_mman.h
+ - cpukit/include/machine/_kernel_param.h
+ - cpukit/include/machine/_kernel_time.h
+ - cpukit/include/machine/_kernel_types.h
+ - cpukit/include/machine/_kernel_uio.h
+ - cpukit/include/machine/_timecounter.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/include/rtems/assoc.h
+ - cpukit/include/rtems/bdbuf.h
+ - cpukit/include/rtems/bdpart.h
+ - cpukit/include/rtems/blkdev.h
+ - cpukit/include/rtems/bsd.h
+ - cpukit/include/rtems/bspIo.h
+ - cpukit/include/rtems/bspcmdline.h
+ - cpukit/include/rtems/btimer.h
+ - cpukit/include/rtems/capture-cli.h
+ - cpukit/include/rtems/capture.h
+ - cpukit/include/rtems/captureimpl.h
+ - cpukit/include/rtems/cbs.h
+ - cpukit/include/rtems/chain.h
+ - cpukit/include/rtems/clockdrv.h
+ - cpukit/include/rtems/concat.h
+ - cpukit/include/rtems/confdefs.h
+ - cpukit/include/rtems/config.h
+ - cpukit/include/rtems/console.h
+ - cpukit/include/rtems/counter.h
+ - cpukit/include/rtems/cpuuse.h
+ - cpukit/include/rtems/deviceio.h
+ - cpukit/include/rtems/devnull.h
+ - cpukit/include/rtems/devzero.h
+ - cpukit/include/rtems/diskdevs.h
+ - cpukit/include/rtems/dosfs.h
+ - cpukit/include/rtems/dumpbuf.h
+ - cpukit/include/rtems/endian.h
+ - cpukit/include/rtems/error.h
+ - cpukit/include/rtems/extension.h
+ - cpukit/include/rtems/extensiondata.h
+ - cpukit/include/rtems/extensionimpl.h
+ - cpukit/include/rtems/fatal.h
+ - cpukit/include/rtems/fb.h
+ - cpukit/include/rtems/flashdisk.h
+ - cpukit/include/rtems/framebuffer.h
+ - cpukit/include/rtems/fs.h
+ - cpukit/include/rtems/fsmount.h
+ - cpukit/include/rtems/gxx_wrappers.h
+ - cpukit/include/rtems/ide_part_table.h
+ - cpukit/include/rtems/imfs.h
+ - cpukit/include/rtems/init.h
+ - cpukit/include/rtems/inttypes.h
+ - cpukit/include/rtems/io.h
+ - cpukit/include/rtems/ioimpl.h
+ - cpukit/include/rtems/iosupp.h
+ - cpukit/include/rtems/irq-extension.h
+ - cpukit/include/rtems/irq.h
+ - cpukit/include/rtems/jffs2.h
+ - cpukit/include/rtems/libcsupport.h
+ - cpukit/include/rtems/libi2c.h
+ - cpukit/include/rtems/libio.h
+ - cpukit/include/rtems/libio_.h
+ - cpukit/include/rtems/linkersets.h
+ - cpukit/include/rtems/malloc.h
+ - cpukit/include/rtems/media.h
+ - cpukit/include/rtems/monitor.h
+ - cpukit/include/rtems/mouse_parser.h
+ - cpukit/include/rtems/mptables.h
+ - cpukit/include/rtems/mw_uid.h
+ - cpukit/include/rtems/nvdisk-sram.h
+ - cpukit/include/rtems/nvdisk.h
+ - cpukit/include/rtems/passwd.h
+ - cpukit/include/rtems/pci.h
+ - cpukit/include/rtems/pipe.h
+ - cpukit/include/rtems/print.h
+ - cpukit/include/rtems/printer.h
+ - cpukit/include/rtems/profiling.h
+ - cpukit/include/rtems/pty.h
+ - cpukit/include/rtems/qreslib.h
+ - cpukit/include/rtems/ramdisk.h
+ - cpukit/include/rtems/rbheap.h
+ - cpukit/include/rtems/rbtree.h
+ - cpukit/include/rtems/record.h
+ - cpukit/include/rtems/recordclient.h
+ - cpukit/include/rtems/recorddata.h
+ - cpukit/include/rtems/recorddump.h
+ - cpukit/include/rtems/recordserver.h
+ - cpukit/include/rtems/ringbuf.h
+ - cpukit/include/rtems/rtc.h
+ - cpukit/include/rtems/rtems-debugger-remote-tcp.h
+ - cpukit/include/rtems/rtems-debugger.h
+ - cpukit/include/rtems/rtems-fdt-shell.h
+ - cpukit/include/rtems/rtems-fdt.h
+ - cpukit/include/rtems/rtems-rfs-format.h
+ - cpukit/include/rtems/rtems-rfs-shell.h
+ - cpukit/include/rtems/rtems-rfs.h
+ - cpukit/include/rtems/rtemsdialer.h
+ - cpukit/include/rtems/rtemspppd.h
+ - cpukit/include/rtems/scheduler.h
+ - cpukit/include/rtems/serdbg.h
+ - cpukit/include/rtems/serdbgcnf.h
+ - cpukit/include/rtems/serial_mouse.h
+ - cpukit/include/rtems/seterr.h
+ - cpukit/include/rtems/shell.h
+ - cpukit/include/rtems/shellconfig.h
+ - cpukit/include/rtems/sparse-disk.h
+ - cpukit/include/rtems/spurious.h
+ - cpukit/include/rtems/stackchk.h
+ - cpukit/include/rtems/status-checks.h
+ - cpukit/include/rtems/stdio-redirect.h
+ - cpukit/include/rtems/stringto.h
+ - cpukit/include/rtems/sysinit.h
+ - cpukit/include/rtems/termios_printk.h
+ - cpukit/include/rtems/termios_printk_cnf.h
+ - cpukit/include/rtems/termiostypes.h
+ - cpukit/include/rtems/test.h
+ - cpukit/include/rtems/test-info.h
+ - cpukit/include/rtems/thread.h
+ - cpukit/include/rtems/timecounter.h
+ - cpukit/include/rtems/timespec.h
+ - cpukit/include/rtems/tm27-default.h
+ - cpukit/include/rtems/tod.h
+ - cpukit/include/rtems/untar.h
+ - cpukit/include/rtems/userenv.h
+ - cpukit/include/rtems/version.h
+ - cpukit/include/rtems/vmeintr.h
+ - cpukit/include/rtems/watchdogdrv.h
+- destination: ${BSP_INCLUDEDIR}/rtems/confdefs
+ source:
+ - cpukit/include/rtems/confdefs/bdbuf.h
+ - cpukit/include/rtems/confdefs/bsp.h
+ - cpukit/include/rtems/confdefs/clock.h
+ - cpukit/include/rtems/confdefs/console.h
+ - cpukit/include/rtems/confdefs/extensions.h
+ - cpukit/include/rtems/confdefs/inittask.h
+ - cpukit/include/rtems/confdefs/initthread.h
+ - cpukit/include/rtems/confdefs/iodrivers.h
+ - cpukit/include/rtems/confdefs/libio.h
+ - cpukit/include/rtems/confdefs/libpci.h
+ - cpukit/include/rtems/confdefs/malloc.h
+ - cpukit/include/rtems/confdefs/mpci.h
+ - cpukit/include/rtems/confdefs/newlib.h
+ - cpukit/include/rtems/confdefs/objectsclassic.h
+ - cpukit/include/rtems/confdefs/objectsposix.h
+ - cpukit/include/rtems/confdefs/obsolete.h
+ - cpukit/include/rtems/confdefs/percpu.h
+ - cpukit/include/rtems/confdefs/scheduler.h
+ - cpukit/include/rtems/confdefs/threads.h
+ - cpukit/include/rtems/confdefs/unlimited.h
+ - cpukit/include/rtems/confdefs/wkspace.h
+ - cpukit/include/rtems/confdefs/wkspacesupport.h
+- destination: ${BSP_INCLUDEDIR}/rtems/debugger
+ source:
+ - cpukit/include/rtems/debugger/rtems-debugger-bsp.h
+ - cpukit/include/rtems/debugger/rtems-debugger-remote.h
+ - cpukit/include/rtems/debugger/rtems-debugger-server.h
+- destination: ${BSP_INCLUDEDIR}/rtems/posix
+ source:
+ - cpukit/include/rtems/posix/aio_misc.h
+ - cpukit/include/rtems/posix/barrierimpl.h
+ - cpukit/include/rtems/posix/condimpl.h
+ - cpukit/include/rtems/posix/key.h
+ - cpukit/include/rtems/posix/keyimpl.h
+ - cpukit/include/rtems/posix/mmanimpl.h
+ - cpukit/include/rtems/posix/mqueue.h
+ - cpukit/include/rtems/posix/mqueueimpl.h
+ - cpukit/include/rtems/posix/muteximpl.h
+ - cpukit/include/rtems/posix/posixapi.h
+ - cpukit/include/rtems/posix/priorityimpl.h
+ - cpukit/include/rtems/posix/psignal.h
+ - cpukit/include/rtems/posix/psignalimpl.h
+ - cpukit/include/rtems/posix/pthread.h
+ - cpukit/include/rtems/posix/pthreadattrimpl.h
+ - cpukit/include/rtems/posix/pthreadimpl.h
+ - cpukit/include/rtems/posix/rwlockimpl.h
+ - cpukit/include/rtems/posix/semaphore.h
+ - cpukit/include/rtems/posix/semaphoreimpl.h
+ - cpukit/include/rtems/posix/shm.h
+ - cpukit/include/rtems/posix/shmimpl.h
+ - cpukit/include/rtems/posix/sigset.h
+ - cpukit/include/rtems/posix/spinlockimpl.h
+ - cpukit/include/rtems/posix/threadsup.h
+ - cpukit/include/rtems/posix/timer.h
+ - cpukit/include/rtems/posix/timerimpl.h
+- destination: ${BSP_INCLUDEDIR}/rtems/rfs
+ source:
+ - cpukit/include/rtems/rfs/rtems-rfs-bitmaps.h
+ - cpukit/include/rtems/rfs/rtems-rfs-block-pos.h
+ - cpukit/include/rtems/rfs/rtems-rfs-block.h
+ - cpukit/include/rtems/rfs/rtems-rfs-buffer.h
+ - cpukit/include/rtems/rfs/rtems-rfs-data.h
+ - cpukit/include/rtems/rfs/rtems-rfs-dir-hash.h
+ - cpukit/include/rtems/rfs/rtems-rfs-dir.h
+ - cpukit/include/rtems/rfs/rtems-rfs-file-system-fwd.h
+ - cpukit/include/rtems/rfs/rtems-rfs-file-system.h
+ - cpukit/include/rtems/rfs/rtems-rfs-file.h
+ - cpukit/include/rtems/rfs/rtems-rfs-group.h
+ - cpukit/include/rtems/rfs/rtems-rfs-inode.h
+ - cpukit/include/rtems/rfs/rtems-rfs-link.h
+ - cpukit/include/rtems/rfs/rtems-rfs-mutex.h
+ - cpukit/include/rtems/rfs/rtems-rfs-trace.h
+- destination: ${BSP_INCLUDEDIR}/rtems/rtems
+ source:
+ - cpukit/include/rtems/rtems/asr.h
+ - cpukit/include/rtems/rtems/asrdata.h
+ - cpukit/include/rtems/rtems/asrimpl.h
+ - cpukit/include/rtems/rtems/attr.h
+ - cpukit/include/rtems/rtems/attrimpl.h
+ - cpukit/include/rtems/rtems/barrier.h
+ - cpukit/include/rtems/rtems/barrierdata.h
+ - cpukit/include/rtems/rtems/barrierimpl.h
+ - cpukit/include/rtems/rtems/cache.h
+ - cpukit/include/rtems/rtems/clock.h
+ - cpukit/include/rtems/rtems/config.h
+ - cpukit/include/rtems/rtems/dpmem.h
+ - cpukit/include/rtems/rtems/dpmemdata.h
+ - cpukit/include/rtems/rtems/dpmemimpl.h
+ - cpukit/include/rtems/rtems/event.h
+ - cpukit/include/rtems/rtems/eventdata.h
+ - cpukit/include/rtems/rtems/eventimpl.h
+ - cpukit/include/rtems/rtems/eventmp.h
+ - cpukit/include/rtems/rtems/intr.h
+ - cpukit/include/rtems/rtems/mainpage.h
+ - cpukit/include/rtems/rtems/message.h
+ - cpukit/include/rtems/rtems/messagedata.h
+ - cpukit/include/rtems/rtems/messageimpl.h
+ - cpukit/include/rtems/rtems/modes.h
+ - cpukit/include/rtems/rtems/modesimpl.h
+ - cpukit/include/rtems/rtems/mp.h
+ - cpukit/include/rtems/rtems/msgmp.h
+ - cpukit/include/rtems/rtems/object.h
+ - cpukit/include/rtems/rtems/options.h
+ - cpukit/include/rtems/rtems/optionsimpl.h
+ - cpukit/include/rtems/rtems/part.h
+ - cpukit/include/rtems/rtems/partdata.h
+ - cpukit/include/rtems/rtems/partimpl.h
+ - cpukit/include/rtems/rtems/partmp.h
+ - cpukit/include/rtems/rtems/ratemon.h
+ - cpukit/include/rtems/rtems/ratemondata.h
+ - cpukit/include/rtems/rtems/ratemonimpl.h
+ - cpukit/include/rtems/rtems/region.h
+ - cpukit/include/rtems/rtems/regiondata.h
+ - cpukit/include/rtems/rtems/regionimpl.h
+ - cpukit/include/rtems/rtems/sem.h
+ - cpukit/include/rtems/rtems/semdata.h
+ - cpukit/include/rtems/rtems/semimpl.h
+ - cpukit/include/rtems/rtems/semmp.h
+ - cpukit/include/rtems/rtems/signal.h
+ - cpukit/include/rtems/rtems/signalimpl.h
+ - cpukit/include/rtems/rtems/signalmp.h
+ - cpukit/include/rtems/rtems/status.h
+ - cpukit/include/rtems/rtems/statusimpl.h
+ - cpukit/include/rtems/rtems/support.h
+ - cpukit/include/rtems/rtems/taskmp.h
+ - cpukit/include/rtems/rtems/tasks.h
+ - cpukit/include/rtems/rtems/tasksdata.h
+ - cpukit/include/rtems/rtems/tasksimpl.h
+ - cpukit/include/rtems/rtems/timer.h
+ - cpukit/include/rtems/rtems/timerdata.h
+ - cpukit/include/rtems/rtems/timerimpl.h
+ - cpukit/include/rtems/rtems/types.h
+- destination: ${BSP_INCLUDEDIR}/rtems/score
+ source:
+ - cpukit/include/rtems/score/address.h
+ - cpukit/include/rtems/score/apimutex.h
+ - cpukit/include/rtems/score/assert.h
+ - cpukit/include/rtems/score/atomic.h
+ - cpukit/include/rtems/score/basedefs.h
+ - cpukit/include/rtems/score/chain.h
+ - cpukit/include/rtems/score/chainimpl.h
+ - cpukit/include/rtems/score/context.h
+ - cpukit/include/rtems/score/copyrt.h
+ - cpukit/include/rtems/score/corebarrier.h
+ - cpukit/include/rtems/score/corebarrierimpl.h
+ - cpukit/include/rtems/score/coremsg.h
+ - cpukit/include/rtems/score/coremsgimpl.h
+ - cpukit/include/rtems/score/coremutex.h
+ - cpukit/include/rtems/score/coremuteximpl.h
+ - cpukit/include/rtems/score/corerwlockimpl.h
+ - cpukit/include/rtems/score/coresem.h
+ - cpukit/include/rtems/score/coresemimpl.h
+ - cpukit/include/rtems/score/cpustdatomic.h
+ - cpukit/include/rtems/score/freechain.h
+ - cpukit/include/rtems/score/heap.h
+ - cpukit/include/rtems/score/heapimpl.h
+ - cpukit/include/rtems/score/heapinfo.h
+ - cpukit/include/rtems/score/interr.h
+ - cpukit/include/rtems/score/io.h
+ - cpukit/include/rtems/score/isr.h
+ - cpukit/include/rtems/score/isrlevel.h
+ - cpukit/include/rtems/score/isrlock.h
+ - cpukit/include/rtems/score/memory.h
+ - cpukit/include/rtems/score/mpci.h
+ - cpukit/include/rtems/score/mpciimpl.h
+ - cpukit/include/rtems/score/mppkt.h
+ - cpukit/include/rtems/score/mrsp.h
+ - cpukit/include/rtems/score/mrspimpl.h
+ - cpukit/include/rtems/score/muteximpl.h
+ - cpukit/include/rtems/score/object.h
+ - cpukit/include/rtems/score/objectdata.h
+ - cpukit/include/rtems/score/objectimpl.h
+ - cpukit/include/rtems/score/objectmp.h
+ - cpukit/include/rtems/score/onceimpl.h
+ - cpukit/include/rtems/score/percpu.h
+ - cpukit/include/rtems/score/percpudata.h
+ - cpukit/include/rtems/score/priority.h
+ - cpukit/include/rtems/score/prioritybitmap.h
+ - cpukit/include/rtems/score/prioritybitmapimpl.h
+ - cpukit/include/rtems/score/priorityimpl.h
+ - cpukit/include/rtems/score/processormask.h
+ - cpukit/include/rtems/score/profiling.h
+ - cpukit/include/rtems/score/protectedheap.h
+ - cpukit/include/rtems/score/rbtree.h
+ - cpukit/include/rtems/score/rbtreeimpl.h
+ - cpukit/include/rtems/score/scheduler.h
+ - cpukit/include/rtems/score/schedulercbs.h
+ - cpukit/include/rtems/score/schedulercbsimpl.h
+ - cpukit/include/rtems/score/scheduleredf.h
+ - cpukit/include/rtems/score/scheduleredfimpl.h
+ - cpukit/include/rtems/score/scheduleredfsmp.h
+ - cpukit/include/rtems/score/schedulerimpl.h
+ - cpukit/include/rtems/score/schedulernode.h
+ - cpukit/include/rtems/score/schedulernodeimpl.h
+ - cpukit/include/rtems/score/schedulerpriority.h
+ - cpukit/include/rtems/score/schedulerpriorityaffinitysmp.h
+ - cpukit/include/rtems/score/schedulerpriorityimpl.h
+ - cpukit/include/rtems/score/schedulerprioritysmp.h
+ - cpukit/include/rtems/score/schedulerprioritysmpimpl.h
+ - cpukit/include/rtems/score/schedulersimple.h
+ - cpukit/include/rtems/score/schedulersimpleimpl.h
+ - cpukit/include/rtems/score/schedulersimplesmp.h
+ - cpukit/include/rtems/score/schedulersmp.h
+ - cpukit/include/rtems/score/schedulersmpimpl.h
+ - cpukit/include/rtems/score/schedulerstrongapa.h
+ - cpukit/include/rtems/score/semaphoreimpl.h
+ - cpukit/include/rtems/score/smp.h
+ - cpukit/include/rtems/score/smpbarrier.h
+ - cpukit/include/rtems/score/smpimpl.h
+ - cpukit/include/rtems/score/smplock.h
+ - cpukit/include/rtems/score/smplockmcs.h
+ - cpukit/include/rtems/score/smplockseq.h
+ - cpukit/include/rtems/score/smplockstats.h
+ - cpukit/include/rtems/score/smplockticket.h
+ - cpukit/include/rtems/score/stack.h
+ - cpukit/include/rtems/score/stackimpl.h
+ - cpukit/include/rtems/score/states.h
+ - cpukit/include/rtems/score/statesimpl.h
+ - cpukit/include/rtems/score/status.h
+ - cpukit/include/rtems/score/sysstate.h
+ - cpukit/include/rtems/score/thread.h
+ - cpukit/include/rtems/score/threaddispatch.h
+ - cpukit/include/rtems/score/threadidledata.h
+ - cpukit/include/rtems/score/threadimpl.h
+ - cpukit/include/rtems/score/threadmp.h
+ - cpukit/include/rtems/score/threadq.h
+ - cpukit/include/rtems/score/threadqimpl.h
+ - cpukit/include/rtems/score/timecounter.h
+ - cpukit/include/rtems/score/timecounterimpl.h
+ - cpukit/include/rtems/score/timespec.h
+ - cpukit/include/rtems/score/timestamp.h
+ - cpukit/include/rtems/score/timestampimpl.h
+ - cpukit/include/rtems/score/tls.h
+ - cpukit/include/rtems/score/todimpl.h
+ - cpukit/include/rtems/score/userext.h
+ - cpukit/include/rtems/score/userextdata.h
+ - cpukit/include/rtems/score/userextimpl.h
+ - cpukit/include/rtems/score/watchdog.h
+ - cpukit/include/rtems/score/watchdogimpl.h
+ - cpukit/include/rtems/score/watchdogticks.h
+ - cpukit/include/rtems/score/wkspace.h
+ - cpukit/include/rtems/score/wkspacedata.h
+- destination: ${BSP_INCLUDEDIR}/rtems/trace
+ source:
+ - cpukit/include/rtems/trace/rtems-trace-buffer-vars.h
+- destination: ${BSP_INCLUDEDIR}/sys
+ source:
+ - cpukit/include/sys/_ffcounter.h
+ - cpukit/include/sys/cdefs_elf.h
+ - cpukit/include/sys/endian.h
+ - cpukit/include/sys/event.h
+ - cpukit/include/sys/exec_elf.h
+ - cpukit/include/sys/poll.h
+ - cpukit/include/sys/priority.h
+ - cpukit/include/sys/statvfs.h
+ - cpukit/include/sys/timeffc.h
+ - cpukit/include/sys/timepps.h
+ - cpukit/include/sys/timetc.h
+ - cpukit/include/sys/timex.h
+ - cpukit/include/sys/utsname.h
+- destination: ${BSP_INCLUDEDIR}/uuid
+ source:
+ - cpukit/include/uuid/uuid.h
+install-path: ${BSP_LIBDIR}
+links:
+- role: build-dependency
+ uid: cpuarm
+- role: build-dependency
+ uid: cpubfin
+- role: build-dependency
+ uid: cpui386
+- role: build-dependency
+ uid: cpulm32
+- role: build-dependency
+ uid: cpum68k
+- role: build-dependency
+ uid: cpumips
+- role: build-dependency
+ uid: cpumoxie
+- role: build-dependency
+ uid: cpunios2
+- role: build-dependency
+ uid: cpuor1k
+- role: build-dependency
+ uid: cpupowerpc
+- role: build-dependency
+ uid: cpuriscv
+- role: build-dependency
+ uid: cpush
+- role: build-dependency
+ uid: cpusparc
+- role: build-dependency
+ uid: cpusparc64
+- role: build-dependency
+ uid: cpuv850
+- role: build-dependency
+ uid: cpux8664
+- role: build-dependency
+ uid: objdl
+- role: build-dependency
+ uid: objdrvmgr
+- role: build-dependency
+ uid: objgnat
+- role: build-dependency
+ uid: objmpci
+- role: build-dependency
+ uid: objnet
+- role: build-dependency
+ uid: objpci
+- role: build-dependency
+ uid: objpsxsgnl
+- role: build-dependency
+ uid: objshell
+- role: build-dependency
+ uid: objsmp
+- role: build-dependency
+ uid: objutf8
+- role: build-dependency
+ uid: vckey
+source:
+- cpukit/dev/i2c/eeprom.c
+- cpukit/dev/i2c/fpga-i2c-slave.c
+- cpukit/dev/i2c/gpio-nxp-pca9535.c
+- cpukit/dev/i2c/i2c-bus.c
+- cpukit/dev/i2c/i2c-dev.c
+- cpukit/dev/i2c/sensor-lm75a.c
+- cpukit/dev/i2c/switch-nxp-pca9548a.c
+- cpukit/dev/i2c/ti-ads-16bit-adc.c
+- cpukit/dev/i2c/ti-lm25066a.c
+- cpukit/dev/i2c/ti-tmp112.c
+- cpukit/dev/i2c/xilinx-axi-i2c.c
+- cpukit/dev/serial/sc16is752.c
+- cpukit/dev/serial/sc16is752-spi.c
+- cpukit/dev/spi/spi-bus.c
+- cpukit/dtc/libfdt/fdt_addresses.c
+- cpukit/dtc/libfdt/fdt.c
+- cpukit/dtc/libfdt/fdt_empty_tree.c
+- cpukit/dtc/libfdt/fdt_ro.c
+- cpukit/dtc/libfdt/fdt_rw.c
+- cpukit/dtc/libfdt/fdt_strerror.c
+- cpukit/dtc/libfdt/fdt_sw.c
+- cpukit/dtc/libfdt/fdt_wip.c
+- cpukit/libblock/src/bdbuf.c
+- cpukit/libblock/src/bdpart-create.c
+- cpukit/libblock/src/bdpart-dump.c
+- cpukit/libblock/src/bdpart-mount.c
+- cpukit/libblock/src/bdpart-read.c
+- cpukit/libblock/src/bdpart-register.c
+- cpukit/libblock/src/bdpart-sort.c
+- cpukit/libblock/src/bdpart-write.c
+- cpukit/libblock/src/blkdev-blkstats.c
+- cpukit/libblock/src/blkdev.c
+- cpukit/libblock/src/blkdev-imfs.c
+- cpukit/libblock/src/blkdev-ioctl.c
+- cpukit/libblock/src/blkdev-ops.c
+- cpukit/libblock/src/blkdev-print-stats.c
+- cpukit/libblock/src/diskdevs.c
+- cpukit/libblock/src/diskdevs-init.c
+- cpukit/libblock/src/flashdisk.c
+- cpukit/libblock/src/ide_part_table.c
+- cpukit/libblock/src/media.c
+- cpukit/libblock/src/media-desc.c
+- cpukit/libblock/src/media-dev-ident.c
+- cpukit/libblock/src/media-path.c
+- cpukit/libblock/src/media-server.c
+- cpukit/libblock/src/nvdisk.c
+- cpukit/libblock/src/nvdisk-sram.c
+- cpukit/libblock/src/ramdisk-config.c
+- cpukit/libblock/src/ramdisk-driver.c
+- cpukit/libblock/src/ramdisk-init.c
+- cpukit/libblock/src/ramdisk-register.c
+- cpukit/libblock/src/sparse-disk.c
+- cpukit/libcrypt/crypt.c
+- cpukit/libcrypt/crypt-md5.c
+- cpukit/libcrypt/crypt-sha256.c
+- cpukit/libcrypt/crypt-sha512.c
+- cpukit/libcrypt/misc.c
+- cpukit/libcsupport/src/access.c
+- cpukit/libcsupport/src/alignedalloc.c
+- cpukit/libcsupport/src/arc4random_getentropy_fail.c
+- cpukit/libcsupport/src/__assert.c
+- cpukit/libcsupport/src/assoc32tostring.c
+- cpukit/libcsupport/src/assoclocalbyname.c
+- cpukit/libcsupport/src/assoclocalbyremotebitfield.c
+- cpukit/libcsupport/src/assoclocalbyremote.c
+- cpukit/libcsupport/src/assocnamebad.c
+- cpukit/libcsupport/src/assocnamebylocalbitfield.c
+- cpukit/libcsupport/src/assocnamebylocal.c
+- cpukit/libcsupport/src/assocnamebyremotebitfield.c
+- cpukit/libcsupport/src/assocnamebyremote.c
+- cpukit/libcsupport/src/assocptrbylocal.c
+- cpukit/libcsupport/src/assocptrbyname.c
+- cpukit/libcsupport/src/assocptrbyremote.c
+- cpukit/libcsupport/src/assocremotebylocalbitfield.c
+- cpukit/libcsupport/src/assocremotebylocal.c
+- cpukit/libcsupport/src/assocremotebyname.c
+- cpukit/libcsupport/src/assocthreadstatestostring.c
+- cpukit/libcsupport/src/base_fs.c
+- cpukit/libcsupport/src/cachealignedalloc.c
+- cpukit/libcsupport/src/cachecoherentalloc.c
+- cpukit/libcsupport/src/calloc.c
+- cpukit/libcsupport/src/_calloc_r.c
+- cpukit/libcsupport/src/cfgetispeed.c
+- cpukit/libcsupport/src/cfgetospeed.c
+- cpukit/libcsupport/src/cfmakeraw.c
+- cpukit/libcsupport/src/cfmakesane.c
+- cpukit/libcsupport/src/cfsetispeed.c
+- cpukit/libcsupport/src/cfsetospeed.c
+- cpukit/libcsupport/src/cfsetspeed.c
+- cpukit/libcsupport/src/chdir.c
+- cpukit/libcsupport/src/chmod.c
+- cpukit/libcsupport/src/chown.c
+- cpukit/libcsupport/src/chroot.c
+- cpukit/libcsupport/src/clock.c
+- cpukit/libcsupport/src/clonenode.c
+- cpukit/libcsupport/src/close.c
+- cpukit/libcsupport/src/consolesimple.c
+- cpukit/libcsupport/src/consolesimpleread.c
+- cpukit/libcsupport/src/consolesimpletask.c
+- cpukit/libcsupport/src/ctermid.c
+- cpukit/libcsupport/src/dup2.c
+- cpukit/libcsupport/src/dup.c
+- cpukit/libcsupport/src/error.c
+- cpukit/libcsupport/src/fchdir.c
+- cpukit/libcsupport/src/fchmod.c
+- cpukit/libcsupport/src/fchown.c
+- cpukit/libcsupport/src/fcntl.c
+- cpukit/libcsupport/src/fdatasync.c
+- cpukit/libcsupport/src/flockfile.c
+- cpukit/libcsupport/src/fpathconf.c
+- cpukit/libcsupport/src/free.c
+- cpukit/libcsupport/src/freenode.c
+- cpukit/libcsupport/src/_free_r.c
+- cpukit/libcsupport/src/fstat.c
+- cpukit/libcsupport/src/fsync.c
+- cpukit/libcsupport/src/ftruncate.c
+- cpukit/libcsupport/src/ftrylockfile.c
+- cpukit/libcsupport/src/funlockfile.c
+- cpukit/libcsupport/src/getchark.c
+- cpukit/libcsupport/src/getdents.c
+- cpukit/libcsupport/src/getegid.c
+- cpukit/libcsupport/src/geteuid.c
+- cpukit/libcsupport/src/getgid.c
+- cpukit/libcsupport/src/getgrent.c
+- cpukit/libcsupport/src/getgrnam.c
+- cpukit/libcsupport/src/getgroups.c
+- cpukit/libcsupport/src/getlogin.c
+- cpukit/libcsupport/src/getpagesize.c
+- cpukit/libcsupport/src/getpgrp.c
+- cpukit/libcsupport/src/__getpid.c
+- cpukit/libcsupport/src/getpid.c
+- cpukit/libcsupport/src/getppid.c
+- cpukit/libcsupport/src/getpwent.c
+- cpukit/libcsupport/src/getreentglobal.c
+- cpukit/libcsupport/src/getrusage.c
+- cpukit/libcsupport/src/__gettod.c
+- cpukit/libcsupport/src/getuid.c
+- cpukit/libcsupport/src/gxx_wrappers.c
+- cpukit/libcsupport/src/ioctl.c
+- cpukit/libcsupport/src/isatty_r.c
+- cpukit/libcsupport/src/issetugid.c
+- cpukit/libcsupport/src/kill_noposix.c
+- cpukit/libcsupport/src/lchown.c
+- cpukit/libcsupport/src/libio.c
+- cpukit/libcsupport/src/libio_exit.c
+- cpukit/libcsupport/src/libio_init.c
+- cpukit/libcsupport/src/libiozeroiops.c
+- cpukit/libcsupport/src/link.c
+- cpukit/libcsupport/src/lseek.c
+- cpukit/libcsupport/src/lstat.c
+- cpukit/libcsupport/src/malloc.c
+- cpukit/libcsupport/src/malloc_deferred.c
+- cpukit/libcsupport/src/malloc_dirtier.c
+- cpukit/libcsupport/src/mallocdirtydefault.c
+- cpukit/libcsupport/src/mallocextenddefault.c
+- cpukit/libcsupport/src/mallocfreespace.c
+- cpukit/libcsupport/src/mallocgetheapptr.c
+- cpukit/libcsupport/src/mallocinfo.c
+- cpukit/libcsupport/src/malloc_initialize.c
+- cpukit/libcsupport/src/_malloc_r.c
+- cpukit/libcsupport/src/mallocsetheapptr.c
+- cpukit/libcsupport/src/malloc_walk.c
+- cpukit/libcsupport/src/mkdir.c
+- cpukit/libcsupport/src/mkfifo.c
+- cpukit/libcsupport/src/mknod.c
+- cpukit/libcsupport/src/mount.c
+- cpukit/libcsupport/src/mount-mgr.c
+- cpukit/libcsupport/src/mount-mktgt.c
+- cpukit/libcsupport/src/newlibc_exit.c
+- cpukit/libcsupport/src/newlibc_reent.c
+- cpukit/libcsupport/src/open.c
+- cpukit/libcsupport/src/open_dev_console.c
+- cpukit/libcsupport/src/pathconf.c
+- cpukit/libcsupport/src/posix_devctl.c
+- cpukit/libcsupport/src/posix_memalign.c
+- cpukit/libcsupport/src/printerfprintfputc.c
+- cpukit/libcsupport/src/printertask.c
+- cpukit/libcsupport/src/printf_plugin.c
+- cpukit/libcsupport/src/print_fprintf.c
+- cpukit/libcsupport/src/printk.c
+- cpukit/libcsupport/src/printk_plugin.c
+- cpukit/libcsupport/src/print_printf.c
+- cpukit/libcsupport/src/privateenv.c
+- cpukit/libcsupport/src/putk.c
+- cpukit/libcsupport/src/pwdgrp.c
+- cpukit/libcsupport/src/read.c
+- cpukit/libcsupport/src/readlink.c
+- cpukit/libcsupport/src/readv.c
+- cpukit/libcsupport/src/realloc.c
+- cpukit/libcsupport/src/_realloc_r.c
+- cpukit/libcsupport/src/realpath.c
+- cpukit/libcsupport/src/_rename_r.c
+- cpukit/libcsupport/src/resource_snapshot.c
+- cpukit/libcsupport/src/rmdir.c
+- cpukit/libcsupport/src/rtems_heap_extend.c
+- cpukit/libcsupport/src/rtems_heap_extend_via_sbrk.c
+- cpukit/libcsupport/src/rtems_heap_greedy.c
+- cpukit/libcsupport/src/rtems_heap_null_extend.c
+- cpukit/libcsupport/src/rtems_memalign.c
+- cpukit/libcsupport/src/rtems_mkdir.c
+- cpukit/libcsupport/src/rtems_putc.c
+- cpukit/libcsupport/src/rtems_put_char.c
+- cpukit/libcsupport/src/setegid.c
+- cpukit/libcsupport/src/seteuid.c
+- cpukit/libcsupport/src/setgid.c
+- cpukit/libcsupport/src/setgroups.c
+- cpukit/libcsupport/src/setpgid.c
+- cpukit/libcsupport/src/setsid.c
+- cpukit/libcsupport/src/setuid.c
+- cpukit/libcsupport/src/stat.c
+- cpukit/libcsupport/src/statvfs.c
+- cpukit/libcsupport/src/sup_fs_check_permissions.c
+- cpukit/libcsupport/src/sup_fs_deviceio.c
+- cpukit/libcsupport/src/sup_fs_eval_path.c
+- cpukit/libcsupport/src/sup_fs_eval_path_generic.c
+- cpukit/libcsupport/src/sup_fs_exist_in_same_instance.c
+- cpukit/libcsupport/src/sup_fs_location.c
+- cpukit/libcsupport/src/sup_fs_mount_iterate.c
+- cpukit/libcsupport/src/sup_fs_next_token.c
+- cpukit/libcsupport/src/symlink.c
+- cpukit/libcsupport/src/sync.c
+- cpukit/libcsupport/src/tcdrain.c
+- cpukit/libcsupport/src/tcflow.c
+- cpukit/libcsupport/src/tcflush.c
+- cpukit/libcsupport/src/tcgetattr.c
+- cpukit/libcsupport/src/tcgetpgrp.c
+- cpukit/libcsupport/src/tcsendbreak.c
+- cpukit/libcsupport/src/tcsetattr.c
+- cpukit/libcsupport/src/tcsetpgrp.c
+- cpukit/libcsupport/src/termios_baud2index.c
+- cpukit/libcsupport/src/termios_baud2num.c
+- cpukit/libcsupport/src/termios_baudtable.c
+- cpukit/libcsupport/src/termios.c
+- cpukit/libcsupport/src/termiosinitialize.c
+- cpukit/libcsupport/src/termios_num2baud.c
+- cpukit/libcsupport/src/termios_posix_isig_handler.c
+- cpukit/libcsupport/src/termios_setbestbaud.c
+- cpukit/libcsupport/src/termios_setinitialbaud.c
+- cpukit/libcsupport/src/__times.c
+- cpukit/libcsupport/src/truncate.c
+- cpukit/libcsupport/src/uenvgetgroups.c
+- cpukit/libcsupport/src/umask.c
+- cpukit/libcsupport/src/unlink.c
+- cpukit/libcsupport/src/unmount.c
+- cpukit/libcsupport/src/__usrenv.c
+- cpukit/libcsupport/src/utime.c
+- cpukit/libcsupport/src/utimes.c
+- cpukit/libcsupport/src/utsname.c
+- cpukit/libcsupport/src/vprintk.c
+- cpukit/libcsupport/src/write.c
+- cpukit/libcsupport/src/write_r.c
+- cpukit/libcsupport/src/writev.c
+- cpukit/libfs/src/defaults/default_are_nodes_equal.c
+- cpukit/libfs/src/defaults/default_chown.c
+- cpukit/libfs/src/defaults/default_clone.c
+- cpukit/libfs/src/defaults/default_close.c
+- cpukit/libfs/src/defaults/default_eval_path.c
+- cpukit/libfs/src/defaults/default_fchmod.c
+- cpukit/libfs/src/defaults/default_fcntl.c
+- cpukit/libfs/src/defaults/default_freenode.c
+- cpukit/libfs/src/defaults/default_fstat.c
+- cpukit/libfs/src/defaults/default_fsunmount.c
+- cpukit/libfs/src/defaults/default_fsync.c
+- cpukit/libfs/src/defaults/default_fsync_success.c
+- cpukit/libfs/src/defaults/default_ftruncate.c
+- cpukit/libfs/src/defaults/default_ftruncate_directory.c
+- cpukit/libfs/src/defaults/default_handlers.c
+- cpukit/libfs/src/defaults/default_ioctl.c
+- cpukit/libfs/src/defaults/default_kqfilter.c
+- cpukit/libfs/src/defaults/default_link.c
+- cpukit/libfs/src/defaults/default_lock_and_unlock.c
+- cpukit/libfs/src/defaults/default_lseek.c
+- cpukit/libfs/src/defaults/default_lseek_directory.c
+- cpukit/libfs/src/defaults/default_lseek_file.c
+- cpukit/libfs/src/defaults/default_mknod.c
+- cpukit/libfs/src/defaults/default_mmap.c
+- cpukit/libfs/src/defaults/default_mount.c
+- cpukit/libfs/src/defaults/default_open.c
+- cpukit/libfs/src/defaults/default_ops.c
+- cpukit/libfs/src/defaults/default_poll.c
+- cpukit/libfs/src/defaults/default_read.c
+- cpukit/libfs/src/defaults/default_readlink.c
+- cpukit/libfs/src/defaults/default_readv.c
+- cpukit/libfs/src/defaults/default_rename.c
+- cpukit/libfs/src/defaults/default_rmnod.c
+- cpukit/libfs/src/defaults/default_statvfs.c
+- cpukit/libfs/src/defaults/default_symlink.c
+- cpukit/libfs/src/defaults/default_unmount.c
+- cpukit/libfs/src/defaults/default_utime.c
+- cpukit/libfs/src/defaults/default_write.c
+- cpukit/libfs/src/defaults/default_writev.c
+- cpukit/libfs/src/dosfs/fat.c
+- cpukit/libfs/src/dosfs/fat_fat_operations.c
+- cpukit/libfs/src/dosfs/fat_file.c
+- cpukit/libfs/src/dosfs/msdos_conv.c
+- cpukit/libfs/src/dosfs/msdos_conv_default.c
+- cpukit/libfs/src/dosfs/msdos_conv_utf8.c
+- cpukit/libfs/src/dosfs/msdos_create.c
+- cpukit/libfs/src/dosfs/msdos_dir.c
+- cpukit/libfs/src/dosfs/msdos_eval.c
+- cpukit/libfs/src/dosfs/msdos_file.c
+- cpukit/libfs/src/dosfs/msdos_format.c
+- cpukit/libfs/src/dosfs/msdos_free.c
+- cpukit/libfs/src/dosfs/msdos_fsunmount.c
+- cpukit/libfs/src/dosfs/msdos_handlers_dir.c
+- cpukit/libfs/src/dosfs/msdos_handlers_file.c
+- cpukit/libfs/src/dosfs/msdos_init.c
+- cpukit/libfs/src/dosfs/msdos_initsupp.c
+- cpukit/libfs/src/dosfs/msdos_misc.c
+- cpukit/libfs/src/dosfs/msdos_mknod.c
+- cpukit/libfs/src/dosfs/msdos_rename.c
+- cpukit/libfs/src/dosfs/msdos_rmnod.c
+- cpukit/libfs/src/dosfs/msdos_statvfs.c
+- cpukit/libfs/src/imfs/deviceio.c
+- cpukit/libfs/src/imfs/imfs_add_node.c
+- cpukit/libfs/src/imfs/imfs_chown.c
+- cpukit/libfs/src/imfs/imfs_config.c
+- cpukit/libfs/src/imfs/imfs_creat.c
+- cpukit/libfs/src/imfs/imfs_dir.c
+- cpukit/libfs/src/imfs/imfs_dir_default.c
+- cpukit/libfs/src/imfs/imfs_dir_minimal.c
+- cpukit/libfs/src/imfs/imfs_eval.c
+- cpukit/libfs/src/imfs/imfs_eval_devfs.c
+- cpukit/libfs/src/imfs/imfs_fchmod.c
+- cpukit/libfs/src/imfs/imfs_fifo.c
+- cpukit/libfs/src/imfs/imfs_fsunmount.c
+- cpukit/libfs/src/imfs/imfs_handlers_device.c
+- cpukit/libfs/src/imfs/imfs_init.c
+- cpukit/libfs/src/imfs/imfs_initsupp.c
+- cpukit/libfs/src/imfs/imfs_linfile.c
+- cpukit/libfs/src/imfs/imfs_link.c
+- cpukit/libfs/src/imfs/imfs_load_tar.c
+- cpukit/libfs/src/imfs/imfs_make_generic_node.c
+- cpukit/libfs/src/imfs/imfs_make_linfile.c
+- cpukit/libfs/src/imfs/imfs_memfile.c
+- cpukit/libfs/src/imfs/imfs_mknod.c
+- cpukit/libfs/src/imfs/imfs_mount.c
+- cpukit/libfs/src/imfs/imfs_node.c
+- cpukit/libfs/src/imfs/imfs_node_destroy_default.c
+- cpukit/libfs/src/imfs/imfs_rename.c
+- cpukit/libfs/src/imfs/imfs_rmnod.c
+- cpukit/libfs/src/imfs/imfs_stat.c
+- cpukit/libfs/src/imfs/imfs_stat_file.c
+- cpukit/libfs/src/imfs/imfs_symlink.c
+- cpukit/libfs/src/imfs/imfs_unmount.c
+- cpukit/libfs/src/imfs/imfs_utime.c
+- cpukit/libfs/src/imfs/ioman.c
+- cpukit/libfs/src/pipe/fifo.c
+- cpukit/libfs/src/pipe/pipe.c
+- cpukit/libfs/src/rfs/rtems-rfs-bitmaps.c
+- cpukit/libfs/src/rfs/rtems-rfs-block.c
+- cpukit/libfs/src/rfs/rtems-rfs-buffer-bdbuf.c
+- cpukit/libfs/src/rfs/rtems-rfs-buffer.c
+- cpukit/libfs/src/rfs/rtems-rfs-dir.c
+- cpukit/libfs/src/rfs/rtems-rfs-dir-hash.c
+- cpukit/libfs/src/rfs/rtems-rfs-file.c
+- cpukit/libfs/src/rfs/rtems-rfs-file-system.c
+- cpukit/libfs/src/rfs/rtems-rfs-format.c
+- cpukit/libfs/src/rfs/rtems-rfs-group.c
+- cpukit/libfs/src/rfs/rtems-rfs-inode.c
+- cpukit/libfs/src/rfs/rtems-rfs-link.c
+- cpukit/libfs/src/rfs/rtems-rfs-mutex.c
+- cpukit/libfs/src/rfs/rtems-rfs-rtems.c
+- cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c
+- cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
+- cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c
+- cpukit/libfs/src/rfs/rtems-rfs-rtems-utils.c
+- cpukit/libfs/src/rfs/rtems-rfs-shell.c
+- cpukit/libfs/src/rfs/rtems-rfs-trace.c
+- cpukit/libi2c/libi2c.c
+- cpukit/libmd/md4.c
+- cpukit/libmd/md5.c
+- cpukit/libmd/sha256c.c
+- cpukit/libmd/sha512c.c
+- cpukit/libmisc/bspcmdline/bspcmdline_get.c
+- cpukit/libmisc/bspcmdline/bspcmdline_getparam.c
+- cpukit/libmisc/bspcmdline/bspcmdline_getparamraw.c
+- cpukit/libmisc/bspcmdline/bspcmdline_getparamrhs.c
+- cpukit/libmisc/capture/capture_buffer.c
+- cpukit/libmisc/capture/capture.c
+- cpukit/libmisc/capture/capture-cli.c
+- cpukit/libmisc/capture/capture_support.c
+- cpukit/libmisc/capture/capture_user_extension.c
+- cpukit/libmisc/capture/rtems-trace-buffer-vars.c
+- cpukit/libmisc/cpuuse/cpuinforeport.c
+- cpukit/libmisc/cpuuse/cpuusagedata.c
+- cpukit/libmisc/cpuuse/cpuusagereport.c
+- cpukit/libmisc/cpuuse/cpuusagereset.c
+- cpukit/libmisc/cpuuse/cpuusagetop.c
+- cpukit/libmisc/devnull/devnull.c
+- cpukit/libmisc/devnull/devzero.c
+- cpukit/libmisc/dumpbuf/dumpbuf.c
+- cpukit/libmisc/fb/mw_print.c
+- cpukit/libmisc/fb/mw_uid.c
+- cpukit/libmisc/fsmount/fsmount.c
+- cpukit/libmisc/monitor/mon-command.c
+- cpukit/libmisc/monitor/mon-config.c
+- cpukit/libmisc/monitor/mon-driver.c
+- cpukit/libmisc/monitor/mon-editor.c
+- cpukit/libmisc/monitor/mon-extension.c
+- cpukit/libmisc/monitor/mon-itask.c
+- cpukit/libmisc/monitor/mon-manager.c
+- cpukit/libmisc/monitor/mon-monitor.c
+- cpukit/libmisc/monitor/mon-object.c
+- cpukit/libmisc/monitor/mon-part.c
+- cpukit/libmisc/monitor/mon-prmisc.c
+- cpukit/libmisc/monitor/mon-queue.c
+- cpukit/libmisc/monitor/mon-region.c
+- cpukit/libmisc/monitor/mon-sema.c
+- cpukit/libmisc/monitor/mon-server.c
+- cpukit/libmisc/monitor/mon-symbols.c
+- cpukit/libmisc/monitor/mon-task.c
+- cpukit/libmisc/mouse/mouse_parser.c
+- cpukit/libmisc/mouse/serial_mouse.c
+- cpukit/libmisc/redirector/stdio-redirect.c
+- cpukit/libmisc/rtems-fdt/rtems-fdt.c
+- cpukit/libmisc/rtems-fdt/rtems-fdt-shell.c
+- cpukit/libmisc/stackchk/check.c
+- cpukit/libmisc/stringto/stringtodouble.c
+- cpukit/libmisc/stringto/stringtofloat.c
+- cpukit/libmisc/stringto/stringtoint.c
+- cpukit/libmisc/stringto/stringtolong.c
+- cpukit/libmisc/stringto/stringtolongdouble.c
+- cpukit/libmisc/stringto/stringtolonglong.c
+- cpukit/libmisc/stringto/stringtopointer.c
+- cpukit/libmisc/stringto/stringtounsignedchar.c
+- cpukit/libmisc/stringto/stringtounsignedint.c
+- cpukit/libmisc/stringto/stringtounsignedlong.c
+- cpukit/libmisc/stringto/stringtounsignedlonglong.c
+- cpukit/libmisc/untar/untar.c
+- cpukit/libmisc/untar/untar_tgz.c
+- cpukit/libmisc/untar/untar_txz.c
+- cpukit/libmisc/uuid/clear.c
+- cpukit/libmisc/uuid/compare.c
+- cpukit/libmisc/uuid/copy.c
+- cpukit/libmisc/uuid/gen_uuid.c
+- cpukit/libmisc/uuid/isnull.c
+- cpukit/libmisc/uuid/pack.c
+- cpukit/libmisc/uuid/parse.c
+- cpukit/libmisc/uuid/unpack.c
+- cpukit/libmisc/uuid/unparse.c
+- cpukit/libmisc/uuid/uuid_time.c
+- cpukit/libmisc/xz/xz_crc32.c
+- cpukit/libmisc/xz/xz_dec_lzma2.c
+- cpukit/libmisc/xz/xz_dec_stream.c
+- cpukit/libstdthreads/call_once.c
+- cpukit/libstdthreads/cnd.c
+- cpukit/libstdthreads/mtx.c
+- cpukit/libstdthreads/thrd.c
+- cpukit/libstdthreads/tss.c
+- cpukit/libtrace/record/record.c
+- cpukit/libtrace/record/record-client.c
+- cpukit/libtrace/record/record-dump-base64.c
+- cpukit/libtrace/record/record-dump.c
+- cpukit/libtrace/record/record-dump-fatal.c
+- cpukit/libtrace/record/record-dump-zbase64.c
+- cpukit/libtrace/record/record-dump-zfatal.c
+- cpukit/libtrace/record/record-server.c
+- cpukit/libtrace/record/record-sysinit.c
+- cpukit/libtrace/record/record-text.c
+- cpukit/libtrace/record/record-userext.c
+- cpukit/libtrace/record/record-util.c
+- cpukit/posix/src/adjtime.c
+- cpukit/posix/src/aio_suspend.c
+- cpukit/posix/src/barrierattrdestroy.c
+- cpukit/posix/src/barrierattrgetpshared.c
+- cpukit/posix/src/barrierattrinit.c
+- cpukit/posix/src/barrierattrsetpshared.c
+- cpukit/posix/src/cancel.c
+- cpukit/posix/src/cleanuppush.c
+- cpukit/posix/src/clockgetcpuclockid.c
+- cpukit/posix/src/clockgetres.c
+- cpukit/posix/src/clockgettime.c
+- cpukit/posix/src/clocksettime.c
+- cpukit/posix/src/condattrdestroy.c
+- cpukit/posix/src/condattrgetclock.c
+- cpukit/posix/src/condattrgetpshared.c
+- cpukit/posix/src/condattrinit.c
+- cpukit/posix/src/condattrsetclock.c
+- cpukit/posix/src/condattrsetpshared.c
+- cpukit/posix/src/condbroadcast.c
+- cpukit/posix/src/conddefaultattributes.c
+- cpukit/posix/src/conddestroy.c
+- cpukit/posix/src/condinit.c
+- cpukit/posix/src/condsignal.c
+- cpukit/posix/src/condsignalsupp.c
+- cpukit/posix/src/condtimedwait.c
+- cpukit/posix/src/condwait.c
+- cpukit/posix/src/condwaitsupp.c
+- cpukit/posix/src/_execve.c
+- cpukit/posix/src/fork.c
+- cpukit/posix/src/key.c
+- cpukit/posix/src/keycreate.c
+- cpukit/posix/src/keydelete.c
+- cpukit/posix/src/keygetspecific.c
+- cpukit/posix/src/keysetspecific.c
+- cpukit/posix/src/keyzerokvp.c
+- cpukit/posix/src/lio_listio.c
+- cpukit/posix/src/mlockall.c
+- cpukit/posix/src/mlock.c
+- cpukit/posix/src/mmap.c
+- cpukit/posix/src/mprotect.c
+- cpukit/posix/src/mqueue.c
+- cpukit/posix/src/mqueueclose.c
+- cpukit/posix/src/mqueueconfig.c
+- cpukit/posix/src/mqueuedeletesupp.c
+- cpukit/posix/src/mqueuegetattr.c
+- cpukit/posix/src/mqueueopen.c
+- cpukit/posix/src/mqueuereceive.c
+- cpukit/posix/src/mqueuerecvsupp.c
+- cpukit/posix/src/mqueuesend.c
+- cpukit/posix/src/mqueuesendsupp.c
+- cpukit/posix/src/mqueuesetattr.c
+- cpukit/posix/src/mqueuetimedreceive.c
+- cpukit/posix/src/mqueuetimedsend.c
+- cpukit/posix/src/mqueueunlink.c
+- cpukit/posix/src/msync.c
+- cpukit/posix/src/munlockall.c
+- cpukit/posix/src/munlock.c
+- cpukit/posix/src/munmap.c
+- cpukit/posix/src/mutexattrdestroy.c
+- cpukit/posix/src/mutexattrgetprioceiling.c
+- cpukit/posix/src/mutexattrgetprotocol.c
+- cpukit/posix/src/mutexattrgetpshared.c
+- cpukit/posix/src/mutexattrgettype.c
+- cpukit/posix/src/mutexattrinit.c
+- cpukit/posix/src/mutexattrsetprioceiling.c
+- cpukit/posix/src/mutexattrsetprotocol.c
+- cpukit/posix/src/mutexattrsetpshared.c
+- cpukit/posix/src/mutexattrsettype.c
+- cpukit/posix/src/mutexdestroy.c
+- cpukit/posix/src/mutexgetprioceiling.c
+- cpukit/posix/src/mutexinit.c
+- cpukit/posix/src/mutexlock.c
+- cpukit/posix/src/mutexlocksupp.c
+- cpukit/posix/src/mutexsetprioceiling.c
+- cpukit/posix/src/mutextimedlock.c
+- cpukit/posix/src/mutextrylock.c
+- cpukit/posix/src/mutexunlock.c
+- cpukit/posix/src/nanosleep.c
+- cpukit/posix/src/pbarrierdestroy.c
+- cpukit/posix/src/pbarrierinit.c
+- cpukit/posix/src/pbarrierwait.c
+- cpukit/posix/src/posix_madvise.c
+- cpukit/posix/src/prwlockdestroy.c
+- cpukit/posix/src/prwlockinit.c
+- cpukit/posix/src/prwlockrdlock.c
+- cpukit/posix/src/prwlocktimedrdlock.c
+- cpukit/posix/src/prwlocktimedwrlock.c
+- cpukit/posix/src/prwlocktryrdlock.c
+- cpukit/posix/src/prwlocktrywrlock.c
+- cpukit/posix/src/prwlockunlock.c
+- cpukit/posix/src/prwlockwrlock.c
+- cpukit/posix/src/psignalconfig.c
+- cpukit/posix/src/pspindestroy.c
+- cpukit/posix/src/pspininit.c
+- cpukit/posix/src/pspinlock.c
+- cpukit/posix/src/pspinunlock.c
+- cpukit/posix/src/psxnametoid.c
+- cpukit/posix/src/psxpriorityisvalid.c
+- cpukit/posix/src/psxsemaphore.c
+- cpukit/posix/src/psxsemaphoreconfig.c
+- cpukit/posix/src/psxtimerconfig.c
+- cpukit/posix/src/psxtransschedparam.c
+- cpukit/posix/src/pthreadatfork.c
+- cpukit/posix/src/pthreadattrdefault.c
+- cpukit/posix/src/pthreadattrdestroy.c
+- cpukit/posix/src/pthreadattrgetaffinitynp.c
+- cpukit/posix/src/pthreadattrgetdetachstate.c
+- cpukit/posix/src/pthreadattrgetguardsize.c
+- cpukit/posix/src/pthreadattrgetinheritsched.c
+- cpukit/posix/src/pthreadattrgetschedparam.c
+- cpukit/posix/src/pthreadattrgetschedpolicy.c
+- cpukit/posix/src/pthreadattrgetscope.c
+- cpukit/posix/src/pthreadattrgetstackaddr.c
+- cpukit/posix/src/pthreadattrgetstack.c
+- cpukit/posix/src/pthreadattrgetstacksize.c
+- cpukit/posix/src/pthreadattrinit.c
+- cpukit/posix/src/pthreadattrsetaffinitynp.c
+- cpukit/posix/src/pthreadattrsetdetachstate.c
+- cpukit/posix/src/pthreadattrsetguardsize.c
+- cpukit/posix/src/pthreadattrsetinheritsched.c
+- cpukit/posix/src/pthreadattrsetschedparam.c
+- cpukit/posix/src/pthreadattrsetschedpolicy.c
+- cpukit/posix/src/pthreadattrsetscope.c
+- cpukit/posix/src/pthreadattrsetstackaddr.c
+- cpukit/posix/src/pthreadattrsetstack.c
+- cpukit/posix/src/pthreadattrsetstacksize.c
+- cpukit/posix/src/pthread.c
+- cpukit/posix/src/pthreadconcurrency.c
+- cpukit/posix/src/pthreadconfig.c
+- cpukit/posix/src/pthreadcreate.c
+- cpukit/posix/src/pthreaddetach.c
+- cpukit/posix/src/pthreadequal.c
+- cpukit/posix/src/pthreadexit.c
+- cpukit/posix/src/pthreadgetaffinitynp.c
+- cpukit/posix/src/pthreadgetattrnp.c
+- cpukit/posix/src/pthreadgetcpuclockid.c
+- cpukit/posix/src/pthreadgetnamenp.c
+- cpukit/posix/src/pthreadgetschedparam.c
+- cpukit/posix/src/pthreadinitthreads.c
+- cpukit/posix/src/pthreadjoin.c
+- cpukit/posix/src/pthreadonce.c
+- cpukit/posix/src/pthreadself.c
+- cpukit/posix/src/pthreadsetaffinitynp.c
+- cpukit/posix/src/pthreadsetnamenp.c
+- cpukit/posix/src/pthreadsetschedparam.c
+- cpukit/posix/src/pthreadsetschedprio.c
+- cpukit/posix/src/rwlockattrdestroy.c
+- cpukit/posix/src/rwlockattrgetpshared.c
+- cpukit/posix/src/rwlockattrinit.c
+- cpukit/posix/src/rwlockattrsetpshared.c
+- cpukit/posix/src/sched_getparam.c
+- cpukit/posix/src/sched_getprioritymax.c
+- cpukit/posix/src/sched_getprioritymin.c
+- cpukit/posix/src/sched_getscheduler.c
+- cpukit/posix/src/sched_rr_get_interval.c
+- cpukit/posix/src/sched_setparam.c
+- cpukit/posix/src/sched_setscheduler.c
+- cpukit/posix/src/sched_yield.c
+- cpukit/posix/src/semaphoredeletesupp.c
+- cpukit/posix/src/semclose.c
+- cpukit/posix/src/semdestroy.c
+- cpukit/posix/src/semgetvalue.c
+- cpukit/posix/src/seminit.c
+- cpukit/posix/src/semopen.c
+- cpukit/posix/src/sempost.c
+- cpukit/posix/src/semtimedwait.c
+- cpukit/posix/src/semtrywait.c
+- cpukit/posix/src/semunlink.c
+- cpukit/posix/src/semwait.c
+- cpukit/posix/src/setcancelstate.c
+- cpukit/posix/src/setcanceltype.c
+- cpukit/posix/src/shm.c
+- cpukit/posix/src/shmconfig.c
+- cpukit/posix/src/shmheap.c
+- cpukit/posix/src/shmopen.c
+- cpukit/posix/src/shmops.c
+- cpukit/posix/src/shmunlink.c
+- cpukit/posix/src/shmwkspace.c
+- cpukit/posix/src/sigaddset.c
+- cpukit/posix/src/sigdelset.c
+- cpukit/posix/src/sigemptyset.c
+- cpukit/posix/src/sigfillset.c
+- cpukit/posix/src/sigismember.c
+- cpukit/posix/src/sigprocmask.c
+- cpukit/posix/src/sysconf.c
+- cpukit/posix/src/testcancel.c
+- cpukit/posix/src/vfork.c
+- cpukit/posix/src/wait.c
+- cpukit/posix/src/waitpid.c
+- cpukit/rtems/src/barrier.c
+- cpukit/rtems/src/barriercreate.c
+- cpukit/rtems/src/barrierdelete.c
+- cpukit/rtems/src/barrierident.c
+- cpukit/rtems/src/barrierrelease.c
+- cpukit/rtems/src/barrierwait.c
+- cpukit/rtems/src/clockgetsecondssinceepoch.c
+- cpukit/rtems/src/clockgettickspersecond.c
+- cpukit/rtems/src/clockgettod.c
+- cpukit/rtems/src/clockgettodtimeval.c
+- cpukit/rtems/src/clockgetuptime.c
+- cpukit/rtems/src/clockgetuptimenanoseconds.c
+- cpukit/rtems/src/clockgetuptimeseconds.c
+- cpukit/rtems/src/clockgetuptimetimeval.c
+- cpukit/rtems/src/clockset.c
+- cpukit/rtems/src/clocktick.c
+- cpukit/rtems/src/clocktodtoseconds.c
+- cpukit/rtems/src/clocktodvalidate.c
+- cpukit/rtems/src/dpmem.c
+- cpukit/rtems/src/dpmemcreate.c
+- cpukit/rtems/src/dpmemdelete.c
+- cpukit/rtems/src/dpmemexternal2internal.c
+- cpukit/rtems/src/dpmemident.c
+- cpukit/rtems/src/dpmeminternal2external.c
+- cpukit/rtems/src/eventreceive.c
+- cpukit/rtems/src/eventseize.c
+- cpukit/rtems/src/eventsend.c
+- cpukit/rtems/src/eventsurrender.c
+- cpukit/rtems/src/getapiconfig.c
+- cpukit/rtems/src/intrbody.c
+- cpukit/rtems/src/intrcatch.c
+- cpukit/rtems/src/modes.c
+- cpukit/rtems/src/msg.c
+- cpukit/rtems/src/msgqbroadcast.c
+- cpukit/rtems/src/msgqcreate.c
+- cpukit/rtems/src/msgqdelete.c
+- cpukit/rtems/src/msgqflush.c
+- cpukit/rtems/src/msgqgetnumberpending.c
+- cpukit/rtems/src/msgqident.c
+- cpukit/rtems/src/msgqreceive.c
+- cpukit/rtems/src/msgqsend.c
+- cpukit/rtems/src/msgqurgent.c
+- cpukit/rtems/src/part.c
+- cpukit/rtems/src/partcreate.c
+- cpukit/rtems/src/partdelete.c
+- cpukit/rtems/src/partgetbuffer.c
+- cpukit/rtems/src/partident.c
+- cpukit/rtems/src/partreturnbuffer.c
+- cpukit/rtems/src/ratemon.c
+- cpukit/rtems/src/ratemoncancel.c
+- cpukit/rtems/src/ratemoncreate.c
+- cpukit/rtems/src/ratemondelete.c
+- cpukit/rtems/src/ratemongetstatistics.c
+- cpukit/rtems/src/ratemongetstatus.c
+- cpukit/rtems/src/ratemonident.c
+- cpukit/rtems/src/ratemonperiod.c
+- cpukit/rtems/src/ratemonreportstatistics.c
+- cpukit/rtems/src/ratemonresetall.c
+- cpukit/rtems/src/ratemonresetstatistics.c
+- cpukit/rtems/src/ratemontimeout.c
+- cpukit/rtems/src/region.c
+- cpukit/rtems/src/regioncreate.c
+- cpukit/rtems/src/regiondelete.c
+- cpukit/rtems/src/regionextend.c
+- cpukit/rtems/src/regiongetfreeinfo.c
+- cpukit/rtems/src/regiongetinfo.c
+- cpukit/rtems/src/regiongetsegment.c
+- cpukit/rtems/src/regiongetsegmentsize.c
+- cpukit/rtems/src/regionident.c
+- cpukit/rtems/src/regionprocessqueue.c
+- cpukit/rtems/src/regionresizesegment.c
+- cpukit/rtems/src/regionreturnsegment.c
+- cpukit/rtems/src/rtemsbuildid.c
+- cpukit/rtems/src/rtemsbuildname.c
+- cpukit/rtems/src/rtemsmaxprio.c
+- cpukit/rtems/src/rtemsnametoid.c
+- cpukit/rtems/src/rtemsobjectapimaximumclass.c
+- cpukit/rtems/src/rtemsobjectapiminimumclass.c
+- cpukit/rtems/src/rtemsobjectgetapiclassname.c
+- cpukit/rtems/src/rtemsobjectgetapiname.c
+- cpukit/rtems/src/rtemsobjectgetclassicname.c
+- cpukit/rtems/src/rtemsobjectgetclassinfo.c
+- cpukit/rtems/src/rtemsobjectgetname.c
+- cpukit/rtems/src/rtemsobjectidapimaximum.c
+- cpukit/rtems/src/rtemsobjectidapiminimum.c
+- cpukit/rtems/src/rtemsobjectidgetapi.c
+- cpukit/rtems/src/rtemsobjectidgetclass.c
+- cpukit/rtems/src/rtemsobjectidgetindex.c
+- cpukit/rtems/src/rtemsobjectidgetnode.c
+- cpukit/rtems/src/rtemsobjectsetname.c
+- cpukit/rtems/src/rtemstimer.c
+- cpukit/rtems/src/scheduleraddprocessor.c
+- cpukit/rtems/src/schedulergetmaxprio.c
+- cpukit/rtems/src/schedulergetprocessorset.c
+- cpukit/rtems/src/scheduleridentbyprocessor.c
+- cpukit/rtems/src/scheduleridentbyprocessorset.c
+- cpukit/rtems/src/schedulerident.c
+- cpukit/rtems/src/schedulermapfromposix.c
+- cpukit/rtems/src/schedulermaptoposix.c
+- cpukit/rtems/src/schedulerremoveprocessor.c
+- cpukit/rtems/src/sem.c
+- cpukit/rtems/src/semcreate.c
+- cpukit/rtems/src/semdelete.c
+- cpukit/rtems/src/semflush.c
+- cpukit/rtems/src/semident.c
+- cpukit/rtems/src/semobtain.c
+- cpukit/rtems/src/semrelease.c
+- cpukit/rtems/src/semsetpriority.c
+- cpukit/rtems/src/signalcatch.c
+- cpukit/rtems/src/signalsend.c
+- cpukit/rtems/src/status.c
+- cpukit/rtems/src/statustext.c
+- cpukit/rtems/src/statustoerrno.c
+- cpukit/rtems/src/systemeventreceive.c
+- cpukit/rtems/src/systemeventsend.c
+- cpukit/rtems/src/taskcreate.c
+- cpukit/rtems/src/taskdelete.c
+- cpukit/rtems/src/taskexit.c
+- cpukit/rtems/src/taskgetaffinity.c
+- cpukit/rtems/src/taskgetpriority.c
+- cpukit/rtems/src/taskgetscheduler.c
+- cpukit/rtems/src/taskident.c
+- cpukit/rtems/src/taskinitdefault.c
+- cpukit/rtems/src/taskinitusers.c
+- cpukit/rtems/src/taskissuspended.c
+- cpukit/rtems/src/taskiterate.c
+- cpukit/rtems/src/taskmode.c
+- cpukit/rtems/src/taskrestart.c
+- cpukit/rtems/src/taskresume.c
+- cpukit/rtems/src/tasks.c
+- cpukit/rtems/src/taskself.c
+- cpukit/rtems/src/tasksetaffinity.c
+- cpukit/rtems/src/tasksetpriority.c
+- cpukit/rtems/src/tasksetscheduler.c
+- cpukit/rtems/src/taskstart.c
+- cpukit/rtems/src/tasksuspend.c
+- cpukit/rtems/src/taskwakeafter.c
+- cpukit/rtems/src/taskwakewhen.c
+- cpukit/rtems/src/timercancel.c
+- cpukit/rtems/src/timercreate.c
+- cpukit/rtems/src/timerdelete.c
+- cpukit/rtems/src/timerfireafter.c
+- cpukit/rtems/src/timerfirewhen.c
+- cpukit/rtems/src/timergetinfo.c
+- cpukit/rtems/src/timerident.c
+- cpukit/rtems/src/timerreset.c
+- cpukit/rtems/src/timerserver.c
+- cpukit/rtems/src/timerserverfireafter.c
+- cpukit/rtems/src/timerserverfirewhen.c
+- cpukit/rtems/src/workspace.c
+- cpukit/rtems/src/workspacegreedy.c
+- cpukit/sapi/src/chainappendnotify.c
+- cpukit/sapi/src/chaingetnotify.c
+- cpukit/sapi/src/chaingetwait.c
+- cpukit/sapi/src/chainprependnotify.c
+- cpukit/sapi/src/chainprotected.c
+- cpukit/sapi/src/cpucounterconverter.c
+- cpukit/sapi/src/delaynano.c
+- cpukit/sapi/src/delayticks.c
+- cpukit/sapi/src/exinit.c
+- cpukit/sapi/src/exshutdown.c
+- cpukit/sapi/src/extension.c
+- cpukit/sapi/src/extensioncreate.c
+- cpukit/sapi/src/extensiondelete.c
+- cpukit/sapi/src/extensionident.c
+- cpukit/sapi/src/fatal.c
+- cpukit/sapi/src/fatalsrctext.c
+- cpukit/sapi/src/getconfigmax.c
+- cpukit/sapi/src/getcopyrightnotice.c
+- cpukit/sapi/src/getversionstring.c
+- cpukit/sapi/src/interrtext.c
+- cpukit/sapi/src/io.c
+- cpukit/sapi/src/ioclose.c
+- cpukit/sapi/src/iocontrol.c
+- cpukit/sapi/src/iodefault.c
+- cpukit/sapi/src/ioinitialize.c
+- cpukit/sapi/src/ioopen.c
+- cpukit/sapi/src/ioread.c
+- cpukit/sapi/src/ioregisterdriver.c
+- cpukit/sapi/src/iounregisterdriver.c
+- cpukit/sapi/src/iowrite.c
+- cpukit/sapi/src/panic.c
+- cpukit/sapi/src/posixapi.c
+- cpukit/sapi/src/profilingiterate.c
+- cpukit/sapi/src/profilingreportxml.c
+- cpukit/sapi/src/rbheap.c
+- cpukit/sapi/src/rbtree.c
+- cpukit/sapi/src/rbtreefind.c
+- cpukit/sapi/src/sapirbtreeinsert.c
+- cpukit/sapi/src/sysinitverbose.c
+- cpukit/sapi/src/tcsimpleinstall.c
+- cpukit/sapi/src/version.c
+- cpukit/score/src/allocatormutex.c
+- cpukit/score/src/apimutexisowner.c
+- cpukit/score/src/apimutexlock.c
+- cpukit/score/src/apimutexunlock.c
+- cpukit/score/src/chain.c
+- cpukit/score/src/chainnodecount.c
+- cpukit/score/src/condition.c
+- cpukit/score/src/configstackspacesize.c
+- cpukit/score/src/corebarrier.c
+- cpukit/score/src/corebarrierrelease.c
+- cpukit/score/src/corebarrierwait.c
+- cpukit/score/src/coremsgbroadcast.c
+- cpukit/score/src/coremsg.c
+- cpukit/score/src/coremsgclose.c
+- cpukit/score/src/coremsgflush.c
+- cpukit/score/src/coremsgflushwait.c
+- cpukit/score/src/coremsginsert.c
+- cpukit/score/src/coremsgseize.c
+- cpukit/score/src/coremsgsubmit.c
+- cpukit/score/src/coremutexseize.c
+- cpukit/score/src/corerwlock.c
+- cpukit/score/src/corerwlockobtainread.c
+- cpukit/score/src/corerwlockobtainwrite.c
+- cpukit/score/src/corerwlockrelease.c
+- cpukit/score/src/coresem.c
+- cpukit/score/src/coretodadjust.c
+- cpukit/score/src/coretod.c
+- cpukit/score/src/coretodhookdata.c
+- cpukit/score/src/coretodhookregister.c
+- cpukit/score/src/coretodhookrun.c
+- cpukit/score/src/coretodhookunregister.c
+- cpukit/score/src/coretodset.c
+- cpukit/score/src/coretodtickspersec.c
+- cpukit/score/src/debugisthreaddispatchingallowed.c
+- cpukit/score/src/freechain.c
+- cpukit/score/src/futex.c
+- cpukit/score/src/heapallocate.c
+- cpukit/score/src/heap.c
+- cpukit/score/src/heapextend.c
+- cpukit/score/src/heapfree.c
+- cpukit/score/src/heapgetfreeinfo.c
+- cpukit/score/src/heapgetinfo.c
+- cpukit/score/src/heapgreedy.c
+- cpukit/score/src/heapiterate.c
+- cpukit/score/src/heapnoextend.c
+- cpukit/score/src/heapresizeblock.c
+- cpukit/score/src/heapsizeofuserarea.c
+- cpukit/score/src/heapwalk.c
+- cpukit/score/src/interr.c
+- cpukit/score/src/iobase64.c
+- cpukit/score/src/ioprintf.c
+- cpukit/score/src/iovprintf.c
+- cpukit/score/src/isr.c
+- cpukit/score/src/isrisinprogress.c
+- cpukit/score/src/iterateoverthreads.c
+- cpukit/score/src/kern_tc.c
+- cpukit/score/src/libatomic.c
+- cpukit/score/src/log2table.c
+- cpukit/score/src/memoryallocate.c
+- cpukit/score/src/memorydirtyfreeareas.c
+- cpukit/score/src/memoryfill.c
+- cpukit/score/src/memoryzerobeforeuse.c
+- cpukit/score/src/memoryzerofreeareas.c
+- cpukit/score/src/mutex.c
+- cpukit/score/src/objectactivecount.c
+- cpukit/score/src/objectallocate.c
+- cpukit/score/src/objectallocatenone.c
+- cpukit/score/src/objectallocatestatic.c
+- cpukit/score/src/objectallocateunlimited.c
+- cpukit/score/src/objectapimaximumclass.c
+- cpukit/score/src/objectclose.c
+- cpukit/score/src/objectextendinformation.c
+- cpukit/score/src/objectfree.c
+- cpukit/score/src/objectfreestatic.c
+- cpukit/score/src/objectgetinfo.c
+- cpukit/score/src/objectgetinfoid.c
+- cpukit/score/src/objectgetlocal.c
+- cpukit/score/src/objectgetnameasstring.c
+- cpukit/score/src/objectgetnext.c
+- cpukit/score/src/objectgetnoprotection.c
+- cpukit/score/src/objectidtoname.c
+- cpukit/score/src/objectinitializeinformation.c
+- cpukit/score/src/objectnamespaceremove.c
+- cpukit/score/src/objectnametoid.c
+- cpukit/score/src/objectnametoidstring.c
+- cpukit/score/src/objectsetname.c
+- cpukit/score/src/objectshrinkinformation.c
+- cpukit/score/src/once.c
+- cpukit/score/src/percpuasm.c
+- cpukit/score/src/percpu.c
+- cpukit/score/src/pheapallocate.c
+- cpukit/score/src/pheapextend.c
+- cpukit/score/src/pheapfree.c
+- cpukit/score/src/pheapgetblocksize.c
+- cpukit/score/src/pheapgetfreeinfo.c
+- cpukit/score/src/pheapgetinfo.c
+- cpukit/score/src/pheapgetsize.c
+- cpukit/score/src/pheapinit.c
+- cpukit/score/src/pheapiterate.c
+- cpukit/score/src/pheapresizeblock.c
+- cpukit/score/src/pheapwalk.c
+- cpukit/score/src/processormaskcopy.c
+- cpukit/score/src/profilingisrentryexit.c
+- cpukit/score/src/rbtreeextract.c
+- cpukit/score/src/rbtreeinsert.c
+- cpukit/score/src/rbtreeiterate.c
+- cpukit/score/src/rbtreenext.c
+- cpukit/score/src/rbtreepostorder.c
+- cpukit/score/src/rbtreereplace.c
+- cpukit/score/src/sched.c
+- cpukit/score/src/scheduler.c
+- cpukit/score/src/schedulercbsattachthread.c
+- cpukit/score/src/schedulercbs.c
+- cpukit/score/src/schedulercbscleanup.c
+- cpukit/score/src/schedulercbscreateserver.c
+- cpukit/score/src/schedulercbsdestroyserver.c
+- cpukit/score/src/schedulercbsdetachthread.c
+- cpukit/score/src/schedulercbsgetapprovedbudget.c
+- cpukit/score/src/schedulercbsgetexecutiontime.c
+- cpukit/score/src/schedulercbsgetparameters.c
+- cpukit/score/src/schedulercbsgetremainingbudget.c
+- cpukit/score/src/schedulercbsgetserverid.c
+- cpukit/score/src/schedulercbsnodeinit.c
+- cpukit/score/src/schedulercbsreleasejob.c
+- cpukit/score/src/schedulercbssetparameters.c
+- cpukit/score/src/schedulercbsunblock.c
+- cpukit/score/src/schedulerdefaultmappriority.c
+- cpukit/score/src/schedulerdefaultnodedestroy.c
+- cpukit/score/src/schedulerdefaultnodeinit.c
+- cpukit/score/src/schedulerdefaultreleasejob.c
+- cpukit/score/src/schedulerdefaultschedule.c
+- cpukit/score/src/schedulerdefaultstartidle.c
+- cpukit/score/src/schedulerdefaulttick.c
+- cpukit/score/src/scheduleredfblock.c
+- cpukit/score/src/scheduleredf.c
+- cpukit/score/src/scheduleredfchangepriority.c
+- cpukit/score/src/scheduleredfnodeinit.c
+- cpukit/score/src/scheduleredfreleasejob.c
+- cpukit/score/src/scheduleredfschedule.c
+- cpukit/score/src/scheduleredfunblock.c
+- cpukit/score/src/scheduleredfyield.c
+- cpukit/score/src/schedulergetaffinity.c
+- cpukit/score/src/schedulerpriorityblock.c
+- cpukit/score/src/schedulerpriority.c
+- cpukit/score/src/schedulerprioritychangepriority.c
+- cpukit/score/src/schedulerpriorityschedule.c
+- cpukit/score/src/schedulerpriorityunblock.c
+- cpukit/score/src/schedulerpriorityyield.c
+- cpukit/score/src/schedulersetaffinity.c
+- cpukit/score/src/schedulersimpleblock.c
+- cpukit/score/src/schedulersimple.c
+- cpukit/score/src/schedulersimplechangepriority.c
+- cpukit/score/src/schedulersimpleschedule.c
+- cpukit/score/src/schedulersimpleunblock.c
+- cpukit/score/src/schedulersimpleyield.c
+- cpukit/score/src/semaphore.c
+- cpukit/score/src/stackallocatorfree.c
+- cpukit/score/src/stackallocatorfreenothing.c
+- cpukit/score/src/stackallocatorinit.c
+- cpukit/score/src/smpbarrierwait.c
+- cpukit/score/src/stackallocator.c
+- cpukit/score/src/threadallocateunlimited.c
+- cpukit/score/src/thread.c
+- cpukit/score/src/threadchangepriority.c
+- cpukit/score/src/threadclearstate.c
+- cpukit/score/src/threadcreateidle.c
+- cpukit/score/src/threaddispatch.c
+- cpukit/score/src/threadentryadaptoridle.c
+- cpukit/score/src/threadentryadaptornumeric.c
+- cpukit/score/src/threadentryadaptorpointer.c
+- cpukit/score/src/threadget.c
+- cpukit/score/src/threadgetcputimeused.c
+- cpukit/score/src/threadhandler.c
+- cpukit/score/src/threadidledefault.c
+- cpukit/score/src/threadinitialize.c
+- cpukit/score/src/threaditerate.c
+- cpukit/score/src/threadloadenv.c
+- cpukit/score/src/threadname.c
+- cpukit/score/src/threadq.c
+- cpukit/score/src/threadqenqueue.c
+- cpukit/score/src/threadqextractwithproxy.c
+- cpukit/score/src/threadqfirst.c
+- cpukit/score/src/threadqflush.c
+- cpukit/score/src/threadqops.c
+- cpukit/score/src/threadqtimeout.c
+- cpukit/score/src/threadrestart.c
+- cpukit/score/src/threadscheduler.c
+- cpukit/score/src/threadsetstate.c
+- cpukit/score/src/threadstackallocate.c
+- cpukit/score/src/threadstackfree.c
+- cpukit/score/src/threadstart.c
+- cpukit/score/src/threadstartmultitasking.c
+- cpukit/score/src/threadtimeout.c
+- cpukit/score/src/threadwaitgetid.c
+- cpukit/score/src/threadyield.c
+- cpukit/score/src/timespecaddto.c
+- cpukit/score/src/timespecdividebyinteger.c
+- cpukit/score/src/timespecdivide.c
+- cpukit/score/src/timespecfromticks.c
+- cpukit/score/src/timespecgetasnanoseconds.c
+- cpukit/score/src/timespecisvalid.c
+- cpukit/score/src/timespeclessthan.c
+- cpukit/score/src/timespecsubtract.c
+- cpukit/score/src/timespectoticks.c
+- cpukit/score/src/tlsallocsize.c
+- cpukit/score/src/userextaddset.c
+- cpukit/score/src/userext.c
+- cpukit/score/src/userextiterate.c
+- cpukit/score/src/userextremoveset.c
+- cpukit/score/src/watchdoginsert.c
+- cpukit/score/src/watchdogremove.c
+- cpukit/score/src/watchdogtick.c
+- cpukit/score/src/watchdogtickssinceboot.c
+- cpukit/score/src/watchdogtimeslicedefault.c
+- cpukit/score/src/wkspace.c
+- cpukit/score/src/wkspaceisunifieddefault.c
+- cpukit/score/src/wkstringduplicate.c
+target: rtemscpu
+type: build
diff --git a/spec/build/cpukit/librtemsdfltcfg.yml b/spec/build/cpukit/librtemsdfltcfg.yml
new file mode 100644
index 0000000000..aecbfd34b2
--- /dev/null
+++ b/spec/build/cpukit/librtemsdfltcfg.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/libmisc/dummy/default-configuration.c
+target: rtemsdefaultconfig
+type: build
diff --git a/spec/build/cpukit/librtemstest.yml b/spec/build/cpukit/librtemstest.yml
new file mode 100644
index 0000000000..920ee7250c
--- /dev/null
+++ b/spec/build/cpukit/librtemstest.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/libtest/testbeginend.c
+- cpukit/libtest/testbusy.c
+- cpukit/libtest/testextension.c
+- cpukit/libtest/testparallel.c
+- cpukit/libtest/testrun.c
+- cpukit/libtest/testwrappers.c
+- cpukit/libtest/t-test.c
+- cpukit/libtest/t-test-busy.c
+- cpukit/libtest/t-test-busy-tick.c
+- cpukit/libtest/t-test-checks.c
+- cpukit/libtest/t-test-checks-eno.c
+- cpukit/libtest/t-test-checks-psx.c
+- cpukit/libtest/t-test-hash-sha256.c
+- cpukit/libtest/t-test-interrupt.c
+- cpukit/libtest/t-test-malloc.c
+- cpukit/libtest/t-test-rtems.c
+- cpukit/libtest/t-test-rtems-context.c
+- cpukit/libtest/t-test-rtems-fds.c
+- cpukit/libtest/t-test-rtems-heap.c
+- cpukit/libtest/t-test-rtems-measure.c
+- cpukit/libtest/t-test-rtems-posix-keys.c
+- cpukit/libtest/t-test-rtems-objs.c
+- cpukit/libtest/t-test-time.c
+- cpukit/libtest/t-test-thread-switch.c
+target: rtemstest
+type: build
diff --git a/spec/build/cpukit/libtelnetd.yml b/spec/build/cpukit/libtelnetd.yml
new file mode 100644
index 0000000000..5c5c2409ec
--- /dev/null
+++ b/spec/build/cpukit/libtelnetd.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes:
+- cpukit/libnetworking
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/include/rtems/telnetd.h
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/telnetd/check_passwd.c
+- cpukit/telnetd/des.c
+- cpukit/telnetd/pty.c
+- cpukit/telnetd/telnetd.c
+- cpukit/telnetd/telnetd-init.c
+target: telnetd
+type: build
diff --git a/spec/build/cpukit/libtftpfs.yml b/spec/build/cpukit/libtftpfs.yml
new file mode 100644
index 0000000000..57c75c6639
--- /dev/null
+++ b/spec/build/cpukit/libtftpfs.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes:
+- cpukit/libnetworking
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/include/rtems/tftp.h
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/libnetworking/lib/tftpDriver.c
+target: tftpfs
+type: build
diff --git a/spec/build/cpukit/libz.yml b/spec/build/cpukit/libz.yml
new file mode 100644
index 0000000000..5e81384e28
--- /dev/null
+++ b/spec/build/cpukit/libz.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - cpukit/include/zconf.h
+ - cpukit/include/zlib.h
+install-path: ${BSP_LIBDIR}
+links: []
+source:
+- cpukit/zlib/adler32.c
+- cpukit/zlib/compress.c
+- cpukit/zlib/crc32.c
+- cpukit/zlib/deflate.c
+- cpukit/zlib/gzclose.c
+- cpukit/zlib/gzlib.c
+- cpukit/zlib/gzread.c
+- cpukit/zlib/gzwrite.c
+- cpukit/zlib/infback.c
+- cpukit/zlib/inffast.c
+- cpukit/zlib/inflate.c
+- cpukit/zlib/inftrees.c
+- cpukit/zlib/trees.c
+- cpukit/zlib/uncompr.c
+- cpukit/zlib/zutil.c
+target: z
+type: build
diff --git a/spec/build/cpukit/objdbgarm.yml b/spec/build/cpukit/objdbgarm.yml
new file mode 100644
index 0000000000..4a2617334b
--- /dev/null
+++ b/spec/build/cpukit/objdbgarm.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- arm
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdebugger/rtems-debugger-arm.c
+type: build
diff --git a/spec/build/cpukit/objdbgi386.yml b/spec/build/cpukit/objdbgi386.yml
new file mode 100644
index 0000000000..ba67df5206
--- /dev/null
+++ b/spec/build/cpukit/objdbgi386.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- i386
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdebugger/rtems-debugger-i386.c
+type: build
diff --git a/spec/build/cpukit/objdl.yml b/spec/build/cpukit/objdl.yml
new file mode 100644
index 0000000000..15c7a27364
--- /dev/null
+++ b/spec/build/cpukit/objdl.yml
@@ -0,0 +1,71 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- BUILD_LIBDL
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/rtems/rtl
+ source:
+ - cpukit/include/rtems/rtl/dlfcn-shell.h
+ - cpukit/include/rtems/rtl/rap-shell.h
+ - cpukit/include/rtems/rtl/rap.h
+ - cpukit/include/rtems/rtl/rtl-allocator.h
+ - cpukit/include/rtems/rtl/rtl-archive.h
+ - cpukit/include/rtems/rtl/rtl-fwd.h
+ - cpukit/include/rtems/rtl/rtl-indirect-ptr.h
+ - cpukit/include/rtems/rtl/rtl-obj-cache.h
+ - cpukit/include/rtems/rtl/rtl-obj-comp.h
+ - cpukit/include/rtems/rtl/rtl-obj-fwd.h
+ - cpukit/include/rtems/rtl/rtl-obj.h
+ - cpukit/include/rtems/rtl/rtl-shell.h
+ - cpukit/include/rtems/rtl/rtl-sym.h
+ - cpukit/include/rtems/rtl/rtl-trace.h
+ - cpukit/include/rtems/rtl/rtl-unresolved.h
+ - cpukit/include/rtems/rtl/rtl.h
+links:
+- role: build-dependency
+ uid: objdlarm
+- role: build-dependency
+ uid: objdli386
+- role: build-dependency
+ uid: objdlm68k
+- role: build-dependency
+ uid: objdlmips
+- role: build-dependency
+ uid: objdlmoxie
+- role: build-dependency
+ uid: objdlpowerpc
+- role: build-dependency
+ uid: objdlsparc
+source:
+- cpukit/libdl/dlfcn.c
+- cpukit/libdl/dlfcn-shell.c
+- cpukit/libdl/fastlz.c
+- cpukit/libdl/rap.c
+- cpukit/libdl/rap-shell.c
+- cpukit/libdl/rtl-allocator.c
+- cpukit/libdl/rtl-alloc-heap.c
+- cpukit/libdl/rtl-archive.c
+- cpukit/libdl/rtl-bit-alloc.c
+- cpukit/libdl/rtl.c
+- cpukit/libdl/rtl-chain-iterator.c
+- cpukit/libdl/rtl-debugger.c
+- cpukit/libdl/rtl-elf.c
+- cpukit/libdl/rtl-error.c
+- cpukit/libdl/rtl-find-file.c
+- cpukit/libdl/rtl-obj.c
+- cpukit/libdl/rtl-obj-cache.c
+- cpukit/libdl/rtl-obj-comp.c
+- cpukit/libdl/rtl-rap.c
+- cpukit/libdl/rtl-shell.c
+- cpukit/libdl/rtl-string.c
+- cpukit/libdl/rtl-sym.c
+- cpukit/libdl/rtl-trace.c
+- cpukit/libdl/rtl-unresolved.c
+- cpukit/libdl/rtl-unwind-dw2.c
+type: build
diff --git a/spec/build/cpukit/objdlarm.yml b/spec/build/cpukit/objdlarm.yml
new file mode 100644
index 0000000000..6edb3653f2
--- /dev/null
+++ b/spec/build/cpukit/objdlarm.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- arm
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdl/rtl-mdreloc-arm.c
+type: build
diff --git a/spec/build/cpukit/objdli386.yml b/spec/build/cpukit/objdli386.yml
new file mode 100644
index 0000000000..33c81d654e
--- /dev/null
+++ b/spec/build/cpukit/objdli386.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- i386
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdl/rtl-mdreloc-i386.c
+type: build
diff --git a/spec/build/cpukit/objdlm68k.yml b/spec/build/cpukit/objdlm68k.yml
new file mode 100644
index 0000000000..7e4bbc09ff
--- /dev/null
+++ b/spec/build/cpukit/objdlm68k.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- m68k
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdl/rtl-mdreloc-m68k.c
+type: build
diff --git a/spec/build/cpukit/objdlmips.yml b/spec/build/cpukit/objdlmips.yml
new file mode 100644
index 0000000000..83509aa510
--- /dev/null
+++ b/spec/build/cpukit/objdlmips.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- mips
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdl/rtl-mdreloc-mips.c
+type: build
diff --git a/spec/build/cpukit/objdlmoxie.yml b/spec/build/cpukit/objdlmoxie.yml
new file mode 100644
index 0000000000..96a46c7835
--- /dev/null
+++ b/spec/build/cpukit/objdlmoxie.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- moxie
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdl/rtl-mdreloc-moxie.c
+type: build
diff --git a/spec/build/cpukit/objdlpowerpc.yml b/spec/build/cpukit/objdlpowerpc.yml
new file mode 100644
index 0000000000..b9861de14c
--- /dev/null
+++ b/spec/build/cpukit/objdlpowerpc.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- powerpc
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdl/rtl-mdreloc-powerpc.c
+type: build
diff --git a/spec/build/cpukit/objdlsparc.yml b/spec/build/cpukit/objdlsparc.yml
new file mode 100644
index 0000000000..b4bd969081
--- /dev/null
+++ b/spec/build/cpukit/objdlsparc.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- sparc
+includes: []
+install: []
+links: []
+source:
+- cpukit/libdl/rtl-mdreloc-sparc.c
+type: build
diff --git a/spec/build/cpukit/objdrvmgr.yml b/spec/build/cpukit/objdrvmgr.yml
new file mode 100644
index 0000000000..49af08f22e
--- /dev/null
+++ b/spec/build/cpukit/objdrvmgr.yml
@@ -0,0 +1,40 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- riscv
+- sparc
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/drvmgr
+ source:
+ - cpukit/include/drvmgr/drvmgr.h
+ - cpukit/include/drvmgr/drvmgr_confdefs.h
+ - cpukit/include/drvmgr/drvmgr_list.h
+ - cpukit/include/drvmgr/pci_bus.h
+links: []
+source:
+- cpukit/libdrvmgr/drvmgr_by_id.c
+- cpukit/libdrvmgr/drvmgr_by_name.c
+- cpukit/libdrvmgr/drvmgr.c
+- cpukit/libdrvmgr/drvmgr_dev_by_name.c
+- cpukit/libdrvmgr/drvmgr_drvinf.c
+- cpukit/libdrvmgr/drvmgr_for_each_dev.c
+- cpukit/libdrvmgr/drvmgr_for_each_list_dev.c
+- cpukit/libdrvmgr/drvmgr_func.c
+- cpukit/libdrvmgr/drvmgr_func_call.c
+- cpukit/libdrvmgr/drvmgr_init.c
+- cpukit/libdrvmgr/drvmgr_list.c
+- cpukit/libdrvmgr/drvmgr_lock.c
+- cpukit/libdrvmgr/drvmgr_print.c
+- cpukit/libdrvmgr/drvmgr_res.c
+- cpukit/libdrvmgr/drvmgr_rw.c
+- cpukit/libdrvmgr/drvmgr_translate.c
+- cpukit/libdrvmgr/drvmgr_translate_check.c
+- cpukit/libdrvmgr/drvmgr_unregister.c
+- cpukit/libmisc/shell/main_drvmgr.c
+type: build
diff --git a/spec/build/cpukit/objgnat.yml b/spec/build/cpukit/objgnat.yml
new file mode 100644
index 0000000000..a52c884486
--- /dev/null
+++ b/spec/build/cpukit/objgnat.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- __RTEMS_ADA__
+includes: []
+install: []
+links: []
+source:
+- cpukit/libgnat/ada_intrsupp.c
+- cpukit/libgnat/adasupp.c
+type: build
diff --git a/spec/build/cpukit/objmpci.yml b/spec/build/cpukit/objmpci.yml
new file mode 100644
index 0000000000..24cfca9888
--- /dev/null
+++ b/spec/build/cpukit/objmpci.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+install: []
+links: []
+source:
+- cpukit/libmisc/monitor/mon-mpci.c
+- cpukit/rtems/src/eventmp.c
+- cpukit/rtems/src/mp.c
+- cpukit/rtems/src/msgmp.c
+- cpukit/rtems/src/partmp.c
+- cpukit/rtems/src/semmp.c
+- cpukit/rtems/src/signalmp.c
+- cpukit/rtems/src/taskmp.c
+- cpukit/score/src/mpci.c
+- cpukit/score/src/mpcidefault.c
+- cpukit/score/src/objectmp.c
+- cpukit/score/src/threadmp.c
+type: build
diff --git a/spec/build/cpukit/objnet.yml b/spec/build/cpukit/objnet.yml
new file mode 100644
index 0000000000..2957673ed2
--- /dev/null
+++ b/spec/build/cpukit/objnet.yml
@@ -0,0 +1,315 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+includes:
+- cpukit/libnetworking
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - cpukit/libnetworking/ifaddrs.h
+ - cpukit/libnetworking/librtemsNfs.h
+ - cpukit/libnetworking/loop.h
+ - cpukit/libnetworking/resolv.h
+- destination: ${BSP_INCLUDEDIR}/arpa
+ source:
+ - cpukit/libnetworking/arpa/nameser.h
+ - cpukit/libnetworking/arpa/nameser_compat.h
+- destination: ${BSP_INCLUDEDIR}/dev/mii
+ source:
+ - cpukit/libnetworking/dev/mii/mii.h
+- destination: ${BSP_INCLUDEDIR}/machine
+ source:
+ - cpukit/libnetworking/machine/_align.h
+ - cpukit/libnetworking/machine/_kernel_if.h
+ - cpukit/libnetworking/machine/_kernel_lock.h
+ - cpukit/libnetworking/machine/_kernel_socket.h
+ - cpukit/libnetworking/machine/cpu.h
+ - cpukit/libnetworking/machine/cpufunc.h
+ - cpukit/libnetworking/machine/in_cksum.h
+ - cpukit/libnetworking/machine/limits.h
+ - cpukit/libnetworking/machine/vmparam.h
+- destination: ${BSP_INCLUDEDIR}/net
+ source:
+ - cpukit/libnetworking/net/bpf.h
+ - cpukit/libnetworking/net/ethernet.h
+ - cpukit/libnetworking/net/if_arp.h
+ - cpukit/libnetworking/net/if_dl.h
+ - cpukit/libnetworking/net/if_llc.h
+ - cpukit/libnetworking/net/if_media.h
+ - cpukit/libnetworking/net/if_ppp.h
+ - cpukit/libnetworking/net/if_pppvar.h
+ - cpukit/libnetworking/net/if_types.h
+ - cpukit/libnetworking/net/if_var.h
+ - cpukit/libnetworking/net/netisr.h
+ - cpukit/libnetworking/net/ppp_comp.h
+ - cpukit/libnetworking/net/ppp_defs.h
+ - cpukit/libnetworking/net/radix.h
+ - cpukit/libnetworking/net/raw_cb.h
+ - cpukit/libnetworking/net/route.h
+ - cpukit/libnetworking/net/slcompress.h
+- destination: ${BSP_INCLUDEDIR}/netinet
+ source:
+ - cpukit/libnetworking/netinet/icmp_var.h
+ - cpukit/libnetworking/netinet/if_ether.h
+ - cpukit/libnetworking/netinet/igmp.h
+ - cpukit/libnetworking/netinet/igmp_var.h
+ - cpukit/libnetworking/netinet/in_pcb.h
+ - cpukit/libnetworking/netinet/in_systm.h
+ - cpukit/libnetworking/netinet/in_var.h
+ - cpukit/libnetworking/netinet/ip.h
+ - cpukit/libnetworking/netinet/ip_fw.h
+ - cpukit/libnetworking/netinet/ip_icmp.h
+ - cpukit/libnetworking/netinet/ip_mroute.h
+ - cpukit/libnetworking/netinet/ip_var.h
+ - cpukit/libnetworking/netinet/tcp_debug.h
+ - cpukit/libnetworking/netinet/tcp_fsm.h
+ - cpukit/libnetworking/netinet/tcp_seq.h
+ - cpukit/libnetworking/netinet/tcp_timer.h
+ - cpukit/libnetworking/netinet/tcp_var.h
+ - cpukit/libnetworking/netinet/tcpip.h
+ - cpukit/libnetworking/netinet/udp.h
+ - cpukit/libnetworking/netinet/udp_var.h
+- destination: ${BSP_INCLUDEDIR}/nfs
+ source:
+ - cpukit/libnetworking/nfs/nfsproto.h
+ - cpukit/libnetworking/nfs/rpcv2.h
+ - cpukit/libnetworking/nfs/xdr_subs.h
+- destination: ${BSP_INCLUDEDIR}/nfsclient
+ source:
+ - cpukit/libnetworking/nfsclient/nfsargs.h
+ - cpukit/libnetworking/nfsclient/nfsdiskless.h
+- destination: ${BSP_INCLUDEDIR}/rpc
+ source:
+ - cpukit/libnetworking/rpc/auth.h
+ - cpukit/libnetworking/rpc/auth_unix.h
+ - cpukit/libnetworking/rpc/clnt.h
+ - cpukit/libnetworking/rpc/clnt_soc.h
+ - cpukit/libnetworking/rpc/clnt_stat.h
+ - cpukit/libnetworking/rpc/pmap_clnt.h
+ - cpukit/libnetworking/rpc/pmap_prot.h
+ - cpukit/libnetworking/rpc/pmap_rmt.h
+ - cpukit/libnetworking/rpc/rpc.h
+ - cpukit/libnetworking/rpc/rpc_com.h
+ - cpukit/libnetworking/rpc/rpc_msg.h
+ - cpukit/libnetworking/rpc/rpcent.h
+ - cpukit/libnetworking/rpc/svc.h
+ - cpukit/libnetworking/rpc/svc_auth.h
+ - cpukit/libnetworking/rpc/svc_soc.h
+ - cpukit/libnetworking/rpc/types.h
+ - cpukit/libnetworking/rpc/xdr.h
+- destination: ${BSP_INCLUDEDIR}/rtems
+ source:
+ - cpukit/libnetworking/rtems/bootp.h
+ - cpukit/libnetworking/rtems/dhcp.h
+ - cpukit/libnetworking/rtems/mkrootfs.h
+ - cpukit/libnetworking/rtems/rtems_bsdnet.h
+ - cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
+ - cpukit/libnetworking/rtems/rtems_dhcp_failsafe.h
+ - cpukit/libnetworking/rtems/rtems_mii_ioctl.h
+ - cpukit/libnetworking/rtems/rtems_netdb.h
+ - cpukit/libnetworking/rtems/rtems_netinet_in.h
+ - cpukit/libnetworking/rtems/rtems_syscall.h
+- destination: ${BSP_INCLUDEDIR}/rtems/bsdnet
+ source:
+ - cpukit/libnetworking/rtems/bsdnet/_types.h
+ - cpukit/libnetworking/rtems/bsdnet/servers.h
+- destination: ${BSP_INCLUDEDIR}/sys
+ source:
+ - cpukit/libnetworking/sys/callout.h
+ - cpukit/libnetworking/sys/conf.h
+ - cpukit/libnetworking/sys/domain.h
+ - cpukit/libnetworking/sys/kernel.h
+ - cpukit/libnetworking/sys/libkern.h
+ - cpukit/libnetworking/sys/linker_set.h
+ - cpukit/libnetworking/sys/malloc.h
+ - cpukit/libnetworking/sys/mbuf.h
+ - cpukit/libnetworking/sys/mount.h
+ - cpukit/libnetworking/sys/proc.h
+ - cpukit/libnetworking/sys/protosw.h
+ - cpukit/libnetworking/sys/reboot.h
+ - cpukit/libnetworking/sys/resourcevar.h
+ - cpukit/libnetworking/sys/selinfo.h
+ - cpukit/libnetworking/sys/signalvar.h
+ - cpukit/libnetworking/sys/socketvar.h
+ - cpukit/libnetworking/sys/sysctl.h
+ - cpukit/libnetworking/sys/systm.h
+ - cpukit/libnetworking/sys/ucred.h
+- destination: ${BSP_INCLUDEDIR}/vm
+ source:
+ - cpukit/libnetworking/vm/vm.h
+ - cpukit/libnetworking/vm/vm_extern.h
+ - cpukit/libnetworking/vm/vm_kern.h
+ - cpukit/libnetworking/vm/vm_param.h
+links: []
+source:
+- cpukit/libmisc/dummy/dummy-networking.c
+- cpukit/libmisc/monitor/mon-network.c
+- cpukit/libmisc/shell/main_ifconfig.c
+- cpukit/libmisc/shell/main_netstats.c
+- cpukit/libmisc/shell/main_ping.c
+- cpukit/libmisc/shell/main_route.c
+- cpukit/libnetworking/kern/kern_mib.c
+- cpukit/libnetworking/kern/kern_subr.c
+- cpukit/libnetworking/kern/kern_sysctl.c
+- cpukit/libnetworking/kern/uipc_domain.c
+- cpukit/libnetworking/kern/uipc_mbuf.c
+- cpukit/libnetworking/kern/uipc_socket2.c
+- cpukit/libnetworking/kern/uipc_socket.c
+- cpukit/libnetworking/libc/base64.c
+- cpukit/libnetworking/libc/gethostbydns.c
+- cpukit/libnetworking/libc/gethostbyht.c
+- cpukit/libnetworking/libc/gethostbynis.c
+- cpukit/libnetworking/libc/gethostnamadr.c
+- cpukit/libnetworking/libc/getifaddrs.c
+- cpukit/libnetworking/libc/getnameinfo.c
+- cpukit/libnetworking/libc/getnetbydns.c
+- cpukit/libnetworking/libc/getnetbyht.c
+- cpukit/libnetworking/libc/getnetbynis.c
+- cpukit/libnetworking/libc/getnetnamadr.c
+- cpukit/libnetworking/libc/getproto.c
+- cpukit/libnetworking/libc/getprotoent.c
+- cpukit/libnetworking/libc/getprotoname.c
+- cpukit/libnetworking/libc/getservbyname.c
+- cpukit/libnetworking/libc/getservbyport.c
+- cpukit/libnetworking/libc/getservent.c
+- cpukit/libnetworking/libc/herror.c
+- cpukit/libnetworking/libc/if_indextoname.c
+- cpukit/libnetworking/libc/if_nameindex.c
+- cpukit/libnetworking/libc/inet_addr.c
+- cpukit/libnetworking/libc/inet_lnaof.c
+- cpukit/libnetworking/libc/inet_makeaddr.c
+- cpukit/libnetworking/libc/inet_netof.c
+- cpukit/libnetworking/libc/inet_network.c
+- cpukit/libnetworking/libc/inet_ntoa.c
+- cpukit/libnetworking/libc/inet_ntop.c
+- cpukit/libnetworking/libc/inet_pton.c
+- cpukit/libnetworking/libc/linkaddr.c
+- cpukit/libnetworking/libc/map_v4v6.c
+- cpukit/libnetworking/libc/nsap_addr.c
+- cpukit/libnetworking/libc/ns_name.c
+- cpukit/libnetworking/libc/ns_netint.c
+- cpukit/libnetworking/libc/ns_parse.c
+- cpukit/libnetworking/libc/ns_print.c
+- cpukit/libnetworking/libc/ns_ttl.c
+- cpukit/libnetworking/libc/rcmd.c
+- cpukit/libnetworking/libc/recv.c
+- cpukit/libnetworking/libc/res_comp.c
+- cpukit/libnetworking/libc/res_data.c
+- cpukit/libnetworking/libc/res_debug.c
+- cpukit/libnetworking/libc/res_init.c
+- cpukit/libnetworking/libc/res_mkquery.c
+- cpukit/libnetworking/libc/res_mkupdate.c
+- cpukit/libnetworking/libc/res_query.c
+- cpukit/libnetworking/libc/res_send.c
+- cpukit/libnetworking/libc/res_stubs.c
+- cpukit/libnetworking/libc/res_update.c
+- cpukit/libnetworking/libc/send.c
+- cpukit/libnetworking/lib/getprotoby.c
+- cpukit/libnetworking/lib/rtems_bsdnet_ntp.c
+- cpukit/libnetworking/lib/syslog.c
+- cpukit/libnetworking/net/if.c
+- cpukit/libnetworking/net/if_ethersubr.c
+- cpukit/libnetworking/net/if_loop.c
+- cpukit/libnetworking/net/if_ppp.c
+- cpukit/libnetworking/netinet/if_ether.c
+- cpukit/libnetworking/netinet/igmp.c
+- cpukit/libnetworking/netinet/in.c
+- cpukit/libnetworking/netinet/in_cksum.c
+- cpukit/libnetworking/netinet/in_pcb.c
+- cpukit/libnetworking/netinet/in_proto.c
+- cpukit/libnetworking/netinet/in_rmx.c
+- cpukit/libnetworking/netinet/ip_divert.c
+- cpukit/libnetworking/netinet/ip_fw.c
+- cpukit/libnetworking/netinet/ip_icmp.c
+- cpukit/libnetworking/netinet/ip_input.c
+- cpukit/libnetworking/netinet/ip_mroute.c
+- cpukit/libnetworking/netinet/ip_output.c
+- cpukit/libnetworking/netinet/raw_ip.c
+- cpukit/libnetworking/netinet/tcp_debug.c
+- cpukit/libnetworking/netinet/tcp_input.c
+- cpukit/libnetworking/netinet/tcp_output.c
+- cpukit/libnetworking/netinet/tcp_subr.c
+- cpukit/libnetworking/netinet/tcp_timer.c
+- cpukit/libnetworking/netinet/tcp_usrreq.c
+- cpukit/libnetworking/netinet/udp_usrreq.c
+- cpukit/libnetworking/net/ppp_tty.c
+- cpukit/libnetworking/net/radix.c
+- cpukit/libnetworking/net/raw_cb.c
+- cpukit/libnetworking/net/raw_usrreq.c
+- cpukit/libnetworking/net/route.c
+- cpukit/libnetworking/net/rtsock.c
+- cpukit/libnetworking/net/slcompress.c
+- cpukit/libnetworking/nfs/bootp_subr.c
+- cpukit/libnetworking/rtems/mkrootfs.c
+- cpukit/libnetworking/rtems/rtems_bootp.c
+- cpukit/libnetworking/rtems/rtems_bsdnet_malloc_starvation.c
+- cpukit/libnetworking/rtems/rtems_dhcp.c
+- cpukit/libnetworking/rtems/rtems_dhcp_failsafe.c
+- cpukit/libnetworking/rtems/rtems_glue.c
+- cpukit/libnetworking/rtems/rtems_malloc_mbuf.c
+- cpukit/libnetworking/rtems/rtems_mii_ioctl.c
+- cpukit/libnetworking/rtems/rtems_mii_ioctl_kern.c
+- cpukit/libnetworking/rtems/rtems_select.c
+- cpukit/libnetworking/rtems/rtems_showicmpstat.c
+- cpukit/libnetworking/rtems/rtems_showifstat.c
+- cpukit/libnetworking/rtems/rtems_showipstat.c
+- cpukit/libnetworking/rtems/rtems_showmbuf.c
+- cpukit/libnetworking/rtems/rtems_showroute.c
+- cpukit/libnetworking/rtems/rtems_showtcpstat.c
+- cpukit/libnetworking/rtems/rtems_showudpstat.c
+- cpukit/libnetworking/rtems/rtems_socketpair.c
+- cpukit/libnetworking/rtems/rtems_syscall_api.c
+- cpukit/libnetworking/rtems/rtems_syscall.c
+- cpukit/libnetworking/rtems/sghostname.c
+- cpukit/librpc/src/rpc/auth_none.c
+- cpukit/librpc/src/rpc/auth_unix.c
+- cpukit/librpc/src/rpc/authunix_prot.c
+- cpukit/librpc/src/rpc/bindresvport.c
+- cpukit/librpc/src/rpc/clnt_generic.c
+- cpukit/librpc/src/rpc/clnt_perror.c
+- cpukit/librpc/src/rpc/clnt_raw.c
+- cpukit/librpc/src/rpc/clnt_simple.c
+- cpukit/librpc/src/rpc/clnt_tcp.c
+- cpukit/librpc/src/rpc/clnt_udp.c
+- cpukit/librpc/src/rpc/get_myaddress.c
+- cpukit/librpc/src/rpc/getrpcent.c
+- cpukit/librpc/src/rpc/getrpcport.c
+- cpukit/librpc/src/rpc/netname.c
+- cpukit/librpc/src/rpc/netnamer.c
+- cpukit/librpc/src/rpc/pmap_clnt.c
+- cpukit/librpc/src/rpc/pmap_getmaps.c
+- cpukit/librpc/src/rpc/pmap_getport.c
+- cpukit/librpc/src/rpc/pmap_prot2.c
+- cpukit/librpc/src/rpc/pmap_prot.c
+- cpukit/librpc/src/rpc/pmap_rmt.c
+- cpukit/librpc/src/rpc/rpc_callmsg.c
+- cpukit/librpc/src/rpc/rpc_commondata.c
+- cpukit/librpc/src/rpc/rpcdname.c
+- cpukit/librpc/src/rpc/rpc_dtablesize.c
+- cpukit/librpc/src/rpc/rpc_prot.c
+- cpukit/librpc/src/rpc/rtems_portmapper.c
+- cpukit/librpc/src/rpc/rtems_rpc.c
+- cpukit/librpc/src/rpc/rtime.c
+- cpukit/librpc/src/rpc/svc_auth.c
+- cpukit/librpc/src/rpc/svc_auth_unix.c
+- cpukit/librpc/src/rpc/svc.c
+- cpukit/librpc/src/rpc/svc_raw.c
+- cpukit/librpc/src/rpc/svc_run.c
+- cpukit/librpc/src/rpc/svc_simple.c
+- cpukit/librpc/src/rpc/svc_tcp.c
+- cpukit/librpc/src/rpc/svc_udp.c
+- cpukit/librpc/src/xdr/xdr_array.c
+- cpukit/librpc/src/xdr/xdr.c
+- cpukit/librpc/src/xdr/xdr_float.c
+- cpukit/librpc/src/xdr/xdr_mem.c
+- cpukit/librpc/src/xdr/xdr_rec.c
+- cpukit/librpc/src/xdr/xdr_reference.c
+- cpukit/librpc/src/xdr/xdr_sizeof.c
+- cpukit/librpc/src/xdr/xdr_stdio.c
+type: build
diff --git a/spec/build/cpukit/objpci.yml b/spec/build/cpukit/objpci.yml
new file mode 100644
index 0000000000..aa7e8d1d25
--- /dev/null
+++ b/spec/build/cpukit/objpci.yml
@@ -0,0 +1,48 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- sparc
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/pci
+ source:
+ - cpukit/include/pci/access.h
+ - cpukit/include/pci/cfg.h
+ - cpukit/include/pci/cfg_auto.h
+ - cpukit/include/pci/cfg_peripheral.h
+ - cpukit/include/pci/cfg_read.h
+ - cpukit/include/pci/cfg_static.h
+ - cpukit/include/pci/ids.h
+ - cpukit/include/pci/ids_extra.h
+ - cpukit/include/pci/irq.h
+ - cpukit/include/pci/pcireg.h
+links: []
+source:
+- cpukit/libmisc/shell/main_pci.c
+- cpukit/libpci/pci_access.c
+- cpukit/libpci/pci_access_func.c
+- cpukit/libpci/pci_access_io.c
+- cpukit/libpci/pci_access_mem_be.c
+- cpukit/libpci/pci_access_mem.c
+- cpukit/libpci/pci_access_mem_le.c
+- cpukit/libpci/pci_bus.c
+- cpukit/libpci/pci_cfg_auto.c
+- cpukit/libpci/pci_cfg.c
+- cpukit/libpci/pci_cfg_peripheral.c
+- cpukit/libpci/pci_cfg_print_code.c
+- cpukit/libpci/pci_cfg_read.c
+- cpukit/libpci/pci_cfg_static.c
+- cpukit/libpci/pci_find.c
+- cpukit/libpci/pci_find_dev.c
+- cpukit/libpci/pci_for_each.c
+- cpukit/libpci/pci_for_each_child.c
+- cpukit/libpci/pci_for_each_dev.c
+- cpukit/libpci/pci_get_dev.c
+- cpukit/libpci/pci_irq.c
+- cpukit/libpci/pci_print.c
+type: build
diff --git a/spec/build/cpukit/objpsxsgnl.yml b/spec/build/cpukit/objpsxsgnl.yml
new file mode 100644
index 0000000000..ef28eb9e50
--- /dev/null
+++ b/spec/build/cpukit/objpsxsgnl.yml
@@ -0,0 +1,52 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+includes: []
+install: []
+links: []
+source:
+- cpukit/posix/src/aio_cancel.c
+- cpukit/posix/src/aio_error.c
+- cpukit/posix/src/aio_fsync.c
+- cpukit/posix/src/aio_misc.c
+- cpukit/posix/src/aio_read.c
+- cpukit/posix/src/aio_return.c
+- cpukit/posix/src/aio_write.c
+- cpukit/posix/src/alarm.c
+- cpukit/posix/src/getitimer.c
+- cpukit/posix/src/kill.c
+- cpukit/posix/src/killinfo.c
+- cpukit/posix/src/kill_r.c
+- cpukit/posix/src/mqueuenotify.c
+- cpukit/posix/src/pause.c
+- cpukit/posix/src/psignal.c
+- cpukit/posix/src/psignalclearprocesssignals.c
+- cpukit/posix/src/psignalclearsignals.c
+- cpukit/posix/src/psignalsetprocesssignals.c
+- cpukit/posix/src/psignalunblockthread.c
+- cpukit/posix/src/psxpriorityisvalid.c
+- cpukit/posix/src/psxtimercreate.c
+- cpukit/posix/src/psxtimerdelete.c
+- cpukit/posix/src/pthreadkill.c
+- cpukit/posix/src/pthreadsigmask.c
+- cpukit/posix/src/ptimer.c
+- cpukit/posix/src/setitimer.c
+- cpukit/posix/src/sigaction.c
+- cpukit/posix/src/signal_2.c
+- cpukit/posix/src/sigpending.c
+- cpukit/posix/src/sigqueue.c
+- cpukit/posix/src/sigsuspend.c
+- cpukit/posix/src/sigtimedwait.c
+- cpukit/posix/src/sigwait.c
+- cpukit/posix/src/sigwaitinfo.c
+- cpukit/posix/src/timergetoverrun.c
+- cpukit/posix/src/timergettime.c
+- cpukit/posix/src/timersettime.c
+- cpukit/posix/src/ualarm.c
+type: build
diff --git a/spec/build/cpukit/objshell.yml b/spec/build/cpukit/objshell.yml
new file mode 100644
index 0000000000..2ddcbd3053
--- /dev/null
+++ b/spec/build/cpukit/objshell.yml
@@ -0,0 +1,115 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+links: []
+source:
+- cpukit/libmisc/shell/cat_file.c
+- cpukit/libmisc/shell/cmds.c
+- cpukit/libmisc/shell/cmp-ls.c
+- cpukit/libmisc/shell/dd-args.c
+- cpukit/libmisc/shell/dd-conv.c
+- cpukit/libmisc/shell/dd-conv_tab.c
+- cpukit/libmisc/shell/dd-misc.c
+- cpukit/libmisc/shell/dd-position.c
+- cpukit/libmisc/shell/err.c
+- cpukit/libmisc/shell/errx.c
+- cpukit/libmisc/shell/fdisk.c
+- cpukit/libmisc/shell/filemode.c
+- cpukit/libmisc/shell/fts.c
+- cpukit/libmisc/shell/hexdump-conv.c
+- cpukit/libmisc/shell/hexdump-display.c
+- cpukit/libmisc/shell/hexdump-odsyntax.c
+- cpukit/libmisc/shell/hexdump-parse.c
+- cpukit/libmisc/shell/hexsyntax.c
+- cpukit/libmisc/shell/login_check.c
+- cpukit/libmisc/shell/login_prompt.c
+- cpukit/libmisc/shell/main_alias.c
+- cpukit/libmisc/shell/main_blkstats.c
+- cpukit/libmisc/shell/main_blksync.c
+- cpukit/libmisc/shell/main_cat.c
+- cpukit/libmisc/shell/main_cd.c
+- cpukit/libmisc/shell/main_chdir.c
+- cpukit/libmisc/shell/main_chmod.c
+- cpukit/libmisc/shell/main_chroot.c
+- cpukit/libmisc/shell/main_cmdchmod.c
+- cpukit/libmisc/shell/main_cmdchown.c
+- cpukit/libmisc/shell/main_cmdls.c
+- cpukit/libmisc/shell/main_cp.c
+- cpukit/libmisc/shell/main_cpuinfo.c
+- cpukit/libmisc/shell/main_cpuuse.c
+- cpukit/libmisc/shell/main_date.c
+- cpukit/libmisc/shell/main_dd.c
+- cpukit/libmisc/shell/main_debugrfs.c
+- cpukit/libmisc/shell/main_df.c
+- cpukit/libmisc/shell/main_dir.c
+- cpukit/libmisc/shell/main_echo.c
+- cpukit/libmisc/shell/main_edit.c
+- cpukit/libmisc/shell/main_exit.c
+- cpukit/libmisc/shell/main_getenv.c
+- cpukit/libmisc/shell/main_halt.c
+- cpukit/libmisc/shell/main_help.c
+- cpukit/libmisc/shell/main_hexdump.c
+- cpukit/libmisc/shell/main_id.c
+- cpukit/libmisc/shell/main_ln.c
+- cpukit/libmisc/shell/main_logoff.c
+- cpukit/libmisc/shell/main_ls.c
+- cpukit/libmisc/shell/main_lsof.c
+- cpukit/libmisc/shell/main_mallocinfo.c
+- cpukit/libmisc/shell/main_md5.c
+- cpukit/libmisc/shell/main_mdump.c
+- cpukit/libmisc/shell/main_medit.c
+- cpukit/libmisc/shell/main_mfill.c
+- cpukit/libmisc/shell/main_mkdir.c
+- cpukit/libmisc/shell/main_mknod.c
+- cpukit/libmisc/shell/main_mkrfs.c
+- cpukit/libmisc/shell/main_mmove.c
+- cpukit/libmisc/shell/main_mount.c
+- cpukit/libmisc/shell/main_msdosfmt.c
+- cpukit/libmisc/shell/main_mv.c
+- cpukit/libmisc/shell/main_perioduse.c
+- cpukit/libmisc/shell/main_profreport.c
+- cpukit/libmisc/shell/main_pwd.c
+- cpukit/libmisc/shell/main_rm.c
+- cpukit/libmisc/shell/main_rmdir.c
+- cpukit/libmisc/shell/main_rtc.c
+- cpukit/libmisc/shell/main_rtrace.c
+- cpukit/libmisc/shell/main_setenv.c
+- cpukit/libmisc/shell/main_sleep.c
+- cpukit/libmisc/shell/main_stackuse.c
+- cpukit/libmisc/shell/main_time.c
+- cpukit/libmisc/shell/main_top.c
+- cpukit/libmisc/shell/main_tty.c
+- cpukit/libmisc/shell/main_umask.c
+- cpukit/libmisc/shell/main_unmount.c
+- cpukit/libmisc/shell/main_unsetenv.c
+- cpukit/libmisc/shell/main_whoami.c
+- cpukit/libmisc/shell/main_wkspaceinfo.c
+- cpukit/libmisc/shell/print_heapinfo.c
+- cpukit/libmisc/shell/print-ls.c
+- cpukit/libmisc/shell/pwcache.c
+- cpukit/libmisc/shell/shell.c
+- cpukit/libmisc/shell/shell_cmdset.c
+- cpukit/libmisc/shell/shellconfig.c
+- cpukit/libmisc/shell/shell_getchar.c
+- cpukit/libmisc/shell/shell_getprompt.c
+- cpukit/libmisc/shell/shell_makeargs.c
+- cpukit/libmisc/shell/shell_script.c
+- cpukit/libmisc/shell/shell-wait-for-input.c
+- cpukit/libmisc/shell/utils-cp.c
+- cpukit/libmisc/shell/utils-ls.c
+- cpukit/libmisc/shell/verr.c
+- cpukit/libmisc/shell/verrx.c
+- cpukit/libmisc/shell/vis.c
+- cpukit/libmisc/shell/vwarn.c
+- cpukit/libmisc/shell/vwarnx.c
+- cpukit/libmisc/shell/warn.c
+- cpukit/libmisc/shell/warnx.c
+- cpukit/libmisc/shell/write_file.c
+type: build
diff --git a/spec/build/cpukit/objsmp.yml b/spec/build/cpukit/objsmp.yml
new file mode 100644
index 0000000000..1eb1faa3d6
--- /dev/null
+++ b/spec/build/cpukit/objsmp.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+includes: []
+install: []
+links: []
+source:
+- cpukit/score/src/percpustatewait.c
+- cpukit/score/src/profilingsmplock.c
+- cpukit/score/src/schedulerdefaultaskforhelp.c
+- cpukit/score/src/schedulerdefaultpinunpin.c
+- cpukit/score/src/schedulerdefaultsetaffinity.c
+- cpukit/score/src/scheduleredfsmp.c
+- cpukit/score/src/schedulerpriorityaffinitysmp.c
+- cpukit/score/src/schedulerprioritysmp.c
+- cpukit/score/src/schedulersimplesmp.c
+- cpukit/score/src/schedulersmp.c
+- cpukit/score/src/schedulersmpstartidle.c
+- cpukit/score/src/schedulerstrongapa.c
+- cpukit/score/src/smp.c
+- cpukit/score/src/smplock.c
+- cpukit/score/src/smpmulticastaction.c
+- cpukit/score/src/smpunicastaction.c
+- cpukit/score/src/threadunpin.c
+type: build
diff --git a/spec/build/cpukit/objutf8.yml b/spec/build/cpukit/objutf8.yml
new file mode 100644
index 0000000000..b38575c5f3
--- /dev/null
+++ b/spec/build/cpukit/objutf8.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}/utf8proc
+ source:
+ - cpukit/include/utf8proc/utf8proc.h
+links: []
+source:
+- cpukit/libmisc/utf8proc/utf8proc.c
+type: build
diff --git a/spec/build/cpukit/optada.yml b/spec/build/cpukit/optada.yml
new file mode 100644
index 0000000000..df3111feaa
--- /dev/null
+++ b/spec/build/cpukit/optada.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Enable the Ada support
+enabled-by: true
+links: []
+name: __RTEMS_ADA__
+type: build
diff --git a/spec/build/cpukit/optarchbits.yml b/spec/build/cpukit/optarchbits.yml
new file mode 100644
index 0000000000..ac9a1f19cd
--- /dev/null
+++ b/spec/build/cpukit/optarchbits.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 Hesham Almatary <Hesham.Almatary@cl.cam.ac.uk>
+default: ''
+default-by-variant:
+- value:
+ - '64'
+ variants:
+ - riscv/rv64.*
+- value:
+ - '32'
+ variants:
+ - riscv/griscv
+ - riscv/rv32.*
+description: The architecture word bits for the clang target triple.
+enabled-by:
+- and:
+ - riscv
+ - clang
+format: '{}'
+links: []
+name: ARCH_BITS
+type: build
diff --git a/spec/build/cpukit/optarflags.yml b/spec/build/cpukit/optarflags.yml
new file mode 100644
index 0000000000..52a55544c2
--- /dev/null
+++ b/spec/build/cpukit/optarflags.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: ARFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- crD
+default-by-variant: []
+description: |
+ Flags passed to the library archiver
+enabled-by: true
+links: []
+name: ARFLAGS
+type: build
diff --git a/spec/build/cpukit/optclang.yml b/spec/build/cpukit/optclang.yml
new file mode 100644
index 0000000000..3eaf1fed87
--- /dev/null
+++ b/spec/build/cpukit/optclang.yml
@@ -0,0 +1,45 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: clang
+- find-program: null
+- env-assign: AS
+- env-assign: CC
+- env-assign: LINK_CC
+- set-value: clang++
+- find-program: null
+- env-assign: CXX
+- env-assign: LINK_CXX
+- set-value: llvm-ar
+- substitute: null
+- find-program: null
+- env-assign: AR
+- set-value: clang
+- env-assign: AS
+- env-assign: ASM_NAME
+- set-value:
+ - -c
+ - -o
+- env-assign: AS_TGT_F
+- set-value:
+ - -o
+- env-assign: ASLNK_TGT_F
+- set-value: --target=${ARCH}${ARCH_BITS}-unknown-rtems${__RTEMS_MAJOR__}
+- substitute: null
+- env-append: ABI_FLAGS
+- script: |
+ load = "ar asm clang clang++"
+ if not is_windows_host:
+ load += " gccdeps"
+ conf.load(load)
+build-type: option
+copyrights:
+- Copyright (C) 2020 Hesham Almatary <Hesham.Almatary@cl.cam.ac.uk>
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by:
+- clang
+links: []
+name: clang
+type: build
diff --git a/spec/build/cpukit/optdebug.yml b/spec/build/cpukit/optdebug.yml
new file mode 100644
index 0000000000..2c976a2f49
--- /dev/null
+++ b/spec/build/cpukit/optdebug.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Enable the RTEMS internal debug support
+enabled-by: true
+links: []
+name: RTEMS_DEBUG
+type: build
diff --git a/spec/build/cpukit/optdrvmgr.yml b/spec/build/cpukit/optdrvmgr.yml
new file mode 100644
index 0000000000..f39313704c
--- /dev/null
+++ b/spec/build/cpukit/optdrvmgr.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Enable the Driver Manager startup
+enabled-by: true
+links: []
+name: RTEMS_DRVMGR_STARTUP
+type: build
diff --git a/spec/build/cpukit/optgcc.yml b/spec/build/cpukit/optgcc.yml
new file mode 100644
index 0000000000..1e72232700
--- /dev/null
+++ b/spec/build/cpukit/optgcc.yml
@@ -0,0 +1,40 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-gcc
+- substitute: null
+- find-program: null
+- env-assign: AS
+- env-assign: CC
+- env-assign: LINK_CC
+- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-g++
+- substitute: null
+- find-program: null
+- env-assign: CXX
+- env-assign: LINK_CXX
+- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-ar
+- substitute: null
+- find-program: null
+- env-assign: AR
+- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-ld
+- substitute: null
+- find-program: null
+- env-assign: LD
+- script: |
+ load = "ar g++ gas gcc"
+ if not is_windows_host:
+ load += " gccdeps"
+ conf.load(load)
+- set-value: -qrtems
+- env-append: LDFLAGS
+- env-append: PKGCONFIG_LDFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by:
+- gcc
+links: []
+name: GCC
+type: build
diff --git a/spec/build/cpukit/optincludes.yml b/spec/build/cpukit/optincludes.yml
new file mode 100644
index 0000000000..dffd71eba8
--- /dev/null
+++ b/spec/build/cpukit/optincludes.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: cpukit/include cpukit/score/cpu/${ARCH}/include
+- substitute: null
+- env-assign: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: ARCH_INCLUDES
+type: build
diff --git a/spec/build/cpukit/optinstall.yml b/spec/build/cpukit/optinstall.yml
new file mode 100644
index 0000000000..6b39f95e85
--- /dev/null
+++ b/spec/build/cpukit/optinstall.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: ${PREFIX}/${ARCH}-rtems${__RTEMS_MAJOR__}/${BSP_NAME}
+- substitute: null
+- env-assign: BSP_PREFIX
+- set-value: ${BSP_PREFIX}/lib
+- substitute: null
+- env-assign: BSP_LIBDIR
+- set-value: ${BSP_LIBDIR}/include
+- substitute: null
+- env-assign: BSP_INCLUDEDIR
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: INSTALL
+type: build
diff --git a/spec/build/cpukit/optlibdl.yml b/spec/build/cpukit/optlibdl.yml
new file mode 100644
index 0000000000..8b9f5e1209
--- /dev/null
+++ b/spec/build/cpukit/optlibdl.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: true
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by:
+- arm
+- i386
+- m68k
+- mips
+- moxie
+- powerpc
+- sparc
+links: []
+name: BUILD_LIBDL
+type: build
diff --git a/spec/build/cpukit/optmpci.yml b/spec/build/cpukit/optmpci.yml
new file mode 100644
index 0000000000..cf72cf4b6e
--- /dev/null
+++ b/spec/build/cpukit/optmpci.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Enable the message passing based multiprocessing support (MPCI); do not confuse this with the SMP support
+enabled-by: true
+links: []
+name: RTEMS_MULTIPROCESSING
+type: build
diff --git a/spec/build/cpukit/optnet.yml b/spec/build/cpukit/optnet.yml
new file mode 100644
index 0000000000..8678c8dbb8
--- /dev/null
+++ b/spec/build/cpukit/optnet.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Enable the legacy TCP/IP network support
+enabled-by: true
+links: []
+name: RTEMS_NETWORKING
+type: build
diff --git a/spec/build/cpukit/optnewlib.yml b/spec/build/cpukit/optnewlib.yml
new file mode 100644
index 0000000000..a35156cafa
--- /dev/null
+++ b/spec/build/cpukit/optnewlib.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Enable the Newlib C library support
+enabled-by: true
+links: []
+name: RTEMS_NEWLIB
+type: build
diff --git a/spec/build/cpukit/optparavirt.yml b/spec/build/cpukit/optparavirt.yml
new file mode 100644
index 0000000000..3a06ce7930
--- /dev/null
+++ b/spec/build/cpukit/optparavirt.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Enable the para-virtualization support
+enabled-by: true
+links: []
+name: RTEMS_PARAVIRT
+type: build
diff --git a/spec/build/cpukit/optposix.yml b/spec/build/cpukit/optposix.yml
new file mode 100644
index 0000000000..15f6abc2a2
--- /dev/null
+++ b/spec/build/cpukit/optposix.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Enable support for POSIX signals
+enabled-by: true
+links: []
+name: RTEMS_POSIX_API
+type: build
diff --git a/spec/build/cpukit/optsmp.yml b/spec/build/cpukit/optsmp.yml
new file mode 100644
index 0000000000..138837e575
--- /dev/null
+++ b/spec/build/cpukit/optsmp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+- define-condition: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Enable the Symmetric Multiprocessing (SMP) support
+enabled-by: true
+links: []
+name: RTEMS_SMP
+type: build
diff --git a/spec/build/cpukit/optszblkcnt.yml b/spec/build/cpukit/optszblkcnt.yml
new file mode 100644
index 0000000000..292c27c89b
--- /dev/null
+++ b/spec/build/cpukit/optszblkcnt.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: 4
+- env-assign: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: __RTEMS_SIZEOF_BLKCNT_T__
+type: build
diff --git a/spec/build/cpukit/optszblksize.yml b/spec/build/cpukit/optszblksize.yml
new file mode 100644
index 0000000000..4e11f51106
--- /dev/null
+++ b/spec/build/cpukit/optszblksize.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: 4
+- env-assign: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: __RTEMS_SIZEOF_BLKSIZE_T__
+type: build
diff --git a/spec/build/cpukit/optszmode.yml b/spec/build/cpukit/optszmode.yml
new file mode 100644
index 0000000000..d9e19ec814
--- /dev/null
+++ b/spec/build/cpukit/optszmode.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: 4
+- env-assign: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: __RTEMS_SIZEOF_MODE_T__
+type: build
diff --git a/spec/build/cpukit/optszoff.yml b/spec/build/cpukit/optszoff.yml
new file mode 100644
index 0000000000..49e9231dd3
--- /dev/null
+++ b/spec/build/cpukit/optszoff.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: 8
+- env-assign: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: __RTEMS_SIZEOF_OFF_T__
+type: build
diff --git a/spec/build/cpukit/optsztime.yml b/spec/build/cpukit/optsztime.yml
new file mode 100644
index 0000000000..85564321ca
--- /dev/null
+++ b/spec/build/cpukit/optsztime.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: 8
+- env-assign: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: __RTEMS_SIZEOF_TIME_T__
+type: build
diff --git a/spec/build/cpukit/optvermaj.yml b/spec/build/cpukit/optvermaj.yml
new file mode 100644
index 0000000000..2596e6ef6a
--- /dev/null
+++ b/spec/build/cpukit/optvermaj.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: '6'
+- env-assign: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: __RTEMS_MAJOR__
+type: build
diff --git a/spec/build/cpukit/optvermin.yml b/spec/build/cpukit/optvermin.yml
new file mode 100644
index 0000000000..29c01a7c91
--- /dev/null
+++ b/spec/build/cpukit/optvermin.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: '0'
+- env-assign: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: __RTEMS_MINOR__
+type: build
diff --git a/spec/build/cpukit/optverrev.yml b/spec/build/cpukit/optverrev.yml
new file mode 100644
index 0000000000..cbe7fecc66
--- /dev/null
+++ b/spec/build/cpukit/optverrev.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: '0'
+- env-assign: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: __RTEMS_REVISION__
+type: build
diff --git a/spec/build/cpukit/optversion.yml b/spec/build/cpukit/optversion.yml
new file mode 100644
index 0000000000..98a765e724
--- /dev/null
+++ b/spec/build/cpukit/optversion.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: ${__RTEMS_MAJOR__}
+- substitute: null
+- define-unquoted: __RTEMS_MAJOR__
+- set-value: ${__RTEMS_MINOR__}
+- substitute: null
+- define-unquoted: __RTEMS_MINOR__
+- set-value: ${__RTEMS_REVISION__}
+- substitute: null
+- define-unquoted: __RTEMS_REVISION__
+- set-value: ${__RTEMS_MAJOR__}.${__RTEMS_MINOR__}.${__RTEMS_REVISION__}
+- substitute: null
+- env-assign: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+name: RTEMS_VERSION
+type: build
diff --git a/spec/build/cpukit/optwarn.yml b/spec/build/cpukit/optwarn.yml
new file mode 100644
index 0000000000..fd97ec35b7
--- /dev/null
+++ b/spec/build/cpukit/optwarn.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: null
+- env-append: CFLAGS
+- env-append: CXXFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Wall
+default-by-variant: []
+description: |
+ Warning flags passed to the C and C++ compiler
+enabled-by: true
+links: []
+name: WARNING_FLAGS
+type: build
diff --git a/spec/build/cpukit/optwarncc.yml b/spec/build/cpukit/optwarncc.yml
new file mode 100644
index 0000000000..4992c36110
--- /dev/null
+++ b/spec/build/cpukit/optwarncc.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: null
+- env-append: CFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default:
+- -Wmissing-prototypes
+- -Wimplicit-function-declaration
+- -Wstrict-prototypes
+- -Wnested-externs
+default-by-variant: []
+description: |
+ Warning flags passed to the C compiler
+enabled-by: true
+links: []
+name: CC_WARNING_FLAGS
+type: build
diff --git a/spec/build/cpukit/optwarncxx.yml b/spec/build/cpukit/optwarncxx.yml
new file mode 100644
index 0000000000..cd05555923
--- /dev/null
+++ b/spec/build/cpukit/optwarncxx.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-assign: null
+- env-append: CXXFLAGS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: []
+default-by-variant: []
+description: |
+ Warning flags passed to the C++ compiler
+enabled-by: true
+links: []
+name: CXX_WARNING_FLAGS
+type: build
diff --git a/spec/build/cpukit/vckey.yml b/spec/build/cpukit/vckey.yml
new file mode 100644
index 0000000000..3a782be624
--- /dev/null
+++ b/spec/build/cpukit/vckey.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+do-build: |
+ VersionControlKeyHeader.write(bld, "cpukit/include/version-vc-key.h")
+do-configure: null
+enabled-by: true
+links: []
+prepare-build: null
+prepare-configure: null
+type: build
diff --git a/spec/build/grp.yml b/spec/build/grp.yml
new file mode 100644
index 0000000000..7ba22d105d
--- /dev/null
+++ b/spec/build/grp.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: cpukit/grp
+- role: build-dependency
+ uid: testsuites/grp
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adabasesp.yml b/spec/build/testsuites/ada/adabasesp.yml
new file mode 100644
index 0000000000..4b22cae263
--- /dev/null
+++ b/spec/build/testsuites/ada/adabasesp.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/samples/base_sp/base_sp.adb
+ada-object-directory: testsuites/ada/samples/base_sp
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/samples/base_sp/init.c
+stlib: []
+target: testsuites/ada/ada_base_sp.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adahello.yml b/spec/build/testsuites/ada/adahello.yml
new file mode 100644
index 0000000000..379d252578
--- /dev/null
+++ b/spec/build/testsuites/ada/adahello.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/samples/hello/hello.adb
+ada-object-directory: testsuites/ada/samples/hello
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/samples/hello/init.c
+stlib: []
+target: testsuites/ada/ada_hello.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp01node1.yml b/spec/build/testsuites/ada/adamp01node1.yml
new file mode 100644
index 0000000000..e3991d4cf6
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp01node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp01/node1/mp01_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp01/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp01
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp01/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp01_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp01node2.yml b/spec/build/testsuites/ada/adamp01node2.yml
new file mode 100644
index 0000000000..a27e8fa164
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp01node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp01/node2/mp01_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp01/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp01
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp01/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp01_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp03node1.yml b/spec/build/testsuites/ada/adamp03node1.yml
new file mode 100644
index 0000000000..7702b2ee8d
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp03node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp03/node1/mp03_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp03/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp03
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp03/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp03_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp03node2.yml b/spec/build/testsuites/ada/adamp03node2.yml
new file mode 100644
index 0000000000..5e689afe7b
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp03node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp03/node2/mp03_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp03/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp03
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp03/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp03_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp04node1.yml b/spec/build/testsuites/ada/adamp04node1.yml
new file mode 100644
index 0000000000..396d48ab25
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp04node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp04/node1/mp04_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp04/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp04
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp04/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp04_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp04node2.yml b/spec/build/testsuites/ada/adamp04node2.yml
new file mode 100644
index 0000000000..36a576374a
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp04node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp04/node2/mp04_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp04/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp04
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp04/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp04_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp05node1.yml b/spec/build/testsuites/ada/adamp05node1.yml
new file mode 100644
index 0000000000..0b4935555a
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp05node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp05/node1/mp05_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp05/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp05
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp05/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp05_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp05node2.yml b/spec/build/testsuites/ada/adamp05node2.yml
new file mode 100644
index 0000000000..f71a7dbe9a
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp05node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp05/node2/mp05_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp05/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp05
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp05/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp05_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp06node1.yml b/spec/build/testsuites/ada/adamp06node1.yml
new file mode 100644
index 0000000000..23a5c5cd19
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp06node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp06/node1/mp06_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp06/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp06
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp06/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp06_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp06node2.yml b/spec/build/testsuites/ada/adamp06node2.yml
new file mode 100644
index 0000000000..4b6f6ea2d0
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp06node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp06/node2/mp06_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp06/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp06
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp06/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp06_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp07node1.yml b/spec/build/testsuites/ada/adamp07node1.yml
new file mode 100644
index 0000000000..28940341e5
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp07node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp07/node1/mp07_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp07/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp07
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp07/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp07_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp07node2.yml b/spec/build/testsuites/ada/adamp07node2.yml
new file mode 100644
index 0000000000..9aba0f81de
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp07node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp07/node2/mp07_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp07/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp07
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp07/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp07_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp08node1.yml b/spec/build/testsuites/ada/adamp08node1.yml
new file mode 100644
index 0000000000..2ee9c77f39
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp08node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp08/node1/mp08_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp08/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp08
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp08/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp08_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp08node2.yml b/spec/build/testsuites/ada/adamp08node2.yml
new file mode 100644
index 0000000000..e55d8cccd3
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp08node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp08/node2/mp08_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp08/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp08
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp08/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp08_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp09node1.yml b/spec/build/testsuites/ada/adamp09node1.yml
new file mode 100644
index 0000000000..76235948e8
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp09node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp09/node1/mp09_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp09/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp09
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp09/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp09_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp09node2.yml b/spec/build/testsuites/ada/adamp09node2.yml
new file mode 100644
index 0000000000..f117c82dc0
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp09node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp09/node2/mp09_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp09/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp09
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp09/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp09_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp10node1.yml b/spec/build/testsuites/ada/adamp10node1.yml
new file mode 100644
index 0000000000..4ff7981270
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp10node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp10/node1/mp10_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp10/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp10
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp10/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp10_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp10node2.yml b/spec/build/testsuites/ada/adamp10node2.yml
new file mode 100644
index 0000000000..fbe59f6d3f
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp10node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp10/node2/mp10_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp10/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp10
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp10/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp10_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp11node1.yml b/spec/build/testsuites/ada/adamp11node1.yml
new file mode 100644
index 0000000000..d16fd1b62a
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp11node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp11/node1/mp11_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp11/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp11
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp11/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp11_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp11node2.yml b/spec/build/testsuites/ada/adamp11node2.yml
new file mode 100644
index 0000000000..7f94e5cea0
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp11node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp11/node2/mp11_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp11/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp11
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp11/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp11_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp12node1.yml b/spec/build/testsuites/ada/adamp12node1.yml
new file mode 100644
index 0000000000..fc81bfed14
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp12node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp12/node1/mp12_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp12/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp12
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp12/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp12_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp12node2.yml b/spec/build/testsuites/ada/adamp12node2.yml
new file mode 100644
index 0000000000..3817ff83cd
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp12node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp12/node2/mp12_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp12/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp12
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp12/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp12_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp13node1.yml b/spec/build/testsuites/ada/adamp13node1.yml
new file mode 100644
index 0000000000..947f89b652
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp13node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp13/node1/mp13_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp13/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp13
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp13/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp13_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp13node2.yml b/spec/build/testsuites/ada/adamp13node2.yml
new file mode 100644
index 0000000000..5fe7bfa421
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp13node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp13/node2/mp13_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp13/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp13
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp13/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp13_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp14node1.yml b/spec/build/testsuites/ada/adamp14node1.yml
new file mode 100644
index 0000000000..e6a753c4ad
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp14node1.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp14/node1/mp14_node1.adb
+ada-object-directory: testsuites/ada/mptests/mp14/node1
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp14
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp14/node1/init.c
+stlib: []
+target: testsuites/ada/ada_mp14_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adamp14node2.yml b/spec/build/testsuites/ada/adamp14node2.yml
new file mode 100644
index 0000000000..1bdf3284aa
--- /dev/null
+++ b/spec/build/testsuites/ada/adamp14node2.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/mptests/mp14/node2/mp14_node2.adb
+ada-object-directory: testsuites/ada/mptests/mp14/node2
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+- testsuites/ada/mptests/mp14
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/mptests/mp14/node2/init.c
+stlib: []
+target: testsuites/ada/ada_mp14_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adansecs.yml b/spec/build/testsuites/ada/adansecs.yml
new file mode 100644
index 0000000000..088baf2cc3
--- /dev/null
+++ b/spec/build/testsuites/ada/adansecs.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/samples/nsecs/nsecs.adb
+ada-object-directory: testsuites/ada/samples/nsecs
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/samples/nsecs/init.c
+stlib: []
+target: testsuites/ada/ada_nsecs.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp01.yml b/spec/build/testsuites/ada/adasp01.yml
new file mode 100644
index 0000000000..2992e1eab7
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp01.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp01/sp01.adb
+ada-object-directory: testsuites/ada/sptests/sp01
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp01/init.c
+stlib: []
+target: testsuites/ada/ada_sp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp02.yml b/spec/build/testsuites/ada/adasp02.yml
new file mode 100644
index 0000000000..238b0ef71d
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp02.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp02/sp02.adb
+ada-object-directory: testsuites/ada/sptests/sp02
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp02/init.c
+stlib: []
+target: testsuites/ada/ada_sp02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp03.yml b/spec/build/testsuites/ada/adasp03.yml
new file mode 100644
index 0000000000..7083244b93
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp03.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp03/sp03.adb
+ada-object-directory: testsuites/ada/sptests/sp03
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp03/init.c
+stlib: []
+target: testsuites/ada/ada_sp03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp04.yml b/spec/build/testsuites/ada/adasp04.yml
new file mode 100644
index 0000000000..f6bf5b7837
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp04.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp04/sp04.adb
+ada-object-directory: testsuites/ada/sptests/sp04
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp04/init.c
+stlib: []
+target: testsuites/ada/ada_sp04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp05.yml b/spec/build/testsuites/ada/adasp05.yml
new file mode 100644
index 0000000000..b2ee7bb3be
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp05.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp05/sp05.adb
+ada-object-directory: testsuites/ada/sptests/sp05
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp05/init.c
+stlib: []
+target: testsuites/ada/ada_sp05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp06.yml b/spec/build/testsuites/ada/adasp06.yml
new file mode 100644
index 0000000000..d837c29e88
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp06.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp06/sp06.adb
+ada-object-directory: testsuites/ada/sptests/sp06
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp06/init.c
+stlib: []
+target: testsuites/ada/ada_sp06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp07.yml b/spec/build/testsuites/ada/adasp07.yml
new file mode 100644
index 0000000000..7a646d8d8c
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp07.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp07/sp07.adb
+ada-object-directory: testsuites/ada/sptests/sp07
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp07/init.c
+stlib: []
+target: testsuites/ada/ada_sp07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp08.yml b/spec/build/testsuites/ada/adasp08.yml
new file mode 100644
index 0000000000..25a91b75c1
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp08.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp08/sp08.adb
+ada-object-directory: testsuites/ada/sptests/sp08
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp08/init.c
+stlib: []
+target: testsuites/ada/ada_sp08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp09.yml b/spec/build/testsuites/ada/adasp09.yml
new file mode 100644
index 0000000000..1396562583
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp09.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp09/sp09.adb
+ada-object-directory: testsuites/ada/sptests/sp09
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp09/init.c
+stlib: []
+target: testsuites/ada/ada_sp09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp11.yml b/spec/build/testsuites/ada/adasp11.yml
new file mode 100644
index 0000000000..dbd158d515
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp11.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp11/sp11.adb
+ada-object-directory: testsuites/ada/sptests/sp11
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp11/init.c
+stlib: []
+target: testsuites/ada/ada_sp11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp12.yml b/spec/build/testsuites/ada/adasp12.yml
new file mode 100644
index 0000000000..2da8f47504
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp12.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp12/sp12.adb
+ada-object-directory: testsuites/ada/sptests/sp12
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp12/init.c
+stlib: []
+target: testsuites/ada/ada_sp12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp13.yml b/spec/build/testsuites/ada/adasp13.yml
new file mode 100644
index 0000000000..8110a2e5dc
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp13.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp13/sp13.adb
+ada-object-directory: testsuites/ada/sptests/sp13
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp13/init.c
+stlib: []
+target: testsuites/ada/ada_sp13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp14.yml b/spec/build/testsuites/ada/adasp14.yml
new file mode 100644
index 0000000000..4804d93f7b
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp14.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp14/sp14.adb
+ada-object-directory: testsuites/ada/sptests/sp14
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp14/init.c
+stlib: []
+target: testsuites/ada/ada_sp14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp15.yml b/spec/build/testsuites/ada/adasp15.yml
new file mode 100644
index 0000000000..896ddff66d
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp15.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp15/sp15.adb
+ada-object-directory: testsuites/ada/sptests/sp15
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp15/init.c
+stlib: []
+target: testsuites/ada/ada_sp15.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp16.yml b/spec/build/testsuites/ada/adasp16.yml
new file mode 100644
index 0000000000..fa775659c5
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp16.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp16/sp16.adb
+ada-object-directory: testsuites/ada/sptests/sp16
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp16/init.c
+stlib: []
+target: testsuites/ada/ada_sp16.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp17.yml b/spec/build/testsuites/ada/adasp17.yml
new file mode 100644
index 0000000000..1d1be12003
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp17.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp17/sp17.adb
+ada-object-directory: testsuites/ada/sptests/sp17
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp17/init.c
+stlib: []
+target: testsuites/ada/ada_sp17.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp19.yml b/spec/build/testsuites/ada/adasp19.yml
new file mode 100644
index 0000000000..2c3a0b01a9
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp19.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp19/sp19.adb
+ada-object-directory: testsuites/ada/sptests/sp19
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp19/init.c
+stlib: []
+target: testsuites/ada/ada_sp19.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp20.yml b/spec/build/testsuites/ada/adasp20.yml
new file mode 100644
index 0000000000..52d4cf4938
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp20.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp20/sp20.adb
+ada-object-directory: testsuites/ada/sptests/sp20
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp20/init.c
+stlib: []
+target: testsuites/ada/ada_sp20.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp22.yml b/spec/build/testsuites/ada/adasp22.yml
new file mode 100644
index 0000000000..6f297b99eb
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp22.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp22/sp22.adb
+ada-object-directory: testsuites/ada/sptests/sp22
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp22/init.c
+stlib: []
+target: testsuites/ada/ada_sp22.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp23.yml b/spec/build/testsuites/ada/adasp23.yml
new file mode 100644
index 0000000000..8ca322caf5
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp23.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp23/sp23.adb
+ada-object-directory: testsuites/ada/sptests/sp23
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp23/init.c
+stlib: []
+target: testsuites/ada/ada_sp23.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp24.yml b/spec/build/testsuites/ada/adasp24.yml
new file mode 100644
index 0000000000..0425ec9f11
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp24.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp24/sp24.adb
+ada-object-directory: testsuites/ada/sptests/sp24
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp24/init.c
+stlib: []
+target: testsuites/ada/ada_sp24.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adasp25.yml b/spec/build/testsuites/ada/adasp25.yml
new file mode 100644
index 0000000000..14c747d1e9
--- /dev/null
+++ b/spec/build/testsuites/ada/adasp25.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/sp25/sp25.adb
+ada-object-directory: testsuites/ada/sptests/sp25
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/sp25/init.c
+stlib: []
+target: testsuites/ada/ada_sp25.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adaspatcb01.yml b/spec/build/testsuites/ada/adaspatcb01.yml
new file mode 100644
index 0000000000..5aa34a8644
--- /dev/null
+++ b/spec/build/testsuites/ada/adaspatcb01.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/spatcb01/spatcb01.adb
+ada-object-directory: testsuites/ada/sptests/spatcb01
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_POSIX_API
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/spatcb01/init.c
+stlib: []
+target: testsuites/ada/ada_spatcb01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adaspname01.yml b/spec/build/testsuites/ada/adaspname01.yml
new file mode 100644
index 0000000000..2f28f328fa
--- /dev/null
+++ b/spec/build/testsuites/ada/adaspname01.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/sptests/spname01/spname01.adb
+ada-object-directory: testsuites/ada/sptests/spname01
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by:
+- RTEMS_POSIX_API
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/sptests/spname01/init.c
+stlib: []
+target: testsuites/ada/ada_spname01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adaticker.yml b/spec/build/testsuites/ada/adaticker.yml
new file mode 100644
index 0000000000..29e16d7924
--- /dev/null
+++ b/spec/build/testsuites/ada/adaticker.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/samples/ticker/ticker.adb
+ada-object-directory: testsuites/ada/samples/ticker
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/samples/ticker/init.c
+stlib: []
+target: testsuites/ada/ada_ticker.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm01.yml b/spec/build/testsuites/ada/adatm01.yml
new file mode 100644
index 0000000000..5513a2ff0f
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm01.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm01/tm01.adb
+ada-object-directory: testsuites/ada/tmtests/tm01
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm01/init.c
+stlib: []
+target: testsuites/ada/ada_tm01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm02.yml b/spec/build/testsuites/ada/adatm02.yml
new file mode 100644
index 0000000000..d82e803e57
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm02.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm02/tm02.adb
+ada-object-directory: testsuites/ada/tmtests/tm02
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm02/init.c
+stlib: []
+target: testsuites/ada/ada_tm02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm03.yml b/spec/build/testsuites/ada/adatm03.yml
new file mode 100644
index 0000000000..8c659efa17
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm03.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm03/tm03.adb
+ada-object-directory: testsuites/ada/tmtests/tm03
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm03/init.c
+stlib: []
+target: testsuites/ada/ada_tm03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm04.yml b/spec/build/testsuites/ada/adatm04.yml
new file mode 100644
index 0000000000..dfcaa24e2b
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm04.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm04/tm04.adb
+ada-object-directory: testsuites/ada/tmtests/tm04
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm04/init.c
+stlib: []
+target: testsuites/ada/ada_tm04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm05.yml b/spec/build/testsuites/ada/adatm05.yml
new file mode 100644
index 0000000000..0af8fcfba5
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm05.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm05/tm05.adb
+ada-object-directory: testsuites/ada/tmtests/tm05
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm05/init.c
+stlib: []
+target: testsuites/ada/ada_tm05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm06.yml b/spec/build/testsuites/ada/adatm06.yml
new file mode 100644
index 0000000000..c1d50d33db
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm06.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm06/tm06.adb
+ada-object-directory: testsuites/ada/tmtests/tm06
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm06/init.c
+stlib: []
+target: testsuites/ada/ada_tm06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm07.yml b/spec/build/testsuites/ada/adatm07.yml
new file mode 100644
index 0000000000..6a5fc6279f
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm07.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm07/tm07.adb
+ada-object-directory: testsuites/ada/tmtests/tm07
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm07/init.c
+stlib: []
+target: testsuites/ada/ada_tm07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm08.yml b/spec/build/testsuites/ada/adatm08.yml
new file mode 100644
index 0000000000..5661bc23e9
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm08.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm08/tm08.adb
+ada-object-directory: testsuites/ada/tmtests/tm08
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm08/init.c
+stlib: []
+target: testsuites/ada/ada_tm08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm09.yml b/spec/build/testsuites/ada/adatm09.yml
new file mode 100644
index 0000000000..c2fed17d04
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm09.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm09/tm09.adb
+ada-object-directory: testsuites/ada/tmtests/tm09
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm09/init.c
+stlib: []
+target: testsuites/ada/ada_tm09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm10.yml b/spec/build/testsuites/ada/adatm10.yml
new file mode 100644
index 0000000000..1fe5441527
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm10.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm10/tm10.adb
+ada-object-directory: testsuites/ada/tmtests/tm10
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm10/init.c
+stlib: []
+target: testsuites/ada/ada_tm10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm11.yml b/spec/build/testsuites/ada/adatm11.yml
new file mode 100644
index 0000000000..cd4d590ebc
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm11.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm11/tm11.adb
+ada-object-directory: testsuites/ada/tmtests/tm11
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm11/init.c
+stlib: []
+target: testsuites/ada/ada_tm11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm12.yml b/spec/build/testsuites/ada/adatm12.yml
new file mode 100644
index 0000000000..ab3adc576f
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm12.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm12/tm12.adb
+ada-object-directory: testsuites/ada/tmtests/tm12
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm12/init.c
+stlib: []
+target: testsuites/ada/ada_tm12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm13.yml b/spec/build/testsuites/ada/adatm13.yml
new file mode 100644
index 0000000000..b45d3210da
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm13.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm13/tm13.adb
+ada-object-directory: testsuites/ada/tmtests/tm13
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm13/init.c
+stlib: []
+target: testsuites/ada/ada_tm13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm14.yml b/spec/build/testsuites/ada/adatm14.yml
new file mode 100644
index 0000000000..7c8a0f1a2b
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm14.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm14/tm14.adb
+ada-object-directory: testsuites/ada/tmtests/tm14
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm14/init.c
+stlib: []
+target: testsuites/ada/ada_tm14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm15.yml b/spec/build/testsuites/ada/adatm15.yml
new file mode 100644
index 0000000000..8f92cdd76d
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm15.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm15/tm15.adb
+ada-object-directory: testsuites/ada/tmtests/tm15
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm15/init.c
+stlib: []
+target: testsuites/ada/ada_tm15.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm16.yml b/spec/build/testsuites/ada/adatm16.yml
new file mode 100644
index 0000000000..105f9a2594
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm16.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm16/tm16.adb
+ada-object-directory: testsuites/ada/tmtests/tm16
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm16/init.c
+stlib: []
+target: testsuites/ada/ada_tm16.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm17.yml b/spec/build/testsuites/ada/adatm17.yml
new file mode 100644
index 0000000000..ac8094bb2d
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm17.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm17/tm17.adb
+ada-object-directory: testsuites/ada/tmtests/tm17
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm17/init.c
+stlib: []
+target: testsuites/ada/ada_tm17.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm18.yml b/spec/build/testsuites/ada/adatm18.yml
new file mode 100644
index 0000000000..28a5f18b23
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm18.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm18/tm18.adb
+ada-object-directory: testsuites/ada/tmtests/tm18
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm18/init.c
+stlib: []
+target: testsuites/ada/ada_tm18.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm19.yml b/spec/build/testsuites/ada/adatm19.yml
new file mode 100644
index 0000000000..782a3687e8
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm19.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm19/tm19.adb
+ada-object-directory: testsuites/ada/tmtests/tm19
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm19/init.c
+stlib: []
+target: testsuites/ada/ada_tm19.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm20.yml b/spec/build/testsuites/ada/adatm20.yml
new file mode 100644
index 0000000000..d090f683a3
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm20.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm20/tm20.adb
+ada-object-directory: testsuites/ada/tmtests/tm20
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm20/init.c
+stlib: []
+target: testsuites/ada/ada_tm20.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm21.yml b/spec/build/testsuites/ada/adatm21.yml
new file mode 100644
index 0000000000..fc77f097af
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm21.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm21/tm21.adb
+ada-object-directory: testsuites/ada/tmtests/tm21
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm21/init.c
+stlib: []
+target: testsuites/ada/ada_tm21.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm22.yml b/spec/build/testsuites/ada/adatm22.yml
new file mode 100644
index 0000000000..5654a5b596
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm22.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm22/tm22.adb
+ada-object-directory: testsuites/ada/tmtests/tm22
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm22/init.c
+stlib: []
+target: testsuites/ada/ada_tm22.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm23.yml b/spec/build/testsuites/ada/adatm23.yml
new file mode 100644
index 0000000000..f44623c0f8
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm23.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm23/tm23.adb
+ada-object-directory: testsuites/ada/tmtests/tm23
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm23/init.c
+stlib: []
+target: testsuites/ada/ada_tm23.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm24.yml b/spec/build/testsuites/ada/adatm24.yml
new file mode 100644
index 0000000000..a7985ef544
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm24.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm24/tm24.adb
+ada-object-directory: testsuites/ada/tmtests/tm24
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm24/init.c
+stlib: []
+target: testsuites/ada/ada_tm24.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm25.yml b/spec/build/testsuites/ada/adatm25.yml
new file mode 100644
index 0000000000..312eff3cd1
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm25.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm25/tm25.adb
+ada-object-directory: testsuites/ada/tmtests/tm25
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm25/init.c
+stlib: []
+target: testsuites/ada/ada_tm25.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm28.yml b/spec/build/testsuites/ada/adatm28.yml
new file mode 100644
index 0000000000..c21f26c6f9
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm28.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm28/tm28.adb
+ada-object-directory: testsuites/ada/tmtests/tm28
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm28/init.c
+stlib: []
+target: testsuites/ada/ada_tm28.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatm29.yml b/spec/build/testsuites/ada/adatm29.yml
new file mode 100644
index 0000000000..365b2916f2
--- /dev/null
+++ b/spec/build/testsuites/ada/adatm29.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tm29/tm29.adb
+ada-object-directory: testsuites/ada/tmtests/tm29
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tm29/init.c
+stlib: []
+target: testsuites/ada/ada_tm29.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/adatmck.yml b/spec/build/testsuites/ada/adatmck.yml
new file mode 100644
index 0000000000..410a083293
--- /dev/null
+++ b/spec/build/testsuites/ada/adatmck.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+ada-main: testsuites/ada/tmtests/tmck/tmck.adb
+ada-object-directory: testsuites/ada/tmtests/tmck
+adaflags: []
+adaincludes:
+- cpukit/include/adainclude
+- testsuites/ada/support
+build-type: ada-test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+enabled-by: true
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/ada/tmtests/tmck/init.c
+stlib: []
+target: testsuites/ada/ada_tmck.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/ada/grp.yml b/spec/build/testsuites/ada/grp.yml
new file mode 100644
index 0000000000..ef84203d35
--- /dev/null
+++ b/spec/build/testsuites/ada/grp.yml
@@ -0,0 +1,186 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- and:
+ - __RTEMS_ADA__
+ - or:
+ - BUILD_TESTS
+ - BUILD_ADATESTS
+includes: []
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: optgnat
+- role: build-dependency
+ uid: adabasesp
+- role: build-dependency
+ uid: adahello
+- role: build-dependency
+ uid: adamp01node1
+- role: build-dependency
+ uid: adamp01node2
+- role: build-dependency
+ uid: adamp03node1
+- role: build-dependency
+ uid: adamp03node2
+- role: build-dependency
+ uid: adamp04node1
+- role: build-dependency
+ uid: adamp04node2
+- role: build-dependency
+ uid: adamp05node1
+- role: build-dependency
+ uid: adamp05node2
+- role: build-dependency
+ uid: adamp06node1
+- role: build-dependency
+ uid: adamp06node2
+- role: build-dependency
+ uid: adamp07node1
+- role: build-dependency
+ uid: adamp07node2
+- role: build-dependency
+ uid: adamp08node1
+- role: build-dependency
+ uid: adamp08node2
+- role: build-dependency
+ uid: adamp09node1
+- role: build-dependency
+ uid: adamp09node2
+- role: build-dependency
+ uid: adamp10node1
+- role: build-dependency
+ uid: adamp10node2
+- role: build-dependency
+ uid: adamp11node1
+- role: build-dependency
+ uid: adamp11node2
+- role: build-dependency
+ uid: adamp12node1
+- role: build-dependency
+ uid: adamp12node2
+- role: build-dependency
+ uid: adamp13node1
+- role: build-dependency
+ uid: adamp13node2
+- role: build-dependency
+ uid: adamp14node1
+- role: build-dependency
+ uid: adamp14node2
+- role: build-dependency
+ uid: adansecs
+- role: build-dependency
+ uid: adasp01
+- role: build-dependency
+ uid: adasp02
+- role: build-dependency
+ uid: adasp03
+- role: build-dependency
+ uid: adasp04
+- role: build-dependency
+ uid: adasp05
+- role: build-dependency
+ uid: adasp06
+- role: build-dependency
+ uid: adasp07
+- role: build-dependency
+ uid: adasp08
+- role: build-dependency
+ uid: adasp09
+- role: build-dependency
+ uid: adasp11
+- role: build-dependency
+ uid: adasp12
+- role: build-dependency
+ uid: adasp13
+- role: build-dependency
+ uid: adasp14
+- role: build-dependency
+ uid: adasp15
+- role: build-dependency
+ uid: adasp16
+- role: build-dependency
+ uid: adasp17
+- role: build-dependency
+ uid: adasp19
+- role: build-dependency
+ uid: adasp20
+- role: build-dependency
+ uid: adasp22
+- role: build-dependency
+ uid: adasp23
+- role: build-dependency
+ uid: adasp24
+- role: build-dependency
+ uid: adasp25
+- role: build-dependency
+ uid: adaspatcb01
+- role: build-dependency
+ uid: adaspname01
+- role: build-dependency
+ uid: adaticker
+- role: build-dependency
+ uid: adatm01
+- role: build-dependency
+ uid: adatm02
+- role: build-dependency
+ uid: adatm03
+- role: build-dependency
+ uid: adatm04
+- role: build-dependency
+ uid: adatm05
+- role: build-dependency
+ uid: adatm06
+- role: build-dependency
+ uid: adatm07
+- role: build-dependency
+ uid: adatm08
+- role: build-dependency
+ uid: adatm09
+- role: build-dependency
+ uid: adatm10
+- role: build-dependency
+ uid: adatm11
+- role: build-dependency
+ uid: adatm12
+- role: build-dependency
+ uid: adatm13
+- role: build-dependency
+ uid: adatm14
+- role: build-dependency
+ uid: adatm15
+- role: build-dependency
+ uid: adatm16
+- role: build-dependency
+ uid: adatm17
+- role: build-dependency
+ uid: adatm18
+- role: build-dependency
+ uid: adatm19
+- role: build-dependency
+ uid: adatm20
+- role: build-dependency
+ uid: adatm21
+- role: build-dependency
+ uid: adatm22
+- role: build-dependency
+ uid: adatm23
+- role: build-dependency
+ uid: adatm24
+- role: build-dependency
+ uid: adatm25
+- role: build-dependency
+ uid: adatm28
+- role: build-dependency
+ uid: adatm29
+- role: build-dependency
+ uid: adatmck
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/ada/optgnat.yml b/spec/build/testsuites/ada/optgnat.yml
new file mode 100644
index 0000000000..82d940b502
--- /dev/null
+++ b/spec/build/testsuites/ada/optgnat.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: ${ARCH}-rtems${__RTEMS_MAJOR__}-gnatmake
+- substitute: null
+- find-program: null
+- env-assign: GNATMAKE
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/testsuites/benchmarks/dhrystone.yml b/spec/build/testsuites/benchmarks/dhrystone.yml
new file mode 100644
index 0000000000..a52a997a7e
--- /dev/null
+++ b/spec/build/testsuites/benchmarks/dhrystone.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/benchmarks/dhrystone/init.c
+- testsuites/benchmarks/dhrystone/dhry_1.c
+- testsuites/benchmarks/dhrystone/dhry_2.c
+stlib: []
+target: testsuites/benchmarks/dhrystone.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/benchmarks/grp.yml b/spec/build/testsuites/benchmarks/grp.yml
new file mode 100644
index 0000000000..1189ec087e
--- /dev/null
+++ b/spec/build/testsuites/benchmarks/grp.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_BENCHMARKS
+includes:
+- testsuites/support/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: dhrystone
+- role: build-dependency
+ uid: linpack
+- role: build-dependency
+ uid: whetstone
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/benchmarks/linpack.yml b/spec/build/testsuites/benchmarks/linpack.yml
new file mode 100644
index 0000000000..44b2264d3f
--- /dev/null
+++ b/spec/build/testsuites/benchmarks/linpack.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/benchmarks/linpack/init.c
+- testsuites/benchmarks/linpack/linpack-pc.c
+stlib:
+- m
+target: testsuites/benchmarks/linpack.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/benchmarks/whetstone.yml b/spec/build/testsuites/benchmarks/whetstone.yml
new file mode 100644
index 0000000000..362e75bacc
--- /dev/null
+++ b/spec/build/testsuites/benchmarks/whetstone.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/benchmarks/whetstone/init.c
+- testsuites/benchmarks/whetstone/whetstone.c
+stlib:
+- m
+target: testsuites/benchmarks/whetstone.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsbdpart01.yml b/spec/build/testsuites/fstests/fsbdpart01.yml
new file mode 100644
index 0000000000..db5d46887e
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsbdpart01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsbdpart01/init.c
+stlib: []
+target: testsuites/fstests/fsbdpart01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsclose01.yml b/spec/build/testsuites/fstests/fsclose01.yml
new file mode 100644
index 0000000000..8e69ae0f87
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsclose01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsclose01/init.c
+stlib: []
+target: testsuites/fstests/fsclose01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsdosfsformat01.yml b/spec/build/testsuites/fstests/fsdosfsformat01.yml
new file mode 100644
index 0000000000..b82204e2b1
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsdosfsformat01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsdosfsformat01/init.c
+stlib: []
+target: testsuites/fstests/fsdosfsformat01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsdosfsname01.yml b/spec/build/testsuites/fstests/fsdosfsname01.yml
new file mode 100644
index 0000000000..98c2da7ff5
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsdosfsname01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsdosfsname01/init.c
+stlib: []
+target: testsuites/fstests/fsdosfsname01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsdosfsname02.yml b/spec/build/testsuites/fstests/fsdosfsname02.yml
new file mode 100644
index 0000000000..951ad6953b
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsdosfsname02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsdosfsname02/init.c
+stlib: []
+target: testsuites/fstests/fsdosfsname02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsdosfssync01.yml b/spec/build/testsuites/fstests/fsdosfssync01.yml
new file mode 100644
index 0000000000..7ab95705e6
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsdosfssync01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsdosfssync01/init.c
+stlib: []
+target: testsuites/fstests/fsdosfssync01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsdosfswrite01.yml b/spec/build/testsuites/fstests/fsdosfswrite01.yml
new file mode 100644
index 0000000000..0dee967b39
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsdosfswrite01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsdosfswrite01/init.c
+stlib: []
+target: testsuites/fstests/fsdosfswrite01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsfseeko01.yml b/spec/build/testsuites/fstests/fsfseeko01.yml
new file mode 100644
index 0000000000..6e0adac790
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsfseeko01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsfseeko01/init.c
+stlib: []
+target: testsuites/fstests/fsfseeko01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsimfsconfig01.yml b/spec/build/testsuites/fstests/fsimfsconfig01.yml
new file mode 100644
index 0000000000..f4aa3693e2
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsimfsconfig01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsimfsconfig01/init.c
+stlib: []
+target: testsuites/fstests/fsimfsconfig01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsimfsconfig02.yml b/spec/build/testsuites/fstests/fsimfsconfig02.yml
new file mode 100644
index 0000000000..cd8c8f7941
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsimfsconfig02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsimfsconfig02/init.c
+stlib: []
+target: testsuites/fstests/fsimfsconfig02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsimfsconfig03.yml b/spec/build/testsuites/fstests/fsimfsconfig03.yml
new file mode 100644
index 0000000000..6378eaee67
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsimfsconfig03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsimfsconfig03/init.c
+stlib: []
+target: testsuites/fstests/fsimfsconfig03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsimfsgeneric01.yml b/spec/build/testsuites/fstests/fsimfsgeneric01.yml
new file mode 100644
index 0000000000..b10d4a456f
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsimfsgeneric01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsimfsgeneric01/init.c
+stlib: []
+target: testsuites/fstests/fsimfsgeneric01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsjffs2gc01.yml b/spec/build/testsuites/fstests/fsjffs2gc01.yml
new file mode 100644
index 0000000000..c474721533
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsjffs2gc01.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsjffs2gc01/init.c
+- testsuites/fstests/jffs2_support/fs_support.c
+- testsuites/fstests/support/fstest_support.c
+stlib:
+- jffs2
+target: testsuites/fstests/fsjffs2gc01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsnofs01.yml b/spec/build/testsuites/fstests/fsnofs01.yml
new file mode 100644
index 0000000000..21bef08fc8
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsnofs01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsnofs01/init.c
+stlib: []
+target: testsuites/fstests/fsnofs01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsrfsbitmap01.yml b/spec/build/testsuites/fstests/fsrfsbitmap01.yml
new file mode 100644
index 0000000000..5bc6919bf9
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsrfsbitmap01.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrfsbitmap01/test.c
+- testsuites/fstests/mrfs_support/fs_support.c
+- testsuites/fstests/support/fstest_support.c
+- testsuites/fstests/support/ramdisk_support.c
+stlib: []
+target: testsuites/fstests/fsrfsbitmap01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/fsrofs01.yml b/spec/build/testsuites/fstests/fsrofs01.yml
new file mode 100644
index 0000000000..1d4f895a17
--- /dev/null
+++ b/spec/build/testsuites/fstests/fsrofs01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrofs01/init.c
+stlib: []
+target: testsuites/fstests/fsrofs01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/fstests/grp.yml b/spec/build/testsuites/fstests/grp.yml
new file mode 100644
index 0000000000..4c987785ed
--- /dev/null
+++ b/spec/build/testsuites/fstests/grp.yml
@@ -0,0 +1,143 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_FSTESTS
+includes:
+- testsuites/support/include
+- testsuites/fstests/support
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: libdosfs
+- role: build-dependency
+ uid: libimfs
+- role: build-dependency
+ uid: libjffs2
+- role: build-dependency
+ uid: libmimfs
+- role: build-dependency
+ uid: librfs
+- role: build-dependency
+ uid: fsbdpart01
+- role: build-dependency
+ uid: fsclose01
+- role: build-dependency
+ uid: fsdosfsformat01
+- role: build-dependency
+ uid: fsdosfsname01
+- role: build-dependency
+ uid: fsdosfsname02
+- role: build-dependency
+ uid: fsdosfssync01
+- role: build-dependency
+ uid: fsdosfswrite01
+- role: build-dependency
+ uid: fsfseeko01
+- role: build-dependency
+ uid: fsimfsconfig01
+- role: build-dependency
+ uid: fsimfsconfig02
+- role: build-dependency
+ uid: fsimfsconfig03
+- role: build-dependency
+ uid: fsimfsgeneric01
+- role: build-dependency
+ uid: fsjffs2gc01
+- role: build-dependency
+ uid: fsnofs01
+- role: build-dependency
+ uid: fsrfsbitmap01
+- role: build-dependency
+ uid: fsrofs01
+- role: build-dependency
+ uid: imfsfserror
+- role: build-dependency
+ uid: imfsfslink
+- role: build-dependency
+ uid: imfsfspatheval
+- role: build-dependency
+ uid: imfsfspermission
+- role: build-dependency
+ uid: imfsfsrdwr
+- role: build-dependency
+ uid: imfsfsscandir01
+- role: build-dependency
+ uid: imfsfssymlink
+- role: build-dependency
+ uid: imfsfstime
+- role: build-dependency
+ uid: jffs2fserror
+- role: build-dependency
+ uid: jffs2fslink
+- role: build-dependency
+ uid: jffs2fspatheval
+- role: build-dependency
+ uid: jffs2fspermission
+- role: build-dependency
+ uid: jffs2fsrdwr
+- role: build-dependency
+ uid: jffs2fsscandir01
+- role: build-dependency
+ uid: jffs2fssymlink
+- role: build-dependency
+ uid: jffs2fstime
+- role: build-dependency
+ uid: mdosfsfserror
+- role: build-dependency
+ uid: mdosfsfspatheval
+- role: build-dependency
+ uid: mdosfsfsrdwr
+- role: build-dependency
+ uid: mdosfsfsscandir01
+- role: build-dependency
+ uid: mdosfsfsstatvfs
+- role: build-dependency
+ uid: mdosfsfstime
+- role: build-dependency
+ uid: mimfsfserror
+- role: build-dependency
+ uid: mimfsfslink
+- role: build-dependency
+ uid: mimfsfspatheval
+- role: build-dependency
+ uid: mimfsfspermission
+- role: build-dependency
+ uid: mimfsfsrdwr
+- role: build-dependency
+ uid: mimfsfsrename
+- role: build-dependency
+ uid: mimfsfsscandir01
+- role: build-dependency
+ uid: mimfsfssymlink
+- role: build-dependency
+ uid: mimfsfstime
+- role: build-dependency
+ uid: mrfsfserror
+- role: build-dependency
+ uid: mrfsfsfpathconf
+- role: build-dependency
+ uid: mrfsfslink
+- role: build-dependency
+ uid: mrfsfspatheval
+- role: build-dependency
+ uid: mrfsfspermission
+- role: build-dependency
+ uid: mrfsfsrdwr
+- role: build-dependency
+ uid: mrfsfsrename
+- role: build-dependency
+ uid: mrfsfsscandir01
+- role: build-dependency
+ uid: mrfsfssymlink
+- role: build-dependency
+ uid: mrfsfstime
+type: build
+use-after: []
+use-before:
+- rtemstest
diff --git a/spec/build/testsuites/fstests/imfsfserror.yml b/spec/build/testsuites/fstests/imfsfserror.yml
new file mode 100644
index 0000000000..246ddbce02
--- /dev/null
+++ b/spec/build/testsuites/fstests/imfsfserror.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/imfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fserror/test.c
+stlib: []
+target: testsuites/fstests/imfs_fserror.exe
+type: build
+use-after: []
+use-before:
+- testimfs
diff --git a/spec/build/testsuites/fstests/imfsfslink.yml b/spec/build/testsuites/fstests/imfsfslink.yml
new file mode 100644
index 0000000000..e65c943af4
--- /dev/null
+++ b/spec/build/testsuites/fstests/imfsfslink.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/imfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fslink/test.c
+stlib: []
+target: testsuites/fstests/imfs_fslink.exe
+type: build
+use-after: []
+use-before:
+- testimfs
diff --git a/spec/build/testsuites/fstests/imfsfspatheval.yml b/spec/build/testsuites/fstests/imfsfspatheval.yml
new file mode 100644
index 0000000000..8192a85427
--- /dev/null
+++ b/spec/build/testsuites/fstests/imfsfspatheval.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/imfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspatheval/test.c
+stlib: []
+target: testsuites/fstests/imfs_fspatheval.exe
+type: build
+use-after: []
+use-before:
+- testimfs
diff --git a/spec/build/testsuites/fstests/imfsfspermission.yml b/spec/build/testsuites/fstests/imfsfspermission.yml
new file mode 100644
index 0000000000..99f66276fd
--- /dev/null
+++ b/spec/build/testsuites/fstests/imfsfspermission.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/imfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspermission/test.c
+stlib: []
+target: testsuites/fstests/imfs_fspermission.exe
+type: build
+use-after: []
+use-before:
+- testimfs
diff --git a/spec/build/testsuites/fstests/imfsfsrdwr.yml b/spec/build/testsuites/fstests/imfsfsrdwr.yml
new file mode 100644
index 0000000000..88a4ba0e59
--- /dev/null
+++ b/spec/build/testsuites/fstests/imfsfsrdwr.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/imfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrdwr/init.c
+stlib: []
+target: testsuites/fstests/imfs_fsrdwr.exe
+type: build
+use-after: []
+use-before:
+- testimfs
diff --git a/spec/build/testsuites/fstests/imfsfsscandir01.yml b/spec/build/testsuites/fstests/imfsfsscandir01.yml
new file mode 100644
index 0000000000..009ef6bdda
--- /dev/null
+++ b/spec/build/testsuites/fstests/imfsfsscandir01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/imfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsscandir01/init.c
+stlib: []
+target: testsuites/fstests/imfs_fsscandir01.exe
+type: build
+use-after: []
+use-before:
+- testimfs
diff --git a/spec/build/testsuites/fstests/imfsfssymlink.yml b/spec/build/testsuites/fstests/imfsfssymlink.yml
new file mode 100644
index 0000000000..5ebdac605a
--- /dev/null
+++ b/spec/build/testsuites/fstests/imfsfssymlink.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/imfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fssymlink/test.c
+stlib: []
+target: testsuites/fstests/imfs_fssymlink.exe
+type: build
+use-after: []
+use-before:
+- testimfs
diff --git a/spec/build/testsuites/fstests/imfsfstime.yml b/spec/build/testsuites/fstests/imfsfstime.yml
new file mode 100644
index 0000000000..77318d9d2f
--- /dev/null
+++ b/spec/build/testsuites/fstests/imfsfstime.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/imfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fstime/test.c
+stlib: []
+target: testsuites/fstests/imfs_fstime.exe
+type: build
+use-after: []
+use-before:
+- testimfs
diff --git a/spec/build/testsuites/fstests/jffs2fserror.yml b/spec/build/testsuites/fstests/jffs2fserror.yml
new file mode 100644
index 0000000000..3ca33b0edf
--- /dev/null
+++ b/spec/build/testsuites/fstests/jffs2fserror.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fserror/test.c
+stlib:
+- jffs2
+target: testsuites/fstests/jffs2_fserror.exe
+type: build
+use-after: []
+use-before:
+- testjffs2
diff --git a/spec/build/testsuites/fstests/jffs2fslink.yml b/spec/build/testsuites/fstests/jffs2fslink.yml
new file mode 100644
index 0000000000..16851c8641
--- /dev/null
+++ b/spec/build/testsuites/fstests/jffs2fslink.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fslink/test.c
+stlib:
+- jffs2
+target: testsuites/fstests/jffs2_fslink.exe
+type: build
+use-after: []
+use-before:
+- testjffs2
diff --git a/spec/build/testsuites/fstests/jffs2fspatheval.yml b/spec/build/testsuites/fstests/jffs2fspatheval.yml
new file mode 100644
index 0000000000..4430ccd814
--- /dev/null
+++ b/spec/build/testsuites/fstests/jffs2fspatheval.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspatheval/test.c
+stlib:
+- jffs2
+target: testsuites/fstests/jffs2_fspatheval.exe
+type: build
+use-after: []
+use-before:
+- testjffs2
diff --git a/spec/build/testsuites/fstests/jffs2fspermission.yml b/spec/build/testsuites/fstests/jffs2fspermission.yml
new file mode 100644
index 0000000000..c1e22dbecf
--- /dev/null
+++ b/spec/build/testsuites/fstests/jffs2fspermission.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspermission/test.c
+stlib:
+- jffs2
+target: testsuites/fstests/jffs2_fspermission.exe
+type: build
+use-after: []
+use-before:
+- testjffs2
diff --git a/spec/build/testsuites/fstests/jffs2fsrdwr.yml b/spec/build/testsuites/fstests/jffs2fsrdwr.yml
new file mode 100644
index 0000000000..152f102ae6
--- /dev/null
+++ b/spec/build/testsuites/fstests/jffs2fsrdwr.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrdwr/init.c
+stlib:
+- jffs2
+target: testsuites/fstests/jffs2_fsrdwr.exe
+type: build
+use-after: []
+use-before:
+- testjffs2
diff --git a/spec/build/testsuites/fstests/jffs2fsscandir01.yml b/spec/build/testsuites/fstests/jffs2fsscandir01.yml
new file mode 100644
index 0000000000..48de404099
--- /dev/null
+++ b/spec/build/testsuites/fstests/jffs2fsscandir01.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsscandir01/init.c
+stlib:
+- jffs2
+target: testsuites/fstests/jffs2_fsscandir01.exe
+type: build
+use-after: []
+use-before:
+- testjffs2
diff --git a/spec/build/testsuites/fstests/jffs2fssymlink.yml b/spec/build/testsuites/fstests/jffs2fssymlink.yml
new file mode 100644
index 0000000000..69fff0805e
--- /dev/null
+++ b/spec/build/testsuites/fstests/jffs2fssymlink.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fssymlink/test.c
+stlib:
+- jffs2
+target: testsuites/fstests/jffs2_fssymlink.exe
+type: build
+use-after: []
+use-before:
+- testjffs2
diff --git a/spec/build/testsuites/fstests/jffs2fstime.yml b/spec/build/testsuites/fstests/jffs2fstime.yml
new file mode 100644
index 0000000000..5af33c4d15
--- /dev/null
+++ b/spec/build/testsuites/fstests/jffs2fstime.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/jffs2_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fstime/test.c
+stlib:
+- jffs2
+target: testsuites/fstests/jffs2_fstime.exe
+type: build
+use-after: []
+use-before:
+- testjffs2
diff --git a/spec/build/testsuites/fstests/libdosfs.yml b/spec/build/testsuites/fstests/libdosfs.yml
new file mode 100644
index 0000000000..b52edee0f7
--- /dev/null
+++ b/spec/build/testsuites/fstests/libdosfs.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes:
+- testsuites/fstests/mdosfs_support
+install: []
+install-path: null
+links: []
+source:
+- testsuites/fstests/mdosfs_support/fs_support.c
+- testsuites/fstests/support/fstest_support.c
+- testsuites/fstests/support/ramdisk_support.c
+target: testdosfs
+type: build
diff --git a/spec/build/testsuites/fstests/libimfs.yml b/spec/build/testsuites/fstests/libimfs.yml
new file mode 100644
index 0000000000..cbe01559cb
--- /dev/null
+++ b/spec/build/testsuites/fstests/libimfs.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes:
+- testsuites/fstests/imfs_support
+install: []
+install-path: null
+links: []
+source:
+- testsuites/fstests/imfs_support/fs_support.c
+- testsuites/fstests/support/fstest_support.c
+target: testimfs
+type: build
diff --git a/spec/build/testsuites/fstests/libjffs2.yml b/spec/build/testsuites/fstests/libjffs2.yml
new file mode 100644
index 0000000000..eb6a6b8206
--- /dev/null
+++ b/spec/build/testsuites/fstests/libjffs2.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes:
+- testsuites/fstests/jffs2_support
+install: []
+install-path: null
+links: []
+source:
+- testsuites/fstests/jffs2_support/fs_support.c
+- testsuites/fstests/support/fstest_support.c
+target: testjffs2
+type: build
diff --git a/spec/build/testsuites/fstests/libmimfs.yml b/spec/build/testsuites/fstests/libmimfs.yml
new file mode 100644
index 0000000000..d0486b3cb2
--- /dev/null
+++ b/spec/build/testsuites/fstests/libmimfs.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes:
+- testsuites/fstests/mimfs_support
+install: []
+install-path: null
+links: []
+source:
+- testsuites/fstests/mimfs_support/fs_support.c
+- testsuites/fstests/support/fstest_support.c
+target: testmimfs
+type: build
diff --git a/spec/build/testsuites/fstests/librfs.yml b/spec/build/testsuites/fstests/librfs.yml
new file mode 100644
index 0000000000..830dfa12fe
--- /dev/null
+++ b/spec/build/testsuites/fstests/librfs.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes:
+- testsuites/fstests/mrfs_support
+install: []
+install-path: null
+links: []
+source:
+- testsuites/fstests/mrfs_support/fs_support.c
+- testsuites/fstests/support/fstest_support.c
+- testsuites/fstests/support/ramdisk_support.c
+target: testrfs
+type: build
diff --git a/spec/build/testsuites/fstests/mdosfsfserror.yml b/spec/build/testsuites/fstests/mdosfsfserror.yml
new file mode 100644
index 0000000000..0ac2ac8fea
--- /dev/null
+++ b/spec/build/testsuites/fstests/mdosfsfserror.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mdosfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fserror/test.c
+stlib: []
+target: testsuites/fstests/mdosfs_fserror.exe
+type: build
+use-after: []
+use-before:
+- testdosfs
diff --git a/spec/build/testsuites/fstests/mdosfsfspatheval.yml b/spec/build/testsuites/fstests/mdosfsfspatheval.yml
new file mode 100644
index 0000000000..656960987b
--- /dev/null
+++ b/spec/build/testsuites/fstests/mdosfsfspatheval.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mdosfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspatheval/test.c
+stlib: []
+target: testsuites/fstests/mdosfs_fspatheval.exe
+type: build
+use-after: []
+use-before:
+- testdosfs
diff --git a/spec/build/testsuites/fstests/mdosfsfsrdwr.yml b/spec/build/testsuites/fstests/mdosfsfsrdwr.yml
new file mode 100644
index 0000000000..36f9389e3d
--- /dev/null
+++ b/spec/build/testsuites/fstests/mdosfsfsrdwr.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mdosfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrdwr/init.c
+stlib: []
+target: testsuites/fstests/mdosfs_fsrdwr.exe
+type: build
+use-after: []
+use-before:
+- testdosfs
diff --git a/spec/build/testsuites/fstests/mdosfsfsscandir01.yml b/spec/build/testsuites/fstests/mdosfsfsscandir01.yml
new file mode 100644
index 0000000000..2b5ab695d4
--- /dev/null
+++ b/spec/build/testsuites/fstests/mdosfsfsscandir01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mdosfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsscandir01/init.c
+stlib: []
+target: testsuites/fstests/mdosfs_fsscandir01.exe
+type: build
+use-after: []
+use-before:
+- testdosfs
diff --git a/spec/build/testsuites/fstests/mdosfsfsstatvfs.yml b/spec/build/testsuites/fstests/mdosfsfsstatvfs.yml
new file mode 100644
index 0000000000..34011bcc47
--- /dev/null
+++ b/spec/build/testsuites/fstests/mdosfsfsstatvfs.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mdosfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsstatvfs/test.c
+stlib: []
+target: testsuites/fstests/mdosfs_fsstatvfs.exe
+type: build
+use-after: []
+use-before:
+- testdosfs
diff --git a/spec/build/testsuites/fstests/mdosfsfstime.yml b/spec/build/testsuites/fstests/mdosfsfstime.yml
new file mode 100644
index 0000000000..fd4cf68ddb
--- /dev/null
+++ b/spec/build/testsuites/fstests/mdosfsfstime.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mdosfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fstime/test.c
+stlib: []
+target: testsuites/fstests/mdosfs_fstime.exe
+type: build
+use-after: []
+use-before:
+- testdosfs
diff --git a/spec/build/testsuites/fstests/mimfsfserror.yml b/spec/build/testsuites/fstests/mimfsfserror.yml
new file mode 100644
index 0000000000..d16d784c88
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfserror.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fserror/test.c
+stlib: []
+target: testsuites/fstests/mimfs_fserror.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mimfsfslink.yml b/spec/build/testsuites/fstests/mimfsfslink.yml
new file mode 100644
index 0000000000..dfbcde5fc6
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfslink.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fslink/test.c
+stlib: []
+target: testsuites/fstests/mimfs_fslink.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mimfsfspatheval.yml b/spec/build/testsuites/fstests/mimfsfspatheval.yml
new file mode 100644
index 0000000000..67a36a5b2c
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfspatheval.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspatheval/test.c
+stlib: []
+target: testsuites/fstests/mimfs_fspatheval.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mimfsfspermission.yml b/spec/build/testsuites/fstests/mimfsfspermission.yml
new file mode 100644
index 0000000000..3257b36bbf
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfspermission.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspermission/test.c
+stlib: []
+target: testsuites/fstests/mimfs_fspermission.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mimfsfsrdwr.yml b/spec/build/testsuites/fstests/mimfsfsrdwr.yml
new file mode 100644
index 0000000000..bf343a5bcd
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfsrdwr.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrdwr/init.c
+stlib: []
+target: testsuites/fstests/mimfs_fsrdwr.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mimfsfsrename.yml b/spec/build/testsuites/fstests/mimfsfsrename.yml
new file mode 100644
index 0000000000..b8ad300e22
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfsrename.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrename/test.c
+stlib: []
+target: testsuites/fstests/mimfs_fsrename.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mimfsfsscandir01.yml b/spec/build/testsuites/fstests/mimfsfsscandir01.yml
new file mode 100644
index 0000000000..d7335300ae
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfsscandir01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsscandir01/init.c
+stlib: []
+target: testsuites/fstests/mimfs_fsscandir01.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mimfsfssymlink.yml b/spec/build/testsuites/fstests/mimfsfssymlink.yml
new file mode 100644
index 0000000000..84b2cdd737
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfssymlink.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fssymlink/test.c
+stlib: []
+target: testsuites/fstests/mimfs_fssymlink.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mimfsfstime.yml b/spec/build/testsuites/fstests/mimfsfstime.yml
new file mode 100644
index 0000000000..1b1df5e62b
--- /dev/null
+++ b/spec/build/testsuites/fstests/mimfsfstime.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mimfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fstime/test.c
+stlib: []
+target: testsuites/fstests/mimfs_fstime.exe
+type: build
+use-after: []
+use-before:
+- testmimfs
diff --git a/spec/build/testsuites/fstests/mrfsfserror.yml b/spec/build/testsuites/fstests/mrfsfserror.yml
new file mode 100644
index 0000000000..6cf95388f6
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfserror.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fserror/test.c
+stlib: []
+target: testsuites/fstests/mrfs_fserror.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfsfpathconf.yml b/spec/build/testsuites/fstests/mrfsfsfpathconf.yml
new file mode 100644
index 0000000000..d87c5eca5b
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfsfpathconf.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsfpathconf/test.c
+stlib: []
+target: testsuites/fstests/mrfs_fsfpathconf.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfslink.yml b/spec/build/testsuites/fstests/mrfsfslink.yml
new file mode 100644
index 0000000000..9d22ced2ef
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfslink.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fslink/test.c
+stlib: []
+target: testsuites/fstests/mrfs_fslink.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfspatheval.yml b/spec/build/testsuites/fstests/mrfsfspatheval.yml
new file mode 100644
index 0000000000..a8f359569e
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfspatheval.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspatheval/test.c
+stlib: []
+target: testsuites/fstests/mrfs_fspatheval.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfspermission.yml b/spec/build/testsuites/fstests/mrfsfspermission.yml
new file mode 100644
index 0000000000..8755a9ba52
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfspermission.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fspermission/test.c
+stlib: []
+target: testsuites/fstests/mrfs_fspermission.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfsrdwr.yml b/spec/build/testsuites/fstests/mrfsfsrdwr.yml
new file mode 100644
index 0000000000..e3a21f4acf
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfsrdwr.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrdwr/init.c
+stlib: []
+target: testsuites/fstests/mrfs_fsrdwr.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfsrename.yml b/spec/build/testsuites/fstests/mrfsfsrename.yml
new file mode 100644
index 0000000000..c997ee4104
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfsrename.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsrename/test.c
+stlib: []
+target: testsuites/fstests/mrfs_fsrename.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfsscandir01.yml b/spec/build/testsuites/fstests/mrfsfsscandir01.yml
new file mode 100644
index 0000000000..98b88d09f9
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfsscandir01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fsscandir01/init.c
+stlib: []
+target: testsuites/fstests/mrfs_fsscandir01.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfssymlink.yml b/spec/build/testsuites/fstests/mrfsfssymlink.yml
new file mode 100644
index 0000000000..dd2906f30f
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfssymlink.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fssymlink/test.c
+stlib: []
+target: testsuites/fstests/mrfs_fssymlink.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/fstests/mrfsfstime.yml b/spec/build/testsuites/fstests/mrfsfstime.yml
new file mode 100644
index 0000000000..84051632f5
--- /dev/null
+++ b/spec/build/testsuites/fstests/mrfsfstime.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/fstests/mrfs_support
+ldflags: []
+links: []
+source:
+- testsuites/fstests/fstime/test.c
+stlib: []
+target: testsuites/fstests/mrfs_fstime.exe
+type: build
+use-after: []
+use-before:
+- testrfs
diff --git a/spec/build/testsuites/grp.yml b/spec/build/testsuites/grp.yml
new file mode 100644
index 0000000000..ec2b6c616b
--- /dev/null
+++ b/spec/build/testsuites/grp.yml
@@ -0,0 +1,65 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+includes:
+- ${BSP_INCLUDES}
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: optada
+- role: build-dependency
+ uid: optall
+- role: build-dependency
+ uid: optbenchmarks
+- role: build-dependency
+ uid: optfs
+- role: build-dependency
+ uid: optlib
+- role: build-dependency
+ uid: optmp
+- role: build-dependency
+ uid: optpsx
+- role: build-dependency
+ uid: optpsxtm
+- role: build-dependency
+ uid: optrhs
+- role: build-dependency
+ uid: optsamples
+- role: build-dependency
+ uid: optsmp
+- role: build-dependency
+ uid: optsp
+- role: build-dependency
+ uid: opttm
+- role: build-dependency
+ uid: ada/grp
+- role: build-dependency
+ uid: benchmarks/grp
+- role: build-dependency
+ uid: fstests/grp
+- role: build-dependency
+ uid: libtests/grp
+- role: build-dependency
+ uid: mptests/grp
+- role: build-dependency
+ uid: psxtests/grp
+- role: build-dependency
+ uid: psxtmtests/grp
+- role: build-dependency
+ uid: rhealstone/grp
+- role: build-dependency
+ uid: samples/grp
+- role: build-dependency
+ uid: smptests/grp
+- role: build-dependency
+ uid: sptests/grp
+- role: build-dependency
+ uid: tmtests/grp
+type: build
+use-after:
+- rtemscpu
+- rtemsbsp
+use-before: []
diff --git a/spec/build/testsuites/libtests/block01.yml b/spec/build/testsuites/libtests/block01.yml
new file mode 100644
index 0000000000..8b3bfac582
--- /dev/null
+++ b/spec/build/testsuites/libtests/block01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block01/init.c
+stlib: []
+target: testsuites/libtests/block01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block02.yml b/spec/build/testsuites/libtests/block02.yml
new file mode 100644
index 0000000000..89087ae5b3
--- /dev/null
+++ b/spec/build/testsuites/libtests/block02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block02/init.c
+stlib: []
+target: testsuites/libtests/block02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block03.yml b/spec/build/testsuites/libtests/block03.yml
new file mode 100644
index 0000000000..7377adb8b3
--- /dev/null
+++ b/spec/build/testsuites/libtests/block03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block03/init.c
+stlib: []
+target: testsuites/libtests/block03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block04.yml b/spec/build/testsuites/libtests/block04.yml
new file mode 100644
index 0000000000..07aa89a67e
--- /dev/null
+++ b/spec/build/testsuites/libtests/block04.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block04/init.c
+stlib: []
+target: testsuites/libtests/block04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block05.yml b/spec/build/testsuites/libtests/block05.yml
new file mode 100644
index 0000000000..79e46a9310
--- /dev/null
+++ b/spec/build/testsuites/libtests/block05.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block05/init.c
+stlib: []
+target: testsuites/libtests/block05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block06.yml b/spec/build/testsuites/libtests/block06.yml
new file mode 100644
index 0000000000..97e503080f
--- /dev/null
+++ b/spec/build/testsuites/libtests/block06.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block06/init.c
+stlib: []
+target: testsuites/libtests/block06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block07.yml b/spec/build/testsuites/libtests/block07.yml
new file mode 100644
index 0000000000..1d5c85077c
--- /dev/null
+++ b/spec/build/testsuites/libtests/block07.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block07/init.c
+stlib: []
+target: testsuites/libtests/block07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block08.yml b/spec/build/testsuites/libtests/block08.yml
new file mode 100644
index 0000000000..34f201e449
--- /dev/null
+++ b/spec/build/testsuites/libtests/block08.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block08/init.c
+- testsuites/libtests/block08/bdbuf_tests.c
+- testsuites/libtests/block08/test_disk.c
+- testsuites/libtests/block08/bdbuf_test1_1.c
+- testsuites/libtests/block08/bdbuf_test1_2.c
+- testsuites/libtests/block08/bdbuf_test1_3.c
+- testsuites/libtests/block08/bdbuf_test1_4.c
+- testsuites/libtests/block08/bdbuf_test1_5.c
+- testsuites/libtests/block08/bdbuf_test2_1.c
+- testsuites/libtests/block08/bdbuf_test2_2.c
+- testsuites/libtests/block08/bdbuf_test3_1.c
+- testsuites/libtests/block08/bdbuf_test3_2.c
+- testsuites/libtests/block08/bdbuf_test3_3.c
+- testsuites/libtests/block08/bdbuf_test4_1.c
+- testsuites/libtests/block08/bdbuf_test4_2.c
+- testsuites/libtests/block08/bdbuf_test4_3.c
+stlib: []
+target: testsuites/libtests/block08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block09.yml b/spec/build/testsuites/libtests/block09.yml
new file mode 100644
index 0000000000..acd76712e5
--- /dev/null
+++ b/spec/build/testsuites/libtests/block09.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block09/init.c
+stlib: []
+target: testsuites/libtests/block09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block10.yml b/spec/build/testsuites/libtests/block10.yml
new file mode 100644
index 0000000000..fa2a381b13
--- /dev/null
+++ b/spec/build/testsuites/libtests/block10.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block10/init.c
+stlib: []
+target: testsuites/libtests/block10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block11.yml b/spec/build/testsuites/libtests/block11.yml
new file mode 100644
index 0000000000..ece975ccd8
--- /dev/null
+++ b/spec/build/testsuites/libtests/block11.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block11/init.c
+stlib: []
+target: testsuites/libtests/block11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block12.yml b/spec/build/testsuites/libtests/block12.yml
new file mode 100644
index 0000000000..50a0986bc0
--- /dev/null
+++ b/spec/build/testsuites/libtests/block12.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block12/init.c
+stlib: []
+target: testsuites/libtests/block12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block13.yml b/spec/build/testsuites/libtests/block13.yml
new file mode 100644
index 0000000000..2e3ae98c03
--- /dev/null
+++ b/spec/build/testsuites/libtests/block13.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block13/init.c
+stlib: []
+target: testsuites/libtests/block13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block14.yml b/spec/build/testsuites/libtests/block14.yml
new file mode 100644
index 0000000000..01f35c78bb
--- /dev/null
+++ b/spec/build/testsuites/libtests/block14.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block14/init.c
+stlib: []
+target: testsuites/libtests/block14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block15.yml b/spec/build/testsuites/libtests/block15.yml
new file mode 100644
index 0000000000..e9dcb846ff
--- /dev/null
+++ b/spec/build/testsuites/libtests/block15.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block15/init.c
+stlib: []
+target: testsuites/libtests/block15.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block16.yml b/spec/build/testsuites/libtests/block16.yml
new file mode 100644
index 0000000000..4ab8510a25
--- /dev/null
+++ b/spec/build/testsuites/libtests/block16.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block16/init.c
+stlib: []
+target: testsuites/libtests/block16.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/block17.yml b/spec/build/testsuites/libtests/block17.yml
new file mode 100644
index 0000000000..e64af2d4c2
--- /dev/null
+++ b/spec/build/testsuites/libtests/block17.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/block17/init.c
+stlib: []
+target: testsuites/libtests/block17.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/bspcmdline01.yml b/spec/build/testsuites/libtests/bspcmdline01.yml
new file mode 100644
index 0000000000..9c63ce2805
--- /dev/null
+++ b/spec/build/testsuites/libtests/bspcmdline01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/bspcmdline01/init.c
+stlib: []
+target: testsuites/libtests/bspcmdline01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/calloc.yml b/spec/build/testsuites/libtests/calloc.yml
new file mode 100644
index 0000000000..473e3039d0
--- /dev/null
+++ b/spec/build/testsuites/libtests/calloc.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/calloc.c
+stlib: []
+target: testsuites/libtests/calloc.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/capture01.yml b/spec/build/testsuites/libtests/capture01.yml
new file mode 100644
index 0000000000..50a69abf96
--- /dev/null
+++ b/spec/build/testsuites/libtests/capture01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/capture01/init.c
+- testsuites/libtests/capture01/test1.c
+stlib: []
+target: testsuites/libtests/capture01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/clockgettime.yml b/spec/build/testsuites/libtests/clockgettime.yml
new file mode 100644
index 0000000000..1810d3f40f
--- /dev/null
+++ b/spec/build/testsuites/libtests/clockgettime.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/clock_gettime.c
+stlib: []
+target: testsuites/libtests/clock_gettime.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/close.yml b/spec/build/testsuites/libtests/close.yml
new file mode 100644
index 0000000000..a6c853ce57
--- /dev/null
+++ b/spec/build/testsuites/libtests/close.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/close.c
+stlib: []
+target: testsuites/libtests/close.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/complex.yml b/spec/build/testsuites/libtests/complex.yml
new file mode 100644
index 0000000000..cda1511b3a
--- /dev/null
+++ b/spec/build/testsuites/libtests/complex.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/complex/init.c
+- testsuites/libtests/complex/docomplex.c
+- testsuites/libtests/complex/docomplexf.c
+- testsuites/libtests/complex/docomplexl.c
+stlib:
+- m
+target: testsuites/libtests/complex.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/cpuuse.yml b/spec/build/testsuites/libtests/cpuuse.yml
new file mode 100644
index 0000000000..f606d994fd
--- /dev/null
+++ b/spec/build/testsuites/libtests/cpuuse.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/cpuuse/init.c
+- testsuites/libtests/cpuuse/task1.c
+- testsuites/libtests/cpuuse/task2.c
+- testsuites/libtests/cpuuse/task3.c
+- testsuites/libtests/cpuuse/tswitch.c
+stlib: []
+target: testsuites/libtests/cpuuse.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/crypt01.yml b/spec/build/testsuites/libtests/crypt01.yml
new file mode 100644
index 0000000000..a1df725647
--- /dev/null
+++ b/spec/build/testsuites/libtests/crypt01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/crypt01/init.c
+stlib: []
+target: testsuites/libtests/crypt01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/debugger01.yml b/spec/build/testsuites/libtests/debugger01.yml
new file mode 100644
index 0000000000..720b643925
--- /dev/null
+++ b/spec/build/testsuites/libtests/debugger01.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- arm
+- i386
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/debugger01/init.c
+- testsuites/libtests/debugger01/remote.c
+stlib: []
+target: testsuites/libtests/debugger01.exe
+type: build
+use-after:
+- debugger
+use-before: []
diff --git a/spec/build/testsuites/libtests/defaultconfig01.yml b/spec/build/testsuites/libtests/defaultconfig01.yml
new file mode 100644
index 0000000000..583da914d7
--- /dev/null
+++ b/spec/build/testsuites/libtests/defaultconfig01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/defaultconfig01/init.c
+stlib: []
+target: testsuites/libtests/defaultconfig01.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/devfs01.yml b/spec/build/testsuites/libtests/devfs01.yml
new file mode 100644
index 0000000000..660ec12074
--- /dev/null
+++ b/spec/build/testsuites/libtests/devfs01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/devfs01/init.c
+stlib: []
+target: testsuites/libtests/devfs01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/devfs04.yml b/spec/build/testsuites/libtests/devfs04.yml
new file mode 100644
index 0000000000..8ad0c038f1
--- /dev/null
+++ b/spec/build/testsuites/libtests/devfs04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/devfs04/init.c
+- testsuites/libtests/devfs04/test_driver.c
+stlib: []
+target: testsuites/libtests/devfs04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/deviceio01.yml b/spec/build/testsuites/libtests/deviceio01.yml
new file mode 100644
index 0000000000..a5ab0c5bdb
--- /dev/null
+++ b/spec/build/testsuites/libtests/deviceio01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/deviceio01/init.c
+- testsuites/libtests/deviceio01/test_driver.c
+stlib: []
+target: testsuites/libtests/deviceio01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/devnullfatal01.yml b/spec/build/testsuites/libtests/devnullfatal01.yml
new file mode 100644
index 0000000000..b9a4d326fb
--- /dev/null
+++ b/spec/build/testsuites/libtests/devnullfatal01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/devnullfatal01/init.c
+stlib: []
+target: testsuites/libtests/devnullfatal01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl01.yml b/spec/build/testsuites/libtests/dl01.yml
new file mode 100644
index 0000000000..42e482bcc7
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl01.yml
@@ -0,0 +1,38 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/dl01/"
+ objs = []
+ objs.append(self.cc(bld, bic, path + "dl01-o1.c"))
+ tar = path + "dl01.tar"
+ self.pax(bld, objs, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL01_CPPFLAGS))
+ objs.append(self.cc(bld, bic, path + "dl-load.c"))
+ dl01_pre = path + "dl01.pre"
+ self.link_cc(bld, bic, objs, dl01_pre)
+ dl01_sym_o = path + "dl01-sym.o"
+ objs.append(dl01_sym_o)
+ self.rtems_syms(bld, dl01_pre, dl01_sym_o)
+ self.link_cc(bld, bic, objs, "testsuites/libtests/dl01.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL01_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl01
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl02.yml b/spec/build/testsuites/libtests/dl02.yml
new file mode 100644
index 0000000000..83bc4d159c
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl02.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/dl02/"
+ objs = []
+ objs.append(self.cc(bld, bic, path + "dl02-o1.c"))
+ objs.append(self.cc(bld, bic, path + "dl02-o2.c"))
+ tar = path + "dl02.tar"
+ self.pax(bld, objs, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL02_CPPFLAGS))
+ objs.append(self.cc(bld, bic, path + "dl-load.c"))
+ dl02_pre = path + "dl02.pre"
+ self.link_cc(bld, bic, objs, dl02_pre)
+ dl02_sym_o = path + "dl02-sym.o"
+ objs.append(dl02_sym_o)
+ self.rtems_syms(bld, dl02_pre, dl02_sym_o)
+ self.link_cc(bld, bic, objs, "testsuites/libtests/dl02.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL02_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl02
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl03.yml b/spec/build/testsuites/libtests/dl03.yml
new file mode 100644
index 0000000000..68b575b3f4
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl03.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- BUILD_LIBDL
+features: c cprogram
+includes:
+- cpukit/libdl
+ldflags: []
+links: []
+source:
+- testsuites/libtests/dl03/dl-bit-alloc.c
+- testsuites/libtests/dl03/dl-cache.c
+- testsuites/libtests/dl03/init.c
+stlib: []
+target: testsuites/libtests/dl03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl04.yml b/spec/build/testsuites/libtests/dl04.yml
new file mode 100644
index 0000000000..8957f9eb40
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl04.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+do-build: |
+ path = "testsuites/libtests/dl04/"
+ objs = []
+ objs.append(self.cxx(bld, bic, path + "dl04-o4.cc"))
+ tar = path + "dl04.tar"
+ self.pax(bld, objs, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL04_CPPFLAGS))
+ objs.append(self.cc(bld, bic, path + "dl-load.c"))
+ dl04_pre = path + "dl04.pre"
+ self.link_cc(bld, bic, objs, dl04_pre)
+ dl04_sym_o = path + "dl04-sym.o"
+ objs.append(dl04_sym_o)
+ self.rtems_syms(bld, dl04_pre, dl04_sym_o)
+ self.link_cc(bld, bic, objs, "testsuites/libtests/dl04.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL04_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl04
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl05.yml b/spec/build/testsuites/libtests/dl05.yml
new file mode 100644
index 0000000000..3e049dce29
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl05.yml
@@ -0,0 +1,40 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+do-build: |
+ path = "testsuites/libtests/dl05/"
+ objs = []
+ objs.append(self.cxx(bld, bic, path + "dl05-o5.cc"))
+ tar = path + "dl05.tar"
+ self.pax(bld, objs, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL05_CPPFLAGS))
+ objs.append(self.cxx(bld, bic, path + "dl-cpp.cc"))
+ objs.append(self.cc(bld, bic, path + "dl-load.c"))
+ dl05_pre = path + "dl05.pre"
+ self.link_cxx(bld, bic, objs, dl05_pre)
+ dl05_sym_o = path + "dl05-sym.o"
+ objs.append(dl05_sym_o)
+ self.rtems_syms(bld, dl05_pre, dl05_sym_o)
+ self.link_cxx(bld, bic, objs, "testsuites/libtests/dl05.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL05_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl05
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl06.yml b/spec/build/testsuites/libtests/dl06.yml
new file mode 100644
index 0000000000..cd19712b42
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl06.yml
@@ -0,0 +1,48 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/dl06/"
+ pre_tar = path + "dl06-pre.tar"
+ self.pax(bld, path + "dl06_pre_file", [path], pre_tar)
+ pre_tar_c, pre_tar_h = self.bin2c(bld, pre_tar, name="dl06_tar")
+ objs = []
+ objs.append(self.cc(bld, bic, pre_tar_c))
+ objs.append(self.cc(bld, bic, path + "pre-init.c", deps=[pre_tar_h], cppflags=bld.env.TEST_DL06_CPPFLAGS))
+ dl_load_o = self.cc(bld, bic, path + "dl-load.c")
+ objs.append(dl_load_o)
+ dl06_pre = path + "dl06.pre"
+ self.link_cc(bld, bic, objs, dl06_pre)
+ objs = []
+ objs.append(self.cc(bld, bic, path + "dl06-o1.c"))
+ objs.append(self.cc(bld, bic, path + "dl06-o2.c"))
+ dl06_rap = path + "dl06.rap"
+ self.rtems_rap(bld, dl06_pre, objs, ["m"], dl06_rap)
+ tar = path + "dl06.tar"
+ self.pax(bld, dl06_rap, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL06_CPPFLAGS))
+ objs.append(dl_load_o)
+ dl06_sym_o = path + "dl06-sym.o"
+ objs.append(dl06_sym_o)
+ self.rtems_syms(bld, dl06_pre, dl06_sym_o)
+ self.link_cc(bld, bic, objs, "testsuites/libtests/dl06.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL06_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl06
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl07.yml b/spec/build/testsuites/libtests/dl07.yml
new file mode 100644
index 0000000000..3641086b62
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl07.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/dl07/"
+ objs = []
+ objs.append(self.cc(bld, bic, path + "dl07-o1.c"))
+ objs.append(self.cc(bld, bic, path + "dl07-o2.c"))
+ objs.append(self.cc(bld, bic, path + "dl07-o3.c"))
+ objs.append(self.cc(bld, bic, path + "dl07-o4.c"))
+ objs.append(self.cc(bld, bic, path + "dl07-o5.c"))
+ tar = path + "dl07.tar"
+ self.pax(bld, objs, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL07_CPPFLAGS))
+ objs.append(self.cc(bld, bic, path + "dl-load.c"))
+ dl07_pre = path + "dl07.pre"
+ self.link_cc(bld, bic, objs, dl07_pre)
+ dl07_sym_o = path + "dl07-sym.o"
+ objs.append(dl07_sym_o)
+ self.rtems_syms(bld, dl07_pre, dl07_sym_o)
+ self.link_cc(bld, bic, objs, "testsuites/libtests/dl07.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL07_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl07
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl08.yml b/spec/build/testsuites/libtests/dl08.yml
new file mode 100644
index 0000000000..43a74e3065
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl08.yml
@@ -0,0 +1,47 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/dl08/"
+ objs = []
+ lib_objs = []
+ lib_objs.append(self.cc(bld, bic, path + "dl08-o2.c"))
+ lib_objs.append(self.cc(bld, bic, path + "dl08-o4.c"))
+ objs.append(self.ar(bld, lib_objs, path + "libdl08_1.a"))
+ lib_objs = []
+ lib_objs.append(self.cc(bld, bic, path + "dl08-o3.c"))
+ lib_objs.append(self.cc(bld, bic, path + "dl08-o5.c"))
+ lib_objs.append(self.cc(bld, bic, path + "dl08-o6-123456789-123456789.c"))
+ objs.append(self.ar(bld, lib_objs, path + "libdl08_2.a"))
+ objs.append(self.cc(bld, bic, path + "dl08-o1.c"))
+ tar = path + "dl08.tar"
+ self.pax(bld, [path + "etc/libdl.conf"] + objs, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL08_CPPFLAGS))
+ objs.append(self.cc(bld, bic, path + "dl-load.c"))
+ dl08_pre = path + "dl08.pre"
+ self.link_cc(bld, bic, objs, dl08_pre)
+ dl08_sym_o = path + "dl08-sym.o"
+ objs.append(dl08_sym_o)
+ self.rtems_syms(bld, dl08_pre, dl08_sym_o)
+ self.link_cc(bld, bic, objs, "testsuites/libtests/dl08.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL08_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl08
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl09.yml b/spec/build/testsuites/libtests/dl09.yml
new file mode 100644
index 0000000000..8f9557edc6
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl09.yml
@@ -0,0 +1,42 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/dl09/"
+ objs = []
+ objs.append(self.cc(bld, bic, path + "dl09-o1.c"))
+ objs.append(self.cc(bld, bic, path + "dl09-o2.c"))
+ objs.append(self.cc(bld, bic, path + "dl09-o3.c"))
+ objs.append(self.cc(bld, bic, path + "dl09-o4.c"))
+ objs.append(self.cc(bld, bic, path + "dl09-o5.c"))
+ tar = path + "dl09.tar"
+ self.pax(bld, objs, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL09_CPPFLAGS))
+ objs.append(self.cc(bld, bic, path + "dl-load.c"))
+ dl09_pre = path + "dl09.pre"
+ self.link_cc(bld, bic, objs, dl09_pre)
+ dl09_sym_o = path + "dl09-sym.o"
+ objs.append(dl09_sym_o)
+ self.rtems_syms(bld, dl09_pre, dl09_sym_o)
+ self.link_cc(bld, bic, objs, "testsuites/libtests/dl09.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL09_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl09
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dl10.yml b/spec/build/testsuites/libtests/dl10.yml
new file mode 100644
index 0000000000..ba09a6f444
--- /dev/null
+++ b/spec/build/testsuites/libtests/dl10.yml
@@ -0,0 +1,47 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/dl10/"
+ objs = []
+ lib_objs = []
+ lib_objs.append(self.cc(bld, bic, path + "dl10-o2.c"))
+ lib_objs.append(self.cc(bld, bic, path + "dl10-o4.c"))
+ objs.append(self.ar(bld, lib_objs, path + "libdl10_1.a"))
+ lib_objs = []
+ lib_objs.append(self.cc(bld, bic, path + "dl10-o3.c"))
+ lib_objs.append(self.cc(bld, bic, path + "dl10-o5.c"))
+ lib_objs.append(self.cc(bld, bic, path + "dl10-o6.c"))
+ objs.append(self.ar(bld, lib_objs, path + "libdl10_2.a"))
+ objs.append(self.cc(bld, bic, path + "dl10-o1.c"))
+ tar = path + "dl10.tar"
+ self.pax(bld, [path + "etc/libdl.conf"] + objs, [path], tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_DL10_CPPFLAGS))
+ objs.append(self.cc(bld, bic, path + "dl-load.c"))
+ dl10_pre = path + "dl10.pre"
+ self.link_cc(bld, bic, objs, dl10_pre)
+ dl10_sym_o = path + "dl10-sym.o"
+ objs.append(dl10_sym_o)
+ self.rtems_syms(bld, dl10_pre, dl10_sym_o)
+ self.link_cc(bld, bic, objs, "testsuites/libtests/dl10.exe")
+do-configure: null
+enabled-by:
+- and:
+ - not: TEST_DL10_EXCLUDE
+ - BUILD_LIBDL
+includes:
+- testsuites/libtests/dl10
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dumpbuf01.yml b/spec/build/testsuites/libtests/dumpbuf01.yml
new file mode 100644
index 0000000000..6612744795
--- /dev/null
+++ b/spec/build/testsuites/libtests/dumpbuf01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/dumpbuf01/init.c
+stlib: []
+target: testsuites/libtests/dumpbuf01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/dup2.yml b/spec/build/testsuites/libtests/dup2.yml
new file mode 100644
index 0000000000..b7c687f721
--- /dev/null
+++ b/spec/build/testsuites/libtests/dup2.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/dup2.c
+stlib: []
+target: testsuites/libtests/dup2.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/exit01.yml b/spec/build/testsuites/libtests/exit01.yml
new file mode 100644
index 0000000000..843a5274b7
--- /dev/null
+++ b/spec/build/testsuites/libtests/exit01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/exit01/init.c
+stlib: []
+target: testsuites/libtests/exit01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/exit02.yml b/spec/build/testsuites/libtests/exit02.yml
new file mode 100644
index 0000000000..dd5dda27db
--- /dev/null
+++ b/spec/build/testsuites/libtests/exit02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/exit02/init.c
+stlib: []
+target: testsuites/libtests/exit02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/fcntl.yml b/spec/build/testsuites/libtests/fcntl.yml
new file mode 100644
index 0000000000..7acd929c31
--- /dev/null
+++ b/spec/build/testsuites/libtests/fcntl.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/fcntl.c
+stlib: []
+target: testsuites/libtests/fcntl.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/flashdisk01.yml b/spec/build/testsuites/libtests/flashdisk01.yml
new file mode 100644
index 0000000000..a20f37a8c4
--- /dev/null
+++ b/spec/build/testsuites/libtests/flashdisk01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/flashdisk01/init.c
+- testsuites/libtests/flashdisk01/test-file-system.c
+stlib: []
+target: testsuites/libtests/flashdisk01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/flockfile.yml b/spec/build/testsuites/libtests/flockfile.yml
new file mode 100644
index 0000000000..2a91885494
--- /dev/null
+++ b/spec/build/testsuites/libtests/flockfile.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/flockfile.c
+stlib: []
+target: testsuites/libtests/flockfile.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/fork.yml b/spec/build/testsuites/libtests/fork.yml
new file mode 100644
index 0000000000..13799d20bf
--- /dev/null
+++ b/spec/build/testsuites/libtests/fork.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/fork.c
+stlib: []
+target: testsuites/libtests/fork.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/free.yml b/spec/build/testsuites/libtests/free.yml
new file mode 100644
index 0000000000..bbc5ee340e
--- /dev/null
+++ b/spec/build/testsuites/libtests/free.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/free.c
+stlib: []
+target: testsuites/libtests/free.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/fstat.yml b/spec/build/testsuites/libtests/fstat.yml
new file mode 100644
index 0000000000..8b4b506596
--- /dev/null
+++ b/spec/build/testsuites/libtests/fstat.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/fstat.c
+stlib: []
+target: testsuites/libtests/fstat.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/ftp01.yml b/spec/build/testsuites/libtests/ftp01.yml
new file mode 100644
index 0000000000..2b19573bf7
--- /dev/null
+++ b/spec/build/testsuites/libtests/ftp01.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+features: c cprogram
+includes:
+- cpukit/libnetworking
+ldflags: []
+links: []
+source:
+- testsuites/libtests/ftp01/init.c
+stlib: []
+target: testsuites/libtests/ftp01.exe
+type: build
+use-after:
+- ftpd
+- ftpfs
+use-before: []
diff --git a/spec/build/testsuites/libtests/ftrylockfile.yml b/spec/build/testsuites/libtests/ftrylockfile.yml
new file mode 100644
index 0000000000..6a3935b71b
--- /dev/null
+++ b/spec/build/testsuites/libtests/ftrylockfile.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/ftrylockfile.c
+stlib: []
+target: testsuites/libtests/ftrylockfile.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/funlockfile.yml b/spec/build/testsuites/libtests/funlockfile.yml
new file mode 100644
index 0000000000..5a91e1934d
--- /dev/null
+++ b/spec/build/testsuites/libtests/funlockfile.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/funlockfile.c
+stlib: []
+target: testsuites/libtests/funlockfile.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/getentropy01.yml b/spec/build/testsuites/libtests/getentropy01.yml
new file mode 100644
index 0000000000..43a384b25d
--- /dev/null
+++ b/spec/build/testsuites/libtests/getentropy01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/getentropy01/init.c
+stlib: []
+target: testsuites/libtests/getentropy01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/getlogin.yml b/spec/build/testsuites/libtests/getlogin.yml
new file mode 100644
index 0000000000..b77349b4a9
--- /dev/null
+++ b/spec/build/testsuites/libtests/getlogin.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/getlogin.c
+stlib: []
+target: testsuites/libtests/getlogin.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/getpwnam.yml b/spec/build/testsuites/libtests/getpwnam.yml
new file mode 100644
index 0000000000..097b0b5fad
--- /dev/null
+++ b/spec/build/testsuites/libtests/getpwnam.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/getpwnam.c
+stlib: []
+target: testsuites/libtests/getpwnam.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/getpwuid.yml b/spec/build/testsuites/libtests/getpwuid.yml
new file mode 100644
index 0000000000..3c2ac96f34
--- /dev/null
+++ b/spec/build/testsuites/libtests/getpwuid.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/getpwuid.c
+stlib: []
+target: testsuites/libtests/getpwuid.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/gettimeofday.yml b/spec/build/testsuites/libtests/gettimeofday.yml
new file mode 100644
index 0000000000..2d5f3bea6d
--- /dev/null
+++ b/spec/build/testsuites/libtests/gettimeofday.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/gettimeofday.c
+stlib: []
+target: testsuites/libtests/gettimeofday.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/getuid.yml b/spec/build/testsuites/libtests/getuid.yml
new file mode 100644
index 0000000000..a51de287b1
--- /dev/null
+++ b/spec/build/testsuites/libtests/getuid.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/getuid.c
+stlib: []
+target: testsuites/libtests/getuid.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/grp.yml b/spec/build/testsuites/libtests/grp.yml
new file mode 100644
index 0000000000..e6e0ce75ae
--- /dev/null
+++ b/spec/build/testsuites/libtests/grp.yml
@@ -0,0 +1,320 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_LIBTESTS
+includes:
+- testsuites/support/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: optbin2c
+- role: build-dependency
+ uid: optgzip
+- role: build-dependency
+ uid: optpax
+- role: build-dependency
+ uid: optrtemsld
+- role: build-dependency
+ uid: optrtemssyms
+- role: build-dependency
+ uid: optxz
+- role: build-dependency
+ uid: block01
+- role: build-dependency
+ uid: block02
+- role: build-dependency
+ uid: block03
+- role: build-dependency
+ uid: block04
+- role: build-dependency
+ uid: block05
+- role: build-dependency
+ uid: block06
+- role: build-dependency
+ uid: block07
+- role: build-dependency
+ uid: block08
+- role: build-dependency
+ uid: block09
+- role: build-dependency
+ uid: block10
+- role: build-dependency
+ uid: block11
+- role: build-dependency
+ uid: block12
+- role: build-dependency
+ uid: block13
+- role: build-dependency
+ uid: block14
+- role: build-dependency
+ uid: block15
+- role: build-dependency
+ uid: block16
+- role: build-dependency
+ uid: block17
+- role: build-dependency
+ uid: bspcmdline01
+- role: build-dependency
+ uid: calloc
+- role: build-dependency
+ uid: capture01
+- role: build-dependency
+ uid: clockgettime
+- role: build-dependency
+ uid: close
+- role: build-dependency
+ uid: complex
+- role: build-dependency
+ uid: cpuuse
+- role: build-dependency
+ uid: crypt01
+- role: build-dependency
+ uid: debugger01
+- role: build-dependency
+ uid: defaultconfig01
+- role: build-dependency
+ uid: devfs01
+- role: build-dependency
+ uid: devfs04
+- role: build-dependency
+ uid: deviceio01
+- role: build-dependency
+ uid: devnullfatal01
+- role: build-dependency
+ uid: dl01
+- role: build-dependency
+ uid: dl02
+- role: build-dependency
+ uid: dl03
+- role: build-dependency
+ uid: dl04
+- role: build-dependency
+ uid: dl05
+- role: build-dependency
+ uid: dl06
+- role: build-dependency
+ uid: dl07
+- role: build-dependency
+ uid: dl08
+- role: build-dependency
+ uid: dl09
+- role: build-dependency
+ uid: dl10
+- role: build-dependency
+ uid: dumpbuf01
+- role: build-dependency
+ uid: dup2
+- role: build-dependency
+ uid: exit01
+- role: build-dependency
+ uid: exit02
+- role: build-dependency
+ uid: fcntl
+- role: build-dependency
+ uid: flashdisk01
+- role: build-dependency
+ uid: flockfile
+- role: build-dependency
+ uid: fork
+- role: build-dependency
+ uid: free
+- role: build-dependency
+ uid: fstat
+- role: build-dependency
+ uid: ftp01
+- role: build-dependency
+ uid: ftrylockfile
+- role: build-dependency
+ uid: funlockfile
+- role: build-dependency
+ uid: getentropy01
+- role: build-dependency
+ uid: getlogin
+- role: build-dependency
+ uid: getpwnam
+- role: build-dependency
+ uid: getpwuid
+- role: build-dependency
+ uid: gettimeofday
+- role: build-dependency
+ uid: getuid
+- role: build-dependency
+ uid: gxx01
+- role: build-dependency
+ uid: heapwalk
+- role: build-dependency
+ uid: htonl
+- role: build-dependency
+ uid: i2c01
+- role: build-dependency
+ uid: iconv
+- role: build-dependency
+ uid: iconvclose
+- role: build-dependency
+ uid: iconvopen
+- role: build-dependency
+ uid: kill
+- role: build-dependency
+ uid: libfdt01
+- role: build-dependency
+ uid: longjmp
+- role: build-dependency
+ uid: lseek
+- role: build-dependency
+ uid: lstat
+- role: build-dependency
+ uid: malloc
+- role: build-dependency
+ uid: malloc02
+- role: build-dependency
+ uid: malloc03
+- role: build-dependency
+ uid: malloc04
+- role: build-dependency
+ uid: malloctest
+- role: build-dependency
+ uid: math
+- role: build-dependency
+ uid: mathf
+- role: build-dependency
+ uid: mathl
+- role: build-dependency
+ uid: md501
+- role: build-dependency
+ uid: mghttpd01
+- role: build-dependency
+ uid: monitor
+- role: build-dependency
+ uid: monitor02
+- role: build-dependency
+ uid: mouse01
+- role: build-dependency
+ uid: nanosleep
+- role: build-dependency
+ uid: networking01
+- role: build-dependency
+ uid: newlib01
+- role: build-dependency
+ uid: open
+- role: build-dependency
+ uid: pipe
+- role: build-dependency
+ uid: posixmemalign
+- role: build-dependency
+ uid: putenvtest
+- role: build-dependency
+ uid: pwdgrp01
+- role: build-dependency
+ uid: pwdgrp02
+- role: build-dependency
+ uid: rbheap01
+- role: build-dependency
+ uid: read
+- role: build-dependency
+ uid: readv
+- role: build-dependency
+ uid: realloc
+- role: build-dependency
+ uid: record01
+- role: build-dependency
+ uid: record02
+- role: build-dependency
+ uid: rtmonuse
+- role: build-dependency
+ uid: setjmp
+- role: build-dependency
+ uid: sha
+- role: build-dependency
+ uid: shell01
+- role: build-dependency
+ uid: sigaddset
+- role: build-dependency
+ uid: sigdelset
+- role: build-dependency
+ uid: sigemptyset
+- role: build-dependency
+ uid: sigfillset
+- role: build-dependency
+ uid: sigismember
+- role: build-dependency
+ uid: sigprocmask
+- role: build-dependency
+ uid: sparsedisk01
+- role: build-dependency
+ uid: spi01
+- role: build-dependency
+ uid: stackchk
+- role: build-dependency
+ uid: stackchk01
+- role: build-dependency
+ uid: stat
+- role: build-dependency
+ uid: stringto01
+- role: build-dependency
+ uid: syscall01
+- role: build-dependency
+ uid: tar01
+- role: build-dependency
+ uid: tar02
+- role: build-dependency
+ uid: tar03
+- role: build-dependency
+ uid: telnetd01
+- role: build-dependency
+ uid: termios
+- role: build-dependency
+ uid: termios01
+- role: build-dependency
+ uid: termios02
+- role: build-dependency
+ uid: termios03
+- role: build-dependency
+ uid: termios04
+- role: build-dependency
+ uid: termios05
+- role: build-dependency
+ uid: termios06
+- role: build-dependency
+ uid: termios07
+- role: build-dependency
+ uid: termios08
+- role: build-dependency
+ uid: termios09
+- role: build-dependency
+ uid: termios10
+- role: build-dependency
+ uid: termios11
+- role: build-dependency
+ uid: top
+- role: build-dependency
+ uid: ttest01
+- role: build-dependency
+ uid: ttest02
+- role: build-dependency
+ uid: tztest
+- role: build-dependency
+ uid: uid01
+- role: build-dependency
+ uid: unlink
+- role: build-dependency
+ uid: utf8proc01
+- role: build-dependency
+ uid: vfork
+- role: build-dependency
+ uid: wait
+- role: build-dependency
+ uid: waitpid
+- role: build-dependency
+ uid: write
+- role: build-dependency
+ uid: writev
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/libtests/gxx01.yml b/spec/build/testsuites/libtests/gxx01.yml
new file mode 100644
index 0000000000..1027db9b9a
--- /dev/null
+++ b/spec/build/testsuites/libtests/gxx01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/gxx01/init.c
+stlib: []
+target: testsuites/libtests/gxx01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/heapwalk.yml b/spec/build/testsuites/libtests/heapwalk.yml
new file mode 100644
index 0000000000..627ddcff63
--- /dev/null
+++ b/spec/build/testsuites/libtests/heapwalk.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/heapwalk/init.c
+stlib: []
+target: testsuites/libtests/heapwalk.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/htonl.yml b/spec/build/testsuites/libtests/htonl.yml
new file mode 100644
index 0000000000..cc3306dd3b
--- /dev/null
+++ b/spec/build/testsuites/libtests/htonl.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/htonl.c
+stlib: []
+target: testsuites/libtests/htonl.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/i2c01.yml b/spec/build/testsuites/libtests/i2c01.yml
new file mode 100644
index 0000000000..d7de2fb8b9
--- /dev/null
+++ b/spec/build/testsuites/libtests/i2c01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/i2c01/init.c
+stlib: []
+target: testsuites/libtests/i2c01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/iconv.yml b/spec/build/testsuites/libtests/iconv.yml
new file mode 100644
index 0000000000..28ebde37ff
--- /dev/null
+++ b/spec/build/testsuites/libtests/iconv.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/iconv.c
+stlib: []
+target: testsuites/libtests/iconv.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/iconvclose.yml b/spec/build/testsuites/libtests/iconvclose.yml
new file mode 100644
index 0000000000..634b45b51f
--- /dev/null
+++ b/spec/build/testsuites/libtests/iconvclose.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/iconv_close.c
+stlib: []
+target: testsuites/libtests/iconv_close.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/iconvopen.yml b/spec/build/testsuites/libtests/iconvopen.yml
new file mode 100644
index 0000000000..dd59e9bf66
--- /dev/null
+++ b/spec/build/testsuites/libtests/iconvopen.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/iconv_open.c
+stlib: []
+target: testsuites/libtests/iconv_open.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/kill.yml b/spec/build/testsuites/libtests/kill.yml
new file mode 100644
index 0000000000..3cab7d2bbf
--- /dev/null
+++ b/spec/build/testsuites/libtests/kill.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/kill.c
+stlib: []
+target: testsuites/libtests/kill.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/libdl081.yml b/spec/build/testsuites/libtests/libdl081.yml
new file mode 100644
index 0000000000..8c03f8c67d
--- /dev/null
+++ b/spec/build/testsuites/libtests/libdl081.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+install-path: null
+links: []
+source:
+- testsuites/libtests/dl08-o2.c
+- testsuites/libtests/dl08-o4.c
+target: dl08_1
+type: build
diff --git a/spec/build/testsuites/libtests/libdl082.yml b/spec/build/testsuites/libtests/libdl082.yml
new file mode 100644
index 0000000000..d75f02bfa5
--- /dev/null
+++ b/spec/build/testsuites/libtests/libdl082.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+install-path: null
+links: []
+source:
+- testsuites/libtests/dl08-o3.c
+- testsuites/libtests/dl08-o5.c
+- testsuites/libtests/dl08-o6-123456789-123456789.c
+target: dl08_2
+type: build
diff --git a/spec/build/testsuites/libtests/libdl101.yml b/spec/build/testsuites/libtests/libdl101.yml
new file mode 100644
index 0000000000..4270c3f129
--- /dev/null
+++ b/spec/build/testsuites/libtests/libdl101.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+install-path: null
+links: []
+source:
+- testsuites/libtests/dl10-o2.c
+- testsuites/libtests/dl10-o4.c
+target: dl10_1
+type: build
diff --git a/spec/build/testsuites/libtests/libdl102.yml b/spec/build/testsuites/libtests/libdl102.yml
new file mode 100644
index 0000000000..7426e94a84
--- /dev/null
+++ b/spec/build/testsuites/libtests/libdl102.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+install-path: null
+links: []
+source:
+- testsuites/libtests/dl10-o3.c
+- testsuites/libtests/dl10-o5.c
+- testsuites/libtests/dl10-o6.c
+target: dl10_2
+type: build
diff --git a/spec/build/testsuites/libtests/libfdt01.yml b/spec/build/testsuites/libtests/libfdt01.yml
new file mode 100644
index 0000000000..9d22f5c0e2
--- /dev/null
+++ b/spec/build/testsuites/libtests/libfdt01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/libfdt01/init.c
+- testsuites/libtests/libfdt01/some.c
+stlib: []
+target: testsuites/libtests/libfdt01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/longjmp.yml b/spec/build/testsuites/libtests/longjmp.yml
new file mode 100644
index 0000000000..dba164d53e
--- /dev/null
+++ b/spec/build/testsuites/libtests/longjmp.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/longjmp.c
+stlib: []
+target: testsuites/libtests/longjmp.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/lseek.yml b/spec/build/testsuites/libtests/lseek.yml
new file mode 100644
index 0000000000..376d6e8e33
--- /dev/null
+++ b/spec/build/testsuites/libtests/lseek.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/lseek.c
+stlib: []
+target: testsuites/libtests/lseek.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/lstat.yml b/spec/build/testsuites/libtests/lstat.yml
new file mode 100644
index 0000000000..06a23160e5
--- /dev/null
+++ b/spec/build/testsuites/libtests/lstat.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/lstat.c
+stlib: []
+target: testsuites/libtests/lstat.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/malloc.yml b/spec/build/testsuites/libtests/malloc.yml
new file mode 100644
index 0000000000..8030add71c
--- /dev/null
+++ b/spec/build/testsuites/libtests/malloc.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/malloc.c
+stlib: []
+target: testsuites/libtests/malloc.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/malloc02.yml b/spec/build/testsuites/libtests/malloc02.yml
new file mode 100644
index 0000000000..2414f33d1b
--- /dev/null
+++ b/spec/build/testsuites/libtests/malloc02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/malloc02/init.c
+stlib: []
+target: testsuites/libtests/malloc02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/malloc03.yml b/spec/build/testsuites/libtests/malloc03.yml
new file mode 100644
index 0000000000..7ed299bf09
--- /dev/null
+++ b/spec/build/testsuites/libtests/malloc03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/malloc03/init.c
+stlib: []
+target: testsuites/libtests/malloc03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/malloc04.yml b/spec/build/testsuites/libtests/malloc04.yml
new file mode 100644
index 0000000000..c3b884d0a0
--- /dev/null
+++ b/spec/build/testsuites/libtests/malloc04.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/malloc04/init.c
+stlib: []
+target: testsuites/libtests/malloc04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/malloctest.yml b/spec/build/testsuites/libtests/malloctest.yml
new file mode 100644
index 0000000000..db426564cb
--- /dev/null
+++ b/spec/build/testsuites/libtests/malloctest.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/malloctest/init.c
+- testsuites/libtests/malloctest/task1.c
+stlib: []
+target: testsuites/libtests/malloctest.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/math.yml b/spec/build/testsuites/libtests/math.yml
new file mode 100644
index 0000000000..bbd07e5955
--- /dev/null
+++ b/spec/build/testsuites/libtests/math.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/libtests/math
+ldflags: []
+links: []
+source:
+- testsuites/libtests/math/init.c
+- testsuites/libtests/math/domath.c
+stlib:
+- m
+target: testsuites/libtests/math.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/mathf.yml b/spec/build/testsuites/libtests/mathf.yml
new file mode 100644
index 0000000000..95b06376d3
--- /dev/null
+++ b/spec/build/testsuites/libtests/mathf.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/libtests/math
+ldflags: []
+links: []
+source:
+- testsuites/libtests/mathf/init.c
+- testsuites/libtests/mathf/domathf.c
+stlib:
+- m
+target: testsuites/libtests/mathf.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/mathl.yml b/spec/build/testsuites/libtests/mathl.yml
new file mode 100644
index 0000000000..4e73fef6bb
--- /dev/null
+++ b/spec/build/testsuites/libtests/mathl.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- testsuites/libtests/math
+ldflags: []
+links: []
+source:
+- testsuites/libtests/mathl/init.c
+- testsuites/libtests/mathl/domathl.c
+stlib:
+- m
+target: testsuites/libtests/mathl.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/md501.yml b/spec/build/testsuites/libtests/md501.yml
new file mode 100644
index 0000000000..2ef88600a6
--- /dev/null
+++ b/spec/build/testsuites/libtests/md501.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/md501/init.c
+stlib: []
+target: testsuites/libtests/md501.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/mghttpd01.yml b/spec/build/testsuites/libtests/mghttpd01.yml
new file mode 100644
index 0000000000..880df9dba3
--- /dev/null
+++ b/spec/build/testsuites/libtests/mghttpd01.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/mghttpd01/"
+ tar_c, tar_h = self.bin2c(bld, path + "mghttpd01.tar")
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_MGHTTPD01_CPPFLAGS))
+ objs.append(self.cc(bld, bic, path + "test-http-client.c"))
+ self.link_cc(bld, bic, objs, "testsuites/libtests/mghttpd01.exe")
+do-configure: null
+enabled-by:
+- and:
+ - RTEMS_NETWORKING
+ - RTEMS_POSIX_API
+includes:
+- cpukit/libnetworking
+- testsuites/libtests/mghttpd01
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after:
+- mghttpd
+use-before: []
diff --git a/spec/build/testsuites/libtests/monitor.yml b/spec/build/testsuites/libtests/monitor.yml
new file mode 100644
index 0000000000..03849d08e3
--- /dev/null
+++ b/spec/build/testsuites/libtests/monitor.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/monitor/init.c
+stlib: []
+target: testsuites/libtests/monitor.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/monitor02.yml b/spec/build/testsuites/libtests/monitor02.yml
new file mode 100644
index 0000000000..f6d3a8e577
--- /dev/null
+++ b/spec/build/testsuites/libtests/monitor02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/monitor02/init.c
+stlib: []
+target: testsuites/libtests/monitor02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/mouse01.yml b/spec/build/testsuites/libtests/mouse01.yml
new file mode 100644
index 0000000000..7178981af8
--- /dev/null
+++ b/spec/build/testsuites/libtests/mouse01.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/mouse01/init.c
+- testsuites/libtests/mouse01/serial_mouse_config.c
+- testsuites/libtests/mouse01/msmouse.c
+- testsuites/libtests/termios04/termios_testdriver_intr.c
+stlib: []
+target: testsuites/libtests/mouse01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/nanosleep.yml b/spec/build/testsuites/libtests/nanosleep.yml
new file mode 100644
index 0000000000..c3115dad58
--- /dev/null
+++ b/spec/build/testsuites/libtests/nanosleep.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/nanosleep.c
+stlib: []
+target: testsuites/libtests/nanosleep.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/networking01.yml b/spec/build/testsuites/libtests/networking01.yml
new file mode 100644
index 0000000000..958134af27
--- /dev/null
+++ b/spec/build/testsuites/libtests/networking01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+features: c cprogram
+includes:
+- cpukit/libnetworking
+ldflags: []
+links: []
+source:
+- testsuites/libtests/networking01/init.c
+stlib: []
+target: testsuites/libtests/networking01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/newlib01.yml b/spec/build/testsuites/libtests/newlib01.yml
new file mode 100644
index 0000000000..0c187f9223
--- /dev/null
+++ b/spec/build/testsuites/libtests/newlib01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/newlib01/init.c
+stlib: []
+target: testsuites/libtests/newlib01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/open.yml b/spec/build/testsuites/libtests/open.yml
new file mode 100644
index 0000000000..3bbd93c83a
--- /dev/null
+++ b/spec/build/testsuites/libtests/open.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/open.c
+stlib: []
+target: testsuites/libtests/open.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/optbin2c.yml b/spec/build/testsuites/libtests/optbin2c.yml
new file mode 100644
index 0000000000..0470905529
--- /dev/null
+++ b/spec/build/testsuites/libtests/optbin2c.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: rtems-bin2c
+- find-program: null
+- env-assign: BIN2C
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/testsuites/libtests/optgzip.yml b/spec/build/testsuites/libtests/optgzip.yml
new file mode 100644
index 0000000000..d53136b076
--- /dev/null
+++ b/spec/build/testsuites/libtests/optgzip.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: gzip
+- find-program: null
+- env-assign: GZIP
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/testsuites/libtests/optpax.yml b/spec/build/testsuites/libtests/optpax.yml
new file mode 100644
index 0000000000..097b60291b
--- /dev/null
+++ b/spec/build/testsuites/libtests/optpax.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: pax
+- find-program: null
+- env-assign: PAX
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/testsuites/libtests/optrtemsld.yml b/spec/build/testsuites/libtests/optrtemsld.yml
new file mode 100644
index 0000000000..1373023c7e
--- /dev/null
+++ b/spec/build/testsuites/libtests/optrtemsld.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: rtems-ld
+- find-program: null
+- env-assign: RTEMS_LD
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/testsuites/libtests/optrtemssyms.yml b/spec/build/testsuites/libtests/optrtemssyms.yml
new file mode 100644
index 0000000000..51872b04b7
--- /dev/null
+++ b/spec/build/testsuites/libtests/optrtemssyms.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: rtems-syms
+- find-program: null
+- env-assign: RTEMS_SYMS
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/testsuites/libtests/optxz.yml b/spec/build/testsuites/libtests/optxz.yml
new file mode 100644
index 0000000000..8bad91a7bb
--- /dev/null
+++ b/spec/build/testsuites/libtests/optxz.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-value: xz
+- find-program: null
+- env-assign: XZ
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links: []
+type: build
diff --git a/spec/build/testsuites/libtests/pipe.yml b/spec/build/testsuites/libtests/pipe.yml
new file mode 100644
index 0000000000..32ce03e3b7
--- /dev/null
+++ b/spec/build/testsuites/libtests/pipe.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/pipe.c
+stlib: []
+target: testsuites/libtests/pipe.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/posix.yml b/spec/build/testsuites/libtests/posix.yml
new file mode 100644
index 0000000000..95d1e1c5ca
--- /dev/null
+++ b/spec/build/testsuites/libtests/posix.yml
@@ -0,0 +1,66 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/calloc.c
+- testsuites/libtests/POSIX/clock_gettime.c
+- testsuites/libtests/POSIX/close.c
+- testsuites/libtests/POSIX/dup2.c
+- testsuites/libtests/POSIX/fcntl.c
+- testsuites/libtests/POSIX/flockfile.c
+- testsuites/libtests/POSIX/fork.c
+- testsuites/libtests/POSIX/free.c
+- testsuites/libtests/POSIX/fstat.c
+- testsuites/libtests/POSIX/ftrylockfile.c
+- testsuites/libtests/POSIX/funlockfile.c
+- testsuites/libtests/POSIX/getdents.c
+- testsuites/libtests/POSIX/getlogin.c
+- testsuites/libtests/POSIX/getpwnam.c
+- testsuites/libtests/POSIX/getpwuid.c
+- testsuites/libtests/POSIX/gettimeofday.c
+- testsuites/libtests/POSIX/getuid.c
+- testsuites/libtests/POSIX/htonl.c
+- testsuites/libtests/POSIX/iconv.c
+- testsuites/libtests/POSIX/iconv_close.c
+- testsuites/libtests/POSIX/iconv_open.c
+- testsuites/libtests/POSIX/issetugid.c
+- testsuites/libtests/POSIX/kill.c
+- testsuites/libtests/POSIX/longjmp.c
+- testsuites/libtests/POSIX/lseek.c
+- testsuites/libtests/POSIX/lstat.c
+- testsuites/libtests/POSIX/malloc.c
+- testsuites/libtests/POSIX/nanosleep.c
+- testsuites/libtests/POSIX/open.c
+- testsuites/libtests/POSIX/pipe.c
+- testsuites/libtests/POSIX/posix_memalign.c
+- testsuites/libtests/POSIX/read.c
+- testsuites/libtests/POSIX/readv.c
+- testsuites/libtests/POSIX/realloc.c
+- testsuites/libtests/POSIX/setjmp.c
+- testsuites/libtests/POSIX/sigaddset.c
+- testsuites/libtests/POSIX/sigdelset.c
+- testsuites/libtests/POSIX/sigemptyset.c
+- testsuites/libtests/POSIX/sigfillset.c
+- testsuites/libtests/POSIX/sigismember.c
+- testsuites/libtests/POSIX/sigprocmask.c
+- testsuites/libtests/POSIX/stat.c
+- testsuites/libtests/POSIX/unlink.c
+- testsuites/libtests/POSIX/vfork.c
+- testsuites/libtests/POSIX/wait.c
+- testsuites/libtests/POSIX/waitpid.c
+- testsuites/libtests/POSIX/write.c
+- testsuites/libtests/POSIX/writev.c
+stlib: []
+target: testsuites/libtests/POSIX.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/posixmemalign.yml b/spec/build/testsuites/libtests/posixmemalign.yml
new file mode 100644
index 0000000000..3ea147bc7d
--- /dev/null
+++ b/spec/build/testsuites/libtests/posixmemalign.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/posix_memalign.c
+stlib: []
+target: testsuites/libtests/posix_memalign.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/putenvtest.yml b/spec/build/testsuites/libtests/putenvtest.yml
new file mode 100644
index 0000000000..d686be8e81
--- /dev/null
+++ b/spec/build/testsuites/libtests/putenvtest.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/putenvtest/init.c
+stlib: []
+target: testsuites/libtests/putenvtest.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/pwdgrp01.yml b/spec/build/testsuites/libtests/pwdgrp01.yml
new file mode 100644
index 0000000000..b254bd36bb
--- /dev/null
+++ b/spec/build/testsuites/libtests/pwdgrp01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/pwdgrp01/init.c
+stlib: []
+target: testsuites/libtests/pwdgrp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/pwdgrp02.yml b/spec/build/testsuites/libtests/pwdgrp02.yml
new file mode 100644
index 0000000000..be74dd312e
--- /dev/null
+++ b/spec/build/testsuites/libtests/pwdgrp02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/pwdgrp02/init.c
+stlib: []
+target: testsuites/libtests/pwdgrp02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/rbheap01.yml b/spec/build/testsuites/libtests/rbheap01.yml
new file mode 100644
index 0000000000..140bfa2a3c
--- /dev/null
+++ b/spec/build/testsuites/libtests/rbheap01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/rbheap01/init.c
+stlib: []
+target: testsuites/libtests/rbheap01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/read.yml b/spec/build/testsuites/libtests/read.yml
new file mode 100644
index 0000000000..13f91e317b
--- /dev/null
+++ b/spec/build/testsuites/libtests/read.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/read.c
+stlib: []
+target: testsuites/libtests/read.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/readv.yml b/spec/build/testsuites/libtests/readv.yml
new file mode 100644
index 0000000000..fb483d551b
--- /dev/null
+++ b/spec/build/testsuites/libtests/readv.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/readv.c
+stlib: []
+target: testsuites/libtests/readv.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/realloc.yml b/spec/build/testsuites/libtests/realloc.yml
new file mode 100644
index 0000000000..f353038ca9
--- /dev/null
+++ b/spec/build/testsuites/libtests/realloc.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/realloc.c
+stlib: []
+target: testsuites/libtests/realloc.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/record01.yml b/spec/build/testsuites/libtests/record01.yml
new file mode 100644
index 0000000000..e565d791fc
--- /dev/null
+++ b/spec/build/testsuites/libtests/record01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes:
+- cpukit/libnetworking
+ldflags: []
+links: []
+source:
+- testsuites/libtests/record01/init.c
+stlib: []
+target: testsuites/libtests/record01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/record02.yml b/spec/build/testsuites/libtests/record02.yml
new file mode 100644
index 0000000000..47167be91f
--- /dev/null
+++ b/spec/build/testsuites/libtests/record02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/record02/init.c
+stlib: []
+target: testsuites/libtests/record02.exe
+type: build
+use-after:
+- z
+use-before: []
diff --git a/spec/build/testsuites/libtests/rtmonuse.yml b/spec/build/testsuites/libtests/rtmonuse.yml
new file mode 100644
index 0000000000..33490f350f
--- /dev/null
+++ b/spec/build/testsuites/libtests/rtmonuse.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/rtmonuse/init.c
+- testsuites/libtests/rtmonuse/getall.c
+- testsuites/libtests/rtmonuse/task1.c
+stlib: []
+target: testsuites/libtests/rtmonuse.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/setjmp.yml b/spec/build/testsuites/libtests/setjmp.yml
new file mode 100644
index 0000000000..e74ed93787
--- /dev/null
+++ b/spec/build/testsuites/libtests/setjmp.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/setjmp.c
+stlib: []
+target: testsuites/libtests/setjmp.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/sha.yml b/spec/build/testsuites/libtests/sha.yml
new file mode 100644
index 0000000000..d57de3b920
--- /dev/null
+++ b/spec/build/testsuites/libtests/sha.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/sha/init.c
+stlib: []
+target: testsuites/libtests/sha.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/shell01.yml b/spec/build/testsuites/libtests/shell01.yml
new file mode 100644
index 0000000000..ebf92a727d
--- /dev/null
+++ b/spec/build/testsuites/libtests/shell01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/shell01/init.c
+stlib: []
+target: testsuites/libtests/shell01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/sigaddset.yml b/spec/build/testsuites/libtests/sigaddset.yml
new file mode 100644
index 0000000000..5e72311b2b
--- /dev/null
+++ b/spec/build/testsuites/libtests/sigaddset.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/sigaddset.c
+stlib: []
+target: testsuites/libtests/sigaddset.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/sigdelset.yml b/spec/build/testsuites/libtests/sigdelset.yml
new file mode 100644
index 0000000000..d0dc56c5c5
--- /dev/null
+++ b/spec/build/testsuites/libtests/sigdelset.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/sigdelset.c
+stlib: []
+target: testsuites/libtests/sigdelset.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/sigemptyset.yml b/spec/build/testsuites/libtests/sigemptyset.yml
new file mode 100644
index 0000000000..fbf6ed85fa
--- /dev/null
+++ b/spec/build/testsuites/libtests/sigemptyset.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/sigemptyset.c
+stlib: []
+target: testsuites/libtests/sigemptyset.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/sigfillset.yml b/spec/build/testsuites/libtests/sigfillset.yml
new file mode 100644
index 0000000000..ceac6ca442
--- /dev/null
+++ b/spec/build/testsuites/libtests/sigfillset.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/sigfillset.c
+stlib: []
+target: testsuites/libtests/sigfillset.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/sigismember.yml b/spec/build/testsuites/libtests/sigismember.yml
new file mode 100644
index 0000000000..41b9ac24ae
--- /dev/null
+++ b/spec/build/testsuites/libtests/sigismember.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/sigismember.c
+stlib: []
+target: testsuites/libtests/sigismember.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/sigprocmask.yml b/spec/build/testsuites/libtests/sigprocmask.yml
new file mode 100644
index 0000000000..67fcf27c79
--- /dev/null
+++ b/spec/build/testsuites/libtests/sigprocmask.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/sigprocmask.c
+stlib: []
+target: testsuites/libtests/sigprocmask.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/sparsedisk01.yml b/spec/build/testsuites/libtests/sparsedisk01.yml
new file mode 100644
index 0000000000..bb6ebdc6d1
--- /dev/null
+++ b/spec/build/testsuites/libtests/sparsedisk01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/sparsedisk01/init.c
+stlib: []
+target: testsuites/libtests/sparsedisk01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/spi01.yml b/spec/build/testsuites/libtests/spi01.yml
new file mode 100644
index 0000000000..00aedbacd7
--- /dev/null
+++ b/spec/build/testsuites/libtests/spi01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/spi01/init.c
+stlib: []
+target: testsuites/libtests/spi01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/stackchk.yml b/spec/build/testsuites/libtests/stackchk.yml
new file mode 100644
index 0000000000..ac090c5136
--- /dev/null
+++ b/spec/build/testsuites/libtests/stackchk.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/stackchk/blow.c
+- testsuites/libtests/stackchk/init.c
+- testsuites/libtests/stackchk/task1.c
+stlib: []
+target: testsuites/libtests/stackchk.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/stackchk01.yml b/spec/build/testsuites/libtests/stackchk01.yml
new file mode 100644
index 0000000000..3f22545c9e
--- /dev/null
+++ b/spec/build/testsuites/libtests/stackchk01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/stackchk01/init.c
+stlib: []
+target: testsuites/libtests/stackchk01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/stat.yml b/spec/build/testsuites/libtests/stat.yml
new file mode 100644
index 0000000000..e6cf5d2a25
--- /dev/null
+++ b/spec/build/testsuites/libtests/stat.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/stat.c
+stlib: []
+target: testsuites/libtests/stat.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/stringto01.yml b/spec/build/testsuites/libtests/stringto01.yml
new file mode 100644
index 0000000000..5a7327c493
--- /dev/null
+++ b/spec/build/testsuites/libtests/stringto01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/stringto01/init.c
+stlib: []
+target: testsuites/libtests/stringto01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/syscall01.yml b/spec/build/testsuites/libtests/syscall01.yml
new file mode 100644
index 0000000000..ff2d812c6d
--- /dev/null
+++ b/spec/build/testsuites/libtests/syscall01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+features: c cprogram
+includes:
+- cpukit/libnetworking
+ldflags: []
+links: []
+source:
+- testsuites/libtests/syscall01/init.c
+stlib: []
+target: testsuites/libtests/syscall01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/tar01.yml b/spec/build/testsuites/libtests/tar01.yml
new file mode 100644
index 0000000000..8c595c7be9
--- /dev/null
+++ b/spec/build/testsuites/libtests/tar01.yml
@@ -0,0 +1,35 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/tar01/"
+ tar = path + "tar01.tar"
+ tar_gz = self.gzip(bld, tar)
+ tar_xz = self.xz(bld, tar)
+ tar_c, tar_h = self.bin2c(bld, tar)
+ tar_gz_c, tar_gz_h = self.bin2c(bld, tar_gz)
+ tar_xz_c, tar_xz_h = self.bin2c(bld, tar_xz)
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, tar_gz_c))
+ objs.append(self.cc(bld, bic, tar_xz_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h, tar_gz_h, tar_xz_h], cppflags=bld.env.TEST_TAR01_CPPFLAGS))
+ objs.append(self.cc(bld, bic, "testsuites/psxtests/psxfile01/test_cat.c", target=path + "test_cat.o"))
+ self.link_cc(bld, bic, objs, "testsuites/libtests/tar01.exe")
+do-configure: null
+enabled-by:
+- not: TEST_TAR01_EXCLUDE
+includes:
+- testsuites/libtests/tar01
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after:
+- z
+use-before: []
diff --git a/spec/build/testsuites/libtests/tar02.yml b/spec/build/testsuites/libtests/tar02.yml
new file mode 100644
index 0000000000..5a2a1dc60e
--- /dev/null
+++ b/spec/build/testsuites/libtests/tar02.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: script
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+do-build: |
+ path = "testsuites/libtests/tar02/"
+ tar = "testsuites/libtests/tar01/tar01.tar"
+ tar_c, tar_h = self.bin2c(bld, tar, target=path + "tar02-tar")
+ objs = []
+ objs.append(self.cc(bld, bic, tar_c))
+ objs.append(self.cc(bld, bic, path + "init.c", deps=[tar_h], cppflags=bld.env.TEST_TAR02_CPPFLAGS))
+ objs.append(self.cc(bld, bic, "testsuites/psxtests/psxfile01/test_cat.c", target=path + "test_cat.o"))
+ self.link_cc(bld, bic, objs, "testsuites/libtests/tar02.exe")
+do-configure: null
+enabled-by:
+- not: TEST_TAR02_EXCLUDE
+includes:
+- testsuites/libtests/tar02
+ldflags: []
+links: []
+prepare-build: null
+prepare-configure: null
+stlib: []
+type: build
+use-after:
+- z
+use-before: []
diff --git a/spec/build/testsuites/libtests/tar03.yml b/spec/build/testsuites/libtests/tar03.yml
new file mode 100644
index 0000000000..07f184bfdc
--- /dev/null
+++ b/spec/build/testsuites/libtests/tar03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/tar03/init.c
+stlib: []
+target: testsuites/libtests/tar03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/telnetd01.yml b/spec/build/testsuites/libtests/telnetd01.yml
new file mode 100644
index 0000000000..9f5bda84d9
--- /dev/null
+++ b/spec/build/testsuites/libtests/telnetd01.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+features: c cprogram
+includes:
+- cpukit/libnetworking
+ldflags: []
+links: []
+source:
+- testsuites/libtests/telnetd01/init.c
+stlib: []
+target: testsuites/libtests/telnetd01.exe
+type: build
+use-after:
+- telnetd
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios.yml b/spec/build/testsuites/libtests/termios.yml
new file mode 100644
index 0000000000..6740353a77
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios/init.c
+stlib: []
+target: testsuites/libtests/termios.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios01.yml b/spec/build/testsuites/libtests/termios01.yml
new file mode 100644
index 0000000000..9008a04b10
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios01/init.c
+- testsuites/libtests/termios01/termios_testdriver.c
+stlib: []
+target: testsuites/libtests/termios01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios02.yml b/spec/build/testsuites/libtests/termios02.yml
new file mode 100644
index 0000000000..49d31526ce
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios02/init.c
+stlib: []
+target: testsuites/libtests/termios02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios03.yml b/spec/build/testsuites/libtests/termios03.yml
new file mode 100644
index 0000000000..e5ca148e7c
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios03.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios03/init.c
+- testsuites/libtests/termios03/termios_testdriver_polled.c
+stlib: []
+target: testsuites/libtests/termios03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios04.yml b/spec/build/testsuites/libtests/termios04.yml
new file mode 100644
index 0000000000..b5ea3416e5
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios04/init.c
+- testsuites/libtests/termios04/termios_testdriver_intr.c
+stlib: []
+target: testsuites/libtests/termios04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios05.yml b/spec/build/testsuites/libtests/termios05.yml
new file mode 100644
index 0000000000..e1cdb84b95
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios05.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios05/init.c
+- testsuites/libtests/termios05/termios_testdriver_task.c
+stlib: []
+target: testsuites/libtests/termios05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios06.yml b/spec/build/testsuites/libtests/termios06.yml
new file mode 100644
index 0000000000..a34bace23e
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios06.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios06/init.c
+- testsuites/libtests/termios03/termios_testdriver_polled.c
+- testsuites/libtests/termios06/test_pppd.c
+stlib: []
+target: testsuites/libtests/termios06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios07.yml b/spec/build/testsuites/libtests/termios07.yml
new file mode 100644
index 0000000000..8e2ce4df87
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios07.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios07/init.c
+- testsuites/libtests/termios04/termios_testdriver_intr.c
+stlib: []
+target: testsuites/libtests/termios07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios08.yml b/spec/build/testsuites/libtests/termios08.yml
new file mode 100644
index 0000000000..06072585fe
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios08.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios08/init.c
+- testsuites/libtests/termios03/termios_testdriver_polled.c
+stlib: []
+target: testsuites/libtests/termios08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios09.yml b/spec/build/testsuites/libtests/termios09.yml
new file mode 100644
index 0000000000..ddbee2e406
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios09.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios09/init.c
+stlib: []
+target: testsuites/libtests/termios09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios10.yml b/spec/build/testsuites/libtests/termios10.yml
new file mode 100644
index 0000000000..8364bbc624
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios10.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios10/init.c
+- testsuites/libtests/termios03/termios_testdriver_polled.c
+stlib: []
+target: testsuites/libtests/termios10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/termios11.yml b/spec/build/testsuites/libtests/termios11.yml
new file mode 100644
index 0000000000..d86b948b2a
--- /dev/null
+++ b/spec/build/testsuites/libtests/termios11.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/termios11/init.c
+- testsuites/libtests/termios04/termios_testdriver_intr.c
+stlib: []
+target: testsuites/libtests/termios11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/top.yml b/spec/build/testsuites/libtests/top.yml
new file mode 100644
index 0000000000..90241e8fb0
--- /dev/null
+++ b/spec/build/testsuites/libtests/top.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/top/init.c
+- testsuites/libtests/top/task1.c
+- testsuites/libtests/top/task2.c
+- testsuites/libtests/top/task3.c
+stlib: []
+target: testsuites/libtests/top.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/ttest01.yml b/spec/build/testsuites/libtests/ttest01.yml
new file mode 100644
index 0000000000..5310dcfe35
--- /dev/null
+++ b/spec/build/testsuites/libtests/ttest01.yml
@@ -0,0 +1,36 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/ttest01/init.c
+- testsuites/libtests/ttest01/test-assert.c
+- testsuites/libtests/ttest01/test-checks.c
+- testsuites/libtests/ttest01/test-destructor.c
+- testsuites/libtests/ttest01/test-eno.c
+- testsuites/libtests/ttest01/test-example.c
+- testsuites/libtests/ttest01/test-fixture.c
+- testsuites/libtests/ttest01/test-leak.c
+- testsuites/libtests/ttest01/test-log.c
+- testsuites/libtests/ttest01/test-malloc.c
+- testsuites/libtests/ttest01/test-plan.c
+- testsuites/libtests/ttest01/test-psx.c
+- testsuites/libtests/ttest01/test-rtems.c
+- testsuites/libtests/ttest01/test-simple.c
+- testsuites/libtests/ttest01/test-step.c
+- testsuites/libtests/ttest01/test-task-context.c
+- testsuites/libtests/ttest01/test-time.c
+- testsuites/libtests/ttest01/test-verbosity.c
+stlib: []
+target: testsuites/libtests/ttest01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/ttest02.yml b/spec/build/testsuites/libtests/ttest02.yml
new file mode 100644
index 0000000000..2f486ca287
--- /dev/null
+++ b/spec/build/testsuites/libtests/ttest02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/ttest02/init.c
+stlib: []
+target: testsuites/libtests/ttest02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/tztest.yml b/spec/build/testsuites/libtests/tztest.yml
new file mode 100644
index 0000000000..372a079689
--- /dev/null
+++ b/spec/build/testsuites/libtests/tztest.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/tztest/init.c
+stlib: []
+target: testsuites/libtests/tztest.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/uid01.yml b/spec/build/testsuites/libtests/uid01.yml
new file mode 100644
index 0000000000..fa5a57e21e
--- /dev/null
+++ b/spec/build/testsuites/libtests/uid01.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/uid01/init.c
+- testsuites/libtests/uid01/serial_mouse_config.c
+- testsuites/libtests/uid01/msmouse.c
+- testsuites/libtests/termios04/termios_testdriver_intr.c
+stlib: []
+target: testsuites/libtests/uid01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/unlink.yml b/spec/build/testsuites/libtests/unlink.yml
new file mode 100644
index 0000000000..94ab37fc67
--- /dev/null
+++ b/spec/build/testsuites/libtests/unlink.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/unlink.c
+stlib: []
+target: testsuites/libtests/unlink.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/utf8proc01.yml b/spec/build/testsuites/libtests/utf8proc01.yml
new file mode 100644
index 0000000000..83ac0742c4
--- /dev/null
+++ b/spec/build/testsuites/libtests/utf8proc01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/utf8proc01/init.c
+stlib: []
+target: testsuites/libtests/utf8proc01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/libtests/vfork.yml b/spec/build/testsuites/libtests/vfork.yml
new file mode 100644
index 0000000000..f868f95b79
--- /dev/null
+++ b/spec/build/testsuites/libtests/vfork.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/vfork.c
+stlib: []
+target: testsuites/libtests/vfork.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/wait.yml b/spec/build/testsuites/libtests/wait.yml
new file mode 100644
index 0000000000..ff8128e439
--- /dev/null
+++ b/spec/build/testsuites/libtests/wait.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/wait.c
+stlib: []
+target: testsuites/libtests/wait.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/waitpid.yml b/spec/build/testsuites/libtests/waitpid.yml
new file mode 100644
index 0000000000..f3d9f8e467
--- /dev/null
+++ b/spec/build/testsuites/libtests/waitpid.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/waitpid.c
+stlib: []
+target: testsuites/libtests/waitpid.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/write.yml b/spec/build/testsuites/libtests/write.yml
new file mode 100644
index 0000000000..fa2fa6ce47
--- /dev/null
+++ b/spec/build/testsuites/libtests/write.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/write.c
+stlib: []
+target: testsuites/libtests/write.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/libtests/writev.yml b/spec/build/testsuites/libtests/writev.yml
new file mode 100644
index 0000000000..a1e2e04ae0
--- /dev/null
+++ b/spec/build/testsuites/libtests/writev.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/libtests/POSIX/writev.c
+stlib: []
+target: testsuites/libtests/writev.norun.exe
+type: build
+use-after: []
+use-before:
+- rtemsdefaultconfig
diff --git a/spec/build/testsuites/mptests/grp.yml b/spec/build/testsuites/mptests/grp.yml
new file mode 100644
index 0000000000..6965b505ee
--- /dev/null
+++ b/spec/build/testsuites/mptests/grp.yml
@@ -0,0 +1,70 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_MPTESTS
+includes:
+- testsuites/support/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: mp01node1
+- role: build-dependency
+ uid: mp01node2
+- role: build-dependency
+ uid: mp03node1
+- role: build-dependency
+ uid: mp03node2
+- role: build-dependency
+ uid: mp04node1
+- role: build-dependency
+ uid: mp04node2
+- role: build-dependency
+ uid: mp05node1
+- role: build-dependency
+ uid: mp05node2
+- role: build-dependency
+ uid: mp06node1
+- role: build-dependency
+ uid: mp06node2
+- role: build-dependency
+ uid: mp07node1
+- role: build-dependency
+ uid: mp07node2
+- role: build-dependency
+ uid: mp08node1
+- role: build-dependency
+ uid: mp08node2
+- role: build-dependency
+ uid: mp09node1
+- role: build-dependency
+ uid: mp09node2
+- role: build-dependency
+ uid: mp10node1
+- role: build-dependency
+ uid: mp10node2
+- role: build-dependency
+ uid: mp11node1
+- role: build-dependency
+ uid: mp11node2
+- role: build-dependency
+ uid: mp12node1
+- role: build-dependency
+ uid: mp12node2
+- role: build-dependency
+ uid: mp13node1
+- role: build-dependency
+ uid: mp13node2
+- role: build-dependency
+ uid: mp14node1
+- role: build-dependency
+ uid: mp14node2
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp01.yml b/spec/build/testsuites/mptests/mp01.yml
new file mode 100644
index 0000000000..75b6394701
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp01/init1.c
+- testsuites/mptests/mp01/init2.c
+- testsuites/mptests/mp01/task1.c
+stlib: []
+target: testsuites/mptests/mp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp01node1.yml b/spec/build/testsuites/mptests/mp01node1.yml
new file mode 100644
index 0000000000..87fee1d663
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp01node1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp01/init1.c
+- testsuites/mptests/mp01/task1.c
+stlib: []
+target: testsuites/mptests/mp01_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp01node2.yml b/spec/build/testsuites/mptests/mp01node2.yml
new file mode 100644
index 0000000000..3316edd75a
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp01node2.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp01/init2.c
+- testsuites/mptests/mp01/task1.c
+stlib: []
+target: testsuites/mptests/mp01_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp03.yml b/spec/build/testsuites/mptests/mp03.yml
new file mode 100644
index 0000000000..42a59d064f
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp03.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp03/delay.c
+- testsuites/mptests/mp03/init1.c
+- testsuites/mptests/mp03/init2.c
+- testsuites/mptests/mp03/task1.c
+stlib: []
+target: testsuites/mptests/mp03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp03node1.yml b/spec/build/testsuites/mptests/mp03node1.yml
new file mode 100644
index 0000000000..a231f3085a
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp03node1.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp03/init1.c
+- testsuites/mptests/mp03/task1.c
+- testsuites/mptests/mp03/delay.c
+stlib: []
+target: testsuites/mptests/mp03_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp03node2.yml b/spec/build/testsuites/mptests/mp03node2.yml
new file mode 100644
index 0000000000..81b93473a8
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp03node2.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp03/init2.c
+- testsuites/mptests/mp03/task1.c
+- testsuites/mptests/mp03/delay.c
+stlib: []
+target: testsuites/mptests/mp03_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp04.yml b/spec/build/testsuites/mptests/mp04.yml
new file mode 100644
index 0000000000..1fa17a1dbf
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp04.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp04/init1.c
+- testsuites/mptests/mp04/init2.c
+- testsuites/mptests/mp04/task1.c
+stlib: []
+target: testsuites/mptests/mp04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp04node1.yml b/spec/build/testsuites/mptests/mp04node1.yml
new file mode 100644
index 0000000000..731f7ca47a
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp04node1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp04/init1.c
+- testsuites/mptests/mp04/task1.c
+stlib: []
+target: testsuites/mptests/mp04_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp04node2.yml b/spec/build/testsuites/mptests/mp04node2.yml
new file mode 100644
index 0000000000..6938f02001
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp04node2.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp04/init2.c
+- testsuites/mptests/mp04/task1.c
+stlib: []
+target: testsuites/mptests/mp04_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp05.yml b/spec/build/testsuites/mptests/mp05.yml
new file mode 100644
index 0000000000..3abffb39d2
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp05.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp05/asr.c
+- testsuites/mptests/mp05/init1.c
+- testsuites/mptests/mp05/init2.c
+- testsuites/mptests/mp05/task1.c
+stlib: []
+target: testsuites/mptests/mp05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp05node1.yml b/spec/build/testsuites/mptests/mp05node1.yml
new file mode 100644
index 0000000000..342ebce12b
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp05node1.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp05/init1.c
+- testsuites/mptests/mp05/task1.c
+- testsuites/mptests/mp05/asr.c
+stlib: []
+target: testsuites/mptests/mp05_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp05node2.yml b/spec/build/testsuites/mptests/mp05node2.yml
new file mode 100644
index 0000000000..8248ba18d0
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp05node2.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp05/init2.c
+- testsuites/mptests/mp05/task1.c
+- testsuites/mptests/mp05/asr.c
+stlib: []
+target: testsuites/mptests/mp05_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp06.yml b/spec/build/testsuites/mptests/mp06.yml
new file mode 100644
index 0000000000..4c07a3b3be
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp06.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp06/init1.c
+- testsuites/mptests/mp06/init2.c
+- testsuites/mptests/mp06/task1.c
+stlib: []
+target: testsuites/mptests/mp06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp06node1.yml b/spec/build/testsuites/mptests/mp06node1.yml
new file mode 100644
index 0000000000..6a01a7572f
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp06node1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp06/init1.c
+- testsuites/mptests/mp06/task1.c
+stlib: []
+target: testsuites/mptests/mp06_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp06node2.yml b/spec/build/testsuites/mptests/mp06node2.yml
new file mode 100644
index 0000000000..2af00e4e36
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp06node2.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp06/init2.c
+- testsuites/mptests/mp06/task1.c
+stlib: []
+target: testsuites/mptests/mp06_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp07.yml b/spec/build/testsuites/mptests/mp07.yml
new file mode 100644
index 0000000000..e1e1d0f003
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp07.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp07/init1.c
+- testsuites/mptests/mp07/init2.c
+- testsuites/mptests/mp07/task1.c
+stlib: []
+target: testsuites/mptests/mp07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp07node1.yml b/spec/build/testsuites/mptests/mp07node1.yml
new file mode 100644
index 0000000000..948bcb3492
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp07node1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp07/init1.c
+- testsuites/mptests/mp07/task1.c
+stlib: []
+target: testsuites/mptests/mp07_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp07node2.yml b/spec/build/testsuites/mptests/mp07node2.yml
new file mode 100644
index 0000000000..ec70919996
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp07node2.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp07/init2.c
+- testsuites/mptests/mp07/task1.c
+stlib: []
+target: testsuites/mptests/mp07_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp08.yml b/spec/build/testsuites/mptests/mp08.yml
new file mode 100644
index 0000000000..c9dc8e1d05
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp08.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp08/init1.c
+- testsuites/mptests/mp08/init2.c
+- testsuites/mptests/mp08/task1.c
+stlib: []
+target: testsuites/mptests/mp08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp08node1.yml b/spec/build/testsuites/mptests/mp08node1.yml
new file mode 100644
index 0000000000..1f1f42d53b
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp08node1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp08/init1.c
+- testsuites/mptests/mp08/task1.c
+stlib: []
+target: testsuites/mptests/mp08_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp08node2.yml b/spec/build/testsuites/mptests/mp08node2.yml
new file mode 100644
index 0000000000..5fa4ea585c
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp08node2.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp08/init2.c
+- testsuites/mptests/mp08/task1.c
+stlib: []
+target: testsuites/mptests/mp08_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp09.yml b/spec/build/testsuites/mptests/mp09.yml
new file mode 100644
index 0000000000..aa087e2c25
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp09.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp09/init1.c
+- testsuites/mptests/mp09/init2.c
+- testsuites/mptests/mp09/recvmsg.c
+- testsuites/mptests/mp09/sendmsg.c
+- testsuites/mptests/mp09/task1.c
+stlib: []
+target: testsuites/mptests/mp09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp09node1.yml b/spec/build/testsuites/mptests/mp09node1.yml
new file mode 100644
index 0000000000..a2ea0e80ad
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp09node1.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp09/init1.c
+- testsuites/mptests/mp09/task1.c
+- testsuites/mptests/mp09/recvmsg.c
+- testsuites/mptests/mp09/sendmsg.c
+stlib: []
+target: testsuites/mptests/mp09_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp09node2.yml b/spec/build/testsuites/mptests/mp09node2.yml
new file mode 100644
index 0000000000..fdbccdcda8
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp09node2.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp09/init2.c
+- testsuites/mptests/mp09/task1.c
+- testsuites/mptests/mp09/recvmsg.c
+- testsuites/mptests/mp09/sendmsg.c
+stlib: []
+target: testsuites/mptests/mp09_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp10.yml b/spec/build/testsuites/mptests/mp10.yml
new file mode 100644
index 0000000000..d79f9def5d
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp10.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp10/init1.c
+- testsuites/mptests/mp10/init2.c
+- testsuites/mptests/mp10/task1.c
+- testsuites/mptests/mp10/task2.c
+- testsuites/mptests/mp10/task3.c
+stlib: []
+target: testsuites/mptests/mp10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp10node1.yml b/spec/build/testsuites/mptests/mp10node1.yml
new file mode 100644
index 0000000000..69d1736535
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp10node1.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp10/init1.c
+- testsuites/mptests/mp10/task1.c
+- testsuites/mptests/mp10/task2.c
+- testsuites/mptests/mp10/task3.c
+stlib: []
+target: testsuites/mptests/mp10_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp10node2.yml b/spec/build/testsuites/mptests/mp10node2.yml
new file mode 100644
index 0000000000..90b114454c
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp10node2.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp10/init2.c
+- testsuites/mptests/mp10/task1.c
+- testsuites/mptests/mp10/task2.c
+- testsuites/mptests/mp10/task3.c
+stlib: []
+target: testsuites/mptests/mp10_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp11.yml b/spec/build/testsuites/mptests/mp11.yml
new file mode 100644
index 0000000000..82b3099dcc
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp11.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp11/init1.c
+- testsuites/mptests/mp11/init2.c
+stlib: []
+target: testsuites/mptests/mp11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp11node1.yml b/spec/build/testsuites/mptests/mp11node1.yml
new file mode 100644
index 0000000000..fb81d7f9db
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp11node1.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp11/init1.c
+stlib: []
+target: testsuites/mptests/mp11_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp11node2.yml b/spec/build/testsuites/mptests/mp11node2.yml
new file mode 100644
index 0000000000..38ea46eb14
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp11node2.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp11/init2.c
+stlib: []
+target: testsuites/mptests/mp11_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp12.yml b/spec/build/testsuites/mptests/mp12.yml
new file mode 100644
index 0000000000..c49358ba09
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp12.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp12/init1.c
+- testsuites/mptests/mp12/init2.c
+stlib: []
+target: testsuites/mptests/mp12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp12node1.yml b/spec/build/testsuites/mptests/mp12node1.yml
new file mode 100644
index 0000000000..1b5e58cfa3
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp12node1.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp12/init1.c
+stlib: []
+target: testsuites/mptests/mp12_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp12node2.yml b/spec/build/testsuites/mptests/mp12node2.yml
new file mode 100644
index 0000000000..d2bcd185df
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp12node2.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp12/init2.c
+stlib: []
+target: testsuites/mptests/mp12_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp13.yml b/spec/build/testsuites/mptests/mp13.yml
new file mode 100644
index 0000000000..5714407954
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp13.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp13/init1.c
+- testsuites/mptests/mp13/init2.c
+- testsuites/mptests/mp13/task1.c
+- testsuites/mptests/mp13/task2.c
+stlib: []
+target: testsuites/mptests/mp13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp13node1.yml b/spec/build/testsuites/mptests/mp13node1.yml
new file mode 100644
index 0000000000..5a9a2df372
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp13node1.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp13/init1.c
+- testsuites/mptests/mp13/task1.c
+- testsuites/mptests/mp13/task2.c
+stlib: []
+target: testsuites/mptests/mp13_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp13node2.yml b/spec/build/testsuites/mptests/mp13node2.yml
new file mode 100644
index 0000000000..8e1eda3751
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp13node2.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp13/init2.c
+- testsuites/mptests/mp13/task1.c
+- testsuites/mptests/mp13/task2.c
+stlib: []
+target: testsuites/mptests/mp13_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp14.yml b/spec/build/testsuites/mptests/mp14.yml
new file mode 100644
index 0000000000..08c42e4f88
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp14.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp14/delay.c
+- testsuites/mptests/mp14/evtask1.c
+- testsuites/mptests/mp14/evtmtask.c
+- testsuites/mptests/mp14/exit.c
+- testsuites/mptests/mp14/init1.c
+- testsuites/mptests/mp14/init2.c
+- testsuites/mptests/mp14/msgtask1.c
+- testsuites/mptests/mp14/pttask1.c
+- testsuites/mptests/mp14/smtask1.c
+stlib: []
+target: testsuites/mptests/mp14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp14node1.yml b/spec/build/testsuites/mptests/mp14node1.yml
new file mode 100644
index 0000000000..031c23446f
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp14node1.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp14/init1.c
+- testsuites/mptests/mp14/exit.c
+- testsuites/mptests/mp14/delay.c
+- testsuites/mptests/mp14/evtask1.c
+- testsuites/mptests/mp14/evtmtask.c
+- testsuites/mptests/mp14/pttask1.c
+- testsuites/mptests/mp14/smtask1.c
+- testsuites/mptests/mp14/msgtask1.c
+stlib: []
+target: testsuites/mptests/mp14_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/mptests/mp14node2.yml b/spec/build/testsuites/mptests/mp14node2.yml
new file mode 100644
index 0000000000..524e1c786d
--- /dev/null
+++ b/spec/build/testsuites/mptests/mp14node2.yml
@@ -0,0 +1,27 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/mptests/mp14/init2.c
+- testsuites/mptests/mp14/exit.c
+- testsuites/mptests/mp14/delay.c
+- testsuites/mptests/mp14/evtask1.c
+- testsuites/mptests/mp14/evtmtask.c
+- testsuites/mptests/mp14/pttask1.c
+- testsuites/mptests/mp14/smtask1.c
+- testsuites/mptests/mp14/msgtask1.c
+stlib: []
+target: testsuites/mptests/mp14_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/optada.yml b/spec/build/testsuites/optada.yml
new file mode 100644
index 0000000000..a1844c4f73
--- /dev/null
+++ b/spec/build/testsuites/optada.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the Ada test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_ADATESTS
+type: build
diff --git a/spec/build/testsuites/optall.yml b/spec/build/testsuites/optall.yml
new file mode 100644
index 0000000000..437a4cb8ca
--- /dev/null
+++ b/spec/build/testsuites/optall.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the test programs
+enabled-by: true
+links: []
+name: BUILD_TESTS
+type: build
diff --git a/spec/build/testsuites/optbenchmarks.yml b/spec/build/testsuites/optbenchmarks.yml
new file mode 100644
index 0000000000..5452746d5c
--- /dev/null
+++ b/spec/build/testsuites/optbenchmarks.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the benchmark programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_BENCHMARKS
+type: build
diff --git a/spec/build/testsuites/optfs.yml b/spec/build/testsuites/optfs.yml
new file mode 100644
index 0000000000..bc479b8948
--- /dev/null
+++ b/spec/build/testsuites/optfs.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the file system test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_FSTESTS
+type: build
diff --git a/spec/build/testsuites/optlib.yml b/spec/build/testsuites/optlib.yml
new file mode 100644
index 0000000000..c3d1e5e7a6
--- /dev/null
+++ b/spec/build/testsuites/optlib.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the library test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_LIBTESTS
+type: build
diff --git a/spec/build/testsuites/optmp.yml b/spec/build/testsuites/optmp.yml
new file mode 100644
index 0000000000..6a7ff38730
--- /dev/null
+++ b/spec/build/testsuites/optmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the MPCI test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_MPTESTS
+type: build
diff --git a/spec/build/testsuites/optpsx.yml b/spec/build/testsuites/optpsx.yml
new file mode 100644
index 0000000000..c3a821421e
--- /dev/null
+++ b/spec/build/testsuites/optpsx.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the POSIX test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_PSXTESTS
+type: build
diff --git a/spec/build/testsuites/optpsxtm.yml b/spec/build/testsuites/optpsxtm.yml
new file mode 100644
index 0000000000..8452c3de8c
--- /dev/null
+++ b/spec/build/testsuites/optpsxtm.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the POSIX timing test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_PSXTMTESTS
+type: build
diff --git a/spec/build/testsuites/optrhs.yml b/spec/build/testsuites/optrhs.yml
new file mode 100644
index 0000000000..e9e779660c
--- /dev/null
+++ b/spec/build/testsuites/optrhs.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the Rhealstone benchmark programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_RHEALSTONE
+type: build
diff --git a/spec/build/testsuites/optsamples.yml b/spec/build/testsuites/optsamples.yml
new file mode 100644
index 0000000000..0edef21734
--- /dev/null
+++ b/spec/build/testsuites/optsamples.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: true
+default-by-variant: []
+description: |
+ Build the sample programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_SAMPLES
+type: build
diff --git a/spec/build/testsuites/optsmp.yml b/spec/build/testsuites/optsmp.yml
new file mode 100644
index 0000000000..9851841aad
--- /dev/null
+++ b/spec/build/testsuites/optsmp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the SMP test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_SMPTESTS
+type: build
diff --git a/spec/build/testsuites/optsp.yml b/spec/build/testsuites/optsp.yml
new file mode 100644
index 0000000000..88f378f838
--- /dev/null
+++ b/spec/build/testsuites/optsp.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the single-processor test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_SPTESTS
+type: build
diff --git a/spec/build/testsuites/opttm.yml b/spec/build/testsuites/opttm.yml
new file mode 100644
index 0000000000..f5ee6afd7d
--- /dev/null
+++ b/spec/build/testsuites/opttm.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-boolean: null
+- env-enable: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+default: false
+default-by-variant: []
+description: |
+ Build the timing test programs (may be also enabled by BUILD_TESTS)
+enabled-by: true
+links: []
+name: BUILD_TMTESTS
+type: build
diff --git a/spec/build/testsuites/psxtests/grp.yml b/spec/build/testsuites/psxtests/grp.yml
new file mode 100644
index 0000000000..47dedac275
--- /dev/null
+++ b/spec/build/testsuites/psxtests/grp.yml
@@ -0,0 +1,235 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_PSXTESTS
+includes:
+- testsuites/support/include
+- testsuites/psxtests/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: libpsxhdrs
+- role: build-dependency
+ uid: psx01
+- role: build-dependency
+ uid: psx02
+- role: build-dependency
+ uid: psx03
+- role: build-dependency
+ uid: psx04
+- role: build-dependency
+ uid: psx05
+- role: build-dependency
+ uid: psx06
+- role: build-dependency
+ uid: psx07
+- role: build-dependency
+ uid: psx08
+- role: build-dependency
+ uid: psx09
+- role: build-dependency
+ uid: psx10
+- role: build-dependency
+ uid: psx11
+- role: build-dependency
+ uid: psx12
+- role: build-dependency
+ uid: psx13
+- role: build-dependency
+ uid: psx14
+- role: build-dependency
+ uid: psx15
+- role: build-dependency
+ uid: psx16
+- role: build-dependency
+ uid: psxaio01
+- role: build-dependency
+ uid: psxaio02
+- role: build-dependency
+ uid: psxaio03
+- role: build-dependency
+ uid: psxalarm01
+- role: build-dependency
+ uid: psxautoinit01
+- role: build-dependency
+ uid: psxautoinit02
+- role: build-dependency
+ uid: psxbarrier01
+- role: build-dependency
+ uid: psxcancel
+- role: build-dependency
+ uid: psxcancel01
+- role: build-dependency
+ uid: psxchroot01
+- role: build-dependency
+ uid: psxclassic01
+- role: build-dependency
+ uid: psxcleanup
+- role: build-dependency
+ uid: psxcleanup01
+- role: build-dependency
+ uid: psxcleanup02
+- role: build-dependency
+ uid: psxclock
+- role: build-dependency
+ uid: psxclock01
+- role: build-dependency
+ uid: psxclockrealtime01
+- role: build-dependency
+ uid: psxconcurrency01
+- role: build-dependency
+ uid: psxcond01
+- role: build-dependency
+ uid: psxcond02
+- role: build-dependency
+ uid: psxconfig01
+- role: build-dependency
+ uid: psxdevctl01
+- role: build-dependency
+ uid: psxeintrjoin
+- role: build-dependency
+ uid: psxenosys
+- role: build-dependency
+ uid: psxfatal01
+- role: build-dependency
+ uid: psxfatal02
+- role: build-dependency
+ uid: psxfchx01
+- role: build-dependency
+ uid: psxfenv01
+- role: build-dependency
+ uid: psxfile01
+- role: build-dependency
+ uid: psxfile02
+- role: build-dependency
+ uid: psxfilelock01
+- role: build-dependency
+ uid: psxgetattrnp01
+- role: build-dependency
+ uid: psxgetrusage01
+- role: build-dependency
+ uid: psxglobalcon01
+- role: build-dependency
+ uid: psxglobalcon02
+- role: build-dependency
+ uid: psxid01
+- role: build-dependency
+ uid: psximfs01
+- role: build-dependency
+ uid: psximfs02
+- role: build-dependency
+ uid: psxintrcritical01
+- role: build-dependency
+ uid: psxinttypes01
+- role: build-dependency
+ uid: psxitimer
+- role: build-dependency
+ uid: psxkey01
+- role: build-dependency
+ uid: psxkey02
+- role: build-dependency
+ uid: psxkey03
+- role: build-dependency
+ uid: psxkey04
+- role: build-dependency
+ uid: psxkey05
+- role: build-dependency
+ uid: psxkey06
+- role: build-dependency
+ uid: psxkey07
+- role: build-dependency
+ uid: psxkey08
+- role: build-dependency
+ uid: psxkey09
+- role: build-dependency
+ uid: psxkey10
+- role: build-dependency
+ uid: psxmmap01
+- role: build-dependency
+ uid: psxmount
+- role: build-dependency
+ uid: psxmsgq01
+- role: build-dependency
+ uid: psxmsgq02
+- role: build-dependency
+ uid: psxmsgq03
+- role: build-dependency
+ uid: psxmsgq04
+- role: build-dependency
+ uid: psxmutexattr01
+- role: build-dependency
+ uid: psxndbm01
+- role: build-dependency
+ uid: psxobj01
+- role: build-dependency
+ uid: psxonce01
+- role: build-dependency
+ uid: psxpasswd01
+- role: build-dependency
+ uid: psxpasswd02
+- role: build-dependency
+ uid: psxpipe01
+- role: build-dependency
+ uid: psxrdwrv
+- role: build-dependency
+ uid: psxreaddir
+- role: build-dependency
+ uid: psxrwlock01
+- role: build-dependency
+ uid: psxsem01
+- role: build-dependency
+ uid: psxshm01
+- role: build-dependency
+ uid: psxshm02
+- role: build-dependency
+ uid: psxsignal01
+- role: build-dependency
+ uid: psxsignal02
+- role: build-dependency
+ uid: psxsignal03
+- role: build-dependency
+ uid: psxsignal04
+- role: build-dependency
+ uid: psxsignal05
+- role: build-dependency
+ uid: psxsignal06
+- role: build-dependency
+ uid: psxsignal07
+- role: build-dependency
+ uid: psxsignal08
+- role: build-dependency
+ uid: psxspin01
+- role: build-dependency
+ uid: psxstack01
+- role: build-dependency
+ uid: psxstack02
+- role: build-dependency
+ uid: psxstat
+- role: build-dependency
+ uid: psxstrsignal01
+- role: build-dependency
+ uid: psxsysconf
+- role: build-dependency
+ uid: psxthreadname01
+- role: build-dependency
+ uid: psxtime
+- role: build-dependency
+ uid: psxtimer01
+- role: build-dependency
+ uid: psxtimer02
+- role: build-dependency
+ uid: psxtimes01
+- role: build-dependency
+ uid: psxualarm
+- role: build-dependency
+ uid: psxusleep
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/psxtests/libpsxhdrs.yml b/spec/build/testsuites/psxtests/libpsxhdrs.yml
new file mode 100644
index 0000000000..67171b1033
--- /dev/null
+++ b/spec/build/testsuites/psxtests/libpsxhdrs.yml
@@ -0,0 +1,928 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: library
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install: []
+install-path: null
+links: []
+source:
+- testsuites/psxtests/psxhdrs/devctl/posix_devctl.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_destroy.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getdetachstate.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getguardsize.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getinheritsched.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getschedparam.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getschedpolicy.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getscope.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getstackaddr.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getstack.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_getstacksize.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_init.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setdetachstate.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setguardsize.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setinheritsched.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setschedparam.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setschedpolicy.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setscope.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setstackaddr.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setstack.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_attr_setstacksize.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cancel.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cleanup.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_condattr_destroy.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_condattr_getpshared.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_condattr_init.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_condattr_setpshared.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cond_broadcast.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cond_destroy.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cond_init.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cond_signal.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cond_timedwait.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cond_wait.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_create.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_detach.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_equal.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_exit.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_getconcurrency.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_getcpuclockid.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_getschedparam.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_getspecific.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_join.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_key_create.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_key_delete.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_destroy.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_getprioceiling.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_getprotocol.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_getpshared.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_init.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_setprioceiling.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_setprotocol.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_setpshared.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_destroy.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_getprioceiling.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_init.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_lock.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_setprioceiling.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_timedlock.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_trylock.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_unlock.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_once.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_self.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_setcancelstate.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_setcanceltype.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_setconcurrency.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_setschedparam.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_setspecific.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_testcancel.c
+- testsuites/psxtests/psxhdrs/sched/sched_getparam.c
+- testsuites/psxtests/psxhdrs/sched/sched_get_priority_max.c
+- testsuites/psxtests/psxhdrs/sched/sched_get_priority_min.c
+- testsuites/psxtests/psxhdrs/sched/sched_getscheduler.c
+- testsuites/psxtests/psxhdrs/sched/sched_rr_get_interval.c
+- testsuites/psxtests/psxhdrs/sched/sched_setparam.c
+- testsuites/psxtests/psxhdrs/sched/sched_setscheduler.c
+- testsuites/psxtests/psxhdrs/sched/sched_yield.c
+- testsuites/psxtests/psxhdrs/signal/pthread_sigmask.c
+- testsuites/psxtests/psxhdrs/signal/raise.c
+- testsuites/psxtests/psxhdrs/signal/signal.c
+- testsuites/psxtests/psxhdrs/signal/sigpending.c
+- testsuites/psxtests/psxhdrs/signal/sigprocmask.c
+- testsuites/psxtests/psxhdrs/signal/sigsuspend.c
+- testsuites/psxtests/psxhdrs/signal/sigtimedwait.c
+- testsuites/psxtests/psxhdrs/signal/sigwait.c
+- testsuites/psxtests/psxhdrs/signal/sigwaitinfo.c
+- testsuites/psxtests/psxhdrs/time/asctime.c
+- testsuites/psxtests/psxhdrs/time/asctime_r.c
+- testsuites/psxtests/psxhdrs/time/clock.c
+- testsuites/psxtests/psxhdrs/time/clock_getcpuclockid.c
+- testsuites/psxtests/psxhdrs/time/clock_getres.c
+- testsuites/psxtests/psxhdrs/time/clock_gettime.c
+- testsuites/psxtests/psxhdrs/time/clock_nanosleep.c
+- testsuites/psxtests/psxhdrs/time/clock_settime.c
+- testsuites/psxtests/psxhdrs/time/ctime.c
+- testsuites/psxtests/psxhdrs/time/ctime_r.c
+- testsuites/psxtests/psxhdrs/time/difftime.c
+- testsuites/psxtests/psxhdrs/time/gmtime.c
+- testsuites/psxtests/psxhdrs/time/gmtime_r.c
+- testsuites/psxtests/psxhdrs/time/localtime.c
+- testsuites/psxtests/psxhdrs/time/localtime_r.c
+- testsuites/psxtests/psxhdrs/time/mktime.c
+- testsuites/psxtests/psxhdrs/time/nanosleep.c
+- testsuites/psxtests/psxhdrs/time/strftime.c
+- testsuites/psxtests/psxhdrs/time/time.c
+- testsuites/psxtests/psxhdrs/time/timer_create.c
+- testsuites/psxtests/psxhdrs/time/timer_delete.c
+- testsuites/psxtests/psxhdrs/time/timer_getoverrun.c
+- testsuites/psxtests/psxhdrs/time/timer_gettime.c
+- testsuites/psxtests/psxhdrs/time/timer_settime.c
+- testsuites/psxtests/psxhdrs/unistd/alarm.c
+- testsuites/psxtests/psxhdrs/unistd/fdatasync.c
+- testsuites/psxtests/psxhdrs/unistd/fsync.c
+- testsuites/psxtests/psxhdrs/unistd/getegid.c
+- testsuites/psxtests/psxhdrs/unistd/geteuid.c
+- testsuites/psxtests/psxhdrs/unistd/getgid.c
+- testsuites/psxtests/psxhdrs/unistd/getgroups.c
+- testsuites/psxtests/psxhdrs/unistd/getlogin.c
+- testsuites/psxtests/psxhdrs/unistd/getlogin_r.c
+- testsuites/psxtests/psxhdrs/unistd/getpgrp.c
+- testsuites/psxtests/psxhdrs/unistd/getpid.c
+- testsuites/psxtests/psxhdrs/unistd/getppid.c
+- testsuites/psxtests/psxhdrs/unistd/getuid.c
+- testsuites/psxtests/psxhdrs/unistd/pause.c
+- testsuites/psxtests/psxhdrs/unistd/setgid.c
+- testsuites/psxtests/psxhdrs/unistd/setgroups.c
+- testsuites/psxtests/psxhdrs/unistd/setpgid.c
+- testsuites/psxtests/psxhdrs/unistd/setsid.c
+- testsuites/psxtests/psxhdrs/unistd/setuid.c
+- testsuites/psxtests/psxhdrs/unistd/sleep.c
+- testsuites/psxtests/psxhdrs/unistd/sync.c
+- testsuites/psxtests/psxhdrs/unistd/ualarm.c
+- testsuites/psxtests/psxhdrs/unistd/usleep.c
+- testsuites/psxtests/psxhdrs/sys/mman/mlockall.c
+- testsuites/psxtests/psxhdrs/utime/utime.c
+- testsuites/psxtests/psxhdrs/wordexp/wordexp.c
+- testsuites/psxtests/psxhdrs/wordexp/wordfree.c
+- testsuites/psxtests/psxhdrs/sys/mman/mlock.c
+- testsuites/psxtests/psxhdrs/sys/mman/mmap.c
+- testsuites/psxtests/psxhdrs/sys/mman/mprotect.c
+- testsuites/psxtests/psxhdrs/sys/mman/msync.c
+- testsuites/psxtests/psxhdrs/sys/mman/munlockall.c
+- testsuites/psxtests/psxhdrs/sys/mman/munlock.c
+- testsuites/psxtests/psxhdrs/sys/mman/munmap.c
+- testsuites/psxtests/psxhdrs/sys/mman/posix_madvise.c
+- testsuites/psxtests/psxhdrs/sys/mman/shm_open.c
+- testsuites/psxtests/psxhdrs/sys/mman/shm_unlink.c
+- testsuites/psxtests/psxhdrs/sys/socket/accept.c
+- testsuites/psxtests/psxhdrs/sys/socket/bind.c
+- testsuites/psxtests/psxhdrs/sys/socket/connect.c
+- testsuites/psxtests/psxhdrs/sys/socket/getpeername.c
+- testsuites/psxtests/psxhdrs/sys/socket/getsockname.c
+- testsuites/psxtests/psxhdrs/sys/socket/getsockopt.c
+- testsuites/psxtests/psxhdrs/sys/socket/listen.c
+- testsuites/psxtests/psxhdrs/sys/socket/recv.c
+- testsuites/psxtests/psxhdrs/sys/socket/recvfrom.c
+- testsuites/psxtests/psxhdrs/sys/socket/recvmsg.c
+- testsuites/psxtests/psxhdrs/sys/socket/send.c
+- testsuites/psxtests/psxhdrs/sys/socket/sendmsg.c
+- testsuites/psxtests/psxhdrs/sys/socket/sendto.c
+- testsuites/psxtests/psxhdrs/sys/socket/setsockopt.c
+- testsuites/psxtests/psxhdrs/sys/socket/shutdown.c
+- testsuites/psxtests/psxhdrs/sys/socket/socket.c
+- testsuites/psxtests/psxhdrs/sys/socket/socketpair.c
+- testsuites/psxtests/psxhdrs/sys/stat/chmod.c
+- testsuites/psxtests/psxhdrs/sys/stat/fchmodat.c
+- testsuites/psxtests/psxhdrs/sys/stat/fchmod.c
+- testsuites/psxtests/psxhdrs/sys/stat/fstatat.c
+- testsuites/psxtests/psxhdrs/sys/stat/fstat.c
+- testsuites/psxtests/psxhdrs/sys/stat/futimens.c
+- testsuites/psxtests/psxhdrs/sys/stat/lstat.c
+- testsuites/psxtests/psxhdrs/sys/stat/mkdirat.c
+- testsuites/psxtests/psxhdrs/sys/stat/mkdir.c
+- testsuites/psxtests/psxhdrs/sys/stat/mkfifoat.c
+- testsuites/psxtests/psxhdrs/sys/stat/mkfifo.c
+- testsuites/psxtests/psxhdrs/sys/stat/mknodat.c
+- testsuites/psxtests/psxhdrs/sys/stat/mknod.c
+- testsuites/psxtests/psxhdrs/sys/stat/stat.c
+- testsuites/psxtests/psxhdrs/sys/stat/umask.c
+- testsuites/psxtests/psxhdrs/sys/stat/utimensat.c
+- testsuites/psxtests/psxhdrs/sys/time/select.c
+- testsuites/psxtests/psxhdrs/sys/time/utimes.c
+- testsuites/psxtests/psxhdrs/sys/time/setitimer.c
+- testsuites/psxtests/psxhdrs/sys/time/getitimer.c
+- testsuites/psxtests/psxhdrs/sys/time/gettimeofday.c
+- testsuites/psxtests/psxhdrs/sys/utsname/uname.c
+- testsuites/psxtests/psxhdrs/dirent/alphasort.c
+- testsuites/psxtests/psxhdrs/dirent/closedir.c
+- testsuites/psxtests/psxhdrs/dirent/opendir.c
+- testsuites/psxtests/psxhdrs/dirent/readdir.c
+- testsuites/psxtests/psxhdrs/dirent/readdir_r.c
+- testsuites/psxtests/psxhdrs/dirent/rewinddir.c
+- testsuites/psxtests/psxhdrs/dirent/scandir.c
+- testsuites/psxtests/psxhdrs/dirent/seekdir.c
+- testsuites/psxtests/psxhdrs/dirent/telldir.c
+- testsuites/psxtests/psxhdrs/errno/errno.c
+- testsuites/psxtests/psxhdrs/glob/glob.c
+- testsuites/psxtests/psxhdrs/glob/globfree.c
+- testsuites/psxtests/psxhdrs/libgen/basename.c
+- testsuites/psxtests/psxhdrs/libgen/dirname.c
+- testsuites/psxtests/psxhdrs/math/acos.c
+- testsuites/psxtests/psxhdrs/math/acosf.c
+- testsuites/psxtests/psxhdrs/math/acosh.c
+- testsuites/psxtests/psxhdrs/math/acoshf.c
+- testsuites/psxtests/psxhdrs/math/acoshl.c
+- testsuites/psxtests/psxhdrs/math/acosl.c
+- testsuites/psxtests/psxhdrs/math/asin.c
+- testsuites/psxtests/psxhdrs/math/asinf.c
+- testsuites/psxtests/psxhdrs/math/asinh.c
+- testsuites/psxtests/psxhdrs/math/asinhf.c
+- testsuites/psxtests/psxhdrs/math/asinhl.c
+- testsuites/psxtests/psxhdrs/math/asinl.c
+- testsuites/psxtests/psxhdrs/math/atan2.c
+- testsuites/psxtests/psxhdrs/math/atan2f.c
+- testsuites/psxtests/psxhdrs/math/atan2l.c
+- testsuites/psxtests/psxhdrs/math/atan.c
+- testsuites/psxtests/psxhdrs/math/atanf.c
+- testsuites/psxtests/psxhdrs/math/atanh.c
+- testsuites/psxtests/psxhdrs/math/atanhf.c
+- testsuites/psxtests/psxhdrs/math/atanhl.c
+- testsuites/psxtests/psxhdrs/math/atanl.c
+- testsuites/psxtests/psxhdrs/math/cbrt.c
+- testsuites/psxtests/psxhdrs/math/cbrtf.c
+- testsuites/psxtests/psxhdrs/math/cbrtl.c
+- testsuites/psxtests/psxhdrs/math/ceil.c
+- testsuites/psxtests/psxhdrs/math/ceilf.c
+- testsuites/psxtests/psxhdrs/math/ceill.c
+- testsuites/psxtests/psxhdrs/math/copysign.c
+- testsuites/psxtests/psxhdrs/math/copysignf.c
+- testsuites/psxtests/psxhdrs/math/copysignl.c
+- testsuites/psxtests/psxhdrs/math/cos.c
+- testsuites/psxtests/psxhdrs/math/cosf.c
+- testsuites/psxtests/psxhdrs/math/cosh.c
+- testsuites/psxtests/psxhdrs/math/coshf.c
+- testsuites/psxtests/psxhdrs/math/coshl.c
+- testsuites/psxtests/psxhdrs/math/cosl.c
+- testsuites/psxtests/psxhdrs/math/erf.c
+- testsuites/psxtests/psxhdrs/math/erfc.c
+- testsuites/psxtests/psxhdrs/math/erfcf.c
+- testsuites/psxtests/psxhdrs/math/erfcl.c
+- testsuites/psxtests/psxhdrs/math/erff.c
+- testsuites/psxtests/psxhdrs/math/erfl.c
+- testsuites/psxtests/psxhdrs/math/exp2.c
+- testsuites/psxtests/psxhdrs/math/exp2f.c
+- testsuites/psxtests/psxhdrs/math/exp2l.c
+- testsuites/psxtests/psxhdrs/math/exp.c
+- testsuites/psxtests/psxhdrs/math/expf.c
+- testsuites/psxtests/psxhdrs/math/expl.c
+- testsuites/psxtests/psxhdrs/math/expm1.c
+- testsuites/psxtests/psxhdrs/math/expm1f.c
+- testsuites/psxtests/psxhdrs/math/expm1l.c
+- testsuites/psxtests/psxhdrs/math/fabs.c
+- testsuites/psxtests/psxhdrs/math/fabsf.c
+- testsuites/psxtests/psxhdrs/math/fabsl.c
+- testsuites/psxtests/psxhdrs/math/fdim.c
+- testsuites/psxtests/psxhdrs/math/fdimf.c
+- testsuites/psxtests/psxhdrs/math/fdiml.c
+- testsuites/psxtests/psxhdrs/math/floor.c
+- testsuites/psxtests/psxhdrs/math/floorf.c
+- testsuites/psxtests/psxhdrs/math/floorl.c
+- testsuites/psxtests/psxhdrs/math/fma.c
+- testsuites/psxtests/psxhdrs/math/fmaf.c
+- testsuites/psxtests/psxhdrs/math/fmal.c
+- testsuites/psxtests/psxhdrs/math/fmax.c
+- testsuites/psxtests/psxhdrs/math/fmaxf.c
+- testsuites/psxtests/psxhdrs/math/fmaxl.c
+- testsuites/psxtests/psxhdrs/math/fmin.c
+- testsuites/psxtests/psxhdrs/math/fminf.c
+- testsuites/psxtests/psxhdrs/math/fminl.c
+- testsuites/psxtests/psxhdrs/math/fmod.c
+- testsuites/psxtests/psxhdrs/math/fmodf.c
+- testsuites/psxtests/psxhdrs/math/fmodl.c
+- testsuites/psxtests/psxhdrs/math/fpclassify.c
+- testsuites/psxtests/psxhdrs/math/frexp.c
+- testsuites/psxtests/psxhdrs/math/frexpf.c
+- testsuites/psxtests/psxhdrs/math/frexpl.c
+- testsuites/psxtests/psxhdrs/math/hypot.c
+- testsuites/psxtests/psxhdrs/math/hypotf.c
+- testsuites/psxtests/psxhdrs/math/hypotl.c
+- testsuites/psxtests/psxhdrs/math/ilogb.c
+- testsuites/psxtests/psxhdrs/math/ilogbf.c
+- testsuites/psxtests/psxhdrs/math/ilogbl.c
+- testsuites/psxtests/psxhdrs/math/isfinite.c
+- testsuites/psxtests/psxhdrs/math/isgreater.c
+- testsuites/psxtests/psxhdrs/math/isgreaterequal.c
+- testsuites/psxtests/psxhdrs/math/isinf.c
+- testsuites/psxtests/psxhdrs/math/isless.c
+- testsuites/psxtests/psxhdrs/math/islessequal.c
+- testsuites/psxtests/psxhdrs/math/islessgreater.c
+- testsuites/psxtests/psxhdrs/math/isnan.c
+- testsuites/psxtests/psxhdrs/math/isnormal.c
+- testsuites/psxtests/psxhdrs/math/isunordered.c
+- testsuites/psxtests/psxhdrs/math/ldexp.c
+- testsuites/psxtests/psxhdrs/math/ldexpf.c
+- testsuites/psxtests/psxhdrs/math/ldexpl.c
+- testsuites/psxtests/psxhdrs/math/lgamma.c
+- testsuites/psxtests/psxhdrs/math/lgammaf.c
+- testsuites/psxtests/psxhdrs/math/lgammal.c
+- testsuites/psxtests/psxhdrs/math/llrint.c
+- testsuites/psxtests/psxhdrs/math/llrintf.c
+- testsuites/psxtests/psxhdrs/math/llrintl.c
+- testsuites/psxtests/psxhdrs/math/llround.c
+- testsuites/psxtests/psxhdrs/math/llroundf.c
+- testsuites/psxtests/psxhdrs/math/llroundl.c
+- testsuites/psxtests/psxhdrs/math/log10.c
+- testsuites/psxtests/psxhdrs/math/log10f.c
+- testsuites/psxtests/psxhdrs/math/log10l.c
+- testsuites/psxtests/psxhdrs/math/log1p.c
+- testsuites/psxtests/psxhdrs/math/log1pf.c
+- testsuites/psxtests/psxhdrs/math/log1pl.c
+- testsuites/psxtests/psxhdrs/math/log2.c
+- testsuites/psxtests/psxhdrs/math/log2f.c
+- testsuites/psxtests/psxhdrs/math/log2l.c
+- testsuites/psxtests/psxhdrs/math/logb.c
+- testsuites/psxtests/psxhdrs/math/logbf.c
+- testsuites/psxtests/psxhdrs/math/logbl.c
+- testsuites/psxtests/psxhdrs/math/log.c
+- testsuites/psxtests/psxhdrs/math/logf.c
+- testsuites/psxtests/psxhdrs/math/logl.c
+- testsuites/psxtests/psxhdrs/math/lrint.c
+- testsuites/psxtests/psxhdrs/math/lrintf.c
+- testsuites/psxtests/psxhdrs/math/lrintl.c
+- testsuites/psxtests/psxhdrs/math/lround.c
+- testsuites/psxtests/psxhdrs/math/lroundf.c
+- testsuites/psxtests/psxhdrs/math/lroundl.c
+- testsuites/psxtests/psxhdrs/math/modf.c
+- testsuites/psxtests/psxhdrs/math/modff.c
+- testsuites/psxtests/psxhdrs/math/modfl.c
+- testsuites/psxtests/psxhdrs/math/nan.c
+- testsuites/psxtests/psxhdrs/math/nanf.c
+- testsuites/psxtests/psxhdrs/math/nanl.c
+- testsuites/psxtests/psxhdrs/math/nearbyint.c
+- testsuites/psxtests/psxhdrs/math/nearbyintf.c
+- testsuites/psxtests/psxhdrs/math/nearbyintl.c
+- testsuites/psxtests/psxhdrs/math/nextafter.c
+- testsuites/psxtests/psxhdrs/math/nextafterf.c
+- testsuites/psxtests/psxhdrs/math/nextafterl.c
+- testsuites/psxtests/psxhdrs/math/nexttoward.c
+- testsuites/psxtests/psxhdrs/math/nexttowardf.c
+- testsuites/psxtests/psxhdrs/math/nexttowardl.c
+- testsuites/psxtests/psxhdrs/math/pow.c
+- testsuites/psxtests/psxhdrs/math/powf.c
+- testsuites/psxtests/psxhdrs/math/powl.c
+- testsuites/psxtests/psxhdrs/math/remainder.c
+- testsuites/psxtests/psxhdrs/math/remainderf.c
+- testsuites/psxtests/psxhdrs/math/remainderl.c
+- testsuites/psxtests/psxhdrs/math/remquo.c
+- testsuites/psxtests/psxhdrs/math/remquof.c
+- testsuites/psxtests/psxhdrs/math/remquol.c
+- testsuites/psxtests/psxhdrs/math/rint.c
+- testsuites/psxtests/psxhdrs/math/rintf.c
+- testsuites/psxtests/psxhdrs/math/rintl.c
+- testsuites/psxtests/psxhdrs/math/round.c
+- testsuites/psxtests/psxhdrs/math/roundf.c
+- testsuites/psxtests/psxhdrs/math/roundl.c
+- testsuites/psxtests/psxhdrs/math/scalbln.c
+- testsuites/psxtests/psxhdrs/math/scalblnf.c
+- testsuites/psxtests/psxhdrs/math/scalblnl.c
+- testsuites/psxtests/psxhdrs/math/scalbn.c
+- testsuites/psxtests/psxhdrs/math/scalbnf.c
+- testsuites/psxtests/psxhdrs/math/scalbnl.c
+- testsuites/psxtests/psxhdrs/math/signbit.c
+- testsuites/psxtests/psxhdrs/math/sin.c
+- testsuites/psxtests/psxhdrs/math/sinf.c
+- testsuites/psxtests/psxhdrs/math/sinh.c
+- testsuites/psxtests/psxhdrs/math/sinhf.c
+- testsuites/psxtests/psxhdrs/math/sinhl.c
+- testsuites/psxtests/psxhdrs/math/sinl.c
+- testsuites/psxtests/psxhdrs/math/sqrt.c
+- testsuites/psxtests/psxhdrs/math/sqrtf.c
+- testsuites/psxtests/psxhdrs/math/sqrtl.c
+- testsuites/psxtests/psxhdrs/math/tan.c
+- testsuites/psxtests/psxhdrs/math/tanf.c
+- testsuites/psxtests/psxhdrs/math/tanh.c
+- testsuites/psxtests/psxhdrs/math/tanhf.c
+- testsuites/psxtests/psxhdrs/math/tanhl.c
+- testsuites/psxtests/psxhdrs/math/tanl.c
+- testsuites/psxtests/psxhdrs/math/tgamma.c
+- testsuites/psxtests/psxhdrs/math/tgammaf.c
+- testsuites/psxtests/psxhdrs/math/tgammal.c
+- testsuites/psxtests/psxhdrs/math/trunc.c
+- testsuites/psxtests/psxhdrs/math/truncf.c
+- testsuites/psxtests/psxhdrs/math/truncl.c
+- testsuites/psxtests/psxhdrs/math/y0.c
+- testsuites/psxtests/psxhdrs/math/y0f.c
+- testsuites/psxtests/psxhdrs/math/y1.c
+- testsuites/psxtests/psxhdrs/math/y1f.c
+- testsuites/psxtests/psxhdrs/math/yn.c
+- testsuites/psxtests/psxhdrs/math/ynf.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_open.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_close.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_getattr.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_setattr.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_notify.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_receive.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_send.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_timedreceive.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_timedsend.c
+- testsuites/psxtests/psxhdrs/mqueue/mq_unlink.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_init.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_destroy.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_open.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_close.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_getvalue.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_unlink.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_post.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_wait.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_trywait.c
+- testsuites/psxtests/psxhdrs/semaphore/sem_timedwait.c
+- testsuites/psxtests/psxhdrs/stddef/offsetof.c
+- testsuites/psxtests/psxhdrs/stdio/clearerr.c
+- testsuites/psxtests/psxhdrs/stdio/ctermid.c
+- testsuites/psxtests/psxhdrs/stdio/dprintf.c
+- testsuites/psxtests/psxhdrs/stdio/fclose.c
+- testsuites/psxtests/psxhdrs/stdio/fdopen.c
+- testsuites/psxtests/psxhdrs/stdio/feof.c
+- testsuites/psxtests/psxhdrs/stdio/ferror.c
+- testsuites/psxtests/psxhdrs/stdio/fflush.c
+- testsuites/psxtests/psxhdrs/stdio/fgetc.c
+- testsuites/psxtests/psxhdrs/stdio/fgetpos.c
+- testsuites/psxtests/psxhdrs/stdio/fgets.c
+- testsuites/psxtests/psxhdrs/stdio/fileno.c
+- testsuites/psxtests/psxhdrs/stdio/flockfile.c
+- testsuites/psxtests/psxhdrs/stdio/fmemopen.c
+- testsuites/psxtests/psxhdrs/stdio/fopen.c
+- testsuites/psxtests/psxhdrs/stdio/fprintf.c
+- testsuites/psxtests/psxhdrs/stdio/fputc.c
+- testsuites/psxtests/psxhdrs/stdio/fputs.c
+- testsuites/psxtests/psxhdrs/stdio/fread.c
+- testsuites/psxtests/psxhdrs/stdio/freopen.c
+- testsuites/psxtests/psxhdrs/stdio/fscanf.c
+- testsuites/psxtests/psxhdrs/stdio/fseek.c
+- testsuites/psxtests/psxhdrs/stdio/fseeko.c
+- testsuites/psxtests/psxhdrs/stdio/fsetpos.c
+- testsuites/psxtests/psxhdrs/stdio/ftell.c
+- testsuites/psxtests/psxhdrs/stdio/ftello.c
+- testsuites/psxtests/psxhdrs/stdio/ftrylockfile.c
+- testsuites/psxtests/psxhdrs/stdio/funlockfile.c
+- testsuites/psxtests/psxhdrs/stdio/fwrite.c
+- testsuites/psxtests/psxhdrs/stdio/getc.c
+- testsuites/psxtests/psxhdrs/stdio/getc_unlocked.c
+- testsuites/psxtests/psxhdrs/stdio/getchar.c
+- testsuites/psxtests/psxhdrs/stdio/getchar_unlocked.c
+- testsuites/psxtests/psxhdrs/stdio/gets.c
+- testsuites/psxtests/psxhdrs/stdio/open_memstream.c
+- testsuites/psxtests/psxhdrs/stdio/perror.c
+- testsuites/psxtests/psxhdrs/stdio/printf.c
+- testsuites/psxtests/psxhdrs/stdio/putc.c
+- testsuites/psxtests/psxhdrs/stdio/putc_unlocked.c
+- testsuites/psxtests/psxhdrs/stdio/putchar.c
+- testsuites/psxtests/psxhdrs/stdio/putchar_unlocked.c
+- testsuites/psxtests/psxhdrs/stdio/puts.c
+- testsuites/psxtests/psxhdrs/stdio/remove.c
+- testsuites/psxtests/psxhdrs/stdio/rename.c
+- testsuites/psxtests/psxhdrs/stdio/rewind.c
+- testsuites/psxtests/psxhdrs/stdio/scanf.c
+- testsuites/psxtests/psxhdrs/stdio/setbuf.c
+- testsuites/psxtests/psxhdrs/stdio/setvbuf.c
+- testsuites/psxtests/psxhdrs/stdio/snprintf.c
+- testsuites/psxtests/psxhdrs/stdio/sprintf.c
+- testsuites/psxtests/psxhdrs/stdio/sscanf.c
+- testsuites/psxtests/psxhdrs/stdio/stderr.c
+- testsuites/psxtests/psxhdrs/stdio/stdin.c
+- testsuites/psxtests/psxhdrs/stdio/stdout.c
+- testsuites/psxtests/psxhdrs/stdio/tempnam.c
+- testsuites/psxtests/psxhdrs/stdio/tmpfile.c
+- testsuites/psxtests/psxhdrs/stdio/tmpnam.c
+- testsuites/psxtests/psxhdrs/stdio/ungetc.c
+- testsuites/psxtests/psxhdrs/stdio/vdprintf.c
+- testsuites/psxtests/psxhdrs/stdio/vfprintf.c
+- testsuites/psxtests/psxhdrs/stdio/vfscanf.c
+- testsuites/psxtests/psxhdrs/stdio/vprintf.c
+- testsuites/psxtests/psxhdrs/stdio/vscanf.c
+- testsuites/psxtests/psxhdrs/stdio/vsnprintf.c
+- testsuites/psxtests/psxhdrs/stdio/vsprintf.c
+- testsuites/psxtests/psxhdrs/stdio/vsscanf.c
+- testsuites/psxtests/psxhdrs/stdio/pclose.c
+- testsuites/psxtests/psxhdrs/stdio/popen.c
+- testsuites/psxtests/psxhdrs/string/memccpy.c
+- testsuites/psxtests/psxhdrs/string/memchr.c
+- testsuites/psxtests/psxhdrs/string/memcmp.c
+- testsuites/psxtests/psxhdrs/string/memcpy.c
+- testsuites/psxtests/psxhdrs/string/memmove.c
+- testsuites/psxtests/psxhdrs/string/memset.c
+- testsuites/psxtests/psxhdrs/string/stpcpy.c
+- testsuites/psxtests/psxhdrs/string/stpncpy.c
+- testsuites/psxtests/psxhdrs/string/strcat.c
+- testsuites/psxtests/psxhdrs/string/strchr.c
+- testsuites/psxtests/psxhdrs/string/strcmp.c
+- testsuites/psxtests/psxhdrs/string/strcoll.c
+- testsuites/psxtests/psxhdrs/string/strcoll_l.c
+- testsuites/psxtests/psxhdrs/string/strcpy.c
+- testsuites/psxtests/psxhdrs/string/strcspn.c
+- testsuites/psxtests/psxhdrs/string/strdup.c
+- testsuites/psxtests/psxhdrs/string/strerror.c
+- testsuites/psxtests/psxhdrs/string/strerror_l.c
+- testsuites/psxtests/psxhdrs/string/strerror_r.c
+- testsuites/psxtests/psxhdrs/string/strlen.c
+- testsuites/psxtests/psxhdrs/string/strncat.c
+- testsuites/psxtests/psxhdrs/string/strncmp.c
+- testsuites/psxtests/psxhdrs/string/strncpy.c
+- testsuites/psxtests/psxhdrs/string/strndup.c
+- testsuites/psxtests/psxhdrs/string/strnlen.c
+- testsuites/psxtests/psxhdrs/string/strpbrk.c
+- testsuites/psxtests/psxhdrs/string/strrchr.c
+- testsuites/psxtests/psxhdrs/string/strsignal.c
+- testsuites/psxtests/psxhdrs/string/strspn.c
+- testsuites/psxtests/psxhdrs/string/strstr.c
+- testsuites/psxtests/psxhdrs/string/strtok.c
+- testsuites/psxtests/psxhdrs/string/strtok_r.c
+- testsuites/psxtests/psxhdrs/string/strxfrm.c
+- testsuites/psxtests/psxhdrs/string/strxfrm_l.c
+- testsuites/psxtests/psxhdrs/strings/bcmp.c
+- testsuites/psxtests/psxhdrs/strings/bcopy.c
+- testsuites/psxtests/psxhdrs/strings/ffs.c
+- testsuites/psxtests/psxhdrs/strings/index.c
+- testsuites/psxtests/psxhdrs/strings/rindex.c
+- testsuites/psxtests/psxhdrs/strings/strcasecmp.c
+- testsuites/psxtests/psxhdrs/strings/strcasecmp_l.c
+- testsuites/psxtests/psxhdrs/strings/strncasecmp.c
+- testsuites/psxtests/psxhdrs/strings/strncasecmp_l.c
+- testsuites/psxtests/psxhdrs/dlfcn/dlopen.c
+- testsuites/psxtests/psxhdrs/dlfcn/dlclose.c
+- testsuites/psxtests/psxhdrs/dlfcn/dlerror.c
+- testsuites/psxtests/psxhdrs/dlfcn/dlsym.c
+- testsuites/psxtests/psxhdrs/fcntl/creat.c
+- testsuites/psxtests/psxhdrs/fcntl/fcntl.c
+- testsuites/psxtests/psxhdrs/fcntl/open.c
+- testsuites/psxtests/psxhdrs/fcntl/openat.c
+- testsuites/psxtests/psxhdrs/locale/newlocale.c
+- testsuites/psxtests/psxhdrs/locale/freelocale.c
+- testsuites/psxtests/psxhdrs/locale/uselocale.c
+- testsuites/psxtests/psxhdrs/locale/setlocale.c
+- testsuites/psxtests/psxhdrs/locale/duplocale.c
+- testsuites/psxtests/psxhdrs/locale/localeconv.c
+- testsuites/psxtests/psxhdrs/regex/regcomp.c
+- testsuites/psxtests/psxhdrs/regex/regerror.c
+- testsuites/psxtests/psxhdrs/regex/regexec.c
+- testsuites/psxtests/psxhdrs/regex/regfree.c
+- testsuites/psxtests/psxhdrs/fnmatch/fnmatch.c
+- testsuites/psxtests/psxhdrs/iconv/iconv.c
+- testsuites/psxtests/psxhdrs/iconv/iconv_close.c
+- testsuites/psxtests/psxhdrs/iconv/iconv_open.c
+- testsuites/psxtests/psxhdrs/langinfo/nl_langinfo.c
+- testsuites/psxtests/psxhdrs/langinfo/nl_langinfo_l.c
+- testsuites/psxtests/psxhdrs/assert/assert.c
+- testsuites/psxtests/psxhdrs/complex/cabs.c
+- testsuites/psxtests/psxhdrs/complex/cabsf.c
+- testsuites/psxtests/psxhdrs/complex/cabsl.c
+- testsuites/psxtests/psxhdrs/complex/cacos.c
+- testsuites/psxtests/psxhdrs/complex/cacosf.c
+- testsuites/psxtests/psxhdrs/complex/cacosh.c
+- testsuites/psxtests/psxhdrs/complex/cacoshf.c
+- testsuites/psxtests/psxhdrs/complex/cacoshl.c
+- testsuites/psxtests/psxhdrs/complex/cacosl.c
+- testsuites/psxtests/psxhdrs/complex/carg.c
+- testsuites/psxtests/psxhdrs/complex/cargf.c
+- testsuites/psxtests/psxhdrs/complex/cargl.c
+- testsuites/psxtests/psxhdrs/complex/casin.c
+- testsuites/psxtests/psxhdrs/complex/casinf.c
+- testsuites/psxtests/psxhdrs/complex/casinh.c
+- testsuites/psxtests/psxhdrs/complex/casinhf.c
+- testsuites/psxtests/psxhdrs/complex/casinhl.c
+- testsuites/psxtests/psxhdrs/complex/casinl.c
+- testsuites/psxtests/psxhdrs/complex/catan.c
+- testsuites/psxtests/psxhdrs/complex/catanf.c
+- testsuites/psxtests/psxhdrs/complex/catanh.c
+- testsuites/psxtests/psxhdrs/complex/catanhf.c
+- testsuites/psxtests/psxhdrs/complex/catanhl.c
+- testsuites/psxtests/psxhdrs/complex/catanl.c
+- testsuites/psxtests/psxhdrs/complex/ccos.c
+- testsuites/psxtests/psxhdrs/complex/ccosf.c
+- testsuites/psxtests/psxhdrs/complex/ccosh.c
+- testsuites/psxtests/psxhdrs/complex/ccoshf.c
+- testsuites/psxtests/psxhdrs/complex/ccoshl.c
+- testsuites/psxtests/psxhdrs/complex/ccosl.c
+- testsuites/psxtests/psxhdrs/complex/cexp.c
+- testsuites/psxtests/psxhdrs/complex/cexpf.c
+- testsuites/psxtests/psxhdrs/complex/cexpl.c
+- testsuites/psxtests/psxhdrs/complex/cimag.c
+- testsuites/psxtests/psxhdrs/complex/cimagf.c
+- testsuites/psxtests/psxhdrs/complex/cimagl.c
+- testsuites/psxtests/psxhdrs/complex/clog.c
+- testsuites/psxtests/psxhdrs/complex/clogf.c
+- testsuites/psxtests/psxhdrs/complex/clogl.c
+- testsuites/psxtests/psxhdrs/complex/conj.c
+- testsuites/psxtests/psxhdrs/complex/conjf.c
+- testsuites/psxtests/psxhdrs/complex/conjl.c
+- testsuites/psxtests/psxhdrs/complex/cpow.c
+- testsuites/psxtests/psxhdrs/complex/cpowf.c
+- testsuites/psxtests/psxhdrs/complex/cpowl.c
+- testsuites/psxtests/psxhdrs/complex/cproj.c
+- testsuites/psxtests/psxhdrs/complex/cprojf.c
+- testsuites/psxtests/psxhdrs/complex/cprojl.c
+- testsuites/psxtests/psxhdrs/complex/creal.c
+- testsuites/psxtests/psxhdrs/complex/crealf.c
+- testsuites/psxtests/psxhdrs/complex/creall.c
+- testsuites/psxtests/psxhdrs/complex/csin.c
+- testsuites/psxtests/psxhdrs/complex/csinf.c
+- testsuites/psxtests/psxhdrs/complex/csinh.c
+- testsuites/psxtests/psxhdrs/complex/csinhf.c
+- testsuites/psxtests/psxhdrs/complex/csinhl.c
+- testsuites/psxtests/psxhdrs/complex/csinl.c
+- testsuites/psxtests/psxhdrs/complex/csqrt.c
+- testsuites/psxtests/psxhdrs/complex/csqrtf.c
+- testsuites/psxtests/psxhdrs/complex/csqrtl.c
+- testsuites/psxtests/psxhdrs/complex/ctan.c
+- testsuites/psxtests/psxhdrs/complex/ctanf.c
+- testsuites/psxtests/psxhdrs/complex/ctanh.c
+- testsuites/psxtests/psxhdrs/complex/ctanhf.c
+- testsuites/psxtests/psxhdrs/complex/ctanhl.c
+- testsuites/psxtests/psxhdrs/complex/ctanl.c
+- testsuites/psxtests/psxhdrs/ctype/isalnum.c
+- testsuites/psxtests/psxhdrs/ctype/isalnum_l.c
+- testsuites/psxtests/psxhdrs/ctype/isalpha.c
+- testsuites/psxtests/psxhdrs/ctype/isalpha_l.c
+- testsuites/psxtests/psxhdrs/ctype/isascii.c
+- testsuites/psxtests/psxhdrs/ctype/isblank.c
+- testsuites/psxtests/psxhdrs/ctype/isblank_l.c
+- testsuites/psxtests/psxhdrs/ctype/iscntrl.c
+- testsuites/psxtests/psxhdrs/ctype/iscntrl_l.c
+- testsuites/psxtests/psxhdrs/ctype/isdigit.c
+- testsuites/psxtests/psxhdrs/ctype/isdigit_l.c
+- testsuites/psxtests/psxhdrs/ctype/isgraph.c
+- testsuites/psxtests/psxhdrs/ctype/isgraph_l.c
+- testsuites/psxtests/psxhdrs/ctype/islower.c
+- testsuites/psxtests/psxhdrs/ctype/islower_l.c
+- testsuites/psxtests/psxhdrs/ctype/isprint.c
+- testsuites/psxtests/psxhdrs/ctype/isprint_l.c
+- testsuites/psxtests/psxhdrs/ctype/ispunct.c
+- testsuites/psxtests/psxhdrs/ctype/ispunct_l.c
+- testsuites/psxtests/psxhdrs/ctype/isspace.c
+- testsuites/psxtests/psxhdrs/ctype/isspace_l.c
+- testsuites/psxtests/psxhdrs/ctype/isupper.c
+- testsuites/psxtests/psxhdrs/ctype/isupper_l.c
+- testsuites/psxtests/psxhdrs/ctype/isxdigit.c
+- testsuites/psxtests/psxhdrs/ctype/isxdigit_l.c
+- testsuites/psxtests/psxhdrs/ctype/toascii.c
+- testsuites/psxtests/psxhdrs/ctype/tolower.c
+- testsuites/psxtests/psxhdrs/ctype/tolower_l.c
+- testsuites/psxtests/psxhdrs/ctype/toupper.c
+- testsuites/psxtests/psxhdrs/ctype/toupper_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswalnum.c
+- testsuites/psxtests/psxhdrs/wctype/iswalnum_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswalpha.c
+- testsuites/psxtests/psxhdrs/wctype/iswalpha_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswblank.c
+- testsuites/psxtests/psxhdrs/wctype/iswblank_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswcntrl.c
+- testsuites/psxtests/psxhdrs/wctype/iswcntrl_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswctype.c
+- testsuites/psxtests/psxhdrs/wctype/iswctype_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswdigit.c
+- testsuites/psxtests/psxhdrs/wctype/iswdigit_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswgraph.c
+- testsuites/psxtests/psxhdrs/wctype/iswgraph_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswlower.c
+- testsuites/psxtests/psxhdrs/wctype/iswlower_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswprint.c
+- testsuites/psxtests/psxhdrs/wctype/iswprint_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswpunct.c
+- testsuites/psxtests/psxhdrs/wctype/iswpunct_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswspace.c
+- testsuites/psxtests/psxhdrs/wctype/iswspace_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswupper.c
+- testsuites/psxtests/psxhdrs/wctype/iswupper_l.c
+- testsuites/psxtests/psxhdrs/wctype/iswxdigit.c
+- testsuites/psxtests/psxhdrs/wctype/iswxdigit_l.c
+- testsuites/psxtests/psxhdrs/wctype/towctrans.c
+- testsuites/psxtests/psxhdrs/wctype/towctrans_l.c
+- testsuites/psxtests/psxhdrs/wctype/towlower.c
+- testsuites/psxtests/psxhdrs/wctype/towlower_l.c
+- testsuites/psxtests/psxhdrs/wctype/wctrans.c
+- testsuites/psxtests/psxhdrs/wctype/wctrans_l.c
+- testsuites/psxtests/psxhdrs/wctype/wctype.c
+- testsuites/psxtests/psxhdrs/wctype/wctype_l.c
+- testsuites/psxtests/psxhdrs/inttypes/imaxabs.c
+- testsuites/psxtests/psxhdrs/inttypes/imaxdiv.c
+- testsuites/psxtests/psxhdrs/inttypes/strtoimax.c
+- testsuites/psxtests/psxhdrs/inttypes/strtoumax.c
+- testsuites/psxtests/psxhdrs/inttypes/wcstoimax.c
+- testsuites/psxtests/psxhdrs/inttypes/wcstoumax.c
+- testsuites/psxtests/psxhdrs/netdb/endhostent.c
+- testsuites/psxtests/psxhdrs/netdb/endnetent.c
+- testsuites/psxtests/psxhdrs/netdb/endprotoent.c
+- testsuites/psxtests/psxhdrs/netdb/endservent.c
+- testsuites/psxtests/psxhdrs/netdb/sethostent.c
+- testsuites/psxtests/psxhdrs/netdb/setnetent.c
+- testsuites/psxtests/psxhdrs/netdb/setservent.c
+- testsuites/psxtests/psxhdrs/netdb/gethostent.c
+- testsuites/psxtests/psxhdrs/netdb/getprotoent.c
+- testsuites/psxtests/psxhdrs/netdb/getnetent.c
+- testsuites/psxtests/psxhdrs/netdb/getservent.c
+- testsuites/psxtests/psxhdrs/netdb/freeaddrinfo.c
+- testsuites/psxtests/psxhdrs/netdb/gai_strerror.c
+- testsuites/psxtests/psxhdrs/netdb/getaddrinfo.c
+- testsuites/psxtests/psxhdrs/netdb/gethostbyaddr.c
+- testsuites/psxtests/psxhdrs/netdb/gethostbyname.c
+- testsuites/psxtests/psxhdrs/netdb/getnameinfo.c
+- testsuites/psxtests/psxhdrs/netdb/getnetbyname.c
+- testsuites/psxtests/psxhdrs/netdb/getprotobyname.c
+- testsuites/psxtests/psxhdrs/netdb/getprotobynumber.c
+- testsuites/psxtests/psxhdrs/netdb/getservbyname.c
+- testsuites/psxtests/psxhdrs/netdb/getservbyport.c
+- testsuites/psxtests/psxhdrs/netdb/h_errno.c
+- testsuites/psxtests/psxhdrs/net/if/if_freenameindex.c
+- testsuites/psxtests/psxhdrs/net/if/if_indextoname.c
+- testsuites/psxtests/psxhdrs/net/if/if_nameindex.c
+- testsuites/psxtests/psxhdrs/net/if/if_nametoindex.c
+- testsuites/psxtests/psxhdrs/arpa/inet/inet_addr.c
+- testsuites/psxtests/psxhdrs/arpa/inet/inet_ntop.c
+- testsuites/psxtests/psxhdrs/arpa/inet/inet_ntoa.c
+- testsuites/psxtests/psxhdrs/arpa/inet/inet_pton.c
+- testsuites/psxtests/psxhdrs/pwd/endpwent.c
+- testsuites/psxtests/psxhdrs/pwd/getpwent.c
+- testsuites/psxtests/psxhdrs/pwd/getpwnam.c
+- testsuites/psxtests/psxhdrs/pwd/getpwnam_r.c
+- testsuites/psxtests/psxhdrs/pwd/setpwent.c
+- testsuites/psxtests/psxhdrs/pwd/getpwuid.c
+- testsuites/psxtests/psxhdrs/pwd/getpwuid_r.c
+- testsuites/psxtests/psxhdrs/syslog/closelog.c
+- testsuites/psxtests/psxhdrs/syslog/openlog.c
+- testsuites/psxtests/psxhdrs/syslog/setlogmask.c
+- testsuites/psxtests/psxhdrs/syslog/syslog.c
+- testsuites/psxtests/psxhdrs/c11/threads/call_once.c
+- testsuites/psxtests/psxhdrs/c11/threads/cnd_broadcast.c
+- testsuites/psxtests/psxhdrs/c11/threads/cnd_destroy.c
+- testsuites/psxtests/psxhdrs/c11/threads/cnd_init.c
+- testsuites/psxtests/psxhdrs/c11/threads/cnd_signal.c
+- testsuites/psxtests/psxhdrs/c11/threads/cnd_timedwait.c
+- testsuites/psxtests/psxhdrs/c11/threads/cnd_wait.c
+- testsuites/psxtests/psxhdrs/c11/threads/mtx_init.c
+- testsuites/psxtests/psxhdrs/c11/threads/mtx_destroy.c
+- testsuites/psxtests/psxhdrs/c11/threads/mtx_lock.c
+- testsuites/psxtests/psxhdrs/c11/threads/mtx_timedlock.c
+- testsuites/psxtests/psxhdrs/c11/threads/mtx_trylock.c
+- testsuites/psxtests/psxhdrs/c11/threads/mtx_unlock.c
+- testsuites/psxtests/psxhdrs/c11/threads/thrd_create.c
+- testsuites/psxtests/psxhdrs/c11/threads/thrd_current.c
+- testsuites/psxtests/psxhdrs/c11/threads/thrd_detach.c
+- testsuites/psxtests/psxhdrs/c11/threads/thrd_equal.c
+- testsuites/psxtests/psxhdrs/c11/threads/thrd_exit.c
+- testsuites/psxtests/psxhdrs/c11/threads/thrd_join.c
+- testsuites/psxtests/psxhdrs/c11/threads/thrd_sleep.c
+- testsuites/psxtests/psxhdrs/c11/threads/thrd_yield.c
+- testsuites/psxtests/psxhdrs/c11/threads/tss_create.c
+- testsuites/psxtests/psxhdrs/c11/threads/tss_delete.c
+- testsuites/psxtests/psxhdrs/c11/threads/tss_get.c
+- testsuites/psxtests/psxhdrs/c11/threads/tss_set.c
+- testsuites/psxtests/psxhdrs/wchar/btowc.c
+- testsuites/psxtests/psxhdrs/wchar/fgetwc.c
+- testsuites/psxtests/psxhdrs/wchar/fgetws.c
+- testsuites/psxtests/psxhdrs/wchar/fputwc.c
+- testsuites/psxtests/psxhdrs/wchar/fputws.c
+- testsuites/psxtests/psxhdrs/wchar/fwide.c
+- testsuites/psxtests/psxhdrs/wchar/fwprintf.c
+- testsuites/psxtests/psxhdrs/wchar/fwscanf.c
+- testsuites/psxtests/psxhdrs/wchar/getwc.c
+- testsuites/psxtests/psxhdrs/wchar/getwchar.c
+- testsuites/psxtests/psxhdrs/wchar/iswalnum.c
+- testsuites/psxtests/psxhdrs/wchar/iswalpha.c
+- testsuites/psxtests/psxhdrs/wchar/iswcntrl.c
+- testsuites/psxtests/psxhdrs/wchar/iswctype.c
+- testsuites/psxtests/psxhdrs/wchar/iswdigit.c
+- testsuites/psxtests/psxhdrs/wchar/iswgraph.c
+- testsuites/psxtests/psxhdrs/wchar/iswlower.c
+- testsuites/psxtests/psxhdrs/wchar/iswprint.c
+- testsuites/psxtests/psxhdrs/wchar/iswpunct.c
+- testsuites/psxtests/psxhdrs/wchar/iswspace.c
+- testsuites/psxtests/psxhdrs/wchar/iswupper.c
+- testsuites/psxtests/psxhdrs/wchar/iswxdigit.c
+- testsuites/psxtests/psxhdrs/wchar/mbrlen.c
+- testsuites/psxtests/psxhdrs/wchar/mbrtowc.c
+- testsuites/psxtests/psxhdrs/wchar/mbsinit.c
+- testsuites/psxtests/psxhdrs/wchar/mbsnrtowcs.c
+- testsuites/psxtests/psxhdrs/wchar/mbsrtowcs.c
+- testsuites/psxtests/psxhdrs/wchar/open_wmemstream.c
+- testsuites/psxtests/psxhdrs/wchar/putwc.c
+- testsuites/psxtests/psxhdrs/wchar/putwchar.c
+- testsuites/psxtests/psxhdrs/wchar/swprintf.c
+- testsuites/psxtests/psxhdrs/wchar/swscanf.c
+- testsuites/psxtests/psxhdrs/wchar/towlower.c
+- testsuites/psxtests/psxhdrs/wchar/towupper.c
+- testsuites/psxtests/psxhdrs/wchar/ungetwc.c
+- testsuites/psxtests/psxhdrs/wchar/vfwprintf.c
+- testsuites/psxtests/psxhdrs/wchar/vfwscanf.c
+- testsuites/psxtests/psxhdrs/wchar/vswprintf.c
+- testsuites/psxtests/psxhdrs/wchar/vswscanf.c
+- testsuites/psxtests/psxhdrs/wchar/vwprintf.c
+- testsuites/psxtests/psxhdrs/wchar/vwscanf.c
+- testsuites/psxtests/psxhdrs/wchar/wcpcpy.c
+- testsuites/psxtests/psxhdrs/wchar/wcpncpy.c
+- testsuites/psxtests/psxhdrs/wchar/wcrtomb.c
+- testsuites/psxtests/psxhdrs/wchar/wcscasecmp.c
+- testsuites/psxtests/psxhdrs/wchar/wcscasecmp_l.c
+- testsuites/psxtests/psxhdrs/wchar/wcscat.c
+- testsuites/psxtests/psxhdrs/wchar/wcschr.c
+- testsuites/psxtests/psxhdrs/wchar/wcscmp.c
+- testsuites/psxtests/psxhdrs/wchar/wcscoll.c
+- testsuites/psxtests/psxhdrs/wchar/wcscoll_l.c
+- testsuites/psxtests/psxhdrs/wchar/wcscpy.c
+- testsuites/psxtests/psxhdrs/wchar/wcscspn.c
+- testsuites/psxtests/psxhdrs/wchar/wcsdup.c
+- testsuites/psxtests/psxhdrs/wchar/wcsnlen.c
+- testsuites/psxtests/psxhdrs/wchar/wcsnrtombs.c
+- testsuites/psxtests/psxhdrs/wchar/wcspbrk.c
+- testsuites/psxtests/psxhdrs/wchar/wcsrchr.c
+- testsuites/psxtests/psxhdrs/wchar/wcsrtombs.c
+- testsuites/psxtests/psxhdrs/wchar/wcsspn.c
+- testsuites/psxtests/psxhdrs/wchar/wcsstr.c
+- testsuites/psxtests/psxhdrs/wchar/wcstod.c
+- testsuites/psxtests/psxhdrs/wchar/wcstof.c
+- testsuites/psxtests/psxhdrs/wchar/wcstok.c
+- testsuites/psxtests/psxhdrs/wchar/wcstol.c
+- testsuites/psxtests/psxhdrs/wchar/wcstold.c
+- testsuites/psxtests/psxhdrs/wchar/wcstoll.c
+- testsuites/psxtests/psxhdrs/wchar/wcstoul.c
+- testsuites/psxtests/psxhdrs/wchar/wcstoull.c
+- testsuites/psxtests/psxhdrs/wchar/wcswidth.c
+- testsuites/psxtests/psxhdrs/wchar/wcsxfrm.c
+- testsuites/psxtests/psxhdrs/wchar/wcsxfrm_l.c
+- testsuites/psxtests/psxhdrs/wchar/wctob.c
+- testsuites/psxtests/psxhdrs/wchar/wctype.c
+- testsuites/psxtests/psxhdrs/wchar/wcwidth.c
+- testsuites/psxtests/psxhdrs/wchar/wmemchr.c
+- testsuites/psxtests/psxhdrs/wchar/wmemcmp.c
+- testsuites/psxtests/psxhdrs/wchar/wmemcpy.c
+- testsuites/psxtests/psxhdrs/wchar/wmemmove.c
+- testsuites/psxtests/psxhdrs/wchar/wmemset.c
+- testsuites/psxtests/psxhdrs/wchar/wprintf.c
+- testsuites/psxtests/psxhdrs/wchar/wscanf.c
+- testsuites/psxtests/psxhdrs/stdlib/_Exit.c
+- testsuites/psxtests/psxhdrs/stdlib/a64l.c
+- testsuites/psxtests/psxhdrs/stdlib/abort.c
+- testsuites/psxtests/psxhdrs/stdlib/abs.c
+- testsuites/psxtests/psxhdrs/stdlib/atexit.c
+- testsuites/psxtests/psxhdrs/stdlib/atof.c
+- testsuites/psxtests/psxhdrs/stdlib/atoi.c
+- testsuites/psxtests/psxhdrs/stdlib/atol.c
+- testsuites/psxtests/psxhdrs/stdlib/atoll.c
+- testsuites/psxtests/psxhdrs/stdlib/bsearch.c
+- testsuites/psxtests/psxhdrs/stdlib/calloc.c
+- testsuites/psxtests/psxhdrs/stdlib/div.c
+- testsuites/psxtests/psxhdrs/stdlib/drand48.c
+- testsuites/psxtests/psxhdrs/stdlib/erand48.c
+- testsuites/psxtests/psxhdrs/stdlib/exit.c
+- testsuites/psxtests/psxhdrs/stdlib/free.c
+- testsuites/psxtests/psxhdrs/stdlib/getenv.c
+- testsuites/psxtests/psxhdrs/stdlib/initstate.c
+- testsuites/psxtests/psxhdrs/stdlib/jrand48.c
+- testsuites/psxtests/psxhdrs/stdlib/l64a.c
+- testsuites/psxtests/psxhdrs/stdlib/labs.c
+- testsuites/psxtests/psxhdrs/stdlib/lcong48.c
+- testsuites/psxtests/psxhdrs/stdlib/ldiv.c
+- testsuites/psxtests/psxhdrs/stdlib/llabs.c
+- testsuites/psxtests/psxhdrs/stdlib/lldiv.c
+- testsuites/psxtests/psxhdrs/stdlib/lrand48.c
+- testsuites/psxtests/psxhdrs/stdlib/malloc.c
+- testsuites/psxtests/psxhdrs/stdlib/mblen.c
+- testsuites/psxtests/psxhdrs/stdlib/mbstowcs.c
+- testsuites/psxtests/psxhdrs/stdlib/mbtowc.c
+- testsuites/psxtests/psxhdrs/stdlib/mkdtemp.c
+- testsuites/psxtests/psxhdrs/stdlib/mkstemp.c
+- testsuites/psxtests/psxhdrs/stdlib/mrand48.c
+- testsuites/psxtests/psxhdrs/stdlib/nrand48.c
+- testsuites/psxtests/psxhdrs/stdlib/posix_memalign.c
+- testsuites/psxtests/psxhdrs/stdlib/putenv.c
+- testsuites/psxtests/psxhdrs/stdlib/qsort.c
+- testsuites/psxtests/psxhdrs/stdlib/rand.c
+- testsuites/psxtests/psxhdrs/stdlib/rand_r.c
+- testsuites/psxtests/psxhdrs/stdlib/random.c
+- testsuites/psxtests/psxhdrs/stdlib/realloc.c
+- testsuites/psxtests/psxhdrs/stdlib/realpath.c
+- testsuites/psxtests/psxhdrs/stdlib/seed48.c
+- testsuites/psxtests/psxhdrs/stdlib/setenv.c
+- testsuites/psxtests/psxhdrs/stdlib/setkey.c
+- testsuites/psxtests/psxhdrs/stdlib/setstate.c
+- testsuites/psxtests/psxhdrs/stdlib/srand.c
+- testsuites/psxtests/psxhdrs/stdlib/srand48.c
+- testsuites/psxtests/psxhdrs/stdlib/srandom.c
+- testsuites/psxtests/psxhdrs/stdlib/strtod.c
+- testsuites/psxtests/psxhdrs/stdlib/strtof.c
+- testsuites/psxtests/psxhdrs/stdlib/strtol.c
+- testsuites/psxtests/psxhdrs/stdlib/strtold.c
+- testsuites/psxtests/psxhdrs/stdlib/strtoll.c
+- testsuites/psxtests/psxhdrs/stdlib/strtoul.c
+- testsuites/psxtests/psxhdrs/stdlib/strtoull.c
+- testsuites/psxtests/psxhdrs/stdlib/system.c
+- testsuites/psxtests/psxhdrs/stdlib/unsetenv.c
+- testsuites/psxtests/psxhdrs/stdlib/wcstombs.c
+- testsuites/psxtests/psxhdrs/stdlib/wctomb.c
+- testsuites/psxtests/psxhdrs/sys/times/times.c
+- testsuites/psxtests/psxhdrs/sys/resource/getrusage.c
+- testsuites/psxtests/psxhdrs/setjmp/longjmp.c
+- testsuites/psxtests/psxhdrs/setjmp/setjmp.c
+- testsuites/psxtests/psxhdrs/setjmp/siglongjmp.c
+- testsuites/psxtests/psxhdrs/setjmp/sigsetjmp.c
+- testsuites/psxtests/psxhdrs/sys/select/FD_CLR.c
+- testsuites/psxtests/psxhdrs/sys/select/FD_ISSET.c
+- testsuites/psxtests/psxhdrs/sys/select/FD_SET.c
+- testsuites/psxtests/psxhdrs/sys/select/FD_ZERO.c
+- testsuites/psxtests/psxhdrs/sys/select/pselect.c
+- testsuites/psxtests/psxhdrs/sys/select/select.c
+- testsuites/psxtests/psxhdrs/termios/cfgetispeed.c
+- testsuites/psxtests/psxhdrs/termios/cfgetospeed.c
+- testsuites/psxtests/psxhdrs/termios/cfsetispeed.c
+- testsuites/psxtests/psxhdrs/termios/cfsetospeed.c
+- testsuites/psxtests/psxhdrs/termios/tcdrain.c
+- testsuites/psxtests/psxhdrs/termios/tcflow.c
+- testsuites/psxtests/psxhdrs/termios/tcflush.c
+- testsuites/psxtests/psxhdrs/termios/tcgetattr.c
+- testsuites/psxtests/psxhdrs/termios/tcgetsid.c
+- testsuites/psxtests/psxhdrs/termios/tcsendbreak.c
+- testsuites/psxtests/psxhdrs/termios/tcsetattr.c
+target: psxhdrs
+type: build
diff --git a/spec/build/testsuites/psxtests/psx01.yml b/spec/build/testsuites/psxtests/psx01.yml
new file mode 100644
index 0000000000..b2374c1686
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx01/init.c
+- testsuites/psxtests/psx01/task.c
+stlib: []
+target: testsuites/psxtests/psx01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx02.yml b/spec/build/testsuites/psxtests/psx02.yml
new file mode 100644
index 0000000000..2b8c69dff3
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx02/init.c
+- testsuites/psxtests/psx02/task.c
+stlib: []
+target: testsuites/psxtests/psx02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx03.yml b/spec/build/testsuites/psxtests/psx03.yml
new file mode 100644
index 0000000000..d09b5d7fff
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx03/init.c
+- testsuites/psxtests/psx03/task.c
+stlib: []
+target: testsuites/psxtests/psx03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx04.yml b/spec/build/testsuites/psxtests/psx04.yml
new file mode 100644
index 0000000000..7bba91fc1d
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx04.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx04/init.c
+- testsuites/psxtests/psx04/task1.c
+- testsuites/psxtests/psx04/task2.c
+- testsuites/psxtests/psx04/task3.c
+stlib: []
+target: testsuites/psxtests/psx04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx05.yml b/spec/build/testsuites/psxtests/psx05.yml
new file mode 100644
index 0000000000..62ad43c440
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx05.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx05/init.c
+- testsuites/psxtests/psx05/task.c
+- testsuites/psxtests/psx05/task2.c
+- testsuites/psxtests/psx05/task3.c
+stlib: []
+target: testsuites/psxtests/psx05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx06.yml b/spec/build/testsuites/psxtests/psx06.yml
new file mode 100644
index 0000000000..a2b7374240
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx06.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx06/init.c
+- testsuites/psxtests/psx06/task.c
+- testsuites/psxtests/psx06/task2.c
+stlib: []
+target: testsuites/psxtests/psx06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx07.yml b/spec/build/testsuites/psxtests/psx07.yml
new file mode 100644
index 0000000000..f1fe7a7b3a
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx07.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx07/init.c
+- testsuites/psxtests/psx07/task.c
+stlib: []
+target: testsuites/psxtests/psx07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx08.yml b/spec/build/testsuites/psxtests/psx08.yml
new file mode 100644
index 0000000000..c9801874f0
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx08.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx08/init.c
+- testsuites/psxtests/psx08/task1.c
+- testsuites/psxtests/psx08/task2.c
+- testsuites/psxtests/psx08/task3.c
+stlib: []
+target: testsuites/psxtests/psx08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx09.yml b/spec/build/testsuites/psxtests/psx09.yml
new file mode 100644
index 0000000000..902fee641c
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx09.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx09/init.c
+stlib: []
+target: testsuites/psxtests/psx09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx10.yml b/spec/build/testsuites/psxtests/psx10.yml
new file mode 100644
index 0000000000..504fc866e3
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx10.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx10/init.c
+- testsuites/psxtests/psx10/task.c
+- testsuites/psxtests/psx10/task2.c
+- testsuites/psxtests/psx10/task3.c
+stlib: []
+target: testsuites/psxtests/psx10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx11.yml b/spec/build/testsuites/psxtests/psx11.yml
new file mode 100644
index 0000000000..726f415acd
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx11.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx11/init.c
+- testsuites/psxtests/psx11/task.c
+stlib: []
+target: testsuites/psxtests/psx11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx12.yml b/spec/build/testsuites/psxtests/psx12.yml
new file mode 100644
index 0000000000..fff2c19968
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx12.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx12/init.c
+stlib: []
+target: testsuites/psxtests/psx12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx13.yml b/spec/build/testsuites/psxtests/psx13.yml
new file mode 100644
index 0000000000..19f99593e0
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx13.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx13/main.c
+- testsuites/psxtests/psx13/test.c
+stlib: []
+target: testsuites/psxtests/psx13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx14.yml b/spec/build/testsuites/psxtests/psx14.yml
new file mode 100644
index 0000000000..c8dbc07006
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx14.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx14/init.c
+stlib: []
+target: testsuites/psxtests/psx14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx15.yml b/spec/build/testsuites/psxtests/psx15.yml
new file mode 100644
index 0000000000..daf6070dd8
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx15.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx15/init.c
+stlib: []
+target: testsuites/psxtests/psx15.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psx16.yml b/spec/build/testsuites/psxtests/psx16.yml
new file mode 100644
index 0000000000..e63c7d28e2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psx16.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psx16/init.c
+stlib: []
+target: testsuites/psxtests/psx16.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxaio01.yml b/spec/build/testsuites/psxtests/psxaio01.yml
new file mode 100644
index 0000000000..07bc451574
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxaio01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxaio01/init.c
+stlib: []
+target: testsuites/psxtests/psxaio01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxaio02.yml b/spec/build/testsuites/psxtests/psxaio02.yml
new file mode 100644
index 0000000000..9621cb1066
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxaio02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxaio02/init.c
+stlib: []
+target: testsuites/psxtests/psxaio02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxaio03.yml b/spec/build/testsuites/psxtests/psxaio03.yml
new file mode 100644
index 0000000000..77a3e13cbf
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxaio03.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxaio03/init.c
+stlib: []
+target: testsuites/psxtests/psxaio03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxalarm01.yml b/spec/build/testsuites/psxtests/psxalarm01.yml
new file mode 100644
index 0000000000..0cc5509d2d
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxalarm01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxalarm01/init.c
+stlib: []
+target: testsuites/psxtests/psxalarm01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxautoinit01.yml b/spec/build/testsuites/psxtests/psxautoinit01.yml
new file mode 100644
index 0000000000..6eb7e43271
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxautoinit01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxautoinit01/init.c
+stlib: []
+target: testsuites/psxtests/psxautoinit01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxautoinit02.yml b/spec/build/testsuites/psxtests/psxautoinit02.yml
new file mode 100644
index 0000000000..79b624402a
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxautoinit02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxautoinit02/init.c
+stlib: []
+target: testsuites/psxtests/psxautoinit02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxbarrier01.yml b/spec/build/testsuites/psxtests/psxbarrier01.yml
new file mode 100644
index 0000000000..90b474379d
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxbarrier01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxbarrier01/main.c
+- testsuites/psxtests/psxbarrier01/test.c
+stlib: []
+target: testsuites/psxtests/psxbarrier01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxcancel.yml b/spec/build/testsuites/psxtests/psxcancel.yml
new file mode 100644
index 0000000000..2d0e9ff7ad
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxcancel.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxcancel/init.c
+stlib: []
+target: testsuites/psxtests/psxcancel.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxcancel01.yml b/spec/build/testsuites/psxtests/psxcancel01.yml
new file mode 100644
index 0000000000..7e3493ca23
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxcancel01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxcancel01/init.c
+stlib: []
+target: testsuites/psxtests/psxcancel01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxchroot01.yml b/spec/build/testsuites/psxtests/psxchroot01.yml
new file mode 100644
index 0000000000..614db58123
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxchroot01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxchroot01/main.c
+- testsuites/psxtests/psxchroot01/test.c
+stlib: []
+target: testsuites/psxtests/psxchroot01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxclassic01.yml b/spec/build/testsuites/psxtests/psxclassic01.yml
new file mode 100644
index 0000000000..cbba49f68f
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxclassic01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxclassic01/init.c
+stlib: []
+target: testsuites/psxtests/psxclassic01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxcleanup.yml b/spec/build/testsuites/psxtests/psxcleanup.yml
new file mode 100644
index 0000000000..6dbf100f4c
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxcleanup.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxcleanup/psxcleanup.c
+stlib: []
+target: testsuites/psxtests/psxcleanup.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxcleanup01.yml b/spec/build/testsuites/psxtests/psxcleanup01.yml
new file mode 100644
index 0000000000..f29320b4d0
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxcleanup01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxcleanup01/init.c
+stlib: []
+target: testsuites/psxtests/psxcleanup01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxcleanup02.yml b/spec/build/testsuites/psxtests/psxcleanup02.yml
new file mode 100644
index 0000000000..49640c330b
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxcleanup02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxcleanup02/init.c
+- testsuites/psxtests/psxcleanup02/main.c
+stlib: []
+target: testsuites/psxtests/psxcleanup02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxclock.yml b/spec/build/testsuites/psxtests/psxclock.yml
new file mode 100644
index 0000000000..1902e8eef2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxclock.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxclock/init.c
+stlib: []
+target: testsuites/psxtests/psxclock.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxclock01.yml b/spec/build/testsuites/psxtests/psxclock01.yml
new file mode 100644
index 0000000000..fadcd1ec91
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxclock01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxclock01/init.c
+stlib: []
+target: testsuites/psxtests/psxclock01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxclockrealtime01.yml b/spec/build/testsuites/psxtests/psxclockrealtime01.yml
new file mode 100644
index 0000000000..f67b2cf3af
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxclockrealtime01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxclockrealtime01/init.c
+stlib: []
+target: testsuites/psxtests/psxclockrealtime01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxconcurrency01.yml b/spec/build/testsuites/psxtests/psxconcurrency01.yml
new file mode 100644
index 0000000000..eb6667203c
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxconcurrency01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxconcurrency01/init.c
+stlib: []
+target: testsuites/psxtests/psxconcurrency01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxcond01.yml b/spec/build/testsuites/psxtests/psxcond01.yml
new file mode 100644
index 0000000000..b7fe58ac5e
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxcond01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxcond01/init.c
+stlib: []
+target: testsuites/psxtests/psxcond01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxcond02.yml b/spec/build/testsuites/psxtests/psxcond02.yml
new file mode 100644
index 0000000000..abefe9cc1d
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxcond02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxcond02/init.c
+stlib: []
+target: testsuites/psxtests/psxcond02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxconfig01.yml b/spec/build/testsuites/psxtests/psxconfig01.yml
new file mode 100644
index 0000000000..17fa328c20
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxconfig01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxconfig01/init.c
+stlib: []
+target: testsuites/psxtests/psxconfig01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxdevctl01.yml b/spec/build/testsuites/psxtests/psxdevctl01.yml
new file mode 100644
index 0000000000..b0e75d2c06
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxdevctl01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxdevctl01/main.c
+- testsuites/psxtests/psxdevctl01/test.c
+stlib: []
+target: testsuites/psxtests/psxdevctl01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxeintrjoin.yml b/spec/build/testsuites/psxtests/psxeintrjoin.yml
new file mode 100644
index 0000000000..c6236f8b0a
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxeintrjoin.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxeintr_join/init.c
+stlib: []
+target: testsuites/psxtests/psxeintr_join.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxenosys.yml b/spec/build/testsuites/psxtests/psxenosys.yml
new file mode 100644
index 0000000000..781b1d29d5
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxenosys.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxenosys/init.c
+stlib: []
+target: testsuites/psxtests/psxenosys.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxfatal01.yml b/spec/build/testsuites/psxtests/psxfatal01.yml
new file mode 100644
index 0000000000..7f0fc1f913
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxfatal01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxfatal01/init.c
+stlib: []
+target: testsuites/psxtests/psxfatal01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxfatal02.yml b/spec/build/testsuites/psxtests/psxfatal02.yml
new file mode 100644
index 0000000000..202927df49
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxfatal02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxfatal02/init.c
+stlib: []
+target: testsuites/psxtests/psxfatal02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxfatalsupport.yml b/spec/build/testsuites/psxtests/psxfatalsupport.yml
new file mode 100644
index 0000000000..4b1ef109c3
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxfatalsupport.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxfatal_support/init.c
+stlib: []
+target: testsuites/psxtests/psxfatal_support.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxfchx01.yml b/spec/build/testsuites/psxtests/psxfchx01.yml
new file mode 100644
index 0000000000..50123bdb2a
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxfchx01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxfchx01/init.c
+stlib: []
+target: testsuites/psxtests/psxfchx01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxfenv01.yml b/spec/build/testsuites/psxtests/psxfenv01.yml
new file mode 100644
index 0000000000..c61bc34b58
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxfenv01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxfenv01/init.c
+stlib:
+- m
+target: testsuites/psxtests/psxfenv01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxfile01.yml b/spec/build/testsuites/psxtests/psxfile01.yml
new file mode 100644
index 0000000000..12b6e8f7a2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxfile01.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxfile01/main.c
+- testsuites/psxtests/psxfile01/test.c
+- testsuites/psxtests/psxfile01/test_cat.c
+- testsuites/psxtests/psxfile01/test_extend.c
+- testsuites/psxtests/psxfile01/test_write.c
+stlib: []
+target: testsuites/psxtests/psxfile01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxfile02.yml b/spec/build/testsuites/psxtests/psxfile02.yml
new file mode 100644
index 0000000000..c9c36ec9e1
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxfile02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxfile02/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/psxtests/psxfile02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxfilelock01.yml b/spec/build/testsuites/psxtests/psxfilelock01.yml
new file mode 100644
index 0000000000..fc3e717f5e
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxfilelock01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxfilelock01/init.c
+stlib: []
+target: testsuites/psxtests/psxfilelock01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxgetattrnp01.yml b/spec/build/testsuites/psxtests/psxgetattrnp01.yml
new file mode 100644
index 0000000000..a106c31dbc
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxgetattrnp01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxgetattrnp01/init.c
+stlib: []
+target: testsuites/psxtests/psxgetattrnp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxgetrusage01.yml b/spec/build/testsuites/psxtests/psxgetrusage01.yml
new file mode 100644
index 0000000000..3e2064dce2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxgetrusage01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxgetrusage01/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/psxtests/psxgetrusage01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxglobalcon01.yml b/spec/build/testsuites/psxtests/psxglobalcon01.yml
new file mode 100644
index 0000000000..dfad95acfd
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxglobalcon01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: cxx cxxprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxglobalcon01/init.cc
+stlib: []
+target: testsuites/psxtests/psxglobalcon01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxglobalcon02.yml b/spec/build/testsuites/psxtests/psxglobalcon02.yml
new file mode 100644
index 0000000000..ef592d284f
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxglobalcon02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: cxx cxxprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxglobalcon02/init.cc
+stlib: []
+target: testsuites/psxtests/psxglobalcon02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxhdrs.yml b/spec/build/testsuites/psxtests/psxhdrs.yml
new file mode 100644
index 0000000000..e8cbc31f7d
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxhdrs.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/psxtests/psxhdrs.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxid01.yml b/spec/build/testsuites/psxtests/psxid01.yml
new file mode 100644
index 0000000000..3e63341bda
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxid01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxid01/init.c
+stlib: []
+target: testsuites/psxtests/psxid01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psximfs01.yml b/spec/build/testsuites/psxtests/psximfs01.yml
new file mode 100644
index 0000000000..a9c9cf490c
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psximfs01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psximfs01/init.c
+stlib: []
+target: testsuites/psxtests/psximfs01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psximfs02.yml b/spec/build/testsuites/psxtests/psximfs02.yml
new file mode 100644
index 0000000000..d16e5bd61a
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psximfs02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psximfs02/init.c
+stlib: []
+target: testsuites/psxtests/psximfs02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxintrcritical01.yml b/spec/build/testsuites/psxtests/psxintrcritical01.yml
new file mode 100644
index 0000000000..b0f02f1646
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxintrcritical01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxintrcritical01/init.c
+stlib: []
+target: testsuites/psxtests/psxintrcritical01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxinttypes01.yml b/spec/build/testsuites/psxtests/psxinttypes01.yml
new file mode 100644
index 0000000000..d2aaeb66f6
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxinttypes01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxinttypes01/init.c
+stlib: []
+target: testsuites/psxtests/psxinttypes01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxitimer.yml b/spec/build/testsuites/psxtests/psxitimer.yml
new file mode 100644
index 0000000000..b5cb8461c2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxitimer.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxitimer/init.c
+stlib: []
+target: testsuites/psxtests/psxitimer.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey01.yml b/spec/build/testsuites/psxtests/psxkey01.yml
new file mode 100644
index 0000000000..07608381bb
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey01/init.c
+- testsuites/support/src/test_support.c
+stlib: []
+target: testsuites/psxtests/psxkey01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey02.yml b/spec/build/testsuites/psxtests/psxkey02.yml
new file mode 100644
index 0000000000..8eb148ba16
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey02/init.c
+stlib: []
+target: testsuites/psxtests/psxkey02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey03.yml b/spec/build/testsuites/psxtests/psxkey03.yml
new file mode 100644
index 0000000000..b4a622fdc2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey03/init.c
+stlib: []
+target: testsuites/psxtests/psxkey03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey04.yml b/spec/build/testsuites/psxtests/psxkey04.yml
new file mode 100644
index 0000000000..4d27d90c78
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey04.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey04/init.c
+stlib: []
+target: testsuites/psxtests/psxkey04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey05.yml b/spec/build/testsuites/psxtests/psxkey05.yml
new file mode 100644
index 0000000000..c526fb57cf
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey05.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey05/init.c
+stlib: []
+target: testsuites/psxtests/psxkey05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey06.yml b/spec/build/testsuites/psxtests/psxkey06.yml
new file mode 100644
index 0000000000..6e5716e455
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey06.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey06/init.c
+stlib: []
+target: testsuites/psxtests/psxkey06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey07.yml b/spec/build/testsuites/psxtests/psxkey07.yml
new file mode 100644
index 0000000000..923c29b9e9
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey07.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey07/init.c
+stlib: []
+target: testsuites/psxtests/psxkey07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey08.yml b/spec/build/testsuites/psxtests/psxkey08.yml
new file mode 100644
index 0000000000..a1ce328f66
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey08.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey08/init.c
+stlib: []
+target: testsuites/psxtests/psxkey08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey09.yml b/spec/build/testsuites/psxtests/psxkey09.yml
new file mode 100644
index 0000000000..b00c9853cb
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey09.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey09/init.c
+stlib: []
+target: testsuites/psxtests/psxkey09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxkey10.yml b/spec/build/testsuites/psxtests/psxkey10.yml
new file mode 100644
index 0000000000..ffa9540c5b
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxkey10.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxkey10/init.c
+stlib: []
+target: testsuites/psxtests/psxkey10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxmmap01.yml b/spec/build/testsuites/psxtests/psxmmap01.yml
new file mode 100644
index 0000000000..3a96ce63b2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxmmap01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxmmap01/init.c
+- testsuites/psxtests/psxmmap01/test_helper.c
+- testsuites/psxtests/psxmmap01/test_driver.c
+stlib: []
+target: testsuites/psxtests/psxmmap01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxmount.yml b/spec/build/testsuites/psxtests/psxmount.yml
new file mode 100644
index 0000000000..9ad42bb4db
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxmount.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxmount/main.c
+- testsuites/psxtests/psxmount/test.c
+stlib: []
+target: testsuites/psxtests/psxmount.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxmsgq01.yml b/spec/build/testsuites/psxtests/psxmsgq01.yml
new file mode 100644
index 0000000000..0482e6d2b8
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxmsgq01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxmsgq01/init.c
+- testsuites/support/src/test_support.c
+stlib: []
+target: testsuites/psxtests/psxmsgq01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxmsgq02.yml b/spec/build/testsuites/psxtests/psxmsgq02.yml
new file mode 100644
index 0000000000..66f6dee4a3
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxmsgq02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxmsgq02/init.c
+- testsuites/support/src/test_support.c
+stlib: []
+target: testsuites/psxtests/psxmsgq02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxmsgq03.yml b/spec/build/testsuites/psxtests/psxmsgq03.yml
new file mode 100644
index 0000000000..18aaf18c52
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxmsgq03.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxmsgq03/init.c
+- testsuites/support/src/test_support.c
+stlib: []
+target: testsuites/psxtests/psxmsgq03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxmsgq04.yml b/spec/build/testsuites/psxtests/psxmsgq04.yml
new file mode 100644
index 0000000000..a59e83d6a5
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxmsgq04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxmsgq04/init.c
+- testsuites/support/src/test_support.c
+stlib: []
+target: testsuites/psxtests/psxmsgq04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxmutexattr01.yml b/spec/build/testsuites/psxtests/psxmutexattr01.yml
new file mode 100644
index 0000000000..53eae57eb0
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxmutexattr01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxmutexattr01/init.c
+stlib: []
+target: testsuites/psxtests/psxmutexattr01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxndbm01.yml b/spec/build/testsuites/psxtests/psxndbm01.yml
new file mode 100644
index 0000000000..47d18f834e
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxndbm01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxndbm01/init.c
+stlib: []
+target: testsuites/psxtests/psxndbm01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxobj01.yml b/spec/build/testsuites/psxtests/psxobj01.yml
new file mode 100644
index 0000000000..ed2ab8021c
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxobj01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxobj01/init.c
+- testsuites/support/src/test_support.c
+stlib: []
+target: testsuites/psxtests/psxobj01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxonce01.yml b/spec/build/testsuites/psxtests/psxonce01.yml
new file mode 100644
index 0000000000..5fd2df5616
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxonce01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxonce01/init.c
+stlib: []
+target: testsuites/psxtests/psxonce01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxpasswd01.yml b/spec/build/testsuites/psxtests/psxpasswd01.yml
new file mode 100644
index 0000000000..aeb035e573
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxpasswd01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxpasswd01/init.c
+stlib: []
+target: testsuites/psxtests/psxpasswd01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxpasswd02.yml b/spec/build/testsuites/psxtests/psxpasswd02.yml
new file mode 100644
index 0000000000..990206988d
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxpasswd02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxpasswd02/init.c
+stlib: []
+target: testsuites/psxtests/psxpasswd02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxpipe01.yml b/spec/build/testsuites/psxtests/psxpipe01.yml
new file mode 100644
index 0000000000..ff1a88bfe5
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxpipe01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxpipe01/init.c
+stlib: []
+target: testsuites/psxtests/psxpipe01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxrdwrv.yml b/spec/build/testsuites/psxtests/psxrdwrv.yml
new file mode 100644
index 0000000000..c7ec810e1b
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxrdwrv.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxrdwrv/main.c
+- testsuites/psxtests/psxrdwrv/test.c
+stlib: []
+target: testsuites/psxtests/psxrdwrv.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxreaddir.yml b/spec/build/testsuites/psxtests/psxreaddir.yml
new file mode 100644
index 0000000000..1c1deef314
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxreaddir.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxreaddir/main.c
+- testsuites/psxtests/psxreaddir/test.c
+stlib: []
+target: testsuites/psxtests/psxreaddir.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxrwlock01.yml b/spec/build/testsuites/psxtests/psxrwlock01.yml
new file mode 100644
index 0000000000..ffc3cf7fcf
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxrwlock01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxrwlock01/main.c
+- testsuites/psxtests/psxrwlock01/test.c
+stlib: []
+target: testsuites/psxtests/psxrwlock01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsem01.yml b/spec/build/testsuites/psxtests/psxsem01.yml
new file mode 100644
index 0000000000..1b5f721e33
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsem01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsem01/init.c
+- testsuites/support/src/test_support.c
+stlib: []
+target: testsuites/psxtests/psxsem01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxshm01.yml b/spec/build/testsuites/psxtests/psxshm01.yml
new file mode 100644
index 0000000000..a0974c2085
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxshm01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxshm01/init.c
+stlib: []
+target: testsuites/psxtests/psxshm01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxshm02.yml b/spec/build/testsuites/psxtests/psxshm02.yml
new file mode 100644
index 0000000000..37510452f7
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxshm02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxshm02/init.c
+stlib: []
+target: testsuites/psxtests/psxshm02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsignal01.yml b/spec/build/testsuites/psxtests/psxsignal01.yml
new file mode 100644
index 0000000000..6f62176af3
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsignal01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsignal01/init.c
+- testsuites/psxtests/psxsignal01/task1.c
+stlib: []
+target: testsuites/psxtests/psxsignal01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsignal02.yml b/spec/build/testsuites/psxtests/psxsignal02.yml
new file mode 100644
index 0000000000..04eafd45c0
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsignal02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsignal02/init.c
+stlib: []
+target: testsuites/psxtests/psxsignal02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsignal03.yml b/spec/build/testsuites/psxtests/psxsignal03.yml
new file mode 100644
index 0000000000..771595df47
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsignal03.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsignal03/init.c
+stlib: []
+target: testsuites/psxtests/psxsignal03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsignal04.yml b/spec/build/testsuites/psxtests/psxsignal04.yml
new file mode 100644
index 0000000000..3da079df3b
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsignal04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsignal04/init.c
+stlib: []
+target: testsuites/psxtests/psxsignal04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsignal05.yml b/spec/build/testsuites/psxtests/psxsignal05.yml
new file mode 100644
index 0000000000..9b8003aba9
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsignal05.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsignal05/init.c
+stlib: []
+target: testsuites/psxtests/psxsignal05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsignal06.yml b/spec/build/testsuites/psxtests/psxsignal06.yml
new file mode 100644
index 0000000000..bbdb7d6a99
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsignal06.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsignal06/init.c
+stlib: []
+target: testsuites/psxtests/psxsignal06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsignal07.yml b/spec/build/testsuites/psxtests/psxsignal07.yml
new file mode 100644
index 0000000000..b843f53de2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsignal07.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsignal07/main.c
+- testsuites/psxtests/psxsignal07/rtems_config.c
+stlib: []
+target: testsuites/psxtests/psxsignal07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsignal08.yml b/spec/build/testsuites/psxtests/psxsignal08.yml
new file mode 100644
index 0000000000..7167009cb5
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsignal08.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsignal08/main.c
+- testsuites/psxtests/psxsignal08/rtems_config.c
+stlib: []
+target: testsuites/psxtests/psxsignal08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxspin01.yml b/spec/build/testsuites/psxtests/psxspin01.yml
new file mode 100644
index 0000000000..063c03e3f1
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxspin01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxspin01/main.c
+- testsuites/psxtests/psxspin01/test.c
+stlib: []
+target: testsuites/psxtests/psxspin01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxstack01.yml b/spec/build/testsuites/psxtests/psxstack01.yml
new file mode 100644
index 0000000000..8655be36f9
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxstack01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxstack01/init.c
+stlib: []
+target: testsuites/psxtests/psxstack01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxstack02.yml b/spec/build/testsuites/psxtests/psxstack02.yml
new file mode 100644
index 0000000000..2975e07c79
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxstack02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxstack02/init.c
+stlib: []
+target: testsuites/psxtests/psxstack02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxstat.yml b/spec/build/testsuites/psxtests/psxstat.yml
new file mode 100644
index 0000000000..52fa36a4c3
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxstat.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxstat/main.c
+- testsuites/psxtests/psxstat/test.c
+stlib: []
+target: testsuites/psxtests/psxstat.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxstrsignal01.yml b/spec/build/testsuites/psxtests/psxstrsignal01.yml
new file mode 100644
index 0000000000..27073966ee
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxstrsignal01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxstrsignal01/init.c
+stlib: []
+target: testsuites/psxtests/psxstrsignal01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxsysconf.yml b/spec/build/testsuites/psxtests/psxsysconf.yml
new file mode 100644
index 0000000000..4f37806253
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxsysconf.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxsysconf/init.c
+stlib: []
+target: testsuites/psxtests/psxsysconf.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxthreadname01.yml b/spec/build/testsuites/psxtests/psxthreadname01.yml
new file mode 100644
index 0000000000..da03c78bc1
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxthreadname01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxthreadname01/init.c
+stlib: []
+target: testsuites/psxtests/psxthreadname01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxtime.yml b/spec/build/testsuites/psxtests/psxtime.yml
new file mode 100644
index 0000000000..6dd5aa1a96
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxtime.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxtime/main.c
+- testsuites/psxtests/psxtime/test.c
+stlib: []
+target: testsuites/psxtests/psxtime.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxtimer01.yml b/spec/build/testsuites/psxtests/psxtimer01.yml
new file mode 100644
index 0000000000..17b5a9a6f2
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxtimer01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxtimer01/psxtimer.c
+stlib: []
+target: testsuites/psxtests/psxtimer01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxtimer02.yml b/spec/build/testsuites/psxtests/psxtimer02.yml
new file mode 100644
index 0000000000..96b3a508b0
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxtimer02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxtimer02/psxtimer.c
+stlib: []
+target: testsuites/psxtests/psxtimer02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxtimes01.yml b/spec/build/testsuites/psxtests/psxtimes01.yml
new file mode 100644
index 0000000000..b99007af54
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxtimes01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxtimes01/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/psxtests/psxtimes01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxualarm.yml b/spec/build/testsuites/psxtests/psxualarm.yml
new file mode 100644
index 0000000000..66224db118
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxualarm.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxualarm/init.c
+stlib: []
+target: testsuites/psxtests/psxualarm.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtests/psxusleep.yml b/spec/build/testsuites/psxtests/psxusleep.yml
new file mode 100644
index 0000000000..78f488742d
--- /dev/null
+++ b/spec/build/testsuites/psxtests/psxusleep.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtests/psxusleep/init.c
+stlib: []
+target: testsuites/psxtests/psxusleep.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/grp.yml b/spec/build/testsuites/psxtmtests/grp.yml
new file mode 100644
index 0000000000..2d4c5b2b97
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/grp.yml
@@ -0,0 +1,131 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_PSXTMTESTS
+includes:
+- testsuites/support/include
+- testsuites/tmtests/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: psxtmbarrier01
+- role: build-dependency
+ uid: psxtmbarrier02
+- role: build-dependency
+ uid: psxtmbarrier03
+- role: build-dependency
+ uid: psxtmbarrier04
+- role: build-dependency
+ uid: psxtmbarrierattr01
+- role: build-dependency
+ uid: psxtmcleanup01
+- role: build-dependency
+ uid: psxtmclocknanosleep01
+- role: build-dependency
+ uid: psxtmclocknanosleep02
+- role: build-dependency
+ uid: psxtmclocknanosleep03
+- role: build-dependency
+ uid: psxtmcond01
+- role: build-dependency
+ uid: psxtmcond02
+- role: build-dependency
+ uid: psxtmcond03
+- role: build-dependency
+ uid: psxtmcond04
+- role: build-dependency
+ uid: psxtmcond05
+- role: build-dependency
+ uid: psxtmcond06
+- role: build-dependency
+ uid: psxtmcond07
+- role: build-dependency
+ uid: psxtmcond08
+- role: build-dependency
+ uid: psxtmcond09
+- role: build-dependency
+ uid: psxtmcond10
+- role: build-dependency
+ uid: psxtmkey01
+- role: build-dependency
+ uid: psxtmkey02
+- role: build-dependency
+ uid: psxtmmq01
+- role: build-dependency
+ uid: psxtmmqrcvblock01
+- role: build-dependency
+ uid: psxtmmqrcvblock02
+- role: build-dependency
+ uid: psxtmmutex01
+- role: build-dependency
+ uid: psxtmmutex02
+- role: build-dependency
+ uid: psxtmmutex03
+- role: build-dependency
+ uid: psxtmmutex04
+- role: build-dependency
+ uid: psxtmmutex05
+- role: build-dependency
+ uid: psxtmmutex06
+- role: build-dependency
+ uid: psxtmmutex07
+- role: build-dependency
+ uid: psxtmmutexattr01
+- role: build-dependency
+ uid: psxtmnanosleep01
+- role: build-dependency
+ uid: psxtmnanosleep02
+- role: build-dependency
+ uid: psxtmonce01
+- role: build-dependency
+ uid: psxtmrwlock01
+- role: build-dependency
+ uid: psxtmrwlock02
+- role: build-dependency
+ uid: psxtmrwlock03
+- role: build-dependency
+ uid: psxtmrwlock04
+- role: build-dependency
+ uid: psxtmrwlock05
+- role: build-dependency
+ uid: psxtmrwlock06
+- role: build-dependency
+ uid: psxtmrwlock07
+- role: build-dependency
+ uid: psxtmsem01
+- role: build-dependency
+ uid: psxtmsem02
+- role: build-dependency
+ uid: psxtmsem03
+- role: build-dependency
+ uid: psxtmsem04
+- role: build-dependency
+ uid: psxtmsem05
+- role: build-dependency
+ uid: psxtmsleep01
+- role: build-dependency
+ uid: psxtmsleep02
+- role: build-dependency
+ uid: psxtmthread01
+- role: build-dependency
+ uid: psxtmthread02
+- role: build-dependency
+ uid: psxtmthread03
+- role: build-dependency
+ uid: psxtmthread04
+- role: build-dependency
+ uid: psxtmthread05
+- role: build-dependency
+ uid: psxtmthread06
+- role: build-dependency
+ uid: psxtmthreadattr01
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmbarrier01.yml b/spec/build/testsuites/psxtmtests/psxtmbarrier01.yml
new file mode 100644
index 0000000000..be54a8fad5
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmbarrier01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmbarrier01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmbarrier01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmbarrier02.yml b/spec/build/testsuites/psxtmtests/psxtmbarrier02.yml
new file mode 100644
index 0000000000..3ec13e8d1d
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmbarrier02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmbarrier02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmbarrier02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmbarrier03.yml b/spec/build/testsuites/psxtmtests/psxtmbarrier03.yml
new file mode 100644
index 0000000000..510d5ca0c0
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmbarrier03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmbarrier03/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmbarrier03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmbarrier04.yml b/spec/build/testsuites/psxtmtests/psxtmbarrier04.yml
new file mode 100644
index 0000000000..ae54419739
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmbarrier04.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmbarrier04/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmbarrier04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmbarrierattr01.yml b/spec/build/testsuites/psxtmtests/psxtmbarrierattr01.yml
new file mode 100644
index 0000000000..87c1557699
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmbarrierattr01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmbarrierattr01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmbarrierattr01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcleanup01.yml b/spec/build/testsuites/psxtmtests/psxtmcleanup01.yml
new file mode 100644
index 0000000000..b516a2e4b2
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcleanup01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcleanup01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcleanup01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmclocknanosleep01.yml b/spec/build/testsuites/psxtmtests/psxtmclocknanosleep01.yml
new file mode 100644
index 0000000000..853884b746
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmclocknanosleep01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmclocknanosleep01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmclocknanosleep01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmclocknanosleep02.yml b/spec/build/testsuites/psxtmtests/psxtmclocknanosleep02.yml
new file mode 100644
index 0000000000..cb54f2c076
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmclocknanosleep02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmclocknanosleep02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmclocknanosleep02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmclocknanosleep03.yml b/spec/build/testsuites/psxtmtests/psxtmclocknanosleep03.yml
new file mode 100644
index 0000000000..fd036dfa7c
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmclocknanosleep03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmclocknanosleep03/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmclocknanosleep03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond01.yml b/spec/build/testsuites/psxtmtests/psxtmcond01.yml
new file mode 100644
index 0000000000..6f65c9b4f6
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond02.yml b/spec/build/testsuites/psxtmtests/psxtmcond02.yml
new file mode 100644
index 0000000000..af75234a1f
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond03.yml b/spec/build/testsuites/psxtmtests/psxtmcond03.yml
new file mode 100644
index 0000000000..7a954bcdb2
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond03/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond04.yml b/spec/build/testsuites/psxtmtests/psxtmcond04.yml
new file mode 100644
index 0000000000..b81e6febda
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond04.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond04/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond05.yml b/spec/build/testsuites/psxtmtests/psxtmcond05.yml
new file mode 100644
index 0000000000..e13d1b33f5
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond05.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond05/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond06.yml b/spec/build/testsuites/psxtmtests/psxtmcond06.yml
new file mode 100644
index 0000000000..8f14807582
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond06.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond06/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond07.yml b/spec/build/testsuites/psxtmtests/psxtmcond07.yml
new file mode 100644
index 0000000000..c42d0716f0
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond07.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond07/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond08.yml b/spec/build/testsuites/psxtmtests/psxtmcond08.yml
new file mode 100644
index 0000000000..387590dcaa
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond08.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond08/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond09.yml b/spec/build/testsuites/psxtmtests/psxtmcond09.yml
new file mode 100644
index 0000000000..43ec0990c3
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond09.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond09/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmcond10.yml b/spec/build/testsuites/psxtmtests/psxtmcond10.yml
new file mode 100644
index 0000000000..ba402b9d72
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmcond10.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmcond10/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmcond10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmkey01.yml b/spec/build/testsuites/psxtmtests/psxtmkey01.yml
new file mode 100644
index 0000000000..9e90f5b787
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmkey01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmkey01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmkey01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmkey02.yml b/spec/build/testsuites/psxtmtests/psxtmkey02.yml
new file mode 100644
index 0000000000..0e42d81b72
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmkey02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmkey02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmkey02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmq01.yml b/spec/build/testsuites/psxtmtests/psxtmmq01.yml
new file mode 100644
index 0000000000..c71ca644e5
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmq01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmq01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmq01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmqrcvblock01.yml b/spec/build/testsuites/psxtmtests/psxtmmqrcvblock01.yml
new file mode 100644
index 0000000000..140d8a0a50
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmqrcvblock01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmqrcvblock01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmqrcvblock01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmqrcvblock02.yml b/spec/build/testsuites/psxtmtests/psxtmmqrcvblock02.yml
new file mode 100644
index 0000000000..f7503c65fd
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmqrcvblock02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmqrcvblock02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmqrcvblock02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmutex01.yml b/spec/build/testsuites/psxtmtests/psxtmmutex01.yml
new file mode 100644
index 0000000000..5ea686ef2b
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmutex01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmutex01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmutex01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmutex02.yml b/spec/build/testsuites/psxtmtests/psxtmmutex02.yml
new file mode 100644
index 0000000000..d9bfb29b23
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmutex02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmutex02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmutex02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmutex03.yml b/spec/build/testsuites/psxtmtests/psxtmmutex03.yml
new file mode 100644
index 0000000000..6c07fff450
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmutex03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmutex03/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmutex03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmutex04.yml b/spec/build/testsuites/psxtmtests/psxtmmutex04.yml
new file mode 100644
index 0000000000..eb4b5e8be2
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmutex04.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmutex04/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmutex04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmutex05.yml b/spec/build/testsuites/psxtmtests/psxtmmutex05.yml
new file mode 100644
index 0000000000..fec07ec6d7
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmutex05.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmutex05/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmutex05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmutex06.yml b/spec/build/testsuites/psxtmtests/psxtmmutex06.yml
new file mode 100644
index 0000000000..1e5935812b
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmutex06.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmutex06/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmutex06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmutex07.yml b/spec/build/testsuites/psxtmtests/psxtmmutex07.yml
new file mode 100644
index 0000000000..3c3445baf9
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmutex07.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmutex07/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmutex07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmmutexattr01.yml b/spec/build/testsuites/psxtmtests/psxtmmutexattr01.yml
new file mode 100644
index 0000000000..41e68f51d6
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmmutexattr01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmmutexattr01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmmutexattr01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmnanosleep01.yml b/spec/build/testsuites/psxtmtests/psxtmnanosleep01.yml
new file mode 100644
index 0000000000..52fa4d082a
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmnanosleep01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmnanosleep01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmnanosleep01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmnanosleep02.yml b/spec/build/testsuites/psxtmtests/psxtmnanosleep02.yml
new file mode 100644
index 0000000000..a3bb97e27f
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmnanosleep02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmnanosleep02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmnanosleep02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmonce01.yml b/spec/build/testsuites/psxtmtests/psxtmonce01.yml
new file mode 100644
index 0000000000..9120307354
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmonce01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmonce01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmonce01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmrwlock01.yml b/spec/build/testsuites/psxtmtests/psxtmrwlock01.yml
new file mode 100644
index 0000000000..e8185f97e1
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmrwlock01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmrwlock01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmrwlock01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmrwlock02.yml b/spec/build/testsuites/psxtmtests/psxtmrwlock02.yml
new file mode 100644
index 0000000000..6989bd55ca
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmrwlock02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmrwlock02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmrwlock02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmrwlock03.yml b/spec/build/testsuites/psxtmtests/psxtmrwlock03.yml
new file mode 100644
index 0000000000..5cc605efba
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmrwlock03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmrwlock03/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmrwlock03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmrwlock04.yml b/spec/build/testsuites/psxtmtests/psxtmrwlock04.yml
new file mode 100644
index 0000000000..dccc122603
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmrwlock04.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmrwlock04/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmrwlock04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmrwlock05.yml b/spec/build/testsuites/psxtmtests/psxtmrwlock05.yml
new file mode 100644
index 0000000000..0a62296fff
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmrwlock05.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmrwlock05/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmrwlock05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmrwlock06.yml b/spec/build/testsuites/psxtmtests/psxtmrwlock06.yml
new file mode 100644
index 0000000000..9591d67b4b
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmrwlock06.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmrwlock06/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmrwlock06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmrwlock07.yml b/spec/build/testsuites/psxtmtests/psxtmrwlock07.yml
new file mode 100644
index 0000000000..f116a3823a
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmrwlock07.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmrwlock07/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmrwlock07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmsem01.yml b/spec/build/testsuites/psxtmtests/psxtmsem01.yml
new file mode 100644
index 0000000000..e28152e398
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmsem01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmsem01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmsem01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmsem02.yml b/spec/build/testsuites/psxtmtests/psxtmsem02.yml
new file mode 100644
index 0000000000..dc1e6c98b0
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmsem02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmsem02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmsem02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmsem03.yml b/spec/build/testsuites/psxtmtests/psxtmsem03.yml
new file mode 100644
index 0000000000..c4f3355f00
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmsem03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmsem03/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmsem03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmsem04.yml b/spec/build/testsuites/psxtmtests/psxtmsem04.yml
new file mode 100644
index 0000000000..63184ecf78
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmsem04.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmsem04/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmsem04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmsem05.yml b/spec/build/testsuites/psxtmtests/psxtmsem05.yml
new file mode 100644
index 0000000000..d7176d0015
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmsem05.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmsem05/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmsem05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmsleep01.yml b/spec/build/testsuites/psxtmtests/psxtmsleep01.yml
new file mode 100644
index 0000000000..e8e241e973
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmsleep01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmsleep01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmsleep01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmsleep02.yml b/spec/build/testsuites/psxtmtests/psxtmsleep02.yml
new file mode 100644
index 0000000000..750dfb18aa
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmsleep02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmsleep02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmsleep02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmthread01.yml b/spec/build/testsuites/psxtmtests/psxtmthread01.yml
new file mode 100644
index 0000000000..db341b18e4
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmthread01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmthread01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmthread01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmthread02.yml b/spec/build/testsuites/psxtmtests/psxtmthread02.yml
new file mode 100644
index 0000000000..e6308973ee
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmthread02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmthread02/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmthread02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmthread03.yml b/spec/build/testsuites/psxtmtests/psxtmthread03.yml
new file mode 100644
index 0000000000..13d1b5c594
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmthread03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmthread03/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmthread03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmthread04.yml b/spec/build/testsuites/psxtmtests/psxtmthread04.yml
new file mode 100644
index 0000000000..b23d627ad3
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmthread04.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmthread04/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmthread04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmthread05.yml b/spec/build/testsuites/psxtmtests/psxtmthread05.yml
new file mode 100644
index 0000000000..ad58179aa1
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmthread05.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmthread05/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmthread05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmthread06.yml b/spec/build/testsuites/psxtmtests/psxtmthread06.yml
new file mode 100644
index 0000000000..5af6d71a94
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmthread06.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmthread06/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmthread06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/psxtmtests/psxtmthreadattr01.yml b/spec/build/testsuites/psxtmtests/psxtmthreadattr01.yml
new file mode 100644
index 0000000000..cbbecc27cc
--- /dev/null
+++ b/spec/build/testsuites/psxtmtests/psxtmthreadattr01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/psxtmtests/psxtmthreadattr01/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/psxtmtests/psxtmthreadattr01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/rhealstone/grp.yml b/spec/build/testsuites/rhealstone/grp.yml
new file mode 100644
index 0000000000..272c65b22d
--- /dev/null
+++ b/spec/build/testsuites/rhealstone/grp.yml
@@ -0,0 +1,31 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_RHEALSTONE
+includes:
+- testsuites/support/include
+- testsuites/tmtests/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: rhdeadlockbrk
+- role: build-dependency
+ uid: rhilatency
+- role: build-dependency
+ uid: rhmlatency
+- role: build-dependency
+ uid: rhsemshuffle
+- role: build-dependency
+ uid: rhtaskpreempt
+- role: build-dependency
+ uid: rhtaskswitch
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/rhealstone/rhdeadlockbrk.yml b/spec/build/testsuites/rhealstone/rhdeadlockbrk.yml
new file mode 100644
index 0000000000..4746406f79
--- /dev/null
+++ b/spec/build/testsuites/rhealstone/rhdeadlockbrk.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/rhealstone/rhdeadlockbrk/deadlockbrk.c
+stlib: []
+target: testsuites/rhealstone/rhdeadlockbrk.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/rhealstone/rhilatency.yml b/spec/build/testsuites/rhealstone/rhilatency.yml
new file mode 100644
index 0000000000..35b5229932
--- /dev/null
+++ b/spec/build/testsuites/rhealstone/rhilatency.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/rhealstone/rhilatency/ilatency.c
+stlib: []
+target: testsuites/rhealstone/rhilatency.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/rhealstone/rhmlatency.yml b/spec/build/testsuites/rhealstone/rhmlatency.yml
new file mode 100644
index 0000000000..8939823d4d
--- /dev/null
+++ b/spec/build/testsuites/rhealstone/rhmlatency.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/rhealstone/rhmlatency/mlatency.c
+stlib: []
+target: testsuites/rhealstone/rhmlatency.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/rhealstone/rhsemshuffle.yml b/spec/build/testsuites/rhealstone/rhsemshuffle.yml
new file mode 100644
index 0000000000..e3ea7ec012
--- /dev/null
+++ b/spec/build/testsuites/rhealstone/rhsemshuffle.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/rhealstone/rhsemshuffle/semshuffle.c
+stlib: []
+target: testsuites/rhealstone/rhsemshuffle.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/rhealstone/rhtaskpreempt.yml b/spec/build/testsuites/rhealstone/rhtaskpreempt.yml
new file mode 100644
index 0000000000..e2a3b8d2ad
--- /dev/null
+++ b/spec/build/testsuites/rhealstone/rhtaskpreempt.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/rhealstone/rhtaskpreempt/taskpreempt.c
+stlib: []
+target: testsuites/rhealstone/rhtaskpreempt.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/rhealstone/rhtaskswitch.yml b/spec/build/testsuites/rhealstone/rhtaskswitch.yml
new file mode 100644
index 0000000000..12cfacb790
--- /dev/null
+++ b/spec/build/testsuites/rhealstone/rhtaskswitch.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/rhealstone/rhtaskswitch/taskswitch.c
+stlib: []
+target: testsuites/rhealstone/rhtaskswitch.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/basempnode1.yml b/spec/build/testsuites/samples/basempnode1.yml
new file mode 100644
index 0000000000..e4da6b6171
--- /dev/null
+++ b/spec/build/testsuites/samples/basempnode1.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/base_mp/init1.c
+- testsuites/samples/base_mp/apptask.c
+stlib: []
+target: testsuites/samples/base_mp_node1.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/basempnode2.yml b/spec/build/testsuites/samples/basempnode2.yml
new file mode 100644
index 0000000000..6a83bc67be
--- /dev/null
+++ b/spec/build/testsuites/samples/basempnode2.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_MULTIPROCESSING
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/base_mp/init2.c
+- testsuites/samples/base_mp/apptask.c
+stlib: []
+target: testsuites/samples/base_mp_node2.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/basesp.yml b/spec/build/testsuites/samples/basesp.yml
new file mode 100644
index 0000000000..8431be7e2a
--- /dev/null
+++ b/spec/build/testsuites/samples/basesp.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/base_sp/init.c
+- testsuites/samples/base_sp/apptask.c
+stlib: []
+target: testsuites/samples/base_sp.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/capture.yml b/spec/build/testsuites/samples/capture.yml
new file mode 100644
index 0000000000..ad452f24d4
--- /dev/null
+++ b/spec/build/testsuites/samples/capture.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/capture/init.c
+- testsuites/samples/capture/test1.c
+stlib: []
+target: testsuites/samples/capture.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/cdtest.yml b/spec/build/testsuites/samples/cdtest.yml
new file mode 100644
index 0000000000..120076c884
--- /dev/null
+++ b/spec/build/testsuites/samples/cdtest.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cxx cxxprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/cdtest/init.c
+- testsuites/samples/cdtest/main.cc
+stlib: []
+target: testsuites/samples/cdtest.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/fileio.yml b/spec/build/testsuites/samples/fileio.yml
new file mode 100644
index 0000000000..aaf81659ee
--- /dev/null
+++ b/spec/build/testsuites/samples/fileio.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/fileio/init.c
+stlib: []
+target: testsuites/samples/fileio.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/grp.yml b/spec/build/testsuites/samples/grp.yml
new file mode 100644
index 0000000000..c7591dc551
--- /dev/null
+++ b/spec/build/testsuites/samples/grp.yml
@@ -0,0 +1,48 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_SAMPLES
+includes:
+- testsuites/support/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: basempnode1
+- role: build-dependency
+ uid: basempnode2
+- role: build-dependency
+ uid: basesp
+- role: build-dependency
+ uid: capture
+- role: build-dependency
+ uid: cdtest
+- role: build-dependency
+ uid: fileio
+- role: build-dependency
+ uid: hello
+- role: build-dependency
+ uid: iostream
+- role: build-dependency
+ uid: loopback
+- role: build-dependency
+ uid: minimum
+- role: build-dependency
+ uid: nsecs
+- role: build-dependency
+ uid: paranoia
+- role: build-dependency
+ uid: pppd
+- role: build-dependency
+ uid: ticker
+- role: build-dependency
+ uid: unlimited
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/samples/hello.yml b/spec/build/testsuites/samples/hello.yml
new file mode 100644
index 0000000000..8919a41886
--- /dev/null
+++ b/spec/build/testsuites/samples/hello.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/hello/init.c
+stlib: []
+target: testsuites/samples/hello.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/iostream.yml b/spec/build/testsuites/samples/iostream.yml
new file mode 100644
index 0000000000..97626895fe
--- /dev/null
+++ b/spec/build/testsuites/samples/iostream.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: cxx cxxprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/iostream/init.cc
+stlib: []
+target: testsuites/samples/iostream.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/loopback.yml b/spec/build/testsuites/samples/loopback.yml
new file mode 100644
index 0000000000..09a816f9cc
--- /dev/null
+++ b/spec/build/testsuites/samples/loopback.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_NETWORKING
+features: c cprogram
+includes:
+- cpukit/libnetworking
+ldflags: []
+links: []
+source:
+- testsuites/samples/loopback/init.c
+stlib: []
+target: testsuites/samples/loopback.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/minimum.yml b/spec/build/testsuites/samples/minimum.yml
new file mode 100644
index 0000000000..4a97a86f2f
--- /dev/null
+++ b/spec/build/testsuites/samples/minimum.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/minimum/init.c
+stlib: []
+target: testsuites/samples/minimum.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/nsecs.yml b/spec/build/testsuites/samples/nsecs.yml
new file mode 100644
index 0000000000..7f0c9827ee
--- /dev/null
+++ b/spec/build/testsuites/samples/nsecs.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/nsecs/init.c
+- testsuites/samples/nsecs/empty.c
+stlib: []
+target: testsuites/samples/nsecs.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/paranoia.yml b/spec/build/testsuites/samples/paranoia.yml
new file mode 100644
index 0000000000..39b2850f1e
--- /dev/null
+++ b/spec/build/testsuites/samples/paranoia.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/paranoia/init.c
+- testsuites/samples/paranoia/paranoia.c
+stlib:
+- m
+target: testsuites/samples/paranoia.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/pppd.yml b/spec/build/testsuites/samples/pppd.yml
new file mode 100644
index 0000000000..8747562be8
--- /dev/null
+++ b/spec/build/testsuites/samples/pppd.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- and:
+ - RTEMS_NETWORKING
+ - not: RTEMS_SMP
+features: c cprogram
+includes:
+- cpukit/libnetworking
+ldflags: []
+links: []
+source:
+- testsuites/samples/pppd/init.c
+- testsuites/samples/pppd/pppdapp.c
+stlib: []
+target: testsuites/samples/pppd.exe
+type: build
+use-after:
+- pppd
+use-before: []
diff --git a/spec/build/testsuites/samples/ticker.yml b/spec/build/testsuites/samples/ticker.yml
new file mode 100644
index 0000000000..55a2d433ee
--- /dev/null
+++ b/spec/build/testsuites/samples/ticker.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/ticker/init.c
+- testsuites/samples/ticker/tasks.c
+stlib: []
+target: testsuites/samples/ticker.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/samples/unlimited.yml b/spec/build/testsuites/samples/unlimited.yml
new file mode 100644
index 0000000000..b468da80be
--- /dev/null
+++ b/spec/build/testsuites/samples/unlimited.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/samples/unlimited/init.c
+- testsuites/samples/unlimited/test1.c
+- testsuites/samples/unlimited/test2.c
+- testsuites/samples/unlimited/test3.c
+stlib: []
+target: testsuites/samples/unlimited.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/grp.yml b/spec/build/testsuites/smptests/grp.yml
new file mode 100644
index 0000000000..8564cf2294
--- /dev/null
+++ b/spec/build/testsuites/smptests/grp.yml
@@ -0,0 +1,139 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- and:
+ - RTEMS_SMP
+ - or:
+ - BUILD_TESTS
+ - BUILD_SMPTESTS
+includes:
+- testsuites/support/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: smp01
+- role: build-dependency
+ uid: smp02
+- role: build-dependency
+ uid: smp03
+- role: build-dependency
+ uid: smp05
+- role: build-dependency
+ uid: smp07
+- role: build-dependency
+ uid: smp08
+- role: build-dependency
+ uid: smp09
+- role: build-dependency
+ uid: smpaffinity01
+- role: build-dependency
+ uid: smpatomic01
+- role: build-dependency
+ uid: smpcache01
+- role: build-dependency
+ uid: smpcapture01
+- role: build-dependency
+ uid: smpcapture02
+- role: build-dependency
+ uid: smpclock01
+- role: build-dependency
+ uid: smpfatal01
+- role: build-dependency
+ uid: smpfatal02
+- role: build-dependency
+ uid: smpfatal03
+- role: build-dependency
+ uid: smpfatal04
+- role: build-dependency
+ uid: smpfatal05
+- role: build-dependency
+ uid: smpfatal06
+- role: build-dependency
+ uid: smpfatal08
+- role: build-dependency
+ uid: smpfatal09
+- role: build-dependency
+ uid: smpipi01
+- role: build-dependency
+ uid: smpload01
+- role: build-dependency
+ uid: smplock01
+- role: build-dependency
+ uid: smpmigration01
+- role: build-dependency
+ uid: smpmigration02
+- role: build-dependency
+ uid: smpmrsp01
+- role: build-dependency
+ uid: smpmulticast01
+- role: build-dependency
+ uid: smpmutex01
+- role: build-dependency
+ uid: smpmutex02
+- role: build-dependency
+ uid: smpopenmp01
+- role: build-dependency
+ uid: smppsxaffinity01
+- role: build-dependency
+ uid: smppsxaffinity02
+- role: build-dependency
+ uid: smppsxmutex01
+- role: build-dependency
+ uid: smppsxsignal01
+- role: build-dependency
+ uid: smpschedaffinity01
+- role: build-dependency
+ uid: smpschedaffinity02
+- role: build-dependency
+ uid: smpschedaffinity03
+- role: build-dependency
+ uid: smpschedaffinity04
+- role: build-dependency
+ uid: smpschedaffinity05
+- role: build-dependency
+ uid: smpschededf01
+- role: build-dependency
+ uid: smpschededf02
+- role: build-dependency
+ uid: smpschededf03
+- role: build-dependency
+ uid: smpschededf04
+- role: build-dependency
+ uid: smpschedsem01
+- role: build-dependency
+ uid: smpscheduler01
+- role: build-dependency
+ uid: smpscheduler02
+- role: build-dependency
+ uid: smpscheduler03
+- role: build-dependency
+ uid: smpscheduler04
+- role: build-dependency
+ uid: smpscheduler05
+- role: build-dependency
+ uid: smpscheduler06
+- role: build-dependency
+ uid: smpscheduler07
+- role: build-dependency
+ uid: smpsignal01
+- role: build-dependency
+ uid: smpstrongapa01
+- role: build-dependency
+ uid: smpswitchextension01
+- role: build-dependency
+ uid: smpthreadlife01
+- role: build-dependency
+ uid: smpthreadpin01
+- role: build-dependency
+ uid: smpunsupported01
+- role: build-dependency
+ uid: smpwakeafter01
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/smptests/smp01.yml b/spec/build/testsuites/smptests/smp01.yml
new file mode 100644
index 0000000000..19ab2463e5
--- /dev/null
+++ b/spec/build/testsuites/smptests/smp01.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smp01/init.c
+- testsuites/smptests/smp01/tasks.c
+- testsuites/support/src/locked_print.c
+stlib: []
+target: testsuites/smptests/smp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smp02.yml b/spec/build/testsuites/smptests/smp02.yml
new file mode 100644
index 0000000000..6b89c3538d
--- /dev/null
+++ b/spec/build/testsuites/smptests/smp02.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smp02/init.c
+- testsuites/smptests/smp02/tasks.c
+- testsuites/support/src/locked_print.c
+stlib: []
+target: testsuites/smptests/smp02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smp03.yml b/spec/build/testsuites/smptests/smp03.yml
new file mode 100644
index 0000000000..3a484b42c7
--- /dev/null
+++ b/spec/build/testsuites/smptests/smp03.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smp03/init.c
+- testsuites/smptests/smp03/tasks.c
+- testsuites/support/src/locked_print.c
+stlib: []
+target: testsuites/smptests/smp03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smp05.yml b/spec/build/testsuites/smptests/smp05.yml
new file mode 100644
index 0000000000..4b72e3c644
--- /dev/null
+++ b/spec/build/testsuites/smptests/smp05.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smp05/init.c
+- testsuites/support/src/locked_print.c
+stlib: []
+target: testsuites/smptests/smp05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smp07.yml b/spec/build/testsuites/smptests/smp07.yml
new file mode 100644
index 0000000000..66f54a0506
--- /dev/null
+++ b/spec/build/testsuites/smptests/smp07.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smp07/init.c
+- testsuites/support/src/locked_print.c
+stlib: []
+target: testsuites/smptests/smp07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smp08.yml b/spec/build/testsuites/smptests/smp08.yml
new file mode 100644
index 0000000000..52a282e2f5
--- /dev/null
+++ b/spec/build/testsuites/smptests/smp08.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smp08/init.c
+- testsuites/smptests/smp08/tasks.c
+- testsuites/support/src/locked_print.c
+stlib: []
+target: testsuites/smptests/smp08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smp09.yml b/spec/build/testsuites/smptests/smp09.yml
new file mode 100644
index 0000000000..718b7970a5
--- /dev/null
+++ b/spec/build/testsuites/smptests/smp09.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smp09/init.c
+- testsuites/support/src/locked_print.c
+stlib: []
+target: testsuites/smptests/smp09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpaffinity01.yml b/spec/build/testsuites/smptests/smpaffinity01.yml
new file mode 100644
index 0000000000..b9f61f5d01
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpaffinity01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpaffinity01/init.c
+stlib: []
+target: testsuites/smptests/smpaffinity01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpatomic01.yml b/spec/build/testsuites/smptests/smpatomic01.yml
new file mode 100644
index 0000000000..98c5c3a219
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpatomic01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpatomic01/init.c
+stlib: []
+target: testsuites/smptests/smpatomic01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpcache01.yml b/spec/build/testsuites/smptests/smpcache01.yml
new file mode 100644
index 0000000000..e3ae091117
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpcache01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpcache01/init.c
+stlib: []
+target: testsuites/smptests/smpcache01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpcapture01.yml b/spec/build/testsuites/smptests/smpcapture01.yml
new file mode 100644
index 0000000000..9bc6488250
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpcapture01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpcapture01/init.c
+stlib: []
+target: testsuites/smptests/smpcapture01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpcapture02.yml b/spec/build/testsuites/smptests/smpcapture02.yml
new file mode 100644
index 0000000000..e4be8239ac
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpcapture02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpcapture02/init.c
+stlib: []
+target: testsuites/smptests/smpcapture02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpclock01.yml b/spec/build/testsuites/smptests/smpclock01.yml
new file mode 100644
index 0000000000..c8850c7708
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpclock01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpclock01/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/smptests/smpclock01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpfatal01.yml b/spec/build/testsuites/smptests/smpfatal01.yml
new file mode 100644
index 0000000000..91c07bdec5
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpfatal01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpfatal01/init.c
+stlib: []
+target: testsuites/smptests/smpfatal01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpfatal02.yml b/spec/build/testsuites/smptests/smpfatal02.yml
new file mode 100644
index 0000000000..8bf3cc8f3a
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpfatal02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpfatal02/init.c
+stlib: []
+target: testsuites/smptests/smpfatal02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpfatal03.yml b/spec/build/testsuites/smptests/smpfatal03.yml
new file mode 100644
index 0000000000..5a48a8d482
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpfatal03.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpfatal03/init.c
+stlib: []
+target: testsuites/smptests/smpfatal03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpfatal04.yml b/spec/build/testsuites/smptests/smpfatal04.yml
new file mode 100644
index 0000000000..5340f9e47c
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpfatal04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpfatal04/init.c
+stlib: []
+target: testsuites/smptests/smpfatal04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpfatal05.yml b/spec/build/testsuites/smptests/smpfatal05.yml
new file mode 100644
index 0000000000..fd0ac2e907
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpfatal05.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpfatal05/init.c
+stlib: []
+target: testsuites/smptests/smpfatal05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpfatal06.yml b/spec/build/testsuites/smptests/smpfatal06.yml
new file mode 100644
index 0000000000..f361f8f0c7
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpfatal06.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpfatal06/init.c
+stlib: []
+target: testsuites/smptests/smpfatal06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpfatal08.yml b/spec/build/testsuites/smptests/smpfatal08.yml
new file mode 100644
index 0000000000..806970f8cb
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpfatal08.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpfatal08/init.c
+stlib: []
+target: testsuites/smptests/smpfatal08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpfatal09.yml b/spec/build/testsuites/smptests/smpfatal09.yml
new file mode 100644
index 0000000000..a44e8b56ed
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpfatal09.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpfatal09/init.c
+stlib: []
+target: testsuites/smptests/smpfatal09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpipi01.yml b/spec/build/testsuites/smptests/smpipi01.yml
new file mode 100644
index 0000000000..5c3b89b4de
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpipi01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpipi01/init.c
+stlib: []
+target: testsuites/smptests/smpipi01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpload01.yml b/spec/build/testsuites/smptests/smpload01.yml
new file mode 100644
index 0000000000..2e6a6b7ae2
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpload01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpload01/init.c
+stlib: []
+target: testsuites/smptests/smpload01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smplock01.yml b/spec/build/testsuites/smptests/smplock01.yml
new file mode 100644
index 0000000000..014e9df96f
--- /dev/null
+++ b/spec/build/testsuites/smptests/smplock01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smplock01/init.c
+stlib: []
+target: testsuites/smptests/smplock01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpmigration01.yml b/spec/build/testsuites/smptests/smpmigration01.yml
new file mode 100644
index 0000000000..551c9f918b
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpmigration01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpmigration01/init.c
+stlib: []
+target: testsuites/smptests/smpmigration01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpmigration02.yml b/spec/build/testsuites/smptests/smpmigration02.yml
new file mode 100644
index 0000000000..a7462d8700
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpmigration02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpmigration02/init.c
+stlib: []
+target: testsuites/smptests/smpmigration02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpmrsp01.yml b/spec/build/testsuites/smptests/smpmrsp01.yml
new file mode 100644
index 0000000000..9015b75dad
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpmrsp01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpmrsp01/init.c
+stlib: []
+target: testsuites/smptests/smpmrsp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpmulticast01.yml b/spec/build/testsuites/smptests/smpmulticast01.yml
new file mode 100644
index 0000000000..03c72ea618
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpmulticast01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpmulticast01/init.c
+stlib: []
+target: testsuites/smptests/smpmulticast01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpmutex01.yml b/spec/build/testsuites/smptests/smpmutex01.yml
new file mode 100644
index 0000000000..c4aa6dcd29
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpmutex01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpmutex01/init.c
+stlib: []
+target: testsuites/smptests/smpmutex01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpmutex02.yml b/spec/build/testsuites/smptests/smpmutex02.yml
new file mode 100644
index 0000000000..550cdaa586
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpmutex02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpmutex02/init.c
+stlib: []
+target: testsuites/smptests/smpmutex02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpopenmp01.yml b/spec/build/testsuites/smptests/smpopenmp01.yml
new file mode 100644
index 0000000000..932c777ff1
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpopenmp01.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags:
+- -fopenmp
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags:
+- -fopenmp
+links: []
+source:
+- testsuites/smptests/smpopenmp01/init.c
+stlib: []
+target: testsuites/smptests/smpopenmp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smppsxaffinity01.yml b/spec/build/testsuites/smptests/smppsxaffinity01.yml
new file mode 100644
index 0000000000..9d70baa6ab
--- /dev/null
+++ b/spec/build/testsuites/smptests/smppsxaffinity01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smppsxaffinity01/init.c
+stlib: []
+target: testsuites/smptests/smppsxaffinity01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smppsxaffinity02.yml b/spec/build/testsuites/smptests/smppsxaffinity02.yml
new file mode 100644
index 0000000000..bd896970e1
--- /dev/null
+++ b/spec/build/testsuites/smptests/smppsxaffinity02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smppsxaffinity02/init.c
+stlib: []
+target: testsuites/smptests/smppsxaffinity02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smppsxmutex01.yml b/spec/build/testsuites/smptests/smppsxmutex01.yml
new file mode 100644
index 0000000000..645b36d4b0
--- /dev/null
+++ b/spec/build/testsuites/smptests/smppsxmutex01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smppsxmutex01/init.c
+stlib: []
+target: testsuites/smptests/smppsxmutex01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smppsxsignal01.yml b/spec/build/testsuites/smptests/smppsxsignal01.yml
new file mode 100644
index 0000000000..95549c52cb
--- /dev/null
+++ b/spec/build/testsuites/smptests/smppsxsignal01.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- and:
+ - RTEMS_SMP
+ - RTEMS_POSIX_API
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smppsxsignal01/init.c
+stlib: []
+target: testsuites/smptests/smppsxsignal01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschedaffinity01.yml b/spec/build/testsuites/smptests/smpschedaffinity01.yml
new file mode 100644
index 0000000000..96a4a1cc03
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschedaffinity01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschedaffinity01/init.c
+stlib: []
+target: testsuites/smptests/smpschedaffinity01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschedaffinity02.yml b/spec/build/testsuites/smptests/smpschedaffinity02.yml
new file mode 100644
index 0000000000..d573232934
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschedaffinity02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschedaffinity02/init.c
+stlib: []
+target: testsuites/smptests/smpschedaffinity02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschedaffinity03.yml b/spec/build/testsuites/smptests/smpschedaffinity03.yml
new file mode 100644
index 0000000000..b80a48ec24
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschedaffinity03.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschedaffinity03/init.c
+stlib: []
+target: testsuites/smptests/smpschedaffinity03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschedaffinity04.yml b/spec/build/testsuites/smptests/smpschedaffinity04.yml
new file mode 100644
index 0000000000..7328111605
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschedaffinity04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschedaffinity04/init.c
+stlib: []
+target: testsuites/smptests/smpschedaffinity04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschedaffinity05.yml b/spec/build/testsuites/smptests/smpschedaffinity05.yml
new file mode 100644
index 0000000000..32046be5de
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschedaffinity05.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschedaffinity05/init.c
+stlib: []
+target: testsuites/smptests/smpschedaffinity05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschededf01.yml b/spec/build/testsuites/smptests/smpschededf01.yml
new file mode 100644
index 0000000000..61be8f57fa
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschededf01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschededf01/init.c
+stlib: []
+target: testsuites/smptests/smpschededf01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschededf02.yml b/spec/build/testsuites/smptests/smpschededf02.yml
new file mode 100644
index 0000000000..db5041a775
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschededf02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschededf02/init.c
+stlib: []
+target: testsuites/smptests/smpschededf02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschededf03.yml b/spec/build/testsuites/smptests/smpschededf03.yml
new file mode 100644
index 0000000000..0c1af3e521
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschededf03.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschededf03/init.c
+stlib: []
+target: testsuites/smptests/smpschededf03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschededf04.yml b/spec/build/testsuites/smptests/smpschededf04.yml
new file mode 100644
index 0000000000..bd2a2014c2
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschededf04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschededf04/init.c
+stlib: []
+target: testsuites/smptests/smpschededf04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpschedsem01.yml b/spec/build/testsuites/smptests/smpschedsem01.yml
new file mode 100644
index 0000000000..8dde70355a
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpschedsem01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpschedsem01/init.c
+stlib: []
+target: testsuites/smptests/smpschedsem01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpscheduler01.yml b/spec/build/testsuites/smptests/smpscheduler01.yml
new file mode 100644
index 0000000000..1a79f22afa
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpscheduler01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpscheduler01/init.c
+stlib: []
+target: testsuites/smptests/smpscheduler01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpscheduler02.yml b/spec/build/testsuites/smptests/smpscheduler02.yml
new file mode 100644
index 0000000000..6fe5224e25
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpscheduler02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpscheduler02/init.c
+stlib: []
+target: testsuites/smptests/smpscheduler02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpscheduler03.yml b/spec/build/testsuites/smptests/smpscheduler03.yml
new file mode 100644
index 0000000000..957ceb7f33
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpscheduler03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpscheduler03/init.c
+- testsuites/smptests/smpscheduler03/test.c
+stlib: []
+target: testsuites/smptests/smpscheduler03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpscheduler04.yml b/spec/build/testsuites/smptests/smpscheduler04.yml
new file mode 100644
index 0000000000..3483e7f5c1
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpscheduler04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpscheduler04/init.c
+stlib: []
+target: testsuites/smptests/smpscheduler04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpscheduler05.yml b/spec/build/testsuites/smptests/smpscheduler05.yml
new file mode 100644
index 0000000000..e365f35d9d
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpscheduler05.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpscheduler05/init.c
+- testsuites/smptests/smpscheduler03/test.c
+stlib: []
+target: testsuites/smptests/smpscheduler05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpscheduler06.yml b/spec/build/testsuites/smptests/smpscheduler06.yml
new file mode 100644
index 0000000000..9255a0227d
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpscheduler06.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpscheduler06/init.c
+- testsuites/smptests/smpscheduler03/test.c
+stlib: []
+target: testsuites/smptests/smpscheduler06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpscheduler07.yml b/spec/build/testsuites/smptests/smpscheduler07.yml
new file mode 100644
index 0000000000..a26aa1f068
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpscheduler07.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpscheduler07/init.c
+- testsuites/smptests/smpscheduler03/test.c
+stlib: []
+target: testsuites/smptests/smpscheduler07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpsignal01.yml b/spec/build/testsuites/smptests/smpsignal01.yml
new file mode 100644
index 0000000000..d2e841bc87
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpsignal01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpsignal01/init.c
+stlib: []
+target: testsuites/smptests/smpsignal01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpstrongapa01.yml b/spec/build/testsuites/smptests/smpstrongapa01.yml
new file mode 100644
index 0000000000..508c430f19
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpstrongapa01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpstrongapa01/init.c
+stlib: []
+target: testsuites/smptests/smpstrongapa01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpswitchextension01.yml b/spec/build/testsuites/smptests/smpswitchextension01.yml
new file mode 100644
index 0000000000..8a93f00dd3
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpswitchextension01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpswitchextension01/init.c
+stlib: []
+target: testsuites/smptests/smpswitchextension01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpthreadlife01.yml b/spec/build/testsuites/smptests/smpthreadlife01.yml
new file mode 100644
index 0000000000..d3a8e17fe9
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpthreadlife01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpthreadlife01/init.c
+stlib: []
+target: testsuites/smptests/smpthreadlife01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpthreadpin01.yml b/spec/build/testsuites/smptests/smpthreadpin01.yml
new file mode 100644
index 0000000000..9de0166819
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpthreadpin01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpthreadpin01/init.c
+stlib: []
+target: testsuites/smptests/smpthreadpin01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpunsupported01.yml b/spec/build/testsuites/smptests/smpunsupported01.yml
new file mode 100644
index 0000000000..cb6c040732
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpunsupported01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpunsupported01/init.c
+stlib: []
+target: testsuites/smptests/smpunsupported01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/smptests/smpwakeafter01.yml b/spec/build/testsuites/smptests/smpwakeafter01.yml
new file mode 100644
index 0000000000..cafe71ff83
--- /dev/null
+++ b/spec/build/testsuites/smptests/smpwakeafter01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/smptests/smpwakeafter01/init.c
+stlib: []
+target: testsuites/smptests/smpwakeafter01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/grp.yml b/spec/build/testsuites/sptests/grp.yml
new file mode 100644
index 0000000000..adb5ade354
--- /dev/null
+++ b/spec/build/testsuites/sptests/grp.yml
@@ -0,0 +1,450 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_SPTESTS
+includes:
+- testsuites/support/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: sp01
+- role: build-dependency
+ uid: sp02
+- role: build-dependency
+ uid: sp03
+- role: build-dependency
+ uid: sp04
+- role: build-dependency
+ uid: sp05
+- role: build-dependency
+ uid: sp06
+- role: build-dependency
+ uid: sp07
+- role: build-dependency
+ uid: sp08
+- role: build-dependency
+ uid: sp11
+- role: build-dependency
+ uid: sp12
+- role: build-dependency
+ uid: sp13
+- role: build-dependency
+ uid: sp14
+- role: build-dependency
+ uid: sp15
+- role: build-dependency
+ uid: sp16
+- role: build-dependency
+ uid: sp17
+- role: build-dependency
+ uid: sp18
+- role: build-dependency
+ uid: sp19
+- role: build-dependency
+ uid: sp20
+- role: build-dependency
+ uid: sp2038
+- role: build-dependency
+ uid: sp21
+- role: build-dependency
+ uid: sp22
+- role: build-dependency
+ uid: sp23
+- role: build-dependency
+ uid: sp24
+- role: build-dependency
+ uid: sp25
+- role: build-dependency
+ uid: sp26
+- role: build-dependency
+ uid: sp27
+- role: build-dependency
+ uid: sp27a
+- role: build-dependency
+ uid: sp29
+- role: build-dependency
+ uid: sp30
+- role: build-dependency
+ uid: sp31
+- role: build-dependency
+ uid: sp32
+- role: build-dependency
+ uid: sp33
+- role: build-dependency
+ uid: sp34
+- role: build-dependency
+ uid: sp35
+- role: build-dependency
+ uid: sp37
+- role: build-dependency
+ uid: sp38
+- role: build-dependency
+ uid: sp40
+- role: build-dependency
+ uid: sp41
+- role: build-dependency
+ uid: sp42
+- role: build-dependency
+ uid: sp43
+- role: build-dependency
+ uid: sp44
+- role: build-dependency
+ uid: sp45
+- role: build-dependency
+ uid: sp46
+- role: build-dependency
+ uid: sp47
+- role: build-dependency
+ uid: sp48
+- role: build-dependency
+ uid: sp49
+- role: build-dependency
+ uid: sp50
+- role: build-dependency
+ uid: sp51
+- role: build-dependency
+ uid: sp52
+- role: build-dependency
+ uid: sp53
+- role: build-dependency
+ uid: sp54
+- role: build-dependency
+ uid: sp55
+- role: build-dependency
+ uid: sp56
+- role: build-dependency
+ uid: sp57
+- role: build-dependency
+ uid: sp58
+- role: build-dependency
+ uid: sp59
+- role: build-dependency
+ uid: sp60
+- role: build-dependency
+ uid: sp62
+- role: build-dependency
+ uid: sp63
+- role: build-dependency
+ uid: sp64
+- role: build-dependency
+ uid: sp65
+- role: build-dependency
+ uid: sp66
+- role: build-dependency
+ uid: sp67
+- role: build-dependency
+ uid: sp68
+- role: build-dependency
+ uid: sp69
+- role: build-dependency
+ uid: sp70
+- role: build-dependency
+ uid: sp71
+- role: build-dependency
+ uid: sp72
+- role: build-dependency
+ uid: sp73
+- role: build-dependency
+ uid: sp74
+- role: build-dependency
+ uid: sp75
+- role: build-dependency
+ uid: sp76
+- role: build-dependency
+ uid: sp77
+- role: build-dependency
+ uid: spassoc01
+- role: build-dependency
+ uid: spatomic01
+- role: build-dependency
+ uid: spcache01
+- role: build-dependency
+ uid: spcbssched01
+- role: build-dependency
+ uid: spcbssched02
+- role: build-dependency
+ uid: spcbssched03
+- role: build-dependency
+ uid: spchain
+- role: build-dependency
+ uid: spclockerr01
+- role: build-dependency
+ uid: spclockerr02
+- role: build-dependency
+ uid: spclocktodhook01
+- role: build-dependency
+ uid: spconfig01
+- role: build-dependency
+ uid: spconfig02
+- role: build-dependency
+ uid: spconsole01
+- role: build-dependency
+ uid: spcontext01
+- role: build-dependency
+ uid: spcoverage
+- role: build-dependency
+ uid: spcpucounter01
+- role: build-dependency
+ uid: spcpuset01
+- role: build-dependency
+ uid: spcxx01
+- role: build-dependency
+ uid: spedfsched01
+- role: build-dependency
+ uid: spedfsched02
+- role: build-dependency
+ uid: spedfsched03
+- role: build-dependency
+ uid: spedfsched04
+- role: build-dependency
+ uid: sperror01
+- role: build-dependency
+ uid: sperror02
+- role: build-dependency
+ uid: sperror03
+- role: build-dependency
+ uid: speventerr03
+- role: build-dependency
+ uid: speventsystem01
+- role: build-dependency
+ uid: speventtransient01
+- role: build-dependency
+ uid: spextensions01
+- role: build-dependency
+ uid: spfatal01
+- role: build-dependency
+ uid: spfatal02
+- role: build-dependency
+ uid: spfatal03
+- role: build-dependency
+ uid: spfatal04
+- role: build-dependency
+ uid: spfatal05
+- role: build-dependency
+ uid: spfatal06
+- role: build-dependency
+ uid: spfatal09
+- role: build-dependency
+ uid: spfatal10
+- role: build-dependency
+ uid: spfatal11
+- role: build-dependency
+ uid: spfatal12
+- role: build-dependency
+ uid: spfatal14
+- role: build-dependency
+ uid: spfatal15
+- role: build-dependency
+ uid: spfatal24
+- role: build-dependency
+ uid: spfatal25
+- role: build-dependency
+ uid: spfatal26
+- role: build-dependency
+ uid: spfatal28
+- role: build-dependency
+ uid: spfatal29
+- role: build-dependency
+ uid: spfatal30
+- role: build-dependency
+ uid: spfatal31
+- role: build-dependency
+ uid: spfatal32
+- role: build-dependency
+ uid: spfifo01
+- role: build-dependency
+ uid: spfifo02
+- role: build-dependency
+ uid: spfifo03
+- role: build-dependency
+ uid: spfifo04
+- role: build-dependency
+ uid: spfifo05
+- role: build-dependency
+ uid: spfreechain01
+- role: build-dependency
+ uid: spglobalcon01
+- role: build-dependency
+ uid: spglobalcon02
+- role: build-dependency
+ uid: spheapprot
+- role: build-dependency
+ uid: spinternalerror01
+- role: build-dependency
+ uid: spinternalerror02
+- role: build-dependency
+ uid: spintrcritical01
+- role: build-dependency
+ uid: spintrcritical02
+- role: build-dependency
+ uid: spintrcritical03
+- role: build-dependency
+ uid: spintrcritical04
+- role: build-dependency
+ uid: spintrcritical05
+- role: build-dependency
+ uid: spintrcritical08
+- role: build-dependency
+ uid: spintrcritical09
+- role: build-dependency
+ uid: spintrcritical10
+- role: build-dependency
+ uid: spintrcritical11
+- role: build-dependency
+ uid: spintrcritical12
+- role: build-dependency
+ uid: spintrcritical13
+- role: build-dependency
+ uid: spintrcritical14
+- role: build-dependency
+ uid: spintrcritical15
+- role: build-dependency
+ uid: spintrcritical16
+- role: build-dependency
+ uid: spintrcritical18
+- role: build-dependency
+ uid: spintrcritical20
+- role: build-dependency
+ uid: spintrcritical21
+- role: build-dependency
+ uid: spintrcritical22
+- role: build-dependency
+ uid: spintrcritical23
+- role: build-dependency
+ uid: spintrcritical24
+- role: build-dependency
+ uid: spintrerr01
+- role: build-dependency
+ uid: splinkersets01
+- role: build-dependency
+ uid: spmisc01
+- role: build-dependency
+ uid: spmkdir
+- role: build-dependency
+ uid: spmountmgr01
+- role: build-dependency
+ uid: spmrsp01
+- role: build-dependency
+ uid: spmsgqerr01
+- role: build-dependency
+ uid: spmsgqerr02
+- role: build-dependency
+ uid: spmutex01
+- role: build-dependency
+ uid: spnsext01
+- role: build-dependency
+ uid: spobjgetnext
+- role: build-dependency
+ uid: sppagesize
+- role: build-dependency
+ uid: sppartitionerr01
+- role: build-dependency
+ uid: sppercpudata01
+- role: build-dependency
+ uid: spporterr01
+- role: build-dependency
+ uid: spprintk
+- role: build-dependency
+ uid: spprivenv01
+- role: build-dependency
+ uid: spprofiling01
+- role: build-dependency
+ uid: spqreslib
+- role: build-dependency
+ uid: spratemonerr01
+- role: build-dependency
+ uid: sprbtree01
+- role: build-dependency
+ uid: spregionerr01
+- role: build-dependency
+ uid: sprmsched01
+- role: build-dependency
+ uid: sprmsched02
+- role: build-dependency
+ uid: spscheduler01
+- role: build-dependency
+ uid: spsem01
+- role: build-dependency
+ uid: spsem02
+- role: build-dependency
+ uid: spsem03
+- role: build-dependency
+ uid: spsemerr01
+- role: build-dependency
+ uid: spsemerr02
+- role: build-dependency
+ uid: spsignalerr01
+- role: build-dependency
+ uid: spsimplesched01
+- role: build-dependency
+ uid: spsimplesched02
+- role: build-dependency
+ uid: spsimplesched03
+- role: build-dependency
+ uid: spsize
+- role: build-dependency
+ uid: spstdthreads01
+- role: build-dependency
+ uid: spstkalloc
+- role: build-dependency
+ uid: spstkalloc02
+- role: build-dependency
+ uid: spsysinit01
+- role: build-dependency
+ uid: spsyslock01
+- role: build-dependency
+ uid: sptaskerr01
+- role: build-dependency
+ uid: sptaskerr02
+- role: build-dependency
+ uid: sptaskerr03
+- role: build-dependency
+ uid: sptaskerr04
+- role: build-dependency
+ uid: sptasknopreempt01
+- role: build-dependency
+ uid: spthread01
+- role: build-dependency
+ uid: spthreadlife01
+- role: build-dependency
+ uid: spthreadq01
+- role: build-dependency
+ uid: sptimecounter01
+- role: build-dependency
+ uid: sptimecounter02
+- role: build-dependency
+ uid: sptimecounter03
+- role: build-dependency
+ uid: sptimecounter04
+- role: build-dependency
+ uid: sptimererr01
+- role: build-dependency
+ uid: sptimererr02
+- role: build-dependency
+ uid: sptimerserver01
+- role: build-dependency
+ uid: sptimespec01
+- role: build-dependency
+ uid: sptls01
+- role: build-dependency
+ uid: sptls02
+- role: build-dependency
+ uid: sptls03
+- role: build-dependency
+ uid: sptls04
+- role: build-dependency
+ uid: spversion01
+- role: build-dependency
+ uid: spwatchdog
+- role: build-dependency
+ uid: spwkspace
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp01.yml b/spec/build/testsuites/sptests/sp01.yml
new file mode 100644
index 0000000000..342271f56e
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp01/init.c
+- testsuites/sptests/sp01/task1.c
+stlib: []
+target: testsuites/sptests/sp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp02.yml b/spec/build/testsuites/sptests/sp02.yml
new file mode 100644
index 0000000000..b2f5c95aef
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp02.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp02/init.c
+- testsuites/sptests/sp02/task1.c
+- testsuites/sptests/sp02/task2.c
+- testsuites/sptests/sp02/task3.c
+- testsuites/sptests/sp02/preempt.c
+stlib: []
+target: testsuites/sptests/sp02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp03.yml b/spec/build/testsuites/sptests/sp03.yml
new file mode 100644
index 0000000000..0e93ab8a89
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp03/init.c
+- testsuites/sptests/sp03/task1.c
+- testsuites/sptests/sp03/task2.c
+stlib: []
+target: testsuites/sptests/sp03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp04.yml b/spec/build/testsuites/sptests/sp04.yml
new file mode 100644
index 0000000000..c3e0208531
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp04.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp04/init.c
+- testsuites/sptests/sp04/task1.c
+- testsuites/sptests/sp04/task2.c
+- testsuites/sptests/sp04/task3.c
+- testsuites/sptests/sp04/tswitch.c
+stlib: []
+target: testsuites/sptests/sp04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp05.yml b/spec/build/testsuites/sptests/sp05.yml
new file mode 100644
index 0000000000..6982f3aa60
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp05.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp05/init.c
+- testsuites/sptests/sp05/task1.c
+- testsuites/sptests/sp05/task2.c
+- testsuites/sptests/sp05/task3.c
+stlib: []
+target: testsuites/sptests/sp05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp06.yml b/spec/build/testsuites/sptests/sp06.yml
new file mode 100644
index 0000000000..534f2776c2
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp06.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp06/init.c
+- testsuites/sptests/sp06/task1.c
+- testsuites/sptests/sp06/task2.c
+- testsuites/sptests/sp06/task3.c
+stlib: []
+target: testsuites/sptests/sp06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp07.yml b/spec/build/testsuites/sptests/sp07.yml
new file mode 100644
index 0000000000..3e6e92c466
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp07.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp07/init.c
+- testsuites/sptests/sp07/task1.c
+- testsuites/sptests/sp07/task2.c
+- testsuites/sptests/sp07/task3.c
+- testsuites/sptests/sp07/task4.c
+- testsuites/sptests/sp07/taskexit.c
+- testsuites/sptests/sp07/tcreate.c
+- testsuites/sptests/sp07/tdelete.c
+- testsuites/sptests/sp07/trestart.c
+- testsuites/sptests/sp07/tstart.c
+stlib: []
+target: testsuites/sptests/sp07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp08.yml b/spec/build/testsuites/sptests/sp08.yml
new file mode 100644
index 0000000000..ec38b10918
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp08.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp08/init.c
+stlib: []
+target: testsuites/sptests/sp08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp11.yml b/spec/build/testsuites/sptests/sp11.yml
new file mode 100644
index 0000000000..8e071ffcd8
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp11.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp11/init.c
+- testsuites/sptests/sp11/task1.c
+- testsuites/sptests/sp11/task2.c
+- testsuites/sptests/sp11/timer.c
+stlib: []
+target: testsuites/sptests/sp11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp12.yml b/spec/build/testsuites/sptests/sp12.yml
new file mode 100644
index 0000000000..8a80f883a0
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp12.yml
@@ -0,0 +1,26 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp12/init.c
+- testsuites/sptests/sp12/task1.c
+- testsuites/sptests/sp12/task2.c
+- testsuites/sptests/sp12/task3.c
+- testsuites/sptests/sp12/task4.c
+- testsuites/sptests/sp12/task5.c
+- testsuites/sptests/sp12/pridrv.c
+- testsuites/sptests/sp12/pritask.c
+stlib: []
+target: testsuites/sptests/sp12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp13.yml b/spec/build/testsuites/sptests/sp13.yml
new file mode 100644
index 0000000000..96db9801dc
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp13.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp13/init.c
+- testsuites/sptests/sp13/fillbuff.c
+- testsuites/sptests/sp13/putbuff.c
+- testsuites/sptests/sp13/task1.c
+- testsuites/sptests/sp13/task2.c
+- testsuites/sptests/sp13/task3.c
+stlib: []
+target: testsuites/sptests/sp13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp14.yml b/spec/build/testsuites/sptests/sp14.yml
new file mode 100644
index 0000000000..0dae55025b
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp14.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp14/init.c
+- testsuites/sptests/sp14/asr.c
+- testsuites/sptests/sp14/task1.c
+- testsuites/sptests/sp14/task2.c
+stlib: []
+target: testsuites/sptests/sp14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp15.yml b/spec/build/testsuites/sptests/sp15.yml
new file mode 100644
index 0000000000..dac01b8a97
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp15.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp15/init.c
+- testsuites/sptests/sp15/task1.c
+stlib: []
+target: testsuites/sptests/sp15.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp16.yml b/spec/build/testsuites/sptests/sp16.yml
new file mode 100644
index 0000000000..866817c0bc
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp16.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp16/init.c
+- testsuites/sptests/sp16/task1.c
+- testsuites/sptests/sp16/task2.c
+- testsuites/sptests/sp16/task3.c
+- testsuites/sptests/sp16/task4.c
+- testsuites/sptests/sp16/task5.c
+stlib: []
+target: testsuites/sptests/sp16.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp17.yml b/spec/build/testsuites/sptests/sp17.yml
new file mode 100644
index 0000000000..75c60b994b
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp17.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp17/init.c
+- testsuites/sptests/sp17/asr.c
+- testsuites/sptests/sp17/task1.c
+- testsuites/sptests/sp17/task2.c
+stlib: []
+target: testsuites/sptests/sp17.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp18.yml b/spec/build/testsuites/sptests/sp18.yml
new file mode 100644
index 0000000000..23af739ded
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp18.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp18/init.c
+stlib: []
+target: testsuites/sptests/sp18.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp19.yml b/spec/build/testsuites/sptests/sp19.yml
new file mode 100644
index 0000000000..055d828cf5
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp19.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp19/init.c
+- testsuites/sptests/sp19/first.c
+- testsuites/sptests/sp19/fptask.c
+- testsuites/sptests/sp19/task1.c
+stlib: []
+target: testsuites/sptests/sp19.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp20.yml b/spec/build/testsuites/sptests/sp20.yml
new file mode 100644
index 0000000000..eca28d6bab
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp20.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp20/init.c
+- testsuites/sptests/sp20/getall.c
+- testsuites/sptests/sp20/task1.c
+stlib: []
+target: testsuites/sptests/sp20.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp2038.yml b/spec/build/testsuites/sptests/sp2038.yml
new file mode 100644
index 0000000000..ee42dc8196
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp2038.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp2038/init.c
+stlib: []
+target: testsuites/sptests/sp2038.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp21.yml b/spec/build/testsuites/sptests/sp21.yml
new file mode 100644
index 0000000000..3c7780e4be
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp21.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp21/init.c
+stlib: []
+target: testsuites/sptests/sp21.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp22.yml b/spec/build/testsuites/sptests/sp22.yml
new file mode 100644
index 0000000000..3f1d18ed22
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp22.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp22/init.c
+- testsuites/sptests/sp22/prtime.c
+- testsuites/sptests/sp22/delay.c
+- testsuites/sptests/sp22/task1.c
+stlib: []
+target: testsuites/sptests/sp22.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp23.yml b/spec/build/testsuites/sptests/sp23.yml
new file mode 100644
index 0000000000..181b8ed4c9
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp23.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp23/init.c
+- testsuites/sptests/sp23/task1.c
+stlib: []
+target: testsuites/sptests/sp23.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp24.yml b/spec/build/testsuites/sptests/sp24.yml
new file mode 100644
index 0000000000..93188689a1
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp24.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp24/init.c
+- testsuites/sptests/sp24/resume.c
+- testsuites/sptests/sp24/task1.c
+stlib: []
+target: testsuites/sptests/sp24.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp25.yml b/spec/build/testsuites/sptests/sp25.yml
new file mode 100644
index 0000000000..34deadf4cc
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp25.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp25/init.c
+- testsuites/sptests/sp25/task1.c
+stlib: []
+target: testsuites/sptests/sp25.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp26.yml b/spec/build/testsuites/sptests/sp26.yml
new file mode 100644
index 0000000000..dbff993ee2
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp26.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp26/init.c
+- testsuites/sptests/sp26/task1.c
+stlib: []
+target: testsuites/sptests/sp26.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp27.yml b/spec/build/testsuites/sptests/sp27.yml
new file mode 100644
index 0000000000..7ccb24b65f
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp27.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp27/init.c
+stlib: []
+target: testsuites/sptests/sp27.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp27a.yml b/spec/build/testsuites/sptests/sp27a.yml
new file mode 100644
index 0000000000..9707f9b409
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp27a.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp27a/init.c
+stlib: []
+target: testsuites/sptests/sp27a.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp29.yml b/spec/build/testsuites/sptests/sp29.yml
new file mode 100644
index 0000000000..43c8abb8b9
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp29.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by:
+- not: RTEMS_SMP
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp29/init.c
+stlib: []
+target: testsuites/sptests/sp29.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp30.yml b/spec/build/testsuites/sptests/sp30.yml
new file mode 100644
index 0000000000..b59cfbe240
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp30.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp30/init.c
+- testsuites/sptests/sp30/resume.c
+- testsuites/sptests/sp30/task1.c
+stlib: []
+target: testsuites/sptests/sp30.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp31.yml b/spec/build/testsuites/sptests/sp31.yml
new file mode 100644
index 0000000000..1620d6b999
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp31.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp31/delay.c
+- testsuites/sptests/sp31/init.c
+- testsuites/sptests/sp31/prtime.c
+- testsuites/sptests/sp31/task1.c
+stlib: []
+target: testsuites/sptests/sp31.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp32.yml b/spec/build/testsuites/sptests/sp32.yml
new file mode 100644
index 0000000000..9460734648
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp32.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp32/init.c
+stlib: []
+target: testsuites/sptests/sp32.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp33.yml b/spec/build/testsuites/sptests/sp33.yml
new file mode 100644
index 0000000000..ce04a2f871
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp33.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp33/init.c
+stlib: []
+target: testsuites/sptests/sp33.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp34.yml b/spec/build/testsuites/sptests/sp34.yml
new file mode 100644
index 0000000000..cac2dfec41
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp34.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp34/changepri.c
+stlib: []
+target: testsuites/sptests/sp34.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp35.yml b/spec/build/testsuites/sptests/sp35.yml
new file mode 100644
index 0000000000..2902856b90
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp35.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp35/priinv.c
+stlib: []
+target: testsuites/sptests/sp35.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp36.yml b/spec/build/testsuites/sptests/sp36.yml
new file mode 100644
index 0000000000..cc16a01401
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp36.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/sptests/sp36.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp37.yml b/spec/build/testsuites/sptests/sp37.yml
new file mode 100644
index 0000000000..92c8e37348
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp37.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp37/init.c
+stlib: []
+target: testsuites/sptests/sp37.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp38.yml b/spec/build/testsuites/sptests/sp38.yml
new file mode 100644
index 0000000000..f1c18db518
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp38.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp38/init.c
+stlib: []
+target: testsuites/sptests/sp38.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp40.yml b/spec/build/testsuites/sptests/sp40.yml
new file mode 100644
index 0000000000..19e0a05e80
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp40.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp40/init.c
+stlib: []
+target: testsuites/sptests/sp40.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp41.yml b/spec/build/testsuites/sptests/sp41.yml
new file mode 100644
index 0000000000..10f0ce88f5
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp41.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp41/init.c
+stlib: []
+target: testsuites/sptests/sp41.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp42.yml b/spec/build/testsuites/sptests/sp42.yml
new file mode 100644
index 0000000000..a7a28bcd4e
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp42.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp42/init.c
+stlib: []
+target: testsuites/sptests/sp42.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp43.yml b/spec/build/testsuites/sptests/sp43.yml
new file mode 100644
index 0000000000..f11b4349a3
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp43.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp43/init.c
+stlib: []
+target: testsuites/sptests/sp43.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp44.yml b/spec/build/testsuites/sptests/sp44.yml
new file mode 100644
index 0000000000..8acf743215
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp44.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp44/init.c
+stlib: []
+target: testsuites/sptests/sp44.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp45.yml b/spec/build/testsuites/sptests/sp45.yml
new file mode 100644
index 0000000000..a94487cf13
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp45.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp45/init.c
+stlib: []
+target: testsuites/sptests/sp45.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp46.yml b/spec/build/testsuites/sptests/sp46.yml
new file mode 100644
index 0000000000..80a4ea4495
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp46.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp46/init.c
+stlib: []
+target: testsuites/sptests/sp46.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp47.yml b/spec/build/testsuites/sptests/sp47.yml
new file mode 100644
index 0000000000..1555d1b198
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp47.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp47/init.c
+stlib: []
+target: testsuites/sptests/sp47.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp48.yml b/spec/build/testsuites/sptests/sp48.yml
new file mode 100644
index 0000000000..ad7b94d1ef
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp48.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp48/init.c
+stlib: []
+target: testsuites/sptests/sp48.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp49.yml b/spec/build/testsuites/sptests/sp49.yml
new file mode 100644
index 0000000000..a2a4d11b13
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp49.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp49/init.c
+stlib: []
+target: testsuites/sptests/sp49.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp50.yml b/spec/build/testsuites/sptests/sp50.yml
new file mode 100644
index 0000000000..acccb3cc27
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp50.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp50/init.c
+stlib: []
+target: testsuites/sptests/sp50.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp51.yml b/spec/build/testsuites/sptests/sp51.yml
new file mode 100644
index 0000000000..fcf4ae3169
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp51.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp51/init.c
+stlib: []
+target: testsuites/sptests/sp51.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp52.yml b/spec/build/testsuites/sptests/sp52.yml
new file mode 100644
index 0000000000..4d71297818
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp52.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp52/init.c
+stlib: []
+target: testsuites/sptests/sp52.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp53.yml b/spec/build/testsuites/sptests/sp53.yml
new file mode 100644
index 0000000000..7e347b587a
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp53.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp53/init.c
+stlib: []
+target: testsuites/sptests/sp53.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp54.yml b/spec/build/testsuites/sptests/sp54.yml
new file mode 100644
index 0000000000..3f0b557a7a
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp54.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp54/init.c
+stlib: []
+target: testsuites/sptests/sp54.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp55.yml b/spec/build/testsuites/sptests/sp55.yml
new file mode 100644
index 0000000000..ebcbadfb92
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp55.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp55/init.c
+stlib: []
+target: testsuites/sptests/sp55.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp56.yml b/spec/build/testsuites/sptests/sp56.yml
new file mode 100644
index 0000000000..4356acefa2
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp56.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp56/init.c
+stlib: []
+target: testsuites/sptests/sp56.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp57.yml b/spec/build/testsuites/sptests/sp57.yml
new file mode 100644
index 0000000000..139fb2008a
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp57.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp57/init.c
+stlib: []
+target: testsuites/sptests/sp57.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp58.yml b/spec/build/testsuites/sptests/sp58.yml
new file mode 100644
index 0000000000..f4cea837d3
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp58.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp58/init.c
+stlib: []
+target: testsuites/sptests/sp58.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp59.yml b/spec/build/testsuites/sptests/sp59.yml
new file mode 100644
index 0000000000..0f6bc1d3f2
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp59.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp59/init.c
+stlib: []
+target: testsuites/sptests/sp59.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp60.yml b/spec/build/testsuites/sptests/sp60.yml
new file mode 100644
index 0000000000..bd8ffc32cf
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp60.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp60/init.c
+stlib: []
+target: testsuites/sptests/sp60.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp62.yml b/spec/build/testsuites/sptests/sp62.yml
new file mode 100644
index 0000000000..95208fdabd
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp62.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp62/init.c
+stlib: []
+target: testsuites/sptests/sp62.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp63.yml b/spec/build/testsuites/sptests/sp63.yml
new file mode 100644
index 0000000000..e335b0960f
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp63.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp63/init.c
+stlib: []
+target: testsuites/sptests/sp63.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp64.yml b/spec/build/testsuites/sptests/sp64.yml
new file mode 100644
index 0000000000..950c46c2d0
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp64.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp64/init.c
+stlib: []
+target: testsuites/sptests/sp64.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp65.yml b/spec/build/testsuites/sptests/sp65.yml
new file mode 100644
index 0000000000..af28284949
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp65.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp65/init.c
+stlib: []
+target: testsuites/sptests/sp65.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp66.yml b/spec/build/testsuites/sptests/sp66.yml
new file mode 100644
index 0000000000..e90ff93d34
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp66.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp66/init.c
+stlib: []
+target: testsuites/sptests/sp66.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp67.yml b/spec/build/testsuites/sptests/sp67.yml
new file mode 100644
index 0000000000..923b29262c
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp67.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp67/init.c
+stlib: []
+target: testsuites/sptests/sp67.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp68.yml b/spec/build/testsuites/sptests/sp68.yml
new file mode 100644
index 0000000000..e07f98ebe9
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp68.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp68/init.c
+stlib: []
+target: testsuites/sptests/sp68.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp69.yml b/spec/build/testsuites/sptests/sp69.yml
new file mode 100644
index 0000000000..a72ca09a46
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp69.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp69/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/sptests/sp69.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp70.yml b/spec/build/testsuites/sptests/sp70.yml
new file mode 100644
index 0000000000..8e6305df42
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp70.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp70/init.c
+stlib: []
+target: testsuites/sptests/sp70.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp71.yml b/spec/build/testsuites/sptests/sp71.yml
new file mode 100644
index 0000000000..46f088e84c
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp71.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp71/init.c
+stlib: []
+target: testsuites/sptests/sp71.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp72.yml b/spec/build/testsuites/sptests/sp72.yml
new file mode 100644
index 0000000000..1b61e1fe09
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp72.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp72/init.c
+stlib: []
+target: testsuites/sptests/sp72.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp73.yml b/spec/build/testsuites/sptests/sp73.yml
new file mode 100644
index 0000000000..16ee8f43e9
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp73.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp73/init.c
+stlib: []
+target: testsuites/sptests/sp73.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp74.yml b/spec/build/testsuites/sptests/sp74.yml
new file mode 100644
index 0000000000..f0daa24dc9
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp74.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp74/init.c
+stlib: []
+target: testsuites/sptests/sp74.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp75.yml b/spec/build/testsuites/sptests/sp75.yml
new file mode 100644
index 0000000000..0e91d062d4
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp75.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp75/init.c
+stlib: []
+target: testsuites/sptests/sp75.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp76.yml b/spec/build/testsuites/sptests/sp76.yml
new file mode 100644
index 0000000000..4313db1d47
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp76.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp76/init.c
+stlib: []
+target: testsuites/sptests/sp76.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sp77.yml b/spec/build/testsuites/sptests/sp77.yml
new file mode 100644
index 0000000000..87aa34bedd
--- /dev/null
+++ b/spec/build/testsuites/sptests/sp77.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sp77/init.c
+stlib: []
+target: testsuites/sptests/sp77.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spassoc01.yml b/spec/build/testsuites/sptests/spassoc01.yml
new file mode 100644
index 0000000000..817115cf9e
--- /dev/null
+++ b/spec/build/testsuites/sptests/spassoc01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spassoc01/init.c
+stlib: []
+target: testsuites/sptests/spassoc01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spatomic01.yml b/spec/build/testsuites/sptests/spatomic01.yml
new file mode 100644
index 0000000000..7cef621604
--- /dev/null
+++ b/spec/build/testsuites/sptests/spatomic01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spatomic01/init.c
+stlib: []
+target: testsuites/sptests/spatomic01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcache01.yml b/spec/build/testsuites/sptests/spcache01.yml
new file mode 100644
index 0000000000..12be856569
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcache01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcache01/init.c
+stlib: []
+target: testsuites/sptests/spcache01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcbssched01.yml b/spec/build/testsuites/sptests/spcbssched01.yml
new file mode 100644
index 0000000000..5063c5f761
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcbssched01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcbssched01/init.c
+- testsuites/sptests/spcbssched01/task1.c
+stlib: []
+target: testsuites/sptests/spcbssched01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcbssched02.yml b/spec/build/testsuites/sptests/spcbssched02.yml
new file mode 100644
index 0000000000..e280e7c624
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcbssched02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcbssched02/init.c
+- testsuites/sptests/spcbssched02/task_periodic.c
+stlib: []
+target: testsuites/sptests/spcbssched02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcbssched03.yml b/spec/build/testsuites/sptests/spcbssched03.yml
new file mode 100644
index 0000000000..0cfc61235e
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcbssched03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcbssched03/init.c
+- testsuites/sptests/spcbssched03/tasks_periodic.c
+- testsuites/sptests/spcbssched03/tasks_aperiodic.c
+stlib: []
+target: testsuites/sptests/spcbssched03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spchain.yml b/spec/build/testsuites/sptests/spchain.yml
new file mode 100644
index 0000000000..28df95136b
--- /dev/null
+++ b/spec/build/testsuites/sptests/spchain.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spchain/init.c
+stlib: []
+target: testsuites/sptests/spchain.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spclockerr01.yml b/spec/build/testsuites/sptests/spclockerr01.yml
new file mode 100644
index 0000000000..cf7cd2ffdc
--- /dev/null
+++ b/spec/build/testsuites/sptests/spclockerr01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spclock_err01/init.c
+- testsuites/sptests/spclock_err01/delay.c
+stlib: []
+target: testsuites/sptests/spclock_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spclockerr02.yml b/spec/build/testsuites/sptests/spclockerr02.yml
new file mode 100644
index 0000000000..a730c0777b
--- /dev/null
+++ b/spec/build/testsuites/sptests/spclockerr02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spclock_err02/init.c
+stlib: []
+target: testsuites/sptests/spclock_err02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spclocktodhook01.yml b/spec/build/testsuites/sptests/spclocktodhook01.yml
new file mode 100644
index 0000000000..1b09b23fed
--- /dev/null
+++ b/spec/build/testsuites/sptests/spclocktodhook01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spclock_todhook01/init.c
+stlib: []
+target: testsuites/sptests/spclock_todhook01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spconfig01.yml b/spec/build/testsuites/sptests/spconfig01.yml
new file mode 100644
index 0000000000..903ce9091f
--- /dev/null
+++ b/spec/build/testsuites/sptests/spconfig01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spconfig01/init.c
+stlib: []
+target: testsuites/sptests/spconfig01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spconfig02.yml b/spec/build/testsuites/sptests/spconfig02.yml
new file mode 100644
index 0000000000..852820f846
--- /dev/null
+++ b/spec/build/testsuites/sptests/spconfig02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spconfig02/init.c
+stlib: []
+target: testsuites/sptests/spconfig02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spconsole01.yml b/spec/build/testsuites/sptests/spconsole01.yml
new file mode 100644
index 0000000000..f53588d212
--- /dev/null
+++ b/spec/build/testsuites/sptests/spconsole01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spconsole01/init.c
+stlib:
+- m
+target: testsuites/sptests/spconsole01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcontext01.yml b/spec/build/testsuites/sptests/spcontext01.yml
new file mode 100644
index 0000000000..100933e6f8
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcontext01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcontext01/init.c
+stlib: []
+target: testsuites/sptests/spcontext01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcoverage.yml b/spec/build/testsuites/sptests/spcoverage.yml
new file mode 100644
index 0000000000..74705a976e
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcoverage.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcoverage/init.c
+stlib: []
+target: testsuites/sptests/spcoverage.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcpucounter01.yml b/spec/build/testsuites/sptests/spcpucounter01.yml
new file mode 100644
index 0000000000..ea9a9874a0
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcpucounter01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcpucounter01/init.c
+stlib: []
+target: testsuites/sptests/spcpucounter01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcpuset01.yml b/spec/build/testsuites/sptests/spcpuset01.yml
new file mode 100644
index 0000000000..c12c51c9e6
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcpuset01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcpuset01/test.c
+- testsuites/sptests/spcpuset01/init.c
+stlib: []
+target: testsuites/sptests/spcpuset01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spcxx01.yml b/spec/build/testsuites/sptests/spcxx01.yml
new file mode 100644
index 0000000000..5babb62be0
--- /dev/null
+++ b/spec/build/testsuites/sptests/spcxx01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags:
+- -std=gnu++17
+enabled-by: true
+features: cxx cxxprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spcxx01/init.cc
+stlib: []
+target: testsuites/sptests/spcxx01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spedfsched01.yml b/spec/build/testsuites/sptests/spedfsched01.yml
new file mode 100644
index 0000000000..2f683e61d1
--- /dev/null
+++ b/spec/build/testsuites/sptests/spedfsched01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spedfsched01/init.c
+- testsuites/sptests/spedfsched01/task1.c
+stlib: []
+target: testsuites/sptests/spedfsched01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spedfsched02.yml b/spec/build/testsuites/sptests/spedfsched02.yml
new file mode 100644
index 0000000000..ba6561f7a7
--- /dev/null
+++ b/spec/build/testsuites/sptests/spedfsched02.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spedfsched02/init.c
+- testsuites/sptests/spedfsched02/getall.c
+- testsuites/sptests/spedfsched02/task1.c
+stlib: []
+target: testsuites/sptests/spedfsched02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spedfsched03.yml b/spec/build/testsuites/sptests/spedfsched03.yml
new file mode 100644
index 0000000000..61ba624f59
--- /dev/null
+++ b/spec/build/testsuites/sptests/spedfsched03.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spedfsched03/init.c
+- testsuites/sptests/spedfsched03/tasks_periodic.c
+- testsuites/sptests/spedfsched03/tasks_aperiodic.c
+stlib: []
+target: testsuites/sptests/spedfsched03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spedfsched04.yml b/spec/build/testsuites/sptests/spedfsched04.yml
new file mode 100644
index 0000000000..99f682dd59
--- /dev/null
+++ b/spec/build/testsuites/sptests/spedfsched04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spedfsched04/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/sptests/spedfsched04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sperror01.yml b/spec/build/testsuites/sptests/sperror01.yml
new file mode 100644
index 0000000000..0be98f4483
--- /dev/null
+++ b/spec/build/testsuites/sptests/sperror01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sperror01/init.c
+stlib: []
+target: testsuites/sptests/sperror01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sperror02.yml b/spec/build/testsuites/sptests/sperror02.yml
new file mode 100644
index 0000000000..b23103f039
--- /dev/null
+++ b/spec/build/testsuites/sptests/sperror02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sperror02/init.c
+stlib: []
+target: testsuites/sptests/sperror02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sperror03.yml b/spec/build/testsuites/sptests/sperror03.yml
new file mode 100644
index 0000000000..51b61b7fab
--- /dev/null
+++ b/spec/build/testsuites/sptests/sperror03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sperror03/init.c
+stlib: []
+target: testsuites/sptests/sperror03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/speventerr03.yml b/spec/build/testsuites/sptests/speventerr03.yml
new file mode 100644
index 0000000000..541d533e33
--- /dev/null
+++ b/spec/build/testsuites/sptests/speventerr03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spevent_err03/init.c
+stlib: []
+target: testsuites/sptests/spevent_err03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/speventsystem01.yml b/spec/build/testsuites/sptests/speventsystem01.yml
new file mode 100644
index 0000000000..37b708d495
--- /dev/null
+++ b/spec/build/testsuites/sptests/speventsystem01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/speventsystem01/init.c
+stlib: []
+target: testsuites/sptests/speventsystem01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/speventtransient01.yml b/spec/build/testsuites/sptests/speventtransient01.yml
new file mode 100644
index 0000000000..0ac9deb430
--- /dev/null
+++ b/spec/build/testsuites/sptests/speventtransient01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/speventtransient01/init.c
+stlib: []
+target: testsuites/sptests/speventtransient01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spextensions01.yml b/spec/build/testsuites/sptests/spextensions01.yml
new file mode 100644
index 0000000000..e09b18862c
--- /dev/null
+++ b/spec/build/testsuites/sptests/spextensions01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spextensions01/init.c
+stlib: []
+target: testsuites/sptests/spextensions01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal01.yml b/spec/build/testsuites/sptests/spfatal01.yml
new file mode 100644
index 0000000000..ef048099e6
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal01/init.c
+stlib: []
+target: testsuites/sptests/spfatal01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal02.yml b/spec/build/testsuites/sptests/spfatal02.yml
new file mode 100644
index 0000000000..19e329a027
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal02/init.c
+stlib: []
+target: testsuites/sptests/spfatal02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal03.yml b/spec/build/testsuites/sptests/spfatal03.yml
new file mode 100644
index 0000000000..ec4737dbcd
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal03/init.c
+stlib: []
+target: testsuites/sptests/spfatal03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal04.yml b/spec/build/testsuites/sptests/spfatal04.yml
new file mode 100644
index 0000000000..e58d661f5e
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal04.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal04/init.c
+stlib: []
+target: testsuites/sptests/spfatal04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal05.yml b/spec/build/testsuites/sptests/spfatal05.yml
new file mode 100644
index 0000000000..48f14a4364
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal05.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal05/init.c
+stlib: []
+target: testsuites/sptests/spfatal05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal06.yml b/spec/build/testsuites/sptests/spfatal06.yml
new file mode 100644
index 0000000000..6e4be90a2a
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal06.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal06/init.c
+stlib: []
+target: testsuites/sptests/spfatal06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal07.yml b/spec/build/testsuites/sptests/spfatal07.yml
new file mode 100644
index 0000000000..2716728597
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal07.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/sptests/spfatal07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal09.yml b/spec/build/testsuites/sptests/spfatal09.yml
new file mode 100644
index 0000000000..19996fd81f
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal09.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal09/init.c
+stlib: []
+target: testsuites/sptests/spfatal09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal10.yml b/spec/build/testsuites/sptests/spfatal10.yml
new file mode 100644
index 0000000000..57d441cd92
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal10.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal10/init.c
+stlib: []
+target: testsuites/sptests/spfatal10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal11.yml b/spec/build/testsuites/sptests/spfatal11.yml
new file mode 100644
index 0000000000..fdb04edd0a
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal11.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal11/init.c
+stlib: []
+target: testsuites/sptests/spfatal11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal12.yml b/spec/build/testsuites/sptests/spfatal12.yml
new file mode 100644
index 0000000000..8e074e6636
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal12.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal12/init.c
+stlib: []
+target: testsuites/sptests/spfatal12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal13.yml b/spec/build/testsuites/sptests/spfatal13.yml
new file mode 100644
index 0000000000..ac21b858b5
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal13.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/sptests/spfatal13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal14.yml b/spec/build/testsuites/sptests/spfatal14.yml
new file mode 100644
index 0000000000..af4e68f451
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal14.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal14/init.c
+stlib: []
+target: testsuites/sptests/spfatal14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal15.yml b/spec/build/testsuites/sptests/spfatal15.yml
new file mode 100644
index 0000000000..9dca3df8d7
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal15.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal15/init.c
+stlib: []
+target: testsuites/sptests/spfatal15.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal16.yml b/spec/build/testsuites/sptests/spfatal16.yml
new file mode 100644
index 0000000000..34b4284951
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal16.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/sptests/spfatal16.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal17.yml b/spec/build/testsuites/sptests/spfatal17.yml
new file mode 100644
index 0000000000..3d6e9726d0
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal17.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/sptests/spfatal17.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal18.yml b/spec/build/testsuites/sptests/spfatal18.yml
new file mode 100644
index 0000000000..9ba97542e8
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal18.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/sptests/spfatal18.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal19.yml b/spec/build/testsuites/sptests/spfatal19.yml
new file mode 100644
index 0000000000..1fc2e8dc1c
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal19.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/sptests/spfatal19.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal20.yml b/spec/build/testsuites/sptests/spfatal20.yml
new file mode 100644
index 0000000000..83260f27cd
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal20.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source: []
+stlib: []
+target: testsuites/sptests/spfatal20.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal24.yml b/spec/build/testsuites/sptests/spfatal24.yml
new file mode 100644
index 0000000000..22eefa9de5
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal24.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal24/init.c
+stlib: []
+target: testsuites/sptests/spfatal24.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal25.yml b/spec/build/testsuites/sptests/spfatal25.yml
new file mode 100644
index 0000000000..f80f26abfa
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal25.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal25/init.c
+stlib: []
+target: testsuites/sptests/spfatal25.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal26.yml b/spec/build/testsuites/sptests/spfatal26.yml
new file mode 100644
index 0000000000..78a73d9e8b
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal26.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal26/init.c
+stlib: []
+target: testsuites/sptests/spfatal26.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal28.yml b/spec/build/testsuites/sptests/spfatal28.yml
new file mode 100644
index 0000000000..ca548a2dca
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal28.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal28/init.c
+stlib: []
+target: testsuites/sptests/spfatal28.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal29.yml b/spec/build/testsuites/sptests/spfatal29.yml
new file mode 100644
index 0000000000..a097f5c348
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal29.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal29/init.c
+stlib: []
+target: testsuites/sptests/spfatal29.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal30.yml b/spec/build/testsuites/sptests/spfatal30.yml
new file mode 100644
index 0000000000..0caaa83a77
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal30.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal30/init.c
+stlib: []
+target: testsuites/sptests/spfatal30.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal31.yml b/spec/build/testsuites/sptests/spfatal31.yml
new file mode 100644
index 0000000000..9c0d207352
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal31.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal31/init.c
+stlib: []
+target: testsuites/sptests/spfatal31.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatal32.yml b/spec/build/testsuites/sptests/spfatal32.yml
new file mode 100644
index 0000000000..0caf149adc
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatal32.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal32/init.c
+stlib: []
+target: testsuites/sptests/spfatal32.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfatalsupport.yml b/spec/build/testsuites/sptests/spfatalsupport.yml
new file mode 100644
index 0000000000..89a3de3d26
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfatalsupport.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfatal_support/init.c
+stlib: []
+target: testsuites/sptests/spfatal_support.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfifo01.yml b/spec/build/testsuites/sptests/spfifo01.yml
new file mode 100644
index 0000000000..e6723f9416
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfifo01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfifo01/init.c
+stlib: []
+target: testsuites/sptests/spfifo01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfifo02.yml b/spec/build/testsuites/sptests/spfifo02.yml
new file mode 100644
index 0000000000..2d7491879d
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfifo02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfifo02/init.c
+stlib: []
+target: testsuites/sptests/spfifo02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfifo03.yml b/spec/build/testsuites/sptests/spfifo03.yml
new file mode 100644
index 0000000000..ad52d2a927
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfifo03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfifo03/init.c
+stlib: []
+target: testsuites/sptests/spfifo03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfifo04.yml b/spec/build/testsuites/sptests/spfifo04.yml
new file mode 100644
index 0000000000..e1036b879f
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfifo04.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfifo04/init.c
+stlib: []
+target: testsuites/sptests/spfifo04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfifo05.yml b/spec/build/testsuites/sptests/spfifo05.yml
new file mode 100644
index 0000000000..49fd0e801b
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfifo05.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfifo05/init.c
+stlib: []
+target: testsuites/sptests/spfifo05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spfreechain01.yml b/spec/build/testsuites/sptests/spfreechain01.yml
new file mode 100644
index 0000000000..0d8ec0c7d2
--- /dev/null
+++ b/spec/build/testsuites/sptests/spfreechain01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spfreechain01/init.c
+stlib: []
+target: testsuites/sptests/spfreechain01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spglobalcon01.yml b/spec/build/testsuites/sptests/spglobalcon01.yml
new file mode 100644
index 0000000000..bf8aa0bdcb
--- /dev/null
+++ b/spec/build/testsuites/sptests/spglobalcon01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: cxx cxxprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spglobalcon01/init.cc
+stlib: []
+target: testsuites/sptests/spglobalcon01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spglobalcon02.yml b/spec/build/testsuites/sptests/spglobalcon02.yml
new file mode 100644
index 0000000000..2c45e790ec
--- /dev/null
+++ b/spec/build/testsuites/sptests/spglobalcon02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spglobalcon02/init.c
+stlib: []
+target: testsuites/sptests/spglobalcon02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spheapprot.yml b/spec/build/testsuites/sptests/spheapprot.yml
new file mode 100644
index 0000000000..de7629d5a6
--- /dev/null
+++ b/spec/build/testsuites/sptests/spheapprot.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spheapprot/init.c
+stlib: []
+target: testsuites/sptests/spheapprot.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spinternalerror01.yml b/spec/build/testsuites/sptests/spinternalerror01.yml
new file mode 100644
index 0000000000..490a9d863b
--- /dev/null
+++ b/spec/build/testsuites/sptests/spinternalerror01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spinternalerror01/init.c
+stlib: []
+target: testsuites/sptests/spinternalerror01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spinternalerror02.yml b/spec/build/testsuites/sptests/spinternalerror02.yml
new file mode 100644
index 0000000000..6482bc90d1
--- /dev/null
+++ b/spec/build/testsuites/sptests/spinternalerror02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spinternalerror02/init.c
+stlib: []
+target: testsuites/sptests/spinternalerror02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical01.yml b/spec/build/testsuites/sptests/spintrcritical01.yml
new file mode 100644
index 0000000000..27a36b6932
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical01/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical02.yml b/spec/build/testsuites/sptests/spintrcritical02.yml
new file mode 100644
index 0000000000..39c6b6f8a8
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical02/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical03.yml b/spec/build/testsuites/sptests/spintrcritical03.yml
new file mode 100644
index 0000000000..c1fea49a03
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical03/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical04.yml b/spec/build/testsuites/sptests/spintrcritical04.yml
new file mode 100644
index 0000000000..115fe4e90c
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical04.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical04/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical05.yml b/spec/build/testsuites/sptests/spintrcritical05.yml
new file mode 100644
index 0000000000..885e551d1c
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical05.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical05/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical08.yml b/spec/build/testsuites/sptests/spintrcritical08.yml
new file mode 100644
index 0000000000..9b06d6c108
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical08.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical08/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical09.yml b/spec/build/testsuites/sptests/spintrcritical09.yml
new file mode 100644
index 0000000000..ec4e770ea1
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical09.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical09/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical10.yml b/spec/build/testsuites/sptests/spintrcritical10.yml
new file mode 100644
index 0000000000..b50c69e230
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical10.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical10/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical11.yml b/spec/build/testsuites/sptests/spintrcritical11.yml
new file mode 100644
index 0000000000..2b62d755a7
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical11.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical11/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical12.yml b/spec/build/testsuites/sptests/spintrcritical12.yml
new file mode 100644
index 0000000000..f84ba4d6ef
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical12.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical12/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical13.yml b/spec/build/testsuites/sptests/spintrcritical13.yml
new file mode 100644
index 0000000000..abef29b6b6
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical13.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical13/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical14.yml b/spec/build/testsuites/sptests/spintrcritical14.yml
new file mode 100644
index 0000000000..bf5c73bcf9
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical14.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical14/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical15.yml b/spec/build/testsuites/sptests/spintrcritical15.yml
new file mode 100644
index 0000000000..e99589a2e1
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical15.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical15/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical15.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical16.yml b/spec/build/testsuites/sptests/spintrcritical16.yml
new file mode 100644
index 0000000000..999ce1aee9
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical16.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical16/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical16.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical18.yml b/spec/build/testsuites/sptests/spintrcritical18.yml
new file mode 100644
index 0000000000..f535db2f5f
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical18.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical18/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical18.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical20.yml b/spec/build/testsuites/sptests/spintrcritical20.yml
new file mode 100644
index 0000000000..e4a9a4979b
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical20.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical20/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical20.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical21.yml b/spec/build/testsuites/sptests/spintrcritical21.yml
new file mode 100644
index 0000000000..4d4f9a14ff
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical21.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical21/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical21.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical22.yml b/spec/build/testsuites/sptests/spintrcritical22.yml
new file mode 100644
index 0000000000..cb4fac9e99
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical22.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical22/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical22.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical23.yml b/spec/build/testsuites/sptests/spintrcritical23.yml
new file mode 100644
index 0000000000..ab9f9962f8
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical23.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical23/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical23.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrcritical24.yml b/spec/build/testsuites/sptests/spintrcritical24.yml
new file mode 100644
index 0000000000..b81a7a1a84
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrcritical24.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintrcritical24/init.c
+stlib: []
+target: testsuites/sptests/spintrcritical24.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spintrerr01.yml b/spec/build/testsuites/sptests/spintrerr01.yml
new file mode 100644
index 0000000000..1b26e2dce7
--- /dev/null
+++ b/spec/build/testsuites/sptests/spintrerr01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spintr_err01/init.c
+- testsuites/sptests/spintr_err01/isr.c
+stlib: []
+target: testsuites/sptests/spintr_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/splinkersets01.yml b/spec/build/testsuites/sptests/splinkersets01.yml
new file mode 100644
index 0000000000..a51b80cd75
--- /dev/null
+++ b/spec/build/testsuites/sptests/splinkersets01.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/splinkersets01/init.c
+- testsuites/sptests/splinkersets01/sets.c
+- testsuites/sptests/splinkersets01/items.c
+stlib: []
+target: testsuites/sptests/splinkersets01.exe
+type: build
+use-after:
+- splinkersets01
+use-before: []
diff --git a/spec/build/testsuites/sptests/spmisc01.yml b/spec/build/testsuites/sptests/spmisc01.yml
new file mode 100644
index 0000000000..793023e277
--- /dev/null
+++ b/spec/build/testsuites/sptests/spmisc01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spmisc01/init.c
+- testsuites/sptests/spmisc01/strong.c
+stlib: []
+target: testsuites/sptests/spmisc01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spmkdir.yml b/spec/build/testsuites/sptests/spmkdir.yml
new file mode 100644
index 0000000000..4919826f0d
--- /dev/null
+++ b/spec/build/testsuites/sptests/spmkdir.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spmkdir/init.c
+stlib: []
+target: testsuites/sptests/spmkdir.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spmountmgr01.yml b/spec/build/testsuites/sptests/spmountmgr01.yml
new file mode 100644
index 0000000000..794542dc26
--- /dev/null
+++ b/spec/build/testsuites/sptests/spmountmgr01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spmountmgr01/init.c
+stlib: []
+target: testsuites/sptests/spmountmgr01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spmrsp01.yml b/spec/build/testsuites/sptests/spmrsp01.yml
new file mode 100644
index 0000000000..5d9a736f80
--- /dev/null
+++ b/spec/build/testsuites/sptests/spmrsp01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spmrsp01/init.c
+stlib: []
+target: testsuites/sptests/spmrsp01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spmsgqerr01.yml b/spec/build/testsuites/sptests/spmsgqerr01.yml
new file mode 100644
index 0000000000..335940207b
--- /dev/null
+++ b/spec/build/testsuites/sptests/spmsgqerr01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spmsgq_err01/init.c
+stlib: []
+target: testsuites/sptests/spmsgq_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spmsgqerr02.yml b/spec/build/testsuites/sptests/spmsgqerr02.yml
new file mode 100644
index 0000000000..81f65466df
--- /dev/null
+++ b/spec/build/testsuites/sptests/spmsgqerr02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spmsgq_err02/init.c
+- testsuites/sptests/spmsgq_err02/task3.c
+stlib: []
+target: testsuites/sptests/spmsgq_err02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spmutex01.yml b/spec/build/testsuites/sptests/spmutex01.yml
new file mode 100644
index 0000000000..a695c15a89
--- /dev/null
+++ b/spec/build/testsuites/sptests/spmutex01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spmutex01/init.c
+stlib: []
+target: testsuites/sptests/spmutex01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spnsext01.yml b/spec/build/testsuites/sptests/spnsext01.yml
new file mode 100644
index 0000000000..da6074b484
--- /dev/null
+++ b/spec/build/testsuites/sptests/spnsext01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spnsext01/init.c
+stlib: []
+target: testsuites/sptests/spnsext01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spobjgetnext.yml b/spec/build/testsuites/sptests/spobjgetnext.yml
new file mode 100644
index 0000000000..5bb94374af
--- /dev/null
+++ b/spec/build/testsuites/sptests/spobjgetnext.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spobjgetnext/init.c
+stlib: []
+target: testsuites/sptests/spobjgetnext.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sppagesize.yml b/spec/build/testsuites/sptests/sppagesize.yml
new file mode 100644
index 0000000000..198822f33c
--- /dev/null
+++ b/spec/build/testsuites/sptests/sppagesize.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sppagesize/init.c
+stlib: []
+target: testsuites/sptests/sppagesize.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sppartitionerr01.yml b/spec/build/testsuites/sptests/sppartitionerr01.yml
new file mode 100644
index 0000000000..8e6479ab27
--- /dev/null
+++ b/spec/build/testsuites/sptests/sppartitionerr01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sppartition_err01/init.c
+stlib: []
+target: testsuites/sptests/sppartition_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sppercpudata01.yml b/spec/build/testsuites/sptests/sppercpudata01.yml
new file mode 100644
index 0000000000..f439578c1e
--- /dev/null
+++ b/spec/build/testsuites/sptests/sppercpudata01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sppercpudata01/init.c
+- testsuites/sptests/sppercpudata01/item.c
+stlib: []
+target: testsuites/sptests/sppercpudata01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spporterr01.yml b/spec/build/testsuites/sptests/spporterr01.yml
new file mode 100644
index 0000000000..e111cd6f56
--- /dev/null
+++ b/spec/build/testsuites/sptests/spporterr01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spport_err01/init.c
+stlib: []
+target: testsuites/sptests/spport_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spprintk.yml b/spec/build/testsuites/sptests/spprintk.yml
new file mode 100644
index 0000000000..5dbf7f9856
--- /dev/null
+++ b/spec/build/testsuites/sptests/spprintk.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spprintk/init.c
+stlib: []
+target: testsuites/sptests/spprintk.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spprivenv01.yml b/spec/build/testsuites/sptests/spprivenv01.yml
new file mode 100644
index 0000000000..60ba4e141a
--- /dev/null
+++ b/spec/build/testsuites/sptests/spprivenv01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spprivenv01/init.c
+stlib: []
+target: testsuites/sptests/spprivenv01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spprofiling01.yml b/spec/build/testsuites/sptests/spprofiling01.yml
new file mode 100644
index 0000000000..31d55be249
--- /dev/null
+++ b/spec/build/testsuites/sptests/spprofiling01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spprofiling01/init.c
+stlib: []
+target: testsuites/sptests/spprofiling01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spqreslib.yml b/spec/build/testsuites/sptests/spqreslib.yml
new file mode 100644
index 0000000000..b42da2873a
--- /dev/null
+++ b/spec/build/testsuites/sptests/spqreslib.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spqreslib/init.c
+- testsuites/sptests/spqreslib/task_periodic.c
+stlib: []
+target: testsuites/sptests/spqreslib.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spratemonerr01.yml b/spec/build/testsuites/sptests/spratemonerr01.yml
new file mode 100644
index 0000000000..db46968b63
--- /dev/null
+++ b/spec/build/testsuites/sptests/spratemonerr01.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spratemon_err01/init.c
+- testsuites/sptests/spratemon_err01/screen10.c
+- testsuites/sptests/spratemon_err01/task4.c
+stlib: []
+target: testsuites/sptests/spratemon_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sprbtree01.yml b/spec/build/testsuites/sptests/sprbtree01.yml
new file mode 100644
index 0000000000..544993e4e7
--- /dev/null
+++ b/spec/build/testsuites/sptests/sprbtree01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sprbtree01/init.c
+stlib: []
+target: testsuites/sptests/sprbtree01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spregionerr01.yml b/spec/build/testsuites/sptests/spregionerr01.yml
new file mode 100644
index 0000000000..84859c6385
--- /dev/null
+++ b/spec/build/testsuites/sptests/spregionerr01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spregion_err01/init.c
+stlib: []
+target: testsuites/sptests/spregion_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sprmsched01.yml b/spec/build/testsuites/sptests/sprmsched01.yml
new file mode 100644
index 0000000000..6928ed175a
--- /dev/null
+++ b/spec/build/testsuites/sptests/sprmsched01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sprmsched01/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/sptests/sprmsched01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sprmsched02.yml b/spec/build/testsuites/sptests/sprmsched02.yml
new file mode 100644
index 0000000000..2f0c6d0209
--- /dev/null
+++ b/spec/build/testsuites/sptests/sprmsched02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sprmsched02/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/sptests/sprmsched02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spscheduler01.yml b/spec/build/testsuites/sptests/spscheduler01.yml
new file mode 100644
index 0000000000..f7be84ac1f
--- /dev/null
+++ b/spec/build/testsuites/sptests/spscheduler01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spscheduler01/init.c
+stlib: []
+target: testsuites/sptests/spscheduler01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsem01.yml b/spec/build/testsuites/sptests/spsem01.yml
new file mode 100644
index 0000000000..3735581195
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsem01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsem01/init.c
+stlib: []
+target: testsuites/sptests/spsem01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsem02.yml b/spec/build/testsuites/sptests/spsem02.yml
new file mode 100644
index 0000000000..8358dee492
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsem02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsem02/init.c
+stlib: []
+target: testsuites/sptests/spsem02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsem03.yml b/spec/build/testsuites/sptests/spsem03.yml
new file mode 100644
index 0000000000..62ed9b7fe9
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsem03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsem03/init.c
+stlib: []
+target: testsuites/sptests/spsem03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsemerr01.yml b/spec/build/testsuites/sptests/spsemerr01.yml
new file mode 100644
index 0000000000..cd1f6d96b6
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsemerr01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsem_err01/init.c
+stlib: []
+target: testsuites/sptests/spsem_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsemerr02.yml b/spec/build/testsuites/sptests/spsemerr02.yml
new file mode 100644
index 0000000000..e0c6a94cd9
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsemerr02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsem_err02/init.c
+- testsuites/sptests/spsem_err02/task2.c
+stlib: []
+target: testsuites/sptests/spsem_err02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsignalerr01.yml b/spec/build/testsuites/sptests/spsignalerr01.yml
new file mode 100644
index 0000000000..6d8788de2b
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsignalerr01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsignal_err01/init.c
+- testsuites/sptests/spsignal_err01/isr.c
+stlib: []
+target: testsuites/sptests/spsignal_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsimplesched01.yml b/spec/build/testsuites/sptests/spsimplesched01.yml
new file mode 100644
index 0000000000..f1bf9d6cf3
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsimplesched01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsimplesched01/init.c
+stlib: []
+target: testsuites/sptests/spsimplesched01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsimplesched02.yml b/spec/build/testsuites/sptests/spsimplesched02.yml
new file mode 100644
index 0000000000..4eb96e5355
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsimplesched02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsimplesched02/init.c
+stlib: []
+target: testsuites/sptests/spsimplesched02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsimplesched03.yml b/spec/build/testsuites/sptests/spsimplesched03.yml
new file mode 100644
index 0000000000..b150f7fa9a
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsimplesched03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsimplesched03/init.c
+stlib: []
+target: testsuites/sptests/spsimplesched03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsize.yml b/spec/build/testsuites/sptests/spsize.yml
new file mode 100644
index 0000000000..4bee0a43a8
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsize.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsize/init.c
+- testsuites/sptests/spsize/getint.c
+- testsuites/sptests/spsize/size.c
+stlib: []
+target: testsuites/sptests/spsize.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spstdthreads01.yml b/spec/build/testsuites/sptests/spstdthreads01.yml
new file mode 100644
index 0000000000..a1795a4139
--- /dev/null
+++ b/spec/build/testsuites/sptests/spstdthreads01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spstdthreads01/init.c
+stlib: []
+target: testsuites/sptests/spstdthreads01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spstkalloc.yml b/spec/build/testsuites/sptests/spstkalloc.yml
new file mode 100644
index 0000000000..8e313341e8
--- /dev/null
+++ b/spec/build/testsuites/sptests/spstkalloc.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spstkalloc/init.c
+stlib: []
+target: testsuites/sptests/spstkalloc.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spstkalloc02.yml b/spec/build/testsuites/sptests/spstkalloc02.yml
new file mode 100644
index 0000000000..ae644d0fb0
--- /dev/null
+++ b/spec/build/testsuites/sptests/spstkalloc02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spstkalloc02/init.c
+stlib: []
+target: testsuites/sptests/spstkalloc02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsysinit01.yml b/spec/build/testsuites/sptests/spsysinit01.yml
new file mode 100644
index 0000000000..5640f7ec71
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsysinit01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsysinit01/init.c
+stlib: []
+target: testsuites/sptests/spsysinit01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spsyslock01.yml b/spec/build/testsuites/sptests/spsyslock01.yml
new file mode 100644
index 0000000000..b83c93813a
--- /dev/null
+++ b/spec/build/testsuites/sptests/spsyslock01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spsyslock01/init.c
+stlib: []
+target: testsuites/sptests/spsyslock01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptaskerr01.yml b/spec/build/testsuites/sptests/sptaskerr01.yml
new file mode 100644
index 0000000000..5b0ec722c1
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptaskerr01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptask_err01/init.c
+- testsuites/sptests/sptask_err01/task2.c
+stlib: []
+target: testsuites/sptests/sptask_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptaskerr02.yml b/spec/build/testsuites/sptests/sptaskerr02.yml
new file mode 100644
index 0000000000..dd265b7b75
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptaskerr02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptask_err02/init.c
+stlib: []
+target: testsuites/sptests/sptask_err02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptaskerr03.yml b/spec/build/testsuites/sptests/sptaskerr03.yml
new file mode 100644
index 0000000000..48786b37bf
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptaskerr03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptask_err03/init.c
+stlib: []
+target: testsuites/sptests/sptask_err03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptaskerr04.yml b/spec/build/testsuites/sptests/sptaskerr04.yml
new file mode 100644
index 0000000000..82ff215bb6
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptaskerr04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptask_err04/init.c
+- testsuites/sptests/sptask_err04/task1.c
+stlib: []
+target: testsuites/sptests/sptask_err04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptasknopreempt01.yml b/spec/build/testsuites/sptests/sptasknopreempt01.yml
new file mode 100644
index 0000000000..077e7474bf
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptasknopreempt01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptasknopreempt01/init.c
+stlib: []
+target: testsuites/sptests/sptasknopreempt01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spthread01.yml b/spec/build/testsuites/sptests/spthread01.yml
new file mode 100644
index 0000000000..b911828aaa
--- /dev/null
+++ b/spec/build/testsuites/sptests/spthread01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spthread01/init.c
+stlib: []
+target: testsuites/sptests/spthread01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spthreadlife01.yml b/spec/build/testsuites/sptests/spthreadlife01.yml
new file mode 100644
index 0000000000..544de17845
--- /dev/null
+++ b/spec/build/testsuites/sptests/spthreadlife01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spthreadlife01/init.c
+stlib: []
+target: testsuites/sptests/spthreadlife01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spthreadq01.yml b/spec/build/testsuites/sptests/spthreadq01.yml
new file mode 100644
index 0000000000..e2b8a81047
--- /dev/null
+++ b/spec/build/testsuites/sptests/spthreadq01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spthreadq01/init.c
+stlib: []
+target: testsuites/sptests/spthreadq01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptimecounter01.yml b/spec/build/testsuites/sptests/sptimecounter01.yml
new file mode 100644
index 0000000000..a7192e1262
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptimecounter01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptimecounter01/init.c
+stlib: []
+target: testsuites/sptests/sptimecounter01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptimecounter02.yml b/spec/build/testsuites/sptests/sptimecounter02.yml
new file mode 100644
index 0000000000..142f9bb249
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptimecounter02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptimecounter02/init.c
+- testsuites/support/src/spin.c
+stlib: []
+target: testsuites/sptests/sptimecounter02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptimecounter03.yml b/spec/build/testsuites/sptests/sptimecounter03.yml
new file mode 100644
index 0000000000..c211b7df62
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptimecounter03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptimecounter03/init.c
+stlib: []
+target: testsuites/sptests/sptimecounter03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptimecounter04.yml b/spec/build/testsuites/sptests/sptimecounter04.yml
new file mode 100644
index 0000000000..f767f40022
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptimecounter04.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptimecounter04/init.c
+stlib: []
+target: testsuites/sptests/sptimecounter04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptimererr01.yml b/spec/build/testsuites/sptests/sptimererr01.yml
new file mode 100644
index 0000000000..58e5f0816b
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptimererr01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptimer_err01/init.c
+stlib: []
+target: testsuites/sptests/sptimer_err01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptimererr02.yml b/spec/build/testsuites/sptests/sptimererr02.yml
new file mode 100644
index 0000000000..600c42b6a3
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptimererr02.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptimer_err02/init.c
+stlib: []
+target: testsuites/sptests/sptimer_err02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptimerserver01.yml b/spec/build/testsuites/sptests/sptimerserver01.yml
new file mode 100644
index 0000000000..60131702e2
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptimerserver01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptimerserver01/init.c
+stlib: []
+target: testsuites/sptests/sptimerserver01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptimespec01.yml b/spec/build/testsuites/sptests/sptimespec01.yml
new file mode 100644
index 0000000000..63be684af2
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptimespec01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptimespec01/init.c
+stlib: []
+target: testsuites/sptests/sptimespec01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptls01.yml b/spec/build/testsuites/sptests/sptls01.yml
new file mode 100644
index 0000000000..fc859b39f1
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptls01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptls01/init.c
+stlib: []
+target: testsuites/sptests/sptls01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptls02.yml b/spec/build/testsuites/sptests/sptls02.yml
new file mode 100644
index 0000000000..e77806b22f
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptls02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: cxx cxxprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptls02/init.cc
+- testsuites/sptests/sptls02/var.cc
+stlib: []
+target: testsuites/sptests/sptls02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptls03.yml b/spec/build/testsuites/sptests/sptls03.yml
new file mode 100644
index 0000000000..41e10af474
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptls03.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptls03/init.c
+stlib: []
+target: testsuites/sptests/sptls03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/sptls04.yml b/spec/build/testsuites/sptests/sptls04.yml
new file mode 100644
index 0000000000..8243fb81b9
--- /dev/null
+++ b/spec/build/testsuites/sptests/sptls04.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/sptls04/init.c
+stlib: []
+target: testsuites/sptests/sptls04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spversion01.yml b/spec/build/testsuites/sptests/spversion01.yml
new file mode 100644
index 0000000000..068d98219d
--- /dev/null
+++ b/spec/build/testsuites/sptests/spversion01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spversion01/init.c
+stlib: []
+target: testsuites/sptests/spversion01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spwatchdog.yml b/spec/build/testsuites/sptests/spwatchdog.yml
new file mode 100644
index 0000000000..202ea83e96
--- /dev/null
+++ b/spec/build/testsuites/sptests/spwatchdog.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spwatchdog/init.c
+- testsuites/sptests/spwatchdog/task1.c
+- testsuites/sptests/spwatchdog/prtime.c
+- testsuites/sptests/spwatchdog/delay.c
+stlib: []
+target: testsuites/sptests/spwatchdog.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/sptests/spwkspace.yml b/spec/build/testsuites/sptests/spwkspace.yml
new file mode 100644
index 0000000000..21914e90db
--- /dev/null
+++ b/spec/build/testsuites/sptests/spwkspace.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/sptests/spwkspace/init.c
+stlib: []
+target: testsuites/sptests/spwkspace.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/grp.yml b/spec/build/testsuites/tmtests/grp.yml
new file mode 100644
index 0000000000..dba7115207
--- /dev/null
+++ b/spec/build/testsuites/tmtests/grp.yml
@@ -0,0 +1,101 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by:
+- BUILD_TESTS
+- BUILD_TMTESTS
+includes:
+- testsuites/support/include
+- testsuites/tmtests/include
+install: []
+ldflags:
+- -Wl,--wrap=printf
+- -Wl,--wrap=puts
+links:
+- role: build-dependency
+ uid: tm01
+- role: build-dependency
+ uid: tm02
+- role: build-dependency
+ uid: tm03
+- role: build-dependency
+ uid: tm04
+- role: build-dependency
+ uid: tm05
+- role: build-dependency
+ uid: tm06
+- role: build-dependency
+ uid: tm07
+- role: build-dependency
+ uid: tm08
+- role: build-dependency
+ uid: tm09
+- role: build-dependency
+ uid: tm10
+- role: build-dependency
+ uid: tm11
+- role: build-dependency
+ uid: tm12
+- role: build-dependency
+ uid: tm13
+- role: build-dependency
+ uid: tm14
+- role: build-dependency
+ uid: tm15
+- role: build-dependency
+ uid: tm16
+- role: build-dependency
+ uid: tm17
+- role: build-dependency
+ uid: tm18
+- role: build-dependency
+ uid: tm19
+- role: build-dependency
+ uid: tm20
+- role: build-dependency
+ uid: tm21
+- role: build-dependency
+ uid: tm22
+- role: build-dependency
+ uid: tm23
+- role: build-dependency
+ uid: tm24
+- role: build-dependency
+ uid: tm25
+- role: build-dependency
+ uid: tm26
+- role: build-dependency
+ uid: tm27
+- role: build-dependency
+ uid: tm28
+- role: build-dependency
+ uid: tm29
+- role: build-dependency
+ uid: tm30
+- role: build-dependency
+ uid: tm31
+- role: build-dependency
+ uid: tm32
+- role: build-dependency
+ uid: tm33
+- role: build-dependency
+ uid: tm34
+- role: build-dependency
+ uid: tm35
+- role: build-dependency
+ uid: tm36
+- role: build-dependency
+ uid: tmck
+- role: build-dependency
+ uid: tmcontext01
+- role: build-dependency
+ uid: tmfine01
+- role: build-dependency
+ uid: tmonetoone
+- role: build-dependency
+ uid: tmtimer01
+type: build
+use-after:
+- rtemstest
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm01.yml b/spec/build/testsuites/tmtests/tm01.yml
new file mode 100644
index 0000000000..c8fe0db917
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm01.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm01/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm02.yml b/spec/build/testsuites/tmtests/tm02.yml
new file mode 100644
index 0000000000..9d8353ad0c
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm02.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm02/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm02.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm03.yml b/spec/build/testsuites/tmtests/tm03.yml
new file mode 100644
index 0000000000..39ae86d639
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm03.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm03/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm03.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm04.yml b/spec/build/testsuites/tmtests/tm04.yml
new file mode 100644
index 0000000000..e91976e9f7
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm04.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm04/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm04.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm05.yml b/spec/build/testsuites/tmtests/tm05.yml
new file mode 100644
index 0000000000..65cefa543d
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm05.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm05/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm05.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm06.yml b/spec/build/testsuites/tmtests/tm06.yml
new file mode 100644
index 0000000000..a6151e4d2a
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm06.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm06/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm06.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm07.yml b/spec/build/testsuites/tmtests/tm07.yml
new file mode 100644
index 0000000000..c9941f4990
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm07.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm07/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm07.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm08.yml b/spec/build/testsuites/tmtests/tm08.yml
new file mode 100644
index 0000000000..f10104fc3d
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm08.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm08/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm08.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm09.yml b/spec/build/testsuites/tmtests/tm09.yml
new file mode 100644
index 0000000000..336986bff8
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm09.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm09/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm09.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm10.yml b/spec/build/testsuites/tmtests/tm10.yml
new file mode 100644
index 0000000000..d018491f2c
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm10.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm10/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm10.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm11.yml b/spec/build/testsuites/tmtests/tm11.yml
new file mode 100644
index 0000000000..2da71bbe69
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm11.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm11/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm11.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm12.yml b/spec/build/testsuites/tmtests/tm12.yml
new file mode 100644
index 0000000000..76081f9afa
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm12.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm12/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm12.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm13.yml b/spec/build/testsuites/tmtests/tm13.yml
new file mode 100644
index 0000000000..91869c9020
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm13.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm13/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm13.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm14.yml b/spec/build/testsuites/tmtests/tm14.yml
new file mode 100644
index 0000000000..ed7d31244e
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm14.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm14/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm14.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm15.yml b/spec/build/testsuites/tmtests/tm15.yml
new file mode 100644
index 0000000000..61ed7ab61f
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm15.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm15/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm15.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm16.yml b/spec/build/testsuites/tmtests/tm16.yml
new file mode 100644
index 0000000000..a81c8858ef
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm16.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm16/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm16.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm17.yml b/spec/build/testsuites/tmtests/tm17.yml
new file mode 100644
index 0000000000..a7b89165b6
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm17.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm17/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm17.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm18.yml b/spec/build/testsuites/tmtests/tm18.yml
new file mode 100644
index 0000000000..b554f4f7a1
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm18.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm18/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm18.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm19.yml b/spec/build/testsuites/tmtests/tm19.yml
new file mode 100644
index 0000000000..4ae954b9d4
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm19.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm19/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm19.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm20.yml b/spec/build/testsuites/tmtests/tm20.yml
new file mode 100644
index 0000000000..1947f07d71
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm20.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm20/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm20.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm21.yml b/spec/build/testsuites/tmtests/tm21.yml
new file mode 100644
index 0000000000..6e6658ea3f
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm21.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm21/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm21.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm22.yml b/spec/build/testsuites/tmtests/tm22.yml
new file mode 100644
index 0000000000..e7ffc51058
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm22.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm22/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm22.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm23.yml b/spec/build/testsuites/tmtests/tm23.yml
new file mode 100644
index 0000000000..7d27a2aa20
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm23.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm23/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm23.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm24.yml b/spec/build/testsuites/tmtests/tm24.yml
new file mode 100644
index 0000000000..dba0fc5962
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm24.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm24/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm24.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm25.yml b/spec/build/testsuites/tmtests/tm25.yml
new file mode 100644
index 0000000000..51ce5d4cbc
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm25.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm25/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm25.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm26.yml b/spec/build/testsuites/tmtests/tm26.yml
new file mode 100644
index 0000000000..7fa7e08370
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm26.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm26/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm26.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm27.yml b/spec/build/testsuites/tmtests/tm27.yml
new file mode 100644
index 0000000000..4d08299961
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm27.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm27/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm27.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm28.yml b/spec/build/testsuites/tmtests/tm28.yml
new file mode 100644
index 0000000000..9a8c928adb
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm28.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm28/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm28.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm29.yml b/spec/build/testsuites/tmtests/tm29.yml
new file mode 100644
index 0000000000..7ef8070d74
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm29.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm29/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm29.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm30.yml b/spec/build/testsuites/tmtests/tm30.yml
new file mode 100644
index 0000000000..2f0b627e8e
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm30.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm30/init.c
+- testsuites/support/src/tmtests_empty_function.c
+- testsuites/support/src/tmtests_support.c
+stlib: []
+target: testsuites/tmtests/tm30.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm31.yml b/spec/build/testsuites/tmtests/tm31.yml
new file mode 100644
index 0000000000..4971f3bbf1
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm31.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm31/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm31.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm32.yml b/spec/build/testsuites/tmtests/tm32.yml
new file mode 100644
index 0000000000..1f4f288890
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm32.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm32/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm32.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm33.yml b/spec/build/testsuites/tmtests/tm33.yml
new file mode 100644
index 0000000000..ed202a65e3
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm33.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm33/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm33.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm34.yml b/spec/build/testsuites/tmtests/tm34.yml
new file mode 100644
index 0000000000..2f0b5754df
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm34.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm34/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm34.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm35.yml b/spec/build/testsuites/tmtests/tm35.yml
new file mode 100644
index 0000000000..95c2bd41e6
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm35.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm35/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm35.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tm36.yml b/spec/build/testsuites/tmtests/tm36.yml
new file mode 100644
index 0000000000..5316e80a2a
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tm36.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tm36/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tm36.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tmck.yml b/spec/build/testsuites/tmtests/tmck.yml
new file mode 100644
index 0000000000..f4e7b96919
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tmck.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tmck/task1.c
+- testsuites/support/src/tmtests_empty_function.c
+stlib: []
+target: testsuites/tmtests/tmck.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tmcontext01.yml b/spec/build/testsuites/tmtests/tmcontext01.yml
new file mode 100644
index 0000000000..1e53d65d8b
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tmcontext01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tmcontext01/init.c
+stlib: []
+target: testsuites/tmtests/tmcontext01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tmfine01.yml b/spec/build/testsuites/tmtests/tmfine01.yml
new file mode 100644
index 0000000000..9d04bd0024
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tmfine01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tmfine01/init.c
+stlib: []
+target: testsuites/tmtests/tmfine01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tmonetoone.yml b/spec/build/testsuites/tmtests/tmonetoone.yml
new file mode 100644
index 0000000000..7fdc8b86da
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tmonetoone.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tmonetoone/init.c
+stlib: []
+target: testsuites/tmtests/tmonetoone.exe
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/testsuites/tmtests/tmtimer01.yml b/spec/build/testsuites/tmtests/tmtimer01.yml
new file mode 100644
index 0000000000..20e6271ec4
--- /dev/null
+++ b/spec/build/testsuites/tmtests/tmtimer01.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: test-program
+cflags: []
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+cppflags: []
+cxxflags: []
+enabled-by: true
+features: c cprogram
+includes: []
+ldflags: []
+links: []
+source:
+- testsuites/tmtests/tmtimer01/init.c
+stlib: []
+target: testsuites/tmtests/tmtimer01.exe
+type: build
+use-after: []
+use-before: []
diff --git a/testsuites/build/.doorstop.skip b/testsuites/build/.doorstop.skip
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testsuites/build/.doorstop.skip
diff --git a/testsuites/build/bad-integer.ini b/testsuites/build/bad-integer.ini
new file mode 100644
index 0000000000..7bc5b72bc1
--- /dev/null
+++ b/testsuites/build/bad-integer.ini
@@ -0,0 +1,2 @@
+[fake/good]
+INTEGER = bad
diff --git a/testsuites/build/bin/fake-rtems5-ar b/testsuites/build/bin/fake-rtems5-ar
new file mode 100755
index 0000000000..1561e69e27
--- /dev/null
+++ b/testsuites/build/bin/fake-rtems5-ar
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (C) 2019 embedded brains GmbH
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+import sys
+
+print(sys.argv)
+exit(0)
diff --git a/testsuites/build/bin/fake-rtems5-gcc b/testsuites/build/bin/fake-rtems5-gcc
new file mode 100755
index 0000000000..f2ae2d92c5
--- /dev/null
+++ b/testsuites/build/bin/fake-rtems5-gcc
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (C) 2019 embedded brains GmbH
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+import argparse
+import sys
+
+sys.argv = list(filter(lambda a: a != '-', sys.argv))
+
+parser = argparse.ArgumentParser()
+parser.add_argument('-E', action='count')
+parser.add_argument('-dM', action='count')
+args = parser.parse_args()
+
+if args.E > 0:
+ print("#define __GNUC__ 7")
+ print("#define __GNUC_MINOR__ 4")
+ print("#define __GNUC_PATCHLEVEL__ 0")
+
+exit(0)
diff --git a/testsuites/build/bin/fake-rtems5-ld b/testsuites/build/bin/fake-rtems5-ld
new file mode 100755
index 0000000000..1561e69e27
--- /dev/null
+++ b/testsuites/build/bin/fake-rtems5-ld
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (C) 2019 embedded brains GmbH
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+import sys
+
+print(sys.argv)
+exit(0)
diff --git a/testsuites/build/fake-good.ini b/testsuites/build/fake-good.ini
new file mode 100644
index 0000000000..44c5aad131
--- /dev/null
+++ b/testsuites/build/fake-good.ini
@@ -0,0 +1 @@
+[fake/good]
diff --git a/testsuites/build/fake-inherit-good.ini b/testsuites/build/fake-inherit-good.ini
new file mode 100644
index 0000000000..c0e00ccc30
--- /dev/null
+++ b/testsuites/build/fake-inherit-good.ini
@@ -0,0 +1,2 @@
+[fake/very]
+INHERIT = good
diff --git a/testsuites/build/fake-inherit-loop.ini b/testsuites/build/fake-inherit-loop.ini
new file mode 100644
index 0000000000..e995b527d4
--- /dev/null
+++ b/testsuites/build/fake-inherit-loop.ini
@@ -0,0 +1,4 @@
+[fake/one]
+INHERIT = two
+[fake/two]
+INHERIT = one
diff --git a/testsuites/build/fake-inherit-none.ini b/testsuites/build/fake-inherit-none.ini
new file mode 100644
index 0000000000..aa7b0b5f38
--- /dev/null
+++ b/testsuites/build/fake-inherit-none.ini
@@ -0,0 +1,2 @@
+[fake/none]
+INHERIT = none2
diff --git a/testsuites/build/fake-none.ini b/testsuites/build/fake-none.ini
new file mode 100644
index 0000000000..fa9a6d7f5b
--- /dev/null
+++ b/testsuites/build/fake-none.ini
@@ -0,0 +1 @@
+[fake/none]
diff --git a/testsuites/build/good-integer.ini b/testsuites/build/good-integer.ini
new file mode 100644
index 0000000000..470d498a10
--- /dev/null
+++ b/testsuites/build/good-integer.ini
@@ -0,0 +1,2 @@
+[fake/good]
+INTEGER = 0x08
diff --git a/testsuites/build/not-power-of-two.ini b/testsuites/build/not-power-of-two.ini
new file mode 100644
index 0000000000..dad6115be9
--- /dev/null
+++ b/testsuites/build/not-power-of-two.ini
@@ -0,0 +1,2 @@
+[fake/good]
+INTEGER = 3
diff --git a/testsuites/build/spec/bsp.yml b/testsuites/build/spec/bsp.yml
new file mode 100644
index 0000000000..5b37a84dbc
--- /dev/null
+++ b/testsuites/build/spec/bsp.yml
@@ -0,0 +1,16 @@
+active: true
+arch: fake
+bsp: good
+build-type: bsp
+derived: true
+enabled-by: []
+family: good
+header: ''
+level: 1.0
+links: []
+normative: true
+order: 0
+ref: ''
+reviewed: null
+text: ''
+type: build
diff --git a/testsuites/build/spec/config-file.yml b/testsuites/build/spec/config-file.yml
new file mode 100644
index 0000000000..48a5a0bc55
--- /dev/null
+++ b/testsuites/build/spec/config-file.yml
@@ -0,0 +1,19 @@
+active: true
+build-type: config-file
+content: |
+ $$
+ a$$z
+ ${ABC}
+ 0$${NIX}1
+derived: false
+enabled-by: []
+header: ''
+level: 1.0
+links: []
+normative: true
+order: 0
+ref: ''
+reviewed: null
+target: config-file.txt
+text: ''
+type: build
diff --git a/testsuites/build/spec/config-header.yml b/testsuites/build/spec/config-header.yml
new file mode 100644
index 0000000000..22971c127f
--- /dev/null
+++ b/testsuites/build/spec/config-header.yml
@@ -0,0 +1,18 @@
+active: true
+build-type: config-header
+derived: false
+enabled-by: []
+header: ''
+level: 1.0
+links:
+- string-option: null
+- integer-option: null
+normative: true
+order: 0
+ref: ''
+reviewed: null
+target: config-header.h
+guard: CONFIG_HEADER_H
+include-headers: []
+text: ''
+type: build
diff --git a/testsuites/build/spec/gcc.yml b/testsuites/build/spec/gcc.yml
new file mode 100644
index 0000000000..18bf857ee1
--- /dev/null
+++ b/testsuites/build/spec/gcc.yml
@@ -0,0 +1,41 @@
+actions:
+- set-value: ${ARCH}-rtems5-gcc
+- substitute: null
+- find-program: null
+- env-assign: AS
+- env-assign: CC
+- env-assign: LINK_CC
+- set-value: ${ARCH}-rtems5-g++
+- substitute: null
+- find-program: null
+- env-assign: CXX
+- env-assign: LINK_CXX
+- set-value: ${ARCH}-rtems5-ar
+- substitute: null
+- find-program: null
+- env-assign: AR
+- set-value: ${ARCH}-rtems5-ld
+- substitute: null
+- find-program: null
+- env-assign: LD
+- script: |
+ load = "ar g++ gas gcc"
+ if not is_windows_host:
+ load += " gccdeps"
+ conf.load(load)
+active: true
+build-type: option
+default: null
+default-by-variant: []
+derived: false
+enabled-by: []
+header: ''
+level: 1.39
+links: []
+name: GCC
+normative: true
+order: -900
+ref: ''
+reviewed: oRRzhna6a47p0_QjPWqYLful9JgHGbxMqy-q7mSiZiU=
+text: ''
+type: build
diff --git a/testsuites/build/spec/integer-option.yml b/testsuites/build/spec/integer-option.yml
new file mode 100644
index 0000000000..bacdb2a83f
--- /dev/null
+++ b/testsuites/build/spec/integer-option.yml
@@ -0,0 +1,25 @@
+active: true
+build-type: option
+derived: false
+enabled-by: []
+format: '{:#010x}'
+header: ''
+level: 1.0
+links: []
+name: INTEGER
+normative: true
+order: 0
+ref: ''
+reviewed: null
+text: ''
+type: build
+default: 1
+default-by-variant: []
+actions:
+- get-integer: null
+- assert-in-interval:
+ - 1
+ - 16
+- assert-power-of-two: null
+- env-assign: null
+- format-and-define: null
diff --git a/testsuites/build/spec/string-option.yml b/testsuites/build/spec/string-option.yml
new file mode 100644
index 0000000000..c97c078868
--- /dev/null
+++ b/testsuites/build/spec/string-option.yml
@@ -0,0 +1,24 @@
+active: true
+build-type: option
+derived: false
+enabled-by: []
+format: '{}'
+header: ''
+level: 1.0
+links: []
+name: ABC
+normative: true
+order: 0
+ref: ''
+reviewed: null
+text: ''
+type: build
+default: ZYZ
+default-by-variant:
+- value: DEF
+ variants:
+ - .*go.*d
+actions:
+- get-string: null
+- env-assign: null
+- define: null
diff --git a/testsuites/build/spec/top-level-group.yml b/testsuites/build/spec/top-level-group.yml
new file mode 100644
index 0000000000..89b6c457f2
--- /dev/null
+++ b/testsuites/build/spec/top-level-group.yml
@@ -0,0 +1,17 @@
+active: true
+build-type: group
+derived: false
+enabled-by: []
+header: ''
+level: 1.82
+links:
+- config-header: null
+- config-file: null
+- gcc: null
+normative: true
+order: 0
+ref: ''
+reviewed: null
+text: ''
+top-level: true
+type: build
diff --git a/testsuites/build/spec2/config-file.yml b/testsuites/build/spec2/config-file.yml
new file mode 100644
index 0000000000..7aac892f2c
--- /dev/null
+++ b/testsuites/build/spec2/config-file.yml
@@ -0,0 +1,16 @@
+active: true
+build-type: config-file
+content: |
+ ${OPEN
+derived: false
+enabled-by: []
+header: ''
+level: 1.0
+links: []
+normative: true
+order: 0
+ref: ''
+reviewed: null
+target: config-file.txt
+text: ''
+type: build
diff --git a/testsuites/build/spec2/gcc.yml b/testsuites/build/spec2/gcc.yml
new file mode 100644
index 0000000000..18bf857ee1
--- /dev/null
+++ b/testsuites/build/spec2/gcc.yml
@@ -0,0 +1,41 @@
+actions:
+- set-value: ${ARCH}-rtems5-gcc
+- substitute: null
+- find-program: null
+- env-assign: AS
+- env-assign: CC
+- env-assign: LINK_CC
+- set-value: ${ARCH}-rtems5-g++
+- substitute: null
+- find-program: null
+- env-assign: CXX
+- env-assign: LINK_CXX
+- set-value: ${ARCH}-rtems5-ar
+- substitute: null
+- find-program: null
+- env-assign: AR
+- set-value: ${ARCH}-rtems5-ld
+- substitute: null
+- find-program: null
+- env-assign: LD
+- script: |
+ load = "ar g++ gas gcc"
+ if not is_windows_host:
+ load += " gccdeps"
+ conf.load(load)
+active: true
+build-type: option
+default: null
+default-by-variant: []
+derived: false
+enabled-by: []
+header: ''
+level: 1.39
+links: []
+name: GCC
+normative: true
+order: -900
+ref: ''
+reviewed: oRRzhna6a47p0_QjPWqYLful9JgHGbxMqy-q7mSiZiU=
+text: ''
+type: build
diff --git a/testsuites/build/spec2/top-level-group.yml b/testsuites/build/spec2/top-level-group.yml
new file mode 100644
index 0000000000..3cefcbdfe9
--- /dev/null
+++ b/testsuites/build/spec2/top-level-group.yml
@@ -0,0 +1,16 @@
+active: true
+build-type: group
+derived: false
+enabled-by: []
+header: ''
+level: 1.82
+links:
+- config-file: null
+- gcc: null
+normative: true
+order: 0
+ref: ''
+reviewed: null
+text: ''
+top-level: true
+type: build
diff --git a/testsuites/build/test.py b/testsuites/build/test.py
new file mode 100755
index 0000000000..e8b50983dd
--- /dev/null
+++ b/testsuites/build/test.py
@@ -0,0 +1,200 @@
+#!/usr/bin/env python
+
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (C) 2019 embedded brains GmbH
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+import os
+import subprocess
+import unittest
+
+try:
+ os.symlink("../../wscript", "wscript")
+except FileExistsError:
+ pass
+try:
+ os.symlink("fake-rtems5-gcc", "bin/fake-rtems5-g++")
+except FileExistsError:
+ pass
+exec(open("../../wscript", "r").read())
+
+
+class TestWscript(unittest.TestCase):
+ def test_is_enabled(self):
+ self.assertTrue(_is_enabled([], None))
+ self.assertTrue(_is_enabled([], []))
+ self.assertFalse(_is_enabled([], ["A"]))
+ self.assertTrue(_is_enabled(["A"], "A"))
+ self.assertFalse(_is_enabled(["B"], "A"))
+ self.assertTrue(_is_enabled(["A"], ["A"]))
+ self.assertFalse(_is_enabled(["B"], ["A"]))
+ self.assertTrue(_is_enabled(["A"], ["A", "B"]))
+ self.assertTrue(_is_enabled(["B"], ["A", "B"]))
+ self.assertFalse(_is_enabled(["C"], ["A", "B"]))
+ self.assertFalse(_is_enabled(["A"], {"not": "A"}))
+ self.assertTrue(_is_enabled(["B"], {"not": "A"}))
+ self.assertFalse(_is_enabled(["A"], {"and": ["A", "B"]}))
+ self.assertTrue(_is_enabled(["A", "B"], {"and": ["A", "B"]}))
+ self.assertTrue(_is_enabled(["A", "B", "C"], {"and": ["A", "B"]}))
+ self.assertTrue(
+ _is_enabled(["A", "B"], {"and": ["A", "B", {"not": "C"}]})
+ )
+ self.assertFalse(
+ _is_enabled(["A", "B", "C"], {"and": ["A", "B", {"not": "C"}]})
+ )
+ self.assertFalse(_is_enabled(["A"], {"and": "A", "x": "y"}))
+ self.assertFalse(_is_enabled(["A"], {"x": "A"}))
+ self.assertTrue(_is_enabled([], {"not": {"and": ["A", {"not": "A"}]}}))
+
+
+class TestWaf(unittest.TestCase):
+ @staticmethod
+ def waf(args, returncode):
+ cmd = f"../../waf {args}"
+ print(cmd)
+ cp = subprocess.run(
+ cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE
+ )
+ if returncode != None and cp.returncode != returncode:
+ raise AssertionError(f"command failed: {cmd}")
+ return cp
+
+ def setUp(self):
+ self.waf("distclean", None)
+ self.tools = f"--rtems-tools={os.getcwd()}"
+ self.specs = "--rtems-specs=spec"
+
+ def test_specs_no_such_directory(self):
+ cp = self.waf("configure --rtems-specs=nix", 1)
+ self.assertIn(b"Cannot list build specification directory:", cp.stderr)
+
+ def test_specs_not_a_directory(self):
+ cp = self.waf("configure --rtems-specs=test.py", 1)
+ self.assertIn(b"Cannot list build specification directory:", cp.stderr)
+
+ def test_configure_no_bsp(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=fake-none.ini",
+ 1,
+ )
+ self.assertIn(b"No such base BSP: 'fake/none'", cp.stderr)
+
+ def test_configure_inherit_loop(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=fake-inherit-loop.ini",
+ 1,
+ )
+ self.assertIn(
+ b"Recursion in BSP options inheritance: fake/one -> fake/two -> fake/one",
+ cp.stderr,
+ )
+
+ def test_configure_inherit_none(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=fake-inherit-none.ini",
+ 1,
+ )
+ self.assertIn(
+ b"BSP variant 'fake/none' cannot inherit options from not existing variant 'fake/none2'",
+ cp.stderr,
+ )
+
+ def test_configure_inherit_good(self):
+ self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=fake-inherit-good.ini",
+ 0,
+ )
+
+ def test_configure_good(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=fake-good.ini",
+ 0,
+ )
+ content = """$
+a$z
+DEF
+0${NIX}1
+"""
+ with open("build/fake/good/config-file.txt", "r") as f:
+ self.assertEqual(content, f.read())
+
+ def test_bad_config_file(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs}2 --rtems-config=fake-good.ini",
+ 1,
+ )
+ self.assertIn(
+ b"""In item 'config-file' substitution in '${OPEN
+' failed: Invalid placeholder in string: line 1, col 1
+""",
+ cp.stderr,
+ )
+
+ def test_ini_bad_integer(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=bad-integer.ini",
+ 1,
+ )
+ self.assertIn(
+ b"Value 'bad' for option 'INTEGER' is an invalid integer", cp.stderr
+ )
+
+ def test_ini_too_small(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=too-small.ini",
+ 1,
+ )
+ self.assertIn(
+ b"Value '-1' for option 'INTEGER' is not in closed interval [1, 16]",
+ cp.stderr,
+ )
+
+ def test_ini_too_big(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=too-big.ini",
+ 1,
+ )
+ self.assertIn(
+ b"Value '100' for option 'INTEGER' is not in closed interval [1, 16]",
+ cp.stderr,
+ )
+
+ def test_ini_not_power_of_two(self):
+ cp = self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=not-power-of-two.ini",
+ 1,
+ )
+ self.assertIn(
+ b"Value '3' for option 'INTEGER' is not a power of two", cp.stderr
+ )
+
+ def test_good_integer(self):
+ self.waf(
+ f"configure {self.tools} {self.specs} --rtems-config=good-integer.ini",
+ 0,
+ )
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testsuites/build/too-big.ini b/testsuites/build/too-big.ini
new file mode 100644
index 0000000000..3d0fba4671
--- /dev/null
+++ b/testsuites/build/too-big.ini
@@ -0,0 +1,2 @@
+[fake/good]
+INTEGER = 100
diff --git a/testsuites/build/too-small.ini b/testsuites/build/too-small.ini
new file mode 100644
index 0000000000..55464db1cf
--- /dev/null
+++ b/testsuites/build/too-small.ini
@@ -0,0 +1,2 @@
+[fake/good]
+INTEGER = -1
diff --git a/waf b/waf
new file mode 100755
index 0000000000..ba9ee0bf62
--- /dev/null
+++ b/waf
@@ -0,0 +1,173 @@
+#!/usr/bin/env python
+# encoding: latin-1
+# Thomas Nagy, 2005-2018
+#
+"""
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+"""
+
+import os, sys, inspect
+
+VERSION="2.0.20"
+REVISION="36f5354d605298f6a89c09e0c7ef6c1d"
+GIT="f1d78d12462b1fddda21584dedc83a1d269f0970"
+INSTALL=''
+C1='#2'
+C2='#,'
+C3='#%'
+cwd = os.getcwd()
+join = os.path.join
+
+
+WAF='waf'
+def b(x):
+ return x
+if sys.hexversion>0x300000f:
+ WAF='waf3'
+ def b(x):
+ return x.encode()
+
+def err(m):
+ print(('\033[91mError: %s\033[0m' % m))
+ sys.exit(1)
+
+def unpack_wafdir(dir, src):
+ f = open(src,'rb')
+ c = 'corrupt archive (%d)'
+ while 1:
+ line = f.readline()
+ if not line: err('run waf-light from a folder containing waflib')
+ if line == b('#==>\n'):
+ txt = f.readline()
+ if not txt: err(c % 1)
+ if f.readline() != b('#<==\n'): err(c % 2)
+ break
+ if not txt: err(c % 3)
+ txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r')).replace(b(C3), b('\x00'))
+
+ import shutil, tarfile
+ try: shutil.rmtree(dir)
+ except OSError: pass
+ try:
+ for x in ('Tools', 'extras'):
+ os.makedirs(join(dir, 'waflib', x))
+ except OSError:
+ err("Cannot unpack waf lib into %s\nMove waf in a writable directory" % dir)
+
+ os.chdir(dir)
+ tmp = 't.bz2'
+ t = open(tmp,'wb')
+ try: t.write(txt)
+ finally: t.close()
+
+ try:
+ t = tarfile.open(tmp)
+ except:
+ try:
+ os.system('bunzip2 t.bz2')
+ t = tarfile.open('t')
+ tmp = 't'
+ except:
+ os.chdir(cwd)
+ try: shutil.rmtree(dir)
+ except OSError: pass
+ err("Waf cannot be unpacked, check that bzip2 support is present")
+
+ try:
+ for x in t: t.extract(x)
+ finally:
+ t.close()
+
+ for x in ('Tools', 'extras'):
+ os.chmod(join('waflib',x), 493)
+
+ if sys.hexversion<0x300000f:
+ sys.path = [join(dir, 'waflib')] + sys.path
+ import fixpy2
+ fixpy2.fixdir(dir)
+
+ os.remove(tmp)
+ os.chdir(cwd)
+
+ try: dir = unicode(dir, 'mbcs')
+ except: pass
+ try:
+ from ctypes import windll
+ windll.kernel32.SetFileAttributesW(dir, 2)
+ except:
+ pass
+
+def test(dir):
+ try:
+ os.stat(join(dir, 'waflib'))
+ return os.path.abspath(dir)
+ except OSError:
+ pass
+
+def find_lib():
+ src = os.path.abspath(inspect.getfile(inspect.getmodule(err)))
+ base, name = os.path.split(src)
+
+ #devs use $WAFDIR
+ w=test(os.environ.get('WAFDIR', ''))
+ if w: return w
+
+ #waf-light
+ if name.endswith('waf-light'):
+ w = test(base)
+ if w: return w
+ for dir in sys.path:
+ if test(dir):
+ return dir
+ err('waf-light requires waflib -> export WAFDIR=/folder')
+
+ dirname = '%s-%s-%s' % (WAF, VERSION, REVISION)
+ for i in (INSTALL,'/usr','/usr/local','/opt'):
+ w = test(i + '/lib/' + dirname)
+ if w: return w
+
+ #waf-local
+ dir = join(base, (sys.platform != 'win32' and '.' or '') + dirname)
+ w = test(dir)
+ if w: return w
+
+ #unpack
+ unpack_wafdir(dir, src)
+ return dir
+
+wafdir = find_lib()
+sys.path.insert(0, wafdir)
+
+if __name__ == '__main__':
+
+ from waflib import Scripting
+ Scripting.waf_entry_point(cwd, VERSION, wafdir)
+
+#==>
+#BZh91AY&SY:DvE]«ÿÿ°DPÿÿÿÿÿÿÿÿÿÿÿm (¬#%0E0m bÜ÷z`p#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%ú÷_O^m´µf¶±‡wÝîÓe*hiÛvÓµ}Ý;X¡Ý«½í²Í²KW£ݳ}Öݶµ‰tw+»ÐËíï§ß{\3»fÎíº=í»<RQïnÙw½x[ÚïN·pq{Ûl×½˜ô÷º“AžùÞé«-—6ïçhØdî44m²}{ïn÷ÃAêíï´ª;žå0;¾æ¦Þ®m÷Úà#%#%ì€;#%Àz:pï³AG¼PvmÍ°tiNå†Í vÁÜw3Kkj#%Q¦ºW:³º}ž¢†šiíÍ€ëT6÷5»‚…T©R( ÷°q E$B€QA¶:j(zÒ•Vm:ÀëCϾíæõ¢û½^Ùí›–eÞ̪¶*Tm›uÄ®Ùwc¾sÛÉ­­#%Y¾øû¾û½ßvëlÏ*ôÝÝíæáç¶vó{½Îû×{½}î÷¯­žÖîSvzó|³¯7×8³n^—»F׃E g‰Ö@õPöÄ5èéÌÝté»=æö÷w®­æ74ðiJÓxÑÖflôÈ©'{½àÀ@TT#2U$ž(¤TõˬvÞ½ïz ©>àmïióÝÅ;±Zô£l©öÆÌ:êsßÀ#2wØÙ›¾;yàhW½í·¼¾Þ÷½±oê’WÝä=}㶯ºpõÞ#2h#2¨û¸so«¨èãƒ\Û_XÃ<ÍóÛíçvë9ÝÕÊlæ»wÛ‡³ßmím$ÍåÆî[ºì®ÆéÇr>¼w|ê]ŠjSL°ÖßY×@_a—¼c—lÒå…ïjÝ÷nörû:|øRŸnÝ•`´›çÜ×nîlí»½îÞݙ˭‰{.©}îëÖÉ}rŽ=ÜÞiæœ êº¹Ýâì#%=§=^oO^¹¾ÁîðhL:©EDªURKBÌéÙÝw@n!&e¶v¶îo°{½.¹îôÈ1,gvlé¯m¯]»œµU9Ó©íãÞd¦×{Ùš4 î¶Æmìçx#%ÝŽâ#%#%o¸ûïW.'wÄï³»ÁÛî]Ûë½ìëU×»<fñó]6åî·-Ceïg^º{åƒÑälUQõŒÚœèˆ7ÛŽ¦ófŽ/ŽóÜçkx*èéJ÷4áïn£ÚÎÀ¯x¼e{(zì맷»iÙŽo·¾fÒÉn¦¹ƒl^8îõŽwÝãÞíÓ»²î>;›/r˜Ý»ëÎ}ÅhlÆ€}ëz·®—ªZ»¯[nwA«Ö ’yâΗ®º×9ÂõïYשÎv{@ 6z×#2ª}w›i^»»tèéÝÓp:Ý÷hî.0‡i§o^…OŸ¾ÅîÝuºÛZûµ—a{¯¦íó|Þµ§+°C {ÜçA¦—u»¦½yÖ»aÍ.¨ Ý:s޻˻æ×ØkyÒ€¶C¾Û沸#%#‡“Wn¦ú£g¸ØR‰©@¦Þõ”ôÕÒ²ïwW™áÝÝÙÀ6½Ãª»W5ÚË·p7wH‘E˧ZnΩ5Ý·Ow®öÔÆìã©›=w·»%µ+ÈQÌÇ«_WÞxƒÏžÓ¹ÝßO|BÙƒ&›çÝãØÙ¼à‘Ú:÷fûz÷Þî÷—uÉóÙ÷ݶÀîï··Æ7}KÇx3æ·¸i¢#%€ h#%˜#, “C&†€!’#2<¦ž¦Ô#%ÈjSj{E6 ”Ð!&Aa4žEO4§¤išhÚ˜h#%#%#%#%#%#%‚DAh  MLLšj3TØ'ªOôL¤Ójzžõ44~”# €#%#%#%$õJH„F“4 ”ÒmO"ž¦˜Êié#%hP#%Ñ¡å€#%#%h#%#%#%D„#% #%ÓSЙM&Fš&#,Bb #%#%#%#%$ÔDh#%ƒM@%?$=QúIúòŸ©<P#%#%È#%—ÿÑþ…U¥qþ¥ÎUW*îèÝ¿¨ªÓÌÑ•>5Zu!J$Ë",!2D¨"#%H#%§ŠÀAŠ?OÏôƒòüãôý†.©ìWbâ LÔâԬøÔßä.Cy®5ÖõfRçó>gùRø¤üÁ 7a†å 3ƒl#%ÃòŸtûÉguDÝDó7+OˆW4]\=clª0Š‰ŒI‡ÄbòÏ9kÚûlˆ“ïÝ[~„(ÞAR R1B@¤Š(È‚1Š)"ˆ²#%²#2p‚¢ÔPœç9`I(‰£C"ˆ¨9E,DFÄ#%HDöÀ"¥„E ¨@*‰#%Ã#%rBfL…’ŒÍCLÓd@M$Rj6Ñ35–25)F”Sm&‰šÉ4Œ–¦£TlÑšK&’#D´BŒR&Òš #%6KbÊ›Fˆ¤Ù-¢(JYiM-¢!e¤6h& £31IFÔdš#,)²E ©%a¢Ë-#Jmšl‰m6ÚËVѦbK™3!4D˜2ɶ›m4ÚÔ”l¤´ÖÆZ›lÍ”´™&b(*"Íi‰¢ÉE2(Ù6„B¢Í#h¤Àh¨BÁ±ISÍ*"#2”Ä`Ø„!A"$±ÐÈŒ’6¤L„ib †Ùš$LR„Œ3 ¥•– ÌH¤²1²k&ÆÆ‹L*E’,¤$hÚSLbJLŠ2‰4dÐÑ“#2’"QI²#2lh’,E2–E3ØÖHfÄIŠhfl ­&À$²°„X$¤ØÔDIi( ¤‰*!$J4H¢`Š Ã!Œ’˜F(L¤”š‹3cF°‘¤Ô‘$Ä"Ò› HD‘d¶ $Å–e™%e26"fÄÈŠQ›#0Lªi‰!Rƒf¢ÀY ÓM#,ŒDjVK$lQ(¤&E4“MHÃf™Æ“„“RK(Ê j4™¤mM4Q5¨, ÒYÅ’“"h&™H•3 ›J˜Ôbe I˜À‰#–He„Ål“*fjÌQ¶RØ”D̆¤S¤FlhP¬¦Š’(£Rd“dŒlc%M#S4X±I#2LÌ#2YY´ÂV"0DQ%&š™4Ì‚ÆQ†Í©±Eš•)IM†ÈÉŒ™ÚB‹$b”e$)EŠ¢’LI&”Ú4š"E#,#`LF4*4Ó"mŒÁ–Bi2ŒE"d,È‚Sd¥1J"³L„µ›66²X ’K&2¢¨-‰¬)d1±˜aA©,j,Ò%F"Ô¦”#2-L4$̤ÅdÙ”Á"–hҘƒBY2‘%VšÚÑ‚e ©š2™šQI3""´”Û–h³šFP–YSfˆµ2°¶Q‰#2)±¥4ˆF”Úþ;k¢¦©aˆÍ¢ŒlVƶ*6L¥4ÔR¤š44´…¨ØFÉ5Y†¡¦c(É)€•$[" ÄÌÓ-’Ú(Ĥ¥¨ÚŠBÑ“L&¦³,,jAL´³&L©6‚£eZFŠ›(El™dU*šJ˜SfÆc3VÆ‹"+dÓ+"TË)µ’¬¶R”Ó"Û#@d¤mEŠk,Ii ”µ¨*£Z2TUdÖJ6¨¬TT‰F´M2FرŒX­FÃ-XØ I“ T˜ E š4c!i’iZ[lhÚbk¶H±¶ˆ-j¥­eŠ†Be3RÖMTŒHDÓiH­©VmŒR›J¥”©–XV¦‘­¥RÈ™KSSFÄ-¡%2šË,šÊË![,Å  ¨ÒD…bÃ4˜‰!´…-£T%¢†KQY&š6LšJ,ˆ&ËŠl¤#,"+,‚E1”ÌJ”lÓ4 AE¢Ó$&Fm6“F6ÆÈS¦™cE%bHɨ,F$6B h$™¨£D”È¥ , j„©€24i1¦•3d„ÔZ2E›Q”£fRIF@Ѥ1e5ˆŠa´š#“d°Š $Ya#22Z(h,R‰4h³)S))e+0ÉX 4Y#bÔ‹Qª6kFhŠ†JRl4ÅKfRZFBL1i‰±%IRe#2*SLl’™¬%)¨¬f4–MŒÒh±³4ÒŒ–™­dFš3D ¥…$„(Ì š*šFÅ k4›%1 4”Z-ÂTj5b±‹Fe°Òa¤“B…“#c¢Ø£`KAY¦ÅÌ¢#,ŠŒ†ÉK)*dE´mƨÕh¡2ÍQAb‚ 5&¨Ô0Ä,#¥(mch4¦™d(£D‘TÉ-F¨±#)[dT¢¨Ö4˜",š"™”-J) ÉD•6%2­DjÁ¢¦E‹%FÑ…1f”[&Jŵ¤Å%e6Ȗɱ´4J’S ÊTX@lll”lš$Äb6ÉŠI˜ Õ™0h!Q¥6fÄÄSXÕ2²k24…4“QAQDÓjJŲ’XÙ1hÐF“IZ‘-,´m µZ-QV2”m&¶Dª6Ƥ¢Å"š"™‘˜ÓR#©›$ÍhŠ¤±m’¥•dÖ‰›R-DlldŠ¨¦U4«Fѱ¶Æ-©3J!,ÖV%¨ÅbÍ*6¢6•*)JÒŒÅB3HAeF‹IQ¤ÛÅ™REi+bɶRehѬCLZ)1£hÕ¶ËjÅ"eB¢bJ# $4hئ’mL1’m£l[bÓ5mÖ²ÒTÐË[)dÛSSl…µ&š±4eDhÈÚIEÃY©5&fË*"#2‰1$™I2##²[E™m™Ùãýì'©4¬e&o7ÿE™gü5¢a(ÆjNWøëäþ²ýÜ{¾*ÜßÙeéh4i}GD¿Óbmc÷ñ¦#,HÜd‡ýÛ2'ó¿íò,¦q:dPCoüÕÀ¨°"P`¸tqKá‚’AÉÛ{~›kDçúUHÿ_þ0Ïþu­ôJµÊâ/e¸+(U"/›šaþ{ÜàôJ´›q×êÄq¾Î…sƒPÈý–Ù«±9'|µüjŽ%¡²N(mÉÉb#ü5»fÍI­ D)#1$v—l‰³1¢#,Ñ¢:8ÆŽ»'yÝ!1½rïOJ½Kƹg;–_ÄëÏÀë3š¹›‡j˜ˆM^,Ñ2©Ù.e•)„¤ŠD˜šlK]ö1 c3ˆ(À¯Î»PËâܲ3znhÐl‘AL^,0˜ª·¹qÊÿÛ²ÃúØîó{nfˆÑgÉÑs_&¼š<rÂû}®R[ŒR~_éuãÙó·ÖùÞ™­íulEÃ#2m#2E“¿–J³êhIµ›Ÿ.c`cCbyª“< ”xþÍË?Ø0íBÄäî…°(aB!„Ò±^'»û³Ù¹Êæû¢åRSo×´1†#%Þß Ö­nó¹,3ۼåÑwÊæÝ,†¢®mÓÎâ$ØØžŒ%² X{êãGÅ O5¹Êø¹Øܹé7Z¿aéY³òuð ˆL‡ŽaÆÓÉ–"3lÖ7UU‹ ëºÑË—D#%¤ˆm9Á¼qƒkÂs¸ð’"0Þ¥]s{«š5]r»ÎìnQÒ¹s%uÝ$Žs#æ¿›^6¯Wu¯w—Åu¾+¡‹O{®ÙÀ…43ÃleƉÈe«#2û(¥Dš~ãF4­»K¯£Ù™#,("Wü4Rn‡M0Z¬@Gô¡€d³ŸÐš° )p3ƾÜ@ãš:?- 7Ëly™27DUÕ ;Õù²6 ö×ÆÈê/mß®I”ÐüZ‘QB«Ã¶¼,ò>ü)Äruj³oQß#,¼‘i›aCG/ð‡Ù5 ¦yæu혬¸?‡|YH)ɨ¥>~Ûõ9é| äíÝ­Ó“_J‡,‚xµr·Ñ<›·Ö¾KÛÝÚ·#,“Þ̤lòj¸èŸº»ƒí²•­8²˜Tú)b#Œó¼}¯Ï:«•&ü¸‡,ÂH _†Z‡Òm<‘_s(WÞO£¬,‰±Èj[ÿ-‡žE6(àÇðºÃ2b—Ñ×_®™ï~n¯$7Ím‰Z½&#2”*‰£NŒ¼Pâ-#2¬AË@‰*•{iX<ÙZøWø;(Êü8®ÑQQF¯–MFñµS$?êýµb Á c!”+Æ‚†+»Çø¬;3DR5A)AX«Óoå¹ 0ˆ‘ŒbSQIðîÜ®÷uVé¨i%"÷@Xš'+¬¥&D§)J¢‹šå¢¶/]ø·¯W‘)VJ‡µÜ±h¯Õ-×»±øºãE ¾~½þ·Š{÷tuÌlj6M¾gÛoÔK}Ž‹>Îìaôä÷oš`4¾¦E‘¥h;q¬5C—2ƒŒbfµ³V}é&Aú5Ÿƒ­»(dk&Å}]Õ|_:9jç½—†ˆ‘"˜,5m’è)J´„âÚDí¨C–´ð¢hzQàíºQL¡—UiNÍ-wÕ¬üªÔðХ߲œœ²ôî²Á‹¨ÀSE#2lÃQ MZD1Š>„Ä2Z~ø£GvˆÅ¶-5mãe—¥Â„S²ŠŸD+ b¨¬N¬<ÙkH](©É#2<*žo±/΂–ìãˆûã˜6ŇD› µË½×2ÃØqÃëýÐøçzˆrõW~`cí su‹$ßœR׌#,Xe†xY`E#%F#¨,b4¦ü]ÌÇëw´óM×W)–¦½þ¸/Ÿ¤}àGyØcøÉ-SL„€Æ ˆ÷µ84¦µöÕ¯»—n~(â=,¬¥sðÍýz 5ÃI4#,«É•î!¦7ž²’\‰crFÓD³Ýaõe» Â#,œn#»Ù_óMŒcRé°GÆ.]ŽQ¤LR1ø¹•9£Â©Ô§J¯#2Ëœœ(œš>Ô¥S¹?_;ç›ì°HƒdÓ é¶~°?]…¯GĺùcŠä¾iÕØÛ–ÝöÛ·Æ”ú÷¢MŠ©øâÈZ°‘ò‚¸lLçCÑÐmJ-Áî9Rr3T·ÞHÝ‹Å”/CåHñáaÎygL1¥óN”8žrâø\É~Ÿ^u{Æ€xÙ•\HÎpÊ6熴zmï*'Ú©Õ1Ù»a?>·Ô*­Fù”Œñõ•¾Z‡4¡&…Qøý.ûS2 Ýk¶þ6Ôâxñ‹¡uqÒC¢6:D}_&ŸÂ#ZN¼]•ëed¢˜#F¢“T×¾ŽlÏKjƒàλaшÃp?,ä†0#+‰ÈG¯·)9”4è=Fj/nvfgÒÑøó=½u™Â8Ô¾ß(SÀùz^$#m§ÉôZü<¨¶ûäkO ‚3è–jœ0Vµ(G}öÄï#,ô ¸áÒÖ«ƒ²ÉË#[“mŽ=@Ž.Ú.5êíÝÆÃrÉèuµmžîÆÛý§Å£\ÃË]}6´ßyŽ»!$’"Åíæ=yR‘øÔ`ëM aœ~LѸnÇ7|ßÐL³¨¿(HÓ ¿orjÌé›]õÛ«ÎåeUé(¤ÉqáÂé¨c¼T˜ì˜í§ @^†Ç¡hôÒÓ»œƒ+åkn5¿úT^¶cm†ŶÕH‡q¥ÚÈúý¾¨¥ò¾TJNm™­NÚ÷S#Yõâùä6CTEMØßÙ'ÓßÓ家´ë¹RK*‰É«*VØ_kBŠ#2#,ô¸†åu뺟Cq—ÛêêkHLÑ(S#,ô¹~- UKTWý†¢¤&|¯ùn¿ïþ÷[OŸáÝx꒾梾æb[y'Š´Qª#2(®¥3æÏA?ÜÛ÷ý-¶ïŒO­«rÆýLÊÏ©ý\çž(/§r²HŸ©š6…­àª½†¨×e” ‡zª`@bX+Äú;\}£e2™Ê`Iªiª^PO¯-nô†™ŸšX#ä~›†‡\mƒ¼è¨Ï•mr}iÕÀ³#,DæÙV‰ó¬Kœ*^ÝL’ÙÃ7õ€uêíÜXv ™ió Š‚:;µÕßŠÒ &Ÿ›Ž„’þ(ÀÍû3q󢑚°c‹##2Nrßk•‘nSç¹£÷tuO¯~™¾$_®Î抠Êsß¾4?„Zu>v.„Œ^1F¾-¿WšôÑmvÖ#2cÏÊiúÜM§®v™]}<°{sÒçÖ †ÕÁß2•À® ŒTSó2˜ëœ]Þ0ì;„C²ö¼ifšDMkË?A­Pø0/¤#V¸¨ÇÏš±ý¬¼å Ä-€Š­%x^‘šDES#2‡‡è”ÛÙUHx3s0)S»JÄ:¥xÑJîÈØ·<o.¤ífHg„+Cm¬úê©·’<÷Ú#,tz²8ï5›`BüéÙââ…ïuš(¤¡`ô¨n2_­£fR¤Dbòà:qúû§Ž­ÁþÞôÙØ,P˜:Œ–Ϲe(+vteFW=uëá¸öðÊƶ& :F‘÷ÉcÓ~0Bi¥y*éù'ö¹æ]L³u¿ªßêgežÚú6i˜wd~4åÍöÉý,¥óvÌ"ÑGšóc•îˆçÙêgd$™”¸rkhÖììz‰ÿê¸^×;¼ëøæ[(/ËÂc#¤ÎMýß*Ü]]ǛšöT¹4Fz+j+g1U 1Õ!Q ×ÚYî>°PŠ*„#,Ê¢2,Sè\&¹X±@jŠ9Ô¡ƒ#%Éjô°Œ÷ÓÎMô4O|®®Ö‚Ë$’½ªÞù¹p^C˜T‹a½#—â…Çڇ±3áç‡?N6æN›¼£ýˆáEüÕK±)'.:üØo¤1ò÷>>!º?”?cÆ7Žn&¯Á+5ÝÊŽ6PeÉÏ7Ωf²»ë µyϪ-Ç_5˜vʇGžœ/>Sž´=°:%o.6ºoχ1û– â‡óq·×¾%¸ÝµoDeŸÅ|3ZξWX1òæÇ—íÉÄzÓó‘øs¸]Ó('°ÒŽayzŽƒq©+¥µL”GÓkš|¼¯g—§+0=é±`•MF0T٧ܠĂ&®w"”ù}°Ö³gØiÕTÞä¤F¥â_?ƒ±Qž,mo‰m¡Ñ£¦§ºÅ¾%ŽC{³åŽìÜ­vჿÂRåfµ(YUG \ŸÃJÝöAæ}¸öíÖÆêªYØòäŇtj@K·ë€GŒòŒØë9*±‘1Z´ceC¹ê‡]3®!»j²ðÑj+­3ÅDhŸ•TTÁó†O*e8T!§_׉% ¨­9Dæ9Ó©u뢇«õ2mŠu¡V±FzP«L^oácßñ28mDzXÆó-·ðž8¼µÀ<+½—f—JøãÒü®– —«qÝú_W#,Õ$Uh÷cʸæ1;ÜÂõ˜x< •”փܛùªE''Ni<·XõD}S¡*¼Áq½Él‚Sòy Ù@isoåŸHm2LˆMå»ù¹d{šMybÉZÞ0PÁW®j^¿¿_f#J<Y˜*1b,þ.™·±*ª',cgUIßc¤±1Ñþ”T ï¬Ò*2ðÁblX’, x²YˆÓ Gø¢ß£b‚ÓY,HÓú¾“S&BîñóÙSR´ÿ*’®2Ný¢V®o;2ûö“(7C¦™v¾—†þŽ3Ö1.…m±þ“É+ûQeëyB>ä~ém}6ÇXŇèÕTýPŒÝ˜Ç’7úbðnþbôŠ#æÑC7mDý¥?†´›V]6k)0úiFM²ª…«ãA`«DYëO^;ê+÷8WŸÁlŸ¥X6µÉ nŒÔ÷`+ò£ñ÷PëGkÀ~Yæ–ª}©Í˜Ä䖖ǘgjÏœŒr PLoQa6›àSÎÑq 6@,|7™Ö×¼®Ó³¯ìv@©í’ù§´•Ù-›íG:ü{¶ÛH~—€!ºpLÛF#(KB‹ˆ*c*kma±n*ÀÂèQíÍN©LÅ^ph‡&™–ùÚè'ÍÓ¦K<˜qÖ¡‚Íêª'–4VÚDâO f8Fl‘²ãUóìÞðlÞOÛDõT&ANÿ7?’hAÓ0ÑψfÍѧk=™uò—BŒL“£ôÛ5˜ˆÚó‘s­_ÎÊò-"Q±DÍ@ú²vÔ=`Ú6ø{mû£˜ÊÑ°Þ9žýVN#,ä÷A“ô„£§OkM3 ¨î2<ýj¨ñ5€[*Yû"”PÊfª´©Ñ˜Î-]Ô=.µ@ÊDfjJª% UÏÃ#y#%Ñm  ®){Äír)qÕuÉ×YyôìjÁX£ kLFéoñùwÙê§Óócßîìåî†x•š–lI>2¤’\’#”¡Õ{âS§#%bŸmê‹€¡ÎzÍG?åìÚÈQ·Ø)û@Pveòóç¼ð½/ñÜFÄ÷ä°z(T 9hÝßõüâ_ÂÜÜ£<Ti>}+_T‹yþ'4ÀŽ)˜Nq%울 (ˆ8˜LÍÕ7Ñ–ë ¢ÞÐæ*󷺢;yÆT¦6kÎ êÕaÖuuBC5˜<áÖ3¹oÆî’˜Õfî}œ®¦i¤¥Í”0;™ú²Ÿkvµ¤2C8îù¸¥Ñe»–½-ó´m7ClƒÅ¬ëú®pNm~åÊÒ»*se¦Ü™L3•‹8«|Êãýn®#%úÞÁ®ù”}F0ÄÛ#%Íæ ¸å'E<¬åÐ ¤`4—Š*€aù}·?^•º­Ê#,0qˆ¯m€|42eoåmÚàù>÷UÇ˦.òËdÔ}&ݪˆ%”côõB±Û=Šò«<©Ô÷œw?üEÒ£‰F-Uú ËȳܠD†ùø†ƒÞ´µ,Üû(„iÜÂâ5#,VG¿ò™ÚÇ$‚åÜZ‡>ˬ;qˆ€¯«¶¦ãxºæ­Ò¨…ÚÏd§·8êåèŤp'y:è‚G;žÖxëãrO$¦É0ÍXY+iBÆq©É½ªÂÍÊáÈðÆ’Ëíþ†óÔ-­4ºD¬Û÷¹.[ ùŸJ :÷ïW–àj4.²y¿&¹iu“ðÜ|Lh¬”_sÖr2NÝð÷³ÇÂaÃŒ4SŽÕÁƉ”ê¯VÛÝ{ã6@¥`¬Ò4ê1ö¸›îû¬¢“,¾<:A-tlôˆ@œN,¨æMCJ/,Ä8‡»øwþÁ™Àä:]Þ³Ue×*£-':&ºò{v{h ¼±r*“™ ÓJ<ŸoÊÜõ!a™pá:xÏeÐü;ç°l°ðƒƒQ¼Õ({۹˵m§"—;<i#%㙦°j"Ä(I¡g(Nä·X¸ØµÏ+uìÜÆ(}•;MûNǸ°PYš vf«EG¢Óä‚Žímn/>75ÿ]ÊÏZ2ä_†û[7E½ïŽ›Dy–[žÚŠ#2Å(EsÜÞÊ:h;E™lÝ‚ËŽ–ÆuëÒ$¤é–K€ÈF— V`›R6Õå9X}Í»BïîáÆÆ-ÛR ûAÿ€ö#%$QÔküýÜGã¦âB7¹³r˜ü÷)ƒáŸ9ï|y|0e6{ìêÒðÃü…Í¢–>(ì:˜˜ä£ËùKªéBBÅ«*`³†#,™[÷;¯‚…>¸#,’)#ã@—ÿU~yÜðfÐHëH»èTEÝñløQ4öü¿óqÛN\ø’¯vŸð#LlÇ܃BÛT`Ð)6Ñ4<V:wÌwA &ñ訜`6_Hù¨é¬eG-/¹°ºêþýiW‘”¢ºf¿ÜQÞ°)^tqö—ý¤ONÉ×£˜êí‹€´r¾‚4°sâex}—JvôïÖ°K½z>Ü5a;饊ñ¾kΣ?]rŽš·EöÚrQ¨\¢èÑÇ 0xævª¸k8#%í•a„xe€é?-3¤•ÜzÔïzM)ÍCKv ÷ï¦þQcãLð˜ðr9TbO|Ó¦Q/ÿŸåk©äD[é·ž3z3Ó+@½4ÉC«Ö1`íÃ…1Ø íåò,‹QÉ[‘ÍeÛU¬"p#2”A™Xçù¶ºsk6éPÎ#%‡fž½Ø÷Ư]‚ ê–X8 C󔳸Aݼjçþm kŸÔÃS¨¯ù2˜ß»Ð_úb5ü—cõnËÆFf¡8%_®õö‡Îô†oŒ;2ëðÿ’ß//G){#IÉë. W‘ÁY‡êe †= z=v°(qÌÔ;¨ŸXU~D8ÍûYú<xpå»È6pý#% ·Ý¤$ÀA7ýŸËp @ @HƒÐKý5ë¢k–å9Øãáá]UGôZY"E6I#ÅÛo*9/„QÉ?JuœkÓm-Ç6ê<>-^__¶£§×¬m@'ò(¢ù*÷z©|G´§_Ù«[ºl1ä1øÈ6C¸™;‡7Äþ¾Pq9»0DR #%À‚„þ_ós÷ÿO"N{ú~«ìÏû{q·uë¾PØ6º!Ü#2"#,”Mq Ä#%ýYGïp¨jþ›Ûf£ neEXQ×ã›.cþmظpá¯ð—·‚$ØÅÎê¡2(ŠAúJ›‘€~íëG• )–"éôˆ/TjÕ ü9í%Ö]~g7u:Aí–ò‚µ`÷#%AžoôÚé°ÆrÙ0Þ ØFj†Y.@º*"K‡=œXô3 ËÇ'ÏRgb#…¾šUzÀ¾F5©µ^1€±D©ÓñÅ&c#%%;#%1óÛoÃísÊ°ý¸é?ÀRaùõþ¹~ïᦳ>õãŸü¿­Oøf'ͤb£ª*ì„bFß¹øÿ <Ú]úÔèÃRËá±µL±Y|SÜ܆(Hù>§ul<Ѐ^~ƒ_õ 2X‘H;ÁÈ#%X Ÿkȵxz˦©¹ÿ.xÀÛ9¾}:ÇÓîó@aºÛ2ŸÙ¿6Õ4ŒÜåßj]›´¬:;ãú®Š>’Ÿò;?v`0é )®ÙfÛ×m¾¡ß(þP}÷ïæQœ+èè~7§wîô¹É(=£šco>{:ë±1gŸß÷ë_—ÁÉfª 0;šüJ¬‹—¢ûÒ³&PÀÓ_¸û¯êšÝzËXɲQPñ=§‰Ç—êuߢpâºdÍ~}¯÷ôgS³wÓ>¬XB§<ÈIÁM•mGý‡ùubœÑÅOz¹ðþ}¸'^Í¡c®¶7B ª‹W‡ €f âr˜\«pw®_`–íÛõE‚TÁÖ“qÖžêìØÐii5$Dè?ãäÙœ³[Ê+Yý,2#^Ôe4ÜíãV@‚f붼8ŠP,†9UaGm–Ñ¢%å„ ’šÈ@ì7k“È"‰%y”zËxþûÊÂÙã2´J¶’PÝ×z¨HñòÐéð͘¬PaLYIJ¿7MC *Å‹Õ⮈þ¿âÞ*í‡cPÌÔ߯VsÃsÓèïø½­$ßÊËj¤ˆŽ¤çsøõ.a'‡®°cµ¨É00µêSf·¢‚öÕ’`zklûES¿Â±alÃç§ÃÅÚBêcýö_FígÉÚ,[3ÂŽq1?&òµHuHô‰M™ÇXÞØ ¤­Ï›ð‹)ðí>˜“ܘº#,a§¿O¶#,Ö½rÚG(zØ mԜ㬆0°ÐÃþTu’ÂÞD½#,·ßÏ^vU(¤(7®¶qµTZª…d·ÿ§q@!UÇ ¾Îwáz;‘/°7ÇxºáXþùä –!!#¡6Ðýu¦;(JHëæon™„õ|Y5ÖCÖûÈѸäwJÒ2s#,V‰UžAf‘ÁL¯ÑR#%bM|3ôÎÏC÷:ƒÀßëäVâŸØ#%žtn„Ð’Œ€Êçƒ 6ÖR2ùâßé&öôæœk*¼(cé®~ïͽþ‡Æ„NIŠwSnqMñLöYjÕ#%îËË#,$×ö^òáƒ3ÇöðÖnq©6%U4Ѳ…¸–¦£0Dj«é#,ïÊ|©½.üÃÄ°:àxMÖ£«RI|ðcƒçç´³*ç.7Ÿ%^tB:öÏÇzþ—¨3×|¨½Ð¤FèQë‡ÕáîjÙ]5e‡%.„T¤ïŸq¾ þ»3+8ZåÍ¥=üµ”ÆVGDwïVIBÜwîªqÐHì:ù»úW‡Ä#,Ã}_OçÎ,v8•ë#)&±#,Ž~ôÁ.$‚Ú¡M°™Új÷Q釤  žÜ5“˜ïp¬vþÇÛ…m}M‚îsÄùAB)2MBÀŠ·L ÷¿´Ü;=ñ¾úlŒïešÄPé#2¦h˜"# _ ßzéôùÍ3ã 2&ˆBžÑ…5Â6‡…ܦ2,,»¹Ç|زØR¢"ÈQˆæY…y`A¥+Ž˜:Ö4Ž{ÏðZ¼µ¾ìæÍŠktÒŸË00Èyk¯W–f»Äc*DX EY'ÔcLmXêpÎÈÑ]Úð½6/g—áüÀ ¯ I°¡Õ¡!"D-;¹Ðp!ý}™§Gȸ7ôQor‹´q#,Ù/ÁÕÁ3ÕG ÖeäíA  Æ b@1@00À¨#%¬¨!¬ÝÚ)Ƶæâ"]!¹¶hhRv»*>°½áåÃ@z •íQ‡NUáH¶† ŠÚ­$—Ô¥º–”*r¢Ì-,P™G¾ºìŠ;. ìsw‰=.†wª¿L3È0ÉžòŒ´j”†¡1¾‚sŽ©DÔéμÈr¯ö…(ݽ‡Ý!H>’ÕÀ´^k âR˜;#2(=xˆq¡”Õ#Ig»xÙ4çhVÆKD"e˜¡ÍœØ=Iȼ•]7>Æ=xôÇ)¸áÛѽS¥ÛÝpýtt'çš‹áë:TPýQ£ÃîÏC3ª(ÒÖíá#,PluÅ‹›Èkqéó£Ì±œÆˆpÎæ‡#1s—¨B˜s”n¶‰CÕg,[÷êç#2]¹P3y ÁQÓ'«ãÛ c­zÜôcvˆ¥!#ŠV:;ͽŠ:y±·£Gª6He­Ê;>Féç×ã±æ½pImÖ½¹ªO8«,›}YEÏy{^ÜIfxOÐpLÂÅGŠàÃö?q”²‹DYP™¾î5`!/˜2Ì^‹@õ{¨÷OZÎcæ\ff•€ W=ï°Î=Mn æá¶kð!?"Š;‰A8°¶x»¢€=µ#2Í–2],P‰zî×wžeÚîî´ñÙŒhæé›rÑQ£Äøù÷þØ=“ˆÃ¿M4Íý6Šøò¾éª^±Ñ¸ú.`bš#Bm¦¢!I Ø5LUaL`ÆÑ•F ög·ÄÑ0iP¸”ˆ"ÓH`b#%ô:Äàã[Ü5Ï—‡}q&ªóã k1ÅËF‰HØv½ªàÔåèàqé(¤í$ÿt“¢Çcµ+Úî,üeØ7ª#e³¥R­Rûxš}‡êqàdÕÚb.6Lj/¶ù77j^&¨þ*R˱Ê!}9§!‰8TT)‘h7ÎxÉ«ª#2x!¼ˆ¸1BDõˆ¶‡}Ö5ìé¬Ñ%·ÁCSZ¥\#,nVÙ®~=·¦Ë´.Òã)Ý¡AñHøõ†;U·ÖM­S«hòŸ_IÉKNÀá®Wû»'Ëãеç[l3ñ]y¾ÜaŒ©3^}ù³‰çxú5¶Î8;x¥Îˆî©2S+­‘ÒѦßõä©‹^h¼3Ù'Ff†¡î³cu³´T74Å6LÂVñB¼hxªìT&­É‡˜dŒ5PeAŒ£[0¬aX£@Ã…£Hý̈3#%ÑZ\´±,qbBfÊY`@Ë#24`Äòãõ§iÃÃKêÇêؾ]›ôç#2H(l’SF*KÅtÕé‹WÚWžý¶äØÓ"ŒXš2Ñ·²J6Ò­#,¤Øi ² †ñŠØõÝU0Âbµl´ IL´P0©#2B! 0 3îí™èøõnŸv3;„‘¿åãÝź¯~¶`+Ef,Uq0…X3Jó¬óÊZ(¦5`±|]ƒmH!–ëU#Ø€Wâ)|ðÆÔÖ@zä°DK@Œvœv á°[F âölò'ðžë½7í¨w»tDèქ´{c^# DÊ#,äߣPþ\{›”€³¢Ñ7`š•-ѯòHzè¶Ñù<–èßB¾AÅìÓÚÁÅ;âVð¦ðšH3±öËm7P!fGÇ*] %·m¬)b²KoS¾‡•Ïá©rÚÔáÈ™ÖËWZ 8Øc@©|µ›â:_i%­IùlÎÁ÷T½`‘Í=Æï¢Ù¿U¼ØBBþ_Ýh1÷Fx^9Ko«ã9ø>øs÷‘4èQùÅêí€ì'ML¼'#,&Ñ”ÝHÂÂvÔÚ i;| é[¾¶Ÿì¶aç#—üû<u½“csÝ—MÖþ@ jýºÌ÷™I$¡¸šèémô†j´•?H°„áŠp@i¿fÏYy#,m ­RQŠ‘(00²Z ÀîÇ.³a½Äp{¯ˆ¿aê}¿TJŽÍu<ðG‡ÁÕåEjÜ¡ˆøØ¢Öˆö%ˆ#d¶{Oì9˜î@ÉÁ(ñåú4þ‚ù#u¹í¾ep„* 8'mJäÂU'öºà¤ÑMýw §r­Á·÷ í˜Óä^tNˆ¹þ~Ù-˜%#%“#,¦2!Š Gy;É«"+ ѧJf¦ zRéY% ‹2h°†„à:ÈØ6²R(ÇH¢Ž y’*Iº†[û®…ÀMH†Ò+J†ÉvÒ#2”’jÒ7—lB”ŠmEhÒ±dt(ÂhÜ1bfZT˜q¶àëÐÐ;F¤ˆÇ¦a¢A‰±!ˆbÓK³#,åú}Ü^Ïטq¡%Zl žv‰g¤Æ#2Bc5 h#,™Ÿe35Ò·Í©#¹pPÒ¸F‘å.Ìðá¸4vM³sŠÄÕÝø†r‡³\dÊó¹\lä^¥&ŸÉÊ‘tGŒG-9Ì3OäGS(Ç÷þÏ^V3¹´w¨I3Æã"–]e¥w#,rÚ uŠì¾˽Nóç†ùóé Ç p#fâ‘ ›Œz܈ñ×¢¿#ˆ#,Ê]C“·k–Þ£Ììó³ðâz™)aH±‚›€nŠV¿ØrðuÆŸŒ&GÉð¨ÁC%9ȳµq›„ùCåÊjm·}ø(Pír’õ’E)"Ô…5Íâvyrn.#,lGHR囋‹Eÿ}©e㺇<¯¿g¼~m–q#Ö§i¸>NcUGEæÿÛ¯mÒdÇ&#,<É a0NÏŠsfEÛ‰²Áàÿb-Mù‡Çö²Ú4óY,Ħܨ҇ZéEX4èçE \×O7¦AÆ,÷©@¤GnP‘:è´OÊcJ­:7 Zf6O+ù&¤H-‡vÄÆeãã˜ú.ûûòü€1úyc@öýš¶f±¡3¿¶ÃUÕRÓn11¦ÆÂjDd Ó~^R¾¼*·÷‹˜q}/l†t:¤ã'ò– øV§Cû#27³ær¾2©îʼnùcá€TØðf#,¢‰B–Zô¶:»3ÿ'V;ÌÏX 퀞ʴmzõöê¬xÛàϤ>¨^ÛNþÒ]#Ó‘¸ûKs8f:­FÄ!Žy÷ÓSh²iN³8¥„EˆÈ –æ­t²F®mÓZ-¹mºi!¡ŠD=hh³ÃÈéU²î‰a#2]ÂîÊÓC«0‘wúmœy ¦fÖ¡Ìâ€Þ+PjðÅiú+ÿ Ù6Èl&©ËØžÓÚzÂxi#%ò %#%&ï.e¿%nåtX{såUâ?soÚõp@~(Mû¯kkàø÷㸠ùBýþu.Èu(pÔMÑ °bh3öÝú¶ÄpütèèëAfÕ´„ö½RÒ9'š"ÃÝQê;ø9¿<6ørá‡ÉÑÀjò#2j+ãÛ‹¬~óNÐjú§µ3bJ±V#2&Úù •ÞDì'[Ö.dõ¦¸þõY%ñŸ‘þ…y¢ùªÉ' ŸTWfBƒ“Êàû(&esày£Ã¹öCËb·t‡.Kô4w¬H–Œè1YwÁ|>ÿÙ]¿#,ã«PˆÙ |’÷þ/ÕµÞ+,£7=·uô]:Ÿ…xõõ¿òð¶}ž}SªÝ0ÞŒ<ÿͧíñýÛ:+]·‹ Þ~¸`"1€Ú|Z˜ {ÁÔ¬ƒ€‹$#½’Hò—`ßw¯˜z4IôK®¾w[ï‹òz: ³îÃÛîžö6²’1e‘ª1ÚTWÃôüÊ1Aæù~Ÿ£<%Ú(ìh·‚C‚«Š)Te æóÑW“8¥ÖSn¿©Å[-I[rÂØ}ßů÷P×Mõ#%&/‡ôÚ²I¯îýŸ£¿O  Ί @¨ K¹wôÛt+†=ŽÀx÷•õ§tdzê+â¦Ç‚~,÷bLO혩R* ¤Äg©ÚÐE3jK&‰1›*X”_‘ÆbhÓb¯ë—£¶íEËw:íÒ®[À—÷%#2’þÀ>SpìÕúÿ˜¼´ ¤­ŠL#2òçõ?‡,· ”Ô]Zm¾`bPáŸ}öy½”jñ ‹›w][©W-‚yÕÝ Øšüºò¿¿Ÿïêjý²°Qr‰hÔäñÿJ@ˆ‡Ï§áþN§¿O¶²ŽˆÂŽY›²)£¿¹k[›F¾ë맟µÆýŽ×J:3#Þ'$!êÿA”AVD6Þ’FÖù-W“kW­ê(ÈÔaûÞøÇCïp¼ŽÊ¨ÛMˆÄãK0…É5@´Tª%†M+ü†“Gôíä8Á¤?ÕU;pW°¬ qþÛœò­çüÆ-X}Q–_è?–ŸÊՋϼÿ3K¨uc BÑ‘ sÙêÕ³úŽû™ÃZ°#,ö¨ð;`"°nxùiepz8yù.'#%øÅê¡B‘C«¡h#2Ví-9ú[­]èhl§¥!î ¦é$<곸ÐpÑPÂýpÿ#2ZŒAU  é\o¿í®Oæ€Jí•#2(Ãû—&›ÖT#8zµé… cñ— yËþÀeoÅá?Œ±ŸNõ&*Å{Q?:õ6ÝÙÒŠÂB¡ý•&‚ `‰?¤Ù·?ëÙ¡@õ0RqéAò#|ø½¿tùj—óyþAø]ø~Æýoö÷ˆý?OÔ+ìê_'$Ο耴9m?Ž¦2·õ#,sãw¢‰¥ž<ç©ÿréôßt¸ýqò‘«àÆ núOÖlÁm9ó…㢭ùw+ÃñϽG@R-Ñ`ÓÝû"à:D&HÀ:öõ®›…Ô¬çÍbÆGœ¹ÄL¯—D„OmпõÉGß=7›’ô,kµÞñ=~x…ÜË´érÆnþý>(ø·IµR6»ñÈu~Üàio#2èaÁÛ{ ‘»gŽgÃÆN2ª-YSÕòÛrCø(#2‹ù˜Ó>0«ã‘æFoZRÿ%ZX|i­üÜ°Ê`·ºüZ™|I")Xï#,”Ë ›î²–;Cœî}4ÇÓ4¾Pdê:/Ñæp.Q³ŒŸ~9ò—i#,xR_ ŒÅ¹›¥H»y(â>£û¨±9ý‡å?QûÙOä3å˜Ï¥c„'õ„Уÿ0,ièæa×óÙw”<w H†T—‘¨ýOç 3r‚ð$s#¥óΞ~¾¸#%ؽ£YX7˜DÛNÂ$çoÚÂçôõíµÇ3—ÓŠ–÷"“¤ëqàý|m±X¶ï¾nè?$é5;špòëj*©¢³ÔB''5=Mž…û»THOßeCÞ¡þRû3MƒÄÁ¯¾³Ù©u–‚·JËB±}lþí?†›~Vû&-Š¹1!1ï! kœ ÎP>2HÐDh†“)»‘þ:£SoêÿGïgHþ¡'m“¯Ò¨¿Z]Š#,ÿŸ\û)ébIŠÂ|·øQ\F™Z Ó¡ ˜Hl}zM=~0Ÿ9³[‹õñŸ‡éøݵé#ä<#,,°°‘ÁF–ÉA9Ùį¡X“¯TCiŠÕ áZ¿V3XÀŸÅÐõ~nÅ\¡Å"…>#%>rê:kMO;\«Åv}»rîØwvO;ûxrÖ?âFÉF–Äþ•7óCœ«µ.0¤¶ )„.A ~ôïp‹x ¨¯»?¼Ó<Ó¯]ô7ºç[dä<¦œúðçÕüº»ýþ/¦~¿£è´ú›yuÁU³ÓÏì:}TËRkù¾«,¯b?5}mœý°W®Ý#O–cIKk¢üî\µÙØï["ËÛßû›Åë#õðÝ}¶?Eº{¾Þýƒ~ߎ\·Ø!kÊôÃÏ~8EDµUí¯ú?]Ráä>nåèã&÷ß#28ëpboÙŸŸCìv诹ZSyŽ·jû·G÷ðökîôèÏÊm‡y²åžŸñé÷¸îÓeÁEÂÀ2wgŸSëÕ=<þ¶ƒÏN‹qÀx=†þ !÷§¯ùËÝ}Èä s$“â·ô?¯n‡utc²’žÓeü‡ÐôßÇùÞ9”Ù!-2ãÍÒɈòÝl¡ºîu²›âÚqç{^û1¹“¦z<ï›f²Öv¦_5iëõëû#,®ãÕ’rãùÎØƪÚþgR=o¡çÙ·Lnµô£¹ï倶ð¶žçCΕnèÖ…Û.éjõK@ïœ,m¾ýÖÄï¶Û5ÒëºämÁ@ÛÈ¥(ý}ùÙJ‰y4ñaóÆÁÃM4F£Þ0¹ÏÓÀF%Ì.lAÀ>2.sº•Í?Ëñ9ïQ§šÌñæÕ'qôrãŽÛ||9aäßÃÎwk&éc½Þb%ëõp•Ú®¿º“ßÌØîÙ¡¡ãPàˆ²k'w•Œ†þ4´èõYŽUqI|:€æzx¤¬Déâ¨Xiÿk¬1Ýßïök|G#àef¾Šu¿„{¿7Œbìã­]ú9¸ý!6ŒüþŽ¥ïýžïG {›|†·Òq˜q;…5ŒìˆÃ¿lmöCj*¾ªïºÊýz<š¯³§KüZ…µl-›;âóÏJúpØÉôÇH`~Þ·»RC%Ôÿ ^eö›TVˆŒi‡Ó' USVüotvÊ[ÛØ:Dr§Ûäþm¶áEß¹DŠWåªsâ¿WÏ¿W ¿Øtä/m†ÿËØž_çí÷Æz}¿†¦×´éÆ1ô¼þЮë]×z/íǵ¡³Ü„ÆiŸ¶s0ƒ/f±Íñõÿ.!Aô:Ð}ú^9ŠâvaæøWìÀu0Ù¦Kì[Gͯ‹¾gÏaÑÒæÎ'T›ç3±ÓÍ_þöw^2lS –7µ|’¯ý~ö†ÿÑž„pÃC"§%#% Àñ8W–ØÏUžïgñ­ŸU£Ÿnx'ÀþÓðúÚÎí=Ú6VîPLƒ…;þ9úý5î¶ßäTz5ÃôþЊ<ÿ¤,­sºt#,ò¶M.ß+¿SS÷û¿rƒÜ Cbt—½‘‘•Ûý¬ÂQ÷uâÕû=å9ºwY…ü寮-† ÷îà×áö~›·Éþ_è6ÑûûÃÀТÓ€tÆzÉÿ‡Õ«AÑöú‚~îáÊž~‘‡Ã_æ÷ÛÊþmÑîùý}™÷ }ÂÆf×ßÖ;nÇÏ=OÔw}æý>–íËŒA¶Î­›-]›&Ëú<æ¤.ÝHœ¾õïAÞPhêì±ÃúrÒ<~/Ž}½Ÿ·]ó¿Ú=ÃóŽ#¬yðçòùà.[‡Slü³3˾ø;#%Ùúõn±#%PŠýý×$ßãaóXš:Û³üÇ#2u[§òW7#,#‡ÍÌÕ»ñø¯F±Q³Òœ9ã¿ìÍÃlÕÚn0ú|¿:ú>Þ:S厡Aäþ/ñ-#2@†Ÿ‡G6Þ {ÇëûOÄ–§xñy8ŽnPåVˆQô•ñ½€ëþíëc¿ÊÚ‚ã#2`¿É™«–+¿÷¶ÔºÇ%7þäãɆvyéÛûûú»×ˆ»o?Oñ‘çݘ±_ÒÜ]ˆ>k;ù—G'~Ùï¬É’ýGÇ;iäš(úOåûð²"„ƒ¸y<P§½Tc¤áá1}ß^Ä7ß>=|’:Ÿ¾#["I¶XTSâÑ s6–#%c¼¨NL‰_EãUI{0¶Z¥ÒW!‚% ™ ›ÝG’¶b€QqªñG4îIçB'#¤®ÉXκ#2`ú&•èdž™×ǵÜÞë‹ÝžxS¦î~.¸qJ†Ú¥Hˆë`Ài}vÇ©ëãú8Í-….j8Šî^À‹‡®fp$–:‚ yänÔ>´Ûú¸iÛ垟ŸÖ€Îçú÷þ‘·»L8ØM{ºX<ãc¥·ÞE;A—ƒ–`×|©ZQÃœñ2qèǃ]kX+GtOŒ§6¬ˆrÊÜÆÝï|àÜÖ²òÙÄQ9\èÝܵÊÊl,mŒKÌPŠÔÇøçµæïõÕ÷¨¾žjèÓ‡!<yá“õ‘{š\œ%ã xäí4¬ƒdò¤kÅÍêŒ$$’vYgÆÔ³p$þ[Ƭ÷$¬Óé kž)nAuèAѬ]¼[y½8Q¢Xá¢qxŠ¹4yð¯{ÆŸŒQãàG¡¼¶ßs¬øÄ“!ÈHBJNâ(Q#¯s⇈ÁÖ}ƒÇ™µÌ¹—ŒífÓ^ßvM°Õ¥ž„|YïîH<G¹ÛH ƒ,~]•êäùõŽÏm¢ÃH¢|Z<PÛ¥lŠí#,Ýe*ùš¥üáSé¬$éIÇœŽw©Ö Ð(ö‡BMÿ4û|†¢Ž½:@­ú¬ÓÏ£¶Ù_]UþÎ÷œ¿OçiR9v»†ê[õN…¢yó&LÏï,|·³a¸õ¾.vŸwÑÄ8û Œ˜x¼Ã`#‚aÌ/Sâ™Ò>¶ÖÃÊyåþWC¨¥åg7¥Ÿócóæ›næ¿Ñwž=`õ©Ú’Nݯ§·>›ú©;¤÷F!î­Ž¶cË•á9º?K«g«$ïñ~¯ŠƒG¬fÀ Ðo’õ½„:T’W–#‡ôíšTOÜÉT§,†$xý;ïÄ:¢d”ò—áê+Ö0È#%QÙ{Ll/Ž°1VñèÎçùþ‚6C'Áú?Ù-Ff\ÈÚ–7a+,ƒDpaSòzTcZƒF•A¶ÅHâðMJ*Q&íˆÑ#,cqa ª­(8Ü#2*"ÇOß»Si6×£Ó8kMjDöàÆ †°°ŽÅ-ŽÀ¦°Aȱ¬a¦ILA«"hhn„)"–4±[VWŒc€ì'Ç#,Ss¦ ÁdÞ!IUPßñÌÓ|ѱš›Jí„õÅhá“iÖ'÷~»ÝoG|ˆþ,ç1  úwHüV¨¦xMf@zÂkþahf ä®¢ÛשÈN¤,;#,Œ.EÚL°ˆ%.«÷|7þûÔþ?Ý?U¹ G#%çëÈìQMF2DHèé@ŒÖbí¡i7¨1lXT¥Q&FÈCV ±6Æ›f’J•Tꪀ”-m³öf„Êq·á—ÏäÆ噧?½4_Ø'ùðí—I¾öFþþœi|8Z4ϬÙf™c9ÎÕnºëñgË}¾oã£ËfÊòöW^¿ÇÉëÚ%æ…[?7åôçñØ1üzaÓϯØ<qM☧wáüp}¹Ùôcú³‘þˆp׈«c¾Ûóû4˜ÅÎîó¬«eVMq×eoùç²9ü5Ã0¶Žê‡ #20Ê}È(H’AáßauÕ yû=ß«ð_¯W³N¯_yDµ ñ+öŽ\#%pÐjªmøø8 m:½|â˜þxYÃG^péÁxYu¯í¯÷¹ås•ì¯“šÀÂÐÃËÓkù¿Ÿ^#2šÔ·S¾?ŽßwF¿.Ïãn¾:®âM?B&ì¬üg÷iK &ñ‹í œ óŽ¿B°(¤~^ÀôÖ‹Žú±NÑðâþßNvÆ&ŒÚð1[ª-«DŠÚPÈ9+¥®V#2a"XÕ#2%¦ ·wL–Ŧ˜F ™6EnÝñó^zÝz×ÉUÚÕ*zr(ˆ5ØÚ F)X¡`2(ì-p°#,È”¬¶g¥FŒ#ƒÆUZ¹ÍÚŒ‚–©Z¢Ê…¢Ø„`£$éÒMæîx3‘vä%r(*`¥2ƒshÙÀXœ;]g6®›%4#,Œcª!´ŒbY‘0̳¥Qiˆ#N㣩e-®g´8ož)(–Ö‚#%Ê#24×ô¶œ€ËéaWZíwºêiŠ”ÁDˆ²D™PáSˆ‘îÀÇáQ!4™?¹ˆ”ZÒÄ«™NB(ÐEsEQUÖ™QŽuÖJF1“Ì®t~ VÎ Ü|ªÃAI$Š9ˆ%!ìú¡Åy- ºEïd½c=.Ä Ã½]Q“½Fh2Â_í;¹:Ë9‘©‹Ûʶxé‡ç_­;h×QONœ×¯‡ÛDõÃÝðvà ÕSž›ú(}öfŠÃãÍjºúþqñhçÓ4;÷–ýçf¶£û#2ÆÞ¼&tèÇ2ß|ÿMO×ÝݹáìñÙ‡šÇ¬/}Ëò—Çá¢6DDNE랺qo^Zì3ñÛðépYe©Î&ö~?ƒês|ÝPþ§¨²§±Ì0èaÎH.FWð)ÜA~ƒÂ‘ì^¾SR8Ày›´ÙPøÅ6 Ò¾ßAp:\#2©$–eUV·µGä‚Gp„Ò’Ä–'£‡x€æ8¡ú?¤åÌú¥ù|ˆÏa§ö=sË>Úš·ôågÓßøúä1<ÕTa@Ï:žqî;‰íÏ€ñº}k•ñö5¾Û¨,§fÉÇõ%÷ÖCì‘‘ŽÎ…™¶îêÿfä¶#,ô\—ÝS]Îy$Ú$%øŠ×§^“abõÈÀ;·>B#`ŸÓé·?áþ<KDª—p¡YûšÊ¨¯ñU¶ŒVR62B8È+ÔKú˜­€OóeÓy¶‰yteŠ(È7b–¥Uðïúÿ“Ÿö¿§ÓùÿOñ~_Ýâi[ñÏ··å‡ƒÄÖ²`Ê(!$„%`Œg¯\Øz“2"Žc™E—éEh÷ œ¼i KC„¥Á­Û¦ôR6ŠkÀÌOZ¨,[ÀW2ÆažjViV»ëEXf …aF•y# â¨=¦fhPi12ŠÔX_4MZ^%뱉¯¦Lˆ{¦ñ#[h>Ù©“”‚X,ãmµ‰îš#,ß°Œ†hŒ5`£yTîeLzDm,ݹÁ²#2¬ä$d]_#%Ë’ËtG5h|j¢³oVa#,j¶ãnDÉMNš‰™T#2J lXdL1aˆ4Klí#,­‹Grí3«t†èp˜ÛIÖÐë¶X6 ‡jn¬Èeɶ”*Ž<ÙûßÕ“&C’;àÆÖ^h¡EQXaű‘‘¶x¸dæ4 Q'¶AájÛðº)Ú„o˜ùàÂ6L(:qQY!.hôÈzüáR”#%„(APE½wnåÉñp†îàwç¾ÑS§HGߣ â$¡#2Ze2CŒˆÄË8©0[É„äPâ§J¥µõùé°Ž§øþ2âqµBÝŽt¢z8mG¿6 ózÁ>“ï*èÇW-~Œ:S¤Òâ0üpmÔæk<ˆŒ°²ÛbÅ…¥UOÏJª `ÓŒÛw‹r+¤DjGH¸¸ÂðâÒŒi§Oª|t°Ud—N¤G#"DÔÂfý65[ÒDé-¦„ÒJýtå;÷¸Ëñ†¶p°ï´±G¤Ózt(qPGcÈE{ž/F°4¤´RéhƒDâ*t6àØÞc™Š¦ç6®•U¢¨D*rÛËø¼²vkµÝÒ5¶ù˜$<¥BPXY®[`‘!Àü5oþáûÞ_]û}~aÓûys@xyñÅß'^‘vZ¼C$ùñ/_òð•{ªÀ†¨yÔ/PdVnŸlÙ÷É ‘rÒ´‹uF:;H3Î+™`› ´è˜°PJ()¿Í!±¨8ÈÆÓ s¡#.´Â@ƒÌimÆÞê£);Bº.¬ƒû²–R7x266~clyUE#Pm§]ŽB½9"XÞ<(²ÀÐœk]7™ßf`q¤Mš¥Î%ÜZ8& eXP„“XJe@¸‘­0ß…+#%hfú¢FR¥ÓPCª !¤YJ(KòLÄ—6Jš3¸%¢ŽÕFHp,7q¦¥ªÉÏ‚j ì]d“#ttpÓÑ +4’غÕ&3ˆ6uvh.>‰µìÐhÔ4ã#2ƙԡ–3$c#k±ÐÊ&E½À¬vÅ`j0t¡E&Y#FS%|åVn×~Âîç÷^Žþ+ýO¿ŸE½øš6â0ó°ýæ[Êá¡îj;ã:„¥'>*SˆV4›^õ:r=dý“C`M„\}“vâ|éœEŽd+ô w–¤-x@˜UTwC‹$'w×5±HKûÖÆ›o«må³ìhÊbØ9rS³–^@/$T‡Djm¤Y.¹ã#Ô‹äî#,KqªëΟS6ÛÇã]ÃyÇ}ôf£nMÉ*éKqŒ{±µZ$Â-à<¡Ä;²HUPßs=ÀºmŸ(#, ¦f{xmãEï˜×M±›bˆ‹Œ‘4Ó“I›D)’‡0Û8ÌR ()ñ¬#2ùª¼á5FvÄ(_ÁBô/ƒcüãbÍXR#,Š§Ón¾è¸|J#/¹¶Æj Ë… †Ö¥³…Cˆš¼7æp(“ˈ°ËF†DÇd"3]ä(Ø£Àæ#¨pkƒ}÷ó-ÇÄò°ÛŽ6óÅ@·dÔí1³‘Õ­ógmÆpÛ5‡Â¶†¸yQ…boyN·>ôtØA‰mÎ&#,ðXß)ÈÞn‹TRÚO,YL¾î¹Úó»F:Ƶ»êò-#%é¯Ë]Ú—PÒLJ*Ù:âõ*·yZªÖòeTpÒêJJG±ã†ïÊ»Nêçs¶˜ápq2[ò[`ƒ;š€ŽFáá2£iJ-âß8¶M»k]+•øÉ(5¸ÐÜ#2#Éࣣ#`Ø¥åqåÆÓ½¼…mGQ×gudÞbY+£s‚Žo-ÓoŽÈ¥×#2ÀO¾ƒX°Ü#,¶µ¾×.:1î]"µc´"tb›®®Ž3™93³eL¡¥«–k1âf©t鳜f,œ1²+ ³„ç&5¡SaÈÍõrIÎ6A(¤%ÍÍh®·vÀ°­:†0lrí¶ÆNZA<“kRhdA†ÓÌØæ2û=Ç+^]¬ ~™ÖÌÚ!'}—àJ¸,yvÕ c ZÜí9ë÷z±£ÞÓ2ƃ¦7æàÈËÄ9S!mDø¨í;¥ëôÞ[iËë\QÀœŒ=Ñð·'„#*£}yæյᯡ¤¯ü—q9‰"êÇË'êaMm×M?"˜‡‹wþ¹­ö]x¸Þ¡nó,˜œ›þÝë»ôŽÞ<ÃXM|an‰¸ê!Ô¥•“ÄAl©·K¾;Æ–°´‘¼)ÁF§P6ø¤,½¬-®eß4öÜe.ôáµ—œ•ÁÀ§~nük{`ZŒVÝùº(³ý~–Ý’­±é2e“ “$#,{Fã(qCv)5¿ïP¬¥UD/‹âaXäÐÊO ÖI#¦í3Œ+–/ üu]k]V–Ó°B|'˜6‡¡rÎÜâ°ñ©lš¿ð¸ûÊ"¼ÄÒ¤²£|â-I°šYºç´D„ß\ñ`%dn½;lù²BÂ#,gPc “B._}íÒ¤“z)‡$‡Š᫲i^Šò«)fÙ]y1„¸W#4ü*ùõ¹µÄ-îýùÑ¡‡èꢧÍÍÄtm‚˜Q‹„¦S3u#,:yé,éÛ€-Ôç8QÑÖug2`ñ¬Ü#,1µ(zoZUå†Þ¬M#EŠ°îö×wey¶ðy›ý‡1v“Û‚ñO'ºg³yBtÙ¼¦2Òœ!5%M¶µ†«`”Æ3ëÊ„ÿä1GQ÷ê!ÍN¶‰ø+¾ñÁ°0¢¨$‹ÞìÛô-Fñàtø‘ÇùÝ1¨ÆÏÌn£ÙY±zYàB5ÚÄÝÎ98À(vAÌä²3ij/ÏäQÙáõ7vÇiÕ'²8u¬Ü.´ñùþ é}ÆžÀ!4‰#2*©åd2M@*Ø_ìK\p_{Ôª,W§,y“‡«?B>zµö`׫¤xœíê$@“Ñöa@ŸªÀˆŒõÄYñ3¡ðø¼E¥rظêò>Šáè\›â>]šð ø2Ý倹Ðiß©þSÒKÄ“,Mà@ùÜšÔ@HÝQHº Ú¢À åAÂKäM£!uÌÆ‹mgÓåðüÖmñŒ»ñýËà)–>!e(D*e™lœ¡`Ê#%'ã÷ÝßÕý5l²ô¾óˆdwÁ†AÁ<7¸F#HX(Ö#%Çéüysd;ý­qQùí¶ŽVwìДpUBLAsvÁ¡…€K‡Ezä?¨·+!Ü Xätõ‡/dDF@É󀓱ü;O-îdÞ1èN9KÉÀÖªŸÔxήQvÁ‹ÁëhJ?W">Y"ådÚp{ê#2’Ü“lÀí8š{`†B”ª‡¼ütfýoÝý²Ø”ì*ç.ïôîŽ [ÎÐ5¿‘., MKÀx¾À£ɘª|¦7_<¡øoàlŠRU»%—eË¡L¬?°–Ü`ÚÙ1l<Èí EjX+”˜—kN< â³Ø÷qò¾Ç‡ÒÏ®î¡I’b%àãË0ò&ß³1CÀ™ßIü5Vʵš÷9º©:`Ê#•ÆlíL:ß•ém6Æ®Ýj'ɺn#%®÷}'÷Šž][gÉ¥bÞQæ,·tv¾ÛL莓¥ˆœhÊ,‘LT&ŸÍºžÉ€€žk0ð7+Á½4̪¥È£œÉC–ã¤è{Œ¯%}}a{±”M ¡AÎ <¯ ’MMé€-eÙqÑI¸öG¿£îäטVbàÇMó䆇'd(uNl/­B‘d ‡fÎMõŸ×™ÖïåfíMt“ú’ômêFìPø¿ÜËiòŽ³Ží1}‘CMM<» Ô¤k>uÊä1ûÚè¶aþ¾xòÕzS‹N榈Ÿ¥®W¡ÂÛãÎMvÚŸ˜š;â•#27¸4û1§¹~<øc5Ðqáø^íÛÈn£©M2sº=õ‹]ó'?ßíðöfö(~ ]Nc¼B9ä~Q86ž‚à72{àÎ[ÚuˆáÎY4ü¶ÒÒbG6‚“H°’cƒçfseXuazí‡>x© L:- @~ºà½ƒÌˆã¯?_צŽŠô"ˆ!4²~ks6Çë#*g-ƒêÑMò¬/\Fd- àF`ÍÏq#22ö¦Ë’BÆ‚>?#<i"A#,­Õ/q/Côø_ŽÑ k‡Ú›C œ æ;ò™È÷OW wîZzÌ`y´.n’Ú¡-´é×'§WÓb_Êv1ÊÉ'ú™ uæ vžË£C˜7Ù“Ä4ÆçOËåešÇÅ#,6µð7èx­3LuGY¶ü>S„!Œ•Üñjanêf¸•¹08ä¦"æ@è@«üR>\}[ˆìäåúžŽÝÓc‡ríàXZ.ê,¥®ýÏØ#Îfi?#úGî¤è—DÁµÊŠ©æÔø=`£Ñ@ˆ¨úã´#2ˆoÚㇿg´enkòkP4÷ÿ¡Þ4Úg>^¯ŒùÔ:Û½vÐ$N™×„ÌJ:Œƒ´ÃC1Ú­„aÚqPLEs‘¦\ã5¼¿ÜCåüúdψÃÖAZÊŠù.0[¬ñnq²ŠöFÜaøñ ŸÏ‡‘¢Qö—Ùj:9‰9l#±H%˜n+©î€ÏÈ©ßA¯f ~«®ˆ{NT‚0 •’¹ÀVŽ&±½g|ÃÍ‹@…)Õ§)OˆübªH„žg¼êÉ}¶b^j~8y$*×WÍ«VðÉ7Ú²÷±ÖÛâ™Ñ„ùäÚr¶†gìÖs5;¹Guµ9#¢é—Êã úS© º”#Ü©“1¸È±f\l£¢þ.ušŸÌ_Jèk¥¨8wÆa&×J/OÒK3b^oB™Ý:^¾»Y'ŸíÜ m"€š;Úµ3ÞØs¢­Ç™#,[öÅÛùoÏ…U"Û‘ãÄÌ[~ÊÚ‹Ä&Á*ÎM.Ö`âV”Á’“*¹³$¥'3¹¯˜gDPÑ€eÊÕ˽(CÌÃ;oÛ©¡Â6ˆÁäÕЊ#,˜"#2*‹VÀÞ#‘Š¦ïÅR3–¥ð6„ç–|)¤8ÕÝà7Õ¿QúÜïeìî#$†ãXJljUçä£Öc:=\Ö»íÒKtÏœáž7¸‰jmcԮȶÙòd#,wgk]ÁÅæßz(ÕŽãÁÌô\VÍêÓ¸¾†æL6Û$ûE)}ë'Êï}'n‹cg6|$ PàòŽMÑSAͽÈàœBÒw!bÍ^†üîö(|ÑþѤS˜¼bŸ¾ùôñî»*y9N’Û_¡Ç‘Fo%ë*œ¡açgþÙô›¹Ê_=øRoŸVþÙέº Pü[+ƒ8Q‡¶h’‰áà|¿8¨¼ƒ_ÊgccùËäÈXÚ*èQ§o³HòG‰dðP3­4 Ò3#2.IDg_Ï#2ãÖÛ~!ÞʨÁõs›=TŽhŠq?ò—Ë¥±µ ~Æm‡Éi¹ÁölíÄíJÙ{–Ó̘dˆì‹½¶óeÔð³%ÛÕÕÐ^áQF%’iä!0ßP¿8âÞ}´s^G aÐZ{x]#eíÂå-×,TÊeÞôñ-Ä6HŸ~†Åmó2&–Oý¤xr6ó–Ë['ï3ßÝ껶ýºc}H|Â%Èx;ŽN+wD³!#JŠAcFQ bSS›üp?DC&7(eò–‰ãŽ›óVÜ°dQê<£š€ëñ)·Cî–‹§Ù<!]:CçßX,Æd³Këì듧ZEŠžtãZƒ#AtœF:ÓeӇ͚òŠH6Ò¶|™º×ļkg‡X3s­S§¶‡–„ûtc˜Ê •æö#ò{ƒ|OÃ;ör¬®Ò!&€tv|©j{#%‹`™—¹ƒWÔ’ñ"qñì5X-£ çûœã$[òÑ ¹°aöù•"G“õQ£fÅÓv:®²`u#'<uþ±*=ä$­5ÇUgO–tÀ¹Vç-¥ê­cëÔiHktÞÒÍØzZ·'W³]¡p‰zÜÆšn D…c×FóÜÏå¦ê ÓsT»f«øW#2­/ã9=jÑ´S½e˜Ž‡Iã Œôk‡“@„µb뛣•­Xœ˜Lm…'ìz:;`»òt)”E<PXí]Rå†×¨e¿û|¶¤¬Ú(à³ç¬7ážÑ9¹ÙVÜ•;b¸_k¢»Ì3òVMq‹Š«îÓu‹<ÿvó×Ůխ^Þ^Q˜_™íÞ^WÆ«WÍùGEVf¨Æ!Ñy0ƒ¬±¬>6sòÕL.ŸËbi#,Ud¶ÛÏj1ÎY—½÷X€>Ǽ9ÁF†¬"¼¥+–èí}o­Ï’^†×o|*ìî™ã”ZY$'´´°èîHd ¼«Ý ¡é].\®LØ7Âü§/q°X4VتÆÚ†-. › éÌÖÙ‹EðR´t­}yeQ³…[Cî¨ÆûïŸç­^`~½`JžRS*;-SʤR9âJô¿ôã宜ä#íÆ×FNvשξVC)½Ú (B#%¡pÚ¶_’Œ¬.•‘»_M~a$˜×Ím,EÊç[¡Ÿ×¬Ë‰ÀdÍM<­ê±RÚ¸6»uá÷ZV‚iT“#23X»¯±W (ñ]‚Ju«‹äñ(+CÏ‹;¥ôáâ×k0Ã+ž'bS<õõøw2n³<vSKÍî½9#{åßÕf§YžtØ?XÚçÜôTðQåj?°½Èo]yѵ夶™©gÃiQö›¤Åz^}Û̹ó‡m¾ëœc¾’£4ü"R“ÔNmÝ•/£I—nd'ö¬/aC+fP·Rìǃi/eÛ¥¹„ø=½‘í†é—Ó'®’w¨ {öý¬ô³¦3жÉaQµãn¹™¥g“Ï'­Ìt569ôæS7ήxz¶^,9£ï£é`kÉ[Üå#, [rüAtÓj<—ûÆøÞães;ÁRÏÉT2)¦…•–LÈh½´ÅÔ¡€#2G]ÉŽ6ŽQø¥k´ÍÝÌ4Î C=bM¼›o£¹éÄÊêÕÐdžšGfÃ[Îwßz’ÕÑuâøœ/’2—7L¢;®•Ò?—+jZ¢È³Èà¢Õ —½áÔé«°ËȺ]\T:üZmû>}J,+êþoªŸøHùnCê,{ΫŸMe×qöÇotÞügëA¥ë9üqÂ{}æ*™Ý§Ó˦xÍcÁ™ei.ÚJèÑ€TXÝV3yMã#2F7>Ëžóa{…mÎ{(éQ°9Ú²ÏË7K*_jº÷:/a P…„´PæNÛ_#˜ñ‘•¦­€6ÍmÙOðˆ5µ†íÉñ¿zæzþƨÞcUï·]tò§HËKóW/ÆÔÚV-Š¨!yŒ¼ô¼è¶Q{ó,ûÔiá.xÌ<\ ÇÒ @§&˜jÕQI¤–;21Ö1æÑ*ªñ¼|wΈä–âuÅÂdœéW)ã'@™ÁÖö¥ÝqŸJŒI››rËLÜ`øa ø÷õ³é?Ë·YÞ9áá[è³#2¾±š0;Í· ¾NÝ„lRÖjáÀNYX0 +ZV6A-“IW{ºV‚Ž°GÒ)Ú…"$u‘Ɖ++â­´®·'Éd¤-dæ-ú-~ åaxÆ«aãzß6D7Âm.\T‹PH†‚ÙÏLÄ’ÚUñ¥CåŸnV»hÒÔ{Y*Ý®ë´9jæ9L,°‚,#¤‘×7Î Z1V~<k–Í\o«LdZõZC¨_8ÙŠÁ³òJn]„QdÃüûà…È0‚Á‰ÍÝ1áX¯ Òæ€ì17˜óPÔŒÊB„sÝ#,.†ùa©Í¿Xñ…©ŠÁÂ5 ÙL·=ÖǘÝÆb#,.‹ß~ËŸd/3–ŒÑwPÎR  íÌ`Ý965 ÛZk¦¨Å¡ž€÷B°q6BLìXÂuµüŽzgªŽ°´¼?1MøÀ¨+ÒÖgØ#,“¤#EÖ-æè_+g –.Ô;· żŽIöóÍJÏY“'_–$ÕœÆ;^ÞœzXâ×íPwÙ¡ÅË·å,?ïP§Þöç‹Ó¯tÌqÁ8=þø´¼Ç_¯?5b·1z‚ÃòL˜Yã‰áÕ)ÜÒVyí-U~œóv‰C#2É%PoYZ”QÍNN–°Á¿¢ü·,ŒU”(Q@¡oµì÷›ü—å){%á“[(©^ˆÚ]c-M´zBÏ"H!à^6CU^`ÛH5ð§1äáüd@’:Â#,?$tæY<^Õ×.Ýžë®­¥P/Xsªs?¦!N#,üˆiæéù9/ðÓã1㉬MŸ7©Ùð^ýVÛVï@V¬ÖÛ79Î[“Fp#2ÆÅ N–dGNãõû£i{Æ¥8SµLzôöÞmÇXõqÃÍøÛ“3‡¨bWñw!ŸÛyi½œJ#1ºLÊaÿW选¯êV}HñAÓœGq·YÛßt&³Ž5ò;àÊ8¤.ò7MÖ2ÐWU/p&Å\b27½_9_ºƒÓB‘ÓDÃo‘ ¥ ëz³ë¬6W­oeñV«(ÕKô‚ÒõJUo뢋BÞÙχñªñ¬8#,Tpòq v¿­’á¢üœØuÒŒ`55Bv@ipxº#2˜yÝkŸ­§¥í{ùÝÎ2BBâI½‚IŠ=ÎMä[ÁïS»¹ê¯¦Mîa#¹MãÖôöûé县¥ÀÆûc*/W÷öj“;gRÔ”Fͱs})¤YŒ´½åðmç1#즫YíŸXÛ|ÃâÜ)ÃcÖ#2LxN×%ÐWŽB¶âðý=YÄTÇ÷[ó‘13y FG{Sâ¬6:e#%”}„+Ë€é|2ÅoiµKJˆ¡1Ó“©i\7¬lÂõQÔþ8Þ—”ÉãUa–H A®É°“ÃŽ¹)‚¦÷µ¨$Åþh>r4MG*ŸŸƒ™t½Ö@rƒö¦î¾‹Ë\ýóቘ-™×ÝÑ–èÉ9Š|—(läX”§G:\C×j»©Í¿XÔ÷ÏžëfÜÆ¡IçsWDÚ/ ²#,—­{‡®ü¢4€JPntÅ“UMëæt8,Ñl×±¾Ñ°ý˜§*k9DD°#2T2À¦‰ Áq¢Ð²#2襣Ôk1~6ó#,6 Ïêóìqt}Óýë©Ø[D4j4™%ý¡³…u³fv*P…æVDujš%·}¬†ã„–‡\{ÕÔ)Áxô¹,’pß1ƒ8AYë{A¾žBxãh—<ª²˜{˜nÁ¶ºN.šX”.é5œ«4tÚÓ6 ýÕºÁh„‚]7ów>(÷Ãì!*ñÒ{ób€ë婹jßöyFÎÒu–, °SkÄéö.ÛwNT€ä5¯Øë•âøÍúRsÌ—WàëâuZЊɰ_nQ±÷A;\¤V Œvóg½Z’`ÔÛr{xÁ²óGÛ#2WÓÝF"»\ÀYÊw;(]½Çñë!T÷å×ø{cé&[·oH°ÃÚoj£{s¹–X5•³r‡ïåH<BssZa啸{¾%m¬©3¶[…ƒÅ…ôD­`«ÖªAÆÝåov¥”0ƒ˜œâÁHçpø)tú¹ä(wÑQ°ÀµIº*^<€ºµQÄ0P¨UA#2Ñ£c¿wv»ç8%x.LàÚýn·ú®ªFD¡oVé§W!tß,´tšÒeJûÜä™îaAð~½l¹Í»K,3Ÿæêþ'Ÿ–·¿dvFãƒYf…âÎ<x»>ûÛøý«ÑR?ì*@^2].\}ý¯–±%c£S\iÓÈö¸»®­eý#%öw.mM“Bªò‡ß6èÖ¢sÜÒ½KRBaãÖš³ùŸRbˆB ¦ã§7vBñ'Í샚;s]ŽùcG³ÓÆÛÑ8M‘7KÝIò…›³}4i§CÆH¸åæËt‘£NX#2S£zº3fY…Rî$&_}é|ÈœwÔaªKÓ%tXàÕg ¨¿%”—\U×{›jjÙÉùjù^72O]ãÈç·;×ci!"`}¸’\ñ‘Ôx¾0’팺)¦¢rRF£«U™,q”o"•\N€SŸlÌâ3F”Û”o0B1CÖÅñœOTy—QºètÛwå¶Æùm.¾OÆw7™íÚŽh*Âf—¹’Ÿê‰ëAs¹ƒå}5žMž·ŸÛ¡ùÖ£+“Ωº’`±-Æ|nßIéœÅ¶À@[¡ÐÊ2Òù‰˜PÆ Tèøƺ<®Ì{ÈRÑéG2{E,òvNºEÊÏšjüµP/%]&³ÞnÝ®ŒPß;ßÎ[×ã’/ËÕ¸FµÒqå5ÌÓZ:ad*”u™ãÚÛ¿Eôƒ•<3‘ëŽ6$¶åñ¼¦tcQ\\<jÞ\ú.žƒ™ëx#,îÕÍŠ°¦ãÜEOWÃAý'Sh;Þ½!O£¿ÿq%´\ÝÃÀYâ4_ÇÜ®ÙÞ¤¹ wçH#2*Ú-ºÈBö7O~‘"Bdp„­Üý#,Û^Þ)ñç4máΚÕKûvŽ·õƒ…z~Šër¯“ÅÅ>HاŒ«[»%6iÊŸé˜~È.sežë3ì0Ó{#%û>Vt$ÏmhÂ/É›T"yŸÆØõór`˜‹C¢–ü`ÂköõÌþ;@Ï0AñGéµÔ1²mÑŠcâíèC6yv¿§=¹âS£@¡ ŽvÕÆÈ#2?íÆr)Ńå{ôá#,»"Ðdn#2ÚçÂs™©IÞ3×Þë‡ÆaÓƒ¡ÑÀÿ–öÐ,º{` Œ–A–#2/, (ç%ˆ+zïué[Ã:mPžÌG~楲%ïsB4$…Ú'³Åª:£G]›Ñ8q}.¾±B0±EÉh0 g0%œ[9HW¦„‘Ï;ÌÛ;÷t…i³ÛÚÕpV2pvÊ|]x-§º´OgeâbGùŽ6J7ërý*â J—«×—1á9]<¶%±½ƒÓ);/ŽàÙØ‚¤Qƒ5§¦Ö 5›ªÕ“j•¦Cµ(Æ=«¿2Õ6$vYÉàÉ%¹*¢ Äš–i=߆õ†âƒº½ÑÝà©aç=¤ ú»¶¯H\ùiìê8XL QP¤ƒã/ÒsÛ¤¸zµkÓ¾!½5ý«ÒœÐÈgq#%{‘ôzú.¡[v ßü÷lé¸Ûõ0¢¿#,Ub™uª ¡ ÚoÐF%ÌŠZZÒ4{¼. Ú:7w¨x šAõ²vÇ”Þñ#%“Í#2ùÕONʆ’KE¹m›ß³åÆÁ¯Hù÷C«—¨ý Ùv€N ­SßnAáÈR¸÷ñùñyÛÚ¼–Û7¼HgþõEZû'ÄvélÆ*¤vØ­©IÓñëO$_*:*a :À¤Õ¥€¡š‹ jË°[è¸ûCË}è´å’Š üÏÕççžGŽ^$ÌÙäõøYsC¤Þ#%sLÞ€­u‰G'6õ×â$·¤<À¶†à|®‰¦Ý!žŸõóÔø@¼_Ë`ÚuäÑÇ4·7ÈÑ$³£®Œå cc’ˆ”!nØXbQåf¡Šã“@á#2€é°„0Yû=-Å|ã^f8Fëý{àþ‚À</—Ï}~þïwÄûyºÿ óJZWÅ˘ #%§ÃÖ ØŸÔ‡Z+žÃ`å5Ü9‡®P”˜VŽv¢æ4ýŸŸ·‹b†Yê…æ„gíxTWÆ®òØ] —÷œào¿ûʇõ"ÑT’(‰~Ù_¿FĤZ“l›ÖÔ‚…{4'"%¢!D¯J ³eÁ~ýì0(#2èç´qxŽú"|„ Œ‡x0¦"Лê³b±bšjømm_ž_uÛØŒ.MÏ9&“'¿Ûò3)Ú³‹g.ËGñO6dj³`ú<’W.¡ÿýäìQa >ßFþð´(˜µ{î…ï°‘®¸<?$Có¿¹9³ vZ(ÒmWr¯ÇîŸÈ *’*‡…F‘P²-Ã÷&ïÙQgöE(69[ëD#23h[×$×¹ÿ(Ï]>Nt©"rNK(ö·ËçzÔöKíˆd¾n*²Å–@¹…G…Eã½uo›^Ž ®ÚÃàîÝ0nCqý¬.û¼ÌŸ›é†×BÕ=w·c«HÝ5# 6¤´ô¥6.Öçô3ƒŠ\ª#%±|Ì#|Àý#2Bó[’4ÔÍ#2Íù"z#,:qï,±!÷c&d‘?WèTÑ=úµ™H¶.™DhøêˆãG‰OÚ0ø´0"#%…>©ÙÄîKN¥¢½@ *«2Þ(ƒF°ëõýKöéöýÄ«™à¸•hAºlK×:²r^€—¯Ö쳯t\e¡‚ÿìgr´Tg¨ÔdÙ ÜeÑÈ:¢!匔,ÍÂö¥ÍãÕ&ðœóÛoaž\Öߟrv „@@ÆP£E3÷ÓºøÅ?4øCçï†R˜®€7CŸæþ»à… CÀÖ¤îBJ@×®”ÝÃ#%Ä+7ag81ôʼn–øéXtÍ IâÊHn]I0!²aT67a0ÞG‡#%¼h€À¡´ç¸M1¤°{bìò 2!”doêç¬ïÚdít±a?¥“É Ô}ÿäÍÓ}c<hË>••n~”V:–íB•¯®´CêœÇÖßÛÝv¾œ|3K{¥C>h‘ÀÒÂ&AÅĽ‰+"éï]°Öez9lÁºB~º9§:8B_¬é©•„‹•]ƒ{UP ¼’e„’`«Ú»¹i/HÓ7#,l.Oj­ü:ãç¶AgEçöÜ°èê†ß³ãJ'æÖèÜŸ `/ÞõgñwG=æP#qžZ@5ø ?ÒábøðþÊ<A~òH'§ÝœõÇjÒŠ§©Óe’ϯ¼¾æßó½}tMÖ1ŽÕëFQǧôé‘Ùî»á̪ÚéZÁCìªIë•)@¡jVTÔ¿Fçs¼fØ4E”{QO5pçÚÓÌ‘¥dd$óULÀc#2Hç·{ê±'Æ ¥Õi“Ž8cmþS(k3ˆ8{†ÓHV#,÷ß|Nò¹6EŠI›0—t:ÕQƒ3J'K¨g(H%ÃE7‘GtDÆ8º¼‡éI×øê^G‰Ó@PL!Ø»Øs¬Ô)Ù#2ë£vEúµn×·eQ³Ey2! ¸ˆ‚œÝ†W<„1”ˆJ¡`Qf¡YAá¾7MÉòu0*"%l+a僿#%(1A&×Ç]ß;ºhàÂrr^õ{ñä$ #2gô¤ÄtŽùÇñ’PâO#2B œT* šõ†7L‘C7‹#û5Œ£hü'Ë‘øÝØ”e3ðº{óŒâ~ÛC"a!¨$¤ÉÆÛzáðÞ±å=HÍ÷ 8±3hô+Ý#,„Ü l "Š§Z¡‚“’iµ'Wž1e0ûôãß@ž"ûöÝÓŠWW@U=E…¸Á‡WbB3(ˆe  6Ò&ÛÙuôFËÉ P câÁÍÂø¥ŸÙɉ<ÀõÙ£»ôñë ƒÈL`ð<ò•8“ŠŽOguKçAå#?ùŒë ½%ôâû†æê-Û¤&í±®‚ø©¹^Ö<a£Ê-@&œ9õ„¦SnepNýW/YåæþóæyAÓÙœÐw"½ 0âmzg]%¬$%s6Já¢H—@€^V.›Dwg€ÏR<Ï,IüaÈëÓÞòuZùž‡–©´O”-qŽ~aN‘«‹~‹Ÿr¸ŠWžiJ`89z„Qî@€-˜&w¡oĪåÏõk7›Áb“ÂPÀèI"(ócb“r-îÛh|Ï#%GcNN²¦3Oh4‘»ˆ*H-ãÍÞt,¹?oÙns÷­^´ˆ8ÏR&CÓ1Ý37OõYjìí×ä绣DàÊ¡-8}r!e½Üg:`¼d¬‰uÕ™Þ`ÔQP+&Ø—ã`KH²µ6ÑàC’Aݲ‚ÖQ"Ê<š/pp~Ž{Ü»a®;p¨x›öõIþâãküžjXÙ‰×t%¾kõéµ™ýèß–×!¶û´_ìáuÎdÎØ vL1”ù¡,F<JÒQ5<ƳÔü%~¹é \:m­Íz?MQü¬ „a•KË‘äʧ¹yä³ßƒ²¶OKîu‚.-­×?Eo3à Ì$¨‰#,Æô¶h¯B3gÆ#,›–?(Pq#29dÌ7ÖĵB*@!¨&`(ouGÝÚ#9É$í9ì‹>UÉmß(ü¨3-¥¸/+‘ Qh¼sórP#¡sݘ\‰%®ºãq{;†¢z|Þû*ÚìE8¾iñ’ËqIIh‰ B+ÉË Å<›Cû)^®`¸ýaÍqß‹ÁÛFRç牻8BB#2÷\E&e.ëõ¹‘µZO4¸qpÁ€[@(FB†x3¯\@H‚ ˆyº.ÒëúÃÞ£`;kjÙι?;”ªÆ¥XŽ¨®[so•ã{”I#,&óÂàûŽ±äìáuŒÔ/fôô2<ö¯Í¸#%×mòÄù? ”Ì*$~”°Ò´ŠQ3ÛGCyû§¶ÇÏ۬œ:Ñ—ÖQќ΋Hw*´·ŽîÁ”`é&ÂxÖ ©¹á‘{ZR÷|#2=‘q¬<õñ*£¥p›îÞzÇ&­÷íH#Ñs[9•ûïÛÔ” ƒdÄ“ÅXoòRÄáúm¾ážÞï]FSÕË6)8xLŠ¦7/>s€õaѱŒ«G¡Oô˜T5åÙïÄïÚ?.Éðý\îß3c£{ ž±ë[Û[Gã/yêbBõTÚo>“Ädáãt¡E€ »|6¥Ï^Ü\I@dŸ˜Q6GXºÞFât“ˆä"îƒÍœ8EÖŽv¤ŽšcΓã¸^©z»"S9žÞsÙྪäÄYRîÒƒ[Ö&Mnß*IómRt¨-ôóá¢ß#[ƒ4Õ•v[7¥×'Ó~¼¼KôOžüý²Íª2kM@‘…ìy˜Ý5[z¶‘šyn_o÷”@[Zô‰!û&(GbL##%ßm1œìÁÒ‚Vñ¼¥_F‡”mÅ?Æø2_P|ÆT¾9­3‚jõIôÈ€#° ˼°û–s"c5 äxÉ£{?(l{¼Ý¥ˆ7þ:{s3–•©Òö†¨ÕvïۤȜh£RqG=»#21³ÚRPÆ*lÒ‹I¦Æ¡;ãïÜWË:c ºðk“;ˆ´öà,p¾kñ›¦¦7ìç=k…”z{¿.ºm¶#,³¯roÌŸÕ¸Ý-¥ù¨|S˜Ï™„þ’Ä‹:21ÅNžø¡MTËÑ›ìU¡%=h² Ä”Öyòüßká¾ø-éýãû¥ÊÑuœ"‹JVíÝ¿:ví^yåy˜—5¸«û?Ýÿ/¹ðÚ¦™ä”¯øüYuÅû*¡ÿ2—ªŒQˆB½ÇÝýχ¥iª:úPUTõì#%Ÿßõò'WŸË)Ùù<<Rð?¾„ôãÂò0€Õz[ûÅ}¥xµ2þÂkodø(#%ê>ï¹7ܾ$öyüÌñÀ'Á•/”¥¾Aয়B AWÀ€å´¤z@¯›¯g5Ê®rñ¥×8ÎgvíMÄ?3#2!ñÚÏ!x/²Œ^¨‘嶹Ջ¦ÕºYøpõ:1ÖñÑÌuúõØŸ:õ„/>>¹bþ5NP¤ÞÂG¿Ë¯‰Žf¶__KW@ÀÄâ*’²¨ßJš!ÚqîïTSlÄc«fªV…›y΢WÓ>4ñ¾UÀÅ5‹À"÷† ™§K¦ÄôÔ‚eé=ýÖ½Æáz—=`ÉÁ¤´¡™ì°Ý¿ˆYh6Gôž:#2*_LIÛ§³ÃõNb¦€ÉÊÜꊂ¯«"i(GW¹‚_r„™áYŒEu¤I$ù ³ZˇÃîªú¾Ë8?—Ù×Ý­èàTJ/¨frÐ?kýš›_§»ýä<#ý=,dÕW´Çù“Aßáï†õ}èC„þ'`YrÍaƒÖlÊt2Tj J ;T ˆtˆY‡µŠ‰”ëˆäß[b‡,ÒÀ"äZ\, 7@¾¤.!f#%[e,ì¦#2Ù2¢)¬¤±‘$àér‘ÑFéAdŒPs(hàÊ‚f:÷X_›€Â6ƪP#dÔ”i´]Âéc2±˜ƒ¶,‰aÂD²©™)K5@(ȃA’›Ÿ-A â¯ô!BÛ=³Â?%_ÝTÿ§n¿ ýCÒRÌx²¨ˆ EU., `FzUÌìÐúêø×É1@ ¡°AÀWé üæ3PŽóܬ….9XÔà2!°ŠšØÙô°vW¤œÙs·ël"w ÖÓå6f) k§}êÓøEçÖ‡ÛÏXÅgQåHJïQO½Õ= î÷ý\Û9ÔgMoÓ†r#%I°1·4Š^ûn•Ï¡#£’·¶¯ÂÇ~ðR&Þ(“†`<‘$dÄLÑEͺÝÞJ1çVùž7ÒôÞ>šÝɪAI-2š'-±GZ÷]Ý÷5½}z÷¸®:ã*ýÒp½¨¥ï¸îu£í=дÝ+ªYÅG¾&ÍŠ†¬F!”S¡:8iƒ5;<­@ÆFI4ô?Q«$7@îfŒÕ¬¡ëÇSâÓQè’Ï @y7gèzÌ6 ¶/U]¶^`—Æ•”NÞ®ál¦>qø!àÏhó£ÔZÓBû s?D(›˜Jö›öAê`!P‰»hP.Ž ‰d»#%äOnvx·–;ËÝâ­4T,ÒYd¦iRÍi˜ Å"÷·Øzι9*ª˜ÒÊ*˜ƒË5í'Á¹<‘…®!œ÷†ÀÜ—#%ª—lCV†,­ÆfÛu ‰!{é*"bcaÔÏHEŠ{K"¾èY2¦Ÿ<pÛ·}EOYãvh5&ìc$!Q8š(®)Ÿ:5›²·€ëP [ŒrH1TÎä;hÅld—hfÉݵYpp“\Dq#%À†ªl(h=d#2%•Z$ÝÙ’R Ãʹ ÂHQ­ÌìçM‡6`hLÁÄw=>s¶~,×óêx;5µSo +!á 9ØÕq#[µœ`iÅÀã#’Dõ<d!'š<îæ{¢ÂD,;ÕYäsuü¶%¦•n¼½+#'ZuÔb˜xÎIÜž÷ºYŠ{;YQ#%”,j·²ÜÖÉZÆ­ðu•dµ±V¹m\Û&Õr«¥µz²%Ñ^MÕc¢‡**‚0Xª^‘‹¢“ef •ÄÈ›ã¨ræìÙओ¯m%#,ÒOJj^ô4´xÝt}د~å›óÀðrÆÔµRÍŽ†<Mù;:‚ÇD‹ƒÏ¹7Ÿ Êøq·‘#2:5ô¨PÎò—ñÀZŸT¬xÐt3Â|¼nH¾ÖÛéZM“hÖÆÌÛHb:‹dê‚:‹cV#2Žrñ©Ã¯ Á£íu6—¼ùrUðÈ¥X¹ÝÉ£@ǪKÀËT”²“$’2ÞxªIIkáP¤¡¹(S’ßçZÁÔO²¿-Š‰<JfÙ›+ç\0nxE¾Ä: ZpAÔ74(Á( cmŠ„¨ÙÝk{íµçö׸ر ­{Ë¥]Û[¶ZúüùSåáYÔwßðq·¼}Òvo. x±HL“ w|mÛŠ°¹6©ä£!Õ’Ä<†ø2‹‚ ³2¦x†8箇]»ïã1òÇg4c<Ôe«7d6Á$2“‡oË—Tß_5èŸÍç=V¼7à$•9òè·äŘÖ%yRZQ#j‚RKDÐ cö«×·÷rÔ¡Þtæ€u:‡„cHñÄì)c#%4{8Æ’ÄG©FÙåÆ›ë¨ùüHˆi… ,’Ј” ï꣥YÓ&‰j¤ŠÈ¡6µAÃo.9Ý;fF[¼uÎܱX Èa•Rsˆ'o—:H èzq–FÌÏÑÏšŽ±î—Ûü·ÊÊGŠšªÇ‘<}è($(*½F1`ÔR\®¥Ã=yy¸ë³UÝÒ’X‚ènc/]¨Ô÷û»áe0.ã¯URŽUÛЈªXðÔ`ÙÏ…‡¸K?=UÅù ®ú£}Oµl^ÀWh»FAPÈP3›hO'Ô©¢WÒ¤”$C6E†3Ë87Xd]ä#2­èmóŽ±2c uscÁÃ;¸œ_r'φœô#ÖÉÐÁfÞî,Ü ›;èΗm0T&âS+š¤’a8GÙ?64Æ1ržÍ/xwÕ›#,yàfü±ñ#_jL ª2r"nã2TS¬Éa0šFò¿/.ìdñ£` J%¡6ªE@ÂfT›÷è<ª©‘j¸¶#%½3:h ã5Qº¬Œ°VbXµD¨ûúÕÓ­Bà„#,.”rªü0Û}"÷6\q³6š»–n瀑$[`Pß MÁûxσâ»Fm`rÁ P!9ÄP ¼L>íÛ;ÅÙ^ŽY5ˤÈã‘’6NëòÔ®Ð4H²ˆÂ, yT)Aãs®êãÛ¸Èóלò2™0Ñn§Ócyô›o4vÓ;;Š‹tâ9ä‚_lÞÀÐÂØO‡Ç‹›e<jQ`x½dom¨QUÍóçÓ;âHs¦ H¶„¡‘´P¶a‡eâɘÙP"°^ÓŠO#23˜/s\Õ3Ñø'jÍ o wêŒ>Y¢vJC‚JcÚÇj‹•ÛdŠRAÉ¿jš«Ö˜à'„=2gBkV.(Ñ;ŽèöÚKc¤Ldq=F8ÑG((0UE‚ädQe#2¤:êk¯.?¡iÛkÅÎÐõ£§U›žÊîm”{ã¼ðŒßfm4¹Õs®«h/l¯¾{ï,yòýs‰ëõù¯Z桧•£ocÞ0rt3é,4² †&Û˜: cU:çÙ›ëBû³(‚èû!y¦mtØÀòòŠ6¡ ’O‹ý×ﵟuª7•&Ž`àFkzúf¼‘ÔX¹%Åõ_¸0»òN:ÄÉÝ:!Hi Ò蜎¥MÄÉê*…ZÙh~Ý”1!ç§$H±eÃ:“…n³ £ºùƒØsª†„áÑ5c_óÙ×<4®šÃdànUµˆœèíÉHPÊ1‡¹»!²|6<Li—(SÄK<>BŸµà+9ú¦¤ÝÜó·‹ðÒèÃC‹S@™ÂJ wE¨×¦ò‰-QX‚”"õ¥#,-È–£uÙˆbØÈuø)`~㶙%‡ ¥T9™l àüŸµ#2ªÆ€nx!›=tÑ+­4¾q Í#,vg¦¼~W£_#,¦Âxõ)ÄÛ‰'ö-º×s+ÑÕ×pÌìϱÞÀÝ#2Ï_#%âÓq5í¯)SÀˆL³6ÔòÅùžã…×hQÆr ‡(¯B !”]‘7N$in²ÖOE¡k–'Z.a å±ÔêB‘vÚ䫨֖øÝ×jå¤eE¤ñnÛ&“&ScyÚÞã½6¾Úù{ç]Ž6@‘³4wÊ3tõ«¡ø%lG†e›£$9Ê€mv x¦a;÷ûñÏ*Ƚœß¢²m‡fûÔÔÈ|«¥Š<¯xT'U+92 4áCÎËNúë à@õ¥=Õ_€ëŒÈº¢QzªwÊ"¡¬½@ç#2xÂþÞõö~»júüyRÄ™­˜cÞîtäv#%6#~,Ø2bJ¹ÆpZRþ–ºlŒ à–>ÁÛ?/v|JOÙ©iþëñá=àûìÊL=h#2²AQ;%¯ì£âˆ”š„#%ðÊ#%?/‡6–`áöQågö`í“íJРõ² Q4ZÝ+qìÅìªøÏ×ú4 ̨Ÿ;ì߯òÔò#%L²#%M¯e—ÆÅ.<hµ¹y#%'f1¼)Ϋ2j‰êí ¥TôЉ¦Ó÷²N؃ôá„ó$ƒ?ÒüýÓ pÌ|ÍÝ¢{:Ž_ Êe%A7â~8–-¬ÓñÖß·ÞÀ1gQ7Õ2PîÅqð[`]a˜o>ãûDì%¿eÿÅ V´§ E_áý¤Ý?k#2AQ’#2CD\°´Ï#2þOèõ]óÁ¿#,Ãî´ñN^;üñmYmΉaûçc?£«#2C~µ I:ý¯ èuÖ^çÇ›ŸÓÆãª4í½3!ô·¥þ£úIý®Þ;zµ^xmÈVeÕ *ýÿãþï/¯õýÿÓõËñ‘ýªù«ÿoùš R’²M­ÌÒ±œãYAÏ„TWóÁߥõ,(·+•©pyëZG~CxDB€Šü#%)—vygÜwåZ¯¢izQ ýyºùäü}Û37Gëhåã¶ñšÔW7ñDùÕ}_`H³ëª%Q#2„7½Ûú>Þ='¿0G8‚§Ûÿ¦¯Œ³i¸Þ’Q*°¥å@qgëûwœøüqûlºSáeøÛt×ýŒ^,Q¤/ó(2#"ŠºŸÔØÊ’•õxߌøÇÐ÷{½3pô‚ÀRJ£óAÈ>ö{@%Ê@{“MtܞѾõ¦'ý25ìå×YgÕíí~“g™éŒ/uDç|B_ptÄmWAuЦ]#ôv#,B›54Ò¨1*:íÃDŸ“ˆüÜ—ú‡þMà#%€®àÝ=z7¤Åö#2DIg±ÖÒ]– ¤ºŸ}zç|»ø#%KŠRÌÚdÝ›çÇ|I7f‰ ©Ûñ•aÚÖ{xbï‘Ó)þê×Þ¾ Àmz|©Fú&y]<"z$4£,(õµ;¾ÚО¨²j˜Å:Ê>¯o³g¶ËOu ô•R—¿×õÇŽØ}òˆ6Æ€‘`BF S"Pä/ðlëúüÎ~™^}~‹ÛLLNã윿mwc«:¿We†£i"¿GtO{˜j2iì9œ·ýŸéÜgF“D8§ô&Ø¥Œó©BE‹&¬?¨éϳç¯è¾Æª¼[ëÕÂN`PbtjÖ² NN·Ó³¨]ô#,·y¸[ßûD°æ—„aÌ4f8¢zϧÃX7@j¤tgÎ~¥ÕÍçèõõoùìôÏÄ°ñ–$¹–ç+´/¢câµ”¦ ©åYôd!#2*¥=æxÿ0ë#%”¤V6âb|Tf#2WðfgÚæmŒJz·· Ô·®¡<¦@¥^¤D+wh_%}›ä.¼~R}>¤±!$!g]Ž¿äáô¯ÑÐ.†?9¢3ºû#°Žî•R #%zCʹŸÎ3óêï<œO‡AM®\ðšý•î”GVÐ(ý´¦y(@ÚÔË,„{ý­º} wÁ~’„ŽûŸúù=û·|nh¯g4óVØù þ=‹Ž3>šqÜ]ü l™Ü2Š¶:'ÍèýY+õiÆÇO·½»º[œÙÄD¹¹à¢“ºøRHº„QÞ\âÀ#%D¥€ #% |5üXÝèÚ6<D3‡^¿8òùü‰S4T»OÑ–ýx®´D@#`~˜\°:òº#˜„A¨ûu(¯hZÞQþ™|=;wiøÆ6'›@†Ø®ý—¹·Ž¨3•D}¶™)l~o¡Š«-%JU Aö~5\h½P&ƒ™åRÝŒ”lå#,ëåøþÿñü1Ô}‡ —n›´ ÚŸ$˜mêóQR§<ôé#2æ{ñ‡YÌ(æHã‰$„+"¡O àÂH½¬ÁÄ #2Yótc‡^žÙ<qÊ‚Ÿïwcœyßo~u—ûóÅ ˆp8ûßm[Ãñ¤ðÚsFËïÏ”Ægem[a§#2“¨ž3žfžð©Sâûuü>EúNBÁÄÌ&jBˆpº€¥ÂÀ·aW­îey„cÍáŠ"4˜k›ÏËVr•/§±wc€#% Ãaœ%<j÷=€ÝÏשÜ$©ÅûÏ·÷Ny™—#,zžÍ>Õù×ïUèPþTav8•Àd3¦ÍªÇ^[64^ŸS×sžRÄê‰ÔŽÉ«ëyˆ\ÅWñ³èkù6Æ?³xâMÍvæ0ó¨r"¿j»zz‘ä¬C•¯+Î~?žä#%÷ª·Í+]ä\4zõFÍöèñ€ X¯怞Çs_Ó»Å_Š¾nî¨D2Çéêz>Ç÷öÌl»/FzõYÃk#,ÙþB p¥—§?ß9²&ÎÀ`‰·á» ^#2#%¿¼|J'öíoá«ã <ø»Ö.OŒüt9IŸCê@>%sϪ€Z>7ÕÂRE[kãgØÃ9ÊnL”W]ãÔ03ž©{!Î뵋û§äXÍî¼5à‡(Ȩš…f5ÞtBÙBaÇIÂÕ’:¦s‡K=·íýÙ^}L–rãWú¾<ر*ñŒ_ÒæÁÁAÁFLÉì>`ðj)Fy\ô‹—‡…÷ßwúoq…¸‡1¼Qq;ãË5U^)õ\þec7þ)3ÄÒS+ÏPhÅu·¯cãßj!%²§´º)$y£¥êó‹ªO×Þôè¯+ÛÚ³—êøÞ`Ì¢ûKCHî!Ñ¥ä´ZkV<—Ö½ñŸïÈz™Ìlçhu³îAÆù_%Sw6˜Šîþûq&S"*Þ™;ïc¤¥oƨÂ]*ˆí¦Ûo}¼” e;xó@<‡Š³G‚­Ï#,ú´Eë|9Ÿ{¸Y>˜q5º!rñ ÍÜ‚^ Í÷Çãæøõm7khúUÖ[„—‘ÐDéM69ò`ÂQk"åzJ¦%Ì IRŽTy`¸­ñ´,y¡FPèL*3(#,ÝàtGÏ(Ç+†}ÀüÜÞz; ›A^[ŠÂ0MÆÇ¿ž*waFš¸7Ó#%÷Ðhˆ}lɤÿ¡ƒØZÃ89¨=þ>$fëåÞ/ÁÑý/ǹµ.´¾M¼ûîÍ*úIœõ^=vrÓþ÷„ÊÝ,­þMY|¬WšD‰©Ÿßµµ`횘:2Š‚ é)pe7idvÎʽËFU„Zn²WÜVá5ù`#,_+–]é &‡Ø$‚6ƽSërÏöMÇ:\YÖHs–ßdxX-f¨|ÒŽQ è¥wëvB¯ÛÏ–œPg3—w[Ì‚®”Þ‡wgFcÏ'º¸3ëzgmœœúÅz¹1;¾!ëð¬Ç_¢œK‹H£·MqÞ³®×:§¨1åîŒÒ²¢›Ï)ƒËÏR”ñqêv›ÝjûƵüòņÈvõ»•Ó[40½©8Jõd¿Vþ­N»”ª«£ÙDuÔ ‡ô©hØOû¨—o¯œ¾½löyšâÍ!Ì·ýªà0ÂÕM¾Ó€º…u«@_v§°Ôª àXä¬#,ÒÙŸž”G¨Ó>Eé•’;í”à<+˜¬ÚžÿíTSj¢Ô¤ˆtËìæ¡Æ­ˆSí9Q>Ñø³ á¿´¹³°˜§Ûӯç4qONÑÔ4Ê)ÍDŠ_äE®Ôê<·5ªNþš7Îåí}uKfs=}éØŠzÚ_CŽ¿|hŸmseTåôJž?d?&·úëÖ–u]g··c¬žQ7nó62jLKÍg䉎šË±¸‡„†uèCmüïzËž8­øÛ>S¢ØëN°áBt(Ž’N碌΄Œeþ.â›høEN ¼»§t[áЕ¹=™üÄg6㩆ŒvŸ—éÍtÝùxÖN͇$“ …²™ãÎó®æ²ƒ9…‡xIEËü·J"­üŒLªé C“k÷LrPG;AC•?–³>/9Ïï·Ë)kµÚÖ éø¢Ð#2ü;9´EMIÚ±zù—+À~Û×d0zÀŠç²çOœæÉ¢¨;)p ……Ý|ºš÷Ø&¨ê=QˆØ­Ç9Õ3f·ºc,÷þ4S‹64k½/ÑÏ:û«"êÉÅ:tùú¯ß÷t¯GÀ¡³X©M™/È]‘Sü‘J|¿;™%Çm·Ë¯Ã#2ÏÂ97$ç/·Û)³üvsÉzÎ¥­<‚vÉ[ñ‡šµ˜xb1ê(èï“ánþúª>•fÜø"-?k$µWjÆ!Öôƒ¥Ü|‹‘MLœŠ÷)»xü´zg嶾tÜ~;pDÁÄ;«Ú+®o´èâ*#2ýïdrm~v×n?Öî&5´J…~è?X ³Ìvxd~ Ô¹bQ€k°iÞp ³VWÕÝÓÁËŸCl,îÌ!÷hPñû|¡‰Ç¦dñ¨Ÿ“0wÎiÐøw¾s!ë<G’Òb¨Ü¯ÛøaN8ü5½@þíÜ2eHã¡™hÍ'  ŸˆKwñݶñ. ËtúÈ‹„ù}Ñ|.¿–òÿœ5§ò“¬ü´žÛQzmƒz1Gº?ÚšŽA#åDyÀ-Œ}f}ïÇÑåBâiÍHB8®ÏÐáЖ_òW¹.Yß5nú{nðˆ|}ú¸\B œ!ãÛ[:Q‘80””ÀË°ýOVdN ê–Ònà0¥}L§Ã5c2|u¾m>ÑÑÞ±ðü ôì Ý*5Ô»Ž5hd²î!^ ÖzÌrá¶;8¬m"ÁÁ‚Ø[ŽË¦.Iœ<;h‹#2¨Q.AQÁƒ´·‚xoZÿMS÷QB 0ÀãÝFpqu&÷Ýê¸m‡gÛš1Ž9ÅþßžèmúH¾?@‡†EÓ¼Ï?>××wíQ:)þ$ø/KyÎi6¡+u´kJª¢ÕE‰B¹À¸ÊƉðˆP¦úzÅ¢Û!–ªÙm–¿¢„ÛiKˆ»eïAxý"¿d`¨($æR}#2yw:De Øq Dl‹MʨZ D]Î*çDíCEÇüc¤ô¡cÒžVO¸Žûz×Ñêç’cpÌÚUÊUÒ@‘ ,ZV#™%ý(äÃ='âëg/l?>ϹÃâE8ꦡº¸Ñ¶°8Ân¤ÚP«4¹=ŒÃ<Øx9M IìBðQI€lV) i6ùu³õc†¸^Ÿ~È|ã¶Ú×¾Àövu_Y˜>LÔžhó oxÙ}Ò\Ù­B×1è 1.6È þ0 .ˆÛhlS"¯“®cR(ä?—1Go#2Š®ª¬@LC¥Qx’#%r @‹ÇM·v’È6|NiÖ!O_–P5}œÞX8>Qù#2”…× dguAX¯|¹Üá\iWœÕÔ­ž/†fx˜©Y¾ëp®f(Uù:œyáÃÓC±ÏÓ4 ^¸5EEÁEà#%‚Ltg§ðœzüØY­\?±;_ºò"à{^¢#%qPÇ:¯cœè=FñEîåüX6~ßÚHa‚dkôq@Ow'q¨ƒ÷jŒ øžáý–sÿ‹ŠpȤXð)?i#%…„ H}Ü<ýó³Ëê7Ô¢¯õßë$¦¾Ö/kE¨ð~Ú´óû=w3?ŒýE²xôöú¨uWŒ`œõ]'Ã$(oíÿiüG÷œ4Õ/ý‡+xÌÚ±?×/øpçðö†M ¯¹1R05+È)ð ;u%ào= 'ŸÎŸèçM]ÂCñ¶ßZóqü°K^‘#ñpî–=Cgb¹öýŸŸåíèÌv’AH½ÌGGH`®Ó¤xEî:ŸW>pZg(”ý‹¶SWõH*Q/ùG‘oʃôu…ˆÊÁDÆ®aÂjÝb(ÛU ¸ú!ôÄi’D©‹+h¯öÿ@äÿ·ãŸŸoOEܨ-c¬?˜¯‘/—òˆè#%ÁšN}¿Îñ 4°Eõ8,‡Ê\K#2SÆÂûßôûž¬ï™zÀÕù7 ºZuÛ¬xdºJ{È$FC…SÞœ¨Ä‹h¹;žãlíuqá[gÚgæê’i‘vˆ ÝôßÓÏpÀtAƒî»VÕ#¹tšÀé€?8N5\Ëɤ7ßM{¡σv/3óÄ8§5AÞÈ\ì¤õæ^‰-zcž¬û´êÿ§Ì¨ž²C¡ð×(H’HMPef1¤ÃA¿ø{©W‰Ç\ÅÜÂ@XÀÆ\¶%AC¯_Ž¢5äñÒF¾›ÐQô<0àá,ÿÌ À/R…(1ì,A‰Ö¸_!}ª¾Å'Ì|û1nCs2 #2 •#%‚EMr ï—¸I#1;¬5M9å¥Ë¢ÉÒ&k)°°EÑŸ;œÊ!ª]‰?¥9#%[ ÄÞÓÄšüôP)Mµ1é@øéDãÙÜÜÛú9]V¾¼¢²ÿŽ_ ûã4Äú<îÛXG‚é暉+Àšëï{³à–Ke(Ö½#2¦±©0½Q,OùIý=­°¡`᜛áÞ”„nŒý?N, Ò>Ë9½íPïÃpÜM3l²¸šòRw>LÃ)Øpã8쮧â`wc‰ˆöèH}yA@èÇŽ9jW$±ÂO²éƒÑ*jW¶ØÉÐïÉ…mïãyÚ–Cò´ìÛ(¡*NÜú#šhŒ£4€¤ðÄyÞ¥ñI‘Ç#%‚m h” Þµ@qÖúgÑâ6#%ý3TÚJ#…þ\ÞU#,>”ÕÏIÌzÛ•œ^án;ƒ· {$PkÏÛÏ>n:ÃkžBøE³±ú¢ù9Bƒº²•Y·™ …òÓ<tG²º/¸i¸ ê?¢„‰H‡ûÙgáÖ¥||ßìçG¨BÓJ Ò‰žUe•ì*Óó)(ÂZ¡þÞÎÛO×ú^÷o ßã1¿x\†õŠ b‡Zé­aø<r?ßÎ0ÁÂÂ’ßÖØÕ7Ü£Ç%˜ði8`ÿO—ã;¼ŽµàÊÛ˜—û¾öW<T‚0Löã¦|õм³WÉ¿ÌxÆË9m°~}[ΧíÔÕÉݦÖÅ•÷õYÆØ"4oËm‡²”uÙü6/‹¦pþòŸŸæšÃáZöi+ ‡:‡†ãõ“øNCùáñ‚Zck…é;Ù÷.‡ª`æ¦BW]¢—zˆ¶4+ƒÌ§qŠ©$B1ÓH©(Q”—}XÙ`}Rƒs‡lÅÂãfžj5°¹yv*ÑܧìñÏ 0ôgb]âŽ<Ë8Sw§´yD1Ñ-#,–@fBçÊ÷)Häê önøç ŠÛ¯šßº){؆”‚°}iš±â‰™6úÜ{-–KsÇ•w´·\'ÍqâÎËFãndn<‚i†’±Y™ˆ1îÄo0i¸£ãxtóÍ/‚¢Êù44! 4¸ßª#›ñ¨º×üCœfðEúáìŽ}.¦Èµu©`¢[YÚžÎZÊÓ`vi‹A¢2¥<õɨôZ]&r®æÞ[=î©}sãˆU¥—ª]ËÍâiöó[­a\Óˆ?™¾z4ù{0%)Á¨§Í꺟Å#)LR°UÃfzgt§·1¶é¼ÞqZK ÙÃ_•úü%ÉééÕIÅç WDßwÆ:Y}½ë‰ïÄ’LÕÙuDuÏh{Ùó²I¹øÝl€æŒWX—Ô#%¸Z kì1{,3V³#€‚ˆ#2àœæ`—Ñ-¶™¡L €˜7ÞyPŸ½£t@ÅQר¨èl×\¼Û| ®=Cœë}Ú9ä&Kˆˆ}µáDJ)6½}ÛpÝŒ,)@%XMvþŒœ^ÂÏY5?v„Naæ|ÀF±•aÀ³+‘Fçó{ñd¹õ~6Ó`÷[ì,›R¨2ÊjÖP+ikÔQî‹ÑÉV^Äs”‡Ú>Œùÿ³ð¹~ÙnZô>i?'ák|Å9‘ðE#,8œúöv'Hn˜s×ìö´†Ö°&ÒáÉS<ÇxtºmÌøjâ\B-áB´s´ÁÝ:öæ? cS=ßSêÇw†N¡×ÐqÁÕ‡ºzvꢡ~È6ÓòîÏáX)‰#¤”™¤Z÷èŠeËþ }‹#2–tDZ#,ŸîWCl—SÏW´·§g =0µ€É+A7¨) îôÒùþoœRZÞ3­Å#%ƒ`ƒ¸ç¸]˜Ó!hi¶ö¯®·^êœE‹T]rÛp²#äù}:z²¾”È9@¹Խ͠{ ‹õ@+”ýŽi(sÕ#Fn½4ìÖ<ÕŸ©V*ª ”á„)ÈifK’^ºw'“ͪíRJ°¾°*ûaÂ!5Éåúõ…`ØYèöx¼,KQDJ0#2Ðy½á Å#Ï785ïaÚ$‚P’IåeÉ#%…-ÒO'W‹fÛüâÛ—E®ÒB*£˜oÐæp¥_†¼Ž[²5Qà€A¥÷ÀwÀy»ÑÔŠò- 2«TQ4óU³æ.¼$ź€aÚëî ’ˆœ¶Ló rdŒöÌ']ž"ÀtÚ×¼&É Ÿd0ÝJD pã­¼^9e!$ 82È#, f˜®õñ4þYéÜ{lAÒ2aêÇj:»;%ã–£ÐCª‰ Wvü7gÿµG„0ýŽ`‘AS0º;{ÚUR&ƒ‘nFº¬YKªpÉå8¡ÙÐk#,žh™îãú×lz]ð}õBûùxò¯·Êk$ ŽyäëðÀ`lA¾ÁÙdí:æµp•lïÃ#,&s\]ÛSÚx–hÁÕ´xÇ÷¨Ûá3 ° ®é 9å<ÅÂ9 Å’”:1²ò#=RÐív¬w^µú_¸Ã1ïm3¿=;šK†x‰9¬ÌÊ%d°¦j%AŒ†ÌLS#%œ£dTL¨‘P/"r›=¨)ƒ©“zLÆíGv¨'¸t|5ªã”õ…m'^Ö©qXfBæP Ò¡¶VfnÞ¡Â%21mîÜ. ȶº6Ìqv‰I¯|ƒ_ãÂ2GOJô;S·Å}ª6Ëf½­g¯×'\±¿t8FÉišÁAc:#ˆdñhɪ"Ì5e±î8Õ˜:È"‚—55¬:¼™Ó¿ÑNN¦ÂìÜ»W$”r‰«ù|\Ía…ý"}›žÊýä‘Rvm¡OçW_|C_šxŒdK}V‰c*×c¥BüÍïóy-Ųï±ðIÍË¡÷•êŠž9Ôï;ú=o¤Õ7/Ô¨¡uÌ4œÝZ^åñƒÔx%¦ÿ¯™îE·›Dbæ›="‚£fWÌhŒefKÕ m!óèU,"8^Ã.Ü5í®ÓÔ-· •pÈë¬ÇdEñ»¾àÕ¶+’L‚Ǻ³øvÃxu¦Ð* #,çí+{XÏ âˆH¡­ý" «ó »çA=Ý£ÂÈu!ÊÄé`BP¦ŒF‹ÙðƒXí{²…™>ÁŒ­±Éu¢ÄìŸV=öQE»ÂNsô”VÁ-hµ#,D@| iÕAÆý¸¦ƒ¨BÜ"ƒ"S'Eg7ÈÑÑ‘’m½xhhÛNfäCcÓÓ #,h@€•/È6NñjÀ«r"VË©ÜÞ|Îص†Û–Þ° „†£"::Ÿb6ů}’ˆ°Ö(§·º_9ó\ì3V¢¡Z–ëó‰Šè¾´ò+AŽ­u#,²ŒŸ¹ašâÚoR-½uH7o‡dÃÞˆYVLâýÙ²ƒ™m w:Øh2Q“³·x®í=á(DßØ+y¼puKÓD‚à!v#+à6RV¸#,¹ª'I@ãÐm#%Ö9í®GNŽcnbàKiÂH=úb#%ñnçA)ãÆØ¥kNvŒyÃ…ÛïN`óìí&²8y€‰I(­ñì…â —ñ,[‹tòü!Òß­'Ü«Ê Ìd<·‰Ö‘¼ÌÌDåå-JwšÅól×à"õÀ«í–Øhdƒ:\4¡nE¶Ñ‚'ɹg» ^xŠ$ƸãbRÒp­¸ÖÔŽGŠ5âí±2’xê꺉¬pQ~Ýpw õ#×^·iP ´M¬h˜„ÇYAlD¡XÈ,;^–ŽÀ>O*/o¨¿·Æœá#2Ej¸#,pÀC áÀ<)Mg†¹pÖxEáÚüf£ب·#%<*&ùÜÐA@n~~~·á<8œ,¼[ l#2 È·²"{çvÊŠÎSǯªá«Ú¼.Z¨Jj¡–|?‹’[ê]Mt™oÛÕÍK€¾å·i>éÇ¢r²®.` MŸÏïÕ³ï÷û¿Ì=ß“@¼Ž„íô¹~ éý#%¢(üš  'ý -¼ìé>VJتiÄxÐI#22Äøð}\#21¥P°DtªÝ”(Ó8ñ'†ET#,àÀöüAwŸ5-¼ZûñÄOáóVÔò9Îf¡»“#%|'Û¹yyBÌ#,Õ£N'Òe:ïÍŸ£ö¯_ŽîÞ¾\߀øçøy”ì=Äe”?€o¼Ü?D-#,යYàØMfÕÿÔ‰þ)ÇÙÇ#2$ר6l,Üþ×Ê×å×Ó÷ÿ‡ŒªªÎßÇ—ö ‡Ûî¿ápl U;#2¥8…DAƒÞ!#2§â‡±}ŸÜ#%ñ3ÿ–û@úû¾£ Oâ€~°(R…,åñà z†rJ¿üy$TÅIþª¡Sý¯í%Ô²ŠwóëWÑ?­„ŽÁxv#bQ` †¤â(ÄX£þ+B`vjÏö³úKyg­îí±Àú¡vçv…†ßí›ûîšÖáýõÒ¹ÞŽc€ËŸb0¾î®óx©©A3CaÚ— ï:Æ]Û¸…xn4©—ÙâŒrk¼òÔ8”*ÉŸøLcT%xÅù)F#2†ÃeÙ-uTyü|ƒ;ª§`xµÑG°{‘Ú€ÀÞó÷_HÃáïô¹Ñ}Ÿq¢èj†GÛíGlVÑ_õÅRȾ!Ýî"v ©,´ŽŒ/rçòÝþà¾i¬¡Ìiìm°.ìÉ#%r5”5#,rN³«ôlnfž÷/1Öƒü™" ¼ü¿ÀºÏîû]MéÒÉìÊ ~Èø¿ðU°«³øœ_9æ YªBÝþ o@0 |Jôƒ‹q™rIßLØ+Õì‚É—öÞ"8¥Ä (#%¬YB²¼Žpû£úý?œ¯è¶ârô°kmd#,š£ÙPŠ6}|Ú‡ÀTí` 3´²ÊãÞnŸ„çÈ$ A’TÒ¥‹¾ô%Ãê„y ÞbƵ%$ù¾?»o!|˜e ô1‚¡þá°a <BÅ#,µø†þ¯Ø\½6Mû¨´h!f K”åÜ0“e#w °#%ý²ÉHm5°ÖîE8‰ãá±0iÌ-Eb‹±#%ͤ16Z‡ù'P8nÊõö/µ³Ô ¿¼Àφ•*¸Ü´=æùýþAâåÔê{°èÞtímÜ µh þòM#,ƒ¯Œ%Ó1ñÏÐÞÙû;Ž´ò°¶6EAº–#,†1uÆD‘BA…¬Ã€åè{Ü\kÁiJ0!dìöÍè.d'%{¼#,®c”ì×báÁ6˜V9'Tï+a(-­¬7§Ùó$¨I÷W•êé¥#ú¿Æ×þo¤Še‰HÕ„¾<½Æ!èð‡Mö H„š²Ë61L•þr÷Óýp>9 O°#%@#2éÜ]k"M~˜ÚŽw‡ê²¿Áßš£ l²vFl}&Î ??³¹æRÇý—FvÜ7aב°±`o¾±f$=#У#Ãûêñ'#2”0E#,%Ažr­æ”J"ÒkmbƒÃå!p †¢+$‚~Yõyv§#Â’•†wÃÕ@{%WÂß SQ_ßÙ[vQǪ|þê<àÉ‘¶:0ÙY¹š¬¤Ÿ™ìÓk ºûuA, àŒ;¬qù6=È&@Sj[ñDyÑ>­¨Y:èZŒü "1,ÍN†RQŸfKÜ#2‘#,æÔdŸ¤÷x›¸ºŽ"#,?ã#2ª[pÌñ”·ç4ï* *˜D¨ uåsØmos¬!Ö¦‘t¨§úeÃSžE›Í•û&ë‘›ïxå­ü6°4ýÄ[yñšýüB›}!(×<r×]**êeç9ªUU5ªÒ>RižÌc‡#%öœ›÷:÷Ü?Ì{ ·¼éžàÖô×#,¡2C!8:–Z7;ž 3e#,ËsùgL©Ø–m“ŒÉ,]ª)ËÑoæ3Ûóõгö™WâžueàGóŸŸ×©æû‡Úr;TŒ×#2,ûʃmX¿Õ¿è\ˆú¸ˆ6˯¦Œ^¾GèF1²}wUz‚#,‡‡ÿI2p~Ÿ@¥ߨ<‡ ±20Ïü>_Ø…t¨î b{†ÆBm#2gSS®a”’ØŒÛÀ¨à0UÙÜøkÂùÃ.§h:€¸Pd03þf‰E}Ë>ìçJ¾R›Ø11‰¡ÂsYeÎsC˜Ç>QË Ø7Á„€lh4~­à»6‡íD‰‘½ÍÞQñó “B!¢Ž£!5„>‚þOÉþÞhlû_»«¸‚A¢†™éÖ¦Ór}üsAëœëí##,òËœ–¢û+B…ð2@É@u<wµ#%j#2'à—= ã:_}•ëJTÀÖø°ú󊼋Û&BØx .Œˆ³t)¦‚cP¨ â)#–¢š3S 9335"Ó`â¡êíÕë+í#,Mc,º,}³*€°¦˜gŸë×$ᛨ׈¼B员‡sÕi Ñ:CC<µ™½Al#,S A#,ƒ€« ’ƒ#%j'å?ÁáûÇÄŸÏ‚ýX£ò@9@ÀWíÖ!UÚµøòW¤¯Ñöc +·ïpã]=zíI½)2õÛ¶I±ƒ`üºå’XjÿŸò\Änwd´»Ônc)š%u‘µš5šzÖ¡Sl‡Hú³OÉm#,SŠ›¹,Êå)Ñf¤uä’I&j£Mb“2ëSRZZÛiæj欵š¸Þ™Y„uã.¡Ž½aG‰êךÐjÄ45­è¦™º]a‘ï1ÕŽÃA´±PJL«üì”g~Ÿt…F€œ´mE«}mmý_ó>;^Vûr0O©€LÄêö MW%ƒ? Ó£ÉɺUbÄ3w¹ý{«ÙÒÚïÞàÌÒH ÷;B­­+™j’O®‹“WHŒgž]æJKòkõ][ÅC»ÃÚŸb>ï´N4ðàB Cî!ÏÂЖÈ`nãM‡5tFÞi;¶çvÕövñûË.Û2pDÄv"š†ÒJwÔ["t*»Õ–k " …-”›GÝL“§þ{q¾»ln;ã¥éj«8¯VØ$I)¬íÑ2½ó2ñ(ŸÍ<z¥MU–š©5éÂ_.zÍÌ¿ŸÂ19l=1IAJ~ýûu:¢øƒë—/Cß’›Dôoï…¬Y±¼ê|ÑÌát应ÁÛ¹7±I$I2@ÌÑ~ZéÆnÔ¦åE.50 j„môãÎÖ8ü­ò,Î>ÀùÛÑŽ£ßødc_dDôvö´€’»~²µQ‹ýÂÛ÷±‹h$¸Åø §×nGýMúÏ@#bHS> ¾Ó©óÏd³Ëê*¥%)H¢)¾#,ÈM›#%ôÍL·D×q f#2¢#%^ìÖ–T/%(4³¥*&GËèmÏ“\CsJíÐhþ”›·¯²' õœ„ãì,B‚Š7CÒLR…§øÙ Yí†ôN²²7ͽÞAlÖ% ݃#,p®CØýÒ6À9 fÑþDÁB?aqg鳆8}t9Â#% O=~PY6¸þ÷y \‹x]¼õ[p$ £´|•a2ˆ'¾ªIô¿Õ½a-êzÄRÏ¢ˆ*%ö›Q<ìr0}™,þQ=}k­ÇÆOr;@qùÁ°z†ÀYa^ýf ±óÒSAßú\Î;_x}Ðsßå„XÆœ€ïìý×ë; CeSœ]Œ`Ž~p=®Íž ùâÓÀ=â¤T ‰º;ÀÚøö¨$Êd”k¼<¬H"§NªîñwžaÅÜÑ€lz=Fœ¶„+Pg#%sðüJm%OòmâÔÑáootCÈX,‘HEbˆ}‡M~AgZ¿Àt €w¨'¸È g–«éÅñûô7;ø˜Z‚>`t‚Òªƒ7”;8 ü§ë¡õõô/ùrö–B¾cü”}á}‘_°Ÿ`úß\šÎµ}¥êªZP›@öAɲ|¤"nð#pWo}€háã!¬€\`)ïËUùÀ.*žcë} ›¿‡P…X¬tÀÐ’#%ú|¿J¿™"’}}ˆ§dvj5sèBÓÜrû%~–ˆ Í«÷hj¨Ó•ÉÈ…¬Ì½¹Û1ïC"æ”lÒ¤.O#,ð@¯/³×½‘…r¯´öT•Âj Ó³»0¹1ØÚǸªýžS$ú©<xuXCÜs³8郋‰Ä,Xz¡Ï˜íð8þS“™‘GT¡ƒvà^¡x<´¤>Ó%Y½U¨ˆÒ£å% ›‘ Ë?\âmUM(œ8lk#2º¬¢~Z’Ù¤ÐÎ’‰tj>?%0À15QÈ$Š¢T…œuzóæí´2цb×X·#mh¶7°—;Þ¢º&ç×ÃÖ›:rs"™„Uà?¬ñÕ3ÆAdV@ùuÝiNIZϿͧÀðT£(â/Õæw‰óˆÕoAv(ÙT¬ß„çÌà€{ùúž³Ö‰â4ñ4«7¬=€;wðY|•{¦¾ØÃÃðKhò À)àSj©Eîxûþ§‹ûﺿF^þ ©|Âþ8ƒXq{‹­E“Ý%½¡ýïþ3#%þ"hrOß*(ò©(Wþ—#, Ëo#,,AÀÓYÓiøbäÆmJ”ªj·f‡çðñõ?Ô¾o¶ï'ì>Ú<¤09ÄâšSö^°öž”Jãd«[áÛUVÔ‘Ê*æ#2?äLý®äwšžò!³Ý(TöC’ÇÙxÛ°Ùóú¿#,ånèÄ$cU HD…@b>jx§#î/É’.a.pXÖ¨ƒW” æ(ìäN€»¦æzø 6¹0Ò¿O;ßɶƟ~r»Þ–F>zÝü§¾cƒâ=æ)Jô#2 G ‹üf g×+@ܵ’Àn8&YBtöo#,ÿ‹œô~ͽ6ÇÜq$ŸK^úcEZúØ:F?ªhÞÓXfåÊð0Þ¢Þ´‰qø£¦s+P#%m$˜uT-Á#,CÀ×ò”#,T’`H€ÊfÀT7dShɈ"Š2\.Â%ì ‡œEÄF*AÄJ*"9®µÍîÏ’#2#%H:&°!©©kó;ð짿¨Óà%¡X£ü¯·S:• ±A5…:‹@@H;I"WÚ†´ô‡á»MÈÔzu%’‚“¡v#Af R!ÓûÓÐ^ÎâSÔüüìÉFiV}Ÿ„3ŠÛõ„–¹¯oSðùêµðSá×#,£F‰LÊ#7˼Úù(×*½+†éµÓ#,• ˆ+-–ÝÅÜJ„(¦ØZÂ,PÄÿ)Îö»ô|?N’þÐ3MãÊ ³ìóžAì};`%õñº:{™ƒ ~²@%¯Iï"–s}~o4a­Ø‘È4¸ÇaµúµMýÐiÖíBÄK F#"0ˆP™À%œ8T†C€!ÒtRˆ}(⥅¬ÄñRòœ ;+Ó³xBJ<ò:/;3§˜¼[÷Ñi^Cµ#2@Õ£wëÜŸ¦}´RN5 7ö†n:Póˆ°àÞQÖ@æöm(ÛÛ­ÃɤçÌŽz3Ë×;mÒßm¶9¹"í2@æÂÚB h0ó¾«(ô=Ÿ˜²vvàÎÂð¸ŸQY”˜’縒'í7KK„¦((¤„骰Sû#%ü<lBO2J’Pvy÷®Sáï}wOª?¢B¶Mžàú~Mî{*T?ã !ûÉ6}ÂЫKLÌoL˜a© ÂÂ0…¬_qd•d’Gàç«Û|›¡™Ã˳Z A‡u ïeÁ/ !E­Sí7ò>|h¤>„ ´#×G<’:Š#žY9!|úÿjôŒ<Ð#,›€àeBV„G°#2Öo¯Ýúê*KHÍÁÙ·Z<ƒ°ïC$"4˜ëç×Ò%,~ú(î !ìIøCèý0Éëåóî@ötÿ$$xË)âB0®¡øo%hŒœÃ¾ ȬŒb‚’ÎæzÐÂW’@ÅŸžèÙ¡¸Ãgq#ó‰÷#,g÷Uqü|ï÷â€#,רK!™ÓÞû¾Ã,柺BŸñ{OVgê0vb¡Š(¡! 9)Uhª<ÇxÆp ÈOåÂœ¨ûo—žêƒ"üúÑ;TÏ%`1EcÂ2 9©…&KÊp°Æq'P‘&1\Åe „E þ*þ)püH}N4ê õ_0®þçëKeËæ¤%¦ÅZE)`²\\Ÿ˜Á`±àfn„X‡A ÓÈ@ÐÃì ·#,sê…Ó–îãfôy#%îÏz½¡÷<Ã!RسåöY. S#2 žŠê=‡,”ê Ÿ^ß=cاXu‡`pz måS•¤Œ’ð Š´»dë·SÄ9YRx`çd9`1Nœ#%ÃÌãÒ]DPI(3B€€Á€ŸZ w|ˆ£o%7y»}|¡SãÞªMœOf Ë #2ª„ M=X—oÉÁ %Ê,' Á;1`þŒ•+$^DyÌÏ´‡Å|*Èœä ½ÁVÕt” Ôb¼^Þݤ›lI›ˆLF$M¦¶(Ä/]zà·ÃpsÏkðv?¶·?†TÖtÎ#lš1绸UgP=`Š‡*•IûdÙQ]åTZS£RÄõ¨l Û/§pŽ ÄÁºÆRÙÖÀåÚŽòéî«ä–V¬Æã=¾ä‘Wy¿º“èÙÈØ),’IºU €øk!œêLβ@pñ(;®½Yt‡b'TVA‰pÌú´ê´‚T<-ÁB{>Ì®øü eÀ„ä 9 âp]û-³•¦hêØzš¡¥ÖEM`èx'3{q¤b#6ê$¬! l #ˆFû×Kq>PžÀóy¨wwò'RznAÀ»‘‘ •Y•TKH¶sþ¾'3›Û°ì5#»J B;Ïà‡â}{rÛTrJO0àìBŒçžuáÁS(7ÀbúÇÑF#2Òwü‰IÖà­¾¤kd#2)röÁ}˜˜›œÍy2#%~Ø}ÝžŸ?—iiÏîÿ2BÝ5‡ÌË-žïö Ze¶“ÇÀÏêäñþ#,RÓí&7 êo‘œÿhÒýJp$ò+é_ÅG×øBëN¶†ÐÌâö1q£?†‚û±ÆüOÊ€ƒ™ÍV÷4f?õï÷`ÙÙÖWÙÃëÀ-Å [Ì Š¿N¶wB°šB8Tr§¹K\H·¬y F†Û#%]H+.ÊÊjР“ 4Ù†½£ö2#,Ûïa©‚:BƒlŠ¤¨~e¡¼gY“b p,óµT¡ü±÷w˜*÷oF`>ßʆÔ?–+&|"H±‚Èíê{ì ª/rm^IÑåÜ™wÐ惬L„´î6#,~gYÅÝÓVmAÝôý¶¸^¡²z—]Ç*Åá Â/‘̯EÉgت™$ôèdOż¶•¨;î²Æ-•M¸B„Þä`Ž4¨vX,ódï"ˆ[4ÇðG#%rahhôôúýð=íYý·¾<”¼Y#%#2µà„‰6÷Òî»yÛ¨x¯·[iú/×hÞ!›¡¶[wÄÇãê³u7]¼Üm£B2΋N;šÈá­bð\¥ñlDi™Ø¯ð‡Ëܦ~˜ÈR“(CX{’í7‰°»^¹B†‡VÆšK]Œ€ ÑE{ýZçÛë%»ºŠaݨ¢ÄŸs$Ääf‰ßóö{ÉïOs]V°úoC秶‡Ü34†@]>idƒíNéê>ÀàŒÔ#%k„a5/»³g³ï< ˜6Ýð8Ñè£_~¡!&Ö$…tð¿p!äÎÄà“E/oä¿ýGSqê:-²¿¤ú»Ç„ˆcÇk®î‰‡—ä*—Œ‰&Ë‘’~í¬U¦A‡ ù?q¤,ZÓtäüv®=±¹¹ÏX±#,¬"ÓC4N°6ÓÔJ ÓalU6Ù d¤„c.ª @Md[™§è9ÿ ŸÝ‹Îà|ü*šÐBêzN$D~aqûÏMbÉù<ß­ú(j£åG<š·#2k΀´QµÚŽ¡±´ö›|§Óäû¥Rœ­õþ’<|?¨6Ñ?f¨Oó ˆÂo§æ¨5ñ«>•€û¡9@W=K“!Ý„Œ?#Ú‹s¼Ë·»QÂ^p«þÍGÖSY€„†™• è#%÷žÇOèÕØkŽJ¦õ&ÓäŸ8VýÖÆÞ7‡ ZÑ ……IðÉx¢™*1¤B¢OŠ“Ÿ™P±@Y#%"X ë,']Y#,YRÜ :ÿ’Û?l:€Šê‰b.ïwU²$pG§ï>û~KçÙùMXkB"i^[]†ýÒµ#,|‚I-€‚£\ôžÐ9Üö.à´"A–xm¾è¹+0Øž—8=3LÐb<žDAàã 7ë#%J§õìê._8þŠàçëã_«"¿ˆŸÑÉ#,9ûÿe ßöê6˜Å‡ëh$ºË\ÔÍç:é™lžRç›nØFÞ^'yKšö¯Õ6ö”‚ Â&iºÂjO#¡/hq9"ºT"Õ#2+èAá©…¤©˜¥q„¬©æŸö‰µ?·èf†jBÞf~à›*B†¶c¯aj1þÐý[˜ ´ÄëÔ@U‹‰®Rc'ƒ›¢W&]k® ¬g¡øÜÎf»Pº›–ôh#{´[`;.ån@?‘€B²¤;HSz8Á,–%:ìÏö¦ÿü?·ÂÆÙ› $AfWÈXl^®»¾tûõgâl;OZ¨ÅX£$ýî|½J™Žd“¡Ó®r©X/íiþvg6ËØo÷wÙóˆ[F/øZäq¸|ÅA¡Ih²[ H³N53]½™!þcBº¿|sVûª“œÉ`ûOÿ¡¿ŸlëíáºJþ.#%M Ī-ÏÅÍÅmÄ*ßõ­ù½µ˜É@ÓvG˜ªˆD#¸ç5§ócö„N?_B°‰×Oºìa ¤‰´°kEQ ¢À`nå(@ŽÑfÿ‡Ó*Ç ¼>©>V~ú ¬ â#%@#,c„)”Â(výcðâ¡2›!$¤„ß®b^êÂUêúa·;qgÙr‰èõÛC¯óQfF[ÉøÎú¢@Ôù®/=?mŠîëØ}ïcØO¿!¿9à0O†“Ó«Qù#¼wÕ2®†Içþ?ív`ù#2tßq#%øòs[ÄüÆ&ŒÝ,“.]Ó{ò×™6ɾï#%d˜„*6<}¹ü¤ó8öƒ6â5˜{È®[#,ƒÐ_Šc7YÈ$Þø³lÐj|ûóÝj1O‰×yG¹ø¸¸hÖü©¤2Ysxl"™ŽΧlÅ‚¼;8Æ\Ê ¢#2o™‘K÷à^#,£lÄ9<)däíE™“Ú¥ ¹TMƒ0×#%æA‰cAýe¼Ç·=Ÿñ)º1V6D=Þ)=†b.Äw Nçô5ÜLUl(?’wñØBó<9Ñï@‚ ßQÂTo—ËŸÒïQÒÂTÝthÿõgc‘Hm•QÇO©Q#%r€rz àp !ú|í¯Í±KöðU#2‹†’3 ªŽ@†Æ‡{ê¾o»ÉåÀ9ÑáùÕzeÚŠpÉë7>Høæh‹’ÊÔL#2r6_ì³·óu]C8½ÚÀæ(M¶¹T*²öÃ>Ù~u‡¶ÒºÈ9͈Y t®§ÔÕV óq½Øß`1æì:`«ÿo,0ÿ¿¼>Ò®*(çæ“X(ÿ>Ž¾G¦úX2hÛ”lÕ–Û·¼FÌúÜQøòÉPAʽ7Uosüàc(æ|¥À~ öÙÛï[T?Üï1Ý =!dy¦E7Oèx–÷Düóø7ò’QÑÆå¹Dõ”âû¿Jú9…°W6W°^!#%me~WÄ9ÑÃEÔÔ0{}#,%{ÕU:V^¶‰B4ž¬–:¿²õMÕ½ÿ;O KM]~rƒG7 †jìPƱ/k¯Ö;tN®É~gŽ±îe±»10(7VlÇ-*™ºß5Áòr¶«J˜ïòœð¬éãyóÙ‰7ïÔg#Ž™ÄÎÁ§‚î¤îÔ±Bt:ȲX¦eÅ‘TI:Õ³äë©œF#2÷­vg#, t<¸%–Ä#%ðÒ~Ï3®0h\®B@3Ö×:-0ÐÚWÌñ</“fø½o5-{;uÍÁQáIqvsÝÂG•fÜ?r¯½·çÇn8Àx°ÀÜÄ7 ¡tw7vÙb{ ¯"L¿Lá2Í6eå¨ÕC¦ø*å>#,ÛÞƒ„¡ÄÂ’¥š*f¯WM#œhÖy'-zjn꽕ºm‰)…Q–0Gy”-ŠƒÔm˜PE!“ø*жÃ~Ž+ƒÀÌë´˜[«üÒ@"@"Éøy>1ô~izràŽƒ#Qf[;IËZÆ2Ýd‡9¡©\"ÚÖ þ¢üD>i9øÌÞøÈDŽÇÊë§'¬Ýß7½Pu‘}V3IÉíI¹¤H·tOÛ•äë˜ËõÐù=Ÿ7ŸÖîs®ŸP¨ÏY³0õõ·ëNÉ¿¾žå>k<¹Ã³€ý¢-x®Ó5UXðÕ08ó.©PÑ5{^,“×åF©Íïü¹Û1u<_šèÒå·U<‹Ê y¤´Œbi}{ öÍÙ†¨÷iœXOÆ5ñ(êð£ÕŠ1Îß×Þ ìÿNjП“ò§Wl)oz£¿‡”;".ö›ávñ·ÕÏm¨Ðã?Ãß÷=uÝÏÕ¨ñ¯]Œ ³£øG¡õÖ¨Æ{¾Jl».WzŽf€>÷OBb!3”:’+ñÚWl/p‰²D#2–5ú~ŸGó¹dtíg¯Ïpá1×»ë`± æ=†)Š›~!ëçÇo‚q+#,»çœIïš–æ÷ú¸è•È½èÊ1Ø£öIÔP™™ B5üûú\ÎÚaàлvâ¦LÈd„Ýd^äÝe£ys1Øz<ýŸà›;%¦„ˆLÌ„»‡¦í$TÌ×<Ͻrt7Ö>xX‰E|ÿtïÉ´KË·„E»SC°‰˜GÁÂNÞ¬øÛ98³0«R!NyëÙ«(¬F‘z *›ˆó(¤FîzŽÅZ2U"Â6·3 ªÉnq‚õè蘫‚o×!ƒbÖ™&¦Òê`Áª9Gƒ$d#àB"¡!—窧Ì{#%Œ1G2Åwžd@‘O£æôÿª>O„ü¿›Ï¯ú¿¶´ã´!hRéÿwÍ8_‡ú«ƒvá4¼þˆÓÆ*‰ÒÿÓ÷úºÎ´49¿Ù#%Ì^wB¥}ÿ u¹iDLÙAĵIúv}Ïñÿúíþ¯å|Æâå<SXiéKÁËû±‘oMUU‡ûOSê`Â&c#,‹q@tÙ·8@vž‚Àmä¢M·±Ã;tÞ#2.þ—óDi¤$¤HÅŒŸèœ¡ýW'PóÝç6<JjŽFšØ«ŒžLÜêuͤ#%¸6×£«u®ê¼Åñ‡œ†Ol’Á:è !7-Üï°º´ƒK5ðýqëÇÒ›r#2 §÷ý'áÔx#%xáÕÄy†Ð#,1×Ïø®#,(ÑÈ’žŠ†õL‰M¬=¡c#2fbKü†¿í4Ù0Œ“ÇÛknËcr7,%˜‰rg¦ƒ­^Ó§'P.„k-Ϧ±ƒ©Ý Bs<oìJû¾Ûw×ñ¡sC@,,©„’h–eï;§.>¸«òý'œÈQÕÔk¶‹|eËk˜þFD7 r#ÊžiU¹P÷hòƒ\#,šlù0à“•‡_°gÊ)T"j§Hë:¿.áÂL0aÀÌa Ô5† ÀXšˆÄ@ˆ …(Ô¥ "ÀpàúŽ¦=ÀfÑ¥wÓcvqõ†q3XŒËE¥6—Ú;“‚ØÖ½ûݦtH#Ëb™éõê:°Ú«%@ã;­¦ŽâM{úŒìÿ÷>gˆýl|JÅ}¼Ðvèû‰#2uçÝɬ‹—Ýíê½ÒÜŸ¶‡«†¨CÏ­ÝÞª‹3Ñgvàu#%iĨb’œ°„M˜£BêÂHŠÑ³†”ZÉÆ£m•¦6É–‰QƒA ò¨†\eŽ °¹Aû„!#%¡J¨µ!‚U/&Eåô‹ÚÞÒÍfh6‹ó7½Ö•¬þ:o:#®¯ß×t¸DŸùç(}ROœÔCà£jîÛ³mÎÄC¨è’Û<ç ݱ ÌÐîËo{X‹¤Bƒ§#¿Â@³õì.ÝŒ¥ÁUˆˆò¾nñýùÛÜYôÜ*Ip5’¤Ô§"þ1VCšÁ¶"`ŠÃ•‘ÅUíÅm«¼Rñ.ò®ß'†I´r†i#2¦‹µc|©%A±ºIÈÈZ8#%‹hcñqÔ°ÇxF$Ýh –Ý`8–ÌFEÜTóéˆÃî 4ƃi¨4TRÏ°Ö4pÆ ÇŽ½ÖÝìßqôóï,¾"^#%35’˜#,n1É°·`Ùô0Æ- hIÆïºb°$¸gnö”‡™.Àý„vé)2>ê‰Þwnäs¦]¢À:#,o²oOêã+Òª×å…MÇCAM¦wY2!ƒ¬²vR¯CQ‰s­ÜâfRPm^¿e 'kå}½w¹³Á…bó‘N:Þ#qè^+Ú½¥:O$<<D/S¯»Ÿ“¶L%“ÎN–õÚâ0ºîÇ0;¢”­&hö7ZÞu¼o*SŽ,Ž-·–¬ÔÂÉ!¶u³ ¾/9¢)±ÄâÄms3X…Bam²H|MÜ4"qrÿŒ¥KM–­¯7C…³'w”<˜Q'¹ow oäǃÔçMjf[,ŽãXŒW¦A×Y…™Ó, ±DdÜ6k R#GÀº½ŽfÖ@ƒ¬næ¨|¦©£_w³Ý¨Ï«hp,Êg`6zŒ’æaÓË#% (9É ÷õpåŸoÑÓèðíâHC}èXDD˜2D;O¡˜± èçƒÛ®¼ñ&)>ÆY˜÷9™·¢”QP^^"SÆbmƒGÑ»‡¨r1£^©ÄW#%™?ÎÐ0˜u¸Î&sZw›,A"–»­œ #,è!¤.N=¬à ±ÈžÞ> #%¤‘¿ÑsÑ`³Þç#2Mw…ðÑ ²Øg6Ó‹d³hvá‡c#2ì8æû(ùB„âë¢^»bhlwº‡«Ì,I¨M†£kÒ @i#àvÅKÑ FÙ2}»—3c#2L7{I„„#,¾!ea¨ØÃJdåÓ@GCÔ«1¢‡<«Ño~Å¢TBˆ#,³^Å6‡¡Á'àø=Q¢>g ¬wšM„A±èô8m'Üö&eÃkNWØ@YÍ N¨Q#%ÑARº±á¿‚™Ú›•]³^0Zÿ†ª mEÁ§[Ún†JQ78fMÅíÓ`›ÂéM² ¨%èù.ãÑÜaÀðØy"¥ˆw'°«¦†i8YΠwûÍ#,91)77,xúpå6dYÓ» €Ô³¼á;5Ëf|ÚÅÎiQV²R@æÁøë‚ñ|+ cƒÂ¬ÕÒÛÕ7iwºF^¢4B,s‡‰ ¹2]¤Ú†Æ(lwHAdˆÁT š87“IC9yµeÕEbJB˜vo.S¯d{NéÉccL9TjEn$£Õ2<I¹¹M±é|öÆå®N¦k)£i Q¤ä­T Jô(ó3×”9hº\à@ Ø+¿¯53¢!ÚÌÄ©™—˜™Ì̱¶cYVe™’J±Û3ÉK÷궵ìºÒ#2@âÃ]qŽ´T¹\š¡¨F(,X0zHØÚWäÓRÁ¬Z~ï-úMY^länl#%…ê!²xú²ÝŹíðèFØåÞV#žtÉ×2”FU8ò RTK¯=k9çÓpº.›Dæ™y§]Þ!¹±6LÏ•P(Èyf‰‘0„53„r·Ó™ZÜ|óZìÔqÀíÝšúš Œˆ¶"”z‚µÛ·2PšAñ'gϸR]Æ,ª(IuK,Z’&Kb–Ò¼v>œE ¬eÜé‘«<Ü­HÔ¢Â#Pbâ,Ìé%±/§4ŒkfsiÇN$|qc°Û|¿s<ꩱZãL°]]x==a¬šrHvˆå4R‚ˆ-mîŒ`¼ô…‰ï€B‚s'QQVŽ#2í!»©Ôªmµ<"´øÀ¸}28`ÕÛþ›àص^zËIAàí#s¨·‡"ªŒ€TPªs3#2pês…À7€Ãß×äàõë½Uq­†“˯<óOçxmž¿E#%Þ§„²ÃÆð-{u»û”i­ÄÐé–v,çy0®‰h¦BaŠÕ¶Ùn™ñ¾Ú#,¬èJB@G/ÈÊoÀJlðtkRkhâÄ$&@àhëÖÇ6Ç–\¹X°øñ¦6Ö¸i‘|#2D£ÜnZC‚(¢/C‰!®É™“ƪéÕäŽÐÛÉBp„‘™¾LBq6†³<_ŒP„,éý›#%9öyÉk#2\!)6©­@ë¹0%&dÍ Ã…ö(“¡ÑT™]ç›>#2`HéAçÈÜåÞb<BÑ#,#,¤E¡F<#%Ü%Á½¶E¸ ­38aû’‰Cqît¡#¸#kkϲ#,‘„&6öEìF¸#,Y‚)tˆ¯ûz1âM)1ÑZ‘TJ7%@ŒwÓ‰é$Ãgg´áí—Ó&¤,Ħiéȳ°—X{O¯ê¢ñô9æ$›æo#,!ÃæÀD¢Cs#,†àƒ5Ö)a• ‡x”T»P¢sCš ÂC<"çm4›I#,€qÉÆpã#,f¶MÃQCƒˆä˜± C2Dø*M&i£“(äÁèxi1¤9–šÖ¯P×¹ÇHÍ»[”ˆ Ä39ñ÷5€…÷º¥&»VsC´#,TAækž);¾5^±À-¸ì¼€ܾü˜7+€,Aˆ‘d`ÈÀÅf¤ØØF!‰Ú\yÞL›ª8š1YÌ3UñvG¼é\ŠkìõÉkuÆr5òÑy§¬°¯cÜgGgr5™ÊHl^¾ÆR½eɺ•ÎNÀàpñ <]ˆr(EÌÂ4¶ŽyìFàTbû¹I|ð`×õÕ˦9¢•`÷‰$ˆ÷1ïöí–s»u'ãðæ—6‘1U Enðñ>ž.†ÌÜÓ*&Í©€¡5%âWôp½Õ“Ùy¿?#,\ºÓÍé i#, CÆ íì n øE¼€“seY$ÚL·#,À•ó–(#2 ?wZ7d}Œ˜ÇýmÊk¨2KàŠ)õîW¡ê*eñf[C4»ý˜3RÛˤÍmSð2™’bѱ©ÔþÔ½9ûEï¨>»»l—JÄÏÒÑZDŠ‡œx¼2|aÒ¢‘üÓªÿ2?b2,óë|WêÇ«–åpedtÚtîú_¦­rBnßoofzÐy‹AJÒR~«ÏMÞdž„ébÑ¢aŠì— #,ˆÁ6C¾‘êØ>(Q6ÿ‚o!¶UJJœP—#2 !`Ê‘ >ßkÓŠyw¸+ñ#2G~ç0sÓüäz¿Ð‡ý~É–aþÏöN+QY-ܻƔA#%h¤¥ùá M­ùmj~Zž¥ÚR‹fl™Fu«ølëìû?7ãžñê%PÙé CîÏÞEöiÒýìô‡ÎiJMRÚdÕ)··PHB?ÎAi# y O#,†A(Þå("—<|MW…ÃU£n7 ÅÑM~¿Ë½ï\µbجøRäx•]i¦¨TÆÖPK3^ÜðîçЇ{#%»àI )kØ®3½%výóòýrA»T#2j-"ŽÊ#%ÍæòN#,¬ŽV¿;Äì|°V_îUË;É$#«Y¼z¡àÉIOH¥Ô5Œ³òˆƒ3.ÁD– –‹h®@9 ôÐõB"@ˆæ|ç®\¦€úâÆ*X4GZ#,ʛáx‚{i#,¤`E! Ö@‘f»}At̬el¾[å4hºÙxt˜¼ó¾ç«\fwV.‰2»4€Ô©™#,ʆH¢ÄH]”I³X3ƒé„ÌÀÿ²"Ý#,}ÇyJÈÒfŸ]Ÿˆv“SŠ@œN]T_㘬;‡Æè›â×Ú¢©;<‚àX€H$Ñ£3¬%„_¶Ÿ\$Í•>*8#%NÍÄ „Üp5oMw²á¾ ×ø#2å>{W¡¾\ÝFG~`6ç«–Àî?•Eô]YŽ"Œ`¬@M½S'˜ƒ+·Ò¬m\´U-%›J’mo`d;ˆá;`‚þ؈ ˆ¤€ "±"(Ñ#%È€ ‚œ q~a‡¿¶ ò¾ëép¸Ì=N2QðaB6ÒÕE“Þ–¬ÙĪ º²¹‹–0—"ÂpƒvµD4-^YëäWùú2¿Éšõ¼kÑR’L[Õݼzm¹½Mênk±(ÝÝ ’ðë¨×-ßãyæÞ.n˜îäwW7,••Ý£’_.jé£K@”$R™þÜø“¤Hegð_D› Ð&É#,umú+ïvˆ78#%OtÉ †Ÿá”6̱¹êXuˆª‚±ìcäÉìÂü¾sýÌ¿i\š¢™';ê¢sPq–BŽ>Ÿ†r=Žž^…ø3¸zž{šbÆ_æ ‚$| |θ_7æMtÊØ&ÎGË®_¯³WN®³Ù›G[»s>aP’–+¯ž¾Ò­tùîšlÿ-;Û@˜¢¦U*VÜÕcO«YëM3²š}28™Ðågû¢ñžürÝ€ êøŠ©êU8ÇõÏÒ_·KƒGWôÁ. #WŠ%Ù p.@´fÚÜÄ ƒ¤Sy¡dñ…AÀÉYˆJPÒÚn¥Mî†#2iaIq° Ÿçb€bD2ë°vŽþ-ÅðÃÇ+U‡®Øbå¿x0S•vÍâôMÜwâ°â·”¹MÁ¤HMÞ3]ºÓÜ~_(Ÿœ,6ï5„8*ûªÕ`îwÞØBK /x]ìgfûI g—sCõ·EœWÀ<7Ÿß«ž^²ûøñÕs4ê—«R¹5mÄ&ÎèŸÏû®ñ±Ä©ãgB˨óó\s‚ÚU’Á´ýrLKÛ¹Šfƒ²ãQ(Û:‚TOaøA_«ÙÌ¢•RªQIÛÙô­éÀñh¢‚QÖ¢lOU&ª^Þ“ÍÉUë€H 4#,hï„ŽàafjVD$}*œÑæe+äRt‹ÕI"n,דƒ½"Ž#,àâh ]OÛê‹Í¥±ÆÄØ3ìÏÉYá¼YŒÉ]QWPÓ@»ü·å¾¶‡ŽŸ/l!AK#)‰Q×-è<ÃÛå%HRö¡€Ä'ÖŠ‚ƒ¥h-¶J´[%³V4“eTb±YYmXšm’ÒJØÖ’ÚÈÊ6f#%$H±ˆ,ˆž£ñ??W5Ä´–©Îßd£®«ª7ˆž„9D*Œ€2=~´>ÂL €ð@ëüuÜËà3r×}‘n«é`M¡ÏÓnd(`<46:â¨æ¢#,C#š@oB>C`*Ë"—ðŠ¡…`æÄe:dšgZã·(†}Õ¢?LR*˜ÔD3‰'r²hd­¼Hšt¯•MÍ#,%€hkI”‚/¤Ò²fIš¯s«rÝw‚§º*(»w*R Z(íxÇÕ˜N{Òup£&šÝ¨$[j]8l JÄ*ʽ‘mî°s‚û<‡—*#,YAÕ*F#% R¢›DuíßLHT HÏpzg„è„"ŠA‚¡2N‘!HCZŠÕ͹²W5¹LØR¦QTÌŠ“[HSQE'Ù™÷Ï°h!ØÜÓ&²Ð8@#% HAdA•NÔUÔ£Êúø>}î½÷zËêŹSMå¤20âáwÍ@3 ž—™…yžwßv) ß#%ÖHˆ}!C…§ÊCØÏÝÿ/á÷~ÏÑèÿO÷ìU8>s†úO„`,’Îï;<x¨,SP#T%â£D#%-$¿:ƒ£©ÑAˆ„VD|êªmï}ÇiÓ§+.¨š¥BP¼PÙ?Õ(é$&Ï·M.¢Ÿ[?š¸>Te4g\dKA~¸SŽmz¼Û-V²™D¾)N¢þºN\çfóûÁÄ“õR+µ˜A#,¬Zb ‚¡žÿià1픉Œ;+.ýú‘©:›u§@È>—„—CU8/¹Gá¨j{¬ISì¶IÉfQäT¿¼³ËzIÊk¨l€(2‚hÒ5¥ÛMÝO4ê>]gO*;B ³q@lŠi8"lHfýIèBPéMdéæGú¸¶~ñi‚v$‘¶¯SÕë}Ûß͉âí_êwèÜàû(wÛ~’Ð7ëMÔóG¯U+Ñm³õØø~¶¬Üam‰0~ì°%#­á‘iõS§ŒÉXèÞŒÛ*¶@ÛÁùMA K¥ÀPg4@ª¼C”>>÷#,£ {üðÙÙÖ5:£"íu!îÝvâ#,³yÕ#2Q6Ù”¦Ò™õ§¥ÄcìL(Åg¾žñc'vÖ d„î:Ó1©œ=cÐæŠQ©ƿǛÞÍößmtÒ‘I[‰A6Xãk°¿*#2‰.ššíXRka\¹ÙrÇŒh„X#%FOqIQPõyQà#%ϼEÓ4>§œ6uò9Öb¶îþæ¢$!f9þ?L¡¥!A«)ª¢ ÒDAAþ#2£íûWÞ«îý8²l}•wv»”(°ËHB'OOêhŽÍPÊ+Ë4 ×·­|gg£.|³„3ž…ˆ—¶–żԗà¢tc\Õô´²8xÈŠ~_³®†Á¸¹Ñ€|:ä¤)UbôYÎ’@Ó8û,™ºŸÞéê®éjøWëµ@ãáØÖå¬É»®÷ƒÚ¡ÖAá™Câ*‡nø‡â®´,¬Ø´^Ìr¾È2T°Þ.W ÷¿. ”J{VÇ= neç^sÑw7çÏD…‡Ìy+‹Ûã½çB¥[k¼zDÀ¶1Ó?£Mô£}ÕwL(è€æ*ÖGw£Ž–Ütí]—NüuŽÚç•ÃœqÅí«1в÷f‘·[d¨F%Ê;pûg¾¹ë]øÞzl] ì؈Êñy´EE0º7ƒ~6Ù®2.H¥¶Æ×#2öƒ7ylÓs­y6ÎÔm\9œ7Ç`¯WpS³cïÓƦÝóï‹Sµ™ PV;Vì¡ÒEº#–Ö³#,jw¢Ôh˜R {(ÀZ"¸¹™´^Ýñ[57K¨îlÊÄ0(ô4|>œØué¼úñÀX™Ôó‚1 C\þçÜã^îòcÛ 7>ö©«ËŠÞÎz‰¡ãô )=t&~aõ|ÊN¾*{L0#%BV¤%QŸD¬‚‘R”/³Óx¾ïõêÓ£ÆZœ¿¦ÎÒ±ØW–<”»'¨=åùz&œÐ+…Ã"xžG^}±56#2ÐzJ·„#2YÚ"ˆºòÐÏœ0bÛ7ôPüà©É•÷FËà#c Ë£¬8Ÿ”kÕËfÁ´\þ¾Û˾‡¬Å!~‹7zx†9d$#,gxÀU¨j¹6/]f_™wѸíÛ«u°ohƒÞÜØ–$äG5ºnÀšº™;Zл“\n‡#,œ+Öp@8i¤à}H@ˆm1ç×Èl³pnX˜ÝÎ{(ͦ¼ûNa}"…C¶PdÜä§^DZª•,AFÎÏõóß$Lâ9˜4¢‘Oªñ~+"0F;4ÑZU7T'¶±‰î÷p1ê=h )G§#,îLäAaƒ1ê€zÙ&§ŽtöרýwNÝ:cnÒìSQ1Ö0UéÓÞKH ©GmûØN˜BòƒÓØ;ô1­°oG÷™1,Š.ÂŽ“Ϻ&®\ÆÕI•ÿG»qÀ'´ïÕ§¬¬±|8âôöh¥(r¡é}ê’N£T{榤m»¿³"<ô$IÅõÒøIS¿;Ä )=Y§ªñÕÇFª²0¸°&ÃaÅ?“׳h„FE5}\2öuî^™ÔH/˜uÀ“¯Ý“Z÷(ß~Äèñ á[>#,D†p°²ê‚ ‚:«˜¥‘¡›%µÒæÊNêêlä\–*ÓKk·âò廚darÁQ±V8â`… IMË%.Ó—sw2#…Ìl£5—#,™’È 6„V GFàë†#,º-#,Mb™„«2‹m£_Õ;ÁÞÃÑÄ£c#2låؘҳµçÇi±÷îõ3ζ¿gÙWîÜŸŸÅ¢R¢ŠR¤ATm%øUÒÈ2k6߆ë«ð«®“Ýc¢í¡#%* €1¶A|CÚy$ &éø—!ô³ð{“ÁØ®¨}yl)iÑAaL“vÖ Ó%šy¤Ñ‘³¶¶q—±°æ´Sà¨P©Í#2fD㪵ma·Ô¢žÏÏ:a]»çˆò¡%‘Û¬  e~ìV¬Š‚za¸©‰n5›ÚV:‡»M5qÚym½ œŸL×Ñô¬ò÷è]<3ÃwZ5\×W˜KD"D©HÆ#,Fš$n:„¶B#2RD(4-*,)Ea»IÍ[E3#%Ôðì>º€Ùã0Bø^«î_\ÊƃnëµXÚŠÑ«ÎXüDR`lÕIÖ˜…"bì¢þ[²z뀼’ü×|« [TéMŸ5Ÿ©ºªäêxð½$¿&ïÄ(ßÞ`S'\DP ij©MÏÎÒD×-nóD¿|“iKÛ6ªª§Í½†b)"D€ÝŽ!\57ßß쬒ˆö¼-fvc)´õ mÅÖÕ C!DgrB4Ó ª'ÉëÓ#|íutF‰ãõâ bÀ„‰´ÐØêfÊÍ‘3 ~#,:×1¦*™!s·Çåêò;»ÇÉúDBƒ®ÜÍÛT{«»µé—B«àO¢ÑÊbŠ'òõÛéŽF̆‰µ‹H°zÑB$YÌó:1ŒÕçWI\ªbª™Ïw ú¾‡’©5–•¬µ >Bq†û}9?©¦ëNs¼zk3Õ¬; ~ÕÄ{ìø'@Ï/KÞ×·t) Õ"vÓj7®Ç[ÏWÒ%¶“xEîærî\à\–(§Õ©“q>æi ”‚àœtÙ3šñŸ·¶´É3þívÃ,#,gb†ÚN¿&RI6/¬>ηÙ5ÛZàÈ€Ž0è쀂Öá „Ú]ƒeƒ46ñÔ«uA ”¸_³J@È"‘„ÉÔh]°,,‚:!Áx7 f j2B„º+N„¹Ë (°È îHÈ‹ü\Þì¯gÃ>4Dg‚1 •Ö$pÙ–‘zÀ€!PU¨4ºúŠÍAM`ð`¶³u›Ë±ˆÊ’#2Qª„¸2B7¬ŒEu0ÐÓDÃyšZÑ'”[x3#,Bg ¹c$)i/¡ ñ±h!¬ qJb`b(Òj!”Ù[|®®¶×yuð˜À%Ô¥†-Ù_—9ÃÏ<vÏ#%¦4ûp?dHãÍ6Ù“q86ÂÀ;ëáQ‹ÝË"ù²®» ‚4uhÎm>|¯‰Á’of†äô‰B<;“:¹ð©Š>b.K#"ÈêÈïãRÚìC°Ø{Ë™w—r1]’g›ìq>é¤9#%³É'8\KX6UoÙÄøÝË$¸dXÕpͯwŽ¿ìíGÖ.KßÉànpì…‡.±qé]ÿWY"Ž\º›¤8îXýý,ò‰ÒgáB& I±EªU#,Ùêî?È1P=J§R5°øyù(—:ÄKd<¡œ°*Y:ŽIß0Ïh•#%o¹ì‹»»—àÞY}<âó ’ Ï€,¢`LQðL©x)Ž`újnþ¢'²‰Qj#Æ%…ŒN¨^AиT¢,‚'êJU…ÓP¼´\ÁT¿ ¬¬ãb¨LcC@! ƒV%áJé1bN~–"(˜€SWŸ;ÎH…@4‹L]qB$w¼ÎŽ}!ØïW¢EIÂæ6b ›²ý;SkæbÅZFt$#lh¾Ñ¦Œ0‰áiòG¸†˜–òbš6´ŽüPʳÎÐïÂkAÔ!Iªx—#%¯O”ª§BB33 Šö¯eÅ!7u%q֪Р|3:‚3‘¤cC}Χ#,¤Ý#ξèàml6ÖQǧ,ÀË2K³@‡ß“hÌb®D•BðŘŽèø<0Ð9#% ;‰”ž¥ýOU >4LžB¸hÇWž¦ë(¿ÈÉ$1À®è†¶»Øò³ˆ,dÓU”¬ly#9#2œ«›Ò^ÌF=† ­¢‘R( éCìï³Ã8ápÁ‡Ôêéžm¯ièÂpMyõ-Aš‚Œ«Øˆ@‘“¥ ÌBÓXÀýlHALyæ½Jj6ÆÖXÙ#2b*#%Æ‘›šx åŸlà©ÆFSÁ‡#,cot¢,{)Ù0Xö”7#k°Í…tëW&ZIß?£¶k«žq¤·xK5jH^¨g¯&èKÝb&TÁ"ëĉ1eÆ4ÿfÖnH Þ½.¦•\y'ÙÒ ‡¦3G\mž-u†vG; S¾éÑÎb,mg‘?l®:ó¢ˆïå¨edÝƬƒdRЀÖßLÚ¾k[Ëvš)ÝÉrÓ[(˜¸!@êc…jøÚ\U7Ë.JÊQÉj¯ GRÆÚO|±ph¾ÿqÙ#2ª\ È®Q3%Ë9Õº#, Ì¦‰HVÍ’j4(†é£m0…$“Q ²L 6l11ˆñBŽîðí5‡irÝâ‘õÂìÎèd­'D%TR ›a-&D)i4•JZ¡£Ž#,KbȃÃCv­ØV­“3+wFÑñüdñ.Û¹ð‡Ç9ÝML™Í5#›Ô’#|¼™[A‹Úæèu˜‰_kØaß#¾ çª)Ì¥Ô…£Å’9] i]dã‡!rˆ•l˜Ù0sA(j\8$~µ@6°eôf”C#2ÔÖÝ[‰cqj6ªfdQr2å)Q"õE5 vøÐ!³À v‘ÕŒoÀ#2Zû> v—±³hca7ƒ&s:ª¿œ 2ÿs=Ì3²2ñ„é6×z‰dMuSŒ\îÄëbR1ÐÎ+n[´ö»f ]€Î6ƒ‚ØÙkå>)4+.b‹$í¦¬û„ÔeÛ¤6Âá©Ÿ/'âøqÆÙŽ•~dæ´sO“Ù¿MµK˜sjÝ–§w@Í2Û#×äÙœ¤Ho£¤íd¹XŽ½7@øNCß¾r[=dËq»N£,ìøôl#%SŠÇq³åéë'$}#2רÖv4PÈ¢‹ t…#2 >A¤XœðZ#%Òc>ïm) ø,,·57¹†å#%¶K¬iQмMW©#˜šhÐ&€#2’M#2š^]0TØæúÖÁ‡D#%„P$¾í,d5fh#.†b@¦)@`€"!¼9†`M S%#,Úù7‡ëÛ&&À­Y—T«&ÿTï°ªu“,ÆoÊîËø“¹Ù¬?¥tg÷[j¼ÑèêŽM“9íîj¥7’ÀîÞ=ÊaÎHÜôIL–Ëë ”œ{òÁà“û%\™üFŠiTÛS+Ö¦½ï“ûþa=p„@Ó²ÊxÓ<éí+_´ÐIJšµø—<[qZ6µ׊\ڶƵµÚ¹­¹¶ÅªÆÕt´ºÝm°úµgœ¸œÈ_½Æ#2)«ª:IØm·z­ºLì€pîL°}:Ã0݃³£gé'Ìý4šÖ¾ô™¢IA)“2™¥i–d”¤Óš¢Òf þ;©0–´† TM5(d¦ˆ”(­,kß·(dÖ“ID¦VÍ#2dÄÍ3$fTPÄ¥Céî¢#i,Š‰LRJK(aª ’ƒQiQ¢ˆ&S£4c&JÓÖ*BeA’¦ ÊTf ÓA¦m1%  ‹4ÑÜS¹&óg¶§äe/Ø!#,ñmñ`™½ù²µU}La vc_é›2#ûŠ‰8óˆvp‘Q¸Tr}Ç+à çgX&éΧdåƒx.³õqœS(hÆô–Èãj\ ‚0Ž¬Î]N´ìÞÞIŒü(= Kð6í ·ëMÔK–6¢x¹˜YÇR»½Ø—nk—øc{8Œh_ÚËëº&÷7<ðñmˆ„$ãË7“%ýBs-g§Ú’q«­Õv×»# Ø›l1Ã#*™…*Bk`{þÎÖ¾¶Ûõµö,Lcf´dlÖJÅE²m2Ì¡Â,<¶gLJN®Ó#,ÛÑo*Å€™°¢(=vüÙÙìϼô'*¦ósŒ0õê,Â1ILá#ç§1!†#,ŒšW>ý˜/öW#,­ó—±Ú½«æ$0'qÚGÐÕÔîØzz“çµ"'£í×s´Ff.%Qê¢Àk¸Æ§˜i(6k/Õñ³râ;“>­ /SrÅ%œ¸†Ü›P½¼®°c=òJ«­F„Hb Ø•$I#%‹Ú™1ê­é³¯î¸HûfQ¿vÛ~})õŒ|f”¿OHŠ:Ì¢Q—ƒO¶ÜlcñÉJˆÌwŽ nk‹wèï<ÄÊÇ;YñãýPháÙ#!õkIûšÕÐU$¶Ó}<úὧãe{H¸¥…†*t*.#2mfà9¢¬t(Gç|áCllîÝï®ütá½9—#Xc~Mö˜;t°Í>ɇ<G÷£œp¸$šú,nm_&·É‚Ôè2…ò˜í¶£·~WÂc.[õ"^7L³§<1YCŒu-Í4î'¼Ñ¯ thcdµäg’Œ ®„Ä©OSãÆk’÷ÙxIJÃÚq¢fi<ûé4Š#,Cóqï„ÉÙ:œ6“ˆ…Ui”ñ–Wu³T(@1«k½‘3ª"úTéÐÛx[nfeï ¶RDØ7´ê@íË#2'îú¦«½Ë^©ç·svwò#%äl¤€„9nø“­«}zBzëÕÜo¾ËW«È`‰q œ>ß®¸Þÿ¨éi:’$3Ǿ;êN#2åžüž‹ˆvÛ>Þ¯¦[ ~»Y~¾ª#,ð~aÓ+O‚©b6%Ü'sÓ~rz4ÖãOt7WqKõùs¿“Ôg&û´ ¶8«ZX{SaÇ“8ÛmØ*ìÔ©+é°±ÞbîD‘tuàèe g>ZÓ2­3RuÚ`ødxLÌÈQß\Ùã–èI2áø¾°–,"@‘C‰\#%kX>êÿ#2tð£ŸCÕëý;>h¨ÃãUŸ·ÁíJºÿ[*Í.¢TŽ+Ü›™„-¦f©\ZbïS92jŠXR„W#22rEÓN#,îk0m3ßÆfÊçÛ1csQºt™Î£ÍCLË[lÓËÍŒÓ9—BÉ XgFE5(Ô¦.3ZÄH²„X\o m.t²fÚº‡zsÖ°'›|JÒ” –¦wÄþ³U/ø’Béº^,3ç©úå7½±ÖQæÀá¦ø Á2¦8©?k«zàK#2âjf[CÕ’f5£f2°U¶™=Ú˜øÝœaÚÌgmgfüí]iÚƒK„Tâ -…žÔåÒt‡§¹x3FÓ•’ï3¨ÔX¬Û$0Ô7 $°Àl—Ø’rV‘Ò“£`üµžwß©ƒ&Bôoâ,7#2ÁŒR[Ì&*_¨€ÊÐõ¡‰êìí§ž4ÍTo#,ª?.02!ðnÐ6#,ÂΩª²æÑóÄï4Á&:ÏJFìÀ9^HÒ.éV:°ÈW<CM 5sy‹™767¶ŒLªL¹‚$ôgî¿-bí¨Ç<wÜ ã;am<Fµ OK9–{OÎb0ëcM5% ÜšÀ„ ¥­öÄ0ÿ“¶ñ01€HŠIÚ#Ó­4Ó5u’®,Zêù:¼qæÞ•ãhÃM…¤ÔGŽ‘ˆsÓОõ³|¨ˆØØãNUåãe—QoDJÍÞÙ¬ÎLâôbº>*u½n)Ðâg@:wC¶ÆÖ‡ªËüÖÙ²„o‰ã×mcXÚGãƒ|6ä'àFv(„ýn$é=àJL%‡Ùfµ©ÏLxÅglhpI £S˜Ïn+ƒ4G`7îæ)¬Rãžw¾_<ã0Ý®È^ÏP•Üd>ÃÜllg:Žûà5Úã%¬GQÞvY0™ÌÓÓtiXÑ 2cÇX8ò¤ò"$ÂkfM‹(}m«çÌ%§]²éÅ B0HîЂv”¡ÒÁ®„MqdKZàÉ2D½CȹiawPPe†#20¢á¨qL,}´Ô)«”y[6ÛiT¿•aS“ J*V*·ÍÄU“|;î«kÙL BeŒPcUpA±³=yÏä©<—;C¸Y¿»™+êžYt–WΨÐë~뜷y–Óffå#,5¥ˆ1ÖLPŠMÄÁYzŒt$#,hi®Ým<-œbmu:aœœÊmx2¾ÒG(Ý0냮`á\6§%‹C’šõ“j£œf§àq Ãbaöv„ÄdHK“ý#,ûóŽ?+¥#,æí +DLzY¦UoeS².i8u‚åÈe´E•Â‚q»œY¦ÎջΠ¼ÙÖ+/Iž#,re”먱L -šTHlúiv3ss4tÓ•§Ó¶ WCBn´R œo!±N©³ ’Q€…2(dØ´Ï#Ô.G âu&p°-JO¶Í­ Ü0¥‘Èí¾´\âbœB¸fY|c³4D#2àv$7ÃíF7w¿¾¨¼"Ä‹ˆ!4™tçäÉp‘†üÑš¶Ž°n©Þ¡¿,IL¥cs/{‚z·VŽÊ’‰Ê˜Æ1¾Sœ[O§s5mÖi¾¼­š­¹fÊL²F!ÈŸÞ£ k| ‰.¦9"ffPÈd¦x§6—ÍÄ!° ®\Ô8u|"ÜÈm¢qßKf‰¹¼s%O6;­a5c|ìÓ7$t5¦÷q¹¬µš£ÖŒne˜Ìdwvt[¸—LLLb||µž1©ÂŒÇ3ÔŠ-Íáæpó*!LÜE }¦°#2•¤›?›—–Væ©Û=Ý'Æd\r^rV6Ü$M¦¤Œeµ4Kbá3à#,e™ºª°mÊ+kƒs2úBº9‰“†H4qÆ:jn¬21É O)&PmV†Ìâë\—[™lÖfõŽ™5,yU–LbÇ0vB‰ÓEÍhÖtzÓ#lÈ[ÃKÁ›~Å2îÁC.|î®pª¤,áƒÌpe¼ós¢…Žê´S±žï,VÃØNÎÔa59eª«œÅ1;3Ø姬T˜'|IO”fîWG¼‹|’&í²¾"ƒP¡$'I#%Ç·œÚ—£@ÅM¨@ŽS0ƒBƯŠÔÜ0„1¢ºŒîY2ÇFç&ÕÃÂmlÍJûZ–5/EpfôÇ•˜ÍãÓ=3•­>ô³."qÝ¢ÝÚY¯ò$íœhà«[Kµ]qÛ€¬P®õ™¤$8È)´[½ T$™#,íGHØšò5Ñ}fŽŠ#%¶‰7ÙI()^£Ÿ£5_^¤#,"Û&‰T©•;3±ˆ`“tíG£°#€˜wbÓðhTkÔ!Kႃm‚Ò‚`6‘Þ`qºBrìdvl'Öd¹Ï^­kJ$ÐC¶ÀÔa8 l'`®ØõŶ2–*6ˆ×J„ŠÈô‰ŒSR™ 3ƒ @±0îÃt¬wÜ)&Œ#,7HkÒ«lÉ®h9°¼×a2µDË#%Ù›‚jÉ”ÔÍ°Ë" di‰¥¶JfÕJEË»4éZéN”(XŽ”S7p‚ÛͤˆËCÂsÖ´ÍM’RC ÑÙ9$´‹iL7Ílž.DË‘ƒ¥IŘx3‚aÕ—­Jtf¨05aÍ0•Æ¹­²f8¥ övã!=ù¬eV'…ÈüA… ÖÜØ짒´Û6Ñу•:8DÎ …Q ©”ÆÆpõç™r™µlÃf#,§To&¦Æ¹×ù콇z».N'ZB2Þ9CËºq+›YÁL¹F†ãj¼ãfcO¸åó:[!ÍŽ Ë@:Å4cC#C8-Aon¶4>É« ÊYÚU“¶qÔ˜/Œ±Œ}×ýFjPÜLÒç„ІÔ45±›0¬5š¥¦ÎÐÉÅg€Ôç  Ó+ödÂC:8Å”‘A­²±ÑPôOjï|"Ç­Ì\Ë!`êC‘Fšu ¡÷L3[Q<w‘Ýx¤½ST)„PÊRT´ 5‚áL¶#I-© ðN¬(ö{àäì("<#%âL²1¶F6—_ Çå×0¶\«cKYÿ,¤E‚Dv ‡JíèlÆqú>šî’#%Tà˜êÕ¶š+”˜p:Ž¨!”!±CU-œ%±iuÇ1`hqßy2C¨ÅfLÍ.cX›„#,‘õæk0غÂWU)¡¹£}ÀÒ0ƒ‰2,.í®ó@Á@mÞRd'¨Å{±£± †UPÏCƒ„¨@Cc„04pæo£6pŠÜbIy†Ìnéhg4g.3hnÃ" K´nÈxGŠ6QE¬èiuA³&O¤”“H6G¡¨®ÉPì·,Ûv“¬Ú¹—CXèº2'#RàÈͦMIHàGLîškÊLïÀªÈÖâ.«#,;#,†Ài3»-‰g8f#%b¡Ò€ç¼¾}<·«_êTÚÉš2f¬Ð¿ØA(PýýÅóE!\4{3¼•6Šk(\¢>Ô¤AŠ×ùõñQúüá͈jÕ{š¤’$ˆ22FI!#%'¨Ü}cûLƒ1‚NBˆÄ®ÇF韺‡8Ô‘„Ù€¢P*€ˆg2€2 ]€we§·-gžã@i°u× “Ⲫ“†}(=üï´ÚßÚpcõ‹/yÒ¼êYËK›ƒW)LÖã&ïÔ[¬¢‹±ay×/¶×(U‡FùÜuðÍ“)±´Æ\©s'M•.áiR¸k5†…ÜÖBh7„nÂ20+aÀ6t:’Û²Ç<7B,èêÆûz€1žÒéÀæ^çô5’§4pu\0R g8`"}Î ‰R†–#,S#2u2Úûé–ÛI¼”š­Jµyf¢6Eßã ,¨B-¦¨MDíú=¨hØUëÉæ V ´*¨N¼qT"Q“K”=¾Þð5ˆd‡zûáçêmçðÍ;U~#%7|w)(%Ë÷•9uwu]˜Öë»2æë¦ê‚×6JþróSË÷·vE­ñnWò]g¦‚ƒÃ¬yÀ¡CûÏ5þÂ;e1ت;ÐÊÀà~œ#%ròx¡Í}äCŒãÔPÁœHµj(ŠõQÁ÷˜q`OÖæ€n<|;26©wØÞ~æ©2.‰ýf`­Ðy9?ce}¸6¸ù|Xå´{s/²'²î4ŽSk /ˆš hiQ‘€6Y8v¦Òo@–P¼o„Æn F¿§k`ÄÑ c ˆSLA-ê%T¦GL0—.Ö”™Ò.eÆùA2Ac¿´yñÈÍ H³½¡¢Æïbf!üDCXu?;óù†QäÀðHˆ>ƶÖ6é±ôsòÔõúšûZmJf±Tk5´mD˜ÔDÉ6 Ó2Ѩ(¶ÅŒWÏñÕ£EŽËDøŽÿk+ENàE+­N:»×$È2]åÑÔvÀY«´CÔêHÑ|ík‰¯ DK1L!$Â8±DV£´€ŽQÚX·vzÅÔð;»ÞÍN ˆÀ–·¥“¾f¿®ÖC¡rzM#,£¶«"ýv¢ÄT‘Y©öé*É…~ íßd’vP#2r:m±m2¼3+¬ƒé4ÑLÔdÂËp‘çRˆ7ùN(ŠÒcKi"ÈF'¸„Üf4jå]*¾M½KÓoB5L­â×›&1lÊRÈ#,ˆh¬q…ipÖh„bÆQÏç8ÊDÍŒpgܨEbÚù`)ð8Yv S©H°pѪ $i0`_¦–÷ï˜0Þ¤sL©wß„óþ#2<±=/RÒ®rLŒ›Ýµq$¹ä”1ùñãdÞ7a¢PʨTŽ^õJ\Z!ZìèÛØf2†™› tV Õâhë- nQ¤‰§S3ˆ¸…x¸º¢é#Ú#M TK&Bºäf¬¯:bÙxþ0â€yŒӻȧbm´’lc+A)aLDHÀ c%ÏÒ®dÄ•ÈH]Há~lA ÅP`‘#%Ðæ’Á¿4#%È}øûáß'=b!¯S2¾4LY‹A‡tš]'è•mƒZú7p£˜ÀßH¹U¹¾NJÚ## ‘qõå]rgÜRšrE0ªÎgi#2Ò˜oÃ*#¾|1)¬7v‹¢#Hˆ®õPÞŠpÃ(eß\†Ã#,!6¯~–•«YÔf¿o`Ã8dd9:pD«ÕTLí³H#2_ ;>ÆaÔ!9¬Ä«hÇB³n›Ü¢ðÖ°2AÀ}Nƒ'.ü¬·Nû›YVá•£”‚£úi8f~>[/<¶š;‘y˜Y"„èu›n­L3”RAÀ>U ª²R¨’ XÆU”ák¼+£"­saZmC—7—›Rí×’«3Ëbh¸Ä('<»ÅÄ;XöB&§[M"ÍòÎÕ½1¡ ]˜ €€ÂŽŒ C’ÖXÄ)£(ݺ»d‰ ­Ñ²Ð<àHB0¦L2 ¦ ¡F”™€Ç@8#%Z H#2 ÂÂ-Þ º06:¸¶3Ô F¦f†hðP(+¹P#,{BÀgêÊñ‘Q#2ÿFdϹ\¦œR(±=” £ûÕºPaë(=•`,\ó'ìΆÅ|iìl!šáŽÆ¶3;Ø.?ÐhîÄ™ˆ}Ñu™ÏJb`FCÍ+édŠ& ’I#^#%¯ÿVÅQµ“mXµ´›*H$‰ KÞ¦h}Jž~zñ)ܹz—>*•Ë‘÷¾æ·”=}Oì€ÒÖŠ_N+‰­ñÒÙÔ­^ù Ü]Y[ QÕY½¨å°åZI\Š&ötÓ†³¼JÙ4ËÉ•j¦`teJ—³¾ØißjÓm&ìÙ&èd­ñv5-zÔbŠ½ÆÆ3fƒœFá4‘¤]2—‰§máHm”|æo$Ã)ƶjÆÞ¡(ef^iåËW%íÓÃíÉJÅ4äD™æ\5&艹’èp0â›NhÆùSPÄpJ4c:Úo“‰’!›F✩Y³·…ã8ûÙiÖ1ÉÔs\ ŽXwܺÛ]œ E2±J|Å&-MØ 31Ò5Ä™›ˆdgZ³3¤ëm⪆›ß…·©´× 5Ì䯙§Ó)LçiÙ1íôŠã$™#2 ˆcÃ#,TáŽC KÊŠÖ‰Znç±ÒdØ¢™­¨sLìgòg(mIAȈņääcŒëVéJ°‹#%*"À5˜$b ’ÁhÚ²fz{Yayž/&Árå}ªÍqê¼k”ñ@hX2ÐÁ¡"–6&ÑI#2” "D‹"·5œÒèP*¹HE_ƈՃT‰`¼²ð½O©˜¸s¿½å=»§QU¯>ÎJîâªívÅÙ®›Ý^’s×—äe’¦HÜ!²ŽæVÁ–i¹«¡WV»I¬¥w]wqI¼W-zíre§iæë¼Ê¼›VêkpØ×i¨Ú1,Ê·C%"G¢›FÍHZ+mãc)m2©$,¤È›5±­5"™®¥®•¥”´É­,Êšª4ùµòóÂj-P`±S4Z¶„¨ÊÄ©o-ìó3y è+ôDZSV¤¦#2!Å2.À“ ¡B¢m76.Ä¢%"¢QP´X!º+çÚD='qí°z³ÄõŒ.‡kÕ«÷XR÷Ž@…”Ð45û¿faá­âÄäxœãêP_X'ÅÙ„Ó¢ÌàUÆ ;4zëÇKS-Àº#%DŒFßÆÎÁ&d©©c&«M´œsLU<Žìï93#%êz“aŠTâŸsøY:Þt¸Å*URŠ#,bQ‰#,"¯å‰Zm¦`Än€)’ '':+“Ë.#{÷硈M˜šÉGóîi×…—øë6³OÁ†èD)­5©r;3#%XQ•pµ©”ȯŒô‚†$HZ5C^ý=ÆïÛËXlw0ê#Ä7LõÙW¨ÑráQß·«S°Ú~ dè/ÐßÝ¥™ßIyU „\ˆ«#%rãÑânU¿3%œÜ¤1¦l C)$<ÙDµ°ò….Àî~ÖÈl„¨íx3äϱBæ‹Üâ4@Þ¹5Êä‹9œ‰r§±€™FØßî£JÑÐ÷W‚ß8Ü^"ýÅjï²€Ì&’jßÞ¡ö ~üˆD*DBUË×õ1®¼ûºàŒž (ýQP'gRŽ?ãÐÀP©·äT@€ùä Kt¼vKQµÑî¨Õ’/aD´“*ŒL’nkk‘e ´Md˜Ö÷Ý«\šm6Œ¥´›(Ø´ˆ¦™d²™)TS²Ô#2QŸu…6¬¦a³hf4Ä›EjšÕ4ON(¬ŠÔ®ë¦Ô%ôív·jöíØÑSAS5¶”f´¦µ%¬A©£•_¶ªº×ÎäK½û¶I²(µ’µ¶È’DÛ6µ¹u¥£I•I5-·žw…6&Ói²„Ì*jÃm¥³i7³µZ–ØÆ*#ÆÝ›-çW^w$¥ZdÐ×-Õš¤¯Öjñ]±)‰¶Ð‘¶ðšìb²Ößޗ€ÏOÎæ®TÏCÝ*’oÙϵ°ØV–QÎ#2òÈø|;+ÑÕ¦á’j4ªÖxI`®wÌ’a:}Z¢ÔFŽS }þ½ÚÒcÊÑìr—U‡±’ÚiÑ:K@¬¶å‹€¤™MxÐ&¤TAÖ¨bA È$A‚H,F#%!ÊÊ=œ6½¯¾Õ_¤"-³JÙ¦Ú÷lDTdå0³IP"]P–Dd¢ÈŒ‚[éD,¤TÌ:SJl)«iJ)’AÔ*Û›UE’Ö–ÍFÌRÓ3ÚE E¥&©Kmi¶i›Y5°Òš)R›|Vå (“-EeQ-%£(ÓJHQ¡´Û)M"jLÑ°Ó1”b‚Äa£+eØÙ2IdhXÔš±j”ª#2Š”ÙR”ÉT•¢’©-$mJ!µ³i¡d(II‹&Ra)’i’¥š©¶#TEY6¢–&mI’E›kRÍdÉ£JIiM¶Y[RV­{êµÝ«iYm¦ÒYjCIoymk¦Í›Z”ÕY+VW³W›=•\Ö½f«ÛF©K`¶£jÒ%V•6¶Ñ­}b´mæ>àë8\pÒu9XE™ÒpRãUM$j0¬R¶ÄFs~Ù„ÞŠ€ôÌê OÌp¢j2{ἯAp7;Ü4ÚŠygI*L#%Ôxø#Ê7#xž=•-Q$!óÃ+þ¿¬÷*/¾'¢÷OD7Çdzá!‹>ÐÐ(ºŒWçßÉtlë¦ì[4m¬ ™F—GVÓC%ÉÉJ7i(wr©Jí1.«æƒ^õïíÀs1ý»©=ú_f8½r‡J~ãa‹"€ 6„®1´0ÞCBGp)Ìæ]28ÐÆ"Flk‚„b¨‚ £]z#%v‰ÈCÅ%~²‚Þ€#2–çB\rƒè6j¹ºŽ“Xl‚rä¨bŠ•ú{ÊPO#,yÁ6G$û†`A÷Qƒ¿§$ûßsDŠb¦"Áኜqݶӳ\wÞ zèUÚjV7»bb—M<Âå3l(n¦Ø‘e?R>ÿB±.rû)Vá²nýåõM#,÷ïó²!)iêÍR”ñ¨}J—#áTè”´ý²­Ô1ò¡>í±¬áµ‰¡‚öÞ YÎ#,Ü…$ój(°$÷T ƒáΖü_#,±êÙFâŽ&óY¬ÐU&F5ÓPÐ̵¨}!¾‘²»H…íÙjýΗÚ{úÛ{vœb¤]À#%±mU6ß<«ºê¹S‡³µ¾VªÀo(Õàž ‚"2! ÖDëçK¢ñ5ÚÅtªçz±VbÂ$öÎù}ÛÏJE`0“¥nx˜Qå†X˜ipQRU#,á†(’0ª¡Œl4R¨‚MMSY>ñ$¸„˜@©âç³o½Ó q.›üžþ®ÕÖq·¡Ø7œý­:ëÛáJ`ÈËäÖš‡¡#%Ë0>ÞV°ô$Òko[úÏÇ•w›Åéõ®ˆ£\¹òÅ\G÷ËR’dA] %Ù@ÿ³ùm|°­or²Ø£hee$H£KFsU@Ʊ¢&F¶h4=â!©&·Qk†#, m&†=:Åbb)¸FIÆÍ´q¨ba¬qV Õ‘M–V6pãP`Û´µH£9±0ÅA@Ä@¦ in1v8¥ŠŒ·D1†–U"€£].’L-Z)˜TÇè¨Râ‘¿UIª º#%/Nú#2:œ\åz5J<TBGâµó”B)Á5Ú5­NÔ Û7íª#,´Ctâ‘£T•Ž`Sƒã£ó°Gv£Í¥P†þ¦x'Myüùšìeì>)ã0wyˆ¨·sRpäÓ·£z·±¢œØ÷ ô‡‚P#%TFÐAj#2Àº#2__mnÐ?«Z¶‹Ù©®’ÄH|Aû> ¸ ÐêUv.ná·kmÿW…ûÃÀ ³âÝc)Ý4½¤j[Ǻ%1‹ÄÜîI9Ó0¯%mŧÅ֪žwÉfðÀ·Uñj[ëmrkŒ“iˆQÄIìfœ!µ@¨dÅ#,njßRY²’VTÊÀúß“Âf=ÒŒÂÛد±aµd Ô¡îè/ ¼ãž±JÇϾaƒòU¢cäC˜y‡üÜcHd›H&@lFظ`V(Ä–Ó Maüþ—V/û’)})N0$#,qKJŽ–7~™‚rL Ú…ð~?[“ZáRU´²–Öå(40i!´ƒ:I$š””ž-Zˆ¬††á5#%¡c(ÆI€1èó€´âÚs½s¯gÙ™² .Û!›L #2áPªR3ºxQȵÛxÇÄ©`ÅXÔh°N½ÕâÂÚwÍm’f‹F¤„ÉÃ'3ÔGÃœxÍk¥ii¿}'Së¿qU‰Øz¹”I#~MDÁÙ÷Ò•5¯)û[ïS>ˆÀ"*ÌŠ!kkenÖkI¡ÇI¥LzÐQ `U2ÐÚížœq s ûo{ÈâK(€®¦¼#,ä<6‚2#2çÐxd)`ÀXQ‘OÔ@ " ªZ,+‘úñXý¾0œâÒxº@ÌPo§~˜ÌˆÆ‰Â›š&#,¶ºh„"vˆé ‡,÷Ìjœ7vçòÄ&ä29mÐÚšˆˆ5§$k1«» Dzc[¶†¶Øª‰lÍ#% `E3òÛÍÀ6á*ÄUõQJ¼!=eê,Äõvœ3»¬ÞVÌòT.4ï;¡3sÎŒø9öAŠD¨±dB4ÐjH‚^‹§*¯jíÄš™k”IXB“%ÉË9˜FœCqp¿£GâîÚH¡Ô®ð]3iB"sŽ¬"HÒªqAß‚×,UŒ¾Ìfõm×}rõæ·Qê——ðqS—­8eë»Î=ë£mY &&´Ú²4î¤.!¾=È ñc©~øKůuÉ4ªuÔ›3U1‚³z*]£³5¹w®îë¥çv”óµÎn&p¸y]mÉf—<ó­‰ãÆ~V±2ÈÆØà@’(IÈÎÖ F!U*ÏǶíwªŠ#4Ja .°×6†á–Á{ÜLƒ¿‘ P¯'±uúµÞäµ Ð_"*C»Z&»ã=ËÜ#Ým°Ýá¯oN½ÞU¿ œ:Äuä '™ÅšòÅ(Uá…ËÉ°6ÞÒBõ*³K*lnìÇðüzÓCÓ½5#2QÂpÛãèϨJ¨:c‡¯Ÿ³#ÔI]ïX¦áA:ø´íÊBúÁìÂ'n3Œ|³Ù’b#%ÆÅ$OWa–ÇIR×éвÒMdRf©‚¬Œ>ßσAÉÜÁ,øuODB…‘‡«¾å†¼Rqa‡L/eÔ’(¤ ˜¢K)*Ù@Œž쉙D„ï^kÕ«Ö®’l&¢H’ 8"HÆ:A(Ę:Â3Û¼¥ã§vâš¹s½‘¸. »)%Ùe# ³_Ul2Ã’D:#2;¢¾âênïÕ¢ìÑç3OÙ·ˆèœP€9uøk5Ü“Ë­ßÆ=$…™MqÞv$Sµ®Ú Œtªb |DÂx_yu™ Ù¢Ûù.Ÿ%ËãåzBÕûZ׫F¬›Udfó¤ déTÉ‘¾3ͶÞ*+{ªi£h™Eµ\£*ši4Ô®º.mÐäÄ–I±X¶¿"­Èň­×Æ”U^—¥êZ×PF _çþš´U„H¬ðŠF…¡Š7ĸeÀ ®h 'kåŠг)ïÆ–.»YœË!hE l”•¢+#%¡°¾2¾“8A€ü`d‘Íé{„”#%áܲÒ# ä·†"« À.†±ZhÕ#2ÅÖÓHFÇП>ÞN|ÙËã¨Ö7,#íÞ’Á@Ø<#,Ɔ÷eëŠ{¤¢¡©Eÿ8G-bÒ”<aªŽ¹"–…@¶Â§çªUj¬õPT*éd“W˜e¦\˜°b(xÐuëp:wú(ÈvGõUBˆóW6škºí¦EF“h ‘ B«@ ¬7{wJò #\$lÍèÖQxUƒ_(Ï)å¡O‹)<¬@B*èLƒ+(6ô[á>|_`ow“Ž Z(3¦±E¸ÒP!@¦ÀXÚZÏ0É?#,¼3‰¦~8û¿åÀ…k¤Map.E´.ˆ$çíø›1…Œ‘#%¨!G÷0Ü&?šÉ¤“CŸ•ÏªýS`ï;‡Š¤lƒ¨„‚°‚H¨ýœ4@OÏ}ÀÅšH݆&Í5’Ï›·JøçþYq6?Q»™Ò‚F’‰aKÃ1#,×dÛïhOEñaæÝc<ªž@¯hsOÙã÷È(#2ŠƒžYì!À‡!]_f\^Þ¨o·¡G\3ïш¨YPê;u#%Å„~a9Â@8:Ï|)ª)±ÇÈgz¿/Cé¿Ìw.;=#%žd#%RIí #2J¥*#2¡DYX@¨©PPfŽôlY‚!x¥EdBD ² *ÓPÆp;­Ì¦["7̸ÿb?GŒ’º0V(-4–,Ì…‰#2-ê¿PêÌ#‘ÜtN‡Ûcí{Ô~?~ÕåµX†"O¬y¤›SÒžÔ£C¨'¨^6r+/ê0å$$TC€Dhˆ'ñ-î0¹’Õ"…¤¤W#,/"‰ß«±ñ>y…Þ)Tbb³ñõùòâÂp,°qCœ²ÃÚk( ðy£™v‚µ÷O†Àö|>‘"|ÂÖë´¯œ¿J${ÃNYvå¼êï£ÔŸ™HÄT̉I:(™¦¤¯V–¾t­¡"Ž´†õ"þ¦´ÑúšÆ-ìÊ_›á†Œ3TAb¢¨UH)Ÿà»qML°)òU0)”°–;²Vha–…É hÿ}/oð\«­U€-*DÆ9±ò$› ÂuÔ*¯µÉኒeb•mqÆøÛ0ÂÝÑ!ªbY„dÈ‚µÒLÖ[\KÈpdÃïPÀ&Qd¢š•XˆÙBˆ‹j³yQ£!¦6†Æ3+%hQ¥#”Vk²ÙÁ”€ÝBS ,†‰H춨„)&Y#2³p–›2SŒPa D‹²Yš êC £#2d‚›pƽ›Æɵx±·¿®Ö½*ô¸Rm‹jéÑ„&!5e¤Ñ2¢Mƒ1••´7HÚ­ |™ÉcxðÂlŠ°¬1‡ +E‰½T=eX¥ÖAÉF¶Ñ×PÖâJ¶ÆÆÓaG$NMÍr×.m£i]Ñb¹nmŠå¹|Æ$ƽwz\hyuÛ|[#aH‰/Y5M¦hÐÞ¨š¦vp¤±˜ÂaF“£:‘vÿF³#,2ÂF›áÉ5fn¢0åŠ(2ƤÙÕ#,ª0eŽ17F H-kjVVÚ¦©ã‚¬mœD…ÀTxµ¼Ï#,õ¡þdsð}"0I™,¿3¶‡È¥-¶IçR`B扭<x:ØÝû_¥„gÙ@™”ÕI¬ÆñÚ­ÞvëÉ–ë5ÐÀ.¬Oã褦Ž™hþ~¬­ÀãÇÚôø·‡~Ž€<¹ £Ô›¨'°7¾?Tüh…˜@`UÑW°ŒÕþˆ÷‘KNèÔn^VÆ¥K%¢Ê®ª1¥D™/é*£ Å-UÔ¬jÅmÍÖÚH‘™%ƒ YPuŠ«#%–¥IIÀ²n>Äþ È#2r,;Q5R1iìÞx‘ìæX#,Gꂤ@ƒÆYÁáöWg¿Â¬{S(±ƒk—Ûæf¹!¡ç¨1#%¨REVŠ(F¥T¨˜F1%ùèD*¢l#»þú`3#2¥Ó(<÷]_n3”æ{@ñrÚ8ó A2TÚÄý±Ê#,ãzªˆH’*üj°SBmËrø¯)d­“o;u)RÊ®kšÞ6¾ÓmyfDQl•¬6Bª=MbÅu]Õ½5{(ØÌ‚‰ˆÑ¡ BmRE˜˜RKjMZ“4¡ŒÖâ#%ÛlM Ó TQ#Ö2<ã¢Ô¬~|º!ÔÑù$ZÚÁ&Q]…‡H#²#,E*\+ñHÊ¢—$€>—`@Â#2HÂe†`ØÉ–@2…‰9$±„ 㨋kÜë˜'%™#%GA .ÊŸCö¨ö±1ÔÂíù×cs|ËS/F凱IÂ{WÝ$Ö¢\{úó<¼)Øbµ ÏLþÓîâŬg*ªá+:wü}ý#,½»R#]•Bq.*Ø\W0Ïa6 ]‚\°æX7åÇ:èŸ\^¨)QPÓä° Ê/â3íå{«™XU#,œunEØj!ä„=Ã`ì+Á‚ZTëvÝÅ%RÒ•5XÚ†m5ï+¶4ÕfšÊz•Ômbfe$M·eyùýoµ}ëé°Ó·}ƒèÕvÀíí»GÞÕ(PHðØÉÞÃíòHØ>Ï™8!y~„Gðó°ý§µÅÂtĹ³ißZxt|Ø`É|tê“I“mÈ*“N.÷¼7/1œâ¢òƉ CZÃh¡ªS#,÷×3GK†÷\$‰‚VRÛE µ¬pc#,°vº¢ ÄÓÃܘ‘”}†#%Œ(r¶ˆ7Û‚ Yˆä> ¿Ü ž)èzû «¬’I$HI ="ª?ª72r=‡™âZÞÜ´ÈËÙùo«’×®k¶ Œùìâ¹WÑbÈï#2”å5C -E¦¤!l Éþ÷ÙÈ„[œ•›ntsú¯S<0gQÒUɳšb?…Ž51º“GÏÏ#%Ž5Ò×!$@C÷1Jt³ff¸#“}l;›À#1?ÎÕ+¡F‘4”L ¤# J ]‚5 4ãUŠSDóCtÙ~ßÈÙøjL‘Y p]!:@éGų¯U?Ú–€?³á¸ª'ý?Ñɦß'+’á#%ì¹M{ žźœ5Øúkf´¿7‹áàCóCàSíMZʸk2PùüCTà€‘¨ðÛ‡äÚÂ5ˆ¶PajJL–i˜¶¦¶–¤ØÖŒŒe5øåtA&‰•2ÒÏÐÕ¹mLËSdZ(YšÁ+f*˜–6Ùj¥iµše¬Ël±%¬ZQM©˜›5Y¢iªmŠª‹`#KA›Mžú¯•û»¶·éìšÿ7Qõ6N;®%±¢B&€®rz¢œ?‰:K[›h­k©Ê­Eµ‹]Mk\ÖìÞ#2¼Â£ßÍÚkÑCël$pB'buý|4àÚ6DÜÕÎbÖæÅ—RüV–öª:ä$Š~áÙüKÐ<â¾Í´‘ ‰ÄÓŽ0)!ô4F #2}Š ?ÃÍÁ>Y1q@a>;ÎVGª ‚ŽÍÅÛE/iÐ #2z<Sû]9 8Ä (ŠT#%=±¼CCØœØÄÀ h~"‰ ¨C'‚Il¤)òcr—µ-Ò)8R§± ä³â,[Çï><4ÏM¦í·5à°bÀ j±Â`TЂ,ïò©iÁjClnIrzˆÉ6Ý)¼ ™u—2š^³30xã—é—pþ#2XXPµÈ…p>w·ÃÖªp"wCHÏ#â:Edì$ð‡‘(J;™Ýuwv£&¬0jO´ÃÀT/Wb†nòâ#%AÁlÅÚnï,ef ¼¼0#2OtPܘpqC„Kšcò‡FŽüÏVÆ"µŒ!¨ŠÐÐÑ$p¬/ô/Ó4tv…›‹Yr§ƒÀý=§6Ï”Rbâ]Cï†ZN?›5¤ˆt­T/àãëŠ}ò}}#2h^0û ¶£a4÷ áît¿×Æàà Ó…pMaj4†ºþŽGF*AD—¿îëÃŽxÝ¿ù/:)yµ$$=À¦³~FÖúœ•à©?a¹L ó}=(#2IªB„iÁVBÁe%,¤¡- &ø|¼#,1×jÔ>i¹.¤RôEebRb·Ýuë¯óº©ßψ0æô×@wõÿŽòÈ¢¥˜FÖ˜ÓVYd„AHÆxÑ@±B0ܶHFšaS°$RFÚd_o³ëÁ£ Ý)œøâ`H‹¥E)ƒ–°·*#Ó²vDIUãÆVÒJ!€Æ FÂñ ú˜–’0.âŒcÖ­=×ó©ë/ÃP#,™3ÍU¤2øŽß6ÉbAÊȤ@ÆT7F2¤ñKAþzYn̲C<®Í¦£(‘"b‡×#,0R!ãÈ5éŒ5RÕž5—Ÿ»Kžy—¥%Âk«…ë0Ž3¦óxÐÚäˉ¤…ƒDpa‡Bæ ódÀ»7Sªq#2Ĩ‘(ÏB \i¸¹²óXb§ç Z/9°íÞH£EG€Di@…ÈBŠ!ICbšˆ¥„ˆBÈ”ÅPe'‚Î#2z<TC;4žŸ?#2^WÖ¨è:À?/‰˜!—_D}.Þß'}U2#JdŒ"ª!M£¾j¬UQßIìOÅ3˹@Óx‡4mÆÁ½0áK ùÍæÌyî`àBá››f­Yº‹% ÙB‚ù¶ÛÛƽ#já©0‘Y6J-…1d…5##,p>mý3;ñ>09*(Nl…0)êóe ’ÊĹ„°žMD›hFYH9) ¼óÊ}·Iéww`¼ò¢ˆtg¨}\l¢È¡îk‰ =åP¤Œ"ˆu2îÖƒM3¦‹L<òô´pÀ‰ƒFÆ%üHbz ¸¦K#,,J¥IZäÌk…æD½#X=<C¹¦v% v"|Jr+wt•ö}•>Ȉ«#,#,²¡´®\©er(¶zÌ|´½ Ö#%!^¹ªCÌÍ­ŸÆœ_±â¨èâB4Ä{®w%?#,þŸ95†á/›üçh~D$Á߸–&M›eÖ” je 5VWE·[Ñ$F¥”¤ŽÂB°ƒNÄx#ö/tŽ•»»'ò“7¢@n0Ç”áLî΄5N•6‡ÍD]Iã èŠ4^›/&sAn\\(8#,ŸZ‘#zJX”ýÓ²3Oo«Ò­Nº¨§S‰uªVÜÕ ¸…Ýéªýõi®s›Å „åí¦>YÁ{ðc¤#2Ó]Y¦YÜÝŒ_]#îûc«Ÿ–»‘ošØê5ÐY•Tñ0X#%I#% ¤€b$¢‚T-’Ëa@C¤,Y,Š"n1€l+p<;ŠTÈ)í ˜©Ù¿Ó:þÀUyónê.ïôô^ô#%èjü5Æ©ÜþCG›&,éàקذå@B8¼t(è'_R4/†‰È@nYGC•–é#%–€<ÁpÆâ:—ç³ß@këëõmCVÝçv™“Và{Àü™ÄØ@„_[ïõ:µÌòOB§¯ÆSÌ‚Nl®Ý^º¯E0M‘6Òó·5ʶ#,BÔ¸‘ØÆ’Bc#%@ÆI‰mˆ, Ü„²¡B\©)è‚Á—Ó¨ê6”P[Cý´.ÝÕ­ *î '€á #@!õƒ]¶~ï ˆZŒ‚0#2Ä»!¡ñ*Ù–Ò#2f1kR&'Ñ“=¥¯ÝÖÛ»Ûzë+º.™pÌk£ŸX‚0c#2™S+Ô–«›yxí]-ð^«ºÇ7Š’aÊZYlÍVP‹lTÚ,‹C:E¤ ¡Ò^öM± †$AMž=(Mj˜°+ÔÖ(lYC™\m§–î˜tx&ò%¶FѨ‘ HÙ’ð aÃX%ûö­46¶ôlJðëÏ;·ŠnæÙ‚(aÖ”^,C6Ëf#j—pQ¦åö@_æÎqS´â¦~FðQÏ…ŒäUÈL÷·ݽôû}ÿ¦µõïÈ.þ@Øœ„ú}´¹Ê¶7{½^‘{$<%ÓPÔ#%•@° üùVº¬E„3”LÙLJêwuv ²„¡¯¼«ØZ5_•[}ö×™Y¤²£Y+be£d´š¶5JjôFH#¢ î¶ËbÂÙ%!P*#$ˆ}ÝÃÞ^¹¼cö0éw,%6õ6©ƒô;UU‡§¶ÖjÈT>Pr)N=G.;ÎÃO~YeÄUO”kÙ>EØØýY˜#R&@óÁ‡mžôŸ7º<âyçý½®ÚÖøm£S…Wó?%‘m—›Ý>“Ák}LÖãi„“dÙTA¿G”Ê#,åöõã™2ÆÿA½ß³7؆V8šÀè´#,ê¢hHÜÄêÂpÅ&/m…ÇãîI “&ÛŸNœƒ˜ÅŒX£=›È^„ÃÄÒ$Ρӂ kˆ¨ìro€è1mÍ7ñyÓ3´S-ÌÒš‚{O‚—Æ]íõm‹sî6H_ÇÆ;ïm×ô#sµz÷%ªì2t‹¹„Õ1&yýr÷žäó×ÕŽ9ˆ<‡Ë^™j¶ ݤճ¨ïòöž*õ¢>gŠª>ìé ³iìîû®è¼`Rv™…@òð £ æ*hia W˜”Ü\èE637ó#,>OrcLëǽ.í'XÎtÖ¯<q:¬±uŠkC2™ït×D‘¾fsMÖï%çHTb»üè[³ùöS·Fíð‘AÊî¹ØbÎ;¢~Yú™ÐÉ Õ±P§›&©PŸ“!/g£fÿslì2÷,Ës´Èg«|]•Ç/ èD=`¢Ü*L®íB,…S ’˜(Œ…ñÉrf¨–Š°¨#20‘Q·™KAŠCo·UïÔQ‹tÝ©Da¥/Ðå& ü„…Çþ‡Þ_¦ dº ±MÇ:ÖÑ`±b!A1ÖL’Œ±$‚Aƒuƒb€ŠG#…\"ÑF˜ Þ ”DDøV/ @„VĸÊ&£*AÆÓQó½s7àð:Ž¸\ç—C³ÔœÇ¨äëÔYV_»þ…çt”PJªÅ¬ZÕ±[›Ðö"û·'Ç4Š|÷låËMÓGÎòç3ºž=Œ þí”J™J–µq4a«\!yNHRe¬L‰Òº6yàÒÃ.¬z i£ è0#N»‹‘ä$µµ©-ââhG¥>1"°‘5eË%ÉzÑ¿¹Á>|MBÇw«ã´$ E††ŽÑ fhlæMï ê”Ò0¢š†©bÍEJnNeEh ’m¢7(ŵ4Õ”ÛiÛ¶®¤Ø›[f–Õu[+”ËÅËË»JÞV·Í–Q°¥J­•ª±m«îù6#,îªxxC>¯/rR´×¬¥1¨féÊÝLæ²äVH$p×ÛQ`RM±é|Rl<3©òi>LÞ Úëò»)ÁuITU¬õÝ·ÇÕÚ†a!}†Ý)un”²'1/ÈÀ]N…h×_>Ð9\LNÌPŒ3&r\4ÓXvÈpngS)d,¥1§ÈkŽúwóøÜ#äÄœËcÕ·“net+÷!¸n#,|r¹2²ïô{²#Ù8ûë¼ß´|ÄF#%©=ÍèúÛïÞ…Œ›±àrõë yk•ñé蹃#%Lq '[÷ù<1ó¤âõ¶þ¡¯§+þýv4U‚³#,@yJ›íFì´?>›k&Ù1 p«]c†?jma'zÝÜɼçÖm³€ˆg Œ×´ÿ‹ýOøŸáý{~ë#%µ?‘ B–':£\Úˆs`ÊFN‹‹‚EÊHH‡tãÝIj¡6¨é–ªº·kBÃdˆ ضÄÂñT‡æ5—´¢B¬VÙ™†µüCÖ¡p…Éo&ƒ`#,B#2bÜà8Û±dˆS#,ê.ˆ.¾xxá¤Ó›Áâ}S¡‰‘bsÞh8Ô¡Øwâ Oû2Q9Þx"ÉiѸtSHË¥À€{üå|]™ÒÜÙ°­Œ<Ê¢š*ÿWÙÂû5?6Š«á&ᤎ§n¸<ypÍñJi´ûî¹"&.#,™º ÓKõ☠àw˜^¤# sƃj¹žo˜4Úl^6†ñüÌFx„ܽ:[mötÆP‰¸#2eИl %&ðLáÒHbs­Aõe,tÍr#,ç¹¹á¤^HAY}ŸU–GüÓ#2ÙLÏætñÈ'± Œ¤²Ým$1Ó#%ÍÉxFQá§ô­š´xÞ¥t,d4qüv4†tØ–¹&AŽc}ÜÔø[u¬ì|RFÎÍm AÂ+Å`Z4{hÔŒ:Óé¼!å¹»Pm×”ÆôaШT%_o-U—€tä)eü7•ÓëÚùkËÔˆ?Y„#%:à"W¦ª†O#ƒ3Ç’™¨š¢ªcWfÛŽB" KvÕsk§Ýl^6‹V+Qm¬V£h´jÛ6ÉRkF²XÚÅm^*Û›cms[kçLÛ0k±Ðà^Ï£ø¯·0ž±¨Œb)Š”?>#,Ê«Ñaw IåÙ´àu6ßvýøg7nYÁÞúËÝ;«Üd(]Š)5«=:•¸}Çm0 Ÿä£fÝ°šÝtõû\ û)‹×M]ßÆÔa6Ù Á$6ƳRjÊf1’e0—í^eü{SÞuˆi6ѯÑí#%H¡##,Gš¾{s0PÚl¥D.äÆ =2{}ÑzûuP{rÃù?'l˜uû„#,²lÿc³eƒƒ·\æ;ÖL2Ù ý§@qÌ^=v-}Ä…#T¡é¡ì­ÅEœT„ÎuëÓg¼ó·¦4˜«V÷`ÚŠZTÕ+f–-þþ×®º`”&#,I+o#%='Í@±ùöß[­š{(P¨; •ªé%UIAæGÈ’>^zóg;¹™âÈš²oAL›2e!Ñ€{S,…´ë,¶(S+‹êXë¸A¡A®§2@°$ÿB¤U £a[#,aA˜‘¹óçª×¶fpÒpPc€ÈÎ!¼1#$Ù•R ¢«T*ŽÌü~Ÿk¾¬§ÍÏË©þ­Œs^†±4ˆl$r,&Àª XŒ„Õ!'±=uíÎ0_,]Å:gT9üÏ~#2ì©”;äwŸ™­ª\Z¥„ríÊß*¶&='¬…4u†gCªª-Ó't;v3‡„psבbÐ1|_²Àì\°X€êªŒ¦ j ŒtX :gù´ô.ª#,þ^°Ëܯ°{ÐÔ^9·‡3D'¬÷#,ÐÙëØ]N~“­Ú´>:™ûê–û/Ô˜dÅPªŠÍu£fÚÖY£!L…2UP±`€Cîv#,h)›%“äƒe5'ÔorLo¢c`ë#2;ªj*(A'˜#2BiHÚ™™¬T4Z5×]F,hB_À{*#,èQfðÀÆÀnBhT¬ci0xÈ`hpUÔJÄ0`Ä28Ü«hãÕ!ÁÑ­S£‘ ÉLkLD²ü!Ð6™Ú(ÚßspHêÃWÍ3óÕÝ¢ìTªˆ¨ˆE€*æú&æE›%ZR®t™æ묙R¢Ò»èóÉæOSnøõëųzÝnÍ—]KÚˆX^ãziP¶ˆ ¨ÌÝZ@ŒÎôÞ^Jôמ5u¦ÍL¤hA©[)Y¡”ÆÆ-I$YM¦ÆK6ÌÉ26ÙKK×vòí\šwræÜYºë–ÜÓ·oys^o;Èš(Tµ Æå¾]ìöfÃ&™¨yz*F÷ÕÒ#2›ÄÒ”<·šA°ÝMlÄVDe à­LÝÌ •(`6Xñ==YŒcnµ#,»§dÃZŠ´ØÜhj4r 05õÕZÆ,ÞF4=Åm|¸ði<÷Tq“i´ @Ü ¹´× Ã3u¡¾˜š¦4Üpiõ)‚ªjÅPHV½mt¢#_ä"A#,RPŽBÇ#,9³2Éj±m»¬Õd¦„bR.Y A@Ë1š¨Ð™0æ£m#@20€×-6šaÛM´láT«2¼VDVm&!#qm,d‰3-$¬­{]kƯ'z]ïîIÉçv“Lfc¶¦0ÍúåÎ8Dj0ÆðÄ2·a”ØÙpÌÈ4Ôâ°¡»±×Rµ-¥.&‚±9—óÖÖÆÖ¤2EôµŸÝ`i’l(A££ÃÑÄ£ÞÂ&ìÛÒ™#%9å[­ÔÕ#ûÜÖÞ÷ž,ôÏ]­%c)ŒY<¨GÚ.ÃN'ÊIJG†¬ÜÚÚ0qÂÙÖ‘¥Ã#%Õ4‹†À5˜ÒÛ1½½U%Sg†!K`Jù–$}fèl8Úøž¦e™þFŒ%9¸i‡ x¡¬†ÃC?Tñ€ Ú}Ƨ"Û1ÈM°˜Ý—Öd6róŠÔ<åA#2ŠµŠš£Ómäå…tÈWÑŠÈcØBÍ×™P[i†Œ„ͲKŠ¥¦šÖfÃÕ7ǨM%8œk$4$îr«P‹Fͬ4¨jáQËb¥ àµ4q³ ™ÁÆѾ7oÃ=ßlèÖÃŽ8X#PX‚Tƒ÷dB N!.ÐZaÔbÓ`õrn2ƒ2ªÝ±ù ¹¸ GßO8a¤)¡ ä¥P4-(ˆ‚ƒB[wš¢®š³o.ÞSR½mRµX‚”lFÊ,…€Â$¸#±Av D$—›þЀrÓÕÖ|CÅŸN'ÏË'ÏðÝÛ¡ÁѪiú·ßz öõE«÷bÄ?tÊhý4Qˆ”ÖÊi&½µÝºÅ­}(ɳù4¬FAžï›JRš-!wQ•Qø»õ£É½b¹ë4<5£ŒÏVÓonî¦JYÚ¸¦Pí”ë²xSpT`VR›¨š—¨”ˆ‘²¬Ë_$§o—BiY<úë©ÎŸ_Õ6vŒÜQ˜ˆI!Ës36äê6o:+®xó6á&œRWº®±“­Ö¾f¯#,¨°*°ƒ&cŽv i"9z]#,r6ǽkØn Þ¹§Áå¹ûûÌA¿=EÑA¢vÚ ;}Õ¸m#,Áƒ¬£—‚ã¬âYÈòSxïj1_‡Vvu曞8"åÃÀ{³P’X§·ê³xFpSÔšSvTDË@#m–A šŒ¾Î¬á‚»³«ó²›¯*5Ä•5é9؇IÛªâÆÎ`Ø´·Å8eh&—–8ŽÌIœú{ÔÔý³–\}(qH àZ6ÂU+|«ömc[lö™tÖ„º’À\ SSeHüèT#2 x4lAR|ERŽFȤm!¡Û¼žVñÒ£xªìÚÜ6·MªM«¼tX«¼ë—M]­¹·væC^6¢žd±i‘Š•5sŽê»»V5©Zkâµ^5¼•´›¥[¶ëÏ7ŒV4’ÒA`!æ–Ð’„=z_“У£a‘I}ا3ß„ÖE±$V HÂÊ QB¢F¡Zb‹µ€ é’ ]àRAw±²ÃA(×{–†¯œÖ»^Û^LÑ-Â@1 ¢–úe#,b¡)„í´®µìÖ¢*5R”µ"þZŠl¢Ö+13M*-±¨ÔÌTlj-E±µ™X4hÆ™ªM’Ì¢fLJ¦Š#jfM3iX…©‰5 0’n>XT¿W½ï_Èý;$L…>}«kÏPi6@d„DRËñ:l¿äŸ“ÆýÜüØñZ^~|’—ää¯qðDll…|ÃÄG)‰XA n-õÑÅêUH2>Q‘D’™Z7Ðæú7«¨Y£UŠk}ŠÖáV¼Zéû]]AhÒžnê#m;»:í®í%-mÌTUXÒ[s\¹¬êí7gV´­ezíÙ¬ÔQŠ«¶›vëú¯7ð—Âw²³‘“,Ä>¢$óJ#%L&D#,âh’LA"#2 b#,‹€‰7“–`Ij¨ !&ÃJ:…Q"'#ËŸ¶¤¡Pm+¤Ä4ÚÁ €™—Nκk‘fñÖ¶!4ž‡× Sï»Sà:ß>-{Þ>¶#2'·%œ'ÐÌ~úó¢¢0u¢C*"Â}3M€Cî<`lØyÕGô³†µ`ÞÕ31˜Üü,°q±Œew2M5 ‰0Å"°fÔÓtpI¦’<áÜ{ZQÁ‡xBŒH“©ý÷7>ý¯aI¯O å4C¡““¦Ï€Ê·õ—‡1Æ©Ýa<ˆ5²“ð+¤»/¹Þñ¼hÀðš]™3aÌ8fùã—=¹6´ì§Í„%µÀ{+ž3“Fpì,¶Ú;]ÑR9©–„î0`áƒ)dÃLK»Ùîx&‘`«üvбŒ°wÄ$ésüµa=óBZ»,‡b‰µM™ÆËgåƒ÷|hÃXðÁR˜«úLË)Õ+j¥b‡¤“aô6¢tÒ!uöš''Ê0ŠÂ,€†©-¾TûŠÕÓRcI¯ð²¿Ã‹•é;b+œTnM £b‚Ea#%m$#,¤ˆBÃéºÐwødÂsø+Ä8co:.3éH†"¯ÊÍþ% tíL_ÉÆ$†Y„‘A…“ È"ÈÆ(E E±„ô5…-37lZRE ÀÁê™ñ ÀH¹‚·A²QVIŒlš¶®i¬_l•^wUÄOeÞ*í"#is]äëŸZGá*Æ’F2€“€œãKÁhã*7j*”˜°„±X»±SV¥(1Ä*ÛAÍXU¬!R#, aS#2$D•Q#2#2ŠÆ,€ÊŽXI˜…¼aV²“BB–ŠL@^4 ?UãÚÆa84Æ1zÊœŸÝïóç{ùÊ…ã )H^v{:!ÏÐý’O¹‡kh0°U9õ87ks®ÞR2qeÄœ¹q9>Ó oš1Œ˜ÖKQ·nžíùîÑ¡ÛÐ *Šœˆ"%k_‚ð˜‰Võjû*õm­ì€‘ÝùûCÇLþ³âB@ªPþJ3µ†Ÿìþö%èa!‡t?Bj™?<kÒ0âmCõÿ`Eäs™ýl#,7¢©©‡®ªé+[;~:q>ÉzXÓcñ"<ßËÆËWO¬ù»7îS6r^'oÁk±Ó^#,ÐêeÜ-—/#%¨³†ü8`èþ! ¸1Ué×YÖÁxÙÝÓ!¸(ƒM!#2‰%¡–(žf¶i¢ÛÐ6&r½õ#2ôÇÅFƒU‚;20Æ„Ä5ª*·†&’ƒk8( DRª%+H£I#%¤ ®6²0š@±“%É°dX<¿2¢^/Þ#%×ez5r³ÂŸ— %Õò;¸ž>ÕHש÷ÔÙ7”9°ÙlÞ­`gĪtçœ$éSÔ‹úŸÚ }s¨<ü ƒÂ ªUSE2@¡€JÁ ªdb†"`A,ÿ’áßIB .Grc>?®ÏÇx¡²^BSUwUÇkl&VvV»1ùëÍå©ÐýÞ2|˜²,‚Ðnì]PRP±)µpÒŽ»¼^CbS›™y¸¬ÙdM$„ÙRÔxÛv›dÑbŠfƉ Â\ەʹ±»ŽëÎÍåÛŽºí”s¡r»»tŠåâÞ<•G4Ùo'™n®]ÍfXÐíÞmR­vÛ\ܵÓjÉm”±YÖå6e“dñ[»»£tæ®ìΚäŠZ3œ9Wl¹Öj-9Z‹]´Ûrn ­ÛfÈ#%nn–Øž¸†áv"AÒ#%=›}[Á ríÃÕ±(#%;‘ÿpwÂñA`Äj€ ”('k,-ˆ ¯¹CÅQMéÕš‡ïÎÜ#2£‚6ÒR#,Á)ˆßT{¼a=a^›ì6{­|M+@>1/°CÑŸx¤ü”(P~>ýÉùûN†Ó¬÷!`¾V5™‚5j2™š_=½UAì‚%F@R¨,ÿ¬¹gúã #2Æ#%™Î¯w#2)ˆƒ"," €‚* bBh #,#æÌp(> ZZøòíÉ\·nv©Ç]ÝK+0ÝÛ^¥¯ä›ïy¼ÄÌ¡žà†®ä%‡%Zé÷BFcÕ¹n”ó­¾)éÓ&IU‘E4HãRQHCL#%L st{nô£I…ô½-ªòR #,)k‹`&Q@´ƒL`BA¨.Ž©ü{—12#2Sä"•y‰ýÜ`e~6(La¡aÅb”CÀýŸÅ5ÊÀjp‡@Ö™ÅÞ)U_}«b¦«+RÍ–Öiµ@R#%Å‚Gzˆ›rúÐëµ[ák|vÙdÙµ#KL£$UBH¢ÓÌòc›ÐÔ¦ú/Óõ{ê(¤Ô–™Œ&¶¿±P‘ˆ’@#X„.\1¸DýtÌ×jgm<f¸»#%=QRFœâ¦») #%üBw P"’I¨#29û2tÀJ&bÌùlí²Ú'îáæ¿{#ø!0S÷ {ߧ¾¿=õÞ(MË­#,`bè×f¿Jr.#2±hR$ âMNÖsÌ#,© øZ.¬#,>2Õш’) $àÆE!ãN:ðøè>‚Ôu?ÒKºÁ:aקh ÒõÜ»æhiðBí”ÂD€Êª“#,²KE(,”H›PHÜ€4,*1h¥rç„°„FüÍ¥… …0(D@¤#,dŠLéP–6VjBTBW@#2Ö#,c0f+vʆ0TÆ—- „´’-½¬ÐSÒ®T–åïfÚ׊¶ÞMb—¶©#~NÍŠªð»/8Áo:¶g>”-i\4ÕÁTÌc3h~`ÉÊ$.*™ÁjÀÛKƒ¨ð»ÄžY%zýBµ5†õ{Ü6;cIãÍw”£¯3.ZZA‘#%$TG¤ JTÚn~öÙ678ä™ä ÍWYI»vàØ1£óPèMÝ#2‰ C]ƒÓ#2CÈ«åí:QÁú›FЦå’êĈ0°¨(V4ݨTr°)-P·Fékxú)ØÃê@ØöÃG߉#IjÄ’§^è4T#%”´€A`ăD¨UÌUNAk÷VÚ÷[¥~´S4®Þ­;b#,AÌ#PZ¤Štg[1¡„ ¢ s©xOd#,Ášy§GP’)ò)þ±DM¯pú~êÞë š6º¡ijª¬L[D M©tœgø! ×ÎUô°Úà›¯Œåù'צ½V—;\ÉZšã6›¬‰¶òÉ’c‚„$‘¦ÖcÁ¨ñ©˜ÛvHEJèGt+úrf–€©lc—©œ›ÛQÚ¨KKÚ\ÑP´ÊÖ.Zi÷NKÉáC¯^˜G¨4CÀ"‰ö…4ž–·Úhv‡Úƒ¦#2‚~ö€ýqØÕñ•vÏÓT@GaÏx(›€d<B’#2 =t4ÁUcì•"‚CÀ ­DC¨!QîNÉ¢ÎEÍ)°v?|žáN,m¯Ãü3†#,š¶ö!þmßzLŽ×­?=)&ŒBÁS4iú5¯”a6¶|¢#š#%:š¢šƒ÷Âý|9Ä}¯èÓÁ»,ÇÖWëúëèºÔ ¯Ý(Th¾}Uèuýº)op–V]½L±æ5ö±!9B4ÙûUèÃ-!¢TQä-±B2ƒ6Pnoû“)– µ¶÷Y…ÄLm§(íÍT)ˆáˆüZð;xxLœ)«iÈs\ò¶6EУÅ"c"ªhœ³ÂÌJeKjK‰IœUÁ¾j 3 &4hȉi <Áü|ÀD7÷6(Æ9Ä?/Þ¶õàŒ“ëÐ LEj#2bƒÞ†w}~g__º4ðÚHü)\j$sèóö˜^'bvÆ=ŒoiËs EQƒç$Â0û»#…U9³0$‰{Š‡~*à”#ûϾ­ëúÇÍ1L}â,³jÛ„­¡ {Žr=œWÁ—óí”Ãz4È Á›ŒXÓÂÐƧÓ!d$rÈ6iãÆ1’@òx `؃õ [›Z"Ù­b1´´Ç¢M&ŒTÒì}s»!‘dævgÛ#Ê^­ýlsNèÝïÄŽˆBÄ“Š6Š½>²Ø3Z)EÌAí<´ígJy¥íý´ólؼ—ñ:•Ä°cÊ=‰7Fð>ÌW`´ŒüY8rËW·—öÛ`§(7¦k¦ñ¿Ž²º<ð-»Öa/<˜ßËìî\׶s‚#KK³0:¤µ7‰#,Û}™ =#£xàòÖžûÑ”êŽxbçÇUÏL·WKÙû6SY#¼äö¿3Äï‹®«’#–á:@ˆbF#,¡âT©r¥"Àñf)¡#,ı¹];¹ž#ØzÏWjXq;ýõF?žÓþQ˜âôýüÀ8ndwpä]}[tÌ Sõ–yÂ+­ –p@ô•ÇÙ›|‹ñð8¯i#bf†ÈV””6[k¤HŒ á¼Òa¯bIÈF‡È;güÿ#27”Šá-]õ–K†IçÛS½£qÑKP*Hˆf›eú·S¶×È#@èh8áŽOu—m­×î7íÎ]©‡ƒ«fj„|X±®=³©%l’MfGïú&-@ÙüBŒß°ñMZç®í[Ô²[ŵÒð‚9í¦”³‡+.jíéjïWîó!=g¬K‘Æ’‡’¬*©£±³Æ3¬çEnñVWûâõz|4Gè@Ë¿kñój“¶“]Ñȶ×c@2NÕR§b÷qÓÊ÷ÙÀ™B#,í1ÞýaðGQG<†‚g¤ hÆHË›G¼Å@”‰¡Œk˜nxy}¼çNÆGÍÜ´Ï\Õe®,<ˆåýø¦á4·tÏ°Nüg«ÆïWBŽC±HÎÇÓáNw3‰QóL7HöÏZ7I$#,LÛëÊ%ºQ™1‚Ù}ûÒ2wÃER…¦§‘±PL¿@ÜtIz…$“4ÛnûÝD_}š>€P#,¹a°A”¢“{ƒJ‚÷eÎ#%DýÐ#,}Ø0c1ŸÑÛíÐ+eO¶PÞ ]ƒ "ýx#%I ¡Þ‚CæX_ã ô#2Á»âADI‘!dH(wn/WAØ©ðßËHöWyù+ÒzS!™›¨§M½‡1æØC³iïNÙq#%ú“s#,Anã#ªù–Þˆ#¡ê:¹ ŽHïùï½Çì5„âc¸> yý+M ¢¤¯/€¦9Ù«jÛçÈrdÑ‹>‰¢Šò(XtÈ9CÍYe×H'@çD’H:cñ¯‡W|ÎLûy"!ìçGžÓ+Îe“W«Ÿ+qµ¥g#¶s9eYýbÎ0j†6“ãlvª)ˆ0€#R°0*$Ô=;#,îSƭᮡ=›œuj:„@¯Þã7;ƒl;Á°1ŠÂ@q+œZ××ÏúÏê÷³+)$ð³ò,à ވŠÉ.?¶[µÒ¡Ü>ý»<C%PAª‘ PÔ<Aèʘ~º!‘Ýâô#ßä9™àq¼Ø[eRqóI~qî‚Š™Ÿ²†™ÚKPfÛáOì)rÝž²¥J'úæØÐÔJœ 1sèU’Ñ;â”Ü/³Š>ÛÅÙ[ævš¤/²>%“žî}vÿ3þ?dëõŒçê°õ;¥7”¬#\Òÿçéxºä!¹'cï»`.s§cj*³³¼¸T€qòŠNšLh1bB$èZ$Õ¹pc"í…>8Jô h\Rgæ¿Ûú{ÎèjôFÝÚX$~YG¾'ôçã?iz*Š©þ·#2¬U1¸ÎRHæD¾ÌºÄ¦;“Û¿QÞW8K—hB`éÓ‚zÏ6†yO³¥Ä°áðÃ=ËàˆìP’AÙÈÑo¢¢?|»–|—L˜ûÚ­;×v‰±50@“:ã—~Ë}"ŠGJT§]¬­["@ÙÓÓP‘Œlý9tI:β÷ËÁlB‡Ð–LgJöÙf?*Â2Z…Jšy9ŽW*îŸÖUÚ©4km²Ù¬ÓT³X–”­SP E›¶Ysʵ$‘Ès\Ö.^»›}¾'à‘º(Šº!éR­#%X "…üÕôo^¤ÿGõü<ÈÚ3(Ê’#F`,ÑA4Ú%Q˜„˜Ñ(ÄFšTŒ”M#2BM›&•c!ú$åÅö猀ɳ'€«:ûÓ7Þ›omõºó?X¥$›6í™A¹Œa°Ðh™3td ÒŠ‘„i/›xÝÒÙé –@L@š5!0¿#,Ú%«ÄýäôX0Ë'N¸>ÁKn,Û>2Q#2öÔŠF¥Vj(æ£%ÛVG÷»ÌoGTa“"P•³!èbcm»ç1½.é†À[]4šªœ„>n¨¤ôÜŸ`°™&A߬rÞÄÖ6š—¤ëª]„ÕêB e™tÔæ ½×±¬qØ>ßÝéPÍÑœ·ŽA/οPL¦ýáÊU%@â@’Ã=[Hg»·õrL¿äÿ[;çQöÎ2¤Ó|Ú#%Œ'ñ¢¢Ö[©Œ”¥m¦œiG#%0NPÈ©-D‚„#21u2H€âˆë—Tm¹guÉJåmÚî—7WZìŽö¼ï!µ™­¸{x“zè¹q¶ÌcI¶ŒdÀi#„Š 8x)[¢R¡ ´ )(î²mÑ#R¬5LÆ’M¤!°MªMi•x«W.—,î·-$”Frã=ÁóÖÅ\èmx3* ´Ä_{¨¹H%¢é)fGHë .P’ñÊZì¦Ù#r'âÔNŒ¹Œ¸bš.fš"ÿb˜Wî~òõ8YÞ!q6Ž ]5Ñ Æ\(IQȆyNODj¤¿ˆë® #,è¥qFD…SV®*Š@ܨtQãÄi66UŒ±®#,”VÍLjÑBÒˆ’¼«³5A”«¥¨Š<w›nå”]vñ­õ]Ý®è#)çµFÁ¤f‰&”#8œ”ÓB¨…¢ ˜m68äMD–2ËmM6¦ÜM3ñFSLlkp’%#,X•#,‰ènKª'\ª´éIrŽÌ#l®¶Ö@¡¶W„ë#2%]R(܉#2…p¬¶ŒiÖÐÚn´ÙJ*[Ì%Taª˜ðo#2¬TÔ#,#,ƒ#%Ô:o.MƒyÑåŽnãÀJUŠ.à»*.ÔÝUËKµ¨$MTƒc£SOy‹lË2-«½ðƒŒc4Ngš9zØÆŒ8£xæãq!عÊR°UªãU Ë HVI†@”È:±„j§>™†3OK »>UÛã¨Ðc)Wi‰Š“a(‚ ³‚Km‘ÔáE®®!è½ÓTÓ#¥˜²(F5µOƒ4ÇA›7†2H»É­IA¸1ÈR£¹‰ið£NôÈ4«X#,/)ÂTqZáÕF`ß)Á‹Z´œjŒ#, ‚iQn…Í@dWc ÔB„64¦¤bŒ^)™†0Ê#,býßZ ÷Øsȱ˜T}f×Í›Ã77|{ƬZòQ²r­ÚLâ­!ILs­C#&D™VE ¶Fi›„‚¨(a S#2Hƺ+Bd€2´*šNDbƒÜwÕPÙ—OK‚Ø«å 3‡†!·Ì˜”K‰˜¤A³¡ˆØ¡)‘"ã±Ë7ŠQ¶ôÅÒ&ŒçQ# x>lÁ¦=ÃUEÑ8Ãña›‹§ëL½&ÊfÂÀ ÃMˆg%FSE AÕǹ”VG§•¸5ºC¡2#2>"žr5¶ƒW€¨•¾} 6¯*16K¾B/­Ö›ÜK#2ï€Õß©3+_ŽL†å.€1½cQlBb8O›er{ýk“8YX E«-‚6™4Æx5H1Ä#,‹»§]Ä`Å°K4©J¸(©0Ö\±‚’…0¸#,Š(ƒæ!B†ÐQ!bJŠ£"¤Á€4‰Š ­Õƒµ$C  M‘5$P¤6àå¡P‡qsïá»»xŸ¿çytŨÉ!X ¡'åE(à¤Z¡ªD"Öæ¤á_^ÒP[Qm±BÔÙ´Í Â0ˆ:Õª‚QÌ=€RŸ¬p»ý>„ݶhjÔ4íGexþŽê#%ʱB¢",~p\€XîÀ‹¨ý¹bßuꢿ¦5Q=TQ¯ê’«2à›GÎH¨B  ’#Š”h ;’(\¶½/aê’º¥%D8Uèb9éž_ ¼© ,ÀÈT"É÷N‘+î`YÏ/5Q‚ZƒcÞ¦’#2å•’â`zõÜX»»b1±­ÕÕÓkomu#,¹ Ý„ ö)#241UÃ)¡ÚÔ9”¸Ø=Â4H¡ËM„iH~±K,!Õ›šîÌ9ÅBƒ–A¬×ADG8Þº…/øþµ°·¨°ØBfÚ›—gy,k„»ÐíËí³]x·†·ì„‹:˜#,¾/=–µŽIÂEJÍž&«Þ€j€ËÓnâƒk%ïR;tÅôŒG>M§3‹êÕá¢W¨A+hú”#,_ðÄTˆ><…ÒrŸy¯%C°Ë‚ðPÃTP‡`ÆîN„•Ÿ½xš“£¸ü:ö½Úñ|/b…2A4<!„ʲ%u¯»ñŠ{ÏHÿ?»¯bÂ|Êct õõÝüèý§^]ÂÃ}¯âúŒý²’^ý¾#,¼¯Hœµ\9–ƒ Môq¬Sò–û5ÚÛòÒ:é!bëÕä¿TÞdâ|Æ„ 4šñG‘rA¨ªWÔ‚d礇¼ì½¦ÐðÉßz†R‰Ê'j[br¬#,v#%ôηUŠšûʸT71wV­fºËmŽEçа>•N¼í®F($èȇ`ò;bY*AØ‚eb‚ Š©ö0’á™ôNÊR¨QmTÎÞ¤ª£H«és¬k"ÕU– Lè0ß߉cYHj樤0À—mE„ý-g‘¾#,Α9`8šã:i64Ir+üUA†ªåD*"% "•RR„Lþ6ÑkÚr¶Kh·²ÖìKrîêÛù²×#,¯F±£›•ºmmÓVCXÛ›I¶¹¬šåËmsgw»\‹dÚƒjŠåi ‹#%þÜ0Ñ'{,»°âNyç`OLCTWâå8”fk离ᙉY‡­6ûCÐd…ì®â-Œè©"CtE¢ @«MéCÚþÌ.D@»I;»÷oªåøfùš¨8»ê /×#ï”~`®™þ"(3M`|gôRK10Ž'ÁƒblL-o”»!DÐÄHÚJFâ Æá$ñù逑^#%Äc!‘¬T0ÅU$@#,mm&ÖÝkC[]&Ái¬tØ-äK·*™ v÷ytH«¶úÛT²&²F¶Ù*ÚD?Œñ> Q ‚#¨:¨Gþõ#%&¿ÜˆyõRuÛ¡F-P¬ÐKÅ2PôÑHDÊò¥OEíiA×ÁC¤BRñ@t#%îÉ™~c¹?ßbDïô›R²n‡3ž#2úê@çCÌöj Øtp$‘(¿&ÚºÚ¿Ÿe-LÍ’IJ1idŒ´i66hmIEbÆÊRRJdÚ4)[h‹TU±­¨ÖÔ´­2Ô´jeJÅ­ÆÒ!&…~³>uºÜAŒmÖ³ VÈ"8-8d)Kj¤+áx0bÁ"¨S‹ ¤pcq1Á¼`DîA€P#v#L G•$…M( ’%yé 1&áQX›Cdc`DÆIk PªF L4 `JZˆQJÀ#DQ”4€Å¢Š" E®³B‹ä*#%-@¥Œ³íýììwR–„Z"èÛ¦¦îéݘÜ:Óó+µén Õ1RÑ‚"V$ ¶1V€‘´;#%átÛ\Eï±»8D#>V¼tóVtü<%þ^¬úëKžZ(¥QJöô RD`^Ü?—cdFnh{Z§èPòl3vÙú›¬,~a¡ %—ˆÀ—nã!#,†ZäåÄ0#@ð¿0#2!HT?oN*bá¬C©˜B,¡Â”êÅ&ª¤pêÃG¹8'jêœØBIDóšénãɼ•ÖòË©R™”/Ò»Õjå£kbѪµ@$.#,-ˆg›„±Ð? è{µÑþ)"0‹2FnOWÓ6Â5ËûwÌÖÖT ë/”ßX{Ap–Â!ê?óÊ?\VQ*rè’.&ŽotzY÷F"Ë`ç`΃՚‚RúÕ ÿ¡ùêÑJ—Šê%áMY¢ªS|š²|‰š®#2‘u¡“CíÛñÞvöq8l‘>œí²[,ðª0›óÇ\O•“Êžwö[›c¢Žø%aö¡ÚÖéÒ„èè~—¿¬S¿ï¸¨=EÏh»&/½ïüÛ§“òêD'Ü€Àu –3KÅ.¯£†èžxª'ÓÑÚ4› nŠŠ%·f{ET¼R!#%êŸÙø¦”[#%]œúoåc6:b›tu«0bªY·©|u\kmÆ '#,åÜíª5×Xõ̪Ԯ8•.¸#2º`f)‰bm&ZYLÄ’8œn]µ=´öÈ­¶~cßî7šêíÞwlÒ݇Žh€Hr§‰T2Ô!#Þ«ké$Úš™ëê÷-k†á¨BLwó©7ºd!øÈA#«7fÊh›à‘+e_¯¾÷‘rùž5kâ$Iև׭-“ƒ±K(’CÝtSIÉ‚:@GH²\ÙJm‚6¹8Êëÿ}º÷%á¹7ÕnJêy;k„Σݹ;,Ñî)å-@û^ÒÐ#2£lgö`"fP0ÚÂ]…A¸ØwíÑAy.N¾¥6»mf%®®&’0Æ.3KÇ) íËëI£-ýùËT»a8ìêâ3Ð{ŽŠ›º+!-c©å%KÂÞpÈ÷êïw‰fI¡ÜêV/J…ÍÍËì˜Óg¬p\£¸æ>קLãwI¤ÔOÝQ¯;`p†ÄTq]8¢Ø×RÏ|¿:¾€ïCƒt42‚ŠÙoåÆx<,ñ.m­§"e7ÍJãç¾Úxm±lÖ2a$3¶ü@ÕÇ#,xzk}"y'ÑëçæÓ9ïR£ó^0˜ò2.Íe0cš’I!ÝÑ||Ï3¹UY¹Ð!b<o…,pѾa& q<G&ÔÌS¡²Ý·;hY£mñeåfÙbªlC"´q8•1D”lÝðÌc#%´ãˆ~#2'^YâÚ3™zY†mSï•®ò)]»­ ÚNÍ´ñÙçø>µº}±.·£ÎÐœ’^I'—ŒÍ4oSI­>%é+횎øÄH‡K¯wÔ‡,†uµ¤ç^û¢ïO•àFÙ%*1»mSÍGµ¨CÝã6þIäÄAƒØ„EzÖŽ„Æ»-¥²¿^g»Î}s×¾Òµì)¢º^`Úqqž$®Ýa·wÛ)s¯Û8(u§<dÂH9ñò›÷ûï7«åå1û6÷–MÏrJÁúÑZæÓ(Ê–Vx˜«­¶®œ§|ʼntªCVo…Ž–.ï=綔$èÞ#]^UQu½=íŒôCåøãg£srXf¸½!߃š˜MÞåß_ç³½Ýz “/f˜ö¬í_›ÊW>ùóäìêÇ++d]zÌc¼_¯¶=½MüƒÂ%œ`vØÉ豋x<ï9]tâï9Û—œ¾rg„¼3;+™iö&v·¬Ø^(mF´äm<ˆê9†2m”ÇB›ØYMÎÏ*waü¹#ÃU429r…†–ö—Åk¡ø@“2UÔ—.õL“§œs¶Œa›ÑÇÏ*ñÆ$øÅ3â½—W=©Å5 F÷0d, â xZ¢Ã!Ýxi "e†ðœ6áIÂjp¢ù&XwÄx]É1¼yÍÌw^˜B/Ä$gCÅÈ×4!×­usJQ¹¢S]üĆhq3åq冂ZÀYv^A£Ì0#2sÀ:LØ”oíöëlˆVÀƲ v`ÈqÁÛ<%?UIáÎ׬ …ÄJfo8t¹vpƒÀÀ˜ÙÃ#%œ4˜¾±Ï=tðÄë]vØC hdçLC÷*ñ#%€@=Ü#2  "`Ö#2ˆ"#2€Â*Z‘Ë–ò¸QHædç»6öe–zX¤vès(Z–nUÅ÷˜ÈÛÂTé¢WY­Mx°ÍP D žR÷3Õû´L¬ˆJÑš\D¹™uVñ6\ÛÆçQøUZú# šàóŠ  ëDj^º&±¡òï'–Œ¬* i·j°Œi¨cA>÷[ ²÷Oô¨ÉÂ'âa3a_*TÎ+9÷çÚ‘å¶]'`ã\éµÎ£it°ü¡ÛÄúÏòghæz¢:§ç™ŽŠ–”žç—>ýcšŠETÚQSSNFüb((±SöÛœM—Ä e²Ú{Að]‘Ák]zVÔ4nû““Œ{#,”Uû¼¸ €bœã£ëIy[OD3´}«éÓi PóXLÌKC b_ÜläBmß w¾{ñ- #™iæj£z#2Õ®c#,‘Û­áÝÔ>ºù)­h´í£#I¢9ñÌ¥°-‹Oáö•Xµ}Tpö(fy߉bP/]‚7ZUšÔKLŽo‡Þ\Ź'LÑ<q{ÊV5õv²fˆ‚ÇÄQŽ™hÎÑ‚±åÓr»7–}ºzbnøqœjãmú®<ŒÈ»+ðç’$71ƒ¯`Ö¼‘×]²ÍʧÜßDà]zÜ·¦9£±£uKþ8«Ç¸ŽŽyßFèYòÝü­Îòæîü_hÕL0xNq]åÒÞ3—Ͷ •#2îñ©4vK#2z©ópÄÜB^$wÛ¾ ¼§ñþ²ç‚_€—‘ë»áÛƒLñ‘Î’¶­P®5<Œ¨ÃG»äzð`rÐ¥‰K/V–¬#%ô#XeAO™ATCKxÌY°½†uòSUÀè²G·œáP;ƒÁœ'ˆ°¹" 1PКÁ]°/Cr̆Š‹wG£Ñ“»yt2yÑ´øsVž#2ÞoÔrãAaߘ…ëW+gú"l#,aO=gr&Ä9fí^â:p.XC;–mrçyÄ»¼Ú0¥Í™ppö»,<´¡G7k[óT/Ø– aër‚K•ÈcÓ¹lªFªê ðQä[Og:C¦bÏu*ÒlžA]ÃP”a \†ôÉ­å¶!eø#2™Ò “4#,¯YÞÂí¦qbBI‘¾I®ï@âs8—Z‚ 2°IÞ@5VH˜p÷üÅùªë¯-F§~ÐÃidj†6M¯îû1è»ÞBß&­k]š—ë­ð»¡ð~#>“¶É±?Aå(ä·°Çæáp>þ r”0öÎæø:ýþʕ﮿ÔÑÚc³~ÏÛ}\äÖ†"^ðö‡µ{K`ä†}Sß 6…5J´>]|;Êɯ…c}íÈvuùáØœ‘=7‡Xîå.lÑö•¥1„‹$CèÒ¡E€|ã>j a!)ªºÁÝzc:Bè©¡YŠç1©qU%&F’–Ä =#¡ Ø¢d SÌkzkW“\«ÅäÕËh¼P‚U@’ ¦4„ŠÄ¤µé¡V¶É55£UŠÖô­ÜÖ £˜A¶ku¦R,ˆ¢`k¦°‹APcJ*"‰…EJ”ÃÞ„zøoœòÎ7ó9ïÔ¯®ÑR…#%ØÔ?.'hœœ…˶„/#,'I ¨‹7Ó¾…ø9ÜW¦ñ·¹&Æ´ªÖ¿*Ú5m­\ª£j€”΀¤D/zNè›ú¹šp×ôÃSUhûÜÍ}·XñËe©ÐRÞ9Š±Œc`ÒÅ#2ÝD"5Ëçj4°{nmŽÚæðÍÀÖŒt†Ÿæ1h‘]…2¸™÷M*Ÿvlé­8щ*ÌGÃXêᔳ^&‚X ÈHR UÐe!ʼn•A¤WË=HïwMãY„H– ‘"À…ZLÝZcÜsd0¢j4›M¥I°—u‰¦˜Ñ ¹4#2ÞóTÊ4øN±n锎’B¬—§ß3R¹£7‚9#2-“uAH &a“T-G†$ÙŽÝ˃ÍJÜabnF;Û¯c/MJi•£¯íe›ÜŒÔÑFš!!¨«XôÚÖµLƒp˜Ö\y'[#,jÇ©Ðç9«eo†L¶$1±Š Œˆo0)­T,Y¦hX±Áx±´¼‹j#,Y²m°É3¤µùojsÎNÍÚ4ÀXVC3”ﳯ$Háƒ`˜Ð†=ÐsaPBPÊ"4Ò1aÒéĶыW;Q U¡„Gu„:T‰y#,¬ªs«™[é#,+&JV°’ï[1¸Lº”L`ΰ4Ý€ÞéŽ=¾±ZæÒ’FèF襳VïšiÏ]P \‰ªR8ÙFö0TjŒŽÇxHéòç1FV´‚ò£œµ.¨CZF“Làè2V8Ôjm•UJahÜJhpÒ6˜6˜š„ÅÅ£o7ÞL–Y]½9ØfÖÂn]>tÈ ­Ù*(×W‰ŒwV¶J¹CZ#DQ†F¨fìeÚÞBᇫ®3`Pˆ™`p3DË_ðœÍ‡­eï°<·´,*FÜeÇ®)UW$y%áQ¾%w£¤L ¥šllé0á˜Þ€ôäcL…"½®ûb†[¥cMUSWË„!K#2P­6«¬ãŽ´c¡kDäf™ÉŠy虜ÛTDÍËŒtï(æ%££‹7å‰bã“Lf#,–œ/*ªÚ"h·÷v§õïEÐV£é^f>Œ 2 @£cr-HëvS=ài Ç«¸5€ç#†9”Ðñ¤ƒš$)ÃÓoÌ¥08âd€Ó#,XÌî›ih¸«#2ÕÁ–B1ØÓ<ÂFCŸT³gAîš…u2&8¼ipÀÄšlBÌðCV#2æebkw9*hÛ2B¡‚è• F Ö§P×V06ÈÎû ¦àp25o¶³ÖYÐ/AŽ°g^ 19\Èi]ª¢™i¸ù ÌÍí‹wuˆÀSÕ4÷ýþfªPÈ‘R#(í,»¨l\»³>XÙ ·m ½9½Ð#Â+7O͵~”šá÷5Ûv¹\CW©túp¡Þ(vïž6¨Á?!ˆ'D)å$‡:±›Õ¸ÅJc-»?|âPa"ª¢dw¬¥_s#2zškÁ²~.7VV,ºtÆ]ÜIð{±ðêŸD#,_“¸7IÝA¨,åYÅIH)0!Â|üý?NÃèþΣ 3´yúü½*³ÓÅóÌ‚ N[í95ƒ6•0£Aü ûbsË%bƒeª•Áå˜ó=ZãM+³Fƒ ‚© ªªªF*(§å*…U±¤j¥FFUS§0Òz˜‹gŸ²º·<¹EôJ=@r;XàƺiTZHê·]%”ÓC[ÂÊü°ýG‡ODÐàyѸøW å@Hµð†ç˜¢C¢/$j&¶ìÛIIWj™KV——\ÀÈ*FÐPlPPH¯Á#,Xw졬ÓÈG™ñýÞ&ëwW¿º¯~^‚H’ „bÕ5CLµ¶ci1ŒLcH‰RPµL«ÒضKImX¤£lIY4hQM•F!›BšjF”›$£f”’¢41¦Ñ‰H–Œ¦h©M‘J¦Œ-$Ãl0Ù„JP‚1`B*Š ÿìÜé·°ÇÁÖ@'~§´æt5!’§¶-s°{º§s9î?4Ð]Uçs@}ûÁ_©äækü^D‘œ<Ä8à§_ j×–»N_,ÔâIi R8©p=1@#2°9ƒGå ĆuCmª‘ש¾ÈhÅØ;#’R& ¾®ÙŒ¨aö"#Ìò¢„ŒV^ÝÀ|܃¸®Ã¦Þ´0èÜ„$4b(ÜaïìXUSqÂïÜ}Ÿn°Aøjë7=;£õQªj@ÛiNö}¸µ¦÷é¨Õâi¡F®øÞ™´yy2ÀÛ&ÑXªKXÑõ-ZæÓcR…&£F)d$g2¨À! *•HûÂXA—~a;¯‘‚DÃDT£éãºj¦ÔhT½ü˃`Ï‚á(TGaE¨i˜Œ7? º5XÑ›‹£Æ¡Ò¢Ž •ŠjHå&"(¶Ùƒ’&ÄÁ°¶=0&¡ËV`‘Z´ƒcÄæZ’ÃÒbDyòIlZ¢YU(TF³šöó«ÌÑŒ¦»6ö•å&ñq#,ŒLbŽýP9k5 ¢àðÆ#2Ü]âA6­#2pAÈÊmJT“¨ë£fYdõª ÉPöKÅ‘#,²|œ˜-ÔÅÀÙ–‘*@1!E‰ƒƒ¼FÜÖì)3r×o³’85ü…€ÖÏÓ6#x¼mæäb•UFÆ’¦òŒ“L„¬!ÚæŽQžˆhNð3¤Ä‘AB ÕRÍ]P¤hlä“„¡"Àpä#2K†Hä[É’D’I#UlTCÙ¿žé09#%&š&A”®7´ô,$#%#2õv¶SÒýøÝŽüŽÒ€û~ø#ßßÈz gü)Q=†Ìê½Q¿ß‹ûÉ‘2uBÂN•lß?4ÆÐêôt¢@j¨tÝrÁqŽ†‘"ž%H-IP²a˜ÙJÚÔÍ<ƒ<ýCà#%|¦ýû#2ÐÈŠÅÜ#,´¢Ð:ý[z¾é­“ãTi’××4Y¯·ÛîÍ6ÆÇ}x§‰!K6×­jãe%=gȹ#,´éLˆ̃Kê„ãjÛD½h=‚OŽ–çÌä·î£ôŠ9-¤>E2Q(NЇU&ÄÎnŠHÐ2I(ˆÔ¢#,7bƒïˆåÍu׊<­9Z­¾¿Qì°j‰Õäž+±M•ö'$åk’^ƒß@”W<M¯q!"EÀ鬰ëËwwÛ—lš¯œ›—`4™ úŠÛéSQ‡¤**ˆ•B§#ÖkÔŸóflSÌÁ±/ÎÀT ̹ÔXîv¼ ë ‚RhÏ0Ôùx‡fsë(ÜߥXóÄh8a6hZü=­ÓTÐ8UC2`ÃïÝõ£tö@Ê'3õýGƒ „V $ˆˆ‚ª`ÓëB÷Õ!ì+æÿ-`ÔH÷Û\%0·ã÷ÉÍO…ó¾qYqt<%Œf||ªCl5ée½m¦‹ d†ëvT×vx 3Íž.kïcÈÌ"9•_ÜÃõO>ýàyy‘ôû¬O×!û"×ÒURa —ÌJ*é.=3²”¯X‰Y„ 9¢\nc¡bSº2‡!Äž]­]½šÉb2FÊûpÓÐÛ:±îvÈõ‹µÜ,3âÍ„JS»uUtDÀý19Wž53ÝÀz:ª™Ñ‘Œ@#%!¢M€&vÄfDÁÁ@@5„ÝU‚ÁKýÈQT´Nr$Ã|œ¨»rkFöo€Ô9&cq€È2š„rNb²ä„ã#†Kn” ®ÒŠ5ça|j"3eæh@ e /HaÀ\â–v£<vé‚K~ÎÅ:é èÒà±´‰"q“H£·Nz5#,·Zuˆ%1•i>:A$äÝ&Á5åD ˆEPÚ¥HŒA±ê?a™€A@ĦDLÕ˜6k#¤ÌP;S¦ZÇÖfÃè+a\ïFP/#-*<óµšHÅKÅ!!± „ ê÷w8â€DˆˆšT-ëÏmúhíÁÅ ®µ(èÃLØå¼ pTæ¦j ‚Á¨‚À½Aƒ(Ö÷Šóñ^Üo·<®AùßX2Eòu‘Ÿ¦n¤Á€¤n÷L„È°ÎMà&§P,ÌKI(’aávYÛû¿ä•¶ÜD¶uS2ºcre38ºt#%™aÁ%ç­»#2Lp²O§oÉ,…Òp]«¢QA»5±J]Hc¼rÊBŽ9ò³]haCRd"×qß5jd@Ê)Iz°“„=t i‹k¯ÕÜÍ [¤òÒ¶3Öë Ô¨•)x¨SqÖ4EÌ««š<±…‚‘0eÈàèÆ;:ÞX#¾e\$Ò<Ê,do®b9Έ#,aÝ]Vñ„ø<z6:kbÏ>x’D^øPM²L¦aÓ\¹¤ÀÇBÚs&´… !ßH‘Ó¤ÃB¶TÎåž©#ˆ©Ã±¨Í¦bv“ A»m¶ÒÁL\RE΢ŒFe¥%o˜Ý“*—,už›pÙ2oO¼hNl¹&#–FæŽ%5í!¤Òžùq È#2ÕtØ„N“³YNÛlmt²CHgPà1]0êóFq†Èš‹!¼Ž^¬ºÙñ m¦ O-eÌ¡ÑHÕré¿Á©"Ù 5ù;âÄÏ#2Ý;‚›#2¸í-Ö;Em¸vã4h¥ädÅ4Z›:»Ä} £ŒÊ²ÂY“‰†s-š00¹â§ ¬IÓœ„+^±*f¯zk×0òèyÄÒçv'#,tÞIõÄ*ñs&âiÒtîÔ­qÒu!h„5eá .W+#2³UµÙn²!ÆmgîðÌ•*8²Òëçεl.ç€úuß4×;—Å<­Ùؘ#2èýËïz뜣‘WC“]&&b±(ÔnÌHÛ&l‡‘¡·3ϦµytÀÒ¥ÅÌëgÁ¬;˜9õ :Þ¡¼{ååºAÓ±Mw´ÄHFÏÁðÊŽŽáAx5™-gDàLÈ ‡X<dM63 4«1CMuÚ#%9ÚjÀV"Š "h4à±Nœµ¡‹Su …tÒ7÷AºZHº+¤‚BN\¯…mgY¬ñ[6L†ÎÀV£6¡ľ˜&ø¸—dYH——æ¸ã,iÍ?5Ç–ôi¯-ž•Žš(“Udžz‡“¡½¦ÑkŠm‚ãb5éhÚÎÜè.£¦m#„Iû/ùþ2ˆ{l¹—M‘KÖ¼ñ4Ò~ÏLœtÏ#,â* H#2`9³_ÝÔp|§_‡ŽºyScPC¹Y÷j鵦%=áÛ(™v~zZb˜ú¾\„kQó~ñœ<“'êø}a[&½œ&Ú7›ð, –VJMjfÁ‰LX|rÜX[[ï˜#5…0CB±°ö.qQñÕØÀÝ•” VMè–Ý,ÔL’Š¸KÂcŽk“æĦHkÞß]!7r¶ÜcBË@ä½Ì·gnªÕ ³ ŠP—JPÍ HÆÜq!¦YÛ%j®`ÞÁR“1ga0 Ð£ h3×¾ø8ó»pàÑ Â&&Ú¦š ,¸ÓÖß*™®`—sªÙñ¨‹Ó¹Y¦³²k€|°š”ÔäçÜœµtErô…‡n\Z†€43öŽÝ;^PIêX©gaÄ×;„ÌE2êãɃ7j$ÓM÷ÉaŽ#Žr†hv ]! a"Ö`Åé‹«ó×5oÁGÜ…¶ðætL|0È$6d9Ò›ÛŽûÐI  €æœ‹¥j`TnC]F&&gã$pÓ$Š#,µ*CÉ b©¡…i Šâ©CTÖ6#%}ÚPVëàëÂkFQ†b³†4ÁE’÷ê¬@uòˆì¸TÄ0ê,¤RÆ H‰74%ÜÔ]£TК÷™‚Y0#,#,L#%ŒN„\ÔÉÖd³E"+¨•°†¦ «ÅjMe™4Y* ân°³3,UD w<ßÔÕê´ËJ-vÚêâ‰&.;B¦UqÑ ì„»Q”hYPlD û°Y¼dEÒ lY2Òi½‘‰C}»ªÈÉÕ…¥K›*› lN!@‰ '#%.DÈÖa6´U@¨†·SP#,F†Àm*’éÐÎ(Ú€@SD]ð,ÔÛmxri§S@ؤ#29 ÝqbQH‡`H‰¾¥B¦…Œei3…ÙQH¤Xˆ"O¬ž^}'ÈDZµŽQª eTDX kգÜ!¼9l{üäK#,CþD#%Hv¤E„HH ¬UB ŠÈ!øoýòÞ—°yg?]bÞtW ì…»f™V)Áeû;ÚÆ¥Ãì5^KBµ4F} ˜à¸ØÊ°0¦ä9OâvÀãÙ«ßjQthÚ¾HüJà­6Ôß’L#,%˜21ÍF™Â+®ïQK—$.C!r5ýIf¾½#%מº¹*¨=v¢/è‚nŒ†rîQ½´ŠÈ#%p‘éJvfIMìÐN¬:ØÃ]¬ÑómÞšdà<Up•w%Fdw—*DáÊàe"diZ ûì²M1ݼôGÞV‘|äM2dïÉÚí¹ˆæ­4xôwŽ)øµ¥u#œæ*f -_¨)6Ó`»…M—ÏUV·A^G#nuã#,¹£ê{Üò³µšÎZcci7«wt'}eÓp!>°=uý1õ#2"ESÛF\8?è§C–[äL«3õlrøª–~H¶ÈnÉË™ñÓ%ä$>¹#%ÙnÐÕT‘{ÒÂ茊#,ŽDàÈ L:{Nâîñj)x›¸NÕ+F Dm,…n2D*†1·’J-âjwÒÞní#,‘]å2ĘéÆÈBY!H2;†B²bA¸‘«4„b C†%?«±€@}ÌW½’m’YA¤:énbª&±¼Fœ¡Šæ¯Ñ«—M#2κ$“á,ŽZ€Âd”t}þ>Oœúz½ ŸjgÐõïØ´‡Ôˆô‚'$æ ñ„-™ô ZˆÈÖ[ÉŠO•ÚÛF'„j#%ðƒ¤Ì5™‘Í#2´4V%vH˜†Ja^‹†CŠ™´9-IÓ€”ŠÓÌ&µ9w²#2nc±ì´ï{c¸ÎxXÝÅ2pòmŒÛRGåRO~’/æöÍì!®B'¾ò²J°,<€Åkr,A-Ùa…M²n\Í—Ë1ˆsåfÑÌ}yJeV¸¥˜…CYé2ßjj~ ©™6å7rÃpñÄÂ!²")ïõ=S6mÁä»RB@^Ì+š4º8i¬|.6÷Æ°`³”M#,uúû{¡¬Ü4ظº»ü? ›M•‹#ˆ|aG°Í×xîÀg¼ÊŒʸ öó…0„~Ãkµ×ìµ·kQIE¬ÚÖ”„­Mõu&Ù5¶MªEGE„ìE—¹´¨‰{°P l‘áÃDÖ#2ô€Àžì½QHR¤.™~#%ö€‰¡³Ã*ÛÜj`p‰ÏK›Ÿ¶6–l–MQ¢J·ËׯÇáñ|ƒ£ìSR«7ᇠ~¡`Á@$#% RE@×ÛóËv©ãÆú¼¯¤q³g@Ú.Œá¬Ö;×qÖ˜·«:œþEK˜£Ëkdq(1 I#2x€ƒF6U4Ú8%‰&²\ª´Q$QŠŽÔH—̳º[s¼UÂë×yåmÊ^¶²cViºíX¼Ë\µ<Ý‘V@IÅN£~«¨e™d¢£¯)š#%nRÂÒ&Ë™`9šZÓò('oO3ÓÅè–“cÛÕû‡º™˜d¸Àê«^”“0…ô£/eÆt¡‰U¹¸ÌV(éìÞm“xìižEr@1@!wN;Ør"/Ž~©Ú¢HIµdüSârkb¢|;\ÖêX™{6×Mïóö„ÁAV¨y#,Ø"ªµ;¦ÃÀ‹B/ˆQI>_M2LxÚÀZ(ù)ñf•êû ŸdÍÍ÷ê²mé·#ž¦ÜÜrɸåÙ¨Š•â+®ô@,q(b …MãYˆöÜÄMeïWÓ „fìDÛJóü‚|Ñ`B϶#2'2à i¦ˆ-HÏt!¯Y/Y ’_{c韭>ÓÒw+ïÜ‘ŠÙ=FÖ·¿ãõz#,5šÚ)›I©&¥–˜Åd” ª¶-fBlH¢¦´ÆÛRmûm#%…HʉD‘$F,R‡s¼ßÛ<“ÕXªå‘˜ûµ£aÞ¢þ“”Ôæ: ÇÉ#,#,¾®¾¥ÏÌXŽ{yaÀ&È$‹ .lú²z°/‡Ù°n„ÕNÑ=ǾꉑäKÁŸ õô„’¯WQo}÷øI÷£ïw¼4|¦2á—‚%µ-/PA@<Móñ¦Ú+ÛSÓ`µ)m¡æ¨tcÎâIˆ7;p´#,MÓIÓqA’q«)\»’ÄùÑe®qÄAàÒå¬a¶!ñ#2 8:ß 7$™l·}uqžî;9ráHÚ@li&„”…Á©mœˆ£×”ôaä%¡j2Ä­õ½ël¥ÃmNÌ#,¹H#% ²Ùc%´B¬¹œ#,6Œ-#,Ó­ÞîôÅN‚¡ê€ÂNോF•¨>c)•‘dÝŠh7ü#2Ö† bÕk#,¥÷–?c5²c,d_C+#2h|ËÜ#%ÔLLgo©êÉa¼®K;ú!J#%+»è —TýJ "AÄ„È÷ðäa:ƒºN1|Ø—L¯#2‰Ì6 â$`D`C ÄÍPAŠ¦×¤yÝ,|O#,ãè(D+Ë‘¿Òr lTØdZaÞz(Î+4S(•÷x¿?x7ìʈ2J cÊAÐ*rÃ]ö>[oòýÖ­ÙF]˜Ïº‡GBÇóéÌJ(JÖA-e2[ÞáùO¼£oÃßõwðžÚ¬Ît< ¿ŸÙ Þ'¸wó·}ÿàEÉñ£DüûQµ8fÇÓ500.=Ô–l×Äÿ-#,NÖ9¯¤-÷”T<A¸ÐÒ)°€#˜ëŠœÂNê —#-ÈB YÄ*¢1™.£b#F“.êè$6F™_Gy‡éîÚå\Üç¯7žzî-œ$6L¢›!¨¢ŒKÉ»šèäY66·‹šå¸†1]ݼ[Ï+´¤„¨Ù„_Ð#,D¨ÈC±TýIØ$#,¦[v}^ó¿ÂQAEWȯ—¶Ç‰‚ög¨;É+5L'™§Òú@1OEŸ`uuƒ $ˆÅXÈ1F*K¨ø›‡­2ê‹D´ØÈTT¤lmHÒÊJ¦Í«ð~XÔo«Uû{è4‚ÅMEb¨ÚR™ŠÚûö§h’—µ¼kö¦Þš„@ DLþØJZØzÆ9FSĈØ䜩IÐ~(ˆb ª)‘#2lk Y«ThÙ‘ŠÆV*eË'¯;ÆÛHˆ@"„¢uÒh EÞ£@·DÕþÿ/ÞšžÄ÷>žfyO| ¯Xp#22{‡Ðy|öTÇÕ™SUÈXWìÙp…˜„0†L[ðG¼‘aÐÕ€àœä‚çœÆBH¾¥SÏ1ǶŠ¯~7½‚ÄQ* È):4ϘÿЂx™¹æ“cy#2FØ ŠD#,Ãõ!Ò{¸|ð0„½[Ô©­BçÈ‘0ŠtOrµBAyˆ…*)Nci© ¢Dˆ„ ŽíÒkTÛRiIª[NÓ– É¦Éæ¦Úö#2‚õe !¨"‰B°EÂò¥=å*È°öZ̲öê4ðùœ{ª‰õ3ÙáˆÅ øjÏ£Wà`Î [–i`MÄljh™ü4-™©hëm!Ï„á#•ù˜Ðó`›M¢ ›@s¶Õé5åy,`ÿ6z¹oxté/^Q±î¤Ž9±Bæfˆ}ɨ.=èƒðCÓü*ÿ”(<•Õ¥ù8Ý“E±Ji‰RlE-ŒT˜5µI¶Â–øÛoÀÕâl4VŠ6“H‚ªÈ¢IßÜsõöYÙ,ÒB6ÁBª$a=*hUÐ>!slŒ s*F‘F&L(ôQMCfÒa`¤7ë@ô¾3ìŽ{×nÉx;®êT‚øÀ„ˆˆY [Q‹h6¥#,Q¡*Í(¤"c„B|‰G™Ã=}MþlîÞÚUe’’ðûqúÙö!B#,¢ᬱTaŠ\PŠaª¶W,Â5¾š†ØŽ¯ÒûÉ>ŽÄ™m ­(ퟕáà–[#{fdC`1a`¥LLg}ZÐÚx~Œ”D­|Ô·h®êºoo’Ýf“SE*[Öl+¶Ùk»²¼kÍåkªmMoJ¹*-æî³7feW\ݵsµ–ȳjòîÆš&×wWw[I²¤ÀiŒM¡YT4XXH’§*ÂC‘m¨ÅFƨІ›Eé½yq©M-”Ô™e^•®­çW^yÖ«ÆÆÒŒ¦ZËe-yÝËv»·E–2¶]5ÐB’)Éfé‘À›ÄEªÀ:qV„m —3öŽ{¤šƒ{Œm,›‡Ö_#22ȨÅPLYàH$#2|rT1µŸÉzL¥´fŠPüÉ2ƒU —¾LÓ]uÌ’jsB¤!ÊzUÊîØ46 Yç¦ %ÈíEÙû\¿‚â…Ã䋈Š÷ óøï–aêb-а+žß^01#,¦oqœ6郕)¶uF±±á¼÷âBÝÖøðð> ´ÈĘõ"hjªTâé|'Fu‹xÖi¦˜ £[ëñ30õÈS°ÃíÛÊ ÉQÅrŠFq/ ƒ}z“ÅË_²ö$ÁÐB0î¡5$ÑÇÇ3U‘wà°ÿ3)#ð#,r# P3>`Óœ.rp|•MÏpÕ:À ï"`ä#2— PyС†µFˆkŠ‘/€gWåU‹foÕòŠDÑ´R£¾kª|g¡¸j” ~{7î;J†øï8bˆ°k¦Eî×å{ø4—F›¯èÑ8–ð¡y~éfkƒðrèýçÑ(œY<à¦åÀ¹ÐZ´I-‚¢±¸Ž¡˜Ó“!³?=F7-¦B`Ù·[0QýPÈä¶1Ýæ…l®äÚX“®¸¤LPI†Ú2X0¡E#2®DC%¿ê8OðŒaø Xbå #%í]Ý:°KÉÎ6 ï}Îa´ŠóF’„ÂscF|Í{ÜG9­ºþú¢XŽ5h=¿bã‚8“ù‹çoVƒYÁêF8hý­+-DEC=µvNÅ|ªÖÞm¨7…J?š…˜nŠœ’^eBš#2V–ɤ3#2ºwãúhT1¸5±Ã„#,0œ§Kcb~Äp Óc¦tñ,ü#2ƒÌ`¹b(d7¥‘IL¢Ñ5Èæ$$:(å®Æ;Î àÿvdlƒ#%Pl~FNxêÍÀô£ÌÆ;Òq°HH÷‹í™Ôq¢!Ep{ág3¸ò÷èd@Þæe­¼­§¶QÝvü^ï¿Ým<ƒMzâ}×%Q'݈…¡ð‰ŸÇ ,€šeAoU*#”lÒ„)óÌŸY!#2+e¼»¡‚­*çqÝ,eÚ#%žÜ²ïÖfk‡ž5j½ô.*æÅBeú¬#%€OßýÏ÷Ëÿgûÿåô~?÷Ü¿öÿ»þ?ïoøúñ—üÿúÿ—üéÿû÷xµ~OoÓþíGÉþéîþÞÏø_ÿËÿÿ¸òÿ‡úÿçý¿åÿÃÿ_ü¿éòÿ—üðÿžì#Óÿ?úÓÏèùÇö_úuýoåبüªŸÐ y!ü§øs>ßöŸâÈDÊy; ™e\?ËþiMä*â"áÁª\ð°S+VEÀÿˆe—½oðZ¯×lX·½ê-Þ~åüYüîçwQ$&f}ß+e[î5]Àq(ŽYîÈHVz5!Ù¦Ñ#,qärBÌ)¬ÄDm–쳿…ì–@NÁÿ^ýûS!ÓiAsT?Ì-º<Cu¸ õÿp9=ñ¼I¢îÇ‘^A‰:Õó»0ÌsÆ,{#%íÔB<ÈïBR®?æPI\¦ÎœèÊxÿ`D)}‹?}þ®7ÃÈ÷µK¶=>=Ü#.”®]·#,ÍX.·$0€x¡4B@ŽÛýÒ_÷êå¹Oü#,ÌoÆ—þêÝeN–&!2ã¥n²3¹[3?¯‹°0#,íJš’!¿­‘¯në4ÆÆ·f‚Ghl´€èwðJ˜1†?›ŠeTïhÞ¶ñïËKŸ°<νŽ°R3³Uï®ÍÜ4²µZhBê‰`å‡Á§›2›ÕŽÔ¶í:¸öÍɦˆ6ã[ª ÔTuƒg†™D…ÛU&aœ]ä÷K6K¹ Á!„Íj}^}^#2±iÍ⑳»œè‚Ð„8ƒ+Þ^è†{Í:‡² ¾pøGê™­69nË–(W3ñ$‹$b1k‡žØ¼†@Ë#%häƒóÇB#,ù™Ÿ†˜xe:ù”Õ½kÁA¾¼›Âê#:Ó¤lh× f4S¸Íà xã¦#2¾™M÷{Oõ«;×@Ðg8¼Ô ¯‘ÇwÔÂÇnfªb»Ò\Á:"‚‘q#‚"aèïÂ]Â’ !‚®W˜×Û!±b•('˜ŒÌ!J+À*{ôíÂírd*&1ç¨XÎÉš‚*#2 zñR#2˜éË»¦™~Ýf``3(HÈ&½®épØæ&‘V†"€ø „Pñ;¢ýVl(bH€$`¡$eÜ2âï(wæ¹QVƒH1Mï}>ÓÄÌá‹ÿí-×+&|à9äî2ågvÉb0P#%œµÒ¡¹„›68—ëï®;Ñ)”Á"ÌjÄÔJƒlkY¥3[FÔm’¨ÌÒDÅ…‘S_EÛWmU|>k_[B:?#âE3€yÿ|#%¿]Tµi¸$HB…£"ï<ZíJ@ŠÄP÷õ|€Ÿ7èÍ##, ¿\·¾V¸Ÿ[¯Ys#ð¾fsî£Y¯VåU1Š"ü„«Çí'_úç1#2Õ×By¢aE»’î Â_ù£ù@Z>‘™ÛÝ#%½!Ë‹ŽÐ\¤íjoEw°5噫w#%ÂŽa”—Jž™ø‡éßYúDà£<¦tÉfƨ`TÑá›èð¨Ù¨àŒ'ÓE†¢è¸QïW8U|ních·W‘¬µôÓzýÆËhÊR›Ý1·#,—å 0[âÛ|íÙc^+I·Ük˜Ø´|nmcãm½(ÕìµoSEªMAj½óZåUìÞ<óv m×#%º\9!ÍÈ£"¦FIó@ÿ¤…ố8ÉÀŒADÇS¶ÅÎñÁvê…˜P†E<öí$½ûe,Ê×U®FFzÚZ7yõÀðMû`®¥áA®H²#7b•ÿ[íÝÿk(ôhôGr:Ÿo!|¹`Oë`ÅCÐ?-b‡þHŒŠ,X mv£¸îÔP¥Eˆ£:™šé­Õ«²Õô¬Mš“^­h é! H¤€ £þßÇ3ÏìÿÏÚ¦¨¤"Žþž˜™áã(øûfYr0Ûm‹C÷'`¼Ž§Só‰ó– Èž“ðÜáøê ÈHËÿkŸíI—†xŸ$„EOýþ@P‹_÷¸s]9ÿYTŸòãÈ£Ú­- ݦþÏý-þз§øm¿˜Û¤Yâ rÐ~¿ûü}õ;O~ù °ÓÇBr¯TrâCΗuÇ“Þ;ðë¡Og™Éï òdò–K½¯70àNøŒü_EÕµúýgþc(¢?t-A!óÏKº'ç—€$#%£Ø*Qv˜%?ÊJÝHÂÍì\¡]DÛ§þÿXŽÏá.¨3ŸÑv¿òù }p¨ œý9ÂÉ“GmGJíâqTE3‚ož«…ÆY̘wÈâM§NÚ gA••çÎX›Â7 ^[ c~¢qQ-y[Na Âò;üøfJÃ$É o§‚èºÃö¡"(‘eë׿P`ôvËd%¨býûæ9£Õÿb¼…=g&(mööKUcÇó><qÃþSN3÷á7™~çð#2ˆŸÿÅÜ‘N$‘‘@
+#<==
+#-----BEGIN PGP SIGNATURE-----\n\niQIyBAABCgAdFiEEivIt5aBoIuNHTzxwSbTGfAUneqoFAl5/EXAACgkQSbTGfAUn\neqp2nQ/46vvYBUDSJoGs14ZwZvCon9BigvosXc8by8ncPXNS1GIzbO9oxjjrK70v\nwsFrBJ+gEn4p4x2fR9yXuYcZr0mUVm0rqchXUJRAuwP8zvdDcYS8KZ2t34H4NarK\njGj+tRDQbBa+SmUcJvUFSnesdtm/OFAAJ1JayAzJqvoV9a78fenc3boJ7ag/v1+Y\nIcKscr5FIz4FQk0JBQa2i/DwvmJFlmP2nP589xdtRldbcQjXF24PxnFlGejGf5EY\nWtLPNl0WRSzgcMbN2O/aEAFq8TkCgak36fGeFcIO+2EqQ4Z03QvKwlA0JinmgJSl\nu0I6Pu/YHs3MvrbzZZBEtEhnxKBkilkHFNi4RWymKHBUOqcfpGyDIrDnFiXzoqcs\nsQTJ+Cv95Fm0xbcsiIFbNG/XRWcfvdk7bSb0C3VsVehWS+LyK4twXD9U7iHzPsLM\nHQ0oUqxfMwqp0NgwWeIMhSNROj3eYbHbgn131Dpxad4N5M3ajA/dl/u6T+qVkBh/\nR7hh6g+Q7FwxFyOm82uA0igZhRy0rCvIjpLbteAufA/VUjhSNLha0pYeOKTGkFXr\ndtmgvC77EgAN0lG0/76UTI2NRIeNevcCmFsQvT7/13gusIh/vFetPfKJxXzZNnAw\nlutXw20Mp9LcvdY/vSDCEqrQzB2bJsvF02jlRCGhkumrzEi+Xw==\n=y9ft\n-----END PGP SIGNATURE-----\n
diff --git a/wscript b/wscript
new file mode 100755
index 0000000000..5463b1c788
--- /dev/null
+++ b/wscript
@@ -0,0 +1,1531 @@
+#!/usr/bin/env python
+
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (C) 2020 Hesham Almatary <Hesham.Almatary@cl.cam.ac.uk>
+# Copyright (C) 2019, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from __future__ import print_function
+
+import pickle
+import os
+import re
+import stat
+import string
+import sys
+
+try:
+ import configparser
+except:
+ import ConfigParser as configparser
+
+is_windows_host = os.name == "nt" or sys.platform in ["msys", "cygwin"]
+default_prefix = "/opt/rtems/6"
+compilers = ["gcc", "clang"]
+items = {}
+bsps = {}
+
+
+def no_unicode(value):
+ if sys.version_info[0] > 2:
+ return value
+ if isinstance(value, unicode):
+ return str(value)
+ return value
+
+
+class VersionControlKeyHeader:
+ _content = None
+
+ @staticmethod
+ def write(bld, filename):
+ if VersionControlKeyHeader._content is None:
+ from waflib.Build import Context
+ from waflib.Errors import WafError
+
+ content = """/*
+ * Automatically generated. Do not edit.
+ */
+#if !defined(_RTEMS_VERSION_VC_KEY_H_)
+#define _RTEMS_VERSION_VC_KEY_H_
+"""
+ try:
+ rev = bld.cmd_and_log(
+ "git rev-parse HEAD", quiet=Context.STDOUT
+ ).strip()
+ content += """#define RTEMS_VERSION_VC_KEY "{}"
+""".format(
+ rev
+ )
+ except WafError:
+ content += """/* No version control key found; release? */
+"""
+ content += """#endif
+"""
+ VersionControlKeyHeader._content = content
+ f = bld.bldnode.make_node(filename)
+ f.parent.mkdir()
+ try:
+ if content != f.read():
+ f.write(VersionControlKeyHeader._content)
+ except:
+ f.write(VersionControlKeyHeader._content)
+
+
+class EnvWrapper(object):
+ def __init__(self, env):
+ self._env = env
+
+ def __getitem__(self, name):
+ fields = name.split(":")
+ v = self._env[fields[0]]
+ try:
+ fmt = "{:" + fields[1] + "}"
+ except IndexError:
+ fmt = "{}"
+ if isinstance(v, list):
+ return " ".join([fmt.format(w) for w in v])
+ return fmt.format(v)
+
+
+class Template(string.Template):
+ idpattern = "[_a-z][_a-z0-9:#]*"
+
+
+def _is_enabled_op_and(enabled, enabled_by):
+ for next_enabled_by in enabled_by:
+ if not _is_enabled(enabled, next_enabled_by):
+ return False
+ return True
+
+
+def _is_enabled_op_not(enabled, enabled_by):
+ return not _is_enabled(enabled, enabled_by)
+
+
+def _is_enabled_op_or(enabled, enabled_by):
+ for next_enabled_by in enabled_by:
+ if _is_enabled(enabled, next_enabled_by):
+ return True
+ return False
+
+
+_IS_ENABLED_OP = {
+ "and": _is_enabled_op_and,
+ "not": _is_enabled_op_not,
+ "or": _is_enabled_op_or,
+}
+
+
+def _is_enabled(enabled, enabled_by):
+ if isinstance(enabled_by, bool):
+ return enabled_by
+ if isinstance(enabled_by, list):
+ return _is_enabled_op_or(enabled, enabled_by)
+ if isinstance(enabled_by, dict):
+ key, value = next(iter(enabled_by.items()))
+ return _IS_ENABLED_OP[key](enabled, value)
+ return enabled_by in enabled
+
+
+class Item(object):
+ def __init__(self, uid, data):
+ self.uid = uid
+ self.data = data
+ self.links = self._init_links
+
+ def _init_links(self):
+ self._links = []
+ for link in self.data["links"]:
+ if link["role"] == "build-dependency":
+ uid = link["uid"]
+ if not os.path.isabs(uid):
+ uid = os.path.normpath(
+ os.path.join(os.path.dirname(self.uid), uid)
+ )
+ self._links.append(items[uid])
+ self.links = self._yield_links
+ for link in self._links:
+ yield link
+
+ def _yield_links(self):
+ for link in self._links:
+ yield link
+
+ def get_enabled_by(self):
+ return self.data["enabled-by"]
+
+ def defaults(self, enable, variant):
+ if _is_enabled(enable, self.get_enabled_by()):
+ for p in self.links():
+ p.defaults(enable, variant)
+ self.do_defaults(variant)
+
+ def configure(self, conf, cic):
+ if _is_enabled(conf.env.ENABLE, self.get_enabled_by()):
+ self.prepare_configure(conf, cic)
+ for p in self.links():
+ p.configure(conf, cic)
+ self.do_configure(conf, cic)
+
+ def build(self, bld, bic):
+ if _is_enabled(bld.env.ENABLE, self.get_enabled_by()):
+ bic = self.prepare_build(bld, bic)
+ for p in self.links():
+ p.build(bld, bic)
+ self.do_build(bld, bic)
+
+ def do_defaults(self, variant):
+ return
+
+ def prepare_configure(self, conf, cic):
+ return
+
+ def do_configure(self, conf, cic):
+ return
+
+ def prepare_build(self, bld, bic):
+ return bic
+
+ def do_build(self, bld, bic):
+ return
+
+ def substitute(self, ctx, value):
+ if isinstance(value, str):
+ try:
+ return Template(value).substitute(EnvWrapper(ctx.env))
+ except Exception as e:
+ ctx.fatal(
+ "In item '{}' substitution in '{}' failed: {}".format(
+ self.uid, value, e
+ )
+ )
+ return value
+
+ def get(self, ctx, name):
+ return self.substitute(ctx, self.data[name])
+
+ def get_values(self, ctx, name):
+ more = []
+ for value in self.data[name]:
+ more.extend(self.substitute(ctx, value).split())
+ return more
+
+ def install_target(self, bld):
+ install_path = self.data["install-path"]
+ if install_path:
+ bld.install_files(install_path, self.get(bld, "target"))
+
+ def install_files(self, bld):
+ for install in self.data["install"]:
+ bld.install_files(install["destination"], install["source"])
+
+ def asm(self, bld, bic, source, target=None, deps=[], cppflags=[]):
+ if target is None:
+ target = os.path.splitext(source)[0] + ".o"
+ bld(
+ asflags=self.data["asflags"],
+ before=["cstlib"],
+ cppflags=cppflags + self.data["cppflags"],
+ features="asm c",
+ includes=bic.includes + self.data["includes"],
+ rule="${CC} ${ASFLAGS} ${CPPFLAGS} ${DEFINES_ST:DEFINES} ${CPPPATH_ST:INCPATHS} -c ${SRC[0]} -o ${TGT}",
+ source=[source] + deps,
+ target=target,
+ )
+ return target
+
+ def cc(self, bld, bic, source, target=None, deps=[], cppflags=[]):
+ if target is None:
+ target = os.path.splitext(source)[0] + ".o"
+ bld(
+ cflags=self.data["cflags"],
+ cppflags=cppflags + self.data["cppflags"],
+ features="c",
+ includes=bic.includes + self.data["includes"],
+ rule="${CC} ${CFLAGS} ${CPPFLAGS} ${DEFINES_ST:DEFINES} ${CPPPATH_ST:INCPATHS} -c ${SRC[0]} -o ${TGT}",
+ source=[source] + deps,
+ target=target,
+ )
+ return target
+
+ def cxx(self, bld, bic, source, target=None, deps=[], cppflags=[]):
+ if target is None:
+ target = os.path.splitext(source)[0] + ".o"
+ bld(
+ cppflags=cppflags + self.data["cppflags"],
+ cxxflags=self.data["cxxflags"],
+ features="cxx",
+ includes=bic.includes + self.data["includes"],
+ rule="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${DEFINES_ST:DEFINES} ${CPPPATH_ST:INCPATHS} -c ${SRC[0]} -o ${TGT}",
+ source=[source] + deps,
+ target=target,
+ )
+ return target
+
+ def link(self, bld, bic, cmd, source, target):
+ from waflib.Task import Task
+
+ class link(Task):
+ def __init__(self, item, bic, cmd, env):
+ super(link, self).__init__(self, env=env)
+ self.cmd = cmd
+ self.ldflags = bic.ldflags + item.data["ldflags"]
+ self.stlib = item.data["stlib"]
+ self.use = (
+ item.data["use-before"] + bic.use + item.data["use-after"]
+ )
+
+ def run(self):
+ cmd = [self.cmd]
+ cmd.extend(self.env.LINKFLAGS)
+ cmd.extend([i.abspath() for i in self.inputs])
+ cmd.append("-o" + self.outputs[0].abspath())
+ cmd.extend(self.ldflags)
+ cmd.append("-L.")
+ cmd.extend(["-l" + l for l in self.stlib])
+ cmd.extend(["-l" + l for l in self.use])
+ cmd.extend(self.env.LDFLAGS)
+ return self.exec_command(cmd)
+
+ def scan(self):
+ return (
+ [
+ self.generator.bld.bldnode.make_node("lib" + u + ".a")
+ for u in self.use
+ ],
+ [],
+ )
+
+ tsk = link(self, bic, cmd, bld.env)
+ tsk.set_inputs([bld.bldnode.make_node(s) for s in source])
+ tsk.set_outputs(bld.bldnode.make_node(target))
+ bld.add_to_group(tsk)
+ return target
+
+ def link_cc(self, bld, bic, source, target):
+ return self.link(bld, bic, bld.env.LINK_CC[0], source, target)
+
+ def link_cxx(self, bld, bic, source, target):
+ return self.link(bld, bic, bld.env.LINK_CXX[0], source, target)
+
+ def gnatmake(self, bld, bic, objdir, objs, main, target):
+ from waflib.Task import Task
+
+ class gnatmake(Task):
+ def __init__(self, bld, bic, objdir, objs, main, target, item):
+ super(gnatmake, self).__init__(self, env=bld.env)
+ self.objdir = objdir
+ self.objs = [bld.bldnode.make_node(o) for o in objs]
+ self.main = bld.path.make_node(main)
+ self.set_inputs(self.objs + [self.main])
+ self.set_outputs(bld.bldnode.make_node(target))
+ self.adaflags = item.data["adaflags"]
+ self.adaincludes = []
+ for i in item.data["adaincludes"]:
+ self.adaincludes.append(bld.bldnode.make_node(i))
+ self.adaincludes.append(bld.path.make_node(i))
+ self.ldflags = bic.ldflags + item.data["ldflags"]
+ self.stlib = item.data["stlib"]
+ self.use = (
+ item.data["use-before"] + bic.use + item.data["use-after"]
+ )
+
+ def run(self):
+ cwd = self.get_cwd()
+ cmd = [
+ self.env.GNATMAKE[0],
+ "-D",
+ self.objdir,
+ "-bargs",
+ "-Mgnat_main",
+ "-margs",
+ ]
+ cmd.extend(self.adaflags)
+ cmd.extend(["-I" + i.path_from(cwd) for i in self.adaincludes])
+ cmd.append("-largs")
+ cmd.extend([o.path_from(cwd) for o in self.objs])
+ cmd.extend(self.env.LINKFLAGS)
+ cmd.extend(self.ldflags)
+ cmd.append("-L.")
+ cmd.extend(["-l" + l for l in self.stlib])
+ cmd.extend(["-l" + l for l in self.use])
+ cmd.extend(self.env.LDFLAGS)
+ cmd.extend(["-margs", "-a"])
+ cmd.append(self.main.abspath())
+ cmd.append("-o")
+ cmd.append(self.outputs[0].abspath())
+ return self.exec_command(cmd)
+
+ def scan(self):
+ return (
+ [
+ self.generator.bld.bldnode.make_node("lib" + u + ".a")
+ for u in self.use
+ ],
+ [],
+ )
+
+ tsk = gnatmake(bld, bic, objdir, objs, main, target, self)
+ bld.add_to_group(tsk)
+ return target
+
+ def ar(self, bld, source, target):
+ bld(rule="${AR} ${ARFLAGS} ${TGT} ${SRC}", source=source, target=target)
+ return target
+
+ def gzip(self, bld, source):
+ target = source + ".gz"
+ bld(rule="${GZIP} < ${SRC} > ${TGT}", source=source, target=target)
+ return target
+
+ def xz(self, bld, source):
+ target = source + ".xz"
+ bld(rule="${XZ} < ${SRC} > ${TGT}", source=source, target=target)
+ return target
+
+ def pax(self, bld, source, remove, target):
+ def run(task):
+ srcpath = bld.path.abspath() + "/"
+ bldpath = bld.bldnode.abspath() + "/"
+ cmd = [bld.env.PAX[0], "-w", "-f", task.outputs[0].abspath()]
+ for r in remove:
+ cmd.extend(
+ [
+ "-s",
+ "," + srcpath + r + ",,",
+ "-s",
+ "," + bldpath + r + ",,",
+ ]
+ )
+ cmd.extend([i.abspath() for i in task.inputs])
+ return task.exec_command(cmd)
+
+ bld(rule=run, source=source, target=target)
+ return target
+
+ def bin2c(self, bld, source, name=None, target=None):
+ def run(task):
+ cmd = [bld.env.BIN2C[0]]
+ if name is not None:
+ cmd.extend(["-N", name])
+ cmd.append(task.inputs[0].abspath())
+ cmd.append(task.outputs[0].abspath())
+ return task.exec_command(cmd)
+
+ path, base = os.path.split(source)
+ if target is None:
+ target = path + "/" + base.replace(".", "-")
+ target_c = target + ".c"
+ target_h = target + ".h"
+ bld(rule=run, source=source, target=[target_c, target_h])
+ return target_c, target_h
+
+ def rtems_syms(self, bld, source, target):
+ bld(
+ rule='${RTEMS_SYMS} -e -C ${CC} -c "${CFLAGS}" -o ${TGT} ${SRC}',
+ source=source,
+ target=target,
+ )
+ return target
+
+ def rtems_rap(self, bld, base, objects, libs, target):
+ def run(task):
+ cmd = [
+ bld.env.RTEMS_LD[0],
+ "-C",
+ bld.env.CC[0],
+ "-c",
+ " ".join(bld.env.CFLAGS),
+ "-O",
+ "rap",
+ "-b",
+ task.inputs[0].abspath(),
+ "-e",
+ "rtems_main",
+ "-s",
+ "-o",
+ ]
+ cmd.append(task.outputs[0].abspath())
+ cmd.extend([i.abspath() for i in task.inputs[1:]])
+ cmd.extend(["-l" + l for l in libs])
+ return task.exec_command(cmd)
+
+ bld(rule=run, source=[base] + objects, target=target)
+ return target
+
+
+class GroupItem(Item):
+ def __init__(self, uid, data):
+ super(GroupItem, self).__init__(uid, data)
+
+ def prepare_build(self, bld, bic):
+ return BuildItemContext(
+ bic.includes + self.get_values(bld, "includes"),
+ self.data["use-before"] + bic.use + self.data["use-after"],
+ bic.ldflags + self.get_values(bld, "ldflags"),
+ bic.objects,
+ )
+
+ def do_build(self, bld, bic):
+ self.install_files(bld)
+
+
+class ConfigFileItem(Item):
+ def __init__(self, uid, data):
+ super(ConfigFileItem, self).__init__(uid, data)
+
+ def do_configure(self, conf, cic):
+ content = self.substitute(conf, self.data["content"])
+ f = conf.bldnode.make_node(
+ conf.env.VARIANT + "/" + self.get(conf, "target")
+ )
+ f.parent.mkdir()
+ f.write(content)
+ conf.env.append_value("cfg_files", f.abspath())
+
+ def do_build(self, bld, bic):
+ self.install_target(bld)
+
+
+class ConfigHeaderItem(Item):
+ def __init__(self, uid, data):
+ super(ConfigHeaderItem, self).__init__(uid, data)
+
+ def do_configure(self, conf, cic):
+ conf.env.include_key = self.data["include-headers"]
+ conf.write_config_header(
+ conf.env.VARIANT + "/" + self.get(conf, "target"),
+ guard=self.data["guard"],
+ headers=True,
+ )
+ conf.env.include_key = None
+
+ def do_build(self, bld, bic):
+ self.install_target(bld)
+
+
+class StartFileItem(Item):
+ def __init__(self, uid, data):
+ super(StartFileItem, self).__init__(uid, data)
+
+ def do_build(self, bld, bic):
+ self.asm(bld, bic, self.data["source"], self.get(bld, "target"))
+ self.install_target(bld)
+
+
+class ObjectsItem(Item):
+ def __init__(self, uid, data):
+ super(ObjectsItem, self).__init__(uid, data)
+
+ def do_build(self, bld, bic):
+ bld.objects(
+ cflags=self.data["cflags"],
+ cppflags=self.data["cppflags"],
+ cxxflags=self.data["cxxflags"],
+ includes=bic.includes + self.data["includes"],
+ source=self.data["source"],
+ target=self.uid,
+ )
+ bic.objects.append(self.uid)
+ self.install_files(bld)
+
+
+class BSPItem(Item):
+ def __init__(self, uid, data):
+ super(BSPItem, self).__init__(uid, data)
+ arch_bsps = bsps.setdefault(data["arch"].strip(), {})
+ arch_bsps[data["bsp"].strip()] = self
+
+ def prepare_configure(self, conf, cic):
+ conf.env.BSP_FAMILY = self.data["family"]
+
+ def prepare_build(self, bld, bic):
+ return BuildItemContext(
+ bic.includes + bld.env.BSP_INCLUDES.split(), [], [], []
+ )
+
+ def do_build(self, bld, bic):
+ bld(
+ cflags=self.data["cflags"],
+ cppflags=self.data["cppflags"],
+ features="c cstlib",
+ includes=bic.includes + self.data["includes"],
+ install_path="${BSP_LIBDIR}",
+ source=self.data["source"],
+ target="rtemsbsp",
+ use=bic.objects,
+ )
+ self.install_files(bld)
+
+
+class LibraryItem(Item):
+ def __init__(self, uid, data):
+ super(LibraryItem, self).__init__(uid, data)
+
+ def prepare_build(self, bld, bic):
+ return BuildItemContext(bic.includes, [], [], [])
+
+ def do_build(self, bld, bic):
+ bld(
+ cflags=self.data["cflags"],
+ cppflags=self.data["cppflags"],
+ cxxflags=self.data["cxxflags"],
+ features="c cxx cstlib",
+ includes=bic.includes + self.data["includes"],
+ install_path=self.data["install-path"],
+ source=self.data["source"],
+ target=self.get(bld, "target"),
+ use=bic.objects,
+ )
+ self.install_files(bld)
+
+
+class TestProgramItem(Item):
+ def __init__(self, uid, data):
+ super(TestProgramItem, self).__init__(uid, data)
+ name = uid.split("/")[-1].upper()
+ self.exclude = "TEST_" + name + "_EXCLUDE"
+ self.cppflags = "TEST_" + name + "_CPPFLAGS"
+
+ def get_enabled_by(self):
+ return [{"and": [{"not": self.exclude}, self.data["enabled-by"]]}]
+
+ def prepare_build(self, bld, bic):
+ return BuildItemContext(bic.includes, bic.use, bic.ldflags, [])
+
+ def do_build(self, bld, bic):
+ bld(
+ cflags=self.data["cflags"],
+ cppflags=bld.env[self.cppflags] + self.data["cppflags"],
+ cxxflags=self.data["cxxflags"],
+ features=self.data["features"],
+ includes=bic.includes + self.data["includes"],
+ install_path=None,
+ ldflags=bic.ldflags + self.data["ldflags"],
+ source=self.data["source"],
+ stlib=self.data["stlib"],
+ target=self.get(bld, "target"),
+ use=self.data["use-before"] + bic.use + self.data["use-after"],
+ )
+
+
+class AdaTestProgramItem(TestProgramItem):
+ def __init__(self, uid, data):
+ super(AdaTestProgramItem, self).__init__(uid, data)
+
+ def do_build(self, bld, bic):
+ objs = []
+ for s in self.data["source"]:
+ objs.append(self.cc(bld, bic, s))
+ self.gnatmake(
+ bld,
+ bic,
+ self.data["ada-object-directory"],
+ objs,
+ self.data["ada-main"],
+ self.data["target"],
+ )
+
+
+class OptionItem(Item):
+ def __init__(self, uid, data):
+ super(OptionItem, self).__init__(uid, data)
+
+ @staticmethod
+ def _is_variant(variants, variant):
+ for pattern in variants:
+ if re.search("^" + pattern + "$", variant):
+ return True
+ return False
+
+ def default_value(self, variant):
+ value = self.data["default"]
+ for default in self.data["default-by-variant"]:
+ if OptionItem._is_variant(default["variants"], variant):
+ value = default["value"]
+ break
+ if value is None:
+ return value
+ if isinstance(value, list):
+ return " ".join(value)
+ if isinstance(value, bool):
+ return value
+ return self.data["format"].format(value)
+
+ def do_defaults(self, variant):
+ value = self.default_value(variant)
+ if value is None:
+ return
+ description = self.data["description"]
+ if description:
+ import textwrap
+
+ tw = textwrap.TextWrapper()
+ tw.drop_whitespace = True
+ tw.initial_indent = "# "
+ tw.subsequent_indent = "# "
+ for line in tw.wrap(description):
+ print(line)
+ print("{} = {}".format(self.data["name"], value))
+
+ def _do_append_test_cppflags(self, conf, name, state):
+ conf.env.append_value("TEST_" + name.upper() + "_CPPFLAGS", state)
+
+ def _append_test_cppflags(self, conf, cic, value, arg):
+ self._do_append_test_cppflags(conf, arg, value)
+ return value
+
+ def _assert_aligned(self, conf, cic, value, arg):
+ if value % arg != 0:
+ conf.fatal(
+ "Value '{}' for option '{}' is not aligned by '{}'".format(
+ value, self.data["name"], arg
+ )
+ )
+ return value
+
+ def _assert_eq(self, conf, cic, value, arg):
+ if value != arg:
+ conf.fatal(
+ "Value '{}' for option '{}' is not equal to {}".format(
+ value, self.data["name"], arg
+ )
+ )
+ return value
+
+ def _assert_ge(self, conf, cic, value, arg):
+ if value < arg:
+ conf.fatal(
+ "Value '{}' for option '{}' is not greater than or equal to {}".format(
+ value, self.data["name"], arg
+ )
+ )
+ return value
+
+ def _assert_gt(self, conf, cic, value, arg):
+ if value <= arg:
+ conf.fatal(
+ "Value '{}' for option '{}' is not greater than {}".format(
+ value, self.data["name"], arg
+ )
+ )
+ return value
+
+ def _assert_in_interval(self, conf, cic, value, arg):
+ if value < arg[0] or value > arg[1]:
+ conf.fatal(
+ "Value '{}' for option '{}' is not in closed interval [{}, {}]".format(
+ value, self.data["name"], arg[0], arg[1]
+ )
+ )
+ return value
+
+ def _assert_int8(self, conf, cic, value, arg):
+ return self._assert_in_interval(conf, cic, value, [-128, 127])
+
+ def _assert_int16(self, conf, cic, value, arg):
+ return self._assert_in_interval(conf, cic, value, [-32768, 32767])
+
+ def _assert_int32(self, conf, cic, value, arg):
+ return self._assert_in_interval(
+ conf, cic, value, [-2147483648, 2147483647]
+ )
+
+ def _assert_int64(self, conf, cic, value, arg):
+ return self._assert_in_interval(
+ conf, cic, value, [-9223372036854775808, 9223372036854775807]
+ )
+
+ def _assert_le(self, conf, cic, value, arg):
+ if value > arg:
+ conf.fatal(
+ "Value '{}' for option '{}' is not less than or equal to {}".format(
+ value, self.data["name"], arg
+ )
+ )
+ return value
+
+ def _assert_lt(self, conf, cic, value, arg):
+ if value >= arg:
+ conf.fatal(
+ "Value '{}' for option '{}' is not less than {}".format(
+ value, self.data["name"], arg
+ )
+ )
+ return value
+
+ def _assert_ne(self, conf, cic, value, arg):
+ if value == arg:
+ conf.fatal(
+ "Value '{}' for option '{}' is not unequal to {}".format(
+ value, self.data["name"], arg
+ )
+ )
+ return value
+
+ def _assert_power_of_two(self, conf, cic, value, arg):
+ if value <= 0 or (value & (value - 1)) != 0:
+ conf.fatal(
+ "Value '{}' for option '{}' is not a power of two".format(
+ value, self.data["name"]
+ )
+ )
+ return value
+
+ def _assert_uint8(self, conf, cic, value, arg):
+ return self._assert_in_interval(conf, cic, value, [0, 255])
+
+ def _assert_uint16(self, conf, cic, value, arg):
+ return self._assert_in_interval(conf, cic, value, [0, 65535])
+
+ def _assert_uint32(self, conf, cic, value, arg):
+ return self._assert_in_interval(conf, cic, value, [0, 4294967295])
+
+ def _assert_uint64(self, conf, cic, value, arg):
+ return self._assert_in_interval(
+ conf, cic, value, [0, 18446744073709551615]
+ )
+
+ def _check_cc(self, conf, cic, value, arg):
+ result = conf.check_cc(
+ fragment=arg["fragment"],
+ cflags=arg["cflags"],
+ msg="Checking for " + arg["message"],
+ mandatory=False,
+ )
+ return value and result
+
+ def _check_cxx(self, conf, cic, value, arg):
+ result = conf.check_cxx(
+ fragment=arg["fragment"],
+ cxxflags=arg["cxxflags"],
+ msg="Checking for " + arg["message"],
+ mandatory=False,
+ )
+ return value and result
+
+ def _define_condition(self, conf, cic, value, arg):
+ name = self.data["name"] if arg is None else arg
+ conf.define_cond(name, value)
+ return value
+
+ def _define(self, conf, cic, value, arg):
+ name = self.data["name"] if arg is None else arg
+ if value is not None:
+ conf.define(name, value)
+ else:
+ conf.define_cond(name, False)
+ return value
+
+ def _define_unquoted(self, conf, cic, value, arg):
+ name = self.data["name"] if arg is None else arg
+ if value is not None:
+ conf.define(name, value, quote=False)
+ else:
+ conf.define_cond(name, False)
+ return value
+
+ def _env_append(self, conf, cic, value, arg):
+ name = self.data["name"] if arg is None else arg
+ conf.env.append_value(name, value)
+ return value
+
+ def _env_assign(self, conf, cic, value, arg):
+ name = self.data["name"] if arg is None else arg
+ conf.env[name] = value
+ return value
+
+ def _env_enable(self, conf, cic, value, arg):
+ if value:
+ name = self.data["name"] if arg is None else arg
+ conf.env.append_value("ENABLE", name)
+ return value
+
+ def _find_program(self, conf, cic, value, arg):
+ return conf.find_program(value, path_list=cic.path_list)
+
+ def _format_and_define(self, conf, cic, value, arg):
+ name = self.data["name"] if arg is None else arg
+ if value is not None:
+ conf.define(name, self.data["format"].format(value), quote=False)
+ else:
+ conf.define_cond(name, False)
+ return value
+
+ def _get_boolean(self, conf, cic, value, arg):
+ name = self.data["name"]
+ try:
+ value = cic.cp.getboolean(conf.variant, name)
+ cic.add_option(name)
+ except configparser.NoOptionError:
+ value = self.default_value(conf.variant)
+ except ValueError as ve:
+ conf.fatal(
+ "Invalid value for configuration option {}: {}".format(name, ve)
+ )
+ return value
+
+ def _get_env(self, conf, cic, value, arg):
+ return conf.env[arg]
+
+ def _get_integer(self, conf, cic, value, arg):
+ name = self.data["name"]
+ try:
+ value = cic.cp.get(conf.variant, name)
+ cic.add_option(name)
+ except configparser.NoOptionError:
+ value = self.default_value(conf.variant)
+ if value is None:
+ return value
+ try:
+ return eval(value)
+ except Exception as e:
+ conf.fatal(
+ "Value '{}' for option '{}' is an invalid integer expression: {}".format(
+ value, name, e
+ )
+ )
+
+ def _get_string(self, conf, cic, value, arg):
+ name = self.data["name"]
+ try:
+ value = cic.cp.get(conf.variant, name)
+ cic.add_option(name)
+ value = no_unicode(value)
+ except configparser.NoOptionError:
+ value = self.default_value(conf.variant)
+ return value
+
+ def _script(self, conf, cic, value, arg):
+ exec(arg)
+ return value
+
+ def _test_state_benchmark(self, conf, name):
+ self._do_append_test_cppflags(conf, name, "-DTEST_STATE_BENCHMARK=1")
+
+ def _test_state_exclude(self, conf, name):
+ conf.env.append_value("ENABLE", "TEST_" + name.upper() + "_EXCLUDE")
+
+ def _test_state_expected_fail(self, conf, name):
+ self._do_append_test_cppflags(
+ conf, name, "-DTEST_STATE_EXPECTED_FAIL=1"
+ )
+
+ def _test_state_indeterminate(self, conf, name):
+ self._do_append_test_cppflags(
+ conf, name, "-DTEST_STATE_INDETERMINATE=1"
+ )
+
+ def _test_state_user_input(self, conf, name):
+ self._do_append_test_cppflags(conf, name, "-DTEST_STATE_USER_INPUT=1")
+
+ def _set_test_state(self, conf, cic, value, arg):
+ actions = {
+ "benchmark": self._test_state_benchmark,
+ "exclude": self._test_state_exclude,
+ "expected-fail": self._test_state_expected_fail,
+ "indeterminate": self._test_state_indeterminate,
+ "user-input": self._test_state_user_input,
+ }
+ for k, v in arg.items():
+ actions[v](conf, k)
+ return value
+
+ def _set_value(self, conf, cic, value, arg):
+ return arg
+
+ def _split(self, conf, cic, value, arg):
+ return value.split()
+
+ def _substitute(self, conf, cic, value, arg):
+ if isinstance(value, list):
+ return [self.substitute(conf, v) for v in value]
+ else:
+ return self.substitute(conf, value)
+
+ def do_configure(self, conf, cic):
+ actions = {
+ "append-test-cppflags": self._append_test_cppflags,
+ "assert-aligned": self._assert_aligned,
+ "assert-eq": self._assert_eq,
+ "assert-ge": self._assert_ge,
+ "assert-gt": self._assert_gt,
+ "assert-int8": self._assert_int8,
+ "assert-int16": self._assert_int16,
+ "assert-int32": self._assert_int32,
+ "assert-int64": self._assert_int64,
+ "assert-le": self._assert_le,
+ "assert-lt": self._assert_lt,
+ "assert-ne": self._assert_ne,
+ "assert-power-of-two": self._assert_power_of_two,
+ "assert-uint8": self._assert_uint8,
+ "assert-uint16": self._assert_uint16,
+ "assert-uint32": self._assert_uint32,
+ "assert-uint64": self._assert_uint64,
+ "check-cc": self._check_cc,
+ "check-cxx": self._check_cxx,
+ "define-condition": self._define_condition,
+ "define": self._define,
+ "define-unquoted": self._define_unquoted,
+ "env-append": self._env_append,
+ "env-assign": self._env_assign,
+ "env-enable": self._env_enable,
+ "find-program": self._find_program,
+ "format-and-define": self._format_and_define,
+ "get-boolean": self._get_boolean,
+ "get-env": self._get_env,
+ "get-integer": self._get_integer,
+ "get-string": self._get_string,
+ "script": self._script,
+ "set-test-state": self._set_test_state,
+ "set-value": self._set_value,
+ "split": self._split,
+ "substitute": self._substitute,
+ }
+ value = None
+ for action in self.data["actions"]:
+ for action_arg in action.items():
+ value = actions[action_arg[0]](conf, cic, value, action_arg[1])
+
+
+class ScriptItem(Item):
+ def __init__(self, uid, data):
+ super(ScriptItem, self).__init__(uid, data)
+
+ def prepare_configure(self, conf, cic):
+ script = self.data["prepare-configure"]
+ if script:
+ exec(script)
+
+ def do_configure(self, conf, cic):
+ script = self.data["do-configure"]
+ if script:
+ exec(script)
+
+ def prepare_build(self, bld, bic):
+ script = self.data["prepare-build"]
+ if script:
+ exec(script)
+ return bic
+
+ def do_build(self, bld, bic):
+ script = self.data["do-build"]
+ if script:
+ exec(script)
+
+
+class ConfigItemContext(object):
+ def __init__(self, cp, path_list):
+ self.cp = cp
+ self.options = set()
+ self.path_list = path_list
+
+ def add_option(self, name):
+ self.options.add(name.upper())
+
+
+class BuildItemContext(object):
+ def __init__(self, includes, use, ldflags, objects):
+ self.includes = includes
+ self.use = use
+ self.ldflags = ldflags
+ self.objects = objects
+
+
+def is_one_item_newer(ctx, path, mtime):
+ try:
+ names = os.listdir(path)
+ except Exception as e:
+ ctx.fatal("Cannot list build specification directory: {}".format(e))
+ for name in names:
+ path2 = os.path.join(path, name)
+ if name.endswith(".yml") and not name.startswith("."):
+ mtime2 = os.path.getmtime(path2)
+ if mtime <= mtime2:
+ return True
+ else:
+ mode = os.lstat(path2).st_mode
+ if stat.S_ISDIR(mode) and is_one_item_newer(ctx, path2, mtime):
+ return True
+ return False
+
+
+def must_update_item_cache(ctx, path, cache_file):
+ try:
+ mtime = os.path.getmtime(cache_file)
+ return is_one_item_newer(ctx, path, mtime)
+ except:
+ return True
+
+
+def load_from_yaml(load, ctx, data_by_uid, base, path):
+ try:
+ names = os.listdir(path)
+ except Exception as e:
+ ctx.fatal("Cannot list build specification directory: {}".format(e))
+ for name in names:
+ path2 = os.path.join(path, name)
+ if name.endswith(".yml") and not name.startswith("."):
+ uid = "/" + os.path.relpath(path2, base).replace(".yml", "")
+ with open(path2, "r") as f:
+ data_by_uid[uid] = load(f.read())
+ else:
+ mode = os.lstat(path2).st_mode
+ if stat.S_ISDIR(mode):
+ load_from_yaml(load, ctx, data_by_uid, base, path2)
+
+
+def load_items_in_directory(ctx, ctors, path):
+ f = ctx.path.make_node(
+ "build/c4che/" + re.sub(r"[^\w]", "_", path) + ".pickle"
+ )
+ f.parent.mkdir()
+ cache_file = f.abspath()
+ data_by_uid = {}
+ if must_update_item_cache(ctx, path, cache_file):
+ from waflib import Logs
+
+ Logs.warn(
+ "Regenerate build specification cache (needs a couple of seconds)..."
+ )
+
+ #
+ # Do not use a system provided yaml module and instead import it from
+ # the project. This reduces the host system requirements to a simple
+ # Python 2.7 or 3 installation without extra modules.
+ #
+ if sys.version_info[0] == 2:
+ yaml_path = "yaml/lib"
+ else:
+ yaml_path = "yaml/lib3"
+ sys.path += [yaml_path]
+ from yaml import safe_load
+
+ load_from_yaml(safe_load, ctx, data_by_uid, path, path)
+ with open(cache_file, "wb") as f:
+ pickle.dump(data_by_uid, f)
+ else:
+ with open(cache_file, "rb") as f:
+ data_by_uid = pickle.load(f)
+ for uid, data in data_by_uid.items():
+ if data["type"] == "build":
+ items[uid] = ctors[data["build-type"]](uid, data)
+
+
+def load_items(ctx, specs):
+ if items:
+ return
+
+ ctors = {
+ "ada-test-program": AdaTestProgramItem,
+ "bsp": BSPItem,
+ "config-file": ConfigFileItem,
+ "config-header": ConfigHeaderItem,
+ "test-program": TestProgramItem,
+ "group": GroupItem,
+ "library": LibraryItem,
+ "objects": ObjectsItem,
+ "option": OptionItem,
+ "script": ScriptItem,
+ "start-file": StartFileItem,
+ }
+
+ for path in specs:
+ load_items_in_directory(ctx, ctors, path)
+
+
+def load_items_from_options(ctx):
+ specs = ctx.options.rtems_specs
+ if specs is not None:
+ specs = specs.split(",")
+ else:
+ specs = ["spec/build"]
+ load_items(ctx, specs)
+ return specs
+
+
+def options(ctx):
+ prefix = ctx.parser.get_option("--prefix")
+ prefix.default = default_prefix
+ prefix.help = "installation prefix [default: '{}']".format(default_prefix)
+ rg = ctx.add_option_group("RTEMS options")
+ rg.add_option(
+ "--rtems-bsps",
+ metavar="REGEX,...",
+ help="a comma-separated list of Python regular expressions which select the desired BSP variants (e.g. 'sparc/erc32'); it may be used in the bsp_defaults and bsp_list commands",
+ )
+ rg.add_option(
+ "--rtems-compiler",
+ metavar="COMPILER",
+ help="determines which compiler is used to list the BSP option defaults [default: 'gcc']; it may be used in the bsp_defaults command; valid compilers are: {}".format(
+ ", ".join(compilers)
+ ),
+ )
+ rg.add_option(
+ "--rtems-config",
+ metavar="CONFIG.INI,...",
+ help="a comma-separated list of paths to the BSP configuration option files [default: 'config.ini']; default option values can be obtained via the bsp_defaults command; it may be used in the configure command",
+ )
+ rg.add_option(
+ "--rtems-specs",
+ metavar="SPECDIRS,...",
+ help="a comma-separated list of directory paths to build specification items [default: 'spec/build']; it may be used in the bsp_defaults, bsp_list, and configure commands",
+ )
+ rg.add_option(
+ "--rtems-tools",
+ metavar="PREFIX,...",
+ help="a comma-separated list of prefix paths to tools, e.g. compiler, linker, etc. [default: the installation prefix]; tools are searched in the prefix path and also in a 'bin' subdirectory of the prefix path; it may be used in the configure command",
+ )
+ rg.add_option(
+ "--rtems-top-group",
+ metavar="UID",
+ help="the UID of the top-level group [default: '/grp']; it may be used in the bsp_defaults and configure commands",
+ )
+
+
+def check_environment(conf):
+ for ev in [
+ "AR",
+ "AS",
+ "ASFLAGS",
+ "CC",
+ "CFLAGS",
+ "CPPFLAGS",
+ "CXX",
+ "CXXFLAGS",
+ "IFLAGS",
+ "LD",
+ "LIB",
+ "LINK_CC",
+ "LINK_CXX",
+ "LINKFLAGS",
+ "MFLAGS",
+ "RFLAGS",
+ "WFLAGS",
+ ]:
+ if ev in os.environ:
+ conf.msg("Environment variable set", ev, color="RED")
+
+
+def load_config_files(ctx):
+ cp = configparser.ConfigParser()
+ files = ctx.options.rtems_config
+ if files is not None:
+ files = files.split(",")
+ else:
+ files = ["config.ini"]
+ actual_files = cp.read(files)
+ for o in files:
+ if not o in actual_files:
+ ctx.fatal("Option file '{}' was not readable".format(o))
+ return cp
+
+
+def inherit(conf, cp, bsp_map, arch, bsp, path):
+ variant = arch + "/" + bsp
+ if variant in path:
+ path = " -> ".join(path + [variant])
+ conf.fatal("Recursion in BSP options inheritance: {}".format(path))
+
+ try:
+ base = cp.get(variant, "INHERIT")
+ cp.remove_option(variant, "INHERIT")
+ base = no_unicode(base)
+ base_variant = arch + "/" + base
+ conf.msg(
+ "Inherit options from '{}'".format(base_variant),
+ variant,
+ color="YELLOW",
+ )
+ if not cp.has_section(base_variant):
+ if (not arch in bsps) or (not base in bsps[arch]):
+ conf.fatal(
+ "BSP variant '{}' cannot inherit options from not existing variant '{}'".format(
+ variant, base_variant
+ )
+ )
+ bsp_map[bsp] = base
+ return base
+ top = inherit(conf, cp, bsp_map, arch, base, path + [variant])
+ for i in cp.items(base_variant):
+ name = i[0]
+ if not cp.has_option(variant, name):
+ cp.set(variant, name, i[1])
+ bsp_map[bsp] = top
+ return top
+ except configparser.NoOptionError:
+ return bsp_map.get(bsp, bsp)
+
+
+def resolve_option_inheritance(conf, cp):
+ bsp_map = {}
+ for variant in cp.sections():
+ variant = no_unicode(variant)
+ try:
+ arch, bsp = variant.split("/")
+ except:
+ conf.fatal(
+ "Section name '{}' is a malformed 'arch/bsp' tuple".format(
+ variant
+ )
+ )
+ inherit(conf, cp, bsp_map, arch, bsp, [])
+ return bsp_map
+
+
+def check_compiler(ctx, compiler):
+ if compiler not in compilers:
+ ctx.fatal(
+ "Specified compiler '{}' is not one of {}".format(
+ compiler, compilers
+ )
+ )
+
+
+def get_compiler(conf, cp, variant):
+ try:
+ value = cp.get(conf.variant, "COMPILER")
+ cp.remove_option(conf.variant, "COMPILER")
+ value = no_unicode(value)
+ check_compiler(conf, value)
+ except configparser.NoOptionError:
+ value = "gcc"
+ return value
+
+
+def configure_variant(conf, cp, bsp_map, path_list, top_group, variant):
+ conf.msg("Configure board support package (BSP)", variant, color="YELLOW")
+
+ conf.setenv(variant)
+ arch, bsp_name = variant.split("/")
+ bsp_base = bsp_map.get(bsp_name, bsp_name)
+
+ conf.env["ARCH"] = arch
+ conf.env["BSP_BASE"] = bsp_base
+ conf.env["BSP_NAME"] = bsp_name
+ conf.env["DEST_OS"] = "rtems"
+ conf.env["ENABLE"] = [get_compiler(conf, cp, variant), arch, variant]
+ conf.env["TOP"] = conf.path.abspath()
+ conf.env["TOPGROUP"] = top_group
+ conf.env["VARIANT"] = variant
+
+ cic = ConfigItemContext(cp, path_list)
+
+ items[conf.env.TOPGROUP].configure(conf, cic)
+
+ try:
+ bsp_item = bsps[arch][bsp_base]
+ except KeyError:
+ conf.fatal("No such base BSP: '{}'".format(variant))
+ bsp_item.configure(conf, cic)
+
+ options = set([o[0].upper() for o in cp.items(variant)])
+ for o in options.difference(cic.options):
+ conf.msg("Unknown configuration option", o.upper(), color="RED")
+
+
+def check_forbidden_options(ctx, opts):
+ for o in opts:
+ if getattr(ctx.options, "rtems_" + o):
+ ctx.fatal(
+ "The --rtems-{} command line option is not allowed in the {} command".format(
+ o.replace("_", "-"), ctx.cmd
+ )
+ )
+
+
+def get_path_list(conf):
+ path_list = []
+ tools = conf.options.rtems_tools
+ if tools is not None:
+ for t in tools.split(","):
+ path_list.extend([t + "/bin", t])
+ path_list.append(conf.env.PREFIX + "/bin")
+ path_list.extend(os.environ.get("PATH", "").split(os.pathsep))
+ return path_list
+
+
+def get_top_group(ctx):
+ top_group = ctx.options.rtems_top_group
+ if top_group is None:
+ top_group = "/grp"
+ if top_group not in items:
+ ctx.fatal(
+ "There is no top-level group with UID '{}' in the specification".format(
+ top_group
+ )
+ )
+ return top_group
+
+
+def configure(conf):
+ check_forbidden_options(conf, ["compiler"])
+ check_environment(conf)
+ conf.env["SPECS"] = load_items_from_options(conf)
+ top_group = get_top_group(conf)
+ cp = load_config_files(conf)
+ bsp_map = resolve_option_inheritance(conf, cp)
+ path_list = get_path_list(conf)
+ variant_list = []
+ for variant in cp.sections():
+ variant = no_unicode(variant)
+ variant_list.append(variant)
+ configure_variant(conf, cp, bsp_map, path_list, top_group, variant)
+ conf.setenv("")
+ conf.env["VARIANTS"] = variant_list
+
+
+def append_variant_builds(bld):
+ import waflib.Options
+ from waflib.Build import (
+ BuildContext,
+ CleanContext,
+ InstallContext,
+ UninstallContext,
+ )
+
+ for var in bld.env["VARIANTS"]:
+ for c in (BuildContext, CleanContext, InstallContext, UninstallContext):
+ name = c.__name__.replace("Context", "").lower()
+
+ class magic(c):
+ cmd = name + "_" + var
+ variant = var
+
+ waflib.Options.commands.append(bld.cmd + "_" + var)
+
+
+def long_command_line_workaround(bld):
+ if is_windows_host:
+ bld.load("long_gcc")
+
+
+def build(bld):
+ if not bld.variant:
+ check_forbidden_options(
+ bld, ["compiler", "config", "specs", "tools", "top_group"]
+ )
+ load_items(bld, bld.env.SPECS)
+ append_variant_builds(bld)
+ return
+ long_command_line_workaround(bld)
+ bic = BuildItemContext(bld.env.ARCH_INCLUDES.split(), [], [], [])
+ bsps[bld.env.ARCH][bld.env.BSP_BASE].build(bld, bic)
+ items[bld.env.TOPGROUP].build(bld, bic)
+
+
+def add_log_filter(name):
+ msg = "'" + name + "' finished successfully"
+
+ class Filter:
+ def filter(self, rec):
+ return not msg in rec.getMessage()
+
+ import logging
+
+ logging.getLogger("waflib").addFilter(Filter())
+
+
+def get_white_list(ctx):
+ white_list = ctx.options.rtems_bsps
+ if white_list:
+ white_list = white_list.split(",")
+ return white_list
+
+
+def is_in_white_list(variant, white_list):
+ if not white_list:
+ return True
+ for pattern in white_list:
+ if re.search(pattern, variant):
+ return True
+ return False
+
+
+def no_matches_error(ctx, white_list):
+ if white_list:
+ ctx.fatal(
+ "No BSP matches with the specified patterns: '{}'".format(
+ "', '".join(white_list)
+ )
+ )
+ else:
+ ctx.fatal("The build specification contains no BSPs")
+
+
+def bsp_defaults(ctx):
+ """get all options with default values for base BSP variants"""
+ check_forbidden_options(ctx, ["config", "tools"])
+ add_log_filter(ctx.cmd)
+ load_items_from_options(ctx)
+ top_group = get_top_group(ctx)
+ white_list = get_white_list(ctx)
+ compiler = ctx.options.rtems_compiler
+ if compiler is not None:
+ check_compiler(ctx, compiler)
+ else:
+ compiler = "gcc"
+ first = True
+ for arch in sorted(bsps):
+ for bsp in sorted(bsps[arch]):
+ variant = arch + "/" + bsp
+ if is_in_white_list(variant, white_list):
+ if not first:
+ print("")
+ first = False
+ print(
+ """[{}]
+# Selects the compiler used to build the BSP (allowed values are "gcc" and
+# "clang"). Please note that the values of some options depend on the compiler
+# selection and changing the compiler may lead to unpredictable behaviour if
+# these options are not adjusted as well. Use the --rtems-compiler command line
+# option to get the default values for a particular compiler via
+# ./waf bsp_defaults.
+COMPILER = {}""".format(
+ variant, compiler
+ )
+ )
+ enable = [compiler, arch, variant]
+ items[top_group].defaults(enable, variant)
+ bsps[arch][bsp].defaults(enable, variant)
+ if first:
+ no_matches_error(ctx, white_list)
+
+
+def bsp_list(ctx):
+ """lists base BSP variants"""
+ check_forbidden_options(ctx, ["compiler", "config", "tools", "top_group"])
+ add_log_filter(ctx.cmd)
+ load_items_from_options(ctx)
+ white_list = get_white_list(ctx)
+ first = True
+ for arch in sorted(bsps):
+ for bsp in sorted(bsps[arch]):
+ variant = arch + "/" + bsp
+ if is_in_white_list(variant, white_list):
+ first = False
+ print(variant)
+ if first:
+ no_matches_error(ctx, white_list)
diff --git a/yaml/LICENSE b/yaml/LICENSE
new file mode 100644
index 0000000000..3d82c281ee
--- /dev/null
+++ b/yaml/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2017-2020 Ingy döt Net
+Copyright (c) 2006-2016 Kirill Simonov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/yaml/PKG-INFO b/yaml/PKG-INFO
new file mode 100644
index 0000000000..bf47ef4b35
--- /dev/null
+++ b/yaml/PKG-INFO
@@ -0,0 +1,38 @@
+Metadata-Version: 1.1
+Name: PyYAML
+Version: 5.3.1
+Summary: YAML parser and emitter for Python
+Home-page: https://github.com/yaml/pyyaml
+Author: Kirill Simonov
+Author-email: xi@resolvent.net
+License: MIT
+Download-URL: https://pypi.org/project/PyYAML/
+Description: YAML is a data serialization format designed for human readability
+ and interaction with scripting languages. PyYAML is a YAML parser
+ and emitter for Python.
+
+ PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
+ support, capable extension API, and sensible error messages. PyYAML
+ supports standard YAML tags and provides Python-specific tags that
+ allow to represent an arbitrary Python object.
+
+ PyYAML is applicable for a broad range of tasks from complex
+ configuration files to object serialization and persistence.
+Platform: Any
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Cython
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Topic :: Text Processing :: Markup
diff --git a/yaml/lib/yaml/__init__.py b/yaml/lib/yaml/__init__.py
new file mode 100644
index 0000000000..211fc8665e
--- /dev/null
+++ b/yaml/lib/yaml/__init__.py
@@ -0,0 +1,431 @@
+
+from error import *
+
+from tokens import *
+from events import *
+from nodes import *
+
+from loader import *
+from dumper import *
+
+__version__ = '5.3.1'
+
+try:
+ from cyaml import *
+ __with_libyaml__ = True
+except ImportError:
+ __with_libyaml__ = False
+
+
+#------------------------------------------------------------------------------
+# Warnings control
+#------------------------------------------------------------------------------
+
+# 'Global' warnings state:
+_warnings_enabled = {
+ 'YAMLLoadWarning': True,
+}
+
+# Get or set global warnings' state
+def warnings(settings=None):
+ if settings is None:
+ return _warnings_enabled
+
+ if type(settings) is dict:
+ for key in settings:
+ if key in _warnings_enabled:
+ _warnings_enabled[key] = settings[key]
+
+# Warn when load() is called without Loader=...
+class YAMLLoadWarning(RuntimeWarning):
+ pass
+
+def load_warning(method):
+ if _warnings_enabled['YAMLLoadWarning'] is False:
+ return
+
+ import warnings
+
+ message = (
+ "calling yaml.%s() without Loader=... is deprecated, as the "
+ "default Loader is unsafe. Please read "
+ "https://msg.pyyaml.org/load for full details."
+ ) % method
+
+ warnings.warn(message, YAMLLoadWarning, stacklevel=3)
+
+#------------------------------------------------------------------------------
+def scan(stream, Loader=Loader):
+ """
+ Scan a YAML stream and produce scanning tokens.
+ """
+ loader = Loader(stream)
+ try:
+ while loader.check_token():
+ yield loader.get_token()
+ finally:
+ loader.dispose()
+
+def parse(stream, Loader=Loader):
+ """
+ Parse a YAML stream and produce parsing events.
+ """
+ loader = Loader(stream)
+ try:
+ while loader.check_event():
+ yield loader.get_event()
+ finally:
+ loader.dispose()
+
+def compose(stream, Loader=Loader):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding representation tree.
+ """
+ loader = Loader(stream)
+ try:
+ return loader.get_single_node()
+ finally:
+ loader.dispose()
+
+def compose_all(stream, Loader=Loader):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding representation trees.
+ """
+ loader = Loader(stream)
+ try:
+ while loader.check_node():
+ yield loader.get_node()
+ finally:
+ loader.dispose()
+
+def load(stream, Loader=None):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding Python object.
+ """
+ if Loader is None:
+ load_warning('load')
+ Loader = FullLoader
+
+ loader = Loader(stream)
+ try:
+ return loader.get_single_data()
+ finally:
+ loader.dispose()
+
+def load_all(stream, Loader=None):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding Python objects.
+ """
+ if Loader is None:
+ load_warning('load_all')
+ Loader = FullLoader
+
+ loader = Loader(stream)
+ try:
+ while loader.check_data():
+ yield loader.get_data()
+ finally:
+ loader.dispose()
+
+def full_load(stream):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding Python object.
+
+ Resolve all tags except those known to be
+ unsafe on untrusted input.
+ """
+ return load(stream, FullLoader)
+
+def full_load_all(stream):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding Python objects.
+
+ Resolve all tags except those known to be
+ unsafe on untrusted input.
+ """
+ return load_all(stream, FullLoader)
+
+def safe_load(stream):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding Python object.
+
+ Resolve only basic YAML tags. This is known
+ to be safe for untrusted input.
+ """
+ return load(stream, SafeLoader)
+
+def safe_load_all(stream):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding Python objects.
+
+ Resolve only basic YAML tags. This is known
+ to be safe for untrusted input.
+ """
+ return load_all(stream, SafeLoader)
+
+def unsafe_load(stream):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding Python object.
+
+ Resolve all tags, even those known to be
+ unsafe on untrusted input.
+ """
+ return load(stream, UnsafeLoader)
+
+def unsafe_load_all(stream):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding Python objects.
+
+ Resolve all tags, even those known to be
+ unsafe on untrusted input.
+ """
+ return load_all(stream, UnsafeLoader)
+
+def emit(events, stream=None, Dumper=Dumper,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None):
+ """
+ Emit YAML parsing events into a stream.
+ If stream is None, return the produced string instead.
+ """
+ getvalue = None
+ if stream is None:
+ from StringIO import StringIO
+ stream = StringIO()
+ getvalue = stream.getvalue
+ dumper = Dumper(stream, canonical=canonical, indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break)
+ try:
+ for event in events:
+ dumper.emit(event)
+ finally:
+ dumper.dispose()
+ if getvalue:
+ return getvalue()
+
+def serialize_all(nodes, stream=None, Dumper=Dumper,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding='utf-8', explicit_start=None, explicit_end=None,
+ version=None, tags=None):
+ """
+ Serialize a sequence of representation trees into a YAML stream.
+ If stream is None, return the produced string instead.
+ """
+ getvalue = None
+ if stream is None:
+ if encoding is None:
+ from StringIO import StringIO
+ else:
+ from cStringIO import StringIO
+ stream = StringIO()
+ getvalue = stream.getvalue
+ dumper = Dumper(stream, canonical=canonical, indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break,
+ encoding=encoding, version=version, tags=tags,
+ explicit_start=explicit_start, explicit_end=explicit_end)
+ try:
+ dumper.open()
+ for node in nodes:
+ dumper.serialize(node)
+ dumper.close()
+ finally:
+ dumper.dispose()
+ if getvalue:
+ return getvalue()
+
+def serialize(node, stream=None, Dumper=Dumper, **kwds):
+ """
+ Serialize a representation tree into a YAML stream.
+ If stream is None, return the produced string instead.
+ """
+ return serialize_all([node], stream, Dumper=Dumper, **kwds)
+
+def dump_all(documents, stream=None, Dumper=Dumper,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding='utf-8', explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ """
+ Serialize a sequence of Python objects into a YAML stream.
+ If stream is None, return the produced string instead.
+ """
+ getvalue = None
+ if stream is None:
+ if encoding is None:
+ from StringIO import StringIO
+ else:
+ from cStringIO import StringIO
+ stream = StringIO()
+ getvalue = stream.getvalue
+ dumper = Dumper(stream, default_style=default_style,
+ default_flow_style=default_flow_style,
+ canonical=canonical, indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break,
+ encoding=encoding, version=version, tags=tags,
+ explicit_start=explicit_start, explicit_end=explicit_end, sort_keys=sort_keys)
+ try:
+ dumper.open()
+ for data in documents:
+ dumper.represent(data)
+ dumper.close()
+ finally:
+ dumper.dispose()
+ if getvalue:
+ return getvalue()
+
+def dump(data, stream=None, Dumper=Dumper, **kwds):
+ """
+ Serialize a Python object into a YAML stream.
+ If stream is None, return the produced string instead.
+ """
+ return dump_all([data], stream, Dumper=Dumper, **kwds)
+
+def safe_dump_all(documents, stream=None, **kwds):
+ """
+ Serialize a sequence of Python objects into a YAML stream.
+ Produce only basic YAML tags.
+ If stream is None, return the produced string instead.
+ """
+ return dump_all(documents, stream, Dumper=SafeDumper, **kwds)
+
+def safe_dump(data, stream=None, **kwds):
+ """
+ Serialize a Python object into a YAML stream.
+ Produce only basic YAML tags.
+ If stream is None, return the produced string instead.
+ """
+ return dump_all([data], stream, Dumper=SafeDumper, **kwds)
+
+def add_implicit_resolver(tag, regexp, first=None,
+ Loader=None, Dumper=Dumper):
+ """
+ Add an implicit scalar detector.
+ If an implicit scalar value matches the given regexp,
+ the corresponding tag is assigned to the scalar.
+ first is a sequence of possible initial characters or None.
+ """
+ if Loader is None:
+ loader.Loader.add_implicit_resolver(tag, regexp, first)
+ loader.FullLoader.add_implicit_resolver(tag, regexp, first)
+ loader.UnsafeLoader.add_implicit_resolver(tag, regexp, first)
+ else:
+ Loader.add_implicit_resolver(tag, regexp, first)
+ Dumper.add_implicit_resolver(tag, regexp, first)
+
+def add_path_resolver(tag, path, kind=None, Loader=None, Dumper=Dumper):
+ """
+ Add a path based resolver for the given tag.
+ A path is a list of keys that forms a path
+ to a node in the representation tree.
+ Keys can be string values, integers, or None.
+ """
+ if Loader is None:
+ loader.Loader.add_path_resolver(tag, path, kind)
+ loader.FullLoader.add_path_resolver(tag, path, kind)
+ loader.UnsafeLoader.add_path_resolver(tag, path, kind)
+ else:
+ Loader.add_path_resolver(tag, path, kind)
+ Dumper.add_path_resolver(tag, path, kind)
+
+def add_constructor(tag, constructor, Loader=None):
+ """
+ Add a constructor for the given tag.
+ Constructor is a function that accepts a Loader instance
+ and a node object and produces the corresponding Python object.
+ """
+ if Loader is None:
+ loader.Loader.add_constructor(tag, constructor)
+ loader.FullLoader.add_constructor(tag, constructor)
+ loader.UnsafeLoader.add_constructor(tag, constructor)
+ else:
+ Loader.add_constructor(tag, constructor)
+
+def add_multi_constructor(tag_prefix, multi_constructor, Loader=None):
+ """
+ Add a multi-constructor for the given tag prefix.
+ Multi-constructor is called for a node if its tag starts with tag_prefix.
+ Multi-constructor accepts a Loader instance, a tag suffix,
+ and a node object and produces the corresponding Python object.
+ """
+ if Loader is None:
+ loader.Loader.add_multi_constructor(tag_prefix, multi_constructor)
+ loader.FullLoader.add_multi_constructor(tag_prefix, multi_constructor)
+ loader.UnsafeLoader.add_multi_constructor(tag_prefix, multi_constructor)
+ else:
+ Loader.add_multi_constructor(tag_prefix, multi_constructor)
+
+def add_representer(data_type, representer, Dumper=Dumper):
+ """
+ Add a representer for the given type.
+ Representer is a function accepting a Dumper instance
+ and an instance of the given data type
+ and producing the corresponding representation node.
+ """
+ Dumper.add_representer(data_type, representer)
+
+def add_multi_representer(data_type, multi_representer, Dumper=Dumper):
+ """
+ Add a representer for the given type.
+ Multi-representer is a function accepting a Dumper instance
+ and an instance of the given data type or subtype
+ and producing the corresponding representation node.
+ """
+ Dumper.add_multi_representer(data_type, multi_representer)
+
+class YAMLObjectMetaclass(type):
+ """
+ The metaclass for YAMLObject.
+ """
+ def __init__(cls, name, bases, kwds):
+ super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds)
+ if 'yaml_tag' in kwds and kwds['yaml_tag'] is not None:
+ if isinstance(cls.yaml_loader, list):
+ for loader in cls.yaml_loader:
+ loader.add_constructor(cls.yaml_tag, cls.from_yaml)
+ else:
+ cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml)
+
+ cls.yaml_dumper.add_representer(cls, cls.to_yaml)
+
+class YAMLObject(object):
+ """
+ An object that can dump itself to a YAML stream
+ and load itself from a YAML stream.
+ """
+
+ __metaclass__ = YAMLObjectMetaclass
+ __slots__ = () # no direct instantiation, so allow immutable subclasses
+
+ yaml_loader = [Loader, FullLoader, UnsafeLoader]
+ yaml_dumper = Dumper
+
+ yaml_tag = None
+ yaml_flow_style = None
+
+ def from_yaml(cls, loader, node):
+ """
+ Convert a representation node to a Python object.
+ """
+ return loader.construct_yaml_object(node, cls)
+ from_yaml = classmethod(from_yaml)
+
+ def to_yaml(cls, dumper, data):
+ """
+ Convert a Python object to a representation node.
+ """
+ return dumper.represent_yaml_object(cls.yaml_tag, data, cls,
+ flow_style=cls.yaml_flow_style)
+ to_yaml = classmethod(to_yaml)
+
diff --git a/yaml/lib/yaml/composer.py b/yaml/lib/yaml/composer.py
new file mode 100644
index 0000000000..df85ef653b
--- /dev/null
+++ b/yaml/lib/yaml/composer.py
@@ -0,0 +1,139 @@
+
+__all__ = ['Composer', 'ComposerError']
+
+from error import MarkedYAMLError
+from events import *
+from nodes import *
+
+class ComposerError(MarkedYAMLError):
+ pass
+
+class Composer(object):
+
+ def __init__(self):
+ self.anchors = {}
+
+ def check_node(self):
+ # Drop the STREAM-START event.
+ if self.check_event(StreamStartEvent):
+ self.get_event()
+
+ # If there are more documents available?
+ return not self.check_event(StreamEndEvent)
+
+ def get_node(self):
+ # Get the root node of the next document.
+ if not self.check_event(StreamEndEvent):
+ return self.compose_document()
+
+ def get_single_node(self):
+ # Drop the STREAM-START event.
+ self.get_event()
+
+ # Compose a document if the stream is not empty.
+ document = None
+ if not self.check_event(StreamEndEvent):
+ document = self.compose_document()
+
+ # Ensure that the stream contains no more documents.
+ if not self.check_event(StreamEndEvent):
+ event = self.get_event()
+ raise ComposerError("expected a single document in the stream",
+ document.start_mark, "but found another document",
+ event.start_mark)
+
+ # Drop the STREAM-END event.
+ self.get_event()
+
+ return document
+
+ def compose_document(self):
+ # Drop the DOCUMENT-START event.
+ self.get_event()
+
+ # Compose the root node.
+ node = self.compose_node(None, None)
+
+ # Drop the DOCUMENT-END event.
+ self.get_event()
+
+ self.anchors = {}
+ return node
+
+ def compose_node(self, parent, index):
+ if self.check_event(AliasEvent):
+ event = self.get_event()
+ anchor = event.anchor
+ if anchor not in self.anchors:
+ raise ComposerError(None, None, "found undefined alias %r"
+ % anchor.encode('utf-8'), event.start_mark)
+ return self.anchors[anchor]
+ event = self.peek_event()
+ anchor = event.anchor
+ if anchor is not None:
+ if anchor in self.anchors:
+ raise ComposerError("found duplicate anchor %r; first occurrence"
+ % anchor.encode('utf-8'), self.anchors[anchor].start_mark,
+ "second occurrence", event.start_mark)
+ self.descend_resolver(parent, index)
+ if self.check_event(ScalarEvent):
+ node = self.compose_scalar_node(anchor)
+ elif self.check_event(SequenceStartEvent):
+ node = self.compose_sequence_node(anchor)
+ elif self.check_event(MappingStartEvent):
+ node = self.compose_mapping_node(anchor)
+ self.ascend_resolver()
+ return node
+
+ def compose_scalar_node(self, anchor):
+ event = self.get_event()
+ tag = event.tag
+ if tag is None or tag == u'!':
+ tag = self.resolve(ScalarNode, event.value, event.implicit)
+ node = ScalarNode(tag, event.value,
+ event.start_mark, event.end_mark, style=event.style)
+ if anchor is not None:
+ self.anchors[anchor] = node
+ return node
+
+ def compose_sequence_node(self, anchor):
+ start_event = self.get_event()
+ tag = start_event.tag
+ if tag is None or tag == u'!':
+ tag = self.resolve(SequenceNode, None, start_event.implicit)
+ node = SequenceNode(tag, [],
+ start_event.start_mark, None,
+ flow_style=start_event.flow_style)
+ if anchor is not None:
+ self.anchors[anchor] = node
+ index = 0
+ while not self.check_event(SequenceEndEvent):
+ node.value.append(self.compose_node(node, index))
+ index += 1
+ end_event = self.get_event()
+ node.end_mark = end_event.end_mark
+ return node
+
+ def compose_mapping_node(self, anchor):
+ start_event = self.get_event()
+ tag = start_event.tag
+ if tag is None or tag == u'!':
+ tag = self.resolve(MappingNode, None, start_event.implicit)
+ node = MappingNode(tag, [],
+ start_event.start_mark, None,
+ flow_style=start_event.flow_style)
+ if anchor is not None:
+ self.anchors[anchor] = node
+ while not self.check_event(MappingEndEvent):
+ #key_event = self.peek_event()
+ item_key = self.compose_node(node, None)
+ #if item_key in node.value:
+ # raise ComposerError("while composing a mapping", start_event.start_mark,
+ # "found duplicate key", key_event.start_mark)
+ item_value = self.compose_node(node, item_key)
+ #node.value[item_key] = item_value
+ node.value.append((item_key, item_value))
+ end_event = self.get_event()
+ node.end_mark = end_event.end_mark
+ return node
+
diff --git a/yaml/lib/yaml/constructor.py b/yaml/lib/yaml/constructor.py
new file mode 100644
index 0000000000..794681cb7f
--- /dev/null
+++ b/yaml/lib/yaml/constructor.py
@@ -0,0 +1,760 @@
+
+__all__ = [
+ 'BaseConstructor',
+ 'SafeConstructor',
+ 'FullConstructor',
+ 'UnsafeConstructor',
+ 'Constructor',
+ 'ConstructorError'
+]
+
+from error import *
+from nodes import *
+
+import datetime
+
+import binascii, re, sys, types
+
+class ConstructorError(MarkedYAMLError):
+ pass
+
+
+class timezone(datetime.tzinfo):
+ def __init__(self, offset):
+ self._offset = offset
+ seconds = abs(offset).total_seconds()
+ self._name = 'UTC%s%02d:%02d' % (
+ '-' if offset.days < 0 else '+',
+ seconds // 3600,
+ seconds % 3600 // 60
+ )
+
+ def tzname(self, dt=None):
+ return self._name
+
+ def utcoffset(self, dt=None):
+ return self._offset
+
+ def dst(self, dt=None):
+ return datetime.timedelta(0)
+
+ __repr__ = __str__ = tzname
+
+
+class BaseConstructor(object):
+
+ yaml_constructors = {}
+ yaml_multi_constructors = {}
+
+ def __init__(self):
+ self.constructed_objects = {}
+ self.recursive_objects = {}
+ self.state_generators = []
+ self.deep_construct = False
+
+ def check_data(self):
+ # If there are more documents available?
+ return self.check_node()
+
+ def check_state_key(self, key):
+ """Block special attributes/methods from being set in a newly created
+ object, to prevent user-controlled methods from being called during
+ deserialization"""
+ if self.get_state_keys_blacklist_regexp().match(key):
+ raise ConstructorError(None, None,
+ "blacklisted key '%s' in instance state found" % (key,), None)
+
+ def get_data(self):
+ # Construct and return the next document.
+ if self.check_node():
+ return self.construct_document(self.get_node())
+
+ def get_single_data(self):
+ # Ensure that the stream contains a single document and construct it.
+ node = self.get_single_node()
+ if node is not None:
+ return self.construct_document(node)
+ return None
+
+ def construct_document(self, node):
+ data = self.construct_object(node)
+ while self.state_generators:
+ state_generators = self.state_generators
+ self.state_generators = []
+ for generator in state_generators:
+ for dummy in generator:
+ pass
+ self.constructed_objects = {}
+ self.recursive_objects = {}
+ self.deep_construct = False
+ return data
+
+ def construct_object(self, node, deep=False):
+ if node in self.constructed_objects:
+ return self.constructed_objects[node]
+ if deep:
+ old_deep = self.deep_construct
+ self.deep_construct = True
+ if node in self.recursive_objects:
+ raise ConstructorError(None, None,
+ "found unconstructable recursive node", node.start_mark)
+ self.recursive_objects[node] = None
+ constructor = None
+ tag_suffix = None
+ if node.tag in self.yaml_constructors:
+ constructor = self.yaml_constructors[node.tag]
+ else:
+ for tag_prefix in self.yaml_multi_constructors:
+ if tag_prefix is not None and node.tag.startswith(tag_prefix):
+ tag_suffix = node.tag[len(tag_prefix):]
+ constructor = self.yaml_multi_constructors[tag_prefix]
+ break
+ else:
+ if None in self.yaml_multi_constructors:
+ tag_suffix = node.tag
+ constructor = self.yaml_multi_constructors[None]
+ elif None in self.yaml_constructors:
+ constructor = self.yaml_constructors[None]
+ elif isinstance(node, ScalarNode):
+ constructor = self.__class__.construct_scalar
+ elif isinstance(node, SequenceNode):
+ constructor = self.__class__.construct_sequence
+ elif isinstance(node, MappingNode):
+ constructor = self.__class__.construct_mapping
+ if tag_suffix is None:
+ data = constructor(self, node)
+ else:
+ data = constructor(self, tag_suffix, node)
+ if isinstance(data, types.GeneratorType):
+ generator = data
+ data = generator.next()
+ if self.deep_construct:
+ for dummy in generator:
+ pass
+ else:
+ self.state_generators.append(generator)
+ self.constructed_objects[node] = data
+ del self.recursive_objects[node]
+ if deep:
+ self.deep_construct = old_deep
+ return data
+
+ def construct_scalar(self, node):
+ if not isinstance(node, ScalarNode):
+ raise ConstructorError(None, None,
+ "expected a scalar node, but found %s" % node.id,
+ node.start_mark)
+ return node.value
+
+ def construct_sequence(self, node, deep=False):
+ if not isinstance(node, SequenceNode):
+ raise ConstructorError(None, None,
+ "expected a sequence node, but found %s" % node.id,
+ node.start_mark)
+ return [self.construct_object(child, deep=deep)
+ for child in node.value]
+
+ def construct_mapping(self, node, deep=False):
+ if not isinstance(node, MappingNode):
+ raise ConstructorError(None, None,
+ "expected a mapping node, but found %s" % node.id,
+ node.start_mark)
+ mapping = {}
+ for key_node, value_node in node.value:
+ key = self.construct_object(key_node, deep=deep)
+ try:
+ hash(key)
+ except TypeError, exc:
+ raise ConstructorError("while constructing a mapping", node.start_mark,
+ "found unacceptable key (%s)" % exc, key_node.start_mark)
+ value = self.construct_object(value_node, deep=deep)
+ mapping[key] = value
+ return mapping
+
+ def construct_pairs(self, node, deep=False):
+ if not isinstance(node, MappingNode):
+ raise ConstructorError(None, None,
+ "expected a mapping node, but found %s" % node.id,
+ node.start_mark)
+ pairs = []
+ for key_node, value_node in node.value:
+ key = self.construct_object(key_node, deep=deep)
+ value = self.construct_object(value_node, deep=deep)
+ pairs.append((key, value))
+ return pairs
+
+ def add_constructor(cls, tag, constructor):
+ if not 'yaml_constructors' in cls.__dict__:
+ cls.yaml_constructors = cls.yaml_constructors.copy()
+ cls.yaml_constructors[tag] = constructor
+ add_constructor = classmethod(add_constructor)
+
+ def add_multi_constructor(cls, tag_prefix, multi_constructor):
+ if not 'yaml_multi_constructors' in cls.__dict__:
+ cls.yaml_multi_constructors = cls.yaml_multi_constructors.copy()
+ cls.yaml_multi_constructors[tag_prefix] = multi_constructor
+ add_multi_constructor = classmethod(add_multi_constructor)
+
+class SafeConstructor(BaseConstructor):
+
+ def construct_scalar(self, node):
+ if isinstance(node, MappingNode):
+ for key_node, value_node in node.value:
+ if key_node.tag == u'tag:yaml.org,2002:value':
+ return self.construct_scalar(value_node)
+ return BaseConstructor.construct_scalar(self, node)
+
+ def flatten_mapping(self, node):
+ merge = []
+ index = 0
+ while index < len(node.value):
+ key_node, value_node = node.value[index]
+ if key_node.tag == u'tag:yaml.org,2002:merge':
+ del node.value[index]
+ if isinstance(value_node, MappingNode):
+ self.flatten_mapping(value_node)
+ merge.extend(value_node.value)
+ elif isinstance(value_node, SequenceNode):
+ submerge = []
+ for subnode in value_node.value:
+ if not isinstance(subnode, MappingNode):
+ raise ConstructorError("while constructing a mapping",
+ node.start_mark,
+ "expected a mapping for merging, but found %s"
+ % subnode.id, subnode.start_mark)
+ self.flatten_mapping(subnode)
+ submerge.append(subnode.value)
+ submerge.reverse()
+ for value in submerge:
+ merge.extend(value)
+ else:
+ raise ConstructorError("while constructing a mapping", node.start_mark,
+ "expected a mapping or list of mappings for merging, but found %s"
+ % value_node.id, value_node.start_mark)
+ elif key_node.tag == u'tag:yaml.org,2002:value':
+ key_node.tag = u'tag:yaml.org,2002:str'
+ index += 1
+ else:
+ index += 1
+ if merge:
+ node.value = merge + node.value
+
+ def construct_mapping(self, node, deep=False):
+ if isinstance(node, MappingNode):
+ self.flatten_mapping(node)
+ return BaseConstructor.construct_mapping(self, node, deep=deep)
+
+ def construct_yaml_null(self, node):
+ self.construct_scalar(node)
+ return None
+
+ bool_values = {
+ u'yes': True,
+ u'no': False,
+ u'true': True,
+ u'false': False,
+ u'on': True,
+ u'off': False,
+ }
+
+ def construct_yaml_bool(self, node):
+ value = self.construct_scalar(node)
+ return self.bool_values[value.lower()]
+
+ def construct_yaml_int(self, node):
+ value = str(self.construct_scalar(node))
+ value = value.replace('_', '')
+ sign = +1
+ if value[0] == '-':
+ sign = -1
+ if value[0] in '+-':
+ value = value[1:]
+ if value == '0':
+ return 0
+ elif value.startswith('0b'):
+ return sign*int(value[2:], 2)
+ elif value.startswith('0x'):
+ return sign*int(value[2:], 16)
+ elif value[0] == '0':
+ return sign*int(value, 8)
+ elif ':' in value:
+ digits = [int(part) for part in value.split(':')]
+ digits.reverse()
+ base = 1
+ value = 0
+ for digit in digits:
+ value += digit*base
+ base *= 60
+ return sign*value
+ else:
+ return sign*int(value)
+
+ inf_value = 1e300
+ while inf_value != inf_value*inf_value:
+ inf_value *= inf_value
+ nan_value = -inf_value/inf_value # Trying to make a quiet NaN (like C99).
+
+ def construct_yaml_float(self, node):
+ value = str(self.construct_scalar(node))
+ value = value.replace('_', '').lower()
+ sign = +1
+ if value[0] == '-':
+ sign = -1
+ if value[0] in '+-':
+ value = value[1:]
+ if value == '.inf':
+ return sign*self.inf_value
+ elif value == '.nan':
+ return self.nan_value
+ elif ':' in value:
+ digits = [float(part) for part in value.split(':')]
+ digits.reverse()
+ base = 1
+ value = 0.0
+ for digit in digits:
+ value += digit*base
+ base *= 60
+ return sign*value
+ else:
+ return sign*float(value)
+
+ def construct_yaml_binary(self, node):
+ value = self.construct_scalar(node)
+ try:
+ return str(value).decode('base64')
+ except (binascii.Error, UnicodeEncodeError), exc:
+ raise ConstructorError(None, None,
+ "failed to decode base64 data: %s" % exc, node.start_mark)
+
+ timestamp_regexp = re.compile(
+ ur'''^(?P<year>[0-9][0-9][0-9][0-9])
+ -(?P<month>[0-9][0-9]?)
+ -(?P<day>[0-9][0-9]?)
+ (?:(?:[Tt]|[ \t]+)
+ (?P<hour>[0-9][0-9]?)
+ :(?P<minute>[0-9][0-9])
+ :(?P<second>[0-9][0-9])
+ (?:\.(?P<fraction>[0-9]*))?
+ (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
+ (?::(?P<tz_minute>[0-9][0-9]))?))?)?$''', re.X)
+
+ def construct_yaml_timestamp(self, node):
+ value = self.construct_scalar(node)
+ match = self.timestamp_regexp.match(node.value)
+ values = match.groupdict()
+ year = int(values['year'])
+ month = int(values['month'])
+ day = int(values['day'])
+ if not values['hour']:
+ return datetime.date(year, month, day)
+ hour = int(values['hour'])
+ minute = int(values['minute'])
+ second = int(values['second'])
+ fraction = 0
+ tzinfo = None
+ if values['fraction']:
+ fraction = values['fraction'][:6]
+ while len(fraction) < 6:
+ fraction += '0'
+ fraction = int(fraction)
+ if values['tz_sign']:
+ tz_hour = int(values['tz_hour'])
+ tz_minute = int(values['tz_minute'] or 0)
+ delta = datetime.timedelta(hours=tz_hour, minutes=tz_minute)
+ if values['tz_sign'] == '-':
+ delta = -delta
+ tzinfo = timezone(delta)
+ elif values['tz']:
+ tzinfo = timezone(datetime.timedelta(0))
+ return datetime.datetime(year, month, day, hour, minute, second, fraction,
+ tzinfo=tzinfo)
+
+ def construct_yaml_omap(self, node):
+ # Note: we do not check for duplicate keys, because it's too
+ # CPU-expensive.
+ omap = []
+ yield omap
+ if not isinstance(node, SequenceNode):
+ raise ConstructorError("while constructing an ordered map", node.start_mark,
+ "expected a sequence, but found %s" % node.id, node.start_mark)
+ for subnode in node.value:
+ if not isinstance(subnode, MappingNode):
+ raise ConstructorError("while constructing an ordered map", node.start_mark,
+ "expected a mapping of length 1, but found %s" % subnode.id,
+ subnode.start_mark)
+ if len(subnode.value) != 1:
+ raise ConstructorError("while constructing an ordered map", node.start_mark,
+ "expected a single mapping item, but found %d items" % len(subnode.value),
+ subnode.start_mark)
+ key_node, value_node = subnode.value[0]
+ key = self.construct_object(key_node)
+ value = self.construct_object(value_node)
+ omap.append((key, value))
+
+ def construct_yaml_pairs(self, node):
+ # Note: the same code as `construct_yaml_omap`.
+ pairs = []
+ yield pairs
+ if not isinstance(node, SequenceNode):
+ raise ConstructorError("while constructing pairs", node.start_mark,
+ "expected a sequence, but found %s" % node.id, node.start_mark)
+ for subnode in node.value:
+ if not isinstance(subnode, MappingNode):
+ raise ConstructorError("while constructing pairs", node.start_mark,
+ "expected a mapping of length 1, but found %s" % subnode.id,
+ subnode.start_mark)
+ if len(subnode.value) != 1:
+ raise ConstructorError("while constructing pairs", node.start_mark,
+ "expected a single mapping item, but found %d items" % len(subnode.value),
+ subnode.start_mark)
+ key_node, value_node = subnode.value[0]
+ key = self.construct_object(key_node)
+ value = self.construct_object(value_node)
+ pairs.append((key, value))
+
+ def construct_yaml_set(self, node):
+ data = set()
+ yield data
+ value = self.construct_mapping(node)
+ data.update(value)
+
+ def construct_yaml_str(self, node):
+ value = self.construct_scalar(node)
+ try:
+ return value.encode('ascii')
+ except UnicodeEncodeError:
+ return value
+
+ def construct_yaml_seq(self, node):
+ data = []
+ yield data
+ data.extend(self.construct_sequence(node))
+
+ def construct_yaml_map(self, node):
+ data = {}
+ yield data
+ value = self.construct_mapping(node)
+ data.update(value)
+
+ def construct_yaml_object(self, node, cls):
+ data = cls.__new__(cls)
+ yield data
+ if hasattr(data, '__setstate__'):
+ state = self.construct_mapping(node, deep=True)
+ data.__setstate__(state)
+ else:
+ state = self.construct_mapping(node)
+ data.__dict__.update(state)
+
+ def construct_undefined(self, node):
+ raise ConstructorError(None, None,
+ "could not determine a constructor for the tag %r" % node.tag.encode('utf-8'),
+ node.start_mark)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:null',
+ SafeConstructor.construct_yaml_null)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:bool',
+ SafeConstructor.construct_yaml_bool)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:int',
+ SafeConstructor.construct_yaml_int)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:float',
+ SafeConstructor.construct_yaml_float)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:binary',
+ SafeConstructor.construct_yaml_binary)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:timestamp',
+ SafeConstructor.construct_yaml_timestamp)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:omap',
+ SafeConstructor.construct_yaml_omap)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:pairs',
+ SafeConstructor.construct_yaml_pairs)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:set',
+ SafeConstructor.construct_yaml_set)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:str',
+ SafeConstructor.construct_yaml_str)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:seq',
+ SafeConstructor.construct_yaml_seq)
+
+SafeConstructor.add_constructor(
+ u'tag:yaml.org,2002:map',
+ SafeConstructor.construct_yaml_map)
+
+SafeConstructor.add_constructor(None,
+ SafeConstructor.construct_undefined)
+
+class FullConstructor(SafeConstructor):
+ # 'extend' is blacklisted because it is used by
+ # construct_python_object_apply to add `listitems` to a newly generate
+ # python instance
+ def get_state_keys_blacklist(self):
+ return ['^extend$', '^__.*__$']
+
+ def get_state_keys_blacklist_regexp(self):
+ if not hasattr(self, 'state_keys_blacklist_regexp'):
+ self.state_keys_blacklist_regexp = re.compile('(' + '|'.join(self.get_state_keys_blacklist()) + ')')
+ return self.state_keys_blacklist_regexp
+
+ def construct_python_str(self, node):
+ return self.construct_scalar(node).encode('utf-8')
+
+ def construct_python_unicode(self, node):
+ return self.construct_scalar(node)
+
+ def construct_python_long(self, node):
+ return long(self.construct_yaml_int(node))
+
+ def construct_python_complex(self, node):
+ return complex(self.construct_scalar(node))
+
+ def construct_python_tuple(self, node):
+ return tuple(self.construct_sequence(node))
+
+ def find_python_module(self, name, mark, unsafe=False):
+ if not name:
+ raise ConstructorError("while constructing a Python module", mark,
+ "expected non-empty name appended to the tag", mark)
+ if unsafe:
+ try:
+ __import__(name)
+ except ImportError, exc:
+ raise ConstructorError("while constructing a Python module", mark,
+ "cannot find module %r (%s)" % (name.encode('utf-8'), exc), mark)
+ if name not in sys.modules:
+ raise ConstructorError("while constructing a Python module", mark,
+ "module %r is not imported" % name.encode('utf-8'), mark)
+ return sys.modules[name]
+
+ def find_python_name(self, name, mark, unsafe=False):
+ if not name:
+ raise ConstructorError("while constructing a Python object", mark,
+ "expected non-empty name appended to the tag", mark)
+ if u'.' in name:
+ module_name, object_name = name.rsplit('.', 1)
+ else:
+ module_name = '__builtin__'
+ object_name = name
+ if unsafe:
+ try:
+ __import__(module_name)
+ except ImportError, exc:
+ raise ConstructorError("while constructing a Python object", mark,
+ "cannot find module %r (%s)" % (module_name.encode('utf-8'), exc), mark)
+ if module_name not in sys.modules:
+ raise ConstructorError("while constructing a Python object", mark,
+ "module %r is not imported" % module_name.encode('utf-8'), mark)
+ module = sys.modules[module_name]
+ if not hasattr(module, object_name):
+ raise ConstructorError("while constructing a Python object", mark,
+ "cannot find %r in the module %r" % (object_name.encode('utf-8'),
+ module.__name__), mark)
+ return getattr(module, object_name)
+
+ def construct_python_name(self, suffix, node):
+ value = self.construct_scalar(node)
+ if value:
+ raise ConstructorError("while constructing a Python name", node.start_mark,
+ "expected the empty value, but found %r" % value.encode('utf-8'),
+ node.start_mark)
+ return self.find_python_name(suffix, node.start_mark)
+
+ def construct_python_module(self, suffix, node):
+ value = self.construct_scalar(node)
+ if value:
+ raise ConstructorError("while constructing a Python module", node.start_mark,
+ "expected the empty value, but found %r" % value.encode('utf-8'),
+ node.start_mark)
+ return self.find_python_module(suffix, node.start_mark)
+
+ class classobj: pass
+
+ def make_python_instance(self, suffix, node,
+ args=None, kwds=None, newobj=False, unsafe=False):
+ if not args:
+ args = []
+ if not kwds:
+ kwds = {}
+ cls = self.find_python_name(suffix, node.start_mark)
+ if not (unsafe or isinstance(cls, type) or isinstance(cls, type(self.classobj))):
+ raise ConstructorError("while constructing a Python instance", node.start_mark,
+ "expected a class, but found %r" % type(cls),
+ node.start_mark)
+ if newobj and isinstance(cls, type(self.classobj)) \
+ and not args and not kwds:
+ instance = self.classobj()
+ instance.__class__ = cls
+ return instance
+ elif newobj and isinstance(cls, type):
+ return cls.__new__(cls, *args, **kwds)
+ else:
+ return cls(*args, **kwds)
+
+ def set_python_instance_state(self, instance, state, unsafe=False):
+ if hasattr(instance, '__setstate__'):
+ instance.__setstate__(state)
+ else:
+ slotstate = {}
+ if isinstance(state, tuple) and len(state) == 2:
+ state, slotstate = state
+ if hasattr(instance, '__dict__'):
+ if not unsafe and state:
+ for key in state.keys():
+ self.check_state_key(key)
+ instance.__dict__.update(state)
+ elif state:
+ slotstate.update(state)
+ for key, value in slotstate.items():
+ if not unsafe:
+ self.check_state_key(key)
+ setattr(instance, key, value)
+
+ def construct_python_object(self, suffix, node):
+ # Format:
+ # !!python/object:module.name { ... state ... }
+ instance = self.make_python_instance(suffix, node, newobj=True)
+ yield instance
+ deep = hasattr(instance, '__setstate__')
+ state = self.construct_mapping(node, deep=deep)
+ self.set_python_instance_state(instance, state)
+
+ def construct_python_object_apply(self, suffix, node, newobj=False):
+ # Format:
+ # !!python/object/apply # (or !!python/object/new)
+ # args: [ ... arguments ... ]
+ # kwds: { ... keywords ... }
+ # state: ... state ...
+ # listitems: [ ... listitems ... ]
+ # dictitems: { ... dictitems ... }
+ # or short format:
+ # !!python/object/apply [ ... arguments ... ]
+ # The difference between !!python/object/apply and !!python/object/new
+ # is how an object is created, check make_python_instance for details.
+ if isinstance(node, SequenceNode):
+ args = self.construct_sequence(node, deep=True)
+ kwds = {}
+ state = {}
+ listitems = []
+ dictitems = {}
+ else:
+ value = self.construct_mapping(node, deep=True)
+ args = value.get('args', [])
+ kwds = value.get('kwds', {})
+ state = value.get('state', {})
+ listitems = value.get('listitems', [])
+ dictitems = value.get('dictitems', {})
+ instance = self.make_python_instance(suffix, node, args, kwds, newobj)
+ if state:
+ self.set_python_instance_state(instance, state)
+ if listitems:
+ instance.extend(listitems)
+ if dictitems:
+ for key in dictitems:
+ instance[key] = dictitems[key]
+ return instance
+
+ def construct_python_object_new(self, suffix, node):
+ return self.construct_python_object_apply(suffix, node, newobj=True)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/none',
+ FullConstructor.construct_yaml_null)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/bool',
+ FullConstructor.construct_yaml_bool)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/str',
+ FullConstructor.construct_python_str)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/unicode',
+ FullConstructor.construct_python_unicode)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/int',
+ FullConstructor.construct_yaml_int)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/long',
+ FullConstructor.construct_python_long)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/float',
+ FullConstructor.construct_yaml_float)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/complex',
+ FullConstructor.construct_python_complex)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/list',
+ FullConstructor.construct_yaml_seq)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/tuple',
+ FullConstructor.construct_python_tuple)
+
+FullConstructor.add_constructor(
+ u'tag:yaml.org,2002:python/dict',
+ FullConstructor.construct_yaml_map)
+
+FullConstructor.add_multi_constructor(
+ u'tag:yaml.org,2002:python/name:',
+ FullConstructor.construct_python_name)
+
+FullConstructor.add_multi_constructor(
+ u'tag:yaml.org,2002:python/module:',
+ FullConstructor.construct_python_module)
+
+FullConstructor.add_multi_constructor(
+ u'tag:yaml.org,2002:python/object:',
+ FullConstructor.construct_python_object)
+
+FullConstructor.add_multi_constructor(
+ u'tag:yaml.org,2002:python/object/new:',
+ FullConstructor.construct_python_object_new)
+
+class UnsafeConstructor(FullConstructor):
+
+ def find_python_module(self, name, mark):
+ return super(UnsafeConstructor, self).find_python_module(name, mark, unsafe=True)
+
+ def find_python_name(self, name, mark):
+ return super(UnsafeConstructor, self).find_python_name(name, mark, unsafe=True)
+
+ def make_python_instance(self, suffix, node, args=None, kwds=None, newobj=False):
+ return super(UnsafeConstructor, self).make_python_instance(
+ suffix, node, args, kwds, newobj, unsafe=True)
+
+ def set_python_instance_state(self, instance, state):
+ return super(UnsafeConstructor, self).set_python_instance_state(
+ instance, state, unsafe=True)
+
+UnsafeConstructor.add_multi_constructor(
+ u'tag:yaml.org,2002:python/object/apply:',
+ UnsafeConstructor.construct_python_object_apply)
+
+# Constructor is same as UnsafeConstructor. Need to leave this in place in case
+# people have extended it directly.
+class Constructor(UnsafeConstructor):
+ pass
diff --git a/yaml/lib/yaml/cyaml.py b/yaml/lib/yaml/cyaml.py
new file mode 100644
index 0000000000..ebb8959352
--- /dev/null
+++ b/yaml/lib/yaml/cyaml.py
@@ -0,0 +1,101 @@
+
+__all__ = [
+ 'CBaseLoader', 'CSafeLoader', 'CFullLoader', 'CUnsafeLoader', 'CLoader',
+ 'CBaseDumper', 'CSafeDumper', 'CDumper'
+]
+
+from _yaml import CParser, CEmitter
+
+from constructor import *
+
+from serializer import *
+from representer import *
+
+from resolver import *
+
+class CBaseLoader(CParser, BaseConstructor, BaseResolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ BaseConstructor.__init__(self)
+ BaseResolver.__init__(self)
+
+class CSafeLoader(CParser, SafeConstructor, Resolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ SafeConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class CFullLoader(CParser, FullConstructor, Resolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ FullConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class CUnsafeLoader(CParser, UnsafeConstructor, Resolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ UnsafeConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class CLoader(CParser, Constructor, Resolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ Constructor.__init__(self)
+ Resolver.__init__(self)
+
+class CBaseDumper(CEmitter, BaseRepresenter, BaseResolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ CEmitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width, encoding=encoding,
+ allow_unicode=allow_unicode, line_break=line_break,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ Representer.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
+class CSafeDumper(CEmitter, SafeRepresenter, Resolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ CEmitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width, encoding=encoding,
+ allow_unicode=allow_unicode, line_break=line_break,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ SafeRepresenter.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
+class CDumper(CEmitter, Serializer, Representer, Resolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ CEmitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width, encoding=encoding,
+ allow_unicode=allow_unicode, line_break=line_break,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ Representer.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
diff --git a/yaml/lib/yaml/dumper.py b/yaml/lib/yaml/dumper.py
new file mode 100644
index 0000000000..f9cd49fda5
--- /dev/null
+++ b/yaml/lib/yaml/dumper.py
@@ -0,0 +1,62 @@
+
+__all__ = ['BaseDumper', 'SafeDumper', 'Dumper']
+
+from emitter import *
+from serializer import *
+from representer import *
+from resolver import *
+
+class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ Emitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break)
+ Serializer.__init__(self, encoding=encoding,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ Representer.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
+class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ Emitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break)
+ Serializer.__init__(self, encoding=encoding,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ SafeRepresenter.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
+class Dumper(Emitter, Serializer, Representer, Resolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ Emitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break)
+ Serializer.__init__(self, encoding=encoding,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ Representer.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
diff --git a/yaml/lib/yaml/emitter.py b/yaml/lib/yaml/emitter.py
new file mode 100644
index 0000000000..23c25ca80a
--- /dev/null
+++ b/yaml/lib/yaml/emitter.py
@@ -0,0 +1,1144 @@
+
+# Emitter expects events obeying the following grammar:
+# stream ::= STREAM-START document* STREAM-END
+# document ::= DOCUMENT-START node DOCUMENT-END
+# node ::= SCALAR | sequence | mapping
+# sequence ::= SEQUENCE-START node* SEQUENCE-END
+# mapping ::= MAPPING-START (node node)* MAPPING-END
+
+__all__ = ['Emitter', 'EmitterError']
+
+import sys
+
+from error import YAMLError
+from events import *
+
+has_ucs4 = sys.maxunicode > 0xffff
+
+class EmitterError(YAMLError):
+ pass
+
+class ScalarAnalysis(object):
+ def __init__(self, scalar, empty, multiline,
+ allow_flow_plain, allow_block_plain,
+ allow_single_quoted, allow_double_quoted,
+ allow_block):
+ self.scalar = scalar
+ self.empty = empty
+ self.multiline = multiline
+ self.allow_flow_plain = allow_flow_plain
+ self.allow_block_plain = allow_block_plain
+ self.allow_single_quoted = allow_single_quoted
+ self.allow_double_quoted = allow_double_quoted
+ self.allow_block = allow_block
+
+class Emitter(object):
+
+ DEFAULT_TAG_PREFIXES = {
+ u'!' : u'!',
+ u'tag:yaml.org,2002:' : u'!!',
+ }
+
+ def __init__(self, stream, canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None):
+
+ # The stream should have the methods `write` and possibly `flush`.
+ self.stream = stream
+
+ # Encoding can be overridden by STREAM-START.
+ self.encoding = None
+
+ # Emitter is a state machine with a stack of states to handle nested
+ # structures.
+ self.states = []
+ self.state = self.expect_stream_start
+
+ # Current event and the event queue.
+ self.events = []
+ self.event = None
+
+ # The current indentation level and the stack of previous indents.
+ self.indents = []
+ self.indent = None
+
+ # Flow level.
+ self.flow_level = 0
+
+ # Contexts.
+ self.root_context = False
+ self.sequence_context = False
+ self.mapping_context = False
+ self.simple_key_context = False
+
+ # Characteristics of the last emitted character:
+ # - current position.
+ # - is it a whitespace?
+ # - is it an indention character
+ # (indentation space, '-', '?', or ':')?
+ self.line = 0
+ self.column = 0
+ self.whitespace = True
+ self.indention = True
+
+ # Whether the document requires an explicit document indicator
+ self.open_ended = False
+
+ # Formatting details.
+ self.canonical = canonical
+ self.allow_unicode = allow_unicode
+ self.best_indent = 2
+ if indent and 1 < indent < 10:
+ self.best_indent = indent
+ self.best_width = 80
+ if width and width > self.best_indent*2:
+ self.best_width = width
+ self.best_line_break = u'\n'
+ if line_break in [u'\r', u'\n', u'\r\n']:
+ self.best_line_break = line_break
+
+ # Tag prefixes.
+ self.tag_prefixes = None
+
+ # Prepared anchor and tag.
+ self.prepared_anchor = None
+ self.prepared_tag = None
+
+ # Scalar analysis and style.
+ self.analysis = None
+ self.style = None
+
+ def dispose(self):
+ # Reset the state attributes (to clear self-references)
+ self.states = []
+ self.state = None
+
+ def emit(self, event):
+ self.events.append(event)
+ while not self.need_more_events():
+ self.event = self.events.pop(0)
+ self.state()
+ self.event = None
+
+ # In some cases, we wait for a few next events before emitting.
+
+ def need_more_events(self):
+ if not self.events:
+ return True
+ event = self.events[0]
+ if isinstance(event, DocumentStartEvent):
+ return self.need_events(1)
+ elif isinstance(event, SequenceStartEvent):
+ return self.need_events(2)
+ elif isinstance(event, MappingStartEvent):
+ return self.need_events(3)
+ else:
+ return False
+
+ def need_events(self, count):
+ level = 0
+ for event in self.events[1:]:
+ if isinstance(event, (DocumentStartEvent, CollectionStartEvent)):
+ level += 1
+ elif isinstance(event, (DocumentEndEvent, CollectionEndEvent)):
+ level -= 1
+ elif isinstance(event, StreamEndEvent):
+ level = -1
+ if level < 0:
+ return False
+ return (len(self.events) < count+1)
+
+ def increase_indent(self, flow=False, indentless=False):
+ self.indents.append(self.indent)
+ if self.indent is None:
+ if flow:
+ self.indent = self.best_indent
+ else:
+ self.indent = 0
+ elif not indentless:
+ self.indent += self.best_indent
+
+ # States.
+
+ # Stream handlers.
+
+ def expect_stream_start(self):
+ if isinstance(self.event, StreamStartEvent):
+ if self.event.encoding and not getattr(self.stream, 'encoding', None):
+ self.encoding = self.event.encoding
+ self.write_stream_start()
+ self.state = self.expect_first_document_start
+ else:
+ raise EmitterError("expected StreamStartEvent, but got %s"
+ % self.event)
+
+ def expect_nothing(self):
+ raise EmitterError("expected nothing, but got %s" % self.event)
+
+ # Document handlers.
+
+ def expect_first_document_start(self):
+ return self.expect_document_start(first=True)
+
+ def expect_document_start(self, first=False):
+ if isinstance(self.event, DocumentStartEvent):
+ if (self.event.version or self.event.tags) and self.open_ended:
+ self.write_indicator(u'...', True)
+ self.write_indent()
+ if self.event.version:
+ version_text = self.prepare_version(self.event.version)
+ self.write_version_directive(version_text)
+ self.tag_prefixes = self.DEFAULT_TAG_PREFIXES.copy()
+ if self.event.tags:
+ handles = self.event.tags.keys()
+ handles.sort()
+ for handle in handles:
+ prefix = self.event.tags[handle]
+ self.tag_prefixes[prefix] = handle
+ handle_text = self.prepare_tag_handle(handle)
+ prefix_text = self.prepare_tag_prefix(prefix)
+ self.write_tag_directive(handle_text, prefix_text)
+ implicit = (first and not self.event.explicit and not self.canonical
+ and not self.event.version and not self.event.tags
+ and not self.check_empty_document())
+ if not implicit:
+ self.write_indent()
+ self.write_indicator(u'---', True)
+ if self.canonical:
+ self.write_indent()
+ self.state = self.expect_document_root
+ elif isinstance(self.event, StreamEndEvent):
+ if self.open_ended:
+ self.write_indicator(u'...', True)
+ self.write_indent()
+ self.write_stream_end()
+ self.state = self.expect_nothing
+ else:
+ raise EmitterError("expected DocumentStartEvent, but got %s"
+ % self.event)
+
+ def expect_document_end(self):
+ if isinstance(self.event, DocumentEndEvent):
+ self.write_indent()
+ if self.event.explicit:
+ self.write_indicator(u'...', True)
+ self.write_indent()
+ self.flush_stream()
+ self.state = self.expect_document_start
+ else:
+ raise EmitterError("expected DocumentEndEvent, but got %s"
+ % self.event)
+
+ def expect_document_root(self):
+ self.states.append(self.expect_document_end)
+ self.expect_node(root=True)
+
+ # Node handlers.
+
+ def expect_node(self, root=False, sequence=False, mapping=False,
+ simple_key=False):
+ self.root_context = root
+ self.sequence_context = sequence
+ self.mapping_context = mapping
+ self.simple_key_context = simple_key
+ if isinstance(self.event, AliasEvent):
+ self.expect_alias()
+ elif isinstance(self.event, (ScalarEvent, CollectionStartEvent)):
+ self.process_anchor(u'&')
+ self.process_tag()
+ if isinstance(self.event, ScalarEvent):
+ self.expect_scalar()
+ elif isinstance(self.event, SequenceStartEvent):
+ if self.flow_level or self.canonical or self.event.flow_style \
+ or self.check_empty_sequence():
+ self.expect_flow_sequence()
+ else:
+ self.expect_block_sequence()
+ elif isinstance(self.event, MappingStartEvent):
+ if self.flow_level or self.canonical or self.event.flow_style \
+ or self.check_empty_mapping():
+ self.expect_flow_mapping()
+ else:
+ self.expect_block_mapping()
+ else:
+ raise EmitterError("expected NodeEvent, but got %s" % self.event)
+
+ def expect_alias(self):
+ if self.event.anchor is None:
+ raise EmitterError("anchor is not specified for alias")
+ self.process_anchor(u'*')
+ self.state = self.states.pop()
+
+ def expect_scalar(self):
+ self.increase_indent(flow=True)
+ self.process_scalar()
+ self.indent = self.indents.pop()
+ self.state = self.states.pop()
+
+ # Flow sequence handlers.
+
+ def expect_flow_sequence(self):
+ self.write_indicator(u'[', True, whitespace=True)
+ self.flow_level += 1
+ self.increase_indent(flow=True)
+ self.state = self.expect_first_flow_sequence_item
+
+ def expect_first_flow_sequence_item(self):
+ if isinstance(self.event, SequenceEndEvent):
+ self.indent = self.indents.pop()
+ self.flow_level -= 1
+ self.write_indicator(u']', False)
+ self.state = self.states.pop()
+ else:
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ self.states.append(self.expect_flow_sequence_item)
+ self.expect_node(sequence=True)
+
+ def expect_flow_sequence_item(self):
+ if isinstance(self.event, SequenceEndEvent):
+ self.indent = self.indents.pop()
+ self.flow_level -= 1
+ if self.canonical:
+ self.write_indicator(u',', False)
+ self.write_indent()
+ self.write_indicator(u']', False)
+ self.state = self.states.pop()
+ else:
+ self.write_indicator(u',', False)
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ self.states.append(self.expect_flow_sequence_item)
+ self.expect_node(sequence=True)
+
+ # Flow mapping handlers.
+
+ def expect_flow_mapping(self):
+ self.write_indicator(u'{', True, whitespace=True)
+ self.flow_level += 1
+ self.increase_indent(flow=True)
+ self.state = self.expect_first_flow_mapping_key
+
+ def expect_first_flow_mapping_key(self):
+ if isinstance(self.event, MappingEndEvent):
+ self.indent = self.indents.pop()
+ self.flow_level -= 1
+ self.write_indicator(u'}', False)
+ self.state = self.states.pop()
+ else:
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ if not self.canonical and self.check_simple_key():
+ self.states.append(self.expect_flow_mapping_simple_value)
+ self.expect_node(mapping=True, simple_key=True)
+ else:
+ self.write_indicator(u'?', True)
+ self.states.append(self.expect_flow_mapping_value)
+ self.expect_node(mapping=True)
+
+ def expect_flow_mapping_key(self):
+ if isinstance(self.event, MappingEndEvent):
+ self.indent = self.indents.pop()
+ self.flow_level -= 1
+ if self.canonical:
+ self.write_indicator(u',', False)
+ self.write_indent()
+ self.write_indicator(u'}', False)
+ self.state = self.states.pop()
+ else:
+ self.write_indicator(u',', False)
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ if not self.canonical and self.check_simple_key():
+ self.states.append(self.expect_flow_mapping_simple_value)
+ self.expect_node(mapping=True, simple_key=True)
+ else:
+ self.write_indicator(u'?', True)
+ self.states.append(self.expect_flow_mapping_value)
+ self.expect_node(mapping=True)
+
+ def expect_flow_mapping_simple_value(self):
+ self.write_indicator(u':', False)
+ self.states.append(self.expect_flow_mapping_key)
+ self.expect_node(mapping=True)
+
+ def expect_flow_mapping_value(self):
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ self.write_indicator(u':', True)
+ self.states.append(self.expect_flow_mapping_key)
+ self.expect_node(mapping=True)
+
+ # Block sequence handlers.
+
+ def expect_block_sequence(self):
+ indentless = (self.mapping_context and not self.indention)
+ self.increase_indent(flow=False, indentless=indentless)
+ self.state = self.expect_first_block_sequence_item
+
+ def expect_first_block_sequence_item(self):
+ return self.expect_block_sequence_item(first=True)
+
+ def expect_block_sequence_item(self, first=False):
+ if not first and isinstance(self.event, SequenceEndEvent):
+ self.indent = self.indents.pop()
+ self.state = self.states.pop()
+ else:
+ self.write_indent()
+ self.write_indicator(u'-', True, indention=True)
+ self.states.append(self.expect_block_sequence_item)
+ self.expect_node(sequence=True)
+
+ # Block mapping handlers.
+
+ def expect_block_mapping(self):
+ self.increase_indent(flow=False)
+ self.state = self.expect_first_block_mapping_key
+
+ def expect_first_block_mapping_key(self):
+ return self.expect_block_mapping_key(first=True)
+
+ def expect_block_mapping_key(self, first=False):
+ if not first and isinstance(self.event, MappingEndEvent):
+ self.indent = self.indents.pop()
+ self.state = self.states.pop()
+ else:
+ self.write_indent()
+ if self.check_simple_key():
+ self.states.append(self.expect_block_mapping_simple_value)
+ self.expect_node(mapping=True, simple_key=True)
+ else:
+ self.write_indicator(u'?', True, indention=True)
+ self.states.append(self.expect_block_mapping_value)
+ self.expect_node(mapping=True)
+
+ def expect_block_mapping_simple_value(self):
+ self.write_indicator(u':', False)
+ self.states.append(self.expect_block_mapping_key)
+ self.expect_node(mapping=True)
+
+ def expect_block_mapping_value(self):
+ self.write_indent()
+ self.write_indicator(u':', True, indention=True)
+ self.states.append(self.expect_block_mapping_key)
+ self.expect_node(mapping=True)
+
+ # Checkers.
+
+ def check_empty_sequence(self):
+ return (isinstance(self.event, SequenceStartEvent) and self.events
+ and isinstance(self.events[0], SequenceEndEvent))
+
+ def check_empty_mapping(self):
+ return (isinstance(self.event, MappingStartEvent) and self.events
+ and isinstance(self.events[0], MappingEndEvent))
+
+ def check_empty_document(self):
+ if not isinstance(self.event, DocumentStartEvent) or not self.events:
+ return False
+ event = self.events[0]
+ return (isinstance(event, ScalarEvent) and event.anchor is None
+ and event.tag is None and event.implicit and event.value == u'')
+
+ def check_simple_key(self):
+ length = 0
+ if isinstance(self.event, NodeEvent) and self.event.anchor is not None:
+ if self.prepared_anchor is None:
+ self.prepared_anchor = self.prepare_anchor(self.event.anchor)
+ length += len(self.prepared_anchor)
+ if isinstance(self.event, (ScalarEvent, CollectionStartEvent)) \
+ and self.event.tag is not None:
+ if self.prepared_tag is None:
+ self.prepared_tag = self.prepare_tag(self.event.tag)
+ length += len(self.prepared_tag)
+ if isinstance(self.event, ScalarEvent):
+ if self.analysis is None:
+ self.analysis = self.analyze_scalar(self.event.value)
+ length += len(self.analysis.scalar)
+ return (length < 128 and (isinstance(self.event, AliasEvent)
+ or (isinstance(self.event, ScalarEvent)
+ and not self.analysis.empty and not self.analysis.multiline)
+ or self.check_empty_sequence() or self.check_empty_mapping()))
+
+ # Anchor, Tag, and Scalar processors.
+
+ def process_anchor(self, indicator):
+ if self.event.anchor is None:
+ self.prepared_anchor = None
+ return
+ if self.prepared_anchor is None:
+ self.prepared_anchor = self.prepare_anchor(self.event.anchor)
+ if self.prepared_anchor:
+ self.write_indicator(indicator+self.prepared_anchor, True)
+ self.prepared_anchor = None
+
+ def process_tag(self):
+ tag = self.event.tag
+ if isinstance(self.event, ScalarEvent):
+ if self.style is None:
+ self.style = self.choose_scalar_style()
+ if ((not self.canonical or tag is None) and
+ ((self.style == '' and self.event.implicit[0])
+ or (self.style != '' and self.event.implicit[1]))):
+ self.prepared_tag = None
+ return
+ if self.event.implicit[0] and tag is None:
+ tag = u'!'
+ self.prepared_tag = None
+ else:
+ if (not self.canonical or tag is None) and self.event.implicit:
+ self.prepared_tag = None
+ return
+ if tag is None:
+ raise EmitterError("tag is not specified")
+ if self.prepared_tag is None:
+ self.prepared_tag = self.prepare_tag(tag)
+ if self.prepared_tag:
+ self.write_indicator(self.prepared_tag, True)
+ self.prepared_tag = None
+
+ def choose_scalar_style(self):
+ if self.analysis is None:
+ self.analysis = self.analyze_scalar(self.event.value)
+ if self.event.style == '"' or self.canonical:
+ return '"'
+ if not self.event.style and self.event.implicit[0]:
+ if (not (self.simple_key_context and
+ (self.analysis.empty or self.analysis.multiline))
+ and (self.flow_level and self.analysis.allow_flow_plain
+ or (not self.flow_level and self.analysis.allow_block_plain))):
+ return ''
+ if self.event.style and self.event.style in '|>':
+ if (not self.flow_level and not self.simple_key_context
+ and self.analysis.allow_block):
+ return self.event.style
+ if not self.event.style or self.event.style == '\'':
+ if (self.analysis.allow_single_quoted and
+ not (self.simple_key_context and self.analysis.multiline)):
+ return '\''
+ return '"'
+
+ def process_scalar(self):
+ if self.analysis is None:
+ self.analysis = self.analyze_scalar(self.event.value)
+ if self.style is None:
+ self.style = self.choose_scalar_style()
+ split = (not self.simple_key_context)
+ #if self.analysis.multiline and split \
+ # and (not self.style or self.style in '\'\"'):
+ # self.write_indent()
+ if self.style == '"':
+ self.write_double_quoted(self.analysis.scalar, split)
+ elif self.style == '\'':
+ self.write_single_quoted(self.analysis.scalar, split)
+ elif self.style == '>':
+ self.write_folded(self.analysis.scalar)
+ elif self.style == '|':
+ self.write_literal(self.analysis.scalar)
+ else:
+ self.write_plain(self.analysis.scalar, split)
+ self.analysis = None
+ self.style = None
+
+ # Analyzers.
+
+ def prepare_version(self, version):
+ major, minor = version
+ if major != 1:
+ raise EmitterError("unsupported YAML version: %d.%d" % (major, minor))
+ return u'%d.%d' % (major, minor)
+
+ def prepare_tag_handle(self, handle):
+ if not handle:
+ raise EmitterError("tag handle must not be empty")
+ if handle[0] != u'!' or handle[-1] != u'!':
+ raise EmitterError("tag handle must start and end with '!': %r"
+ % (handle.encode('utf-8')))
+ for ch in handle[1:-1]:
+ if not (u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \
+ or ch in u'-_'):
+ raise EmitterError("invalid character %r in the tag handle: %r"
+ % (ch.encode('utf-8'), handle.encode('utf-8')))
+ return handle
+
+ def prepare_tag_prefix(self, prefix):
+ if not prefix:
+ raise EmitterError("tag prefix must not be empty")
+ chunks = []
+ start = end = 0
+ if prefix[0] == u'!':
+ end = 1
+ while end < len(prefix):
+ ch = prefix[end]
+ if u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \
+ or ch in u'-;/?!:@&=+$,_.~*\'()[]':
+ end += 1
+ else:
+ if start < end:
+ chunks.append(prefix[start:end])
+ start = end = end+1
+ data = ch.encode('utf-8')
+ for ch in data:
+ chunks.append(u'%%%02X' % ord(ch))
+ if start < end:
+ chunks.append(prefix[start:end])
+ return u''.join(chunks)
+
+ def prepare_tag(self, tag):
+ if not tag:
+ raise EmitterError("tag must not be empty")
+ if tag == u'!':
+ return tag
+ handle = None
+ suffix = tag
+ prefixes = self.tag_prefixes.keys()
+ prefixes.sort()
+ for prefix in prefixes:
+ if tag.startswith(prefix) \
+ and (prefix == u'!' or len(prefix) < len(tag)):
+ handle = self.tag_prefixes[prefix]
+ suffix = tag[len(prefix):]
+ chunks = []
+ start = end = 0
+ while end < len(suffix):
+ ch = suffix[end]
+ if u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \
+ or ch in u'-;/?:@&=+$,_.~*\'()[]' \
+ or (ch == u'!' and handle != u'!'):
+ end += 1
+ else:
+ if start < end:
+ chunks.append(suffix[start:end])
+ start = end = end+1
+ data = ch.encode('utf-8')
+ for ch in data:
+ chunks.append(u'%%%02X' % ord(ch))
+ if start < end:
+ chunks.append(suffix[start:end])
+ suffix_text = u''.join(chunks)
+ if handle:
+ return u'%s%s' % (handle, suffix_text)
+ else:
+ return u'!<%s>' % suffix_text
+
+ def prepare_anchor(self, anchor):
+ if not anchor:
+ raise EmitterError("anchor must not be empty")
+ for ch in anchor:
+ if not (u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \
+ or ch in u'-_'):
+ raise EmitterError("invalid character %r in the anchor: %r"
+ % (ch.encode('utf-8'), anchor.encode('utf-8')))
+ return anchor
+
+ def analyze_scalar(self, scalar):
+
+ # Empty scalar is a special case.
+ if not scalar:
+ return ScalarAnalysis(scalar=scalar, empty=True, multiline=False,
+ allow_flow_plain=False, allow_block_plain=True,
+ allow_single_quoted=True, allow_double_quoted=True,
+ allow_block=False)
+
+ # Indicators and special characters.
+ block_indicators = False
+ flow_indicators = False
+ line_breaks = False
+ special_characters = False
+
+ # Important whitespace combinations.
+ leading_space = False
+ leading_break = False
+ trailing_space = False
+ trailing_break = False
+ break_space = False
+ space_break = False
+
+ # Check document indicators.
+ if scalar.startswith(u'---') or scalar.startswith(u'...'):
+ block_indicators = True
+ flow_indicators = True
+
+ # First character or preceded by a whitespace.
+ preceded_by_whitespace = True
+
+ # Last character or followed by a whitespace.
+ followed_by_whitespace = (len(scalar) == 1 or
+ scalar[1] in u'\0 \t\r\n\x85\u2028\u2029')
+
+ # The previous character is a space.
+ previous_space = False
+
+ # The previous character is a break.
+ previous_break = False
+
+ index = 0
+ while index < len(scalar):
+ ch = scalar[index]
+
+ # Check for indicators.
+ if index == 0:
+ # Leading indicators are special characters.
+ if ch in u'#,[]{}&*!|>\'\"%@`':
+ flow_indicators = True
+ block_indicators = True
+ if ch in u'?:':
+ flow_indicators = True
+ if followed_by_whitespace:
+ block_indicators = True
+ if ch == u'-' and followed_by_whitespace:
+ flow_indicators = True
+ block_indicators = True
+ else:
+ # Some indicators cannot appear within a scalar as well.
+ if ch in u',?[]{}':
+ flow_indicators = True
+ if ch == u':':
+ flow_indicators = True
+ if followed_by_whitespace:
+ block_indicators = True
+ if ch == u'#' and preceded_by_whitespace:
+ flow_indicators = True
+ block_indicators = True
+
+ # Check for line breaks, special, and unicode characters.
+ if ch in u'\n\x85\u2028\u2029':
+ line_breaks = True
+ if not (ch == u'\n' or u'\x20' <= ch <= u'\x7E'):
+ if (ch == u'\x85' or u'\xA0' <= ch <= u'\uD7FF'
+ or u'\uE000' <= ch <= u'\uFFFD'
+ or (u'\U00010000' <= ch < u'\U0010ffff')) and ch != u'\uFEFF':
+ unicode_characters = True
+ if not self.allow_unicode:
+ special_characters = True
+ else:
+ special_characters = True
+
+ # Detect important whitespace combinations.
+ if ch == u' ':
+ if index == 0:
+ leading_space = True
+ if index == len(scalar)-1:
+ trailing_space = True
+ if previous_break:
+ break_space = True
+ previous_space = True
+ previous_break = False
+ elif ch in u'\n\x85\u2028\u2029':
+ if index == 0:
+ leading_break = True
+ if index == len(scalar)-1:
+ trailing_break = True
+ if previous_space:
+ space_break = True
+ previous_space = False
+ previous_break = True
+ else:
+ previous_space = False
+ previous_break = False
+
+ # Prepare for the next character.
+ index += 1
+ preceded_by_whitespace = (ch in u'\0 \t\r\n\x85\u2028\u2029')
+ followed_by_whitespace = (index+1 >= len(scalar) or
+ scalar[index+1] in u'\0 \t\r\n\x85\u2028\u2029')
+
+ # Let's decide what styles are allowed.
+ allow_flow_plain = True
+ allow_block_plain = True
+ allow_single_quoted = True
+ allow_double_quoted = True
+ allow_block = True
+
+ # Leading and trailing whitespaces are bad for plain scalars.
+ if (leading_space or leading_break
+ or trailing_space or trailing_break):
+ allow_flow_plain = allow_block_plain = False
+
+ # We do not permit trailing spaces for block scalars.
+ if trailing_space:
+ allow_block = False
+
+ # Spaces at the beginning of a new line are only acceptable for block
+ # scalars.
+ if break_space:
+ allow_flow_plain = allow_block_plain = allow_single_quoted = False
+
+ # Spaces followed by breaks, as well as special character are only
+ # allowed for double quoted scalars.
+ if space_break or special_characters:
+ allow_flow_plain = allow_block_plain = \
+ allow_single_quoted = allow_block = False
+
+ # Although the plain scalar writer supports breaks, we never emit
+ # multiline plain scalars.
+ if line_breaks:
+ allow_flow_plain = allow_block_plain = False
+
+ # Flow indicators are forbidden for flow plain scalars.
+ if flow_indicators:
+ allow_flow_plain = False
+
+ # Block indicators are forbidden for block plain scalars.
+ if block_indicators:
+ allow_block_plain = False
+
+ return ScalarAnalysis(scalar=scalar,
+ empty=False, multiline=line_breaks,
+ allow_flow_plain=allow_flow_plain,
+ allow_block_plain=allow_block_plain,
+ allow_single_quoted=allow_single_quoted,
+ allow_double_quoted=allow_double_quoted,
+ allow_block=allow_block)
+
+ # Writers.
+
+ def flush_stream(self):
+ if hasattr(self.stream, 'flush'):
+ self.stream.flush()
+
+ def write_stream_start(self):
+ # Write BOM if needed.
+ if self.encoding and self.encoding.startswith('utf-16'):
+ self.stream.write(u'\uFEFF'.encode(self.encoding))
+
+ def write_stream_end(self):
+ self.flush_stream()
+
+ def write_indicator(self, indicator, need_whitespace,
+ whitespace=False, indention=False):
+ if self.whitespace or not need_whitespace:
+ data = indicator
+ else:
+ data = u' '+indicator
+ self.whitespace = whitespace
+ self.indention = self.indention and indention
+ self.column += len(data)
+ self.open_ended = False
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+
+ def write_indent(self):
+ indent = self.indent or 0
+ if not self.indention or self.column > indent \
+ or (self.column == indent and not self.whitespace):
+ self.write_line_break()
+ if self.column < indent:
+ self.whitespace = True
+ data = u' '*(indent-self.column)
+ self.column = indent
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+
+ def write_line_break(self, data=None):
+ if data is None:
+ data = self.best_line_break
+ self.whitespace = True
+ self.indention = True
+ self.line += 1
+ self.column = 0
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+
+ def write_version_directive(self, version_text):
+ data = u'%%YAML %s' % version_text
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ self.write_line_break()
+
+ def write_tag_directive(self, handle_text, prefix_text):
+ data = u'%%TAG %s %s' % (handle_text, prefix_text)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ self.write_line_break()
+
+ # Scalar streams.
+
+ def write_single_quoted(self, text, split=True):
+ self.write_indicator(u'\'', True)
+ spaces = False
+ breaks = False
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if spaces:
+ if ch is None or ch != u' ':
+ if start+1 == end and self.column > self.best_width and split \
+ and start != 0 and end != len(text):
+ self.write_indent()
+ else:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ elif breaks:
+ if ch is None or ch not in u'\n\x85\u2028\u2029':
+ if text[start] == u'\n':
+ self.write_line_break()
+ for br in text[start:end]:
+ if br == u'\n':
+ self.write_line_break()
+ else:
+ self.write_line_break(br)
+ self.write_indent()
+ start = end
+ else:
+ if ch is None or ch in u' \n\x85\u2028\u2029' or ch == u'\'':
+ if start < end:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ if ch == u'\'':
+ data = u'\'\''
+ self.column += 2
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end + 1
+ if ch is not None:
+ spaces = (ch == u' ')
+ breaks = (ch in u'\n\x85\u2028\u2029')
+ end += 1
+ self.write_indicator(u'\'', False)
+
+ ESCAPE_REPLACEMENTS = {
+ u'\0': u'0',
+ u'\x07': u'a',
+ u'\x08': u'b',
+ u'\x09': u't',
+ u'\x0A': u'n',
+ u'\x0B': u'v',
+ u'\x0C': u'f',
+ u'\x0D': u'r',
+ u'\x1B': u'e',
+ u'\"': u'\"',
+ u'\\': u'\\',
+ u'\x85': u'N',
+ u'\xA0': u'_',
+ u'\u2028': u'L',
+ u'\u2029': u'P',
+ }
+
+ def write_double_quoted(self, text, split=True):
+ self.write_indicator(u'"', True)
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if ch is None or ch in u'"\\\x85\u2028\u2029\uFEFF' \
+ or not (u'\x20' <= ch <= u'\x7E'
+ or (self.allow_unicode
+ and (u'\xA0' <= ch <= u'\uD7FF'
+ or u'\uE000' <= ch <= u'\uFFFD'))):
+ if start < end:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ if ch is not None:
+ if ch in self.ESCAPE_REPLACEMENTS:
+ data = u'\\'+self.ESCAPE_REPLACEMENTS[ch]
+ elif ch <= u'\xFF':
+ data = u'\\x%02X' % ord(ch)
+ elif ch <= u'\uFFFF':
+ data = u'\\u%04X' % ord(ch)
+ else:
+ data = u'\\U%08X' % ord(ch)
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end+1
+ if 0 < end < len(text)-1 and (ch == u' ' or start >= end) \
+ and self.column+(end-start) > self.best_width and split:
+ data = text[start:end]+u'\\'
+ if start < end:
+ start = end
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ self.write_indent()
+ self.whitespace = False
+ self.indention = False
+ if text[start] == u' ':
+ data = u'\\'
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ end += 1
+ self.write_indicator(u'"', False)
+
+ def determine_block_hints(self, text):
+ hints = u''
+ if text:
+ if text[0] in u' \n\x85\u2028\u2029':
+ hints += unicode(self.best_indent)
+ if text[-1] not in u'\n\x85\u2028\u2029':
+ hints += u'-'
+ elif len(text) == 1 or text[-2] in u'\n\x85\u2028\u2029':
+ hints += u'+'
+ return hints
+
+ def write_folded(self, text):
+ hints = self.determine_block_hints(text)
+ self.write_indicator(u'>'+hints, True)
+ if hints[-1:] == u'+':
+ self.open_ended = True
+ self.write_line_break()
+ leading_space = True
+ spaces = False
+ breaks = True
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if breaks:
+ if ch is None or ch not in u'\n\x85\u2028\u2029':
+ if not leading_space and ch is not None and ch != u' ' \
+ and text[start] == u'\n':
+ self.write_line_break()
+ leading_space = (ch == u' ')
+ for br in text[start:end]:
+ if br == u'\n':
+ self.write_line_break()
+ else:
+ self.write_line_break(br)
+ if ch is not None:
+ self.write_indent()
+ start = end
+ elif spaces:
+ if ch != u' ':
+ if start+1 == end and self.column > self.best_width:
+ self.write_indent()
+ else:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ else:
+ if ch is None or ch in u' \n\x85\u2028\u2029':
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ if ch is None:
+ self.write_line_break()
+ start = end
+ if ch is not None:
+ breaks = (ch in u'\n\x85\u2028\u2029')
+ spaces = (ch == u' ')
+ end += 1
+
+ def write_literal(self, text):
+ hints = self.determine_block_hints(text)
+ self.write_indicator(u'|'+hints, True)
+ if hints[-1:] == u'+':
+ self.open_ended = True
+ self.write_line_break()
+ breaks = True
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if breaks:
+ if ch is None or ch not in u'\n\x85\u2028\u2029':
+ for br in text[start:end]:
+ if br == u'\n':
+ self.write_line_break()
+ else:
+ self.write_line_break(br)
+ if ch is not None:
+ self.write_indent()
+ start = end
+ else:
+ if ch is None or ch in u'\n\x85\u2028\u2029':
+ data = text[start:end]
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ if ch is None:
+ self.write_line_break()
+ start = end
+ if ch is not None:
+ breaks = (ch in u'\n\x85\u2028\u2029')
+ end += 1
+
+ def write_plain(self, text, split=True):
+ if self.root_context:
+ self.open_ended = True
+ if not text:
+ return
+ if not self.whitespace:
+ data = u' '
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ self.whitespace = False
+ self.indention = False
+ spaces = False
+ breaks = False
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if spaces:
+ if ch != u' ':
+ if start+1 == end and self.column > self.best_width and split:
+ self.write_indent()
+ self.whitespace = False
+ self.indention = False
+ else:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ elif breaks:
+ if ch not in u'\n\x85\u2028\u2029':
+ if text[start] == u'\n':
+ self.write_line_break()
+ for br in text[start:end]:
+ if br == u'\n':
+ self.write_line_break()
+ else:
+ self.write_line_break(br)
+ self.write_indent()
+ self.whitespace = False
+ self.indention = False
+ start = end
+ else:
+ if ch is None or ch in u' \n\x85\u2028\u2029':
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ if ch is not None:
+ spaces = (ch == u' ')
+ breaks = (ch in u'\n\x85\u2028\u2029')
+ end += 1
diff --git a/yaml/lib/yaml/error.py b/yaml/lib/yaml/error.py
new file mode 100644
index 0000000000..577686db5f
--- /dev/null
+++ b/yaml/lib/yaml/error.py
@@ -0,0 +1,75 @@
+
+__all__ = ['Mark', 'YAMLError', 'MarkedYAMLError']
+
+class Mark(object):
+
+ def __init__(self, name, index, line, column, buffer, pointer):
+ self.name = name
+ self.index = index
+ self.line = line
+ self.column = column
+ self.buffer = buffer
+ self.pointer = pointer
+
+ def get_snippet(self, indent=4, max_length=75):
+ if self.buffer is None:
+ return None
+ head = ''
+ start = self.pointer
+ while start > 0 and self.buffer[start-1] not in u'\0\r\n\x85\u2028\u2029':
+ start -= 1
+ if self.pointer-start > max_length/2-1:
+ head = ' ... '
+ start += 5
+ break
+ tail = ''
+ end = self.pointer
+ while end < len(self.buffer) and self.buffer[end] not in u'\0\r\n\x85\u2028\u2029':
+ end += 1
+ if end-self.pointer > max_length/2-1:
+ tail = ' ... '
+ end -= 5
+ break
+ snippet = self.buffer[start:end].encode('utf-8')
+ return ' '*indent + head + snippet + tail + '\n' \
+ + ' '*(indent+self.pointer-start+len(head)) + '^'
+
+ def __str__(self):
+ snippet = self.get_snippet()
+ where = " in \"%s\", line %d, column %d" \
+ % (self.name, self.line+1, self.column+1)
+ if snippet is not None:
+ where += ":\n"+snippet
+ return where
+
+class YAMLError(Exception):
+ pass
+
+class MarkedYAMLError(YAMLError):
+
+ def __init__(self, context=None, context_mark=None,
+ problem=None, problem_mark=None, note=None):
+ self.context = context
+ self.context_mark = context_mark
+ self.problem = problem
+ self.problem_mark = problem_mark
+ self.note = note
+
+ def __str__(self):
+ lines = []
+ if self.context is not None:
+ lines.append(self.context)
+ if self.context_mark is not None \
+ and (self.problem is None or self.problem_mark is None
+ or self.context_mark.name != self.problem_mark.name
+ or self.context_mark.line != self.problem_mark.line
+ or self.context_mark.column != self.problem_mark.column):
+ lines.append(str(self.context_mark))
+ if self.problem is not None:
+ lines.append(self.problem)
+ if self.problem_mark is not None:
+ lines.append(str(self.problem_mark))
+ if self.note is not None:
+ lines.append(self.note)
+ return '\n'.join(lines)
+
diff --git a/yaml/lib/yaml/events.py b/yaml/lib/yaml/events.py
new file mode 100644
index 0000000000..f79ad389cb
--- /dev/null
+++ b/yaml/lib/yaml/events.py
@@ -0,0 +1,86 @@
+
+# Abstract classes.
+
+class Event(object):
+ def __init__(self, start_mark=None, end_mark=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ def __repr__(self):
+ attributes = [key for key in ['anchor', 'tag', 'implicit', 'value']
+ if hasattr(self, key)]
+ arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
+ for key in attributes])
+ return '%s(%s)' % (self.__class__.__name__, arguments)
+
+class NodeEvent(Event):
+ def __init__(self, anchor, start_mark=None, end_mark=None):
+ self.anchor = anchor
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class CollectionStartEvent(NodeEvent):
+ def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None,
+ flow_style=None):
+ self.anchor = anchor
+ self.tag = tag
+ self.implicit = implicit
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.flow_style = flow_style
+
+class CollectionEndEvent(Event):
+ pass
+
+# Implementations.
+
+class StreamStartEvent(Event):
+ def __init__(self, start_mark=None, end_mark=None, encoding=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.encoding = encoding
+
+class StreamEndEvent(Event):
+ pass
+
+class DocumentStartEvent(Event):
+ def __init__(self, start_mark=None, end_mark=None,
+ explicit=None, version=None, tags=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.explicit = explicit
+ self.version = version
+ self.tags = tags
+
+class DocumentEndEvent(Event):
+ def __init__(self, start_mark=None, end_mark=None,
+ explicit=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.explicit = explicit
+
+class AliasEvent(NodeEvent):
+ pass
+
+class ScalarEvent(NodeEvent):
+ def __init__(self, anchor, tag, implicit, value,
+ start_mark=None, end_mark=None, style=None):
+ self.anchor = anchor
+ self.tag = tag
+ self.implicit = implicit
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.style = style
+
+class SequenceStartEvent(CollectionStartEvent):
+ pass
+
+class SequenceEndEvent(CollectionEndEvent):
+ pass
+
+class MappingStartEvent(CollectionStartEvent):
+ pass
+
+class MappingEndEvent(CollectionEndEvent):
+ pass
+
diff --git a/yaml/lib/yaml/loader.py b/yaml/lib/yaml/loader.py
new file mode 100644
index 0000000000..4d773c3cc1
--- /dev/null
+++ b/yaml/lib/yaml/loader.py
@@ -0,0 +1,63 @@
+
+__all__ = ['BaseLoader', 'FullLoader', 'SafeLoader', 'Loader', 'UnsafeLoader']
+
+from reader import *
+from scanner import *
+from parser import *
+from composer import *
+from constructor import *
+from resolver import *
+
+class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ BaseConstructor.__init__(self)
+ BaseResolver.__init__(self)
+
+class FullLoader(Reader, Scanner, Parser, Composer, FullConstructor, Resolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ FullConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ SafeConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ Constructor.__init__(self)
+ Resolver.__init__(self)
+
+# UnsafeLoader is the same as Loader (which is and was always unsafe on
+# untrusted input). Use of either Loader or UnsafeLoader should be rare, since
+# FullLoad should be able to load almost all YAML safely. Loader is left intact
+# to ensure backwards compatibility.
+class UnsafeLoader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ Constructor.__init__(self)
+ Resolver.__init__(self)
diff --git a/yaml/lib/yaml/nodes.py b/yaml/lib/yaml/nodes.py
new file mode 100644
index 0000000000..c4f070c41e
--- /dev/null
+++ b/yaml/lib/yaml/nodes.py
@@ -0,0 +1,49 @@
+
+class Node(object):
+ def __init__(self, tag, value, start_mark, end_mark):
+ self.tag = tag
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ def __repr__(self):
+ value = self.value
+ #if isinstance(value, list):
+ # if len(value) == 0:
+ # value = '<empty>'
+ # elif len(value) == 1:
+ # value = '<1 item>'
+ # else:
+ # value = '<%d items>' % len(value)
+ #else:
+ # if len(value) > 75:
+ # value = repr(value[:70]+u' ... ')
+ # else:
+ # value = repr(value)
+ value = repr(value)
+ return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)
+
+class ScalarNode(Node):
+ id = 'scalar'
+ def __init__(self, tag, value,
+ start_mark=None, end_mark=None, style=None):
+ self.tag = tag
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.style = style
+
+class CollectionNode(Node):
+ def __init__(self, tag, value,
+ start_mark=None, end_mark=None, flow_style=None):
+ self.tag = tag
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.flow_style = flow_style
+
+class SequenceNode(CollectionNode):
+ id = 'sequence'
+
+class MappingNode(CollectionNode):
+ id = 'mapping'
+
diff --git a/yaml/lib/yaml/parser.py b/yaml/lib/yaml/parser.py
new file mode 100644
index 0000000000..f9e3057f33
--- /dev/null
+++ b/yaml/lib/yaml/parser.py
@@ -0,0 +1,589 @@
+
+# The following YAML grammar is LL(1) and is parsed by a recursive descent
+# parser.
+#
+# stream ::= STREAM-START implicit_document? explicit_document* STREAM-END
+# implicit_document ::= block_node DOCUMENT-END*
+# explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
+# block_node_or_indentless_sequence ::=
+# ALIAS
+# | properties (block_content | indentless_block_sequence)?
+# | block_content
+# | indentless_block_sequence
+# block_node ::= ALIAS
+# | properties block_content?
+# | block_content
+# flow_node ::= ALIAS
+# | properties flow_content?
+# | flow_content
+# properties ::= TAG ANCHOR? | ANCHOR TAG?
+# block_content ::= block_collection | flow_collection | SCALAR
+# flow_content ::= flow_collection | SCALAR
+# block_collection ::= block_sequence | block_mapping
+# flow_collection ::= flow_sequence | flow_mapping
+# block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END
+# indentless_sequence ::= (BLOCK-ENTRY block_node?)+
+# block_mapping ::= BLOCK-MAPPING_START
+# ((KEY block_node_or_indentless_sequence?)?
+# (VALUE block_node_or_indentless_sequence?)?)*
+# BLOCK-END
+# flow_sequence ::= FLOW-SEQUENCE-START
+# (flow_sequence_entry FLOW-ENTRY)*
+# flow_sequence_entry?
+# FLOW-SEQUENCE-END
+# flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+# flow_mapping ::= FLOW-MAPPING-START
+# (flow_mapping_entry FLOW-ENTRY)*
+# flow_mapping_entry?
+# FLOW-MAPPING-END
+# flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+#
+# FIRST sets:
+#
+# stream: { STREAM-START }
+# explicit_document: { DIRECTIVE DOCUMENT-START }
+# implicit_document: FIRST(block_node)
+# block_node: { ALIAS TAG ANCHOR SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# flow_node: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# block_content: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR }
+# flow_content: { FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR }
+# block_collection: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START }
+# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# block_sequence: { BLOCK-SEQUENCE-START }
+# block_mapping: { BLOCK-MAPPING-START }
+# block_node_or_indentless_sequence: { ALIAS ANCHOR TAG SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START BLOCK-ENTRY }
+# indentless_sequence: { ENTRY }
+# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# flow_sequence: { FLOW-SEQUENCE-START }
+# flow_mapping: { FLOW-MAPPING-START }
+# flow_sequence_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY }
+# flow_mapping_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY }
+
+__all__ = ['Parser', 'ParserError']
+
+from error import MarkedYAMLError
+from tokens import *
+from events import *
+from scanner import *
+
+class ParserError(MarkedYAMLError):
+ pass
+
+class Parser(object):
+ # Since writing a recursive-descendant parser is a straightforward task, we
+ # do not give many comments here.
+
+ DEFAULT_TAGS = {
+ u'!': u'!',
+ u'!!': u'tag:yaml.org,2002:',
+ }
+
+ def __init__(self):
+ self.current_event = None
+ self.yaml_version = None
+ self.tag_handles = {}
+ self.states = []
+ self.marks = []
+ self.state = self.parse_stream_start
+
+ def dispose(self):
+ # Reset the state attributes (to clear self-references)
+ self.states = []
+ self.state = None
+
+ def check_event(self, *choices):
+ # Check the type of the next event.
+ if self.current_event is None:
+ if self.state:
+ self.current_event = self.state()
+ if self.current_event is not None:
+ if not choices:
+ return True
+ for choice in choices:
+ if isinstance(self.current_event, choice):
+ return True
+ return False
+
+ def peek_event(self):
+ # Get the next event.
+ if self.current_event is None:
+ if self.state:
+ self.current_event = self.state()
+ return self.current_event
+
+ def get_event(self):
+ # Get the next event and proceed further.
+ if self.current_event is None:
+ if self.state:
+ self.current_event = self.state()
+ value = self.current_event
+ self.current_event = None
+ return value
+
+ # stream ::= STREAM-START implicit_document? explicit_document* STREAM-END
+ # implicit_document ::= block_node DOCUMENT-END*
+ # explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
+
+ def parse_stream_start(self):
+
+ # Parse the stream start.
+ token = self.get_token()
+ event = StreamStartEvent(token.start_mark, token.end_mark,
+ encoding=token.encoding)
+
+ # Prepare the next state.
+ self.state = self.parse_implicit_document_start
+
+ return event
+
+ def parse_implicit_document_start(self):
+
+ # Parse an implicit document.
+ if not self.check_token(DirectiveToken, DocumentStartToken,
+ StreamEndToken):
+ self.tag_handles = self.DEFAULT_TAGS
+ token = self.peek_token()
+ start_mark = end_mark = token.start_mark
+ event = DocumentStartEvent(start_mark, end_mark,
+ explicit=False)
+
+ # Prepare the next state.
+ self.states.append(self.parse_document_end)
+ self.state = self.parse_block_node
+
+ return event
+
+ else:
+ return self.parse_document_start()
+
+ def parse_document_start(self):
+
+ # Parse any extra document end indicators.
+ while self.check_token(DocumentEndToken):
+ self.get_token()
+
+ # Parse an explicit document.
+ if not self.check_token(StreamEndToken):
+ token = self.peek_token()
+ start_mark = token.start_mark
+ version, tags = self.process_directives()
+ if not self.check_token(DocumentStartToken):
+ raise ParserError(None, None,
+ "expected '<document start>', but found %r"
+ % self.peek_token().id,
+ self.peek_token().start_mark)
+ token = self.get_token()
+ end_mark = token.end_mark
+ event = DocumentStartEvent(start_mark, end_mark,
+ explicit=True, version=version, tags=tags)
+ self.states.append(self.parse_document_end)
+ self.state = self.parse_document_content
+ else:
+ # Parse the end of the stream.
+ token = self.get_token()
+ event = StreamEndEvent(token.start_mark, token.end_mark)
+ assert not self.states
+ assert not self.marks
+ self.state = None
+ return event
+
+ def parse_document_end(self):
+
+ # Parse the document end.
+ token = self.peek_token()
+ start_mark = end_mark = token.start_mark
+ explicit = False
+ if self.check_token(DocumentEndToken):
+ token = self.get_token()
+ end_mark = token.end_mark
+ explicit = True
+ event = DocumentEndEvent(start_mark, end_mark,
+ explicit=explicit)
+
+ # Prepare the next state.
+ self.state = self.parse_document_start
+
+ return event
+
+ def parse_document_content(self):
+ if self.check_token(DirectiveToken,
+ DocumentStartToken, DocumentEndToken, StreamEndToken):
+ event = self.process_empty_scalar(self.peek_token().start_mark)
+ self.state = self.states.pop()
+ return event
+ else:
+ return self.parse_block_node()
+
+ def process_directives(self):
+ self.yaml_version = None
+ self.tag_handles = {}
+ while self.check_token(DirectiveToken):
+ token = self.get_token()
+ if token.name == u'YAML':
+ if self.yaml_version is not None:
+ raise ParserError(None, None,
+ "found duplicate YAML directive", token.start_mark)
+ major, minor = token.value
+ if major != 1:
+ raise ParserError(None, None,
+ "found incompatible YAML document (version 1.* is required)",
+ token.start_mark)
+ self.yaml_version = token.value
+ elif token.name == u'TAG':
+ handle, prefix = token.value
+ if handle in self.tag_handles:
+ raise ParserError(None, None,
+ "duplicate tag handle %r" % handle.encode('utf-8'),
+ token.start_mark)
+ self.tag_handles[handle] = prefix
+ if self.tag_handles:
+ value = self.yaml_version, self.tag_handles.copy()
+ else:
+ value = self.yaml_version, None
+ for key in self.DEFAULT_TAGS:
+ if key not in self.tag_handles:
+ self.tag_handles[key] = self.DEFAULT_TAGS[key]
+ return value
+
+ # block_node_or_indentless_sequence ::= ALIAS
+ # | properties (block_content | indentless_block_sequence)?
+ # | block_content
+ # | indentless_block_sequence
+ # block_node ::= ALIAS
+ # | properties block_content?
+ # | block_content
+ # flow_node ::= ALIAS
+ # | properties flow_content?
+ # | flow_content
+ # properties ::= TAG ANCHOR? | ANCHOR TAG?
+ # block_content ::= block_collection | flow_collection | SCALAR
+ # flow_content ::= flow_collection | SCALAR
+ # block_collection ::= block_sequence | block_mapping
+ # flow_collection ::= flow_sequence | flow_mapping
+
+ def parse_block_node(self):
+ return self.parse_node(block=True)
+
+ def parse_flow_node(self):
+ return self.parse_node()
+
+ def parse_block_node_or_indentless_sequence(self):
+ return self.parse_node(block=True, indentless_sequence=True)
+
+ def parse_node(self, block=False, indentless_sequence=False):
+ if self.check_token(AliasToken):
+ token = self.get_token()
+ event = AliasEvent(token.value, token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ else:
+ anchor = None
+ tag = None
+ start_mark = end_mark = tag_mark = None
+ if self.check_token(AnchorToken):
+ token = self.get_token()
+ start_mark = token.start_mark
+ end_mark = token.end_mark
+ anchor = token.value
+ if self.check_token(TagToken):
+ token = self.get_token()
+ tag_mark = token.start_mark
+ end_mark = token.end_mark
+ tag = token.value
+ elif self.check_token(TagToken):
+ token = self.get_token()
+ start_mark = tag_mark = token.start_mark
+ end_mark = token.end_mark
+ tag = token.value
+ if self.check_token(AnchorToken):
+ token = self.get_token()
+ end_mark = token.end_mark
+ anchor = token.value
+ if tag is not None:
+ handle, suffix = tag
+ if handle is not None:
+ if handle not in self.tag_handles:
+ raise ParserError("while parsing a node", start_mark,
+ "found undefined tag handle %r" % handle.encode('utf-8'),
+ tag_mark)
+ tag = self.tag_handles[handle]+suffix
+ else:
+ tag = suffix
+ #if tag == u'!':
+ # raise ParserError("while parsing a node", start_mark,
+ # "found non-specific tag '!'", tag_mark,
+ # "Please check 'http://pyyaml.org/wiki/YAMLNonSpecificTag' and share your opinion.")
+ if start_mark is None:
+ start_mark = end_mark = self.peek_token().start_mark
+ event = None
+ implicit = (tag is None or tag == u'!')
+ if indentless_sequence and self.check_token(BlockEntryToken):
+ end_mark = self.peek_token().end_mark
+ event = SequenceStartEvent(anchor, tag, implicit,
+ start_mark, end_mark)
+ self.state = self.parse_indentless_sequence_entry
+ else:
+ if self.check_token(ScalarToken):
+ token = self.get_token()
+ end_mark = token.end_mark
+ if (token.plain and tag is None) or tag == u'!':
+ implicit = (True, False)
+ elif tag is None:
+ implicit = (False, True)
+ else:
+ implicit = (False, False)
+ event = ScalarEvent(anchor, tag, implicit, token.value,
+ start_mark, end_mark, style=token.style)
+ self.state = self.states.pop()
+ elif self.check_token(FlowSequenceStartToken):
+ end_mark = self.peek_token().end_mark
+ event = SequenceStartEvent(anchor, tag, implicit,
+ start_mark, end_mark, flow_style=True)
+ self.state = self.parse_flow_sequence_first_entry
+ elif self.check_token(FlowMappingStartToken):
+ end_mark = self.peek_token().end_mark
+ event = MappingStartEvent(anchor, tag, implicit,
+ start_mark, end_mark, flow_style=True)
+ self.state = self.parse_flow_mapping_first_key
+ elif block and self.check_token(BlockSequenceStartToken):
+ end_mark = self.peek_token().start_mark
+ event = SequenceStartEvent(anchor, tag, implicit,
+ start_mark, end_mark, flow_style=False)
+ self.state = self.parse_block_sequence_first_entry
+ elif block and self.check_token(BlockMappingStartToken):
+ end_mark = self.peek_token().start_mark
+ event = MappingStartEvent(anchor, tag, implicit,
+ start_mark, end_mark, flow_style=False)
+ self.state = self.parse_block_mapping_first_key
+ elif anchor is not None or tag is not None:
+ # Empty scalars are allowed even if a tag or an anchor is
+ # specified.
+ event = ScalarEvent(anchor, tag, (implicit, False), u'',
+ start_mark, end_mark)
+ self.state = self.states.pop()
+ else:
+ if block:
+ node = 'block'
+ else:
+ node = 'flow'
+ token = self.peek_token()
+ raise ParserError("while parsing a %s node" % node, start_mark,
+ "expected the node content, but found %r" % token.id,
+ token.start_mark)
+ return event
+
+ # block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END
+
+ def parse_block_sequence_first_entry(self):
+ token = self.get_token()
+ self.marks.append(token.start_mark)
+ return self.parse_block_sequence_entry()
+
+ def parse_block_sequence_entry(self):
+ if self.check_token(BlockEntryToken):
+ token = self.get_token()
+ if not self.check_token(BlockEntryToken, BlockEndToken):
+ self.states.append(self.parse_block_sequence_entry)
+ return self.parse_block_node()
+ else:
+ self.state = self.parse_block_sequence_entry
+ return self.process_empty_scalar(token.end_mark)
+ if not self.check_token(BlockEndToken):
+ token = self.peek_token()
+ raise ParserError("while parsing a block collection", self.marks[-1],
+ "expected <block end>, but found %r" % token.id, token.start_mark)
+ token = self.get_token()
+ event = SequenceEndEvent(token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ self.marks.pop()
+ return event
+
+ # indentless_sequence ::= (BLOCK-ENTRY block_node?)+
+
+ def parse_indentless_sequence_entry(self):
+ if self.check_token(BlockEntryToken):
+ token = self.get_token()
+ if not self.check_token(BlockEntryToken,
+ KeyToken, ValueToken, BlockEndToken):
+ self.states.append(self.parse_indentless_sequence_entry)
+ return self.parse_block_node()
+ else:
+ self.state = self.parse_indentless_sequence_entry
+ return self.process_empty_scalar(token.end_mark)
+ token = self.peek_token()
+ event = SequenceEndEvent(token.start_mark, token.start_mark)
+ self.state = self.states.pop()
+ return event
+
+ # block_mapping ::= BLOCK-MAPPING_START
+ # ((KEY block_node_or_indentless_sequence?)?
+ # (VALUE block_node_or_indentless_sequence?)?)*
+ # BLOCK-END
+
+ def parse_block_mapping_first_key(self):
+ token = self.get_token()
+ self.marks.append(token.start_mark)
+ return self.parse_block_mapping_key()
+
+ def parse_block_mapping_key(self):
+ if self.check_token(KeyToken):
+ token = self.get_token()
+ if not self.check_token(KeyToken, ValueToken, BlockEndToken):
+ self.states.append(self.parse_block_mapping_value)
+ return self.parse_block_node_or_indentless_sequence()
+ else:
+ self.state = self.parse_block_mapping_value
+ return self.process_empty_scalar(token.end_mark)
+ if not self.check_token(BlockEndToken):
+ token = self.peek_token()
+ raise ParserError("while parsing a block mapping", self.marks[-1],
+ "expected <block end>, but found %r" % token.id, token.start_mark)
+ token = self.get_token()
+ event = MappingEndEvent(token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ self.marks.pop()
+ return event
+
+ def parse_block_mapping_value(self):
+ if self.check_token(ValueToken):
+ token = self.get_token()
+ if not self.check_token(KeyToken, ValueToken, BlockEndToken):
+ self.states.append(self.parse_block_mapping_key)
+ return self.parse_block_node_or_indentless_sequence()
+ else:
+ self.state = self.parse_block_mapping_key
+ return self.process_empty_scalar(token.end_mark)
+ else:
+ self.state = self.parse_block_mapping_key
+ token = self.peek_token()
+ return self.process_empty_scalar(token.start_mark)
+
+ # flow_sequence ::= FLOW-SEQUENCE-START
+ # (flow_sequence_entry FLOW-ENTRY)*
+ # flow_sequence_entry?
+ # FLOW-SEQUENCE-END
+ # flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+ #
+ # Note that while production rules for both flow_sequence_entry and
+ # flow_mapping_entry are equal, their interpretations are different.
+ # For `flow_sequence_entry`, the part `KEY flow_node? (VALUE flow_node?)?`
+ # generate an inline mapping (set syntax).
+
+ def parse_flow_sequence_first_entry(self):
+ token = self.get_token()
+ self.marks.append(token.start_mark)
+ return self.parse_flow_sequence_entry(first=True)
+
+ def parse_flow_sequence_entry(self, first=False):
+ if not self.check_token(FlowSequenceEndToken):
+ if not first:
+ if self.check_token(FlowEntryToken):
+ self.get_token()
+ else:
+ token = self.peek_token()
+ raise ParserError("while parsing a flow sequence", self.marks[-1],
+ "expected ',' or ']', but got %r" % token.id, token.start_mark)
+
+ if self.check_token(KeyToken):
+ token = self.peek_token()
+ event = MappingStartEvent(None, None, True,
+ token.start_mark, token.end_mark,
+ flow_style=True)
+ self.state = self.parse_flow_sequence_entry_mapping_key
+ return event
+ elif not self.check_token(FlowSequenceEndToken):
+ self.states.append(self.parse_flow_sequence_entry)
+ return self.parse_flow_node()
+ token = self.get_token()
+ event = SequenceEndEvent(token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ self.marks.pop()
+ return event
+
+ def parse_flow_sequence_entry_mapping_key(self):
+ token = self.get_token()
+ if not self.check_token(ValueToken,
+ FlowEntryToken, FlowSequenceEndToken):
+ self.states.append(self.parse_flow_sequence_entry_mapping_value)
+ return self.parse_flow_node()
+ else:
+ self.state = self.parse_flow_sequence_entry_mapping_value
+ return self.process_empty_scalar(token.end_mark)
+
+ def parse_flow_sequence_entry_mapping_value(self):
+ if self.check_token(ValueToken):
+ token = self.get_token()
+ if not self.check_token(FlowEntryToken, FlowSequenceEndToken):
+ self.states.append(self.parse_flow_sequence_entry_mapping_end)
+ return self.parse_flow_node()
+ else:
+ self.state = self.parse_flow_sequence_entry_mapping_end
+ return self.process_empty_scalar(token.end_mark)
+ else:
+ self.state = self.parse_flow_sequence_entry_mapping_end
+ token = self.peek_token()
+ return self.process_empty_scalar(token.start_mark)
+
+ def parse_flow_sequence_entry_mapping_end(self):
+ self.state = self.parse_flow_sequence_entry
+ token = self.peek_token()
+ return MappingEndEvent(token.start_mark, token.start_mark)
+
+ # flow_mapping ::= FLOW-MAPPING-START
+ # (flow_mapping_entry FLOW-ENTRY)*
+ # flow_mapping_entry?
+ # FLOW-MAPPING-END
+ # flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+
+ def parse_flow_mapping_first_key(self):
+ token = self.get_token()
+ self.marks.append(token.start_mark)
+ return self.parse_flow_mapping_key(first=True)
+
+ def parse_flow_mapping_key(self, first=False):
+ if not self.check_token(FlowMappingEndToken):
+ if not first:
+ if self.check_token(FlowEntryToken):
+ self.get_token()
+ else:
+ token = self.peek_token()
+ raise ParserError("while parsing a flow mapping", self.marks[-1],
+ "expected ',' or '}', but got %r" % token.id, token.start_mark)
+ if self.check_token(KeyToken):
+ token = self.get_token()
+ if not self.check_token(ValueToken,
+ FlowEntryToken, FlowMappingEndToken):
+ self.states.append(self.parse_flow_mapping_value)
+ return self.parse_flow_node()
+ else:
+ self.state = self.parse_flow_mapping_value
+ return self.process_empty_scalar(token.end_mark)
+ elif not self.check_token(FlowMappingEndToken):
+ self.states.append(self.parse_flow_mapping_empty_value)
+ return self.parse_flow_node()
+ token = self.get_token()
+ event = MappingEndEvent(token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ self.marks.pop()
+ return event
+
+ def parse_flow_mapping_value(self):
+ if self.check_token(ValueToken):
+ token = self.get_token()
+ if not self.check_token(FlowEntryToken, FlowMappingEndToken):
+ self.states.append(self.parse_flow_mapping_key)
+ return self.parse_flow_node()
+ else:
+ self.state = self.parse_flow_mapping_key
+ return self.process_empty_scalar(token.end_mark)
+ else:
+ self.state = self.parse_flow_mapping_key
+ token = self.peek_token()
+ return self.process_empty_scalar(token.start_mark)
+
+ def parse_flow_mapping_empty_value(self):
+ self.state = self.parse_flow_mapping_key
+ return self.process_empty_scalar(self.peek_token().start_mark)
+
+ def process_empty_scalar(self, mark):
+ return ScalarEvent(None, None, (True, False), u'', mark, mark)
+
diff --git a/yaml/lib/yaml/reader.py b/yaml/lib/yaml/reader.py
new file mode 100644
index 0000000000..4b377d61e2
--- /dev/null
+++ b/yaml/lib/yaml/reader.py
@@ -0,0 +1,188 @@
+# This module contains abstractions for the input stream. You don't have to
+# looks further, there are no pretty code.
+#
+# We define two classes here.
+#
+# Mark(source, line, column)
+# It's just a record and its only use is producing nice error messages.
+# Parser does not use it for any other purposes.
+#
+# Reader(source, data)
+# Reader determines the encoding of `data` and converts it to unicode.
+# Reader provides the following methods and attributes:
+# reader.peek(length=1) - return the next `length` characters
+# reader.forward(length=1) - move the current position to `length` characters.
+# reader.index - the number of the current character.
+# reader.line, stream.column - the line and the column of the current character.
+
+__all__ = ['Reader', 'ReaderError']
+
+from error import YAMLError, Mark
+
+import codecs, re, sys
+
+has_ucs4 = sys.maxunicode > 0xffff
+
+class ReaderError(YAMLError):
+
+ def __init__(self, name, position, character, encoding, reason):
+ self.name = name
+ self.character = character
+ self.position = position
+ self.encoding = encoding
+ self.reason = reason
+
+ def __str__(self):
+ if isinstance(self.character, str):
+ return "'%s' codec can't decode byte #x%02x: %s\n" \
+ " in \"%s\", position %d" \
+ % (self.encoding, ord(self.character), self.reason,
+ self.name, self.position)
+ else:
+ return "unacceptable character #x%04x: %s\n" \
+ " in \"%s\", position %d" \
+ % (self.character, self.reason,
+ self.name, self.position)
+
+class Reader(object):
+ # Reader:
+ # - determines the data encoding and converts it to unicode,
+ # - checks if characters are in allowed range,
+ # - adds '\0' to the end.
+
+ # Reader accepts
+ # - a `str` object,
+ # - a `unicode` object,
+ # - a file-like object with its `read` method returning `str`,
+ # - a file-like object with its `read` method returning `unicode`.
+
+ # Yeah, it's ugly and slow.
+
+ def __init__(self, stream):
+ self.name = None
+ self.stream = None
+ self.stream_pointer = 0
+ self.eof = True
+ self.buffer = u''
+ self.pointer = 0
+ self.raw_buffer = None
+ self.raw_decode = None
+ self.encoding = None
+ self.index = 0
+ self.line = 0
+ self.column = 0
+ if isinstance(stream, unicode):
+ self.name = "<unicode string>"
+ self.check_printable(stream)
+ self.buffer = stream+u'\0'
+ elif isinstance(stream, str):
+ self.name = "<string>"
+ self.raw_buffer = stream
+ self.determine_encoding()
+ else:
+ self.stream = stream
+ self.name = getattr(stream, 'name', "<file>")
+ self.eof = False
+ self.raw_buffer = ''
+ self.determine_encoding()
+
+ def peek(self, index=0):
+ try:
+ return self.buffer[self.pointer+index]
+ except IndexError:
+ self.update(index+1)
+ return self.buffer[self.pointer+index]
+
+ def prefix(self, length=1):
+ if self.pointer+length >= len(self.buffer):
+ self.update(length)
+ return self.buffer[self.pointer:self.pointer+length]
+
+ def forward(self, length=1):
+ if self.pointer+length+1 >= len(self.buffer):
+ self.update(length+1)
+ while length:
+ ch = self.buffer[self.pointer]
+ self.pointer += 1
+ self.index += 1
+ if ch in u'\n\x85\u2028\u2029' \
+ or (ch == u'\r' and self.buffer[self.pointer] != u'\n'):
+ self.line += 1
+ self.column = 0
+ elif ch != u'\uFEFF':
+ self.column += 1
+ length -= 1
+
+ def get_mark(self):
+ if self.stream is None:
+ return Mark(self.name, self.index, self.line, self.column,
+ self.buffer, self.pointer)
+ else:
+ return Mark(self.name, self.index, self.line, self.column,
+ None, None)
+
+ def determine_encoding(self):
+ while not self.eof and len(self.raw_buffer) < 2:
+ self.update_raw()
+ if not isinstance(self.raw_buffer, unicode):
+ if self.raw_buffer.startswith(codecs.BOM_UTF16_LE):
+ self.raw_decode = codecs.utf_16_le_decode
+ self.encoding = 'utf-16-le'
+ elif self.raw_buffer.startswith(codecs.BOM_UTF16_BE):
+ self.raw_decode = codecs.utf_16_be_decode
+ self.encoding = 'utf-16-be'
+ else:
+ self.raw_decode = codecs.utf_8_decode
+ self.encoding = 'utf-8'
+ self.update(1)
+
+ if has_ucs4:
+ NON_PRINTABLE = re.compile(u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]')
+ else:
+ NON_PRINTABLE = re.compile(u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uFFFD]|(?:^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?:[^\uDC00-\uDFFF]|$)')
+ def check_printable(self, data):
+ match = self.NON_PRINTABLE.search(data)
+ if match:
+ character = match.group()
+ position = self.index+(len(self.buffer)-self.pointer)+match.start()
+ raise ReaderError(self.name, position, ord(character),
+ 'unicode', "special characters are not allowed")
+
+ def update(self, length):
+ if self.raw_buffer is None:
+ return
+ self.buffer = self.buffer[self.pointer:]
+ self.pointer = 0
+ while len(self.buffer) < length:
+ if not self.eof:
+ self.update_raw()
+ if self.raw_decode is not None:
+ try:
+ data, converted = self.raw_decode(self.raw_buffer,
+ 'strict', self.eof)
+ except UnicodeDecodeError, exc:
+ character = exc.object[exc.start]
+ if self.stream is not None:
+ position = self.stream_pointer-len(self.raw_buffer)+exc.start
+ else:
+ position = exc.start
+ raise ReaderError(self.name, position, character,
+ exc.encoding, exc.reason)
+ else:
+ data = self.raw_buffer
+ converted = len(data)
+ self.check_printable(data)
+ self.buffer += data
+ self.raw_buffer = self.raw_buffer[converted:]
+ if self.eof:
+ self.buffer += u'\0'
+ self.raw_buffer = None
+ break
+
+ def update_raw(self, size=1024):
+ data = self.stream.read(size)
+ if data:
+ self.raw_buffer += data
+ self.stream_pointer += len(data)
+ else:
+ self.eof = True
diff --git a/yaml/lib/yaml/representer.py b/yaml/lib/yaml/representer.py
new file mode 100644
index 0000000000..93e09b67b3
--- /dev/null
+++ b/yaml/lib/yaml/representer.py
@@ -0,0 +1,489 @@
+
+__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer',
+ 'RepresenterError']
+
+from error import *
+
+from nodes import *
+
+import datetime
+
+import copy_reg, types
+
+class RepresenterError(YAMLError):
+ pass
+
+class BaseRepresenter(object):
+
+ yaml_representers = {}
+ yaml_multi_representers = {}
+
+ def __init__(self, default_style=None, default_flow_style=False, sort_keys=True):
+ self.default_style = default_style
+ self.default_flow_style = default_flow_style
+ self.sort_keys = sort_keys
+ self.represented_objects = {}
+ self.object_keeper = []
+ self.alias_key = None
+
+ def represent(self, data):
+ node = self.represent_data(data)
+ self.serialize(node)
+ self.represented_objects = {}
+ self.object_keeper = []
+ self.alias_key = None
+
+ def get_classobj_bases(self, cls):
+ bases = [cls]
+ for base in cls.__bases__:
+ bases.extend(self.get_classobj_bases(base))
+ return bases
+
+ def represent_data(self, data):
+ if self.ignore_aliases(data):
+ self.alias_key = None
+ else:
+ self.alias_key = id(data)
+ if self.alias_key is not None:
+ if self.alias_key in self.represented_objects:
+ node = self.represented_objects[self.alias_key]
+ #if node is None:
+ # raise RepresenterError("recursive objects are not allowed: %r" % data)
+ return node
+ #self.represented_objects[alias_key] = None
+ self.object_keeper.append(data)
+ data_types = type(data).__mro__
+ if type(data) is types.InstanceType:
+ data_types = self.get_classobj_bases(data.__class__)+list(data_types)
+ if data_types[0] in self.yaml_representers:
+ node = self.yaml_representers[data_types[0]](self, data)
+ else:
+ for data_type in data_types:
+ if data_type in self.yaml_multi_representers:
+ node = self.yaml_multi_representers[data_type](self, data)
+ break
+ else:
+ if None in self.yaml_multi_representers:
+ node = self.yaml_multi_representers[None](self, data)
+ elif None in self.yaml_representers:
+ node = self.yaml_representers[None](self, data)
+ else:
+ node = ScalarNode(None, unicode(data))
+ #if alias_key is not None:
+ # self.represented_objects[alias_key] = node
+ return node
+
+ def add_representer(cls, data_type, representer):
+ if not 'yaml_representers' in cls.__dict__:
+ cls.yaml_representers = cls.yaml_representers.copy()
+ cls.yaml_representers[data_type] = representer
+ add_representer = classmethod(add_representer)
+
+ def add_multi_representer(cls, data_type, representer):
+ if not 'yaml_multi_representers' in cls.__dict__:
+ cls.yaml_multi_representers = cls.yaml_multi_representers.copy()
+ cls.yaml_multi_representers[data_type] = representer
+ add_multi_representer = classmethod(add_multi_representer)
+
+ def represent_scalar(self, tag, value, style=None):
+ if style is None:
+ style = self.default_style
+ node = ScalarNode(tag, value, style=style)
+ if self.alias_key is not None:
+ self.represented_objects[self.alias_key] = node
+ return node
+
+ def represent_sequence(self, tag, sequence, flow_style=None):
+ value = []
+ node = SequenceNode(tag, value, flow_style=flow_style)
+ if self.alias_key is not None:
+ self.represented_objects[self.alias_key] = node
+ best_style = True
+ for item in sequence:
+ node_item = self.represent_data(item)
+ if not (isinstance(node_item, ScalarNode) and not node_item.style):
+ best_style = False
+ value.append(node_item)
+ if flow_style is None:
+ if self.default_flow_style is not None:
+ node.flow_style = self.default_flow_style
+ else:
+ node.flow_style = best_style
+ return node
+
+ def represent_mapping(self, tag, mapping, flow_style=None):
+ value = []
+ node = MappingNode(tag, value, flow_style=flow_style)
+ if self.alias_key is not None:
+ self.represented_objects[self.alias_key] = node
+ best_style = True
+ if hasattr(mapping, 'items'):
+ mapping = mapping.items()
+ if self.sort_keys:
+ mapping.sort()
+ for item_key, item_value in mapping:
+ node_key = self.represent_data(item_key)
+ node_value = self.represent_data(item_value)
+ if not (isinstance(node_key, ScalarNode) and not node_key.style):
+ best_style = False
+ if not (isinstance(node_value, ScalarNode) and not node_value.style):
+ best_style = False
+ value.append((node_key, node_value))
+ if flow_style is None:
+ if self.default_flow_style is not None:
+ node.flow_style = self.default_flow_style
+ else:
+ node.flow_style = best_style
+ return node
+
+ def ignore_aliases(self, data):
+ return False
+
+class SafeRepresenter(BaseRepresenter):
+
+ def ignore_aliases(self, data):
+ if data is None:
+ return True
+ if isinstance(data, tuple) and data == ():
+ return True
+ if isinstance(data, (str, unicode, bool, int, float)):
+ return True
+
+ def represent_none(self, data):
+ return self.represent_scalar(u'tag:yaml.org,2002:null',
+ u'null')
+
+ def represent_str(self, data):
+ tag = None
+ style = None
+ try:
+ data = unicode(data, 'ascii')
+ tag = u'tag:yaml.org,2002:str'
+ except UnicodeDecodeError:
+ try:
+ data = unicode(data, 'utf-8')
+ tag = u'tag:yaml.org,2002:str'
+ except UnicodeDecodeError:
+ data = data.encode('base64')
+ tag = u'tag:yaml.org,2002:binary'
+ style = '|'
+ return self.represent_scalar(tag, data, style=style)
+
+ def represent_unicode(self, data):
+ return self.represent_scalar(u'tag:yaml.org,2002:str', data)
+
+ def represent_bool(self, data):
+ if data:
+ value = u'true'
+ else:
+ value = u'false'
+ return self.represent_scalar(u'tag:yaml.org,2002:bool', value)
+
+ def represent_int(self, data):
+ return self.represent_scalar(u'tag:yaml.org,2002:int', unicode(data))
+
+ def represent_long(self, data):
+ return self.represent_scalar(u'tag:yaml.org,2002:int', unicode(data))
+
+ inf_value = 1e300
+ while repr(inf_value) != repr(inf_value*inf_value):
+ inf_value *= inf_value
+
+ def represent_float(self, data):
+ if data != data or (data == 0.0 and data == 1.0):
+ value = u'.nan'
+ elif data == self.inf_value:
+ value = u'.inf'
+ elif data == -self.inf_value:
+ value = u'-.inf'
+ else:
+ value = unicode(repr(data)).lower()
+ # Note that in some cases `repr(data)` represents a float number
+ # without the decimal parts. For instance:
+ # >>> repr(1e17)
+ # '1e17'
+ # Unfortunately, this is not a valid float representation according
+ # to the definition of the `!!float` tag. We fix this by adding
+ # '.0' before the 'e' symbol.
+ if u'.' not in value and u'e' in value:
+ value = value.replace(u'e', u'.0e', 1)
+ return self.represent_scalar(u'tag:yaml.org,2002:float', value)
+
+ def represent_list(self, data):
+ #pairs = (len(data) > 0 and isinstance(data, list))
+ #if pairs:
+ # for item in data:
+ # if not isinstance(item, tuple) or len(item) != 2:
+ # pairs = False
+ # break
+ #if not pairs:
+ return self.represent_sequence(u'tag:yaml.org,2002:seq', data)
+ #value = []
+ #for item_key, item_value in data:
+ # value.append(self.represent_mapping(u'tag:yaml.org,2002:map',
+ # [(item_key, item_value)]))
+ #return SequenceNode(u'tag:yaml.org,2002:pairs', value)
+
+ def represent_dict(self, data):
+ return self.represent_mapping(u'tag:yaml.org,2002:map', data)
+
+ def represent_set(self, data):
+ value = {}
+ for key in data:
+ value[key] = None
+ return self.represent_mapping(u'tag:yaml.org,2002:set', value)
+
+ def represent_date(self, data):
+ value = unicode(data.isoformat())
+ return self.represent_scalar(u'tag:yaml.org,2002:timestamp', value)
+
+ def represent_datetime(self, data):
+ value = unicode(data.isoformat(' '))
+ return self.represent_scalar(u'tag:yaml.org,2002:timestamp', value)
+
+ def represent_yaml_object(self, tag, data, cls, flow_style=None):
+ if hasattr(data, '__getstate__'):
+ state = data.__getstate__()
+ else:
+ state = data.__dict__.copy()
+ return self.represent_mapping(tag, state, flow_style=flow_style)
+
+ def represent_undefined(self, data):
+ raise RepresenterError("cannot represent an object", data)
+
+SafeRepresenter.add_representer(type(None),
+ SafeRepresenter.represent_none)
+
+SafeRepresenter.add_representer(str,
+ SafeRepresenter.represent_str)
+
+SafeRepresenter.add_representer(unicode,
+ SafeRepresenter.represent_unicode)
+
+SafeRepresenter.add_representer(bool,
+ SafeRepresenter.represent_bool)
+
+SafeRepresenter.add_representer(int,
+ SafeRepresenter.represent_int)
+
+SafeRepresenter.add_representer(long,
+ SafeRepresenter.represent_long)
+
+SafeRepresenter.add_representer(float,
+ SafeRepresenter.represent_float)
+
+SafeRepresenter.add_representer(list,
+ SafeRepresenter.represent_list)
+
+SafeRepresenter.add_representer(tuple,
+ SafeRepresenter.represent_list)
+
+SafeRepresenter.add_representer(dict,
+ SafeRepresenter.represent_dict)
+
+SafeRepresenter.add_representer(set,
+ SafeRepresenter.represent_set)
+
+SafeRepresenter.add_representer(datetime.date,
+ SafeRepresenter.represent_date)
+
+SafeRepresenter.add_representer(datetime.datetime,
+ SafeRepresenter.represent_datetime)
+
+SafeRepresenter.add_representer(None,
+ SafeRepresenter.represent_undefined)
+
+class Representer(SafeRepresenter):
+
+ def represent_str(self, data):
+ tag = None
+ style = None
+ try:
+ data = unicode(data, 'ascii')
+ tag = u'tag:yaml.org,2002:str'
+ except UnicodeDecodeError:
+ try:
+ data = unicode(data, 'utf-8')
+ tag = u'tag:yaml.org,2002:python/str'
+ except UnicodeDecodeError:
+ data = data.encode('base64')
+ tag = u'tag:yaml.org,2002:binary'
+ style = '|'
+ return self.represent_scalar(tag, data, style=style)
+
+ def represent_unicode(self, data):
+ tag = None
+ try:
+ data.encode('ascii')
+ tag = u'tag:yaml.org,2002:python/unicode'
+ except UnicodeEncodeError:
+ tag = u'tag:yaml.org,2002:str'
+ return self.represent_scalar(tag, data)
+
+ def represent_long(self, data):
+ tag = u'tag:yaml.org,2002:int'
+ if int(data) is not data:
+ tag = u'tag:yaml.org,2002:python/long'
+ return self.represent_scalar(tag, unicode(data))
+
+ def represent_complex(self, data):
+ if data.imag == 0.0:
+ data = u'%r' % data.real
+ elif data.real == 0.0:
+ data = u'%rj' % data.imag
+ elif data.imag > 0:
+ data = u'%r+%rj' % (data.real, data.imag)
+ else:
+ data = u'%r%rj' % (data.real, data.imag)
+ return self.represent_scalar(u'tag:yaml.org,2002:python/complex', data)
+
+ def represent_tuple(self, data):
+ return self.represent_sequence(u'tag:yaml.org,2002:python/tuple', data)
+
+ def represent_name(self, data):
+ name = u'%s.%s' % (data.__module__, data.__name__)
+ return self.represent_scalar(u'tag:yaml.org,2002:python/name:'+name, u'')
+
+ def represent_module(self, data):
+ return self.represent_scalar(
+ u'tag:yaml.org,2002:python/module:'+data.__name__, u'')
+
+ def represent_instance(self, data):
+ # For instances of classic classes, we use __getinitargs__ and
+ # __getstate__ to serialize the data.
+
+ # If data.__getinitargs__ exists, the object must be reconstructed by
+ # calling cls(**args), where args is a tuple returned by
+ # __getinitargs__. Otherwise, the cls.__init__ method should never be
+ # called and the class instance is created by instantiating a trivial
+ # class and assigning to the instance's __class__ variable.
+
+ # If data.__getstate__ exists, it returns the state of the object.
+ # Otherwise, the state of the object is data.__dict__.
+
+ # We produce either a !!python/object or !!python/object/new node.
+ # If data.__getinitargs__ does not exist and state is a dictionary, we
+ # produce a !!python/object node . Otherwise we produce a
+ # !!python/object/new node.
+
+ cls = data.__class__
+ class_name = u'%s.%s' % (cls.__module__, cls.__name__)
+ args = None
+ state = None
+ if hasattr(data, '__getinitargs__'):
+ args = list(data.__getinitargs__())
+ if hasattr(data, '__getstate__'):
+ state = data.__getstate__()
+ else:
+ state = data.__dict__
+ if args is None and isinstance(state, dict):
+ return self.represent_mapping(
+ u'tag:yaml.org,2002:python/object:'+class_name, state)
+ if isinstance(state, dict) and not state:
+ return self.represent_sequence(
+ u'tag:yaml.org,2002:python/object/new:'+class_name, args)
+ value = {}
+ if args:
+ value['args'] = args
+ value['state'] = state
+ return self.represent_mapping(
+ u'tag:yaml.org,2002:python/object/new:'+class_name, value)
+
+ def represent_object(self, data):
+ # We use __reduce__ API to save the data. data.__reduce__ returns
+ # a tuple of length 2-5:
+ # (function, args, state, listitems, dictitems)
+
+ # For reconstructing, we calls function(*args), then set its state,
+ # listitems, and dictitems if they are not None.
+
+ # A special case is when function.__name__ == '__newobj__'. In this
+ # case we create the object with args[0].__new__(*args).
+
+ # Another special case is when __reduce__ returns a string - we don't
+ # support it.
+
+ # We produce a !!python/object, !!python/object/new or
+ # !!python/object/apply node.
+
+ cls = type(data)
+ if cls in copy_reg.dispatch_table:
+ reduce = copy_reg.dispatch_table[cls](data)
+ elif hasattr(data, '__reduce_ex__'):
+ reduce = data.__reduce_ex__(2)
+ elif hasattr(data, '__reduce__'):
+ reduce = data.__reduce__()
+ else:
+ raise RepresenterError("cannot represent an object", data)
+ reduce = (list(reduce)+[None]*5)[:5]
+ function, args, state, listitems, dictitems = reduce
+ args = list(args)
+ if state is None:
+ state = {}
+ if listitems is not None:
+ listitems = list(listitems)
+ if dictitems is not None:
+ dictitems = dict(dictitems)
+ if function.__name__ == '__newobj__':
+ function = args[0]
+ args = args[1:]
+ tag = u'tag:yaml.org,2002:python/object/new:'
+ newobj = True
+ else:
+ tag = u'tag:yaml.org,2002:python/object/apply:'
+ newobj = False
+ function_name = u'%s.%s' % (function.__module__, function.__name__)
+ if not args and not listitems and not dictitems \
+ and isinstance(state, dict) and newobj:
+ return self.represent_mapping(
+ u'tag:yaml.org,2002:python/object:'+function_name, state)
+ if not listitems and not dictitems \
+ and isinstance(state, dict) and not state:
+ return self.represent_sequence(tag+function_name, args)
+ value = {}
+ if args:
+ value['args'] = args
+ if state or not isinstance(state, dict):
+ value['state'] = state
+ if listitems:
+ value['listitems'] = listitems
+ if dictitems:
+ value['dictitems'] = dictitems
+ return self.represent_mapping(tag+function_name, value)
+
+Representer.add_representer(str,
+ Representer.represent_str)
+
+Representer.add_representer(unicode,
+ Representer.represent_unicode)
+
+Representer.add_representer(long,
+ Representer.represent_long)
+
+Representer.add_representer(complex,
+ Representer.represent_complex)
+
+Representer.add_representer(tuple,
+ Representer.represent_tuple)
+
+Representer.add_representer(type,
+ Representer.represent_name)
+
+Representer.add_representer(types.ClassType,
+ Representer.represent_name)
+
+Representer.add_representer(types.FunctionType,
+ Representer.represent_name)
+
+Representer.add_representer(types.BuiltinFunctionType,
+ Representer.represent_name)
+
+Representer.add_representer(types.ModuleType,
+ Representer.represent_module)
+
+Representer.add_multi_representer(types.InstanceType,
+ Representer.represent_instance)
+
+Representer.add_multi_representer(object,
+ Representer.represent_object)
+
diff --git a/yaml/lib/yaml/resolver.py b/yaml/lib/yaml/resolver.py
new file mode 100644
index 0000000000..528fbc0ead
--- /dev/null
+++ b/yaml/lib/yaml/resolver.py
@@ -0,0 +1,227 @@
+
+__all__ = ['BaseResolver', 'Resolver']
+
+from error import *
+from nodes import *
+
+import re
+
+class ResolverError(YAMLError):
+ pass
+
+class BaseResolver(object):
+
+ DEFAULT_SCALAR_TAG = u'tag:yaml.org,2002:str'
+ DEFAULT_SEQUENCE_TAG = u'tag:yaml.org,2002:seq'
+ DEFAULT_MAPPING_TAG = u'tag:yaml.org,2002:map'
+
+ yaml_implicit_resolvers = {}
+ yaml_path_resolvers = {}
+
+ def __init__(self):
+ self.resolver_exact_paths = []
+ self.resolver_prefix_paths = []
+
+ def add_implicit_resolver(cls, tag, regexp, first):
+ if not 'yaml_implicit_resolvers' in cls.__dict__:
+ implicit_resolvers = {}
+ for key in cls.yaml_implicit_resolvers:
+ implicit_resolvers[key] = cls.yaml_implicit_resolvers[key][:]
+ cls.yaml_implicit_resolvers = implicit_resolvers
+ if first is None:
+ first = [None]
+ for ch in first:
+ cls.yaml_implicit_resolvers.setdefault(ch, []).append((tag, regexp))
+ add_implicit_resolver = classmethod(add_implicit_resolver)
+
+ def add_path_resolver(cls, tag, path, kind=None):
+ # Note: `add_path_resolver` is experimental. The API could be changed.
+ # `new_path` is a pattern that is matched against the path from the
+ # root to the node that is being considered. `node_path` elements are
+ # tuples `(node_check, index_check)`. `node_check` is a node class:
+ # `ScalarNode`, `SequenceNode`, `MappingNode` or `None`. `None`
+ # matches any kind of a node. `index_check` could be `None`, a boolean
+ # value, a string value, or a number. `None` and `False` match against
+ # any _value_ of sequence and mapping nodes. `True` matches against
+ # any _key_ of a mapping node. A string `index_check` matches against
+ # a mapping value that corresponds to a scalar key which content is
+ # equal to the `index_check` value. An integer `index_check` matches
+ # against a sequence value with the index equal to `index_check`.
+ if not 'yaml_path_resolvers' in cls.__dict__:
+ cls.yaml_path_resolvers = cls.yaml_path_resolvers.copy()
+ new_path = []
+ for element in path:
+ if isinstance(element, (list, tuple)):
+ if len(element) == 2:
+ node_check, index_check = element
+ elif len(element) == 1:
+ node_check = element[0]
+ index_check = True
+ else:
+ raise ResolverError("Invalid path element: %s" % element)
+ else:
+ node_check = None
+ index_check = element
+ if node_check is str:
+ node_check = ScalarNode
+ elif node_check is list:
+ node_check = SequenceNode
+ elif node_check is dict:
+ node_check = MappingNode
+ elif node_check not in [ScalarNode, SequenceNode, MappingNode] \
+ and not isinstance(node_check, basestring) \
+ and node_check is not None:
+ raise ResolverError("Invalid node checker: %s" % node_check)
+ if not isinstance(index_check, (basestring, int)) \
+ and index_check is not None:
+ raise ResolverError("Invalid index checker: %s" % index_check)
+ new_path.append((node_check, index_check))
+ if kind is str:
+ kind = ScalarNode
+ elif kind is list:
+ kind = SequenceNode
+ elif kind is dict:
+ kind = MappingNode
+ elif kind not in [ScalarNode, SequenceNode, MappingNode] \
+ and kind is not None:
+ raise ResolverError("Invalid node kind: %s" % kind)
+ cls.yaml_path_resolvers[tuple(new_path), kind] = tag
+ add_path_resolver = classmethod(add_path_resolver)
+
+ def descend_resolver(self, current_node, current_index):
+ if not self.yaml_path_resolvers:
+ return
+ exact_paths = {}
+ prefix_paths = []
+ if current_node:
+ depth = len(self.resolver_prefix_paths)
+ for path, kind in self.resolver_prefix_paths[-1]:
+ if self.check_resolver_prefix(depth, path, kind,
+ current_node, current_index):
+ if len(path) > depth:
+ prefix_paths.append((path, kind))
+ else:
+ exact_paths[kind] = self.yaml_path_resolvers[path, kind]
+ else:
+ for path, kind in self.yaml_path_resolvers:
+ if not path:
+ exact_paths[kind] = self.yaml_path_resolvers[path, kind]
+ else:
+ prefix_paths.append((path, kind))
+ self.resolver_exact_paths.append(exact_paths)
+ self.resolver_prefix_paths.append(prefix_paths)
+
+ def ascend_resolver(self):
+ if not self.yaml_path_resolvers:
+ return
+ self.resolver_exact_paths.pop()
+ self.resolver_prefix_paths.pop()
+
+ def check_resolver_prefix(self, depth, path, kind,
+ current_node, current_index):
+ node_check, index_check = path[depth-1]
+ if isinstance(node_check, basestring):
+ if current_node.tag != node_check:
+ return
+ elif node_check is not None:
+ if not isinstance(current_node, node_check):
+ return
+ if index_check is True and current_index is not None:
+ return
+ if (index_check is False or index_check is None) \
+ and current_index is None:
+ return
+ if isinstance(index_check, basestring):
+ if not (isinstance(current_index, ScalarNode)
+ and index_check == current_index.value):
+ return
+ elif isinstance(index_check, int) and not isinstance(index_check, bool):
+ if index_check != current_index:
+ return
+ return True
+
+ def resolve(self, kind, value, implicit):
+ if kind is ScalarNode and implicit[0]:
+ if value == u'':
+ resolvers = self.yaml_implicit_resolvers.get(u'', [])
+ else:
+ resolvers = self.yaml_implicit_resolvers.get(value[0], [])
+ resolvers += self.yaml_implicit_resolvers.get(None, [])
+ for tag, regexp in resolvers:
+ if regexp.match(value):
+ return tag
+ implicit = implicit[1]
+ if self.yaml_path_resolvers:
+ exact_paths = self.resolver_exact_paths[-1]
+ if kind in exact_paths:
+ return exact_paths[kind]
+ if None in exact_paths:
+ return exact_paths[None]
+ if kind is ScalarNode:
+ return self.DEFAULT_SCALAR_TAG
+ elif kind is SequenceNode:
+ return self.DEFAULT_SEQUENCE_TAG
+ elif kind is MappingNode:
+ return self.DEFAULT_MAPPING_TAG
+
+class Resolver(BaseResolver):
+ pass
+
+Resolver.add_implicit_resolver(
+ u'tag:yaml.org,2002:bool',
+ re.compile(ur'''^(?:yes|Yes|YES|no|No|NO
+ |true|True|TRUE|false|False|FALSE
+ |on|On|ON|off|Off|OFF)$''', re.X),
+ list(u'yYnNtTfFoO'))
+
+Resolver.add_implicit_resolver(
+ u'tag:yaml.org,2002:float',
+ re.compile(ur'''^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)?
+ |\.[0-9_]+(?:[eE][-+][0-9]+)?
+ |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*
+ |[-+]?\.(?:inf|Inf|INF)
+ |\.(?:nan|NaN|NAN))$''', re.X),
+ list(u'-+0123456789.'))
+
+Resolver.add_implicit_resolver(
+ u'tag:yaml.org,2002:int',
+ re.compile(ur'''^(?:[-+]?0b[0-1_]+
+ |[-+]?0[0-7_]+
+ |[-+]?(?:0|[1-9][0-9_]*)
+ |[-+]?0x[0-9a-fA-F_]+
+ |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.X),
+ list(u'-+0123456789'))
+
+Resolver.add_implicit_resolver(
+ u'tag:yaml.org,2002:merge',
+ re.compile(ur'^(?:<<)$'),
+ [u'<'])
+
+Resolver.add_implicit_resolver(
+ u'tag:yaml.org,2002:null',
+ re.compile(ur'''^(?: ~
+ |null|Null|NULL
+ | )$''', re.X),
+ [u'~', u'n', u'N', u''])
+
+Resolver.add_implicit_resolver(
+ u'tag:yaml.org,2002:timestamp',
+ re.compile(ur'''^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
+ |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]?
+ (?:[Tt]|[ \t]+)[0-9][0-9]?
+ :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)?
+ (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$''', re.X),
+ list(u'0123456789'))
+
+Resolver.add_implicit_resolver(
+ u'tag:yaml.org,2002:value',
+ re.compile(ur'^(?:=)$'),
+ [u'='])
+
+# The following resolver is only for documentation purposes. It cannot work
+# because plain scalars cannot start with '!', '&', or '*'.
+Resolver.add_implicit_resolver(
+ u'tag:yaml.org,2002:yaml',
+ re.compile(ur'^(?:!|&|\*)$'),
+ list(u'!&*'))
+
diff --git a/yaml/lib/yaml/scanner.py b/yaml/lib/yaml/scanner.py
new file mode 100644
index 0000000000..098ea7be82
--- /dev/null
+++ b/yaml/lib/yaml/scanner.py
@@ -0,0 +1,1444 @@
+
+# Scanner produces tokens of the following types:
+# STREAM-START
+# STREAM-END
+# DIRECTIVE(name, value)
+# DOCUMENT-START
+# DOCUMENT-END
+# BLOCK-SEQUENCE-START
+# BLOCK-MAPPING-START
+# BLOCK-END
+# FLOW-SEQUENCE-START
+# FLOW-MAPPING-START
+# FLOW-SEQUENCE-END
+# FLOW-MAPPING-END
+# BLOCK-ENTRY
+# FLOW-ENTRY
+# KEY
+# VALUE
+# ALIAS(value)
+# ANCHOR(value)
+# TAG(value)
+# SCALAR(value, plain, style)
+#
+# Read comments in the Scanner code for more details.
+#
+
+__all__ = ['Scanner', 'ScannerError']
+
+from error import MarkedYAMLError
+from tokens import *
+
+class ScannerError(MarkedYAMLError):
+ pass
+
+class SimpleKey(object):
+ # See below simple keys treatment.
+
+ def __init__(self, token_number, required, index, line, column, mark):
+ self.token_number = token_number
+ self.required = required
+ self.index = index
+ self.line = line
+ self.column = column
+ self.mark = mark
+
+class Scanner(object):
+
+ def __init__(self):
+ """Initialize the scanner."""
+ # It is assumed that Scanner and Reader will have a common descendant.
+ # Reader do the dirty work of checking for BOM and converting the
+ # input data to Unicode. It also adds NUL to the end.
+ #
+ # Reader supports the following methods
+ # self.peek(i=0) # peek the next i-th character
+ # self.prefix(l=1) # peek the next l characters
+ # self.forward(l=1) # read the next l characters and move the pointer.
+
+ # Had we reached the end of the stream?
+ self.done = False
+
+ # The number of unclosed '{' and '['. `flow_level == 0` means block
+ # context.
+ self.flow_level = 0
+
+ # List of processed tokens that are not yet emitted.
+ self.tokens = []
+
+ # Add the STREAM-START token.
+ self.fetch_stream_start()
+
+ # Number of tokens that were emitted through the `get_token` method.
+ self.tokens_taken = 0
+
+ # The current indentation level.
+ self.indent = -1
+
+ # Past indentation levels.
+ self.indents = []
+
+ # Variables related to simple keys treatment.
+
+ # A simple key is a key that is not denoted by the '?' indicator.
+ # Example of simple keys:
+ # ---
+ # block simple key: value
+ # ? not a simple key:
+ # : { flow simple key: value }
+ # We emit the KEY token before all keys, so when we find a potential
+ # simple key, we try to locate the corresponding ':' indicator.
+ # Simple keys should be limited to a single line and 1024 characters.
+
+ # Can a simple key start at the current position? A simple key may
+ # start:
+ # - at the beginning of the line, not counting indentation spaces
+ # (in block context),
+ # - after '{', '[', ',' (in the flow context),
+ # - after '?', ':', '-' (in the block context).
+ # In the block context, this flag also signifies if a block collection
+ # may start at the current position.
+ self.allow_simple_key = True
+
+ # Keep track of possible simple keys. This is a dictionary. The key
+ # is `flow_level`; there can be no more that one possible simple key
+ # for each level. The value is a SimpleKey record:
+ # (token_number, required, index, line, column, mark)
+ # A simple key may start with ALIAS, ANCHOR, TAG, SCALAR(flow),
+ # '[', or '{' tokens.
+ self.possible_simple_keys = {}
+
+ # Public methods.
+
+ def check_token(self, *choices):
+ # Check if the next token is one of the given types.
+ while self.need_more_tokens():
+ self.fetch_more_tokens()
+ if self.tokens:
+ if not choices:
+ return True
+ for choice in choices:
+ if isinstance(self.tokens[0], choice):
+ return True
+ return False
+
+ def peek_token(self):
+ # Return the next token, but do not delete if from the queue.
+ # Return None if no more tokens.
+ while self.need_more_tokens():
+ self.fetch_more_tokens()
+ if self.tokens:
+ return self.tokens[0]
+ else:
+ return None
+
+ def get_token(self):
+ # Return the next token.
+ while self.need_more_tokens():
+ self.fetch_more_tokens()
+ if self.tokens:
+ self.tokens_taken += 1
+ return self.tokens.pop(0)
+
+ # Private methods.
+
+ def need_more_tokens(self):
+ if self.done:
+ return False
+ if not self.tokens:
+ return True
+ # The current token may be a potential simple key, so we
+ # need to look further.
+ self.stale_possible_simple_keys()
+ if self.next_possible_simple_key() == self.tokens_taken:
+ return True
+
+ def fetch_more_tokens(self):
+
+ # Eat whitespaces and comments until we reach the next token.
+ self.scan_to_next_token()
+
+ # Remove obsolete possible simple keys.
+ self.stale_possible_simple_keys()
+
+ # Compare the current indentation and column. It may add some tokens
+ # and decrease the current indentation level.
+ self.unwind_indent(self.column)
+
+ # Peek the next character.
+ ch = self.peek()
+
+ # Is it the end of stream?
+ if ch == u'\0':
+ return self.fetch_stream_end()
+
+ # Is it a directive?
+ if ch == u'%' and self.check_directive():
+ return self.fetch_directive()
+
+ # Is it the document start?
+ if ch == u'-' and self.check_document_start():
+ return self.fetch_document_start()
+
+ # Is it the document end?
+ if ch == u'.' and self.check_document_end():
+ return self.fetch_document_end()
+
+ # TODO: support for BOM within a stream.
+ #if ch == u'\uFEFF':
+ # return self.fetch_bom() <-- issue BOMToken
+
+ # Note: the order of the following checks is NOT significant.
+
+ # Is it the flow sequence start indicator?
+ if ch == u'[':
+ return self.fetch_flow_sequence_start()
+
+ # Is it the flow mapping start indicator?
+ if ch == u'{':
+ return self.fetch_flow_mapping_start()
+
+ # Is it the flow sequence end indicator?
+ if ch == u']':
+ return self.fetch_flow_sequence_end()
+
+ # Is it the flow mapping end indicator?
+ if ch == u'}':
+ return self.fetch_flow_mapping_end()
+
+ # Is it the flow entry indicator?
+ if ch == u',':
+ return self.fetch_flow_entry()
+
+ # Is it the block entry indicator?
+ if ch == u'-' and self.check_block_entry():
+ return self.fetch_block_entry()
+
+ # Is it the key indicator?
+ if ch == u'?' and self.check_key():
+ return self.fetch_key()
+
+ # Is it the value indicator?
+ if ch == u':' and self.check_value():
+ return self.fetch_value()
+
+ # Is it an alias?
+ if ch == u'*':
+ return self.fetch_alias()
+
+ # Is it an anchor?
+ if ch == u'&':
+ return self.fetch_anchor()
+
+ # Is it a tag?
+ if ch == u'!':
+ return self.fetch_tag()
+
+ # Is it a literal scalar?
+ if ch == u'|' and not self.flow_level:
+ return self.fetch_literal()
+
+ # Is it a folded scalar?
+ if ch == u'>' and not self.flow_level:
+ return self.fetch_folded()
+
+ # Is it a single quoted scalar?
+ if ch == u'\'':
+ return self.fetch_single()
+
+ # Is it a double quoted scalar?
+ if ch == u'\"':
+ return self.fetch_double()
+
+ # It must be a plain scalar then.
+ if self.check_plain():
+ return self.fetch_plain()
+
+ # No? It's an error. Let's produce a nice error message.
+ raise ScannerError("while scanning for the next token", None,
+ "found character %r that cannot start any token"
+ % ch.encode('utf-8'), self.get_mark())
+
+ # Simple keys treatment.
+
+ def next_possible_simple_key(self):
+ # Return the number of the nearest possible simple key. Actually we
+ # don't need to loop through the whole dictionary. We may replace it
+ # with the following code:
+ # if not self.possible_simple_keys:
+ # return None
+ # return self.possible_simple_keys[
+ # min(self.possible_simple_keys.keys())].token_number
+ min_token_number = None
+ for level in self.possible_simple_keys:
+ key = self.possible_simple_keys[level]
+ if min_token_number is None or key.token_number < min_token_number:
+ min_token_number = key.token_number
+ return min_token_number
+
+ def stale_possible_simple_keys(self):
+ # Remove entries that are no longer possible simple keys. According to
+ # the YAML specification, simple keys
+ # - should be limited to a single line,
+ # - should be no longer than 1024 characters.
+ # Disabling this procedure will allow simple keys of any length and
+ # height (may cause problems if indentation is broken though).
+ for level in self.possible_simple_keys.keys():
+ key = self.possible_simple_keys[level]
+ if key.line != self.line \
+ or self.index-key.index > 1024:
+ if key.required:
+ raise ScannerError("while scanning a simple key", key.mark,
+ "could not find expected ':'", self.get_mark())
+ del self.possible_simple_keys[level]
+
+ def save_possible_simple_key(self):
+ # The next token may start a simple key. We check if it's possible
+ # and save its position. This function is called for
+ # ALIAS, ANCHOR, TAG, SCALAR(flow), '[', and '{'.
+
+ # Check if a simple key is required at the current position.
+ required = not self.flow_level and self.indent == self.column
+
+ # The next token might be a simple key. Let's save it's number and
+ # position.
+ if self.allow_simple_key:
+ self.remove_possible_simple_key()
+ token_number = self.tokens_taken+len(self.tokens)
+ key = SimpleKey(token_number, required,
+ self.index, self.line, self.column, self.get_mark())
+ self.possible_simple_keys[self.flow_level] = key
+
+ def remove_possible_simple_key(self):
+ # Remove the saved possible key position at the current flow level.
+ if self.flow_level in self.possible_simple_keys:
+ key = self.possible_simple_keys[self.flow_level]
+
+ if key.required:
+ raise ScannerError("while scanning a simple key", key.mark,
+ "could not find expected ':'", self.get_mark())
+
+ del self.possible_simple_keys[self.flow_level]
+
+ # Indentation functions.
+
+ def unwind_indent(self, column):
+
+ ## In flow context, tokens should respect indentation.
+ ## Actually the condition should be `self.indent >= column` according to
+ ## the spec. But this condition will prohibit intuitively correct
+ ## constructions such as
+ ## key : {
+ ## }
+ #if self.flow_level and self.indent > column:
+ # raise ScannerError(None, None,
+ # "invalid indentation or unclosed '[' or '{'",
+ # self.get_mark())
+
+ # In the flow context, indentation is ignored. We make the scanner less
+ # restrictive then specification requires.
+ if self.flow_level:
+ return
+
+ # In block context, we may need to issue the BLOCK-END tokens.
+ while self.indent > column:
+ mark = self.get_mark()
+ self.indent = self.indents.pop()
+ self.tokens.append(BlockEndToken(mark, mark))
+
+ def add_indent(self, column):
+ # Check if we need to increase indentation.
+ if self.indent < column:
+ self.indents.append(self.indent)
+ self.indent = column
+ return True
+ return False
+
+ # Fetchers.
+
+ def fetch_stream_start(self):
+ # We always add STREAM-START as the first token and STREAM-END as the
+ # last token.
+
+ # Read the token.
+ mark = self.get_mark()
+
+ # Add STREAM-START.
+ self.tokens.append(StreamStartToken(mark, mark,
+ encoding=self.encoding))
+
+
+ def fetch_stream_end(self):
+
+ # Set the current indentation to -1.
+ self.unwind_indent(-1)
+
+ # Reset simple keys.
+ self.remove_possible_simple_key()
+ self.allow_simple_key = False
+ self.possible_simple_keys = {}
+
+ # Read the token.
+ mark = self.get_mark()
+
+ # Add STREAM-END.
+ self.tokens.append(StreamEndToken(mark, mark))
+
+ # The steam is finished.
+ self.done = True
+
+ def fetch_directive(self):
+
+ # Set the current indentation to -1.
+ self.unwind_indent(-1)
+
+ # Reset simple keys.
+ self.remove_possible_simple_key()
+ self.allow_simple_key = False
+
+ # Scan and add DIRECTIVE.
+ self.tokens.append(self.scan_directive())
+
+ def fetch_document_start(self):
+ self.fetch_document_indicator(DocumentStartToken)
+
+ def fetch_document_end(self):
+ self.fetch_document_indicator(DocumentEndToken)
+
+ def fetch_document_indicator(self, TokenClass):
+
+ # Set the current indentation to -1.
+ self.unwind_indent(-1)
+
+ # Reset simple keys. Note that there could not be a block collection
+ # after '---'.
+ self.remove_possible_simple_key()
+ self.allow_simple_key = False
+
+ # Add DOCUMENT-START or DOCUMENT-END.
+ start_mark = self.get_mark()
+ self.forward(3)
+ end_mark = self.get_mark()
+ self.tokens.append(TokenClass(start_mark, end_mark))
+
+ def fetch_flow_sequence_start(self):
+ self.fetch_flow_collection_start(FlowSequenceStartToken)
+
+ def fetch_flow_mapping_start(self):
+ self.fetch_flow_collection_start(FlowMappingStartToken)
+
+ def fetch_flow_collection_start(self, TokenClass):
+
+ # '[' and '{' may start a simple key.
+ self.save_possible_simple_key()
+
+ # Increase the flow level.
+ self.flow_level += 1
+
+ # Simple keys are allowed after '[' and '{'.
+ self.allow_simple_key = True
+
+ # Add FLOW-SEQUENCE-START or FLOW-MAPPING-START.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(TokenClass(start_mark, end_mark))
+
+ def fetch_flow_sequence_end(self):
+ self.fetch_flow_collection_end(FlowSequenceEndToken)
+
+ def fetch_flow_mapping_end(self):
+ self.fetch_flow_collection_end(FlowMappingEndToken)
+
+ def fetch_flow_collection_end(self, TokenClass):
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Decrease the flow level.
+ self.flow_level -= 1
+
+ # No simple keys after ']' or '}'.
+ self.allow_simple_key = False
+
+ # Add FLOW-SEQUENCE-END or FLOW-MAPPING-END.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(TokenClass(start_mark, end_mark))
+
+ def fetch_flow_entry(self):
+
+ # Simple keys are allowed after ','.
+ self.allow_simple_key = True
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Add FLOW-ENTRY.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(FlowEntryToken(start_mark, end_mark))
+
+ def fetch_block_entry(self):
+
+ # Block context needs additional checks.
+ if not self.flow_level:
+
+ # Are we allowed to start a new entry?
+ if not self.allow_simple_key:
+ raise ScannerError(None, None,
+ "sequence entries are not allowed here",
+ self.get_mark())
+
+ # We may need to add BLOCK-SEQUENCE-START.
+ if self.add_indent(self.column):
+ mark = self.get_mark()
+ self.tokens.append(BlockSequenceStartToken(mark, mark))
+
+ # It's an error for the block entry to occur in the flow context,
+ # but we let the parser detect this.
+ else:
+ pass
+
+ # Simple keys are allowed after '-'.
+ self.allow_simple_key = True
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Add BLOCK-ENTRY.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(BlockEntryToken(start_mark, end_mark))
+
+ def fetch_key(self):
+
+ # Block context needs additional checks.
+ if not self.flow_level:
+
+ # Are we allowed to start a key (not necessary a simple)?
+ if not self.allow_simple_key:
+ raise ScannerError(None, None,
+ "mapping keys are not allowed here",
+ self.get_mark())
+
+ # We may need to add BLOCK-MAPPING-START.
+ if self.add_indent(self.column):
+ mark = self.get_mark()
+ self.tokens.append(BlockMappingStartToken(mark, mark))
+
+ # Simple keys are allowed after '?' in the block context.
+ self.allow_simple_key = not self.flow_level
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Add KEY.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(KeyToken(start_mark, end_mark))
+
+ def fetch_value(self):
+
+ # Do we determine a simple key?
+ if self.flow_level in self.possible_simple_keys:
+
+ # Add KEY.
+ key = self.possible_simple_keys[self.flow_level]
+ del self.possible_simple_keys[self.flow_level]
+ self.tokens.insert(key.token_number-self.tokens_taken,
+ KeyToken(key.mark, key.mark))
+
+ # If this key starts a new block mapping, we need to add
+ # BLOCK-MAPPING-START.
+ if not self.flow_level:
+ if self.add_indent(key.column):
+ self.tokens.insert(key.token_number-self.tokens_taken,
+ BlockMappingStartToken(key.mark, key.mark))
+
+ # There cannot be two simple keys one after another.
+ self.allow_simple_key = False
+
+ # It must be a part of a complex key.
+ else:
+
+ # Block context needs additional checks.
+ # (Do we really need them? They will be caught by the parser
+ # anyway.)
+ if not self.flow_level:
+
+ # We are allowed to start a complex value if and only if
+ # we can start a simple key.
+ if not self.allow_simple_key:
+ raise ScannerError(None, None,
+ "mapping values are not allowed here",
+ self.get_mark())
+
+ # If this value starts a new block mapping, we need to add
+ # BLOCK-MAPPING-START. It will be detected as an error later by
+ # the parser.
+ if not self.flow_level:
+ if self.add_indent(self.column):
+ mark = self.get_mark()
+ self.tokens.append(BlockMappingStartToken(mark, mark))
+
+ # Simple keys are allowed after ':' in the block context.
+ self.allow_simple_key = not self.flow_level
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Add VALUE.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(ValueToken(start_mark, end_mark))
+
+ def fetch_alias(self):
+
+ # ALIAS could be a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after ALIAS.
+ self.allow_simple_key = False
+
+ # Scan and add ALIAS.
+ self.tokens.append(self.scan_anchor(AliasToken))
+
+ def fetch_anchor(self):
+
+ # ANCHOR could start a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after ANCHOR.
+ self.allow_simple_key = False
+
+ # Scan and add ANCHOR.
+ self.tokens.append(self.scan_anchor(AnchorToken))
+
+ def fetch_tag(self):
+
+ # TAG could start a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after TAG.
+ self.allow_simple_key = False
+
+ # Scan and add TAG.
+ self.tokens.append(self.scan_tag())
+
+ def fetch_literal(self):
+ self.fetch_block_scalar(style='|')
+
+ def fetch_folded(self):
+ self.fetch_block_scalar(style='>')
+
+ def fetch_block_scalar(self, style):
+
+ # A simple key may follow a block scalar.
+ self.allow_simple_key = True
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Scan and add SCALAR.
+ self.tokens.append(self.scan_block_scalar(style))
+
+ def fetch_single(self):
+ self.fetch_flow_scalar(style='\'')
+
+ def fetch_double(self):
+ self.fetch_flow_scalar(style='"')
+
+ def fetch_flow_scalar(self, style):
+
+ # A flow scalar could be a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after flow scalars.
+ self.allow_simple_key = False
+
+ # Scan and add SCALAR.
+ self.tokens.append(self.scan_flow_scalar(style))
+
+ def fetch_plain(self):
+
+ # A plain scalar could be a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after plain scalars. But note that `scan_plain` will
+ # change this flag if the scan is finished at the beginning of the
+ # line.
+ self.allow_simple_key = False
+
+ # Scan and add SCALAR. May change `allow_simple_key`.
+ self.tokens.append(self.scan_plain())
+
+ # Checkers.
+
+ def check_directive(self):
+
+ # DIRECTIVE: ^ '%' ...
+ # The '%' indicator is already checked.
+ if self.column == 0:
+ return True
+
+ def check_document_start(self):
+
+ # DOCUMENT-START: ^ '---' (' '|'\n')
+ if self.column == 0:
+ if self.prefix(3) == u'---' \
+ and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+ return True
+
+ def check_document_end(self):
+
+ # DOCUMENT-END: ^ '...' (' '|'\n')
+ if self.column == 0:
+ if self.prefix(3) == u'...' \
+ and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+ return True
+
+ def check_block_entry(self):
+
+ # BLOCK-ENTRY: '-' (' '|'\n')
+ return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029'
+
+ def check_key(self):
+
+ # KEY(flow context): '?'
+ if self.flow_level:
+ return True
+
+ # KEY(block context): '?' (' '|'\n')
+ else:
+ return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029'
+
+ def check_value(self):
+
+ # VALUE(flow context): ':'
+ if self.flow_level:
+ return True
+
+ # VALUE(block context): ':' (' '|'\n')
+ else:
+ return self.peek(1) in u'\0 \t\r\n\x85\u2028\u2029'
+
+ def check_plain(self):
+
+ # A plain scalar may start with any non-space character except:
+ # '-', '?', ':', ',', '[', ']', '{', '}',
+ # '#', '&', '*', '!', '|', '>', '\'', '\"',
+ # '%', '@', '`'.
+ #
+ # It may also start with
+ # '-', '?', ':'
+ # if it is followed by a non-space character.
+ #
+ # Note that we limit the last rule to the block context (except the
+ # '-' character) because we want the flow context to be space
+ # independent.
+ ch = self.peek()
+ return ch not in u'\0 \t\r\n\x85\u2028\u2029-?:,[]{}#&*!|>\'\"%@`' \
+ or (self.peek(1) not in u'\0 \t\r\n\x85\u2028\u2029'
+ and (ch == u'-' or (not self.flow_level and ch in u'?:')))
+
+ # Scanners.
+
+ def scan_to_next_token(self):
+ # We ignore spaces, line breaks and comments.
+ # If we find a line break in the block context, we set the flag
+ # `allow_simple_key` on.
+ # The byte order mark is stripped if it's the first character in the
+ # stream. We do not yet support BOM inside the stream as the
+ # specification requires. Any such mark will be considered as a part
+ # of the document.
+ #
+ # TODO: We need to make tab handling rules more sane. A good rule is
+ # Tabs cannot precede tokens
+ # BLOCK-SEQUENCE-START, BLOCK-MAPPING-START, BLOCK-END,
+ # KEY(block), VALUE(block), BLOCK-ENTRY
+ # So the checking code is
+ # if <TAB>:
+ # self.allow_simple_keys = False
+ # We also need to add the check for `allow_simple_keys == True` to
+ # `unwind_indent` before issuing BLOCK-END.
+ # Scanners for block, flow, and plain scalars need to be modified.
+
+ if self.index == 0 and self.peek() == u'\uFEFF':
+ self.forward()
+ found = False
+ while not found:
+ while self.peek() == u' ':
+ self.forward()
+ if self.peek() == u'#':
+ while self.peek() not in u'\0\r\n\x85\u2028\u2029':
+ self.forward()
+ if self.scan_line_break():
+ if not self.flow_level:
+ self.allow_simple_key = True
+ else:
+ found = True
+
+ def scan_directive(self):
+ # See the specification for details.
+ start_mark = self.get_mark()
+ self.forward()
+ name = self.scan_directive_name(start_mark)
+ value = None
+ if name == u'YAML':
+ value = self.scan_yaml_directive_value(start_mark)
+ end_mark = self.get_mark()
+ elif name == u'TAG':
+ value = self.scan_tag_directive_value(start_mark)
+ end_mark = self.get_mark()
+ else:
+ end_mark = self.get_mark()
+ while self.peek() not in u'\0\r\n\x85\u2028\u2029':
+ self.forward()
+ self.scan_directive_ignored_line(start_mark)
+ return DirectiveToken(name, value, start_mark, end_mark)
+
+ def scan_directive_name(self, start_mark):
+ # See the specification for details.
+ length = 0
+ ch = self.peek(length)
+ while u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \
+ or ch in u'-_':
+ length += 1
+ ch = self.peek(length)
+ if not length:
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected alphabetic or numeric character, but found %r"
+ % ch.encode('utf-8'), self.get_mark())
+ value = self.prefix(length)
+ self.forward(length)
+ ch = self.peek()
+ if ch not in u'\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected alphabetic or numeric character, but found %r"
+ % ch.encode('utf-8'), self.get_mark())
+ return value
+
+ def scan_yaml_directive_value(self, start_mark):
+ # See the specification for details.
+ while self.peek() == u' ':
+ self.forward()
+ major = self.scan_yaml_directive_number(start_mark)
+ if self.peek() != '.':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected a digit or '.', but found %r"
+ % self.peek().encode('utf-8'),
+ self.get_mark())
+ self.forward()
+ minor = self.scan_yaml_directive_number(start_mark)
+ if self.peek() not in u'\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected a digit or ' ', but found %r"
+ % self.peek().encode('utf-8'),
+ self.get_mark())
+ return (major, minor)
+
+ def scan_yaml_directive_number(self, start_mark):
+ # See the specification for details.
+ ch = self.peek()
+ if not (u'0' <= ch <= u'9'):
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected a digit, but found %r" % ch.encode('utf-8'),
+ self.get_mark())
+ length = 0
+ while u'0' <= self.peek(length) <= u'9':
+ length += 1
+ value = int(self.prefix(length))
+ self.forward(length)
+ return value
+
+ def scan_tag_directive_value(self, start_mark):
+ # See the specification for details.
+ while self.peek() == u' ':
+ self.forward()
+ handle = self.scan_tag_directive_handle(start_mark)
+ while self.peek() == u' ':
+ self.forward()
+ prefix = self.scan_tag_directive_prefix(start_mark)
+ return (handle, prefix)
+
+ def scan_tag_directive_handle(self, start_mark):
+ # See the specification for details.
+ value = self.scan_tag_handle('directive', start_mark)
+ ch = self.peek()
+ if ch != u' ':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected ' ', but found %r" % ch.encode('utf-8'),
+ self.get_mark())
+ return value
+
+ def scan_tag_directive_prefix(self, start_mark):
+ # See the specification for details.
+ value = self.scan_tag_uri('directive', start_mark)
+ ch = self.peek()
+ if ch not in u'\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected ' ', but found %r" % ch.encode('utf-8'),
+ self.get_mark())
+ return value
+
+ def scan_directive_ignored_line(self, start_mark):
+ # See the specification for details.
+ while self.peek() == u' ':
+ self.forward()
+ if self.peek() == u'#':
+ while self.peek() not in u'\0\r\n\x85\u2028\u2029':
+ self.forward()
+ ch = self.peek()
+ if ch not in u'\0\r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected a comment or a line break, but found %r"
+ % ch.encode('utf-8'), self.get_mark())
+ self.scan_line_break()
+
+ def scan_anchor(self, TokenClass):
+ # The specification does not restrict characters for anchors and
+ # aliases. This may lead to problems, for instance, the document:
+ # [ *alias, value ]
+ # can be interpreted in two ways, as
+ # [ "value" ]
+ # and
+ # [ *alias , "value" ]
+ # Therefore we restrict aliases to numbers and ASCII letters.
+ start_mark = self.get_mark()
+ indicator = self.peek()
+ if indicator == u'*':
+ name = 'alias'
+ else:
+ name = 'anchor'
+ self.forward()
+ length = 0
+ ch = self.peek(length)
+ while u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \
+ or ch in u'-_':
+ length += 1
+ ch = self.peek(length)
+ if not length:
+ raise ScannerError("while scanning an %s" % name, start_mark,
+ "expected alphabetic or numeric character, but found %r"
+ % ch.encode('utf-8'), self.get_mark())
+ value = self.prefix(length)
+ self.forward(length)
+ ch = self.peek()
+ if ch not in u'\0 \t\r\n\x85\u2028\u2029?:,]}%@`':
+ raise ScannerError("while scanning an %s" % name, start_mark,
+ "expected alphabetic or numeric character, but found %r"
+ % ch.encode('utf-8'), self.get_mark())
+ end_mark = self.get_mark()
+ return TokenClass(value, start_mark, end_mark)
+
+ def scan_tag(self):
+ # See the specification for details.
+ start_mark = self.get_mark()
+ ch = self.peek(1)
+ if ch == u'<':
+ handle = None
+ self.forward(2)
+ suffix = self.scan_tag_uri('tag', start_mark)
+ if self.peek() != u'>':
+ raise ScannerError("while parsing a tag", start_mark,
+ "expected '>', but found %r" % self.peek().encode('utf-8'),
+ self.get_mark())
+ self.forward()
+ elif ch in u'\0 \t\r\n\x85\u2028\u2029':
+ handle = None
+ suffix = u'!'
+ self.forward()
+ else:
+ length = 1
+ use_handle = False
+ while ch not in u'\0 \r\n\x85\u2028\u2029':
+ if ch == u'!':
+ use_handle = True
+ break
+ length += 1
+ ch = self.peek(length)
+ handle = u'!'
+ if use_handle:
+ handle = self.scan_tag_handle('tag', start_mark)
+ else:
+ handle = u'!'
+ self.forward()
+ suffix = self.scan_tag_uri('tag', start_mark)
+ ch = self.peek()
+ if ch not in u'\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a tag", start_mark,
+ "expected ' ', but found %r" % ch.encode('utf-8'),
+ self.get_mark())
+ value = (handle, suffix)
+ end_mark = self.get_mark()
+ return TagToken(value, start_mark, end_mark)
+
+ def scan_block_scalar(self, style):
+ # See the specification for details.
+
+ if style == '>':
+ folded = True
+ else:
+ folded = False
+
+ chunks = []
+ start_mark = self.get_mark()
+
+ # Scan the header.
+ self.forward()
+ chomping, increment = self.scan_block_scalar_indicators(start_mark)
+ self.scan_block_scalar_ignored_line(start_mark)
+
+ # Determine the indentation level and go to the first non-empty line.
+ min_indent = self.indent+1
+ if min_indent < 1:
+ min_indent = 1
+ if increment is None:
+ breaks, max_indent, end_mark = self.scan_block_scalar_indentation()
+ indent = max(min_indent, max_indent)
+ else:
+ indent = min_indent+increment-1
+ breaks, end_mark = self.scan_block_scalar_breaks(indent)
+ line_break = u''
+
+ # Scan the inner part of the block scalar.
+ while self.column == indent and self.peek() != u'\0':
+ chunks.extend(breaks)
+ leading_non_space = self.peek() not in u' \t'
+ length = 0
+ while self.peek(length) not in u'\0\r\n\x85\u2028\u2029':
+ length += 1
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ line_break = self.scan_line_break()
+ breaks, end_mark = self.scan_block_scalar_breaks(indent)
+ if self.column == indent and self.peek() != u'\0':
+
+ # Unfortunately, folding rules are ambiguous.
+ #
+ # This is the folding according to the specification:
+
+ if folded and line_break == u'\n' \
+ and leading_non_space and self.peek() not in u' \t':
+ if not breaks:
+ chunks.append(u' ')
+ else:
+ chunks.append(line_break)
+
+ # This is Clark Evans's interpretation (also in the spec
+ # examples):
+ #
+ #if folded and line_break == u'\n':
+ # if not breaks:
+ # if self.peek() not in ' \t':
+ # chunks.append(u' ')
+ # else:
+ # chunks.append(line_break)
+ #else:
+ # chunks.append(line_break)
+ else:
+ break
+
+ # Chomp the tail.
+ if chomping is not False:
+ chunks.append(line_break)
+ if chomping is True:
+ chunks.extend(breaks)
+
+ # We are done.
+ return ScalarToken(u''.join(chunks), False, start_mark, end_mark,
+ style)
+
+ def scan_block_scalar_indicators(self, start_mark):
+ # See the specification for details.
+ chomping = None
+ increment = None
+ ch = self.peek()
+ if ch in u'+-':
+ if ch == '+':
+ chomping = True
+ else:
+ chomping = False
+ self.forward()
+ ch = self.peek()
+ if ch in u'0123456789':
+ increment = int(ch)
+ if increment == 0:
+ raise ScannerError("while scanning a block scalar", start_mark,
+ "expected indentation indicator in the range 1-9, but found 0",
+ self.get_mark())
+ self.forward()
+ elif ch in u'0123456789':
+ increment = int(ch)
+ if increment == 0:
+ raise ScannerError("while scanning a block scalar", start_mark,
+ "expected indentation indicator in the range 1-9, but found 0",
+ self.get_mark())
+ self.forward()
+ ch = self.peek()
+ if ch in u'+-':
+ if ch == '+':
+ chomping = True
+ else:
+ chomping = False
+ self.forward()
+ ch = self.peek()
+ if ch not in u'\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a block scalar", start_mark,
+ "expected chomping or indentation indicators, but found %r"
+ % ch.encode('utf-8'), self.get_mark())
+ return chomping, increment
+
+ def scan_block_scalar_ignored_line(self, start_mark):
+ # See the specification for details.
+ while self.peek() == u' ':
+ self.forward()
+ if self.peek() == u'#':
+ while self.peek() not in u'\0\r\n\x85\u2028\u2029':
+ self.forward()
+ ch = self.peek()
+ if ch not in u'\0\r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a block scalar", start_mark,
+ "expected a comment or a line break, but found %r"
+ % ch.encode('utf-8'), self.get_mark())
+ self.scan_line_break()
+
+ def scan_block_scalar_indentation(self):
+ # See the specification for details.
+ chunks = []
+ max_indent = 0
+ end_mark = self.get_mark()
+ while self.peek() in u' \r\n\x85\u2028\u2029':
+ if self.peek() != u' ':
+ chunks.append(self.scan_line_break())
+ end_mark = self.get_mark()
+ else:
+ self.forward()
+ if self.column > max_indent:
+ max_indent = self.column
+ return chunks, max_indent, end_mark
+
+ def scan_block_scalar_breaks(self, indent):
+ # See the specification for details.
+ chunks = []
+ end_mark = self.get_mark()
+ while self.column < indent and self.peek() == u' ':
+ self.forward()
+ while self.peek() in u'\r\n\x85\u2028\u2029':
+ chunks.append(self.scan_line_break())
+ end_mark = self.get_mark()
+ while self.column < indent and self.peek() == u' ':
+ self.forward()
+ return chunks, end_mark
+
+ def scan_flow_scalar(self, style):
+ # See the specification for details.
+ # Note that we loose indentation rules for quoted scalars. Quoted
+ # scalars don't need to adhere indentation because " and ' clearly
+ # mark the beginning and the end of them. Therefore we are less
+ # restrictive then the specification requires. We only need to check
+ # that document separators are not included in scalars.
+ if style == '"':
+ double = True
+ else:
+ double = False
+ chunks = []
+ start_mark = self.get_mark()
+ quote = self.peek()
+ self.forward()
+ chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark))
+ while self.peek() != quote:
+ chunks.extend(self.scan_flow_scalar_spaces(double, start_mark))
+ chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark))
+ self.forward()
+ end_mark = self.get_mark()
+ return ScalarToken(u''.join(chunks), False, start_mark, end_mark,
+ style)
+
+ ESCAPE_REPLACEMENTS = {
+ u'0': u'\0',
+ u'a': u'\x07',
+ u'b': u'\x08',
+ u't': u'\x09',
+ u'\t': u'\x09',
+ u'n': u'\x0A',
+ u'v': u'\x0B',
+ u'f': u'\x0C',
+ u'r': u'\x0D',
+ u'e': u'\x1B',
+ u' ': u'\x20',
+ u'\"': u'\"',
+ u'\\': u'\\',
+ u'/': u'/',
+ u'N': u'\x85',
+ u'_': u'\xA0',
+ u'L': u'\u2028',
+ u'P': u'\u2029',
+ }
+
+ ESCAPE_CODES = {
+ u'x': 2,
+ u'u': 4,
+ u'U': 8,
+ }
+
+ def scan_flow_scalar_non_spaces(self, double, start_mark):
+ # See the specification for details.
+ chunks = []
+ while True:
+ length = 0
+ while self.peek(length) not in u'\'\"\\\0 \t\r\n\x85\u2028\u2029':
+ length += 1
+ if length:
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ ch = self.peek()
+ if not double and ch == u'\'' and self.peek(1) == u'\'':
+ chunks.append(u'\'')
+ self.forward(2)
+ elif (double and ch == u'\'') or (not double and ch in u'\"\\'):
+ chunks.append(ch)
+ self.forward()
+ elif double and ch == u'\\':
+ self.forward()
+ ch = self.peek()
+ if ch in self.ESCAPE_REPLACEMENTS:
+ chunks.append(self.ESCAPE_REPLACEMENTS[ch])
+ self.forward()
+ elif ch in self.ESCAPE_CODES:
+ length = self.ESCAPE_CODES[ch]
+ self.forward()
+ for k in range(length):
+ if self.peek(k) not in u'0123456789ABCDEFabcdef':
+ raise ScannerError("while scanning a double-quoted scalar", start_mark,
+ "expected escape sequence of %d hexdecimal numbers, but found %r" %
+ (length, self.peek(k).encode('utf-8')), self.get_mark())
+ code = int(self.prefix(length), 16)
+ chunks.append(unichr(code))
+ self.forward(length)
+ elif ch in u'\r\n\x85\u2028\u2029':
+ self.scan_line_break()
+ chunks.extend(self.scan_flow_scalar_breaks(double, start_mark))
+ else:
+ raise ScannerError("while scanning a double-quoted scalar", start_mark,
+ "found unknown escape character %r" % ch.encode('utf-8'), self.get_mark())
+ else:
+ return chunks
+
+ def scan_flow_scalar_spaces(self, double, start_mark):
+ # See the specification for details.
+ chunks = []
+ length = 0
+ while self.peek(length) in u' \t':
+ length += 1
+ whitespaces = self.prefix(length)
+ self.forward(length)
+ ch = self.peek()
+ if ch == u'\0':
+ raise ScannerError("while scanning a quoted scalar", start_mark,
+ "found unexpected end of stream", self.get_mark())
+ elif ch in u'\r\n\x85\u2028\u2029':
+ line_break = self.scan_line_break()
+ breaks = self.scan_flow_scalar_breaks(double, start_mark)
+ if line_break != u'\n':
+ chunks.append(line_break)
+ elif not breaks:
+ chunks.append(u' ')
+ chunks.extend(breaks)
+ else:
+ chunks.append(whitespaces)
+ return chunks
+
+ def scan_flow_scalar_breaks(self, double, start_mark):
+ # See the specification for details.
+ chunks = []
+ while True:
+ # Instead of checking indentation, we check for document
+ # separators.
+ prefix = self.prefix(3)
+ if (prefix == u'---' or prefix == u'...') \
+ and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a quoted scalar", start_mark,
+ "found unexpected document separator", self.get_mark())
+ while self.peek() in u' \t':
+ self.forward()
+ if self.peek() in u'\r\n\x85\u2028\u2029':
+ chunks.append(self.scan_line_break())
+ else:
+ return chunks
+
+ def scan_plain(self):
+ # See the specification for details.
+ # We add an additional restriction for the flow context:
+ # plain scalars in the flow context cannot contain ',' or '?'.
+ # We also keep track of the `allow_simple_key` flag here.
+ # Indentation rules are loosed for the flow context.
+ chunks = []
+ start_mark = self.get_mark()
+ end_mark = start_mark
+ indent = self.indent+1
+ # We allow zero indentation for scalars, but then we need to check for
+ # document separators at the beginning of the line.
+ #if indent == 0:
+ # indent = 1
+ spaces = []
+ while True:
+ length = 0
+ if self.peek() == u'#':
+ break
+ while True:
+ ch = self.peek(length)
+ if ch in u'\0 \t\r\n\x85\u2028\u2029' \
+ or (ch == u':' and
+ self.peek(length+1) in u'\0 \t\r\n\x85\u2028\u2029'
+ + (u',[]{}' if self.flow_level else u''))\
+ or (self.flow_level and ch in u',?[]{}'):
+ break
+ length += 1
+ if length == 0:
+ break
+ self.allow_simple_key = False
+ chunks.extend(spaces)
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ end_mark = self.get_mark()
+ spaces = self.scan_plain_spaces(indent, start_mark)
+ if not spaces or self.peek() == u'#' \
+ or (not self.flow_level and self.column < indent):
+ break
+ return ScalarToken(u''.join(chunks), True, start_mark, end_mark)
+
+ def scan_plain_spaces(self, indent, start_mark):
+ # See the specification for details.
+ # The specification is really confusing about tabs in plain scalars.
+ # We just forbid them completely. Do not use tabs in YAML!
+ chunks = []
+ length = 0
+ while self.peek(length) in u' ':
+ length += 1
+ whitespaces = self.prefix(length)
+ self.forward(length)
+ ch = self.peek()
+ if ch in u'\r\n\x85\u2028\u2029':
+ line_break = self.scan_line_break()
+ self.allow_simple_key = True
+ prefix = self.prefix(3)
+ if (prefix == u'---' or prefix == u'...') \
+ and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+ return
+ breaks = []
+ while self.peek() in u' \r\n\x85\u2028\u2029':
+ if self.peek() == ' ':
+ self.forward()
+ else:
+ breaks.append(self.scan_line_break())
+ prefix = self.prefix(3)
+ if (prefix == u'---' or prefix == u'...') \
+ and self.peek(3) in u'\0 \t\r\n\x85\u2028\u2029':
+ return
+ if line_break != u'\n':
+ chunks.append(line_break)
+ elif not breaks:
+ chunks.append(u' ')
+ chunks.extend(breaks)
+ elif whitespaces:
+ chunks.append(whitespaces)
+ return chunks
+
+ def scan_tag_handle(self, name, start_mark):
+ # See the specification for details.
+ # For some strange reasons, the specification does not allow '_' in
+ # tag handles. I have allowed it anyway.
+ ch = self.peek()
+ if ch != u'!':
+ raise ScannerError("while scanning a %s" % name, start_mark,
+ "expected '!', but found %r" % ch.encode('utf-8'),
+ self.get_mark())
+ length = 1
+ ch = self.peek(length)
+ if ch != u' ':
+ while u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \
+ or ch in u'-_':
+ length += 1
+ ch = self.peek(length)
+ if ch != u'!':
+ self.forward(length)
+ raise ScannerError("while scanning a %s" % name, start_mark,
+ "expected '!', but found %r" % ch.encode('utf-8'),
+ self.get_mark())
+ length += 1
+ value = self.prefix(length)
+ self.forward(length)
+ return value
+
+ def scan_tag_uri(self, name, start_mark):
+ # See the specification for details.
+ # Note: we do not check if URI is well-formed.
+ chunks = []
+ length = 0
+ ch = self.peek(length)
+ while u'0' <= ch <= u'9' or u'A' <= ch <= u'Z' or u'a' <= ch <= u'z' \
+ or ch in u'-;/?:@&=+$,_.!~*\'()[]%':
+ if ch == u'%':
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ length = 0
+ chunks.append(self.scan_uri_escapes(name, start_mark))
+ else:
+ length += 1
+ ch = self.peek(length)
+ if length:
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ length = 0
+ if not chunks:
+ raise ScannerError("while parsing a %s" % name, start_mark,
+ "expected URI, but found %r" % ch.encode('utf-8'),
+ self.get_mark())
+ return u''.join(chunks)
+
+ def scan_uri_escapes(self, name, start_mark):
+ # See the specification for details.
+ bytes = []
+ mark = self.get_mark()
+ while self.peek() == u'%':
+ self.forward()
+ for k in range(2):
+ if self.peek(k) not in u'0123456789ABCDEFabcdef':
+ raise ScannerError("while scanning a %s" % name, start_mark,
+ "expected URI escape sequence of 2 hexdecimal numbers, but found %r" %
+ (self.peek(k).encode('utf-8')), self.get_mark())
+ bytes.append(chr(int(self.prefix(2), 16)))
+ self.forward(2)
+ try:
+ value = unicode(''.join(bytes), 'utf-8')
+ except UnicodeDecodeError, exc:
+ raise ScannerError("while scanning a %s" % name, start_mark, str(exc), mark)
+ return value
+
+ def scan_line_break(self):
+ # Transforms:
+ # '\r\n' : '\n'
+ # '\r' : '\n'
+ # '\n' : '\n'
+ # '\x85' : '\n'
+ # '\u2028' : '\u2028'
+ # '\u2029 : '\u2029'
+ # default : ''
+ ch = self.peek()
+ if ch in u'\r\n\x85':
+ if self.prefix(2) == u'\r\n':
+ self.forward(2)
+ else:
+ self.forward()
+ return u'\n'
+ elif ch in u'\u2028\u2029':
+ self.forward()
+ return ch
+ return u''
diff --git a/yaml/lib/yaml/serializer.py b/yaml/lib/yaml/serializer.py
new file mode 100644
index 0000000000..0bf1e96dc1
--- /dev/null
+++ b/yaml/lib/yaml/serializer.py
@@ -0,0 +1,111 @@
+
+__all__ = ['Serializer', 'SerializerError']
+
+from error import YAMLError
+from events import *
+from nodes import *
+
+class SerializerError(YAMLError):
+ pass
+
+class Serializer(object):
+
+ ANCHOR_TEMPLATE = u'id%03d'
+
+ def __init__(self, encoding=None,
+ explicit_start=None, explicit_end=None, version=None, tags=None):
+ self.use_encoding = encoding
+ self.use_explicit_start = explicit_start
+ self.use_explicit_end = explicit_end
+ self.use_version = version
+ self.use_tags = tags
+ self.serialized_nodes = {}
+ self.anchors = {}
+ self.last_anchor_id = 0
+ self.closed = None
+
+ def open(self):
+ if self.closed is None:
+ self.emit(StreamStartEvent(encoding=self.use_encoding))
+ self.closed = False
+ elif self.closed:
+ raise SerializerError("serializer is closed")
+ else:
+ raise SerializerError("serializer is already opened")
+
+ def close(self):
+ if self.closed is None:
+ raise SerializerError("serializer is not opened")
+ elif not self.closed:
+ self.emit(StreamEndEvent())
+ self.closed = True
+
+ #def __del__(self):
+ # self.close()
+
+ def serialize(self, node):
+ if self.closed is None:
+ raise SerializerError("serializer is not opened")
+ elif self.closed:
+ raise SerializerError("serializer is closed")
+ self.emit(DocumentStartEvent(explicit=self.use_explicit_start,
+ version=self.use_version, tags=self.use_tags))
+ self.anchor_node(node)
+ self.serialize_node(node, None, None)
+ self.emit(DocumentEndEvent(explicit=self.use_explicit_end))
+ self.serialized_nodes = {}
+ self.anchors = {}
+ self.last_anchor_id = 0
+
+ def anchor_node(self, node):
+ if node in self.anchors:
+ if self.anchors[node] is None:
+ self.anchors[node] = self.generate_anchor(node)
+ else:
+ self.anchors[node] = None
+ if isinstance(node, SequenceNode):
+ for item in node.value:
+ self.anchor_node(item)
+ elif isinstance(node, MappingNode):
+ for key, value in node.value:
+ self.anchor_node(key)
+ self.anchor_node(value)
+
+ def generate_anchor(self, node):
+ self.last_anchor_id += 1
+ return self.ANCHOR_TEMPLATE % self.last_anchor_id
+
+ def serialize_node(self, node, parent, index):
+ alias = self.anchors[node]
+ if node in self.serialized_nodes:
+ self.emit(AliasEvent(alias))
+ else:
+ self.serialized_nodes[node] = True
+ self.descend_resolver(parent, index)
+ if isinstance(node, ScalarNode):
+ detected_tag = self.resolve(ScalarNode, node.value, (True, False))
+ default_tag = self.resolve(ScalarNode, node.value, (False, True))
+ implicit = (node.tag == detected_tag), (node.tag == default_tag)
+ self.emit(ScalarEvent(alias, node.tag, implicit, node.value,
+ style=node.style))
+ elif isinstance(node, SequenceNode):
+ implicit = (node.tag
+ == self.resolve(SequenceNode, node.value, True))
+ self.emit(SequenceStartEvent(alias, node.tag, implicit,
+ flow_style=node.flow_style))
+ index = 0
+ for item in node.value:
+ self.serialize_node(item, node, index)
+ index += 1
+ self.emit(SequenceEndEvent())
+ elif isinstance(node, MappingNode):
+ implicit = (node.tag
+ == self.resolve(MappingNode, node.value, True))
+ self.emit(MappingStartEvent(alias, node.tag, implicit,
+ flow_style=node.flow_style))
+ for key, value in node.value:
+ self.serialize_node(key, node, None)
+ self.serialize_node(value, node, key)
+ self.emit(MappingEndEvent())
+ self.ascend_resolver()
+
diff --git a/yaml/lib/yaml/tokens.py b/yaml/lib/yaml/tokens.py
new file mode 100644
index 0000000000..4d0b48a394
--- /dev/null
+++ b/yaml/lib/yaml/tokens.py
@@ -0,0 +1,104 @@
+
+class Token(object):
+ def __init__(self, start_mark, end_mark):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ def __repr__(self):
+ attributes = [key for key in self.__dict__
+ if not key.endswith('_mark')]
+ attributes.sort()
+ arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
+ for key in attributes])
+ return '%s(%s)' % (self.__class__.__name__, arguments)
+
+#class BOMToken(Token):
+# id = '<byte order mark>'
+
+class DirectiveToken(Token):
+ id = '<directive>'
+ def __init__(self, name, value, start_mark, end_mark):
+ self.name = name
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class DocumentStartToken(Token):
+ id = '<document start>'
+
+class DocumentEndToken(Token):
+ id = '<document end>'
+
+class StreamStartToken(Token):
+ id = '<stream start>'
+ def __init__(self, start_mark=None, end_mark=None,
+ encoding=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.encoding = encoding
+
+class StreamEndToken(Token):
+ id = '<stream end>'
+
+class BlockSequenceStartToken(Token):
+ id = '<block sequence start>'
+
+class BlockMappingStartToken(Token):
+ id = '<block mapping start>'
+
+class BlockEndToken(Token):
+ id = '<block end>'
+
+class FlowSequenceStartToken(Token):
+ id = '['
+
+class FlowMappingStartToken(Token):
+ id = '{'
+
+class FlowSequenceEndToken(Token):
+ id = ']'
+
+class FlowMappingEndToken(Token):
+ id = '}'
+
+class KeyToken(Token):
+ id = '?'
+
+class ValueToken(Token):
+ id = ':'
+
+class BlockEntryToken(Token):
+ id = '-'
+
+class FlowEntryToken(Token):
+ id = ','
+
+class AliasToken(Token):
+ id = '<alias>'
+ def __init__(self, value, start_mark, end_mark):
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class AnchorToken(Token):
+ id = '<anchor>'
+ def __init__(self, value, start_mark, end_mark):
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class TagToken(Token):
+ id = '<tag>'
+ def __init__(self, value, start_mark, end_mark):
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class ScalarToken(Token):
+ id = '<scalar>'
+ def __init__(self, value, plain, start_mark, end_mark, style=None):
+ self.value = value
+ self.plain = plain
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.style = style
+
diff --git a/yaml/lib3/yaml/__init__.py b/yaml/lib3/yaml/__init__.py
new file mode 100644
index 0000000000..13d687c501
--- /dev/null
+++ b/yaml/lib3/yaml/__init__.py
@@ -0,0 +1,427 @@
+
+from .error import *
+
+from .tokens import *
+from .events import *
+from .nodes import *
+
+from .loader import *
+from .dumper import *
+
+__version__ = '5.3.1'
+try:
+ from .cyaml import *
+ __with_libyaml__ = True
+except ImportError:
+ __with_libyaml__ = False
+
+import io
+
+#------------------------------------------------------------------------------
+# Warnings control
+#------------------------------------------------------------------------------
+
+# 'Global' warnings state:
+_warnings_enabled = {
+ 'YAMLLoadWarning': True,
+}
+
+# Get or set global warnings' state
+def warnings(settings=None):
+ if settings is None:
+ return _warnings_enabled
+
+ if type(settings) is dict:
+ for key in settings:
+ if key in _warnings_enabled:
+ _warnings_enabled[key] = settings[key]
+
+# Warn when load() is called without Loader=...
+class YAMLLoadWarning(RuntimeWarning):
+ pass
+
+def load_warning(method):
+ if _warnings_enabled['YAMLLoadWarning'] is False:
+ return
+
+ import warnings
+
+ message = (
+ "calling yaml.%s() without Loader=... is deprecated, as the "
+ "default Loader is unsafe. Please read "
+ "https://msg.pyyaml.org/load for full details."
+ ) % method
+
+ warnings.warn(message, YAMLLoadWarning, stacklevel=3)
+
+#------------------------------------------------------------------------------
+def scan(stream, Loader=Loader):
+ """
+ Scan a YAML stream and produce scanning tokens.
+ """
+ loader = Loader(stream)
+ try:
+ while loader.check_token():
+ yield loader.get_token()
+ finally:
+ loader.dispose()
+
+def parse(stream, Loader=Loader):
+ """
+ Parse a YAML stream and produce parsing events.
+ """
+ loader = Loader(stream)
+ try:
+ while loader.check_event():
+ yield loader.get_event()
+ finally:
+ loader.dispose()
+
+def compose(stream, Loader=Loader):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding representation tree.
+ """
+ loader = Loader(stream)
+ try:
+ return loader.get_single_node()
+ finally:
+ loader.dispose()
+
+def compose_all(stream, Loader=Loader):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding representation trees.
+ """
+ loader = Loader(stream)
+ try:
+ while loader.check_node():
+ yield loader.get_node()
+ finally:
+ loader.dispose()
+
+def load(stream, Loader=None):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding Python object.
+ """
+ if Loader is None:
+ load_warning('load')
+ Loader = FullLoader
+
+ loader = Loader(stream)
+ try:
+ return loader.get_single_data()
+ finally:
+ loader.dispose()
+
+def load_all(stream, Loader=None):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding Python objects.
+ """
+ if Loader is None:
+ load_warning('load_all')
+ Loader = FullLoader
+
+ loader = Loader(stream)
+ try:
+ while loader.check_data():
+ yield loader.get_data()
+ finally:
+ loader.dispose()
+
+def full_load(stream):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding Python object.
+
+ Resolve all tags except those known to be
+ unsafe on untrusted input.
+ """
+ return load(stream, FullLoader)
+
+def full_load_all(stream):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding Python objects.
+
+ Resolve all tags except those known to be
+ unsafe on untrusted input.
+ """
+ return load_all(stream, FullLoader)
+
+def safe_load(stream):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding Python object.
+
+ Resolve only basic YAML tags. This is known
+ to be safe for untrusted input.
+ """
+ return load(stream, SafeLoader)
+
+def safe_load_all(stream):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding Python objects.
+
+ Resolve only basic YAML tags. This is known
+ to be safe for untrusted input.
+ """
+ return load_all(stream, SafeLoader)
+
+def unsafe_load(stream):
+ """
+ Parse the first YAML document in a stream
+ and produce the corresponding Python object.
+
+ Resolve all tags, even those known to be
+ unsafe on untrusted input.
+ """
+ return load(stream, UnsafeLoader)
+
+def unsafe_load_all(stream):
+ """
+ Parse all YAML documents in a stream
+ and produce corresponding Python objects.
+
+ Resolve all tags, even those known to be
+ unsafe on untrusted input.
+ """
+ return load_all(stream, UnsafeLoader)
+
+def emit(events, stream=None, Dumper=Dumper,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None):
+ """
+ Emit YAML parsing events into a stream.
+ If stream is None, return the produced string instead.
+ """
+ getvalue = None
+ if stream is None:
+ stream = io.StringIO()
+ getvalue = stream.getvalue
+ dumper = Dumper(stream, canonical=canonical, indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break)
+ try:
+ for event in events:
+ dumper.emit(event)
+ finally:
+ dumper.dispose()
+ if getvalue:
+ return getvalue()
+
+def serialize_all(nodes, stream=None, Dumper=Dumper,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None):
+ """
+ Serialize a sequence of representation trees into a YAML stream.
+ If stream is None, return the produced string instead.
+ """
+ getvalue = None
+ if stream is None:
+ if encoding is None:
+ stream = io.StringIO()
+ else:
+ stream = io.BytesIO()
+ getvalue = stream.getvalue
+ dumper = Dumper(stream, canonical=canonical, indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break,
+ encoding=encoding, version=version, tags=tags,
+ explicit_start=explicit_start, explicit_end=explicit_end)
+ try:
+ dumper.open()
+ for node in nodes:
+ dumper.serialize(node)
+ dumper.close()
+ finally:
+ dumper.dispose()
+ if getvalue:
+ return getvalue()
+
+def serialize(node, stream=None, Dumper=Dumper, **kwds):
+ """
+ Serialize a representation tree into a YAML stream.
+ If stream is None, return the produced string instead.
+ """
+ return serialize_all([node], stream, Dumper=Dumper, **kwds)
+
+def dump_all(documents, stream=None, Dumper=Dumper,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ """
+ Serialize a sequence of Python objects into a YAML stream.
+ If stream is None, return the produced string instead.
+ """
+ getvalue = None
+ if stream is None:
+ if encoding is None:
+ stream = io.StringIO()
+ else:
+ stream = io.BytesIO()
+ getvalue = stream.getvalue
+ dumper = Dumper(stream, default_style=default_style,
+ default_flow_style=default_flow_style,
+ canonical=canonical, indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break,
+ encoding=encoding, version=version, tags=tags,
+ explicit_start=explicit_start, explicit_end=explicit_end, sort_keys=sort_keys)
+ try:
+ dumper.open()
+ for data in documents:
+ dumper.represent(data)
+ dumper.close()
+ finally:
+ dumper.dispose()
+ if getvalue:
+ return getvalue()
+
+def dump(data, stream=None, Dumper=Dumper, **kwds):
+ """
+ Serialize a Python object into a YAML stream.
+ If stream is None, return the produced string instead.
+ """
+ return dump_all([data], stream, Dumper=Dumper, **kwds)
+
+def safe_dump_all(documents, stream=None, **kwds):
+ """
+ Serialize a sequence of Python objects into a YAML stream.
+ Produce only basic YAML tags.
+ If stream is None, return the produced string instead.
+ """
+ return dump_all(documents, stream, Dumper=SafeDumper, **kwds)
+
+def safe_dump(data, stream=None, **kwds):
+ """
+ Serialize a Python object into a YAML stream.
+ Produce only basic YAML tags.
+ If stream is None, return the produced string instead.
+ """
+ return dump_all([data], stream, Dumper=SafeDumper, **kwds)
+
+def add_implicit_resolver(tag, regexp, first=None,
+ Loader=None, Dumper=Dumper):
+ """
+ Add an implicit scalar detector.
+ If an implicit scalar value matches the given regexp,
+ the corresponding tag is assigned to the scalar.
+ first is a sequence of possible initial characters or None.
+ """
+ if Loader is None:
+ loader.Loader.add_implicit_resolver(tag, regexp, first)
+ loader.FullLoader.add_implicit_resolver(tag, regexp, first)
+ loader.UnsafeLoader.add_implicit_resolver(tag, regexp, first)
+ else:
+ Loader.add_implicit_resolver(tag, regexp, first)
+ Dumper.add_implicit_resolver(tag, regexp, first)
+
+def add_path_resolver(tag, path, kind=None, Loader=None, Dumper=Dumper):
+ """
+ Add a path based resolver for the given tag.
+ A path is a list of keys that forms a path
+ to a node in the representation tree.
+ Keys can be string values, integers, or None.
+ """
+ if Loader is None:
+ loader.Loader.add_path_resolver(tag, path, kind)
+ loader.FullLoader.add_path_resolver(tag, path, kind)
+ loader.UnsafeLoader.add_path_resolver(tag, path, kind)
+ else:
+ Loader.add_path_resolver(tag, path, kind)
+ Dumper.add_path_resolver(tag, path, kind)
+
+def add_constructor(tag, constructor, Loader=None):
+ """
+ Add a constructor for the given tag.
+ Constructor is a function that accepts a Loader instance
+ and a node object and produces the corresponding Python object.
+ """
+ if Loader is None:
+ loader.Loader.add_constructor(tag, constructor)
+ loader.FullLoader.add_constructor(tag, constructor)
+ loader.UnsafeLoader.add_constructor(tag, constructor)
+ else:
+ Loader.add_constructor(tag, constructor)
+
+def add_multi_constructor(tag_prefix, multi_constructor, Loader=None):
+ """
+ Add a multi-constructor for the given tag prefix.
+ Multi-constructor is called for a node if its tag starts with tag_prefix.
+ Multi-constructor accepts a Loader instance, a tag suffix,
+ and a node object and produces the corresponding Python object.
+ """
+ if Loader is None:
+ loader.Loader.add_multi_constructor(tag_prefix, multi_constructor)
+ loader.FullLoader.add_multi_constructor(tag_prefix, multi_constructor)
+ loader.UnsafeLoader.add_multi_constructor(tag_prefix, multi_constructor)
+ else:
+ Loader.add_multi_constructor(tag_prefix, multi_constructor)
+
+def add_representer(data_type, representer, Dumper=Dumper):
+ """
+ Add a representer for the given type.
+ Representer is a function accepting a Dumper instance
+ and an instance of the given data type
+ and producing the corresponding representation node.
+ """
+ Dumper.add_representer(data_type, representer)
+
+def add_multi_representer(data_type, multi_representer, Dumper=Dumper):
+ """
+ Add a representer for the given type.
+ Multi-representer is a function accepting a Dumper instance
+ and an instance of the given data type or subtype
+ and producing the corresponding representation node.
+ """
+ Dumper.add_multi_representer(data_type, multi_representer)
+
+class YAMLObjectMetaclass(type):
+ """
+ The metaclass for YAMLObject.
+ """
+ def __init__(cls, name, bases, kwds):
+ super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds)
+ if 'yaml_tag' in kwds and kwds['yaml_tag'] is not None:
+ if isinstance(cls.yaml_loader, list):
+ for loader in cls.yaml_loader:
+ loader.add_constructor(cls.yaml_tag, cls.from_yaml)
+ else:
+ cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml)
+
+ cls.yaml_dumper.add_representer(cls, cls.to_yaml)
+
+class YAMLObject(metaclass=YAMLObjectMetaclass):
+ """
+ An object that can dump itself to a YAML stream
+ and load itself from a YAML stream.
+ """
+
+ __slots__ = () # no direct instantiation, so allow immutable subclasses
+
+ yaml_loader = [Loader, FullLoader, UnsafeLoader]
+ yaml_dumper = Dumper
+
+ yaml_tag = None
+ yaml_flow_style = None
+
+ @classmethod
+ def from_yaml(cls, loader, node):
+ """
+ Convert a representation node to a Python object.
+ """
+ return loader.construct_yaml_object(node, cls)
+
+ @classmethod
+ def to_yaml(cls, dumper, data):
+ """
+ Convert a Python object to a representation node.
+ """
+ return dumper.represent_yaml_object(cls.yaml_tag, data, cls,
+ flow_style=cls.yaml_flow_style)
+
diff --git a/yaml/lib3/yaml/composer.py b/yaml/lib3/yaml/composer.py
new file mode 100644
index 0000000000..6d15cb40e3
--- /dev/null
+++ b/yaml/lib3/yaml/composer.py
@@ -0,0 +1,139 @@
+
+__all__ = ['Composer', 'ComposerError']
+
+from .error import MarkedYAMLError
+from .events import *
+from .nodes import *
+
+class ComposerError(MarkedYAMLError):
+ pass
+
+class Composer:
+
+ def __init__(self):
+ self.anchors = {}
+
+ def check_node(self):
+ # Drop the STREAM-START event.
+ if self.check_event(StreamStartEvent):
+ self.get_event()
+
+ # If there are more documents available?
+ return not self.check_event(StreamEndEvent)
+
+ def get_node(self):
+ # Get the root node of the next document.
+ if not self.check_event(StreamEndEvent):
+ return self.compose_document()
+
+ def get_single_node(self):
+ # Drop the STREAM-START event.
+ self.get_event()
+
+ # Compose a document if the stream is not empty.
+ document = None
+ if not self.check_event(StreamEndEvent):
+ document = self.compose_document()
+
+ # Ensure that the stream contains no more documents.
+ if not self.check_event(StreamEndEvent):
+ event = self.get_event()
+ raise ComposerError("expected a single document in the stream",
+ document.start_mark, "but found another document",
+ event.start_mark)
+
+ # Drop the STREAM-END event.
+ self.get_event()
+
+ return document
+
+ def compose_document(self):
+ # Drop the DOCUMENT-START event.
+ self.get_event()
+
+ # Compose the root node.
+ node = self.compose_node(None, None)
+
+ # Drop the DOCUMENT-END event.
+ self.get_event()
+
+ self.anchors = {}
+ return node
+
+ def compose_node(self, parent, index):
+ if self.check_event(AliasEvent):
+ event = self.get_event()
+ anchor = event.anchor
+ if anchor not in self.anchors:
+ raise ComposerError(None, None, "found undefined alias %r"
+ % anchor, event.start_mark)
+ return self.anchors[anchor]
+ event = self.peek_event()
+ anchor = event.anchor
+ if anchor is not None:
+ if anchor in self.anchors:
+ raise ComposerError("found duplicate anchor %r; first occurrence"
+ % anchor, self.anchors[anchor].start_mark,
+ "second occurrence", event.start_mark)
+ self.descend_resolver(parent, index)
+ if self.check_event(ScalarEvent):
+ node = self.compose_scalar_node(anchor)
+ elif self.check_event(SequenceStartEvent):
+ node = self.compose_sequence_node(anchor)
+ elif self.check_event(MappingStartEvent):
+ node = self.compose_mapping_node(anchor)
+ self.ascend_resolver()
+ return node
+
+ def compose_scalar_node(self, anchor):
+ event = self.get_event()
+ tag = event.tag
+ if tag is None or tag == '!':
+ tag = self.resolve(ScalarNode, event.value, event.implicit)
+ node = ScalarNode(tag, event.value,
+ event.start_mark, event.end_mark, style=event.style)
+ if anchor is not None:
+ self.anchors[anchor] = node
+ return node
+
+ def compose_sequence_node(self, anchor):
+ start_event = self.get_event()
+ tag = start_event.tag
+ if tag is None or tag == '!':
+ tag = self.resolve(SequenceNode, None, start_event.implicit)
+ node = SequenceNode(tag, [],
+ start_event.start_mark, None,
+ flow_style=start_event.flow_style)
+ if anchor is not None:
+ self.anchors[anchor] = node
+ index = 0
+ while not self.check_event(SequenceEndEvent):
+ node.value.append(self.compose_node(node, index))
+ index += 1
+ end_event = self.get_event()
+ node.end_mark = end_event.end_mark
+ return node
+
+ def compose_mapping_node(self, anchor):
+ start_event = self.get_event()
+ tag = start_event.tag
+ if tag is None or tag == '!':
+ tag = self.resolve(MappingNode, None, start_event.implicit)
+ node = MappingNode(tag, [],
+ start_event.start_mark, None,
+ flow_style=start_event.flow_style)
+ if anchor is not None:
+ self.anchors[anchor] = node
+ while not self.check_event(MappingEndEvent):
+ #key_event = self.peek_event()
+ item_key = self.compose_node(node, None)
+ #if item_key in node.value:
+ # raise ComposerError("while composing a mapping", start_event.start_mark,
+ # "found duplicate key", key_event.start_mark)
+ item_value = self.compose_node(node, item_key)
+ #node.value[item_key] = item_value
+ node.value.append((item_key, item_value))
+ end_event = self.get_event()
+ node.end_mark = end_event.end_mark
+ return node
+
diff --git a/yaml/lib3/yaml/constructor.py b/yaml/lib3/yaml/constructor.py
new file mode 100644
index 0000000000..1948b125c2
--- /dev/null
+++ b/yaml/lib3/yaml/constructor.py
@@ -0,0 +1,748 @@
+
+__all__ = [
+ 'BaseConstructor',
+ 'SafeConstructor',
+ 'FullConstructor',
+ 'UnsafeConstructor',
+ 'Constructor',
+ 'ConstructorError'
+]
+
+from .error import *
+from .nodes import *
+
+import collections.abc, datetime, base64, binascii, re, sys, types
+
+class ConstructorError(MarkedYAMLError):
+ pass
+
+class BaseConstructor:
+
+ yaml_constructors = {}
+ yaml_multi_constructors = {}
+
+ def __init__(self):
+ self.constructed_objects = {}
+ self.recursive_objects = {}
+ self.state_generators = []
+ self.deep_construct = False
+
+ def check_data(self):
+ # If there are more documents available?
+ return self.check_node()
+
+ def check_state_key(self, key):
+ """Block special attributes/methods from being set in a newly created
+ object, to prevent user-controlled methods from being called during
+ deserialization"""
+ if self.get_state_keys_blacklist_regexp().match(key):
+ raise ConstructorError(None, None,
+ "blacklisted key '%s' in instance state found" % (key,), None)
+
+ def get_data(self):
+ # Construct and return the next document.
+ if self.check_node():
+ return self.construct_document(self.get_node())
+
+ def get_single_data(self):
+ # Ensure that the stream contains a single document and construct it.
+ node = self.get_single_node()
+ if node is not None:
+ return self.construct_document(node)
+ return None
+
+ def construct_document(self, node):
+ data = self.construct_object(node)
+ while self.state_generators:
+ state_generators = self.state_generators
+ self.state_generators = []
+ for generator in state_generators:
+ for dummy in generator:
+ pass
+ self.constructed_objects = {}
+ self.recursive_objects = {}
+ self.deep_construct = False
+ return data
+
+ def construct_object(self, node, deep=False):
+ if node in self.constructed_objects:
+ return self.constructed_objects[node]
+ if deep:
+ old_deep = self.deep_construct
+ self.deep_construct = True
+ if node in self.recursive_objects:
+ raise ConstructorError(None, None,
+ "found unconstructable recursive node", node.start_mark)
+ self.recursive_objects[node] = None
+ constructor = None
+ tag_suffix = None
+ if node.tag in self.yaml_constructors:
+ constructor = self.yaml_constructors[node.tag]
+ else:
+ for tag_prefix in self.yaml_multi_constructors:
+ if tag_prefix is not None and node.tag.startswith(tag_prefix):
+ tag_suffix = node.tag[len(tag_prefix):]
+ constructor = self.yaml_multi_constructors[tag_prefix]
+ break
+ else:
+ if None in self.yaml_multi_constructors:
+ tag_suffix = node.tag
+ constructor = self.yaml_multi_constructors[None]
+ elif None in self.yaml_constructors:
+ constructor = self.yaml_constructors[None]
+ elif isinstance(node, ScalarNode):
+ constructor = self.__class__.construct_scalar
+ elif isinstance(node, SequenceNode):
+ constructor = self.__class__.construct_sequence
+ elif isinstance(node, MappingNode):
+ constructor = self.__class__.construct_mapping
+ if tag_suffix is None:
+ data = constructor(self, node)
+ else:
+ data = constructor(self, tag_suffix, node)
+ if isinstance(data, types.GeneratorType):
+ generator = data
+ data = next(generator)
+ if self.deep_construct:
+ for dummy in generator:
+ pass
+ else:
+ self.state_generators.append(generator)
+ self.constructed_objects[node] = data
+ del self.recursive_objects[node]
+ if deep:
+ self.deep_construct = old_deep
+ return data
+
+ def construct_scalar(self, node):
+ if not isinstance(node, ScalarNode):
+ raise ConstructorError(None, None,
+ "expected a scalar node, but found %s" % node.id,
+ node.start_mark)
+ return node.value
+
+ def construct_sequence(self, node, deep=False):
+ if not isinstance(node, SequenceNode):
+ raise ConstructorError(None, None,
+ "expected a sequence node, but found %s" % node.id,
+ node.start_mark)
+ return [self.construct_object(child, deep=deep)
+ for child in node.value]
+
+ def construct_mapping(self, node, deep=False):
+ if not isinstance(node, MappingNode):
+ raise ConstructorError(None, None,
+ "expected a mapping node, but found %s" % node.id,
+ node.start_mark)
+ mapping = {}
+ for key_node, value_node in node.value:
+ key = self.construct_object(key_node, deep=deep)
+ if not isinstance(key, collections.abc.Hashable):
+ raise ConstructorError("while constructing a mapping", node.start_mark,
+ "found unhashable key", key_node.start_mark)
+ value = self.construct_object(value_node, deep=deep)
+ mapping[key] = value
+ return mapping
+
+ def construct_pairs(self, node, deep=False):
+ if not isinstance(node, MappingNode):
+ raise ConstructorError(None, None,
+ "expected a mapping node, but found %s" % node.id,
+ node.start_mark)
+ pairs = []
+ for key_node, value_node in node.value:
+ key = self.construct_object(key_node, deep=deep)
+ value = self.construct_object(value_node, deep=deep)
+ pairs.append((key, value))
+ return pairs
+
+ @classmethod
+ def add_constructor(cls, tag, constructor):
+ if not 'yaml_constructors' in cls.__dict__:
+ cls.yaml_constructors = cls.yaml_constructors.copy()
+ cls.yaml_constructors[tag] = constructor
+
+ @classmethod
+ def add_multi_constructor(cls, tag_prefix, multi_constructor):
+ if not 'yaml_multi_constructors' in cls.__dict__:
+ cls.yaml_multi_constructors = cls.yaml_multi_constructors.copy()
+ cls.yaml_multi_constructors[tag_prefix] = multi_constructor
+
+class SafeConstructor(BaseConstructor):
+
+ def construct_scalar(self, node):
+ if isinstance(node, MappingNode):
+ for key_node, value_node in node.value:
+ if key_node.tag == 'tag:yaml.org,2002:value':
+ return self.construct_scalar(value_node)
+ return super().construct_scalar(node)
+
+ def flatten_mapping(self, node):
+ merge = []
+ index = 0
+ while index < len(node.value):
+ key_node, value_node = node.value[index]
+ if key_node.tag == 'tag:yaml.org,2002:merge':
+ del node.value[index]
+ if isinstance(value_node, MappingNode):
+ self.flatten_mapping(value_node)
+ merge.extend(value_node.value)
+ elif isinstance(value_node, SequenceNode):
+ submerge = []
+ for subnode in value_node.value:
+ if not isinstance(subnode, MappingNode):
+ raise ConstructorError("while constructing a mapping",
+ node.start_mark,
+ "expected a mapping for merging, but found %s"
+ % subnode.id, subnode.start_mark)
+ self.flatten_mapping(subnode)
+ submerge.append(subnode.value)
+ submerge.reverse()
+ for value in submerge:
+ merge.extend(value)
+ else:
+ raise ConstructorError("while constructing a mapping", node.start_mark,
+ "expected a mapping or list of mappings for merging, but found %s"
+ % value_node.id, value_node.start_mark)
+ elif key_node.tag == 'tag:yaml.org,2002:value':
+ key_node.tag = 'tag:yaml.org,2002:str'
+ index += 1
+ else:
+ index += 1
+ if merge:
+ node.value = merge + node.value
+
+ def construct_mapping(self, node, deep=False):
+ if isinstance(node, MappingNode):
+ self.flatten_mapping(node)
+ return super().construct_mapping(node, deep=deep)
+
+ def construct_yaml_null(self, node):
+ self.construct_scalar(node)
+ return None
+
+ bool_values = {
+ 'yes': True,
+ 'no': False,
+ 'true': True,
+ 'false': False,
+ 'on': True,
+ 'off': False,
+ }
+
+ def construct_yaml_bool(self, node):
+ value = self.construct_scalar(node)
+ return self.bool_values[value.lower()]
+
+ def construct_yaml_int(self, node):
+ value = self.construct_scalar(node)
+ value = value.replace('_', '')
+ sign = +1
+ if value[0] == '-':
+ sign = -1
+ if value[0] in '+-':
+ value = value[1:]
+ if value == '0':
+ return 0
+ elif value.startswith('0b'):
+ return sign*int(value[2:], 2)
+ elif value.startswith('0x'):
+ return sign*int(value[2:], 16)
+ elif value[0] == '0':
+ return sign*int(value, 8)
+ elif ':' in value:
+ digits = [int(part) for part in value.split(':')]
+ digits.reverse()
+ base = 1
+ value = 0
+ for digit in digits:
+ value += digit*base
+ base *= 60
+ return sign*value
+ else:
+ return sign*int(value)
+
+ inf_value = 1e300
+ while inf_value != inf_value*inf_value:
+ inf_value *= inf_value
+ nan_value = -inf_value/inf_value # Trying to make a quiet NaN (like C99).
+
+ def construct_yaml_float(self, node):
+ value = self.construct_scalar(node)
+ value = value.replace('_', '').lower()
+ sign = +1
+ if value[0] == '-':
+ sign = -1
+ if value[0] in '+-':
+ value = value[1:]
+ if value == '.inf':
+ return sign*self.inf_value
+ elif value == '.nan':
+ return self.nan_value
+ elif ':' in value:
+ digits = [float(part) for part in value.split(':')]
+ digits.reverse()
+ base = 1
+ value = 0.0
+ for digit in digits:
+ value += digit*base
+ base *= 60
+ return sign*value
+ else:
+ return sign*float(value)
+
+ def construct_yaml_binary(self, node):
+ try:
+ value = self.construct_scalar(node).encode('ascii')
+ except UnicodeEncodeError as exc:
+ raise ConstructorError(None, None,
+ "failed to convert base64 data into ascii: %s" % exc,
+ node.start_mark)
+ try:
+ if hasattr(base64, 'decodebytes'):
+ return base64.decodebytes(value)
+ else:
+ return base64.decodestring(value)
+ except binascii.Error as exc:
+ raise ConstructorError(None, None,
+ "failed to decode base64 data: %s" % exc, node.start_mark)
+
+ timestamp_regexp = re.compile(
+ r'''^(?P<year>[0-9][0-9][0-9][0-9])
+ -(?P<month>[0-9][0-9]?)
+ -(?P<day>[0-9][0-9]?)
+ (?:(?:[Tt]|[ \t]+)
+ (?P<hour>[0-9][0-9]?)
+ :(?P<minute>[0-9][0-9])
+ :(?P<second>[0-9][0-9])
+ (?:\.(?P<fraction>[0-9]*))?
+ (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
+ (?::(?P<tz_minute>[0-9][0-9]))?))?)?$''', re.X)
+
+ def construct_yaml_timestamp(self, node):
+ value = self.construct_scalar(node)
+ match = self.timestamp_regexp.match(node.value)
+ values = match.groupdict()
+ year = int(values['year'])
+ month = int(values['month'])
+ day = int(values['day'])
+ if not values['hour']:
+ return datetime.date(year, month, day)
+ hour = int(values['hour'])
+ minute = int(values['minute'])
+ second = int(values['second'])
+ fraction = 0
+ tzinfo = None
+ if values['fraction']:
+ fraction = values['fraction'][:6]
+ while len(fraction) < 6:
+ fraction += '0'
+ fraction = int(fraction)
+ if values['tz_sign']:
+ tz_hour = int(values['tz_hour'])
+ tz_minute = int(values['tz_minute'] or 0)
+ delta = datetime.timedelta(hours=tz_hour, minutes=tz_minute)
+ if values['tz_sign'] == '-':
+ delta = -delta
+ tzinfo = datetime.timezone(delta)
+ elif values['tz']:
+ tzinfo = datetime.timezone.utc
+ return datetime.datetime(year, month, day, hour, minute, second, fraction,
+ tzinfo=tzinfo)
+
+ def construct_yaml_omap(self, node):
+ # Note: we do not check for duplicate keys, because it's too
+ # CPU-expensive.
+ omap = []
+ yield omap
+ if not isinstance(node, SequenceNode):
+ raise ConstructorError("while constructing an ordered map", node.start_mark,
+ "expected a sequence, but found %s" % node.id, node.start_mark)
+ for subnode in node.value:
+ if not isinstance(subnode, MappingNode):
+ raise ConstructorError("while constructing an ordered map", node.start_mark,
+ "expected a mapping of length 1, but found %s" % subnode.id,
+ subnode.start_mark)
+ if len(subnode.value) != 1:
+ raise ConstructorError("while constructing an ordered map", node.start_mark,
+ "expected a single mapping item, but found %d items" % len(subnode.value),
+ subnode.start_mark)
+ key_node, value_node = subnode.value[0]
+ key = self.construct_object(key_node)
+ value = self.construct_object(value_node)
+ omap.append((key, value))
+
+ def construct_yaml_pairs(self, node):
+ # Note: the same code as `construct_yaml_omap`.
+ pairs = []
+ yield pairs
+ if not isinstance(node, SequenceNode):
+ raise ConstructorError("while constructing pairs", node.start_mark,
+ "expected a sequence, but found %s" % node.id, node.start_mark)
+ for subnode in node.value:
+ if not isinstance(subnode, MappingNode):
+ raise ConstructorError("while constructing pairs", node.start_mark,
+ "expected a mapping of length 1, but found %s" % subnode.id,
+ subnode.start_mark)
+ if len(subnode.value) != 1:
+ raise ConstructorError("while constructing pairs", node.start_mark,
+ "expected a single mapping item, but found %d items" % len(subnode.value),
+ subnode.start_mark)
+ key_node, value_node = subnode.value[0]
+ key = self.construct_object(key_node)
+ value = self.construct_object(value_node)
+ pairs.append((key, value))
+
+ def construct_yaml_set(self, node):
+ data = set()
+ yield data
+ value = self.construct_mapping(node)
+ data.update(value)
+
+ def construct_yaml_str(self, node):
+ return self.construct_scalar(node)
+
+ def construct_yaml_seq(self, node):
+ data = []
+ yield data
+ data.extend(self.construct_sequence(node))
+
+ def construct_yaml_map(self, node):
+ data = {}
+ yield data
+ value = self.construct_mapping(node)
+ data.update(value)
+
+ def construct_yaml_object(self, node, cls):
+ data = cls.__new__(cls)
+ yield data
+ if hasattr(data, '__setstate__'):
+ state = self.construct_mapping(node, deep=True)
+ data.__setstate__(state)
+ else:
+ state = self.construct_mapping(node)
+ data.__dict__.update(state)
+
+ def construct_undefined(self, node):
+ raise ConstructorError(None, None,
+ "could not determine a constructor for the tag %r" % node.tag,
+ node.start_mark)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:null',
+ SafeConstructor.construct_yaml_null)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:bool',
+ SafeConstructor.construct_yaml_bool)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:int',
+ SafeConstructor.construct_yaml_int)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:float',
+ SafeConstructor.construct_yaml_float)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:binary',
+ SafeConstructor.construct_yaml_binary)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:timestamp',
+ SafeConstructor.construct_yaml_timestamp)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:omap',
+ SafeConstructor.construct_yaml_omap)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:pairs',
+ SafeConstructor.construct_yaml_pairs)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:set',
+ SafeConstructor.construct_yaml_set)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:str',
+ SafeConstructor.construct_yaml_str)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:seq',
+ SafeConstructor.construct_yaml_seq)
+
+SafeConstructor.add_constructor(
+ 'tag:yaml.org,2002:map',
+ SafeConstructor.construct_yaml_map)
+
+SafeConstructor.add_constructor(None,
+ SafeConstructor.construct_undefined)
+
+class FullConstructor(SafeConstructor):
+ # 'extend' is blacklisted because it is used by
+ # construct_python_object_apply to add `listitems` to a newly generate
+ # python instance
+ def get_state_keys_blacklist(self):
+ return ['^extend$', '^__.*__$']
+
+ def get_state_keys_blacklist_regexp(self):
+ if not hasattr(self, 'state_keys_blacklist_regexp'):
+ self.state_keys_blacklist_regexp = re.compile('(' + '|'.join(self.get_state_keys_blacklist()) + ')')
+ return self.state_keys_blacklist_regexp
+
+ def construct_python_str(self, node):
+ return self.construct_scalar(node)
+
+ def construct_python_unicode(self, node):
+ return self.construct_scalar(node)
+
+ def construct_python_bytes(self, node):
+ try:
+ value = self.construct_scalar(node).encode('ascii')
+ except UnicodeEncodeError as exc:
+ raise ConstructorError(None, None,
+ "failed to convert base64 data into ascii: %s" % exc,
+ node.start_mark)
+ try:
+ if hasattr(base64, 'decodebytes'):
+ return base64.decodebytes(value)
+ else:
+ return base64.decodestring(value)
+ except binascii.Error as exc:
+ raise ConstructorError(None, None,
+ "failed to decode base64 data: %s" % exc, node.start_mark)
+
+ def construct_python_long(self, node):
+ return self.construct_yaml_int(node)
+
+ def construct_python_complex(self, node):
+ return complex(self.construct_scalar(node))
+
+ def construct_python_tuple(self, node):
+ return tuple(self.construct_sequence(node))
+
+ def find_python_module(self, name, mark, unsafe=False):
+ if not name:
+ raise ConstructorError("while constructing a Python module", mark,
+ "expected non-empty name appended to the tag", mark)
+ if unsafe:
+ try:
+ __import__(name)
+ except ImportError as exc:
+ raise ConstructorError("while constructing a Python module", mark,
+ "cannot find module %r (%s)" % (name, exc), mark)
+ if name not in sys.modules:
+ raise ConstructorError("while constructing a Python module", mark,
+ "module %r is not imported" % name, mark)
+ return sys.modules[name]
+
+ def find_python_name(self, name, mark, unsafe=False):
+ if not name:
+ raise ConstructorError("while constructing a Python object", mark,
+ "expected non-empty name appended to the tag", mark)
+ if '.' in name:
+ module_name, object_name = name.rsplit('.', 1)
+ else:
+ module_name = 'builtins'
+ object_name = name
+ if unsafe:
+ try:
+ __import__(module_name)
+ except ImportError as exc:
+ raise ConstructorError("while constructing a Python object", mark,
+ "cannot find module %r (%s)" % (module_name, exc), mark)
+ if module_name not in sys.modules:
+ raise ConstructorError("while constructing a Python object", mark,
+ "module %r is not imported" % module_name, mark)
+ module = sys.modules[module_name]
+ if not hasattr(module, object_name):
+ raise ConstructorError("while constructing a Python object", mark,
+ "cannot find %r in the module %r"
+ % (object_name, module.__name__), mark)
+ return getattr(module, object_name)
+
+ def construct_python_name(self, suffix, node):
+ value = self.construct_scalar(node)
+ if value:
+ raise ConstructorError("while constructing a Python name", node.start_mark,
+ "expected the empty value, but found %r" % value, node.start_mark)
+ return self.find_python_name(suffix, node.start_mark)
+
+ def construct_python_module(self, suffix, node):
+ value = self.construct_scalar(node)
+ if value:
+ raise ConstructorError("while constructing a Python module", node.start_mark,
+ "expected the empty value, but found %r" % value, node.start_mark)
+ return self.find_python_module(suffix, node.start_mark)
+
+ def make_python_instance(self, suffix, node,
+ args=None, kwds=None, newobj=False, unsafe=False):
+ if not args:
+ args = []
+ if not kwds:
+ kwds = {}
+ cls = self.find_python_name(suffix, node.start_mark)
+ if not (unsafe or isinstance(cls, type)):
+ raise ConstructorError("while constructing a Python instance", node.start_mark,
+ "expected a class, but found %r" % type(cls),
+ node.start_mark)
+ if newobj and isinstance(cls, type):
+ return cls.__new__(cls, *args, **kwds)
+ else:
+ return cls(*args, **kwds)
+
+ def set_python_instance_state(self, instance, state, unsafe=False):
+ if hasattr(instance, '__setstate__'):
+ instance.__setstate__(state)
+ else:
+ slotstate = {}
+ if isinstance(state, tuple) and len(state) == 2:
+ state, slotstate = state
+ if hasattr(instance, '__dict__'):
+ if not unsafe and state:
+ for key in state.keys():
+ self.check_state_key(key)
+ instance.__dict__.update(state)
+ elif state:
+ slotstate.update(state)
+ for key, value in slotstate.items():
+ if not unsafe:
+ self.check_state_key(key)
+ setattr(instance, key, value)
+
+ def construct_python_object(self, suffix, node):
+ # Format:
+ # !!python/object:module.name { ... state ... }
+ instance = self.make_python_instance(suffix, node, newobj=True)
+ yield instance
+ deep = hasattr(instance, '__setstate__')
+ state = self.construct_mapping(node, deep=deep)
+ self.set_python_instance_state(instance, state)
+
+ def construct_python_object_apply(self, suffix, node, newobj=False):
+ # Format:
+ # !!python/object/apply # (or !!python/object/new)
+ # args: [ ... arguments ... ]
+ # kwds: { ... keywords ... }
+ # state: ... state ...
+ # listitems: [ ... listitems ... ]
+ # dictitems: { ... dictitems ... }
+ # or short format:
+ # !!python/object/apply [ ... arguments ... ]
+ # The difference between !!python/object/apply and !!python/object/new
+ # is how an object is created, check make_python_instance for details.
+ if isinstance(node, SequenceNode):
+ args = self.construct_sequence(node, deep=True)
+ kwds = {}
+ state = {}
+ listitems = []
+ dictitems = {}
+ else:
+ value = self.construct_mapping(node, deep=True)
+ args = value.get('args', [])
+ kwds = value.get('kwds', {})
+ state = value.get('state', {})
+ listitems = value.get('listitems', [])
+ dictitems = value.get('dictitems', {})
+ instance = self.make_python_instance(suffix, node, args, kwds, newobj)
+ if state:
+ self.set_python_instance_state(instance, state)
+ if listitems:
+ instance.extend(listitems)
+ if dictitems:
+ for key in dictitems:
+ instance[key] = dictitems[key]
+ return instance
+
+ def construct_python_object_new(self, suffix, node):
+ return self.construct_python_object_apply(suffix, node, newobj=True)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/none',
+ FullConstructor.construct_yaml_null)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/bool',
+ FullConstructor.construct_yaml_bool)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/str',
+ FullConstructor.construct_python_str)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/unicode',
+ FullConstructor.construct_python_unicode)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/bytes',
+ FullConstructor.construct_python_bytes)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/int',
+ FullConstructor.construct_yaml_int)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/long',
+ FullConstructor.construct_python_long)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/float',
+ FullConstructor.construct_yaml_float)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/complex',
+ FullConstructor.construct_python_complex)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/list',
+ FullConstructor.construct_yaml_seq)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/tuple',
+ FullConstructor.construct_python_tuple)
+
+FullConstructor.add_constructor(
+ 'tag:yaml.org,2002:python/dict',
+ FullConstructor.construct_yaml_map)
+
+FullConstructor.add_multi_constructor(
+ 'tag:yaml.org,2002:python/name:',
+ FullConstructor.construct_python_name)
+
+FullConstructor.add_multi_constructor(
+ 'tag:yaml.org,2002:python/module:',
+ FullConstructor.construct_python_module)
+
+FullConstructor.add_multi_constructor(
+ 'tag:yaml.org,2002:python/object:',
+ FullConstructor.construct_python_object)
+
+FullConstructor.add_multi_constructor(
+ 'tag:yaml.org,2002:python/object/new:',
+ FullConstructor.construct_python_object_new)
+
+class UnsafeConstructor(FullConstructor):
+
+ def find_python_module(self, name, mark):
+ return super(UnsafeConstructor, self).find_python_module(name, mark, unsafe=True)
+
+ def find_python_name(self, name, mark):
+ return super(UnsafeConstructor, self).find_python_name(name, mark, unsafe=True)
+
+ def make_python_instance(self, suffix, node, args=None, kwds=None, newobj=False):
+ return super(UnsafeConstructor, self).make_python_instance(
+ suffix, node, args, kwds, newobj, unsafe=True)
+
+ def set_python_instance_state(self, instance, state):
+ return super(UnsafeConstructor, self).set_python_instance_state(
+ instance, state, unsafe=True)
+
+UnsafeConstructor.add_multi_constructor(
+ 'tag:yaml.org,2002:python/object/apply:',
+ UnsafeConstructor.construct_python_object_apply)
+
+# Constructor is same as UnsafeConstructor. Need to leave this in place in case
+# people have extended it directly.
+class Constructor(UnsafeConstructor):
+ pass
diff --git a/yaml/lib3/yaml/cyaml.py b/yaml/lib3/yaml/cyaml.py
new file mode 100644
index 0000000000..1e606c74b9
--- /dev/null
+++ b/yaml/lib3/yaml/cyaml.py
@@ -0,0 +1,101 @@
+
+__all__ = [
+ 'CBaseLoader', 'CSafeLoader', 'CFullLoader', 'CUnsafeLoader', 'CLoader',
+ 'CBaseDumper', 'CSafeDumper', 'CDumper'
+]
+
+from _yaml import CParser, CEmitter
+
+from .constructor import *
+
+from .serializer import *
+from .representer import *
+
+from .resolver import *
+
+class CBaseLoader(CParser, BaseConstructor, BaseResolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ BaseConstructor.__init__(self)
+ BaseResolver.__init__(self)
+
+class CSafeLoader(CParser, SafeConstructor, Resolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ SafeConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class CFullLoader(CParser, FullConstructor, Resolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ FullConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class CUnsafeLoader(CParser, UnsafeConstructor, Resolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ UnsafeConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class CLoader(CParser, Constructor, Resolver):
+
+ def __init__(self, stream):
+ CParser.__init__(self, stream)
+ Constructor.__init__(self)
+ Resolver.__init__(self)
+
+class CBaseDumper(CEmitter, BaseRepresenter, BaseResolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ CEmitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width, encoding=encoding,
+ allow_unicode=allow_unicode, line_break=line_break,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ Representer.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
+class CSafeDumper(CEmitter, SafeRepresenter, Resolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ CEmitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width, encoding=encoding,
+ allow_unicode=allow_unicode, line_break=line_break,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ SafeRepresenter.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
+class CDumper(CEmitter, Serializer, Representer, Resolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ CEmitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width, encoding=encoding,
+ allow_unicode=allow_unicode, line_break=line_break,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ Representer.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
diff --git a/yaml/lib3/yaml/dumper.py b/yaml/lib3/yaml/dumper.py
new file mode 100644
index 0000000000..6aadba551f
--- /dev/null
+++ b/yaml/lib3/yaml/dumper.py
@@ -0,0 +1,62 @@
+
+__all__ = ['BaseDumper', 'SafeDumper', 'Dumper']
+
+from .emitter import *
+from .serializer import *
+from .representer import *
+from .resolver import *
+
+class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ Emitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break)
+ Serializer.__init__(self, encoding=encoding,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ Representer.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
+class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ Emitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break)
+ Serializer.__init__(self, encoding=encoding,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ SafeRepresenter.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
+class Dumper(Emitter, Serializer, Representer, Resolver):
+
+ def __init__(self, stream,
+ default_style=None, default_flow_style=False,
+ canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None,
+ encoding=None, explicit_start=None, explicit_end=None,
+ version=None, tags=None, sort_keys=True):
+ Emitter.__init__(self, stream, canonical=canonical,
+ indent=indent, width=width,
+ allow_unicode=allow_unicode, line_break=line_break)
+ Serializer.__init__(self, encoding=encoding,
+ explicit_start=explicit_start, explicit_end=explicit_end,
+ version=version, tags=tags)
+ Representer.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style, sort_keys=sort_keys)
+ Resolver.__init__(self)
+
diff --git a/yaml/lib3/yaml/emitter.py b/yaml/lib3/yaml/emitter.py
new file mode 100644
index 0000000000..a664d01116
--- /dev/null
+++ b/yaml/lib3/yaml/emitter.py
@@ -0,0 +1,1137 @@
+
+# Emitter expects events obeying the following grammar:
+# stream ::= STREAM-START document* STREAM-END
+# document ::= DOCUMENT-START node DOCUMENT-END
+# node ::= SCALAR | sequence | mapping
+# sequence ::= SEQUENCE-START node* SEQUENCE-END
+# mapping ::= MAPPING-START (node node)* MAPPING-END
+
+__all__ = ['Emitter', 'EmitterError']
+
+from .error import YAMLError
+from .events import *
+
+class EmitterError(YAMLError):
+ pass
+
+class ScalarAnalysis:
+ def __init__(self, scalar, empty, multiline,
+ allow_flow_plain, allow_block_plain,
+ allow_single_quoted, allow_double_quoted,
+ allow_block):
+ self.scalar = scalar
+ self.empty = empty
+ self.multiline = multiline
+ self.allow_flow_plain = allow_flow_plain
+ self.allow_block_plain = allow_block_plain
+ self.allow_single_quoted = allow_single_quoted
+ self.allow_double_quoted = allow_double_quoted
+ self.allow_block = allow_block
+
+class Emitter:
+
+ DEFAULT_TAG_PREFIXES = {
+ '!' : '!',
+ 'tag:yaml.org,2002:' : '!!',
+ }
+
+ def __init__(self, stream, canonical=None, indent=None, width=None,
+ allow_unicode=None, line_break=None):
+
+ # The stream should have the methods `write` and possibly `flush`.
+ self.stream = stream
+
+ # Encoding can be overridden by STREAM-START.
+ self.encoding = None
+
+ # Emitter is a state machine with a stack of states to handle nested
+ # structures.
+ self.states = []
+ self.state = self.expect_stream_start
+
+ # Current event and the event queue.
+ self.events = []
+ self.event = None
+
+ # The current indentation level and the stack of previous indents.
+ self.indents = []
+ self.indent = None
+
+ # Flow level.
+ self.flow_level = 0
+
+ # Contexts.
+ self.root_context = False
+ self.sequence_context = False
+ self.mapping_context = False
+ self.simple_key_context = False
+
+ # Characteristics of the last emitted character:
+ # - current position.
+ # - is it a whitespace?
+ # - is it an indention character
+ # (indentation space, '-', '?', or ':')?
+ self.line = 0
+ self.column = 0
+ self.whitespace = True
+ self.indention = True
+
+ # Whether the document requires an explicit document indicator
+ self.open_ended = False
+
+ # Formatting details.
+ self.canonical = canonical
+ self.allow_unicode = allow_unicode
+ self.best_indent = 2
+ if indent and 1 < indent < 10:
+ self.best_indent = indent
+ self.best_width = 80
+ if width and width > self.best_indent*2:
+ self.best_width = width
+ self.best_line_break = '\n'
+ if line_break in ['\r', '\n', '\r\n']:
+ self.best_line_break = line_break
+
+ # Tag prefixes.
+ self.tag_prefixes = None
+
+ # Prepared anchor and tag.
+ self.prepared_anchor = None
+ self.prepared_tag = None
+
+ # Scalar analysis and style.
+ self.analysis = None
+ self.style = None
+
+ def dispose(self):
+ # Reset the state attributes (to clear self-references)
+ self.states = []
+ self.state = None
+
+ def emit(self, event):
+ self.events.append(event)
+ while not self.need_more_events():
+ self.event = self.events.pop(0)
+ self.state()
+ self.event = None
+
+ # In some cases, we wait for a few next events before emitting.
+
+ def need_more_events(self):
+ if not self.events:
+ return True
+ event = self.events[0]
+ if isinstance(event, DocumentStartEvent):
+ return self.need_events(1)
+ elif isinstance(event, SequenceStartEvent):
+ return self.need_events(2)
+ elif isinstance(event, MappingStartEvent):
+ return self.need_events(3)
+ else:
+ return False
+
+ def need_events(self, count):
+ level = 0
+ for event in self.events[1:]:
+ if isinstance(event, (DocumentStartEvent, CollectionStartEvent)):
+ level += 1
+ elif isinstance(event, (DocumentEndEvent, CollectionEndEvent)):
+ level -= 1
+ elif isinstance(event, StreamEndEvent):
+ level = -1
+ if level < 0:
+ return False
+ return (len(self.events) < count+1)
+
+ def increase_indent(self, flow=False, indentless=False):
+ self.indents.append(self.indent)
+ if self.indent is None:
+ if flow:
+ self.indent = self.best_indent
+ else:
+ self.indent = 0
+ elif not indentless:
+ self.indent += self.best_indent
+
+ # States.
+
+ # Stream handlers.
+
+ def expect_stream_start(self):
+ if isinstance(self.event, StreamStartEvent):
+ if self.event.encoding and not hasattr(self.stream, 'encoding'):
+ self.encoding = self.event.encoding
+ self.write_stream_start()
+ self.state = self.expect_first_document_start
+ else:
+ raise EmitterError("expected StreamStartEvent, but got %s"
+ % self.event)
+
+ def expect_nothing(self):
+ raise EmitterError("expected nothing, but got %s" % self.event)
+
+ # Document handlers.
+
+ def expect_first_document_start(self):
+ return self.expect_document_start(first=True)
+
+ def expect_document_start(self, first=False):
+ if isinstance(self.event, DocumentStartEvent):
+ if (self.event.version or self.event.tags) and self.open_ended:
+ self.write_indicator('...', True)
+ self.write_indent()
+ if self.event.version:
+ version_text = self.prepare_version(self.event.version)
+ self.write_version_directive(version_text)
+ self.tag_prefixes = self.DEFAULT_TAG_PREFIXES.copy()
+ if self.event.tags:
+ handles = sorted(self.event.tags.keys())
+ for handle in handles:
+ prefix = self.event.tags[handle]
+ self.tag_prefixes[prefix] = handle
+ handle_text = self.prepare_tag_handle(handle)
+ prefix_text = self.prepare_tag_prefix(prefix)
+ self.write_tag_directive(handle_text, prefix_text)
+ implicit = (first and not self.event.explicit and not self.canonical
+ and not self.event.version and not self.event.tags
+ and not self.check_empty_document())
+ if not implicit:
+ self.write_indent()
+ self.write_indicator('---', True)
+ if self.canonical:
+ self.write_indent()
+ self.state = self.expect_document_root
+ elif isinstance(self.event, StreamEndEvent):
+ if self.open_ended:
+ self.write_indicator('...', True)
+ self.write_indent()
+ self.write_stream_end()
+ self.state = self.expect_nothing
+ else:
+ raise EmitterError("expected DocumentStartEvent, but got %s"
+ % self.event)
+
+ def expect_document_end(self):
+ if isinstance(self.event, DocumentEndEvent):
+ self.write_indent()
+ if self.event.explicit:
+ self.write_indicator('...', True)
+ self.write_indent()
+ self.flush_stream()
+ self.state = self.expect_document_start
+ else:
+ raise EmitterError("expected DocumentEndEvent, but got %s"
+ % self.event)
+
+ def expect_document_root(self):
+ self.states.append(self.expect_document_end)
+ self.expect_node(root=True)
+
+ # Node handlers.
+
+ def expect_node(self, root=False, sequence=False, mapping=False,
+ simple_key=False):
+ self.root_context = root
+ self.sequence_context = sequence
+ self.mapping_context = mapping
+ self.simple_key_context = simple_key
+ if isinstance(self.event, AliasEvent):
+ self.expect_alias()
+ elif isinstance(self.event, (ScalarEvent, CollectionStartEvent)):
+ self.process_anchor('&')
+ self.process_tag()
+ if isinstance(self.event, ScalarEvent):
+ self.expect_scalar()
+ elif isinstance(self.event, SequenceStartEvent):
+ if self.flow_level or self.canonical or self.event.flow_style \
+ or self.check_empty_sequence():
+ self.expect_flow_sequence()
+ else:
+ self.expect_block_sequence()
+ elif isinstance(self.event, MappingStartEvent):
+ if self.flow_level or self.canonical or self.event.flow_style \
+ or self.check_empty_mapping():
+ self.expect_flow_mapping()
+ else:
+ self.expect_block_mapping()
+ else:
+ raise EmitterError("expected NodeEvent, but got %s" % self.event)
+
+ def expect_alias(self):
+ if self.event.anchor is None:
+ raise EmitterError("anchor is not specified for alias")
+ self.process_anchor('*')
+ self.state = self.states.pop()
+
+ def expect_scalar(self):
+ self.increase_indent(flow=True)
+ self.process_scalar()
+ self.indent = self.indents.pop()
+ self.state = self.states.pop()
+
+ # Flow sequence handlers.
+
+ def expect_flow_sequence(self):
+ self.write_indicator('[', True, whitespace=True)
+ self.flow_level += 1
+ self.increase_indent(flow=True)
+ self.state = self.expect_first_flow_sequence_item
+
+ def expect_first_flow_sequence_item(self):
+ if isinstance(self.event, SequenceEndEvent):
+ self.indent = self.indents.pop()
+ self.flow_level -= 1
+ self.write_indicator(']', False)
+ self.state = self.states.pop()
+ else:
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ self.states.append(self.expect_flow_sequence_item)
+ self.expect_node(sequence=True)
+
+ def expect_flow_sequence_item(self):
+ if isinstance(self.event, SequenceEndEvent):
+ self.indent = self.indents.pop()
+ self.flow_level -= 1
+ if self.canonical:
+ self.write_indicator(',', False)
+ self.write_indent()
+ self.write_indicator(']', False)
+ self.state = self.states.pop()
+ else:
+ self.write_indicator(',', False)
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ self.states.append(self.expect_flow_sequence_item)
+ self.expect_node(sequence=True)
+
+ # Flow mapping handlers.
+
+ def expect_flow_mapping(self):
+ self.write_indicator('{', True, whitespace=True)
+ self.flow_level += 1
+ self.increase_indent(flow=True)
+ self.state = self.expect_first_flow_mapping_key
+
+ def expect_first_flow_mapping_key(self):
+ if isinstance(self.event, MappingEndEvent):
+ self.indent = self.indents.pop()
+ self.flow_level -= 1
+ self.write_indicator('}', False)
+ self.state = self.states.pop()
+ else:
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ if not self.canonical and self.check_simple_key():
+ self.states.append(self.expect_flow_mapping_simple_value)
+ self.expect_node(mapping=True, simple_key=True)
+ else:
+ self.write_indicator('?', True)
+ self.states.append(self.expect_flow_mapping_value)
+ self.expect_node(mapping=True)
+
+ def expect_flow_mapping_key(self):
+ if isinstance(self.event, MappingEndEvent):
+ self.indent = self.indents.pop()
+ self.flow_level -= 1
+ if self.canonical:
+ self.write_indicator(',', False)
+ self.write_indent()
+ self.write_indicator('}', False)
+ self.state = self.states.pop()
+ else:
+ self.write_indicator(',', False)
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ if not self.canonical and self.check_simple_key():
+ self.states.append(self.expect_flow_mapping_simple_value)
+ self.expect_node(mapping=True, simple_key=True)
+ else:
+ self.write_indicator('?', True)
+ self.states.append(self.expect_flow_mapping_value)
+ self.expect_node(mapping=True)
+
+ def expect_flow_mapping_simple_value(self):
+ self.write_indicator(':', False)
+ self.states.append(self.expect_flow_mapping_key)
+ self.expect_node(mapping=True)
+
+ def expect_flow_mapping_value(self):
+ if self.canonical or self.column > self.best_width:
+ self.write_indent()
+ self.write_indicator(':', True)
+ self.states.append(self.expect_flow_mapping_key)
+ self.expect_node(mapping=True)
+
+ # Block sequence handlers.
+
+ def expect_block_sequence(self):
+ indentless = (self.mapping_context and not self.indention)
+ self.increase_indent(flow=False, indentless=indentless)
+ self.state = self.expect_first_block_sequence_item
+
+ def expect_first_block_sequence_item(self):
+ return self.expect_block_sequence_item(first=True)
+
+ def expect_block_sequence_item(self, first=False):
+ if not first and isinstance(self.event, SequenceEndEvent):
+ self.indent = self.indents.pop()
+ self.state = self.states.pop()
+ else:
+ self.write_indent()
+ self.write_indicator('-', True, indention=True)
+ self.states.append(self.expect_block_sequence_item)
+ self.expect_node(sequence=True)
+
+ # Block mapping handlers.
+
+ def expect_block_mapping(self):
+ self.increase_indent(flow=False)
+ self.state = self.expect_first_block_mapping_key
+
+ def expect_first_block_mapping_key(self):
+ return self.expect_block_mapping_key(first=True)
+
+ def expect_block_mapping_key(self, first=False):
+ if not first and isinstance(self.event, MappingEndEvent):
+ self.indent = self.indents.pop()
+ self.state = self.states.pop()
+ else:
+ self.write_indent()
+ if self.check_simple_key():
+ self.states.append(self.expect_block_mapping_simple_value)
+ self.expect_node(mapping=True, simple_key=True)
+ else:
+ self.write_indicator('?', True, indention=True)
+ self.states.append(self.expect_block_mapping_value)
+ self.expect_node(mapping=True)
+
+ def expect_block_mapping_simple_value(self):
+ self.write_indicator(':', False)
+ self.states.append(self.expect_block_mapping_key)
+ self.expect_node(mapping=True)
+
+ def expect_block_mapping_value(self):
+ self.write_indent()
+ self.write_indicator(':', True, indention=True)
+ self.states.append(self.expect_block_mapping_key)
+ self.expect_node(mapping=True)
+
+ # Checkers.
+
+ def check_empty_sequence(self):
+ return (isinstance(self.event, SequenceStartEvent) and self.events
+ and isinstance(self.events[0], SequenceEndEvent))
+
+ def check_empty_mapping(self):
+ return (isinstance(self.event, MappingStartEvent) and self.events
+ and isinstance(self.events[0], MappingEndEvent))
+
+ def check_empty_document(self):
+ if not isinstance(self.event, DocumentStartEvent) or not self.events:
+ return False
+ event = self.events[0]
+ return (isinstance(event, ScalarEvent) and event.anchor is None
+ and event.tag is None and event.implicit and event.value == '')
+
+ def check_simple_key(self):
+ length = 0
+ if isinstance(self.event, NodeEvent) and self.event.anchor is not None:
+ if self.prepared_anchor is None:
+ self.prepared_anchor = self.prepare_anchor(self.event.anchor)
+ length += len(self.prepared_anchor)
+ if isinstance(self.event, (ScalarEvent, CollectionStartEvent)) \
+ and self.event.tag is not None:
+ if self.prepared_tag is None:
+ self.prepared_tag = self.prepare_tag(self.event.tag)
+ length += len(self.prepared_tag)
+ if isinstance(self.event, ScalarEvent):
+ if self.analysis is None:
+ self.analysis = self.analyze_scalar(self.event.value)
+ length += len(self.analysis.scalar)
+ return (length < 128 and (isinstance(self.event, AliasEvent)
+ or (isinstance(self.event, ScalarEvent)
+ and not self.analysis.empty and not self.analysis.multiline)
+ or self.check_empty_sequence() or self.check_empty_mapping()))
+
+ # Anchor, Tag, and Scalar processors.
+
+ def process_anchor(self, indicator):
+ if self.event.anchor is None:
+ self.prepared_anchor = None
+ return
+ if self.prepared_anchor is None:
+ self.prepared_anchor = self.prepare_anchor(self.event.anchor)
+ if self.prepared_anchor:
+ self.write_indicator(indicator+self.prepared_anchor, True)
+ self.prepared_anchor = None
+
+ def process_tag(self):
+ tag = self.event.tag
+ if isinstance(self.event, ScalarEvent):
+ if self.style is None:
+ self.style = self.choose_scalar_style()
+ if ((not self.canonical or tag is None) and
+ ((self.style == '' and self.event.implicit[0])
+ or (self.style != '' and self.event.implicit[1]))):
+ self.prepared_tag = None
+ return
+ if self.event.implicit[0] and tag is None:
+ tag = '!'
+ self.prepared_tag = None
+ else:
+ if (not self.canonical or tag is None) and self.event.implicit:
+ self.prepared_tag = None
+ return
+ if tag is None:
+ raise EmitterError("tag is not specified")
+ if self.prepared_tag is None:
+ self.prepared_tag = self.prepare_tag(tag)
+ if self.prepared_tag:
+ self.write_indicator(self.prepared_tag, True)
+ self.prepared_tag = None
+
+ def choose_scalar_style(self):
+ if self.analysis is None:
+ self.analysis = self.analyze_scalar(self.event.value)
+ if self.event.style == '"' or self.canonical:
+ return '"'
+ if not self.event.style and self.event.implicit[0]:
+ if (not (self.simple_key_context and
+ (self.analysis.empty or self.analysis.multiline))
+ and (self.flow_level and self.analysis.allow_flow_plain
+ or (not self.flow_level and self.analysis.allow_block_plain))):
+ return ''
+ if self.event.style and self.event.style in '|>':
+ if (not self.flow_level and not self.simple_key_context
+ and self.analysis.allow_block):
+ return self.event.style
+ if not self.event.style or self.event.style == '\'':
+ if (self.analysis.allow_single_quoted and
+ not (self.simple_key_context and self.analysis.multiline)):
+ return '\''
+ return '"'
+
+ def process_scalar(self):
+ if self.analysis is None:
+ self.analysis = self.analyze_scalar(self.event.value)
+ if self.style is None:
+ self.style = self.choose_scalar_style()
+ split = (not self.simple_key_context)
+ #if self.analysis.multiline and split \
+ # and (not self.style or self.style in '\'\"'):
+ # self.write_indent()
+ if self.style == '"':
+ self.write_double_quoted(self.analysis.scalar, split)
+ elif self.style == '\'':
+ self.write_single_quoted(self.analysis.scalar, split)
+ elif self.style == '>':
+ self.write_folded(self.analysis.scalar)
+ elif self.style == '|':
+ self.write_literal(self.analysis.scalar)
+ else:
+ self.write_plain(self.analysis.scalar, split)
+ self.analysis = None
+ self.style = None
+
+ # Analyzers.
+
+ def prepare_version(self, version):
+ major, minor = version
+ if major != 1:
+ raise EmitterError("unsupported YAML version: %d.%d" % (major, minor))
+ return '%d.%d' % (major, minor)
+
+ def prepare_tag_handle(self, handle):
+ if not handle:
+ raise EmitterError("tag handle must not be empty")
+ if handle[0] != '!' or handle[-1] != '!':
+ raise EmitterError("tag handle must start and end with '!': %r" % handle)
+ for ch in handle[1:-1]:
+ if not ('0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \
+ or ch in '-_'):
+ raise EmitterError("invalid character %r in the tag handle: %r"
+ % (ch, handle))
+ return handle
+
+ def prepare_tag_prefix(self, prefix):
+ if not prefix:
+ raise EmitterError("tag prefix must not be empty")
+ chunks = []
+ start = end = 0
+ if prefix[0] == '!':
+ end = 1
+ while end < len(prefix):
+ ch = prefix[end]
+ if '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \
+ or ch in '-;/?!:@&=+$,_.~*\'()[]':
+ end += 1
+ else:
+ if start < end:
+ chunks.append(prefix[start:end])
+ start = end = end+1
+ data = ch.encode('utf-8')
+ for ch in data:
+ chunks.append('%%%02X' % ord(ch))
+ if start < end:
+ chunks.append(prefix[start:end])
+ return ''.join(chunks)
+
+ def prepare_tag(self, tag):
+ if not tag:
+ raise EmitterError("tag must not be empty")
+ if tag == '!':
+ return tag
+ handle = None
+ suffix = tag
+ prefixes = sorted(self.tag_prefixes.keys())
+ for prefix in prefixes:
+ if tag.startswith(prefix) \
+ and (prefix == '!' or len(prefix) < len(tag)):
+ handle = self.tag_prefixes[prefix]
+ suffix = tag[len(prefix):]
+ chunks = []
+ start = end = 0
+ while end < len(suffix):
+ ch = suffix[end]
+ if '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \
+ or ch in '-;/?:@&=+$,_.~*\'()[]' \
+ or (ch == '!' and handle != '!'):
+ end += 1
+ else:
+ if start < end:
+ chunks.append(suffix[start:end])
+ start = end = end+1
+ data = ch.encode('utf-8')
+ for ch in data:
+ chunks.append('%%%02X' % ch)
+ if start < end:
+ chunks.append(suffix[start:end])
+ suffix_text = ''.join(chunks)
+ if handle:
+ return '%s%s' % (handle, suffix_text)
+ else:
+ return '!<%s>' % suffix_text
+
+ def prepare_anchor(self, anchor):
+ if not anchor:
+ raise EmitterError("anchor must not be empty")
+ for ch in anchor:
+ if not ('0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \
+ or ch in '-_'):
+ raise EmitterError("invalid character %r in the anchor: %r"
+ % (ch, anchor))
+ return anchor
+
+ def analyze_scalar(self, scalar):
+
+ # Empty scalar is a special case.
+ if not scalar:
+ return ScalarAnalysis(scalar=scalar, empty=True, multiline=False,
+ allow_flow_plain=False, allow_block_plain=True,
+ allow_single_quoted=True, allow_double_quoted=True,
+ allow_block=False)
+
+ # Indicators and special characters.
+ block_indicators = False
+ flow_indicators = False
+ line_breaks = False
+ special_characters = False
+
+ # Important whitespace combinations.
+ leading_space = False
+ leading_break = False
+ trailing_space = False
+ trailing_break = False
+ break_space = False
+ space_break = False
+
+ # Check document indicators.
+ if scalar.startswith('---') or scalar.startswith('...'):
+ block_indicators = True
+ flow_indicators = True
+
+ # First character or preceded by a whitespace.
+ preceded_by_whitespace = True
+
+ # Last character or followed by a whitespace.
+ followed_by_whitespace = (len(scalar) == 1 or
+ scalar[1] in '\0 \t\r\n\x85\u2028\u2029')
+
+ # The previous character is a space.
+ previous_space = False
+
+ # The previous character is a break.
+ previous_break = False
+
+ index = 0
+ while index < len(scalar):
+ ch = scalar[index]
+
+ # Check for indicators.
+ if index == 0:
+ # Leading indicators are special characters.
+ if ch in '#,[]{}&*!|>\'\"%@`':
+ flow_indicators = True
+ block_indicators = True
+ if ch in '?:':
+ flow_indicators = True
+ if followed_by_whitespace:
+ block_indicators = True
+ if ch == '-' and followed_by_whitespace:
+ flow_indicators = True
+ block_indicators = True
+ else:
+ # Some indicators cannot appear within a scalar as well.
+ if ch in ',?[]{}':
+ flow_indicators = True
+ if ch == ':':
+ flow_indicators = True
+ if followed_by_whitespace:
+ block_indicators = True
+ if ch == '#' and preceded_by_whitespace:
+ flow_indicators = True
+ block_indicators = True
+
+ # Check for line breaks, special, and unicode characters.
+ if ch in '\n\x85\u2028\u2029':
+ line_breaks = True
+ if not (ch == '\n' or '\x20' <= ch <= '\x7E'):
+ if (ch == '\x85' or '\xA0' <= ch <= '\uD7FF'
+ or '\uE000' <= ch <= '\uFFFD'
+ or '\U00010000' <= ch < '\U0010ffff') and ch != '\uFEFF':
+ unicode_characters = True
+ if not self.allow_unicode:
+ special_characters = True
+ else:
+ special_characters = True
+
+ # Detect important whitespace combinations.
+ if ch == ' ':
+ if index == 0:
+ leading_space = True
+ if index == len(scalar)-1:
+ trailing_space = True
+ if previous_break:
+ break_space = True
+ previous_space = True
+ previous_break = False
+ elif ch in '\n\x85\u2028\u2029':
+ if index == 0:
+ leading_break = True
+ if index == len(scalar)-1:
+ trailing_break = True
+ if previous_space:
+ space_break = True
+ previous_space = False
+ previous_break = True
+ else:
+ previous_space = False
+ previous_break = False
+
+ # Prepare for the next character.
+ index += 1
+ preceded_by_whitespace = (ch in '\0 \t\r\n\x85\u2028\u2029')
+ followed_by_whitespace = (index+1 >= len(scalar) or
+ scalar[index+1] in '\0 \t\r\n\x85\u2028\u2029')
+
+ # Let's decide what styles are allowed.
+ allow_flow_plain = True
+ allow_block_plain = True
+ allow_single_quoted = True
+ allow_double_quoted = True
+ allow_block = True
+
+ # Leading and trailing whitespaces are bad for plain scalars.
+ if (leading_space or leading_break
+ or trailing_space or trailing_break):
+ allow_flow_plain = allow_block_plain = False
+
+ # We do not permit trailing spaces for block scalars.
+ if trailing_space:
+ allow_block = False
+
+ # Spaces at the beginning of a new line are only acceptable for block
+ # scalars.
+ if break_space:
+ allow_flow_plain = allow_block_plain = allow_single_quoted = False
+
+ # Spaces followed by breaks, as well as special character are only
+ # allowed for double quoted scalars.
+ if space_break or special_characters:
+ allow_flow_plain = allow_block_plain = \
+ allow_single_quoted = allow_block = False
+
+ # Although the plain scalar writer supports breaks, we never emit
+ # multiline plain scalars.
+ if line_breaks:
+ allow_flow_plain = allow_block_plain = False
+
+ # Flow indicators are forbidden for flow plain scalars.
+ if flow_indicators:
+ allow_flow_plain = False
+
+ # Block indicators are forbidden for block plain scalars.
+ if block_indicators:
+ allow_block_plain = False
+
+ return ScalarAnalysis(scalar=scalar,
+ empty=False, multiline=line_breaks,
+ allow_flow_plain=allow_flow_plain,
+ allow_block_plain=allow_block_plain,
+ allow_single_quoted=allow_single_quoted,
+ allow_double_quoted=allow_double_quoted,
+ allow_block=allow_block)
+
+ # Writers.
+
+ def flush_stream(self):
+ if hasattr(self.stream, 'flush'):
+ self.stream.flush()
+
+ def write_stream_start(self):
+ # Write BOM if needed.
+ if self.encoding and self.encoding.startswith('utf-16'):
+ self.stream.write('\uFEFF'.encode(self.encoding))
+
+ def write_stream_end(self):
+ self.flush_stream()
+
+ def write_indicator(self, indicator, need_whitespace,
+ whitespace=False, indention=False):
+ if self.whitespace or not need_whitespace:
+ data = indicator
+ else:
+ data = ' '+indicator
+ self.whitespace = whitespace
+ self.indention = self.indention and indention
+ self.column += len(data)
+ self.open_ended = False
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+
+ def write_indent(self):
+ indent = self.indent or 0
+ if not self.indention or self.column > indent \
+ or (self.column == indent and not self.whitespace):
+ self.write_line_break()
+ if self.column < indent:
+ self.whitespace = True
+ data = ' '*(indent-self.column)
+ self.column = indent
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+
+ def write_line_break(self, data=None):
+ if data is None:
+ data = self.best_line_break
+ self.whitespace = True
+ self.indention = True
+ self.line += 1
+ self.column = 0
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+
+ def write_version_directive(self, version_text):
+ data = '%%YAML %s' % version_text
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ self.write_line_break()
+
+ def write_tag_directive(self, handle_text, prefix_text):
+ data = '%%TAG %s %s' % (handle_text, prefix_text)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ self.write_line_break()
+
+ # Scalar streams.
+
+ def write_single_quoted(self, text, split=True):
+ self.write_indicator('\'', True)
+ spaces = False
+ breaks = False
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if spaces:
+ if ch is None or ch != ' ':
+ if start+1 == end and self.column > self.best_width and split \
+ and start != 0 and end != len(text):
+ self.write_indent()
+ else:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ elif breaks:
+ if ch is None or ch not in '\n\x85\u2028\u2029':
+ if text[start] == '\n':
+ self.write_line_break()
+ for br in text[start:end]:
+ if br == '\n':
+ self.write_line_break()
+ else:
+ self.write_line_break(br)
+ self.write_indent()
+ start = end
+ else:
+ if ch is None or ch in ' \n\x85\u2028\u2029' or ch == '\'':
+ if start < end:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ if ch == '\'':
+ data = '\'\''
+ self.column += 2
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end + 1
+ if ch is not None:
+ spaces = (ch == ' ')
+ breaks = (ch in '\n\x85\u2028\u2029')
+ end += 1
+ self.write_indicator('\'', False)
+
+ ESCAPE_REPLACEMENTS = {
+ '\0': '0',
+ '\x07': 'a',
+ '\x08': 'b',
+ '\x09': 't',
+ '\x0A': 'n',
+ '\x0B': 'v',
+ '\x0C': 'f',
+ '\x0D': 'r',
+ '\x1B': 'e',
+ '\"': '\"',
+ '\\': '\\',
+ '\x85': 'N',
+ '\xA0': '_',
+ '\u2028': 'L',
+ '\u2029': 'P',
+ }
+
+ def write_double_quoted(self, text, split=True):
+ self.write_indicator('"', True)
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if ch is None or ch in '"\\\x85\u2028\u2029\uFEFF' \
+ or not ('\x20' <= ch <= '\x7E'
+ or (self.allow_unicode
+ and ('\xA0' <= ch <= '\uD7FF'
+ or '\uE000' <= ch <= '\uFFFD'))):
+ if start < end:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ if ch is not None:
+ if ch in self.ESCAPE_REPLACEMENTS:
+ data = '\\'+self.ESCAPE_REPLACEMENTS[ch]
+ elif ch <= '\xFF':
+ data = '\\x%02X' % ord(ch)
+ elif ch <= '\uFFFF':
+ data = '\\u%04X' % ord(ch)
+ else:
+ data = '\\U%08X' % ord(ch)
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end+1
+ if 0 < end < len(text)-1 and (ch == ' ' or start >= end) \
+ and self.column+(end-start) > self.best_width and split:
+ data = text[start:end]+'\\'
+ if start < end:
+ start = end
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ self.write_indent()
+ self.whitespace = False
+ self.indention = False
+ if text[start] == ' ':
+ data = '\\'
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ end += 1
+ self.write_indicator('"', False)
+
+ def determine_block_hints(self, text):
+ hints = ''
+ if text:
+ if text[0] in ' \n\x85\u2028\u2029':
+ hints += str(self.best_indent)
+ if text[-1] not in '\n\x85\u2028\u2029':
+ hints += '-'
+ elif len(text) == 1 or text[-2] in '\n\x85\u2028\u2029':
+ hints += '+'
+ return hints
+
+ def write_folded(self, text):
+ hints = self.determine_block_hints(text)
+ self.write_indicator('>'+hints, True)
+ if hints[-1:] == '+':
+ self.open_ended = True
+ self.write_line_break()
+ leading_space = True
+ spaces = False
+ breaks = True
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if breaks:
+ if ch is None or ch not in '\n\x85\u2028\u2029':
+ if not leading_space and ch is not None and ch != ' ' \
+ and text[start] == '\n':
+ self.write_line_break()
+ leading_space = (ch == ' ')
+ for br in text[start:end]:
+ if br == '\n':
+ self.write_line_break()
+ else:
+ self.write_line_break(br)
+ if ch is not None:
+ self.write_indent()
+ start = end
+ elif spaces:
+ if ch != ' ':
+ if start+1 == end and self.column > self.best_width:
+ self.write_indent()
+ else:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ else:
+ if ch is None or ch in ' \n\x85\u2028\u2029':
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ if ch is None:
+ self.write_line_break()
+ start = end
+ if ch is not None:
+ breaks = (ch in '\n\x85\u2028\u2029')
+ spaces = (ch == ' ')
+ end += 1
+
+ def write_literal(self, text):
+ hints = self.determine_block_hints(text)
+ self.write_indicator('|'+hints, True)
+ if hints[-1:] == '+':
+ self.open_ended = True
+ self.write_line_break()
+ breaks = True
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if breaks:
+ if ch is None or ch not in '\n\x85\u2028\u2029':
+ for br in text[start:end]:
+ if br == '\n':
+ self.write_line_break()
+ else:
+ self.write_line_break(br)
+ if ch is not None:
+ self.write_indent()
+ start = end
+ else:
+ if ch is None or ch in '\n\x85\u2028\u2029':
+ data = text[start:end]
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ if ch is None:
+ self.write_line_break()
+ start = end
+ if ch is not None:
+ breaks = (ch in '\n\x85\u2028\u2029')
+ end += 1
+
+ def write_plain(self, text, split=True):
+ if self.root_context:
+ self.open_ended = True
+ if not text:
+ return
+ if not self.whitespace:
+ data = ' '
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ self.whitespace = False
+ self.indention = False
+ spaces = False
+ breaks = False
+ start = end = 0
+ while end <= len(text):
+ ch = None
+ if end < len(text):
+ ch = text[end]
+ if spaces:
+ if ch != ' ':
+ if start+1 == end and self.column > self.best_width and split:
+ self.write_indent()
+ self.whitespace = False
+ self.indention = False
+ else:
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ elif breaks:
+ if ch not in '\n\x85\u2028\u2029':
+ if text[start] == '\n':
+ self.write_line_break()
+ for br in text[start:end]:
+ if br == '\n':
+ self.write_line_break()
+ else:
+ self.write_line_break(br)
+ self.write_indent()
+ self.whitespace = False
+ self.indention = False
+ start = end
+ else:
+ if ch is None or ch in ' \n\x85\u2028\u2029':
+ data = text[start:end]
+ self.column += len(data)
+ if self.encoding:
+ data = data.encode(self.encoding)
+ self.stream.write(data)
+ start = end
+ if ch is not None:
+ spaces = (ch == ' ')
+ breaks = (ch in '\n\x85\u2028\u2029')
+ end += 1
diff --git a/yaml/lib3/yaml/error.py b/yaml/lib3/yaml/error.py
new file mode 100644
index 0000000000..b796b4dc51
--- /dev/null
+++ b/yaml/lib3/yaml/error.py
@@ -0,0 +1,75 @@
+
+__all__ = ['Mark', 'YAMLError', 'MarkedYAMLError']
+
+class Mark:
+
+ def __init__(self, name, index, line, column, buffer, pointer):
+ self.name = name
+ self.index = index
+ self.line = line
+ self.column = column
+ self.buffer = buffer
+ self.pointer = pointer
+
+ def get_snippet(self, indent=4, max_length=75):
+ if self.buffer is None:
+ return None
+ head = ''
+ start = self.pointer
+ while start > 0 and self.buffer[start-1] not in '\0\r\n\x85\u2028\u2029':
+ start -= 1
+ if self.pointer-start > max_length/2-1:
+ head = ' ... '
+ start += 5
+ break
+ tail = ''
+ end = self.pointer
+ while end < len(self.buffer) and self.buffer[end] not in '\0\r\n\x85\u2028\u2029':
+ end += 1
+ if end-self.pointer > max_length/2-1:
+ tail = ' ... '
+ end -= 5
+ break
+ snippet = self.buffer[start:end]
+ return ' '*indent + head + snippet + tail + '\n' \
+ + ' '*(indent+self.pointer-start+len(head)) + '^'
+
+ def __str__(self):
+ snippet = self.get_snippet()
+ where = " in \"%s\", line %d, column %d" \
+ % (self.name, self.line+1, self.column+1)
+ if snippet is not None:
+ where += ":\n"+snippet
+ return where
+
+class YAMLError(Exception):
+ pass
+
+class MarkedYAMLError(YAMLError):
+
+ def __init__(self, context=None, context_mark=None,
+ problem=None, problem_mark=None, note=None):
+ self.context = context
+ self.context_mark = context_mark
+ self.problem = problem
+ self.problem_mark = problem_mark
+ self.note = note
+
+ def __str__(self):
+ lines = []
+ if self.context is not None:
+ lines.append(self.context)
+ if self.context_mark is not None \
+ and (self.problem is None or self.problem_mark is None
+ or self.context_mark.name != self.problem_mark.name
+ or self.context_mark.line != self.problem_mark.line
+ or self.context_mark.column != self.problem_mark.column):
+ lines.append(str(self.context_mark))
+ if self.problem is not None:
+ lines.append(self.problem)
+ if self.problem_mark is not None:
+ lines.append(str(self.problem_mark))
+ if self.note is not None:
+ lines.append(self.note)
+ return '\n'.join(lines)
+
diff --git a/yaml/lib3/yaml/events.py b/yaml/lib3/yaml/events.py
new file mode 100644
index 0000000000..f79ad389cb
--- /dev/null
+++ b/yaml/lib3/yaml/events.py
@@ -0,0 +1,86 @@
+
+# Abstract classes.
+
+class Event(object):
+ def __init__(self, start_mark=None, end_mark=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ def __repr__(self):
+ attributes = [key for key in ['anchor', 'tag', 'implicit', 'value']
+ if hasattr(self, key)]
+ arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
+ for key in attributes])
+ return '%s(%s)' % (self.__class__.__name__, arguments)
+
+class NodeEvent(Event):
+ def __init__(self, anchor, start_mark=None, end_mark=None):
+ self.anchor = anchor
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class CollectionStartEvent(NodeEvent):
+ def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None,
+ flow_style=None):
+ self.anchor = anchor
+ self.tag = tag
+ self.implicit = implicit
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.flow_style = flow_style
+
+class CollectionEndEvent(Event):
+ pass
+
+# Implementations.
+
+class StreamStartEvent(Event):
+ def __init__(self, start_mark=None, end_mark=None, encoding=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.encoding = encoding
+
+class StreamEndEvent(Event):
+ pass
+
+class DocumentStartEvent(Event):
+ def __init__(self, start_mark=None, end_mark=None,
+ explicit=None, version=None, tags=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.explicit = explicit
+ self.version = version
+ self.tags = tags
+
+class DocumentEndEvent(Event):
+ def __init__(self, start_mark=None, end_mark=None,
+ explicit=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.explicit = explicit
+
+class AliasEvent(NodeEvent):
+ pass
+
+class ScalarEvent(NodeEvent):
+ def __init__(self, anchor, tag, implicit, value,
+ start_mark=None, end_mark=None, style=None):
+ self.anchor = anchor
+ self.tag = tag
+ self.implicit = implicit
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.style = style
+
+class SequenceStartEvent(CollectionStartEvent):
+ pass
+
+class SequenceEndEvent(CollectionEndEvent):
+ pass
+
+class MappingStartEvent(CollectionStartEvent):
+ pass
+
+class MappingEndEvent(CollectionEndEvent):
+ pass
+
diff --git a/yaml/lib3/yaml/loader.py b/yaml/lib3/yaml/loader.py
new file mode 100644
index 0000000000..e90c11224c
--- /dev/null
+++ b/yaml/lib3/yaml/loader.py
@@ -0,0 +1,63 @@
+
+__all__ = ['BaseLoader', 'FullLoader', 'SafeLoader', 'Loader', 'UnsafeLoader']
+
+from .reader import *
+from .scanner import *
+from .parser import *
+from .composer import *
+from .constructor import *
+from .resolver import *
+
+class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ BaseConstructor.__init__(self)
+ BaseResolver.__init__(self)
+
+class FullLoader(Reader, Scanner, Parser, Composer, FullConstructor, Resolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ FullConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ SafeConstructor.__init__(self)
+ Resolver.__init__(self)
+
+class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ Constructor.__init__(self)
+ Resolver.__init__(self)
+
+# UnsafeLoader is the same as Loader (which is and was always unsafe on
+# untrusted input). Use of either Loader or UnsafeLoader should be rare, since
+# FullLoad should be able to load almost all YAML safely. Loader is left intact
+# to ensure backwards compatibility.
+class UnsafeLoader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
+
+ def __init__(self, stream):
+ Reader.__init__(self, stream)
+ Scanner.__init__(self)
+ Parser.__init__(self)
+ Composer.__init__(self)
+ Constructor.__init__(self)
+ Resolver.__init__(self)
diff --git a/yaml/lib3/yaml/nodes.py b/yaml/lib3/yaml/nodes.py
new file mode 100644
index 0000000000..c4f070c41e
--- /dev/null
+++ b/yaml/lib3/yaml/nodes.py
@@ -0,0 +1,49 @@
+
+class Node(object):
+ def __init__(self, tag, value, start_mark, end_mark):
+ self.tag = tag
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ def __repr__(self):
+ value = self.value
+ #if isinstance(value, list):
+ # if len(value) == 0:
+ # value = '<empty>'
+ # elif len(value) == 1:
+ # value = '<1 item>'
+ # else:
+ # value = '<%d items>' % len(value)
+ #else:
+ # if len(value) > 75:
+ # value = repr(value[:70]+u' ... ')
+ # else:
+ # value = repr(value)
+ value = repr(value)
+ return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)
+
+class ScalarNode(Node):
+ id = 'scalar'
+ def __init__(self, tag, value,
+ start_mark=None, end_mark=None, style=None):
+ self.tag = tag
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.style = style
+
+class CollectionNode(Node):
+ def __init__(self, tag, value,
+ start_mark=None, end_mark=None, flow_style=None):
+ self.tag = tag
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.flow_style = flow_style
+
+class SequenceNode(CollectionNode):
+ id = 'sequence'
+
+class MappingNode(CollectionNode):
+ id = 'mapping'
+
diff --git a/yaml/lib3/yaml/parser.py b/yaml/lib3/yaml/parser.py
new file mode 100644
index 0000000000..13a5995d29
--- /dev/null
+++ b/yaml/lib3/yaml/parser.py
@@ -0,0 +1,589 @@
+
+# The following YAML grammar is LL(1) and is parsed by a recursive descent
+# parser.
+#
+# stream ::= STREAM-START implicit_document? explicit_document* STREAM-END
+# implicit_document ::= block_node DOCUMENT-END*
+# explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
+# block_node_or_indentless_sequence ::=
+# ALIAS
+# | properties (block_content | indentless_block_sequence)?
+# | block_content
+# | indentless_block_sequence
+# block_node ::= ALIAS
+# | properties block_content?
+# | block_content
+# flow_node ::= ALIAS
+# | properties flow_content?
+# | flow_content
+# properties ::= TAG ANCHOR? | ANCHOR TAG?
+# block_content ::= block_collection | flow_collection | SCALAR
+# flow_content ::= flow_collection | SCALAR
+# block_collection ::= block_sequence | block_mapping
+# flow_collection ::= flow_sequence | flow_mapping
+# block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END
+# indentless_sequence ::= (BLOCK-ENTRY block_node?)+
+# block_mapping ::= BLOCK-MAPPING_START
+# ((KEY block_node_or_indentless_sequence?)?
+# (VALUE block_node_or_indentless_sequence?)?)*
+# BLOCK-END
+# flow_sequence ::= FLOW-SEQUENCE-START
+# (flow_sequence_entry FLOW-ENTRY)*
+# flow_sequence_entry?
+# FLOW-SEQUENCE-END
+# flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+# flow_mapping ::= FLOW-MAPPING-START
+# (flow_mapping_entry FLOW-ENTRY)*
+# flow_mapping_entry?
+# FLOW-MAPPING-END
+# flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+#
+# FIRST sets:
+#
+# stream: { STREAM-START }
+# explicit_document: { DIRECTIVE DOCUMENT-START }
+# implicit_document: FIRST(block_node)
+# block_node: { ALIAS TAG ANCHOR SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# flow_node: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# block_content: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR }
+# flow_content: { FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR }
+# block_collection: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START }
+# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# block_sequence: { BLOCK-SEQUENCE-START }
+# block_mapping: { BLOCK-MAPPING-START }
+# block_node_or_indentless_sequence: { ALIAS ANCHOR TAG SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START BLOCK-ENTRY }
+# indentless_sequence: { ENTRY }
+# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START }
+# flow_sequence: { FLOW-SEQUENCE-START }
+# flow_mapping: { FLOW-MAPPING-START }
+# flow_sequence_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY }
+# flow_mapping_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY }
+
+__all__ = ['Parser', 'ParserError']
+
+from .error import MarkedYAMLError
+from .tokens import *
+from .events import *
+from .scanner import *
+
+class ParserError(MarkedYAMLError):
+ pass
+
+class Parser:
+ # Since writing a recursive-descendant parser is a straightforward task, we
+ # do not give many comments here.
+
+ DEFAULT_TAGS = {
+ '!': '!',
+ '!!': 'tag:yaml.org,2002:',
+ }
+
+ def __init__(self):
+ self.current_event = None
+ self.yaml_version = None
+ self.tag_handles = {}
+ self.states = []
+ self.marks = []
+ self.state = self.parse_stream_start
+
+ def dispose(self):
+ # Reset the state attributes (to clear self-references)
+ self.states = []
+ self.state = None
+
+ def check_event(self, *choices):
+ # Check the type of the next event.
+ if self.current_event is None:
+ if self.state:
+ self.current_event = self.state()
+ if self.current_event is not None:
+ if not choices:
+ return True
+ for choice in choices:
+ if isinstance(self.current_event, choice):
+ return True
+ return False
+
+ def peek_event(self):
+ # Get the next event.
+ if self.current_event is None:
+ if self.state:
+ self.current_event = self.state()
+ return self.current_event
+
+ def get_event(self):
+ # Get the next event and proceed further.
+ if self.current_event is None:
+ if self.state:
+ self.current_event = self.state()
+ value = self.current_event
+ self.current_event = None
+ return value
+
+ # stream ::= STREAM-START implicit_document? explicit_document* STREAM-END
+ # implicit_document ::= block_node DOCUMENT-END*
+ # explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
+
+ def parse_stream_start(self):
+
+ # Parse the stream start.
+ token = self.get_token()
+ event = StreamStartEvent(token.start_mark, token.end_mark,
+ encoding=token.encoding)
+
+ # Prepare the next state.
+ self.state = self.parse_implicit_document_start
+
+ return event
+
+ def parse_implicit_document_start(self):
+
+ # Parse an implicit document.
+ if not self.check_token(DirectiveToken, DocumentStartToken,
+ StreamEndToken):
+ self.tag_handles = self.DEFAULT_TAGS
+ token = self.peek_token()
+ start_mark = end_mark = token.start_mark
+ event = DocumentStartEvent(start_mark, end_mark,
+ explicit=False)
+
+ # Prepare the next state.
+ self.states.append(self.parse_document_end)
+ self.state = self.parse_block_node
+
+ return event
+
+ else:
+ return self.parse_document_start()
+
+ def parse_document_start(self):
+
+ # Parse any extra document end indicators.
+ while self.check_token(DocumentEndToken):
+ self.get_token()
+
+ # Parse an explicit document.
+ if not self.check_token(StreamEndToken):
+ token = self.peek_token()
+ start_mark = token.start_mark
+ version, tags = self.process_directives()
+ if not self.check_token(DocumentStartToken):
+ raise ParserError(None, None,
+ "expected '<document start>', but found %r"
+ % self.peek_token().id,
+ self.peek_token().start_mark)
+ token = self.get_token()
+ end_mark = token.end_mark
+ event = DocumentStartEvent(start_mark, end_mark,
+ explicit=True, version=version, tags=tags)
+ self.states.append(self.parse_document_end)
+ self.state = self.parse_document_content
+ else:
+ # Parse the end of the stream.
+ token = self.get_token()
+ event = StreamEndEvent(token.start_mark, token.end_mark)
+ assert not self.states
+ assert not self.marks
+ self.state = None
+ return event
+
+ def parse_document_end(self):
+
+ # Parse the document end.
+ token = self.peek_token()
+ start_mark = end_mark = token.start_mark
+ explicit = False
+ if self.check_token(DocumentEndToken):
+ token = self.get_token()
+ end_mark = token.end_mark
+ explicit = True
+ event = DocumentEndEvent(start_mark, end_mark,
+ explicit=explicit)
+
+ # Prepare the next state.
+ self.state = self.parse_document_start
+
+ return event
+
+ def parse_document_content(self):
+ if self.check_token(DirectiveToken,
+ DocumentStartToken, DocumentEndToken, StreamEndToken):
+ event = self.process_empty_scalar(self.peek_token().start_mark)
+ self.state = self.states.pop()
+ return event
+ else:
+ return self.parse_block_node()
+
+ def process_directives(self):
+ self.yaml_version = None
+ self.tag_handles = {}
+ while self.check_token(DirectiveToken):
+ token = self.get_token()
+ if token.name == 'YAML':
+ if self.yaml_version is not None:
+ raise ParserError(None, None,
+ "found duplicate YAML directive", token.start_mark)
+ major, minor = token.value
+ if major != 1:
+ raise ParserError(None, None,
+ "found incompatible YAML document (version 1.* is required)",
+ token.start_mark)
+ self.yaml_version = token.value
+ elif token.name == 'TAG':
+ handle, prefix = token.value
+ if handle in self.tag_handles:
+ raise ParserError(None, None,
+ "duplicate tag handle %r" % handle,
+ token.start_mark)
+ self.tag_handles[handle] = prefix
+ if self.tag_handles:
+ value = self.yaml_version, self.tag_handles.copy()
+ else:
+ value = self.yaml_version, None
+ for key in self.DEFAULT_TAGS:
+ if key not in self.tag_handles:
+ self.tag_handles[key] = self.DEFAULT_TAGS[key]
+ return value
+
+ # block_node_or_indentless_sequence ::= ALIAS
+ # | properties (block_content | indentless_block_sequence)?
+ # | block_content
+ # | indentless_block_sequence
+ # block_node ::= ALIAS
+ # | properties block_content?
+ # | block_content
+ # flow_node ::= ALIAS
+ # | properties flow_content?
+ # | flow_content
+ # properties ::= TAG ANCHOR? | ANCHOR TAG?
+ # block_content ::= block_collection | flow_collection | SCALAR
+ # flow_content ::= flow_collection | SCALAR
+ # block_collection ::= block_sequence | block_mapping
+ # flow_collection ::= flow_sequence | flow_mapping
+
+ def parse_block_node(self):
+ return self.parse_node(block=True)
+
+ def parse_flow_node(self):
+ return self.parse_node()
+
+ def parse_block_node_or_indentless_sequence(self):
+ return self.parse_node(block=True, indentless_sequence=True)
+
+ def parse_node(self, block=False, indentless_sequence=False):
+ if self.check_token(AliasToken):
+ token = self.get_token()
+ event = AliasEvent(token.value, token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ else:
+ anchor = None
+ tag = None
+ start_mark = end_mark = tag_mark = None
+ if self.check_token(AnchorToken):
+ token = self.get_token()
+ start_mark = token.start_mark
+ end_mark = token.end_mark
+ anchor = token.value
+ if self.check_token(TagToken):
+ token = self.get_token()
+ tag_mark = token.start_mark
+ end_mark = token.end_mark
+ tag = token.value
+ elif self.check_token(TagToken):
+ token = self.get_token()
+ start_mark = tag_mark = token.start_mark
+ end_mark = token.end_mark
+ tag = token.value
+ if self.check_token(AnchorToken):
+ token = self.get_token()
+ end_mark = token.end_mark
+ anchor = token.value
+ if tag is not None:
+ handle, suffix = tag
+ if handle is not None:
+ if handle not in self.tag_handles:
+ raise ParserError("while parsing a node", start_mark,
+ "found undefined tag handle %r" % handle,
+ tag_mark)
+ tag = self.tag_handles[handle]+suffix
+ else:
+ tag = suffix
+ #if tag == '!':
+ # raise ParserError("while parsing a node", start_mark,
+ # "found non-specific tag '!'", tag_mark,
+ # "Please check 'http://pyyaml.org/wiki/YAMLNonSpecificTag' and share your opinion.")
+ if start_mark is None:
+ start_mark = end_mark = self.peek_token().start_mark
+ event = None
+ implicit = (tag is None or tag == '!')
+ if indentless_sequence and self.check_token(BlockEntryToken):
+ end_mark = self.peek_token().end_mark
+ event = SequenceStartEvent(anchor, tag, implicit,
+ start_mark, end_mark)
+ self.state = self.parse_indentless_sequence_entry
+ else:
+ if self.check_token(ScalarToken):
+ token = self.get_token()
+ end_mark = token.end_mark
+ if (token.plain and tag is None) or tag == '!':
+ implicit = (True, False)
+ elif tag is None:
+ implicit = (False, True)
+ else:
+ implicit = (False, False)
+ event = ScalarEvent(anchor, tag, implicit, token.value,
+ start_mark, end_mark, style=token.style)
+ self.state = self.states.pop()
+ elif self.check_token(FlowSequenceStartToken):
+ end_mark = self.peek_token().end_mark
+ event = SequenceStartEvent(anchor, tag, implicit,
+ start_mark, end_mark, flow_style=True)
+ self.state = self.parse_flow_sequence_first_entry
+ elif self.check_token(FlowMappingStartToken):
+ end_mark = self.peek_token().end_mark
+ event = MappingStartEvent(anchor, tag, implicit,
+ start_mark, end_mark, flow_style=True)
+ self.state = self.parse_flow_mapping_first_key
+ elif block and self.check_token(BlockSequenceStartToken):
+ end_mark = self.peek_token().start_mark
+ event = SequenceStartEvent(anchor, tag, implicit,
+ start_mark, end_mark, flow_style=False)
+ self.state = self.parse_block_sequence_first_entry
+ elif block and self.check_token(BlockMappingStartToken):
+ end_mark = self.peek_token().start_mark
+ event = MappingStartEvent(anchor, tag, implicit,
+ start_mark, end_mark, flow_style=False)
+ self.state = self.parse_block_mapping_first_key
+ elif anchor is not None or tag is not None:
+ # Empty scalars are allowed even if a tag or an anchor is
+ # specified.
+ event = ScalarEvent(anchor, tag, (implicit, False), '',
+ start_mark, end_mark)
+ self.state = self.states.pop()
+ else:
+ if block:
+ node = 'block'
+ else:
+ node = 'flow'
+ token = self.peek_token()
+ raise ParserError("while parsing a %s node" % node, start_mark,
+ "expected the node content, but found %r" % token.id,
+ token.start_mark)
+ return event
+
+ # block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END
+
+ def parse_block_sequence_first_entry(self):
+ token = self.get_token()
+ self.marks.append(token.start_mark)
+ return self.parse_block_sequence_entry()
+
+ def parse_block_sequence_entry(self):
+ if self.check_token(BlockEntryToken):
+ token = self.get_token()
+ if not self.check_token(BlockEntryToken, BlockEndToken):
+ self.states.append(self.parse_block_sequence_entry)
+ return self.parse_block_node()
+ else:
+ self.state = self.parse_block_sequence_entry
+ return self.process_empty_scalar(token.end_mark)
+ if not self.check_token(BlockEndToken):
+ token = self.peek_token()
+ raise ParserError("while parsing a block collection", self.marks[-1],
+ "expected <block end>, but found %r" % token.id, token.start_mark)
+ token = self.get_token()
+ event = SequenceEndEvent(token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ self.marks.pop()
+ return event
+
+ # indentless_sequence ::= (BLOCK-ENTRY block_node?)+
+
+ def parse_indentless_sequence_entry(self):
+ if self.check_token(BlockEntryToken):
+ token = self.get_token()
+ if not self.check_token(BlockEntryToken,
+ KeyToken, ValueToken, BlockEndToken):
+ self.states.append(self.parse_indentless_sequence_entry)
+ return self.parse_block_node()
+ else:
+ self.state = self.parse_indentless_sequence_entry
+ return self.process_empty_scalar(token.end_mark)
+ token = self.peek_token()
+ event = SequenceEndEvent(token.start_mark, token.start_mark)
+ self.state = self.states.pop()
+ return event
+
+ # block_mapping ::= BLOCK-MAPPING_START
+ # ((KEY block_node_or_indentless_sequence?)?
+ # (VALUE block_node_or_indentless_sequence?)?)*
+ # BLOCK-END
+
+ def parse_block_mapping_first_key(self):
+ token = self.get_token()
+ self.marks.append(token.start_mark)
+ return self.parse_block_mapping_key()
+
+ def parse_block_mapping_key(self):
+ if self.check_token(KeyToken):
+ token = self.get_token()
+ if not self.check_token(KeyToken, ValueToken, BlockEndToken):
+ self.states.append(self.parse_block_mapping_value)
+ return self.parse_block_node_or_indentless_sequence()
+ else:
+ self.state = self.parse_block_mapping_value
+ return self.process_empty_scalar(token.end_mark)
+ if not self.check_token(BlockEndToken):
+ token = self.peek_token()
+ raise ParserError("while parsing a block mapping", self.marks[-1],
+ "expected <block end>, but found %r" % token.id, token.start_mark)
+ token = self.get_token()
+ event = MappingEndEvent(token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ self.marks.pop()
+ return event
+
+ def parse_block_mapping_value(self):
+ if self.check_token(ValueToken):
+ token = self.get_token()
+ if not self.check_token(KeyToken, ValueToken, BlockEndToken):
+ self.states.append(self.parse_block_mapping_key)
+ return self.parse_block_node_or_indentless_sequence()
+ else:
+ self.state = self.parse_block_mapping_key
+ return self.process_empty_scalar(token.end_mark)
+ else:
+ self.state = self.parse_block_mapping_key
+ token = self.peek_token()
+ return self.process_empty_scalar(token.start_mark)
+
+ # flow_sequence ::= FLOW-SEQUENCE-START
+ # (flow_sequence_entry FLOW-ENTRY)*
+ # flow_sequence_entry?
+ # FLOW-SEQUENCE-END
+ # flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+ #
+ # Note that while production rules for both flow_sequence_entry and
+ # flow_mapping_entry are equal, their interpretations are different.
+ # For `flow_sequence_entry`, the part `KEY flow_node? (VALUE flow_node?)?`
+ # generate an inline mapping (set syntax).
+
+ def parse_flow_sequence_first_entry(self):
+ token = self.get_token()
+ self.marks.append(token.start_mark)
+ return self.parse_flow_sequence_entry(first=True)
+
+ def parse_flow_sequence_entry(self, first=False):
+ if not self.check_token(FlowSequenceEndToken):
+ if not first:
+ if self.check_token(FlowEntryToken):
+ self.get_token()
+ else:
+ token = self.peek_token()
+ raise ParserError("while parsing a flow sequence", self.marks[-1],
+ "expected ',' or ']', but got %r" % token.id, token.start_mark)
+
+ if self.check_token(KeyToken):
+ token = self.peek_token()
+ event = MappingStartEvent(None, None, True,
+ token.start_mark, token.end_mark,
+ flow_style=True)
+ self.state = self.parse_flow_sequence_entry_mapping_key
+ return event
+ elif not self.check_token(FlowSequenceEndToken):
+ self.states.append(self.parse_flow_sequence_entry)
+ return self.parse_flow_node()
+ token = self.get_token()
+ event = SequenceEndEvent(token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ self.marks.pop()
+ return event
+
+ def parse_flow_sequence_entry_mapping_key(self):
+ token = self.get_token()
+ if not self.check_token(ValueToken,
+ FlowEntryToken, FlowSequenceEndToken):
+ self.states.append(self.parse_flow_sequence_entry_mapping_value)
+ return self.parse_flow_node()
+ else:
+ self.state = self.parse_flow_sequence_entry_mapping_value
+ return self.process_empty_scalar(token.end_mark)
+
+ def parse_flow_sequence_entry_mapping_value(self):
+ if self.check_token(ValueToken):
+ token = self.get_token()
+ if not self.check_token(FlowEntryToken, FlowSequenceEndToken):
+ self.states.append(self.parse_flow_sequence_entry_mapping_end)
+ return self.parse_flow_node()
+ else:
+ self.state = self.parse_flow_sequence_entry_mapping_end
+ return self.process_empty_scalar(token.end_mark)
+ else:
+ self.state = self.parse_flow_sequence_entry_mapping_end
+ token = self.peek_token()
+ return self.process_empty_scalar(token.start_mark)
+
+ def parse_flow_sequence_entry_mapping_end(self):
+ self.state = self.parse_flow_sequence_entry
+ token = self.peek_token()
+ return MappingEndEvent(token.start_mark, token.start_mark)
+
+ # flow_mapping ::= FLOW-MAPPING-START
+ # (flow_mapping_entry FLOW-ENTRY)*
+ # flow_mapping_entry?
+ # FLOW-MAPPING-END
+ # flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)?
+
+ def parse_flow_mapping_first_key(self):
+ token = self.get_token()
+ self.marks.append(token.start_mark)
+ return self.parse_flow_mapping_key(first=True)
+
+ def parse_flow_mapping_key(self, first=False):
+ if not self.check_token(FlowMappingEndToken):
+ if not first:
+ if self.check_token(FlowEntryToken):
+ self.get_token()
+ else:
+ token = self.peek_token()
+ raise ParserError("while parsing a flow mapping", self.marks[-1],
+ "expected ',' or '}', but got %r" % token.id, token.start_mark)
+ if self.check_token(KeyToken):
+ token = self.get_token()
+ if not self.check_token(ValueToken,
+ FlowEntryToken, FlowMappingEndToken):
+ self.states.append(self.parse_flow_mapping_value)
+ return self.parse_flow_node()
+ else:
+ self.state = self.parse_flow_mapping_value
+ return self.process_empty_scalar(token.end_mark)
+ elif not self.check_token(FlowMappingEndToken):
+ self.states.append(self.parse_flow_mapping_empty_value)
+ return self.parse_flow_node()
+ token = self.get_token()
+ event = MappingEndEvent(token.start_mark, token.end_mark)
+ self.state = self.states.pop()
+ self.marks.pop()
+ return event
+
+ def parse_flow_mapping_value(self):
+ if self.check_token(ValueToken):
+ token = self.get_token()
+ if not self.check_token(FlowEntryToken, FlowMappingEndToken):
+ self.states.append(self.parse_flow_mapping_key)
+ return self.parse_flow_node()
+ else:
+ self.state = self.parse_flow_mapping_key
+ return self.process_empty_scalar(token.end_mark)
+ else:
+ self.state = self.parse_flow_mapping_key
+ token = self.peek_token()
+ return self.process_empty_scalar(token.start_mark)
+
+ def parse_flow_mapping_empty_value(self):
+ self.state = self.parse_flow_mapping_key
+ return self.process_empty_scalar(self.peek_token().start_mark)
+
+ def process_empty_scalar(self, mark):
+ return ScalarEvent(None, None, (True, False), '', mark, mark)
+
diff --git a/yaml/lib3/yaml/reader.py b/yaml/lib3/yaml/reader.py
new file mode 100644
index 0000000000..774b0219b5
--- /dev/null
+++ b/yaml/lib3/yaml/reader.py
@@ -0,0 +1,185 @@
+# This module contains abstractions for the input stream. You don't have to
+# looks further, there are no pretty code.
+#
+# We define two classes here.
+#
+# Mark(source, line, column)
+# It's just a record and its only use is producing nice error messages.
+# Parser does not use it for any other purposes.
+#
+# Reader(source, data)
+# Reader determines the encoding of `data` and converts it to unicode.
+# Reader provides the following methods and attributes:
+# reader.peek(length=1) - return the next `length` characters
+# reader.forward(length=1) - move the current position to `length` characters.
+# reader.index - the number of the current character.
+# reader.line, stream.column - the line and the column of the current character.
+
+__all__ = ['Reader', 'ReaderError']
+
+from .error import YAMLError, Mark
+
+import codecs, re
+
+class ReaderError(YAMLError):
+
+ def __init__(self, name, position, character, encoding, reason):
+ self.name = name
+ self.character = character
+ self.position = position
+ self.encoding = encoding
+ self.reason = reason
+
+ def __str__(self):
+ if isinstance(self.character, bytes):
+ return "'%s' codec can't decode byte #x%02x: %s\n" \
+ " in \"%s\", position %d" \
+ % (self.encoding, ord(self.character), self.reason,
+ self.name, self.position)
+ else:
+ return "unacceptable character #x%04x: %s\n" \
+ " in \"%s\", position %d" \
+ % (self.character, self.reason,
+ self.name, self.position)
+
+class Reader(object):
+ # Reader:
+ # - determines the data encoding and converts it to a unicode string,
+ # - checks if characters are in allowed range,
+ # - adds '\0' to the end.
+
+ # Reader accepts
+ # - a `bytes` object,
+ # - a `str` object,
+ # - a file-like object with its `read` method returning `str`,
+ # - a file-like object with its `read` method returning `unicode`.
+
+ # Yeah, it's ugly and slow.
+
+ def __init__(self, stream):
+ self.name = None
+ self.stream = None
+ self.stream_pointer = 0
+ self.eof = True
+ self.buffer = ''
+ self.pointer = 0
+ self.raw_buffer = None
+ self.raw_decode = None
+ self.encoding = None
+ self.index = 0
+ self.line = 0
+ self.column = 0
+ if isinstance(stream, str):
+ self.name = "<unicode string>"
+ self.check_printable(stream)
+ self.buffer = stream+'\0'
+ elif isinstance(stream, bytes):
+ self.name = "<byte string>"
+ self.raw_buffer = stream
+ self.determine_encoding()
+ else:
+ self.stream = stream
+ self.name = getattr(stream, 'name', "<file>")
+ self.eof = False
+ self.raw_buffer = None
+ self.determine_encoding()
+
+ def peek(self, index=0):
+ try:
+ return self.buffer[self.pointer+index]
+ except IndexError:
+ self.update(index+1)
+ return self.buffer[self.pointer+index]
+
+ def prefix(self, length=1):
+ if self.pointer+length >= len(self.buffer):
+ self.update(length)
+ return self.buffer[self.pointer:self.pointer+length]
+
+ def forward(self, length=1):
+ if self.pointer+length+1 >= len(self.buffer):
+ self.update(length+1)
+ while length:
+ ch = self.buffer[self.pointer]
+ self.pointer += 1
+ self.index += 1
+ if ch in '\n\x85\u2028\u2029' \
+ or (ch == '\r' and self.buffer[self.pointer] != '\n'):
+ self.line += 1
+ self.column = 0
+ elif ch != '\uFEFF':
+ self.column += 1
+ length -= 1
+
+ def get_mark(self):
+ if self.stream is None:
+ return Mark(self.name, self.index, self.line, self.column,
+ self.buffer, self.pointer)
+ else:
+ return Mark(self.name, self.index, self.line, self.column,
+ None, None)
+
+ def determine_encoding(self):
+ while not self.eof and (self.raw_buffer is None or len(self.raw_buffer) < 2):
+ self.update_raw()
+ if isinstance(self.raw_buffer, bytes):
+ if self.raw_buffer.startswith(codecs.BOM_UTF16_LE):
+ self.raw_decode = codecs.utf_16_le_decode
+ self.encoding = 'utf-16-le'
+ elif self.raw_buffer.startswith(codecs.BOM_UTF16_BE):
+ self.raw_decode = codecs.utf_16_be_decode
+ self.encoding = 'utf-16-be'
+ else:
+ self.raw_decode = codecs.utf_8_decode
+ self.encoding = 'utf-8'
+ self.update(1)
+
+ NON_PRINTABLE = re.compile('[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]')
+ def check_printable(self, data):
+ match = self.NON_PRINTABLE.search(data)
+ if match:
+ character = match.group()
+ position = self.index+(len(self.buffer)-self.pointer)+match.start()
+ raise ReaderError(self.name, position, ord(character),
+ 'unicode', "special characters are not allowed")
+
+ def update(self, length):
+ if self.raw_buffer is None:
+ return
+ self.buffer = self.buffer[self.pointer:]
+ self.pointer = 0
+ while len(self.buffer) < length:
+ if not self.eof:
+ self.update_raw()
+ if self.raw_decode is not None:
+ try:
+ data, converted = self.raw_decode(self.raw_buffer,
+ 'strict', self.eof)
+ except UnicodeDecodeError as exc:
+ character = self.raw_buffer[exc.start]
+ if self.stream is not None:
+ position = self.stream_pointer-len(self.raw_buffer)+exc.start
+ else:
+ position = exc.start
+ raise ReaderError(self.name, position, character,
+ exc.encoding, exc.reason)
+ else:
+ data = self.raw_buffer
+ converted = len(data)
+ self.check_printable(data)
+ self.buffer += data
+ self.raw_buffer = self.raw_buffer[converted:]
+ if self.eof:
+ self.buffer += '\0'
+ self.raw_buffer = None
+ break
+
+ def update_raw(self, size=4096):
+ data = self.stream.read(size)
+ if self.raw_buffer is None:
+ self.raw_buffer = data
+ else:
+ self.raw_buffer += data
+ self.stream_pointer += len(data)
+ if not data:
+ self.eof = True
diff --git a/yaml/lib3/yaml/representer.py b/yaml/lib3/yaml/representer.py
new file mode 100644
index 0000000000..3b0b192ef3
--- /dev/null
+++ b/yaml/lib3/yaml/representer.py
@@ -0,0 +1,389 @@
+
+__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer',
+ 'RepresenterError']
+
+from .error import *
+from .nodes import *
+
+import datetime, copyreg, types, base64, collections
+
+class RepresenterError(YAMLError):
+ pass
+
+class BaseRepresenter:
+
+ yaml_representers = {}
+ yaml_multi_representers = {}
+
+ def __init__(self, default_style=None, default_flow_style=False, sort_keys=True):
+ self.default_style = default_style
+ self.sort_keys = sort_keys
+ self.default_flow_style = default_flow_style
+ self.represented_objects = {}
+ self.object_keeper = []
+ self.alias_key = None
+
+ def represent(self, data):
+ node = self.represent_data(data)
+ self.serialize(node)
+ self.represented_objects = {}
+ self.object_keeper = []
+ self.alias_key = None
+
+ def represent_data(self, data):
+ if self.ignore_aliases(data):
+ self.alias_key = None
+ else:
+ self.alias_key = id(data)
+ if self.alias_key is not None:
+ if self.alias_key in self.represented_objects:
+ node = self.represented_objects[self.alias_key]
+ #if node is None:
+ # raise RepresenterError("recursive objects are not allowed: %r" % data)
+ return node
+ #self.represented_objects[alias_key] = None
+ self.object_keeper.append(data)
+ data_types = type(data).__mro__
+ if data_types[0] in self.yaml_representers:
+ node = self.yaml_representers[data_types[0]](self, data)
+ else:
+ for data_type in data_types:
+ if data_type in self.yaml_multi_representers:
+ node = self.yaml_multi_representers[data_type](self, data)
+ break
+ else:
+ if None in self.yaml_multi_representers:
+ node = self.yaml_multi_representers[None](self, data)
+ elif None in self.yaml_representers:
+ node = self.yaml_representers[None](self, data)
+ else:
+ node = ScalarNode(None, str(data))
+ #if alias_key is not None:
+ # self.represented_objects[alias_key] = node
+ return node
+
+ @classmethod
+ def add_representer(cls, data_type, representer):
+ if not 'yaml_representers' in cls.__dict__:
+ cls.yaml_representers = cls.yaml_representers.copy()
+ cls.yaml_representers[data_type] = representer
+
+ @classmethod
+ def add_multi_representer(cls, data_type, representer):
+ if not 'yaml_multi_representers' in cls.__dict__:
+ cls.yaml_multi_representers = cls.yaml_multi_representers.copy()
+ cls.yaml_multi_representers[data_type] = representer
+
+ def represent_scalar(self, tag, value, style=None):
+ if style is None:
+ style = self.default_style
+ node = ScalarNode(tag, value, style=style)
+ if self.alias_key is not None:
+ self.represented_objects[self.alias_key] = node
+ return node
+
+ def represent_sequence(self, tag, sequence, flow_style=None):
+ value = []
+ node = SequenceNode(tag, value, flow_style=flow_style)
+ if self.alias_key is not None:
+ self.represented_objects[self.alias_key] = node
+ best_style = True
+ for item in sequence:
+ node_item = self.represent_data(item)
+ if not (isinstance(node_item, ScalarNode) and not node_item.style):
+ best_style = False
+ value.append(node_item)
+ if flow_style is None:
+ if self.default_flow_style is not None:
+ node.flow_style = self.default_flow_style
+ else:
+ node.flow_style = best_style
+ return node
+
+ def represent_mapping(self, tag, mapping, flow_style=None):
+ value = []
+ node = MappingNode(tag, value, flow_style=flow_style)
+ if self.alias_key is not None:
+ self.represented_objects[self.alias_key] = node
+ best_style = True
+ if hasattr(mapping, 'items'):
+ mapping = list(mapping.items())
+ if self.sort_keys:
+ try:
+ mapping = sorted(mapping)
+ except TypeError:
+ pass
+ for item_key, item_value in mapping:
+ node_key = self.represent_data(item_key)
+ node_value = self.represent_data(item_value)
+ if not (isinstance(node_key, ScalarNode) and not node_key.style):
+ best_style = False
+ if not (isinstance(node_value, ScalarNode) and not node_value.style):
+ best_style = False
+ value.append((node_key, node_value))
+ if flow_style is None:
+ if self.default_flow_style is not None:
+ node.flow_style = self.default_flow_style
+ else:
+ node.flow_style = best_style
+ return node
+
+ def ignore_aliases(self, data):
+ return False
+
+class SafeRepresenter(BaseRepresenter):
+
+ def ignore_aliases(self, data):
+ if data is None:
+ return True
+ if isinstance(data, tuple) and data == ():
+ return True
+ if isinstance(data, (str, bytes, bool, int, float)):
+ return True
+
+ def represent_none(self, data):
+ return self.represent_scalar('tag:yaml.org,2002:null', 'null')
+
+ def represent_str(self, data):
+ return self.represent_scalar('tag:yaml.org,2002:str', data)
+
+ def represent_binary(self, data):
+ if hasattr(base64, 'encodebytes'):
+ data = base64.encodebytes(data).decode('ascii')
+ else:
+ data = base64.encodestring(data).decode('ascii')
+ return self.represent_scalar('tag:yaml.org,2002:binary', data, style='|')
+
+ def represent_bool(self, data):
+ if data:
+ value = 'true'
+ else:
+ value = 'false'
+ return self.represent_scalar('tag:yaml.org,2002:bool', value)
+
+ def represent_int(self, data):
+ return self.represent_scalar('tag:yaml.org,2002:int', str(data))
+
+ inf_value = 1e300
+ while repr(inf_value) != repr(inf_value*inf_value):
+ inf_value *= inf_value
+
+ def represent_float(self, data):
+ if data != data or (data == 0.0 and data == 1.0):
+ value = '.nan'
+ elif data == self.inf_value:
+ value = '.inf'
+ elif data == -self.inf_value:
+ value = '-.inf'
+ else:
+ value = repr(data).lower()
+ # Note that in some cases `repr(data)` represents a float number
+ # without the decimal parts. For instance:
+ # >>> repr(1e17)
+ # '1e17'
+ # Unfortunately, this is not a valid float representation according
+ # to the definition of the `!!float` tag. We fix this by adding
+ # '.0' before the 'e' symbol.
+ if '.' not in value and 'e' in value:
+ value = value.replace('e', '.0e', 1)
+ return self.represent_scalar('tag:yaml.org,2002:float', value)
+
+ def represent_list(self, data):
+ #pairs = (len(data) > 0 and isinstance(data, list))
+ #if pairs:
+ # for item in data:
+ # if not isinstance(item, tuple) or len(item) != 2:
+ # pairs = False
+ # break
+ #if not pairs:
+ return self.represent_sequence('tag:yaml.org,2002:seq', data)
+ #value = []
+ #for item_key, item_value in data:
+ # value.append(self.represent_mapping(u'tag:yaml.org,2002:map',
+ # [(item_key, item_value)]))
+ #return SequenceNode(u'tag:yaml.org,2002:pairs', value)
+
+ def represent_dict(self, data):
+ return self.represent_mapping('tag:yaml.org,2002:map', data)
+
+ def represent_set(self, data):
+ value = {}
+ for key in data:
+ value[key] = None
+ return self.represent_mapping('tag:yaml.org,2002:set', value)
+
+ def represent_date(self, data):
+ value = data.isoformat()
+ return self.represent_scalar('tag:yaml.org,2002:timestamp', value)
+
+ def represent_datetime(self, data):
+ value = data.isoformat(' ')
+ return self.represent_scalar('tag:yaml.org,2002:timestamp', value)
+
+ def represent_yaml_object(self, tag, data, cls, flow_style=None):
+ if hasattr(data, '__getstate__'):
+ state = data.__getstate__()
+ else:
+ state = data.__dict__.copy()
+ return self.represent_mapping(tag, state, flow_style=flow_style)
+
+ def represent_undefined(self, data):
+ raise RepresenterError("cannot represent an object", data)
+
+SafeRepresenter.add_representer(type(None),
+ SafeRepresenter.represent_none)
+
+SafeRepresenter.add_representer(str,
+ SafeRepresenter.represent_str)
+
+SafeRepresenter.add_representer(bytes,
+ SafeRepresenter.represent_binary)
+
+SafeRepresenter.add_representer(bool,
+ SafeRepresenter.represent_bool)
+
+SafeRepresenter.add_representer(int,
+ SafeRepresenter.represent_int)
+
+SafeRepresenter.add_representer(float,
+ SafeRepresenter.represent_float)
+
+SafeRepresenter.add_representer(list,
+ SafeRepresenter.represent_list)
+
+SafeRepresenter.add_representer(tuple,
+ SafeRepresenter.represent_list)
+
+SafeRepresenter.add_representer(dict,
+ SafeRepresenter.represent_dict)
+
+SafeRepresenter.add_representer(set,
+ SafeRepresenter.represent_set)
+
+SafeRepresenter.add_representer(datetime.date,
+ SafeRepresenter.represent_date)
+
+SafeRepresenter.add_representer(datetime.datetime,
+ SafeRepresenter.represent_datetime)
+
+SafeRepresenter.add_representer(None,
+ SafeRepresenter.represent_undefined)
+
+class Representer(SafeRepresenter):
+
+ def represent_complex(self, data):
+ if data.imag == 0.0:
+ data = '%r' % data.real
+ elif data.real == 0.0:
+ data = '%rj' % data.imag
+ elif data.imag > 0:
+ data = '%r+%rj' % (data.real, data.imag)
+ else:
+ data = '%r%rj' % (data.real, data.imag)
+ return self.represent_scalar('tag:yaml.org,2002:python/complex', data)
+
+ def represent_tuple(self, data):
+ return self.represent_sequence('tag:yaml.org,2002:python/tuple', data)
+
+ def represent_name(self, data):
+ name = '%s.%s' % (data.__module__, data.__name__)
+ return self.represent_scalar('tag:yaml.org,2002:python/name:'+name, '')
+
+ def represent_module(self, data):
+ return self.represent_scalar(
+ 'tag:yaml.org,2002:python/module:'+data.__name__, '')
+
+ def represent_object(self, data):
+ # We use __reduce__ API to save the data. data.__reduce__ returns
+ # a tuple of length 2-5:
+ # (function, args, state, listitems, dictitems)
+
+ # For reconstructing, we calls function(*args), then set its state,
+ # listitems, and dictitems if they are not None.
+
+ # A special case is when function.__name__ == '__newobj__'. In this
+ # case we create the object with args[0].__new__(*args).
+
+ # Another special case is when __reduce__ returns a string - we don't
+ # support it.
+
+ # We produce a !!python/object, !!python/object/new or
+ # !!python/object/apply node.
+
+ cls = type(data)
+ if cls in copyreg.dispatch_table:
+ reduce = copyreg.dispatch_table[cls](data)
+ elif hasattr(data, '__reduce_ex__'):
+ reduce = data.__reduce_ex__(2)
+ elif hasattr(data, '__reduce__'):
+ reduce = data.__reduce__()
+ else:
+ raise RepresenterError("cannot represent an object", data)
+ reduce = (list(reduce)+[None]*5)[:5]
+ function, args, state, listitems, dictitems = reduce
+ args = list(args)
+ if state is None:
+ state = {}
+ if listitems is not None:
+ listitems = list(listitems)
+ if dictitems is not None:
+ dictitems = dict(dictitems)
+ if function.__name__ == '__newobj__':
+ function = args[0]
+ args = args[1:]
+ tag = 'tag:yaml.org,2002:python/object/new:'
+ newobj = True
+ else:
+ tag = 'tag:yaml.org,2002:python/object/apply:'
+ newobj = False
+ function_name = '%s.%s' % (function.__module__, function.__name__)
+ if not args and not listitems and not dictitems \
+ and isinstance(state, dict) and newobj:
+ return self.represent_mapping(
+ 'tag:yaml.org,2002:python/object:'+function_name, state)
+ if not listitems and not dictitems \
+ and isinstance(state, dict) and not state:
+ return self.represent_sequence(tag+function_name, args)
+ value = {}
+ if args:
+ value['args'] = args
+ if state or not isinstance(state, dict):
+ value['state'] = state
+ if listitems:
+ value['listitems'] = listitems
+ if dictitems:
+ value['dictitems'] = dictitems
+ return self.represent_mapping(tag+function_name, value)
+
+ def represent_ordered_dict(self, data):
+ # Provide uniform representation across different Python versions.
+ data_type = type(data)
+ tag = 'tag:yaml.org,2002:python/object/apply:%s.%s' \
+ % (data_type.__module__, data_type.__name__)
+ items = [[key, value] for key, value in data.items()]
+ return self.represent_sequence(tag, [items])
+
+Representer.add_representer(complex,
+ Representer.represent_complex)
+
+Representer.add_representer(tuple,
+ Representer.represent_tuple)
+
+Representer.add_representer(type,
+ Representer.represent_name)
+
+Representer.add_representer(collections.OrderedDict,
+ Representer.represent_ordered_dict)
+
+Representer.add_representer(types.FunctionType,
+ Representer.represent_name)
+
+Representer.add_representer(types.BuiltinFunctionType,
+ Representer.represent_name)
+
+Representer.add_representer(types.ModuleType,
+ Representer.represent_module)
+
+Representer.add_multi_representer(object,
+ Representer.represent_object)
+
diff --git a/yaml/lib3/yaml/resolver.py b/yaml/lib3/yaml/resolver.py
new file mode 100644
index 0000000000..02b82e73ee
--- /dev/null
+++ b/yaml/lib3/yaml/resolver.py
@@ -0,0 +1,227 @@
+
+__all__ = ['BaseResolver', 'Resolver']
+
+from .error import *
+from .nodes import *
+
+import re
+
+class ResolverError(YAMLError):
+ pass
+
+class BaseResolver:
+
+ DEFAULT_SCALAR_TAG = 'tag:yaml.org,2002:str'
+ DEFAULT_SEQUENCE_TAG = 'tag:yaml.org,2002:seq'
+ DEFAULT_MAPPING_TAG = 'tag:yaml.org,2002:map'
+
+ yaml_implicit_resolvers = {}
+ yaml_path_resolvers = {}
+
+ def __init__(self):
+ self.resolver_exact_paths = []
+ self.resolver_prefix_paths = []
+
+ @classmethod
+ def add_implicit_resolver(cls, tag, regexp, first):
+ if not 'yaml_implicit_resolvers' in cls.__dict__:
+ implicit_resolvers = {}
+ for key in cls.yaml_implicit_resolvers:
+ implicit_resolvers[key] = cls.yaml_implicit_resolvers[key][:]
+ cls.yaml_implicit_resolvers = implicit_resolvers
+ if first is None:
+ first = [None]
+ for ch in first:
+ cls.yaml_implicit_resolvers.setdefault(ch, []).append((tag, regexp))
+
+ @classmethod
+ def add_path_resolver(cls, tag, path, kind=None):
+ # Note: `add_path_resolver` is experimental. The API could be changed.
+ # `new_path` is a pattern that is matched against the path from the
+ # root to the node that is being considered. `node_path` elements are
+ # tuples `(node_check, index_check)`. `node_check` is a node class:
+ # `ScalarNode`, `SequenceNode`, `MappingNode` or `None`. `None`
+ # matches any kind of a node. `index_check` could be `None`, a boolean
+ # value, a string value, or a number. `None` and `False` match against
+ # any _value_ of sequence and mapping nodes. `True` matches against
+ # any _key_ of a mapping node. A string `index_check` matches against
+ # a mapping value that corresponds to a scalar key which content is
+ # equal to the `index_check` value. An integer `index_check` matches
+ # against a sequence value with the index equal to `index_check`.
+ if not 'yaml_path_resolvers' in cls.__dict__:
+ cls.yaml_path_resolvers = cls.yaml_path_resolvers.copy()
+ new_path = []
+ for element in path:
+ if isinstance(element, (list, tuple)):
+ if len(element) == 2:
+ node_check, index_check = element
+ elif len(element) == 1:
+ node_check = element[0]
+ index_check = True
+ else:
+ raise ResolverError("Invalid path element: %s" % element)
+ else:
+ node_check = None
+ index_check = element
+ if node_check is str:
+ node_check = ScalarNode
+ elif node_check is list:
+ node_check = SequenceNode
+ elif node_check is dict:
+ node_check = MappingNode
+ elif node_check not in [ScalarNode, SequenceNode, MappingNode] \
+ and not isinstance(node_check, str) \
+ and node_check is not None:
+ raise ResolverError("Invalid node checker: %s" % node_check)
+ if not isinstance(index_check, (str, int)) \
+ and index_check is not None:
+ raise ResolverError("Invalid index checker: %s" % index_check)
+ new_path.append((node_check, index_check))
+ if kind is str:
+ kind = ScalarNode
+ elif kind is list:
+ kind = SequenceNode
+ elif kind is dict:
+ kind = MappingNode
+ elif kind not in [ScalarNode, SequenceNode, MappingNode] \
+ and kind is not None:
+ raise ResolverError("Invalid node kind: %s" % kind)
+ cls.yaml_path_resolvers[tuple(new_path), kind] = tag
+
+ def descend_resolver(self, current_node, current_index):
+ if not self.yaml_path_resolvers:
+ return
+ exact_paths = {}
+ prefix_paths = []
+ if current_node:
+ depth = len(self.resolver_prefix_paths)
+ for path, kind in self.resolver_prefix_paths[-1]:
+ if self.check_resolver_prefix(depth, path, kind,
+ current_node, current_index):
+ if len(path) > depth:
+ prefix_paths.append((path, kind))
+ else:
+ exact_paths[kind] = self.yaml_path_resolvers[path, kind]
+ else:
+ for path, kind in self.yaml_path_resolvers:
+ if not path:
+ exact_paths[kind] = self.yaml_path_resolvers[path, kind]
+ else:
+ prefix_paths.append((path, kind))
+ self.resolver_exact_paths.append(exact_paths)
+ self.resolver_prefix_paths.append(prefix_paths)
+
+ def ascend_resolver(self):
+ if not self.yaml_path_resolvers:
+ return
+ self.resolver_exact_paths.pop()
+ self.resolver_prefix_paths.pop()
+
+ def check_resolver_prefix(self, depth, path, kind,
+ current_node, current_index):
+ node_check, index_check = path[depth-1]
+ if isinstance(node_check, str):
+ if current_node.tag != node_check:
+ return
+ elif node_check is not None:
+ if not isinstance(current_node, node_check):
+ return
+ if index_check is True and current_index is not None:
+ return
+ if (index_check is False or index_check is None) \
+ and current_index is None:
+ return
+ if isinstance(index_check, str):
+ if not (isinstance(current_index, ScalarNode)
+ and index_check == current_index.value):
+ return
+ elif isinstance(index_check, int) and not isinstance(index_check, bool):
+ if index_check != current_index:
+ return
+ return True
+
+ def resolve(self, kind, value, implicit):
+ if kind is ScalarNode and implicit[0]:
+ if value == '':
+ resolvers = self.yaml_implicit_resolvers.get('', [])
+ else:
+ resolvers = self.yaml_implicit_resolvers.get(value[0], [])
+ resolvers += self.yaml_implicit_resolvers.get(None, [])
+ for tag, regexp in resolvers:
+ if regexp.match(value):
+ return tag
+ implicit = implicit[1]
+ if self.yaml_path_resolvers:
+ exact_paths = self.resolver_exact_paths[-1]
+ if kind in exact_paths:
+ return exact_paths[kind]
+ if None in exact_paths:
+ return exact_paths[None]
+ if kind is ScalarNode:
+ return self.DEFAULT_SCALAR_TAG
+ elif kind is SequenceNode:
+ return self.DEFAULT_SEQUENCE_TAG
+ elif kind is MappingNode:
+ return self.DEFAULT_MAPPING_TAG
+
+class Resolver(BaseResolver):
+ pass
+
+Resolver.add_implicit_resolver(
+ 'tag:yaml.org,2002:bool',
+ re.compile(r'''^(?:yes|Yes|YES|no|No|NO
+ |true|True|TRUE|false|False|FALSE
+ |on|On|ON|off|Off|OFF)$''', re.X),
+ list('yYnNtTfFoO'))
+
+Resolver.add_implicit_resolver(
+ 'tag:yaml.org,2002:float',
+ re.compile(r'''^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)?
+ |\.[0-9_]+(?:[eE][-+][0-9]+)?
+ |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*
+ |[-+]?\.(?:inf|Inf|INF)
+ |\.(?:nan|NaN|NAN))$''', re.X),
+ list('-+0123456789.'))
+
+Resolver.add_implicit_resolver(
+ 'tag:yaml.org,2002:int',
+ re.compile(r'''^(?:[-+]?0b[0-1_]+
+ |[-+]?0[0-7_]+
+ |[-+]?(?:0|[1-9][0-9_]*)
+ |[-+]?0x[0-9a-fA-F_]+
+ |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.X),
+ list('-+0123456789'))
+
+Resolver.add_implicit_resolver(
+ 'tag:yaml.org,2002:merge',
+ re.compile(r'^(?:<<)$'),
+ ['<'])
+
+Resolver.add_implicit_resolver(
+ 'tag:yaml.org,2002:null',
+ re.compile(r'''^(?: ~
+ |null|Null|NULL
+ | )$''', re.X),
+ ['~', 'n', 'N', ''])
+
+Resolver.add_implicit_resolver(
+ 'tag:yaml.org,2002:timestamp',
+ re.compile(r'''^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
+ |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]?
+ (?:[Tt]|[ \t]+)[0-9][0-9]?
+ :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)?
+ (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$''', re.X),
+ list('0123456789'))
+
+Resolver.add_implicit_resolver(
+ 'tag:yaml.org,2002:value',
+ re.compile(r'^(?:=)$'),
+ ['='])
+
+# The following resolver is only for documentation purposes. It cannot work
+# because plain scalars cannot start with '!', '&', or '*'.
+Resolver.add_implicit_resolver(
+ 'tag:yaml.org,2002:yaml',
+ re.compile(r'^(?:!|&|\*)$'),
+ list('!&*'))
+
diff --git a/yaml/lib3/yaml/scanner.py b/yaml/lib3/yaml/scanner.py
new file mode 100644
index 0000000000..7437ede1c6
--- /dev/null
+++ b/yaml/lib3/yaml/scanner.py
@@ -0,0 +1,1435 @@
+
+# Scanner produces tokens of the following types:
+# STREAM-START
+# STREAM-END
+# DIRECTIVE(name, value)
+# DOCUMENT-START
+# DOCUMENT-END
+# BLOCK-SEQUENCE-START
+# BLOCK-MAPPING-START
+# BLOCK-END
+# FLOW-SEQUENCE-START
+# FLOW-MAPPING-START
+# FLOW-SEQUENCE-END
+# FLOW-MAPPING-END
+# BLOCK-ENTRY
+# FLOW-ENTRY
+# KEY
+# VALUE
+# ALIAS(value)
+# ANCHOR(value)
+# TAG(value)
+# SCALAR(value, plain, style)
+#
+# Read comments in the Scanner code for more details.
+#
+
+__all__ = ['Scanner', 'ScannerError']
+
+from .error import MarkedYAMLError
+from .tokens import *
+
+class ScannerError(MarkedYAMLError):
+ pass
+
+class SimpleKey:
+ # See below simple keys treatment.
+
+ def __init__(self, token_number, required, index, line, column, mark):
+ self.token_number = token_number
+ self.required = required
+ self.index = index
+ self.line = line
+ self.column = column
+ self.mark = mark
+
+class Scanner:
+
+ def __init__(self):
+ """Initialize the scanner."""
+ # It is assumed that Scanner and Reader will have a common descendant.
+ # Reader do the dirty work of checking for BOM and converting the
+ # input data to Unicode. It also adds NUL to the end.
+ #
+ # Reader supports the following methods
+ # self.peek(i=0) # peek the next i-th character
+ # self.prefix(l=1) # peek the next l characters
+ # self.forward(l=1) # read the next l characters and move the pointer.
+
+ # Had we reached the end of the stream?
+ self.done = False
+
+ # The number of unclosed '{' and '['. `flow_level == 0` means block
+ # context.
+ self.flow_level = 0
+
+ # List of processed tokens that are not yet emitted.
+ self.tokens = []
+
+ # Add the STREAM-START token.
+ self.fetch_stream_start()
+
+ # Number of tokens that were emitted through the `get_token` method.
+ self.tokens_taken = 0
+
+ # The current indentation level.
+ self.indent = -1
+
+ # Past indentation levels.
+ self.indents = []
+
+ # Variables related to simple keys treatment.
+
+ # A simple key is a key that is not denoted by the '?' indicator.
+ # Example of simple keys:
+ # ---
+ # block simple key: value
+ # ? not a simple key:
+ # : { flow simple key: value }
+ # We emit the KEY token before all keys, so when we find a potential
+ # simple key, we try to locate the corresponding ':' indicator.
+ # Simple keys should be limited to a single line and 1024 characters.
+
+ # Can a simple key start at the current position? A simple key may
+ # start:
+ # - at the beginning of the line, not counting indentation spaces
+ # (in block context),
+ # - after '{', '[', ',' (in the flow context),
+ # - after '?', ':', '-' (in the block context).
+ # In the block context, this flag also signifies if a block collection
+ # may start at the current position.
+ self.allow_simple_key = True
+
+ # Keep track of possible simple keys. This is a dictionary. The key
+ # is `flow_level`; there can be no more that one possible simple key
+ # for each level. The value is a SimpleKey record:
+ # (token_number, required, index, line, column, mark)
+ # A simple key may start with ALIAS, ANCHOR, TAG, SCALAR(flow),
+ # '[', or '{' tokens.
+ self.possible_simple_keys = {}
+
+ # Public methods.
+
+ def check_token(self, *choices):
+ # Check if the next token is one of the given types.
+ while self.need_more_tokens():
+ self.fetch_more_tokens()
+ if self.tokens:
+ if not choices:
+ return True
+ for choice in choices:
+ if isinstance(self.tokens[0], choice):
+ return True
+ return False
+
+ def peek_token(self):
+ # Return the next token, but do not delete if from the queue.
+ # Return None if no more tokens.
+ while self.need_more_tokens():
+ self.fetch_more_tokens()
+ if self.tokens:
+ return self.tokens[0]
+ else:
+ return None
+
+ def get_token(self):
+ # Return the next token.
+ while self.need_more_tokens():
+ self.fetch_more_tokens()
+ if self.tokens:
+ self.tokens_taken += 1
+ return self.tokens.pop(0)
+
+ # Private methods.
+
+ def need_more_tokens(self):
+ if self.done:
+ return False
+ if not self.tokens:
+ return True
+ # The current token may be a potential simple key, so we
+ # need to look further.
+ self.stale_possible_simple_keys()
+ if self.next_possible_simple_key() == self.tokens_taken:
+ return True
+
+ def fetch_more_tokens(self):
+
+ # Eat whitespaces and comments until we reach the next token.
+ self.scan_to_next_token()
+
+ # Remove obsolete possible simple keys.
+ self.stale_possible_simple_keys()
+
+ # Compare the current indentation and column. It may add some tokens
+ # and decrease the current indentation level.
+ self.unwind_indent(self.column)
+
+ # Peek the next character.
+ ch = self.peek()
+
+ # Is it the end of stream?
+ if ch == '\0':
+ return self.fetch_stream_end()
+
+ # Is it a directive?
+ if ch == '%' and self.check_directive():
+ return self.fetch_directive()
+
+ # Is it the document start?
+ if ch == '-' and self.check_document_start():
+ return self.fetch_document_start()
+
+ # Is it the document end?
+ if ch == '.' and self.check_document_end():
+ return self.fetch_document_end()
+
+ # TODO: support for BOM within a stream.
+ #if ch == '\uFEFF':
+ # return self.fetch_bom() <-- issue BOMToken
+
+ # Note: the order of the following checks is NOT significant.
+
+ # Is it the flow sequence start indicator?
+ if ch == '[':
+ return self.fetch_flow_sequence_start()
+
+ # Is it the flow mapping start indicator?
+ if ch == '{':
+ return self.fetch_flow_mapping_start()
+
+ # Is it the flow sequence end indicator?
+ if ch == ']':
+ return self.fetch_flow_sequence_end()
+
+ # Is it the flow mapping end indicator?
+ if ch == '}':
+ return self.fetch_flow_mapping_end()
+
+ # Is it the flow entry indicator?
+ if ch == ',':
+ return self.fetch_flow_entry()
+
+ # Is it the block entry indicator?
+ if ch == '-' and self.check_block_entry():
+ return self.fetch_block_entry()
+
+ # Is it the key indicator?
+ if ch == '?' and self.check_key():
+ return self.fetch_key()
+
+ # Is it the value indicator?
+ if ch == ':' and self.check_value():
+ return self.fetch_value()
+
+ # Is it an alias?
+ if ch == '*':
+ return self.fetch_alias()
+
+ # Is it an anchor?
+ if ch == '&':
+ return self.fetch_anchor()
+
+ # Is it a tag?
+ if ch == '!':
+ return self.fetch_tag()
+
+ # Is it a literal scalar?
+ if ch == '|' and not self.flow_level:
+ return self.fetch_literal()
+
+ # Is it a folded scalar?
+ if ch == '>' and not self.flow_level:
+ return self.fetch_folded()
+
+ # Is it a single quoted scalar?
+ if ch == '\'':
+ return self.fetch_single()
+
+ # Is it a double quoted scalar?
+ if ch == '\"':
+ return self.fetch_double()
+
+ # It must be a plain scalar then.
+ if self.check_plain():
+ return self.fetch_plain()
+
+ # No? It's an error. Let's produce a nice error message.
+ raise ScannerError("while scanning for the next token", None,
+ "found character %r that cannot start any token" % ch,
+ self.get_mark())
+
+ # Simple keys treatment.
+
+ def next_possible_simple_key(self):
+ # Return the number of the nearest possible simple key. Actually we
+ # don't need to loop through the whole dictionary. We may replace it
+ # with the following code:
+ # if not self.possible_simple_keys:
+ # return None
+ # return self.possible_simple_keys[
+ # min(self.possible_simple_keys.keys())].token_number
+ min_token_number = None
+ for level in self.possible_simple_keys:
+ key = self.possible_simple_keys[level]
+ if min_token_number is None or key.token_number < min_token_number:
+ min_token_number = key.token_number
+ return min_token_number
+
+ def stale_possible_simple_keys(self):
+ # Remove entries that are no longer possible simple keys. According to
+ # the YAML specification, simple keys
+ # - should be limited to a single line,
+ # - should be no longer than 1024 characters.
+ # Disabling this procedure will allow simple keys of any length and
+ # height (may cause problems if indentation is broken though).
+ for level in list(self.possible_simple_keys):
+ key = self.possible_simple_keys[level]
+ if key.line != self.line \
+ or self.index-key.index > 1024:
+ if key.required:
+ raise ScannerError("while scanning a simple key", key.mark,
+ "could not find expected ':'", self.get_mark())
+ del self.possible_simple_keys[level]
+
+ def save_possible_simple_key(self):
+ # The next token may start a simple key. We check if it's possible
+ # and save its position. This function is called for
+ # ALIAS, ANCHOR, TAG, SCALAR(flow), '[', and '{'.
+
+ # Check if a simple key is required at the current position.
+ required = not self.flow_level and self.indent == self.column
+
+ # The next token might be a simple key. Let's save it's number and
+ # position.
+ if self.allow_simple_key:
+ self.remove_possible_simple_key()
+ token_number = self.tokens_taken+len(self.tokens)
+ key = SimpleKey(token_number, required,
+ self.index, self.line, self.column, self.get_mark())
+ self.possible_simple_keys[self.flow_level] = key
+
+ def remove_possible_simple_key(self):
+ # Remove the saved possible key position at the current flow level.
+ if self.flow_level in self.possible_simple_keys:
+ key = self.possible_simple_keys[self.flow_level]
+
+ if key.required:
+ raise ScannerError("while scanning a simple key", key.mark,
+ "could not find expected ':'", self.get_mark())
+
+ del self.possible_simple_keys[self.flow_level]
+
+ # Indentation functions.
+
+ def unwind_indent(self, column):
+
+ ## In flow context, tokens should respect indentation.
+ ## Actually the condition should be `self.indent >= column` according to
+ ## the spec. But this condition will prohibit intuitively correct
+ ## constructions such as
+ ## key : {
+ ## }
+ #if self.flow_level and self.indent > column:
+ # raise ScannerError(None, None,
+ # "invalid indentation or unclosed '[' or '{'",
+ # self.get_mark())
+
+ # In the flow context, indentation is ignored. We make the scanner less
+ # restrictive then specification requires.
+ if self.flow_level:
+ return
+
+ # In block context, we may need to issue the BLOCK-END tokens.
+ while self.indent > column:
+ mark = self.get_mark()
+ self.indent = self.indents.pop()
+ self.tokens.append(BlockEndToken(mark, mark))
+
+ def add_indent(self, column):
+ # Check if we need to increase indentation.
+ if self.indent < column:
+ self.indents.append(self.indent)
+ self.indent = column
+ return True
+ return False
+
+ # Fetchers.
+
+ def fetch_stream_start(self):
+ # We always add STREAM-START as the first token and STREAM-END as the
+ # last token.
+
+ # Read the token.
+ mark = self.get_mark()
+
+ # Add STREAM-START.
+ self.tokens.append(StreamStartToken(mark, mark,
+ encoding=self.encoding))
+
+
+ def fetch_stream_end(self):
+
+ # Set the current indentation to -1.
+ self.unwind_indent(-1)
+
+ # Reset simple keys.
+ self.remove_possible_simple_key()
+ self.allow_simple_key = False
+ self.possible_simple_keys = {}
+
+ # Read the token.
+ mark = self.get_mark()
+
+ # Add STREAM-END.
+ self.tokens.append(StreamEndToken(mark, mark))
+
+ # The steam is finished.
+ self.done = True
+
+ def fetch_directive(self):
+
+ # Set the current indentation to -1.
+ self.unwind_indent(-1)
+
+ # Reset simple keys.
+ self.remove_possible_simple_key()
+ self.allow_simple_key = False
+
+ # Scan and add DIRECTIVE.
+ self.tokens.append(self.scan_directive())
+
+ def fetch_document_start(self):
+ self.fetch_document_indicator(DocumentStartToken)
+
+ def fetch_document_end(self):
+ self.fetch_document_indicator(DocumentEndToken)
+
+ def fetch_document_indicator(self, TokenClass):
+
+ # Set the current indentation to -1.
+ self.unwind_indent(-1)
+
+ # Reset simple keys. Note that there could not be a block collection
+ # after '---'.
+ self.remove_possible_simple_key()
+ self.allow_simple_key = False
+
+ # Add DOCUMENT-START or DOCUMENT-END.
+ start_mark = self.get_mark()
+ self.forward(3)
+ end_mark = self.get_mark()
+ self.tokens.append(TokenClass(start_mark, end_mark))
+
+ def fetch_flow_sequence_start(self):
+ self.fetch_flow_collection_start(FlowSequenceStartToken)
+
+ def fetch_flow_mapping_start(self):
+ self.fetch_flow_collection_start(FlowMappingStartToken)
+
+ def fetch_flow_collection_start(self, TokenClass):
+
+ # '[' and '{' may start a simple key.
+ self.save_possible_simple_key()
+
+ # Increase the flow level.
+ self.flow_level += 1
+
+ # Simple keys are allowed after '[' and '{'.
+ self.allow_simple_key = True
+
+ # Add FLOW-SEQUENCE-START or FLOW-MAPPING-START.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(TokenClass(start_mark, end_mark))
+
+ def fetch_flow_sequence_end(self):
+ self.fetch_flow_collection_end(FlowSequenceEndToken)
+
+ def fetch_flow_mapping_end(self):
+ self.fetch_flow_collection_end(FlowMappingEndToken)
+
+ def fetch_flow_collection_end(self, TokenClass):
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Decrease the flow level.
+ self.flow_level -= 1
+
+ # No simple keys after ']' or '}'.
+ self.allow_simple_key = False
+
+ # Add FLOW-SEQUENCE-END or FLOW-MAPPING-END.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(TokenClass(start_mark, end_mark))
+
+ def fetch_flow_entry(self):
+
+ # Simple keys are allowed after ','.
+ self.allow_simple_key = True
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Add FLOW-ENTRY.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(FlowEntryToken(start_mark, end_mark))
+
+ def fetch_block_entry(self):
+
+ # Block context needs additional checks.
+ if not self.flow_level:
+
+ # Are we allowed to start a new entry?
+ if not self.allow_simple_key:
+ raise ScannerError(None, None,
+ "sequence entries are not allowed here",
+ self.get_mark())
+
+ # We may need to add BLOCK-SEQUENCE-START.
+ if self.add_indent(self.column):
+ mark = self.get_mark()
+ self.tokens.append(BlockSequenceStartToken(mark, mark))
+
+ # It's an error for the block entry to occur in the flow context,
+ # but we let the parser detect this.
+ else:
+ pass
+
+ # Simple keys are allowed after '-'.
+ self.allow_simple_key = True
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Add BLOCK-ENTRY.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(BlockEntryToken(start_mark, end_mark))
+
+ def fetch_key(self):
+
+ # Block context needs additional checks.
+ if not self.flow_level:
+
+ # Are we allowed to start a key (not necessary a simple)?
+ if not self.allow_simple_key:
+ raise ScannerError(None, None,
+ "mapping keys are not allowed here",
+ self.get_mark())
+
+ # We may need to add BLOCK-MAPPING-START.
+ if self.add_indent(self.column):
+ mark = self.get_mark()
+ self.tokens.append(BlockMappingStartToken(mark, mark))
+
+ # Simple keys are allowed after '?' in the block context.
+ self.allow_simple_key = not self.flow_level
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Add KEY.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(KeyToken(start_mark, end_mark))
+
+ def fetch_value(self):
+
+ # Do we determine a simple key?
+ if self.flow_level in self.possible_simple_keys:
+
+ # Add KEY.
+ key = self.possible_simple_keys[self.flow_level]
+ del self.possible_simple_keys[self.flow_level]
+ self.tokens.insert(key.token_number-self.tokens_taken,
+ KeyToken(key.mark, key.mark))
+
+ # If this key starts a new block mapping, we need to add
+ # BLOCK-MAPPING-START.
+ if not self.flow_level:
+ if self.add_indent(key.column):
+ self.tokens.insert(key.token_number-self.tokens_taken,
+ BlockMappingStartToken(key.mark, key.mark))
+
+ # There cannot be two simple keys one after another.
+ self.allow_simple_key = False
+
+ # It must be a part of a complex key.
+ else:
+
+ # Block context needs additional checks.
+ # (Do we really need them? They will be caught by the parser
+ # anyway.)
+ if not self.flow_level:
+
+ # We are allowed to start a complex value if and only if
+ # we can start a simple key.
+ if not self.allow_simple_key:
+ raise ScannerError(None, None,
+ "mapping values are not allowed here",
+ self.get_mark())
+
+ # If this value starts a new block mapping, we need to add
+ # BLOCK-MAPPING-START. It will be detected as an error later by
+ # the parser.
+ if not self.flow_level:
+ if self.add_indent(self.column):
+ mark = self.get_mark()
+ self.tokens.append(BlockMappingStartToken(mark, mark))
+
+ # Simple keys are allowed after ':' in the block context.
+ self.allow_simple_key = not self.flow_level
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Add VALUE.
+ start_mark = self.get_mark()
+ self.forward()
+ end_mark = self.get_mark()
+ self.tokens.append(ValueToken(start_mark, end_mark))
+
+ def fetch_alias(self):
+
+ # ALIAS could be a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after ALIAS.
+ self.allow_simple_key = False
+
+ # Scan and add ALIAS.
+ self.tokens.append(self.scan_anchor(AliasToken))
+
+ def fetch_anchor(self):
+
+ # ANCHOR could start a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after ANCHOR.
+ self.allow_simple_key = False
+
+ # Scan and add ANCHOR.
+ self.tokens.append(self.scan_anchor(AnchorToken))
+
+ def fetch_tag(self):
+
+ # TAG could start a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after TAG.
+ self.allow_simple_key = False
+
+ # Scan and add TAG.
+ self.tokens.append(self.scan_tag())
+
+ def fetch_literal(self):
+ self.fetch_block_scalar(style='|')
+
+ def fetch_folded(self):
+ self.fetch_block_scalar(style='>')
+
+ def fetch_block_scalar(self, style):
+
+ # A simple key may follow a block scalar.
+ self.allow_simple_key = True
+
+ # Reset possible simple key on the current level.
+ self.remove_possible_simple_key()
+
+ # Scan and add SCALAR.
+ self.tokens.append(self.scan_block_scalar(style))
+
+ def fetch_single(self):
+ self.fetch_flow_scalar(style='\'')
+
+ def fetch_double(self):
+ self.fetch_flow_scalar(style='"')
+
+ def fetch_flow_scalar(self, style):
+
+ # A flow scalar could be a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after flow scalars.
+ self.allow_simple_key = False
+
+ # Scan and add SCALAR.
+ self.tokens.append(self.scan_flow_scalar(style))
+
+ def fetch_plain(self):
+
+ # A plain scalar could be a simple key.
+ self.save_possible_simple_key()
+
+ # No simple keys after plain scalars. But note that `scan_plain` will
+ # change this flag if the scan is finished at the beginning of the
+ # line.
+ self.allow_simple_key = False
+
+ # Scan and add SCALAR. May change `allow_simple_key`.
+ self.tokens.append(self.scan_plain())
+
+ # Checkers.
+
+ def check_directive(self):
+
+ # DIRECTIVE: ^ '%' ...
+ # The '%' indicator is already checked.
+ if self.column == 0:
+ return True
+
+ def check_document_start(self):
+
+ # DOCUMENT-START: ^ '---' (' '|'\n')
+ if self.column == 0:
+ if self.prefix(3) == '---' \
+ and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029':
+ return True
+
+ def check_document_end(self):
+
+ # DOCUMENT-END: ^ '...' (' '|'\n')
+ if self.column == 0:
+ if self.prefix(3) == '...' \
+ and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029':
+ return True
+
+ def check_block_entry(self):
+
+ # BLOCK-ENTRY: '-' (' '|'\n')
+ return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029'
+
+ def check_key(self):
+
+ # KEY(flow context): '?'
+ if self.flow_level:
+ return True
+
+ # KEY(block context): '?' (' '|'\n')
+ else:
+ return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029'
+
+ def check_value(self):
+
+ # VALUE(flow context): ':'
+ if self.flow_level:
+ return True
+
+ # VALUE(block context): ':' (' '|'\n')
+ else:
+ return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029'
+
+ def check_plain(self):
+
+ # A plain scalar may start with any non-space character except:
+ # '-', '?', ':', ',', '[', ']', '{', '}',
+ # '#', '&', '*', '!', '|', '>', '\'', '\"',
+ # '%', '@', '`'.
+ #
+ # It may also start with
+ # '-', '?', ':'
+ # if it is followed by a non-space character.
+ #
+ # Note that we limit the last rule to the block context (except the
+ # '-' character) because we want the flow context to be space
+ # independent.
+ ch = self.peek()
+ return ch not in '\0 \t\r\n\x85\u2028\u2029-?:,[]{}#&*!|>\'\"%@`' \
+ or (self.peek(1) not in '\0 \t\r\n\x85\u2028\u2029'
+ and (ch == '-' or (not self.flow_level and ch in '?:')))
+
+ # Scanners.
+
+ def scan_to_next_token(self):
+ # We ignore spaces, line breaks and comments.
+ # If we find a line break in the block context, we set the flag
+ # `allow_simple_key` on.
+ # The byte order mark is stripped if it's the first character in the
+ # stream. We do not yet support BOM inside the stream as the
+ # specification requires. Any such mark will be considered as a part
+ # of the document.
+ #
+ # TODO: We need to make tab handling rules more sane. A good rule is
+ # Tabs cannot precede tokens
+ # BLOCK-SEQUENCE-START, BLOCK-MAPPING-START, BLOCK-END,
+ # KEY(block), VALUE(block), BLOCK-ENTRY
+ # So the checking code is
+ # if <TAB>:
+ # self.allow_simple_keys = False
+ # We also need to add the check for `allow_simple_keys == True` to
+ # `unwind_indent` before issuing BLOCK-END.
+ # Scanners for block, flow, and plain scalars need to be modified.
+
+ if self.index == 0 and self.peek() == '\uFEFF':
+ self.forward()
+ found = False
+ while not found:
+ while self.peek() == ' ':
+ self.forward()
+ if self.peek() == '#':
+ while self.peek() not in '\0\r\n\x85\u2028\u2029':
+ self.forward()
+ if self.scan_line_break():
+ if not self.flow_level:
+ self.allow_simple_key = True
+ else:
+ found = True
+
+ def scan_directive(self):
+ # See the specification for details.
+ start_mark = self.get_mark()
+ self.forward()
+ name = self.scan_directive_name(start_mark)
+ value = None
+ if name == 'YAML':
+ value = self.scan_yaml_directive_value(start_mark)
+ end_mark = self.get_mark()
+ elif name == 'TAG':
+ value = self.scan_tag_directive_value(start_mark)
+ end_mark = self.get_mark()
+ else:
+ end_mark = self.get_mark()
+ while self.peek() not in '\0\r\n\x85\u2028\u2029':
+ self.forward()
+ self.scan_directive_ignored_line(start_mark)
+ return DirectiveToken(name, value, start_mark, end_mark)
+
+ def scan_directive_name(self, start_mark):
+ # See the specification for details.
+ length = 0
+ ch = self.peek(length)
+ while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \
+ or ch in '-_':
+ length += 1
+ ch = self.peek(length)
+ if not length:
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected alphabetic or numeric character, but found %r"
+ % ch, self.get_mark())
+ value = self.prefix(length)
+ self.forward(length)
+ ch = self.peek()
+ if ch not in '\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected alphabetic or numeric character, but found %r"
+ % ch, self.get_mark())
+ return value
+
+ def scan_yaml_directive_value(self, start_mark):
+ # See the specification for details.
+ while self.peek() == ' ':
+ self.forward()
+ major = self.scan_yaml_directive_number(start_mark)
+ if self.peek() != '.':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected a digit or '.', but found %r" % self.peek(),
+ self.get_mark())
+ self.forward()
+ minor = self.scan_yaml_directive_number(start_mark)
+ if self.peek() not in '\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected a digit or ' ', but found %r" % self.peek(),
+ self.get_mark())
+ return (major, minor)
+
+ def scan_yaml_directive_number(self, start_mark):
+ # See the specification for details.
+ ch = self.peek()
+ if not ('0' <= ch <= '9'):
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected a digit, but found %r" % ch, self.get_mark())
+ length = 0
+ while '0' <= self.peek(length) <= '9':
+ length += 1
+ value = int(self.prefix(length))
+ self.forward(length)
+ return value
+
+ def scan_tag_directive_value(self, start_mark):
+ # See the specification for details.
+ while self.peek() == ' ':
+ self.forward()
+ handle = self.scan_tag_directive_handle(start_mark)
+ while self.peek() == ' ':
+ self.forward()
+ prefix = self.scan_tag_directive_prefix(start_mark)
+ return (handle, prefix)
+
+ def scan_tag_directive_handle(self, start_mark):
+ # See the specification for details.
+ value = self.scan_tag_handle('directive', start_mark)
+ ch = self.peek()
+ if ch != ' ':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected ' ', but found %r" % ch, self.get_mark())
+ return value
+
+ def scan_tag_directive_prefix(self, start_mark):
+ # See the specification for details.
+ value = self.scan_tag_uri('directive', start_mark)
+ ch = self.peek()
+ if ch not in '\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected ' ', but found %r" % ch, self.get_mark())
+ return value
+
+ def scan_directive_ignored_line(self, start_mark):
+ # See the specification for details.
+ while self.peek() == ' ':
+ self.forward()
+ if self.peek() == '#':
+ while self.peek() not in '\0\r\n\x85\u2028\u2029':
+ self.forward()
+ ch = self.peek()
+ if ch not in '\0\r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a directive", start_mark,
+ "expected a comment or a line break, but found %r"
+ % ch, self.get_mark())
+ self.scan_line_break()
+
+ def scan_anchor(self, TokenClass):
+ # The specification does not restrict characters for anchors and
+ # aliases. This may lead to problems, for instance, the document:
+ # [ *alias, value ]
+ # can be interpreted in two ways, as
+ # [ "value" ]
+ # and
+ # [ *alias , "value" ]
+ # Therefore we restrict aliases to numbers and ASCII letters.
+ start_mark = self.get_mark()
+ indicator = self.peek()
+ if indicator == '*':
+ name = 'alias'
+ else:
+ name = 'anchor'
+ self.forward()
+ length = 0
+ ch = self.peek(length)
+ while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \
+ or ch in '-_':
+ length += 1
+ ch = self.peek(length)
+ if not length:
+ raise ScannerError("while scanning an %s" % name, start_mark,
+ "expected alphabetic or numeric character, but found %r"
+ % ch, self.get_mark())
+ value = self.prefix(length)
+ self.forward(length)
+ ch = self.peek()
+ if ch not in '\0 \t\r\n\x85\u2028\u2029?:,]}%@`':
+ raise ScannerError("while scanning an %s" % name, start_mark,
+ "expected alphabetic or numeric character, but found %r"
+ % ch, self.get_mark())
+ end_mark = self.get_mark()
+ return TokenClass(value, start_mark, end_mark)
+
+ def scan_tag(self):
+ # See the specification for details.
+ start_mark = self.get_mark()
+ ch = self.peek(1)
+ if ch == '<':
+ handle = None
+ self.forward(2)
+ suffix = self.scan_tag_uri('tag', start_mark)
+ if self.peek() != '>':
+ raise ScannerError("while parsing a tag", start_mark,
+ "expected '>', but found %r" % self.peek(),
+ self.get_mark())
+ self.forward()
+ elif ch in '\0 \t\r\n\x85\u2028\u2029':
+ handle = None
+ suffix = '!'
+ self.forward()
+ else:
+ length = 1
+ use_handle = False
+ while ch not in '\0 \r\n\x85\u2028\u2029':
+ if ch == '!':
+ use_handle = True
+ break
+ length += 1
+ ch = self.peek(length)
+ handle = '!'
+ if use_handle:
+ handle = self.scan_tag_handle('tag', start_mark)
+ else:
+ handle = '!'
+ self.forward()
+ suffix = self.scan_tag_uri('tag', start_mark)
+ ch = self.peek()
+ if ch not in '\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a tag", start_mark,
+ "expected ' ', but found %r" % ch, self.get_mark())
+ value = (handle, suffix)
+ end_mark = self.get_mark()
+ return TagToken(value, start_mark, end_mark)
+
+ def scan_block_scalar(self, style):
+ # See the specification for details.
+
+ if style == '>':
+ folded = True
+ else:
+ folded = False
+
+ chunks = []
+ start_mark = self.get_mark()
+
+ # Scan the header.
+ self.forward()
+ chomping, increment = self.scan_block_scalar_indicators(start_mark)
+ self.scan_block_scalar_ignored_line(start_mark)
+
+ # Determine the indentation level and go to the first non-empty line.
+ min_indent = self.indent+1
+ if min_indent < 1:
+ min_indent = 1
+ if increment is None:
+ breaks, max_indent, end_mark = self.scan_block_scalar_indentation()
+ indent = max(min_indent, max_indent)
+ else:
+ indent = min_indent+increment-1
+ breaks, end_mark = self.scan_block_scalar_breaks(indent)
+ line_break = ''
+
+ # Scan the inner part of the block scalar.
+ while self.column == indent and self.peek() != '\0':
+ chunks.extend(breaks)
+ leading_non_space = self.peek() not in ' \t'
+ length = 0
+ while self.peek(length) not in '\0\r\n\x85\u2028\u2029':
+ length += 1
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ line_break = self.scan_line_break()
+ breaks, end_mark = self.scan_block_scalar_breaks(indent)
+ if self.column == indent and self.peek() != '\0':
+
+ # Unfortunately, folding rules are ambiguous.
+ #
+ # This is the folding according to the specification:
+
+ if folded and line_break == '\n' \
+ and leading_non_space and self.peek() not in ' \t':
+ if not breaks:
+ chunks.append(' ')
+ else:
+ chunks.append(line_break)
+
+ # This is Clark Evans's interpretation (also in the spec
+ # examples):
+ #
+ #if folded and line_break == '\n':
+ # if not breaks:
+ # if self.peek() not in ' \t':
+ # chunks.append(' ')
+ # else:
+ # chunks.append(line_break)
+ #else:
+ # chunks.append(line_break)
+ else:
+ break
+
+ # Chomp the tail.
+ if chomping is not False:
+ chunks.append(line_break)
+ if chomping is True:
+ chunks.extend(breaks)
+
+ # We are done.
+ return ScalarToken(''.join(chunks), False, start_mark, end_mark,
+ style)
+
+ def scan_block_scalar_indicators(self, start_mark):
+ # See the specification for details.
+ chomping = None
+ increment = None
+ ch = self.peek()
+ if ch in '+-':
+ if ch == '+':
+ chomping = True
+ else:
+ chomping = False
+ self.forward()
+ ch = self.peek()
+ if ch in '0123456789':
+ increment = int(ch)
+ if increment == 0:
+ raise ScannerError("while scanning a block scalar", start_mark,
+ "expected indentation indicator in the range 1-9, but found 0",
+ self.get_mark())
+ self.forward()
+ elif ch in '0123456789':
+ increment = int(ch)
+ if increment == 0:
+ raise ScannerError("while scanning a block scalar", start_mark,
+ "expected indentation indicator in the range 1-9, but found 0",
+ self.get_mark())
+ self.forward()
+ ch = self.peek()
+ if ch in '+-':
+ if ch == '+':
+ chomping = True
+ else:
+ chomping = False
+ self.forward()
+ ch = self.peek()
+ if ch not in '\0 \r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a block scalar", start_mark,
+ "expected chomping or indentation indicators, but found %r"
+ % ch, self.get_mark())
+ return chomping, increment
+
+ def scan_block_scalar_ignored_line(self, start_mark):
+ # See the specification for details.
+ while self.peek() == ' ':
+ self.forward()
+ if self.peek() == '#':
+ while self.peek() not in '\0\r\n\x85\u2028\u2029':
+ self.forward()
+ ch = self.peek()
+ if ch not in '\0\r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a block scalar", start_mark,
+ "expected a comment or a line break, but found %r" % ch,
+ self.get_mark())
+ self.scan_line_break()
+
+ def scan_block_scalar_indentation(self):
+ # See the specification for details.
+ chunks = []
+ max_indent = 0
+ end_mark = self.get_mark()
+ while self.peek() in ' \r\n\x85\u2028\u2029':
+ if self.peek() != ' ':
+ chunks.append(self.scan_line_break())
+ end_mark = self.get_mark()
+ else:
+ self.forward()
+ if self.column > max_indent:
+ max_indent = self.column
+ return chunks, max_indent, end_mark
+
+ def scan_block_scalar_breaks(self, indent):
+ # See the specification for details.
+ chunks = []
+ end_mark = self.get_mark()
+ while self.column < indent and self.peek() == ' ':
+ self.forward()
+ while self.peek() in '\r\n\x85\u2028\u2029':
+ chunks.append(self.scan_line_break())
+ end_mark = self.get_mark()
+ while self.column < indent and self.peek() == ' ':
+ self.forward()
+ return chunks, end_mark
+
+ def scan_flow_scalar(self, style):
+ # See the specification for details.
+ # Note that we loose indentation rules for quoted scalars. Quoted
+ # scalars don't need to adhere indentation because " and ' clearly
+ # mark the beginning and the end of them. Therefore we are less
+ # restrictive then the specification requires. We only need to check
+ # that document separators are not included in scalars.
+ if style == '"':
+ double = True
+ else:
+ double = False
+ chunks = []
+ start_mark = self.get_mark()
+ quote = self.peek()
+ self.forward()
+ chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark))
+ while self.peek() != quote:
+ chunks.extend(self.scan_flow_scalar_spaces(double, start_mark))
+ chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark))
+ self.forward()
+ end_mark = self.get_mark()
+ return ScalarToken(''.join(chunks), False, start_mark, end_mark,
+ style)
+
+ ESCAPE_REPLACEMENTS = {
+ '0': '\0',
+ 'a': '\x07',
+ 'b': '\x08',
+ 't': '\x09',
+ '\t': '\x09',
+ 'n': '\x0A',
+ 'v': '\x0B',
+ 'f': '\x0C',
+ 'r': '\x0D',
+ 'e': '\x1B',
+ ' ': '\x20',
+ '\"': '\"',
+ '\\': '\\',
+ '/': '/',
+ 'N': '\x85',
+ '_': '\xA0',
+ 'L': '\u2028',
+ 'P': '\u2029',
+ }
+
+ ESCAPE_CODES = {
+ 'x': 2,
+ 'u': 4,
+ 'U': 8,
+ }
+
+ def scan_flow_scalar_non_spaces(self, double, start_mark):
+ # See the specification for details.
+ chunks = []
+ while True:
+ length = 0
+ while self.peek(length) not in '\'\"\\\0 \t\r\n\x85\u2028\u2029':
+ length += 1
+ if length:
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ ch = self.peek()
+ if not double and ch == '\'' and self.peek(1) == '\'':
+ chunks.append('\'')
+ self.forward(2)
+ elif (double and ch == '\'') or (not double and ch in '\"\\'):
+ chunks.append(ch)
+ self.forward()
+ elif double and ch == '\\':
+ self.forward()
+ ch = self.peek()
+ if ch in self.ESCAPE_REPLACEMENTS:
+ chunks.append(self.ESCAPE_REPLACEMENTS[ch])
+ self.forward()
+ elif ch in self.ESCAPE_CODES:
+ length = self.ESCAPE_CODES[ch]
+ self.forward()
+ for k in range(length):
+ if self.peek(k) not in '0123456789ABCDEFabcdef':
+ raise ScannerError("while scanning a double-quoted scalar", start_mark,
+ "expected escape sequence of %d hexdecimal numbers, but found %r" %
+ (length, self.peek(k)), self.get_mark())
+ code = int(self.prefix(length), 16)
+ chunks.append(chr(code))
+ self.forward(length)
+ elif ch in '\r\n\x85\u2028\u2029':
+ self.scan_line_break()
+ chunks.extend(self.scan_flow_scalar_breaks(double, start_mark))
+ else:
+ raise ScannerError("while scanning a double-quoted scalar", start_mark,
+ "found unknown escape character %r" % ch, self.get_mark())
+ else:
+ return chunks
+
+ def scan_flow_scalar_spaces(self, double, start_mark):
+ # See the specification for details.
+ chunks = []
+ length = 0
+ while self.peek(length) in ' \t':
+ length += 1
+ whitespaces = self.prefix(length)
+ self.forward(length)
+ ch = self.peek()
+ if ch == '\0':
+ raise ScannerError("while scanning a quoted scalar", start_mark,
+ "found unexpected end of stream", self.get_mark())
+ elif ch in '\r\n\x85\u2028\u2029':
+ line_break = self.scan_line_break()
+ breaks = self.scan_flow_scalar_breaks(double, start_mark)
+ if line_break != '\n':
+ chunks.append(line_break)
+ elif not breaks:
+ chunks.append(' ')
+ chunks.extend(breaks)
+ else:
+ chunks.append(whitespaces)
+ return chunks
+
+ def scan_flow_scalar_breaks(self, double, start_mark):
+ # See the specification for details.
+ chunks = []
+ while True:
+ # Instead of checking indentation, we check for document
+ # separators.
+ prefix = self.prefix(3)
+ if (prefix == '---' or prefix == '...') \
+ and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029':
+ raise ScannerError("while scanning a quoted scalar", start_mark,
+ "found unexpected document separator", self.get_mark())
+ while self.peek() in ' \t':
+ self.forward()
+ if self.peek() in '\r\n\x85\u2028\u2029':
+ chunks.append(self.scan_line_break())
+ else:
+ return chunks
+
+ def scan_plain(self):
+ # See the specification for details.
+ # We add an additional restriction for the flow context:
+ # plain scalars in the flow context cannot contain ',' or '?'.
+ # We also keep track of the `allow_simple_key` flag here.
+ # Indentation rules are loosed for the flow context.
+ chunks = []
+ start_mark = self.get_mark()
+ end_mark = start_mark
+ indent = self.indent+1
+ # We allow zero indentation for scalars, but then we need to check for
+ # document separators at the beginning of the line.
+ #if indent == 0:
+ # indent = 1
+ spaces = []
+ while True:
+ length = 0
+ if self.peek() == '#':
+ break
+ while True:
+ ch = self.peek(length)
+ if ch in '\0 \t\r\n\x85\u2028\u2029' \
+ or (ch == ':' and
+ self.peek(length+1) in '\0 \t\r\n\x85\u2028\u2029'
+ + (u',[]{}' if self.flow_level else u''))\
+ or (self.flow_level and ch in ',?[]{}'):
+ break
+ length += 1
+ if length == 0:
+ break
+ self.allow_simple_key = False
+ chunks.extend(spaces)
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ end_mark = self.get_mark()
+ spaces = self.scan_plain_spaces(indent, start_mark)
+ if not spaces or self.peek() == '#' \
+ or (not self.flow_level and self.column < indent):
+ break
+ return ScalarToken(''.join(chunks), True, start_mark, end_mark)
+
+ def scan_plain_spaces(self, indent, start_mark):
+ # See the specification for details.
+ # The specification is really confusing about tabs in plain scalars.
+ # We just forbid them completely. Do not use tabs in YAML!
+ chunks = []
+ length = 0
+ while self.peek(length) in ' ':
+ length += 1
+ whitespaces = self.prefix(length)
+ self.forward(length)
+ ch = self.peek()
+ if ch in '\r\n\x85\u2028\u2029':
+ line_break = self.scan_line_break()
+ self.allow_simple_key = True
+ prefix = self.prefix(3)
+ if (prefix == '---' or prefix == '...') \
+ and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029':
+ return
+ breaks = []
+ while self.peek() in ' \r\n\x85\u2028\u2029':
+ if self.peek() == ' ':
+ self.forward()
+ else:
+ breaks.append(self.scan_line_break())
+ prefix = self.prefix(3)
+ if (prefix == '---' or prefix == '...') \
+ and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029':
+ return
+ if line_break != '\n':
+ chunks.append(line_break)
+ elif not breaks:
+ chunks.append(' ')
+ chunks.extend(breaks)
+ elif whitespaces:
+ chunks.append(whitespaces)
+ return chunks
+
+ def scan_tag_handle(self, name, start_mark):
+ # See the specification for details.
+ # For some strange reasons, the specification does not allow '_' in
+ # tag handles. I have allowed it anyway.
+ ch = self.peek()
+ if ch != '!':
+ raise ScannerError("while scanning a %s" % name, start_mark,
+ "expected '!', but found %r" % ch, self.get_mark())
+ length = 1
+ ch = self.peek(length)
+ if ch != ' ':
+ while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \
+ or ch in '-_':
+ length += 1
+ ch = self.peek(length)
+ if ch != '!':
+ self.forward(length)
+ raise ScannerError("while scanning a %s" % name, start_mark,
+ "expected '!', but found %r" % ch, self.get_mark())
+ length += 1
+ value = self.prefix(length)
+ self.forward(length)
+ return value
+
+ def scan_tag_uri(self, name, start_mark):
+ # See the specification for details.
+ # Note: we do not check if URI is well-formed.
+ chunks = []
+ length = 0
+ ch = self.peek(length)
+ while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \
+ or ch in '-;/?:@&=+$,_.!~*\'()[]%':
+ if ch == '%':
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ length = 0
+ chunks.append(self.scan_uri_escapes(name, start_mark))
+ else:
+ length += 1
+ ch = self.peek(length)
+ if length:
+ chunks.append(self.prefix(length))
+ self.forward(length)
+ length = 0
+ if not chunks:
+ raise ScannerError("while parsing a %s" % name, start_mark,
+ "expected URI, but found %r" % ch, self.get_mark())
+ return ''.join(chunks)
+
+ def scan_uri_escapes(self, name, start_mark):
+ # See the specification for details.
+ codes = []
+ mark = self.get_mark()
+ while self.peek() == '%':
+ self.forward()
+ for k in range(2):
+ if self.peek(k) not in '0123456789ABCDEFabcdef':
+ raise ScannerError("while scanning a %s" % name, start_mark,
+ "expected URI escape sequence of 2 hexdecimal numbers, but found %r"
+ % self.peek(k), self.get_mark())
+ codes.append(int(self.prefix(2), 16))
+ self.forward(2)
+ try:
+ value = bytes(codes).decode('utf-8')
+ except UnicodeDecodeError as exc:
+ raise ScannerError("while scanning a %s" % name, start_mark, str(exc), mark)
+ return value
+
+ def scan_line_break(self):
+ # Transforms:
+ # '\r\n' : '\n'
+ # '\r' : '\n'
+ # '\n' : '\n'
+ # '\x85' : '\n'
+ # '\u2028' : '\u2028'
+ # '\u2029 : '\u2029'
+ # default : ''
+ ch = self.peek()
+ if ch in '\r\n\x85':
+ if self.prefix(2) == '\r\n':
+ self.forward(2)
+ else:
+ self.forward()
+ return '\n'
+ elif ch in '\u2028\u2029':
+ self.forward()
+ return ch
+ return ''
diff --git a/yaml/lib3/yaml/serializer.py b/yaml/lib3/yaml/serializer.py
new file mode 100644
index 0000000000..fe911e67ae
--- /dev/null
+++ b/yaml/lib3/yaml/serializer.py
@@ -0,0 +1,111 @@
+
+__all__ = ['Serializer', 'SerializerError']
+
+from .error import YAMLError
+from .events import *
+from .nodes import *
+
+class SerializerError(YAMLError):
+ pass
+
+class Serializer:
+
+ ANCHOR_TEMPLATE = 'id%03d'
+
+ def __init__(self, encoding=None,
+ explicit_start=None, explicit_end=None, version=None, tags=None):
+ self.use_encoding = encoding
+ self.use_explicit_start = explicit_start
+ self.use_explicit_end = explicit_end
+ self.use_version = version
+ self.use_tags = tags
+ self.serialized_nodes = {}
+ self.anchors = {}
+ self.last_anchor_id = 0
+ self.closed = None
+
+ def open(self):
+ if self.closed is None:
+ self.emit(StreamStartEvent(encoding=self.use_encoding))
+ self.closed = False
+ elif self.closed:
+ raise SerializerError("serializer is closed")
+ else:
+ raise SerializerError("serializer is already opened")
+
+ def close(self):
+ if self.closed is None:
+ raise SerializerError("serializer is not opened")
+ elif not self.closed:
+ self.emit(StreamEndEvent())
+ self.closed = True
+
+ #def __del__(self):
+ # self.close()
+
+ def serialize(self, node):
+ if self.closed is None:
+ raise SerializerError("serializer is not opened")
+ elif self.closed:
+ raise SerializerError("serializer is closed")
+ self.emit(DocumentStartEvent(explicit=self.use_explicit_start,
+ version=self.use_version, tags=self.use_tags))
+ self.anchor_node(node)
+ self.serialize_node(node, None, None)
+ self.emit(DocumentEndEvent(explicit=self.use_explicit_end))
+ self.serialized_nodes = {}
+ self.anchors = {}
+ self.last_anchor_id = 0
+
+ def anchor_node(self, node):
+ if node in self.anchors:
+ if self.anchors[node] is None:
+ self.anchors[node] = self.generate_anchor(node)
+ else:
+ self.anchors[node] = None
+ if isinstance(node, SequenceNode):
+ for item in node.value:
+ self.anchor_node(item)
+ elif isinstance(node, MappingNode):
+ for key, value in node.value:
+ self.anchor_node(key)
+ self.anchor_node(value)
+
+ def generate_anchor(self, node):
+ self.last_anchor_id += 1
+ return self.ANCHOR_TEMPLATE % self.last_anchor_id
+
+ def serialize_node(self, node, parent, index):
+ alias = self.anchors[node]
+ if node in self.serialized_nodes:
+ self.emit(AliasEvent(alias))
+ else:
+ self.serialized_nodes[node] = True
+ self.descend_resolver(parent, index)
+ if isinstance(node, ScalarNode):
+ detected_tag = self.resolve(ScalarNode, node.value, (True, False))
+ default_tag = self.resolve(ScalarNode, node.value, (False, True))
+ implicit = (node.tag == detected_tag), (node.tag == default_tag)
+ self.emit(ScalarEvent(alias, node.tag, implicit, node.value,
+ style=node.style))
+ elif isinstance(node, SequenceNode):
+ implicit = (node.tag
+ == self.resolve(SequenceNode, node.value, True))
+ self.emit(SequenceStartEvent(alias, node.tag, implicit,
+ flow_style=node.flow_style))
+ index = 0
+ for item in node.value:
+ self.serialize_node(item, node, index)
+ index += 1
+ self.emit(SequenceEndEvent())
+ elif isinstance(node, MappingNode):
+ implicit = (node.tag
+ == self.resolve(MappingNode, node.value, True))
+ self.emit(MappingStartEvent(alias, node.tag, implicit,
+ flow_style=node.flow_style))
+ for key, value in node.value:
+ self.serialize_node(key, node, None)
+ self.serialize_node(value, node, key)
+ self.emit(MappingEndEvent())
+ self.ascend_resolver()
+
diff --git a/yaml/lib3/yaml/tokens.py b/yaml/lib3/yaml/tokens.py
new file mode 100644
index 0000000000..4d0b48a394
--- /dev/null
+++ b/yaml/lib3/yaml/tokens.py
@@ -0,0 +1,104 @@
+
+class Token(object):
+ def __init__(self, start_mark, end_mark):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ def __repr__(self):
+ attributes = [key for key in self.__dict__
+ if not key.endswith('_mark')]
+ attributes.sort()
+ arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
+ for key in attributes])
+ return '%s(%s)' % (self.__class__.__name__, arguments)
+
+#class BOMToken(Token):
+# id = '<byte order mark>'
+
+class DirectiveToken(Token):
+ id = '<directive>'
+ def __init__(self, name, value, start_mark, end_mark):
+ self.name = name
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class DocumentStartToken(Token):
+ id = '<document start>'
+
+class DocumentEndToken(Token):
+ id = '<document end>'
+
+class StreamStartToken(Token):
+ id = '<stream start>'
+ def __init__(self, start_mark=None, end_mark=None,
+ encoding=None):
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.encoding = encoding
+
+class StreamEndToken(Token):
+ id = '<stream end>'
+
+class BlockSequenceStartToken(Token):
+ id = '<block sequence start>'
+
+class BlockMappingStartToken(Token):
+ id = '<block mapping start>'
+
+class BlockEndToken(Token):
+ id = '<block end>'
+
+class FlowSequenceStartToken(Token):
+ id = '['
+
+class FlowMappingStartToken(Token):
+ id = '{'
+
+class FlowSequenceEndToken(Token):
+ id = ']'
+
+class FlowMappingEndToken(Token):
+ id = '}'
+
+class KeyToken(Token):
+ id = '?'
+
+class ValueToken(Token):
+ id = ':'
+
+class BlockEntryToken(Token):
+ id = '-'
+
+class FlowEntryToken(Token):
+ id = ','
+
+class AliasToken(Token):
+ id = '<alias>'
+ def __init__(self, value, start_mark, end_mark):
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class AnchorToken(Token):
+ id = '<anchor>'
+ def __init__(self, value, start_mark, end_mark):
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class TagToken(Token):
+ id = '<tag>'
+ def __init__(self, value, start_mark, end_mark):
+ self.value = value
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+
+class ScalarToken(Token):
+ id = '<scalar>'
+ def __init__(self, value, plain, start_mark, end_mark, style=None):
+ self.value = value
+ self.plain = plain
+ self.start_mark = start_mark
+ self.end_mark = end_mark
+ self.style = style
+