Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Xilinx Confidential
Course Logistics
• Feel free to ask questions during the class
– We will answer what we can and get back to you on
the ones we can not
Electric Accelerator
Build Cluster
• Cluster Agents
– Multiple agents can run on a single cluster agent machine
– Accepts and runs build jobs from emake
– Builds and uses the Virtual File System & File Cache
• Cluster Manager
– Coordinates emake requests and agent assignments
• Based on priorities and available resources
– Manages agent licenses
– Provides a web based interface for managing the build cluster
– Windows: \\xcodevnac\xfndry\ecloud_software\einsight-2.0.1\windows\einsight.exe
Build
Status
RTF checkrtfs Viewer
Areas
Sandbox
allbuilds
Make
xbld Template Source
XCS Code
BuildIt Repository
Platform
Make Makefile
BuildIt
relman SSI
Build Job
Queue
BuildIt
relman SSI
Build Job
Queue
Electric
Accelerator
Cluster
Manager
Cluster
Agent Agent Agent Agent
(lin) (nt) (nt64) (lin64)
xbld –nocluster…
1
allbuilds –noremote -nocluster…
Desktop
Build
Machine
Developer
emake
/ SSI
Desktop
Build
Machine
Developer
emake
/ SSI
xbld …
2
allbuilds -noremote …
Electric
Accelerator
Cluster
Manager
Cluster
Agent Agent Agent Agent
(lin) (nt) (nt64) (lin64)
Electric emake
Accelerator
Cluster
Manager
Cluster
Agent Agent Agent Agent
(lin) (nt) (nt64) (lin64)
Desktop
Build
Machine
Developer
emake
/ SSI
Shared
Developer
Machines
[ lin/lin64/nt/nt64 ]
emake
Electric
Accelerator
Cluster
Manager
Cluster
Agent Agent Agent Agent
(lin) (nt) (nt64) (lin64)
History
emake File
xbld
-nocluster -cluster
makefile.<platform> makefile.<platform>
foo.o : foo.c \ foo.o : foo.c
${XMM_XILENV1}/layer1/ss1/export/header1.h \ @$(ECHO) ----- Compiling $*.c -----
${XMM_XILENV1}/layer2/ss2/export/header2.h \ @${RM} $@
${XMM_XILENV1}/Layer2/ss3/export/header3.h \ ${COMPILER} $(basename $@). c $(CFLAGS) …
o
o
o
@$(ECHO) ----- Compiling $*.c -----
@${RM} $@
${COMPILER} $(basename $@). c $(CFLAGS) …
• If you run on lin64 you must ensure the LANG and LC_ALL
(LC_*) environment variables are unset in your shell
– xbld will attempt to do this for you
– This issue will be addressed in the EC4.2 release available in the
coming weeks
• A Better way:
!m HEADERS = ../i/*.h:${EXPORT_DIR}/*.h
includes: ${HEADERS}
${EXPORT_DIR}/%.h : ../i/%.h
@${ECHO} Releasing exported header file $@
${RM} -f $@
${CP} -f $< $@
${CHMOD} 644 $@
Lava Build Tools Training 51 Xilinx Confidential
Make Template Rules & Guidelines
9. Do not rely on the ‘sequential nature’ of the old build system
when listing commands in a make rule
– Example: When using XTESTSUMMARY define dependencies so
that smoke tests will be run before XTESTSUMMARY
– This is a common high level make template entry:
libsmoke:
!Subbld smoke/s
@${XTESTSUMMARY} -r=smoke
– When running on the cluster emake will try to run the smoke
tests and XTESTSUMMARY at the same time resulting in an
empty smoketest.sum file
– The following provides the desired behavior:
libsmoke: smoketest.sum
smoketest.sum: run_smokes
@${XTESTSUMMARY} -r=smoke
run_smokes:
!subbld smoke/s
includes:
!subbld MySubPkg1
!subbld MySubPkg2
!subbld export
export_includes: pkg_includes
!subbld export
pkg_includes:
!subbld MySubPkg1
!subbld MySubPkg2
– In export/make.t:
!m EXPORTED_HEADERS = *.h : *.h
includes:
$(CP) $(EXPORTED_HEADERS) $(EXPORTDIR)
http://xinc/sites/dsdbldsys/default.aspx
Support Slides
Xilinx Confidential
Hardware Terminology
Shared
BuildIt Server Developer
Machine Machines
Desktop Desktop
BuildIt Build Build
Machine Machine
relman SSI emake Developer emake
Build Job / SSI
Queue