             xdc-D20 (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-D??

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

        # make sure the user email and name are your eclipse credentials 
        git merge origin/xdccore-D-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-D??

        # 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

core	    definitions of function types and function prototypes now have
	    parameter names. This fixes one of the MISRA warnings.

	    Params structure that contained Vectors and C arrays were
	    declared with the elements of the underlying arrays being immutable.
	    That restriction was lifted in this tree.

MRS
