             xdc-A76 (corevers:16.0.2.0; B:150,G:180,R:170)

                       eXpanDed C Tools (XDCtools)

    This tree contains the RTSC build and configuration engines for
    target content. The tree is used in XDCtools product releases.

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, but do it from
      a SUSE 11 host because SUSE 10 has an old version of ssh
	cd xdc.git
	git fetch

    o Build this tree from Linux using standard SM-MAKE
    
        # clone the tree and merge/review user content
        ggentree xdc.git/
        cd xdc-A??

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

        # make sure the user email and name are your eclipse credentials 
        # before making any changes that need to be pushed to eclipse
        cat config-dr >> ./.git/config

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

        # build the tree
        SM-MAKE .clean
        SM-MAKE .all-files >& Make.log 

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

        # release the tree
        greltree -u dr -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

MRS

ECL487422 - ROV leaks memory with simple "resetMods; scanModuleView" loop
