Patch-ID# 110468-02 Keywords: Workshop projects Synopsis: Workshop IPE 6.1_x86: Patch for Forte Developer 6 update 1 Workshop Date: Aug/16/2002 Install Requirements: See Special Install Instructions Solaris Release: 2.6_x86 7_x86 8_x86 SunOS Release: 5.6_x86 5.7_x86 5.8_x86 Unbundled Product: WorkShop IPE Unbundled Release: 6.1 Xref: Topic: Relevant Architectures: i386 BugId's fixed with this patch: 4354164 Changes incorporated in this version: 4354164 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Obsoleted by: Files included with this patch: /SUNWspro/WS6U1/bin/workshop Problem Description: NoBugId Patch 110468-01 has incorrect synopsis in README (from 110468-01) 4354164 Forte 6 project (2 exe's + static lib) becomes corrupt upon saving Patch Installation Instructions: -------------------------------- Special Install Instructions: ----------------------------- User Notes: ----------- Old project files (.prd files) that have multiple dependencies for the same file and are not being recognized by Workshop can be repaired manually. What must be done is to find all the "dependencies" lists in the project file and note the number of times an "entity" name appears. You will then need to change the names such that each name is unique. You will also need to create new entities for each new name that you generated. 1. Make a back up copy of your project file. It is typically located in your working directory and has ".prd" appended to it. 2. Search the project file for the word "dependencies". Make a list of how many times each entity name is listed. Entities are defined within brackets, {}, with the first field being "name =". Although the entity name looks like a path/filename, it is not used in that way. Therefore, we can change the entity name as long as we don't change the contents of the "path" field. 3. For each duplicate entity name within a "dependencies" list, you must change the name so that there are no longer any duplicates. For instance, the entity name "HelloWorld.cc" may appear in 3 different "dependencies" lists. You would then change 2 of the names to maybe "HelloWorld.cc.mangle1" and "HelloWorld.cc.mangle2". Now I have 3 unique entity names. 4. Create a new entity for each new entity name you created. In the example above, you would need to create 2 new entities. The simplest way to do this is to copy the original entity and change some of the fields. For any SOURCE or HEADER file entity, you can copy the original entity and change the entity name to the new unique name you created in step 3 above. For example, the following is the "excercise1/src/HelloWorld.cc" entity: { name = "excercise1/src/HelloWorld.cc"; type = CC; path = "excercise1/src/HelloWorld.cc"; builder = CC_Builder; output_dir = "output"; options = { CC_Builder.value=".", CC_Builder.value="/usr/openwin/include", CC_Builder.value="/usr/dt/include"; }; buildable = false; }, The above entity can be changed to: { name = "excercise1/src/HelloWorld.cc.mangle1"; type = CC; path = "excercise1/src/HelloWorld.cc"; builder = CC_Builder; output_dir = "output"; options = { CC_Builder.value=".", CC_Builder.value="/usr/openwin/include", CC_Builder.value="/usr/dt/include"; }; buildable = false; }, The ONLY thing that was changed was the entity name. For a duplicate static library, dynamic library or jar entity, you must change some of the fields. First copy the original entity and rename it. A typical static library entity may look like the following: { name = "lib/libUtil.a"; type = AR; path = "lib/libUtil.a"; dependencies = { "hw10.cc.mangled$$%%##30", "hw10.h.mangled$$%%##31"; }; builder = AR_Builder; output_dir = "output"; }, First change the entity name: { name = "lib/libUtil.a.mangle5"; type = AR; path = "lib/libUtil.a"; dependencies = { "Util.cc", "Util.h"; }; builder = AR_Builder; output_dir = "output"; }, Next delete the dependencies and builder fields and values: { name = "lib/libUtil.a.mangle5"; type = AR; path = "lib/libUtil.a"; output_dir = "output"; }, Lastly, add a "buildable = false;" field and value: { name = "lib/libUtil.a.mangle5"; type = AR; path = "lib/libUtil.a"; output_dir = "output"; buildable = false; }, Verify that the "type" field contains "AR" for a static library or a jar file or "SO" for a dynamic library. That should be all you need to recover your project file. If you are still having problems and you've verified that you have followed the above steps correctly, try shutting down and restarting Workshop. README -- Last modified date: Friday, August 16, 2002