IBM Support

PK71394: Regression: %set not interpreted correctly in build script of co nfig record

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Re-introduction of APAR APAR PK32565
    The config record lists wrong build script, as '%set' is not
    being interpreted correctly when preceding a macro.
    This can be demonstrated with the following makefile
    (file name test.mak):
      b.txt : a.txt
      %if 'A' == 'A'
       %set MACRO_1=A
      %else
       %set MACRO_1=B
      %endif
      copy /Y $(.SOURCE) $(.TARGET)
      echo some text > sibling_do_$(MACRO_1).txt
    Running the command: omake -f test.mak, produces the output:
     %set MACRO_1=A
     copy /Y a.txt b.txt
      1 file(s) copied.
     echo some text > sibling_do_A.txt
    After that, the current directory contains:
     2006-10-04  09:29 AM       0 a.txt
     2006-10-04  09:29 AM       0 b.txt
     2006-10-04  09:36 AM      12 sibling_DO_A.txt
     2006-10-04  09:36 AM     171 test.mak
     2006-10-04  09:36 AM   1,820 .cmake.state
    The config record of Derived Object b.txt contains:
    Derived object: \system\...\src\b.txt@@04-Oct.09:29.2147484409
    Target b.txt built by xxx
    Host 'xxx' running NT 5.1 (i586)
    Reference Time 04-Oct-06.09:36:25, this audit started ...
    View was
    xxx:D:\Data\CCase\views\xxx.vws
    Initial working directory was
    T:\xxx\system\...\src
    ----------------------------
    MVFS objects:
    ----------------------------
    \system\...\src\a.txt
    <04-Oct-06.09:29:41>
    \system\...\src\b.txt@@04-Oct.09:29.2147484409
    \system\...\src\sibling_DO_A.txt@@04-Oct.09:36.2147484410
    ----------------------------
    Build Script:
    ----------------------------
     %if 'A' == 'A'
     %set MACRO_1=A
     %else
     %set MACRO_1=B
     %endif
     copy /Y a.txt b.txt
     echo some text > sibling_do_B.txt
    ----------------------------
    As you can see, the build script in the config record contains
    the line:
    

Local fix

Problem summary

  • conditional directives are evaluated in read time if they
    start from left most column, else in run time.
    Customer written makefile, where conditional directive didnt
    start from left most column, and expected them to evaluated
    in read time. This was fixed in RATLC01000230, which caused
    the conditionals being evaluted twice.
    

Problem conclusion

  • A fix is available in ClearCase versions 7.0.0.8 and 7.0.1.7
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK71394

  • Reported component name

    CLEARCASE WIN

  • Reported component ID

    5724G2900

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2008-09-02

  • Closed date

    2009-10-16

  • Last modified date

    2009-10-16

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    CLEARCASE WIN

  • Fixed component ID

    5724G2900

Applicable component levels

  • R700 PSN

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSSH27","label":"Rational ClearCase"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
16 October 2009