             xdc-E11 (corevers:16.0.2.0; B:200,G:200,R:200)

                       eXpanDed C Tools (XDCtools)

    This tree contains the RTSC build and configuration engines for
    target content. The tree is used in XDCtools 3.50 product releases. This
    series of trees breaks compatibility with XDCtools 3.32 and older.

Librarian repo creation
-----------------------
    The xdc.git repo was created to "track" the repo maintained at 
    eclipse.org and was created as follows:
        git clone --bare ssh://git.eclipse.org/gitroot/rtsc/org.eclipse.rtsc.xdccore.git xdc.git
	cd xdc.git
        git config remote.origin.fetch "+refs/heads/*:refs/heads/*"

BUILD	

    o setup ssh to enable "git" from xlibrary as "dr" (if necessary) 
	cd ~xlibrary/.ssh
	cp -f config-dr config

    o fetch the latest changes from the Eclipse git server
	cd xdc.git
	git fetch

    o Build this tree from Linux using standard SM-MAKE
    
        # clone the tree and merge/review user content
        ggentree -u sascha@ti.com xdc.git/
        cd xdc-E??

	# unzip build.zip from the last released tree
	unzip ../xdc-E??/build.zip

        # make sure the user email and name are your eclipse credentials 
        git merge origin/xdccore-E-dr

        # build the tree using LSF to force older GLIBC to be used when
	# linking Linux executables
        SM-MAKE .clean
        SM-MAKE .all-files >& Make.log 

        # update README 
        emacs README
        git commit -a -m xdc-E??

        # release the tree
        greltree -m "something brief and meaningful"

    o to make both the UNIX and PC sides, from a Linux workstation, go to the
      top directory of the tree and type:

	SM-MAKE .all-files

      To clean the tree, type:

        SM-MAKE .clean

    o to build only packages in src/packages from scratch:

    	SM-MAKE .xdc-packages

    o to build bundles:

    	SM-MAKE .bundles

    o to run regressions:

        SM-MAKE .regress

==============================================================

ADDITIONS

DELETIONS

CHANGES

xdc.rov	    changed Model.xs to recognize A53F target that uses the class Elf
	    from ti.targets.omf.elf as a binaryParser, and make that target
	    use xdc.targets.omf.Elf instead 

MRS

XDCTOOLS-225	Log_print and Log_info not working correctly on Cortex-A53
		(64-bit ARM target)
