bugmake - Bugs: bug #42447, Fix exporting symbols for...


bug #42447: Fix exporting symbols for recursive make on VMS.

Submitter:  John Malmberg <wb8tyw>
Submitted:  Wed 28 May 2014 05:00:20 AM UTC
Severity:  3 - Normal Item Group:  Bug
Status:  Fixed Privacy:  Public
Assigned to:  None Open/Closed:  Closed
Component Version:  4.0 Operating System:  VMS
Fixed Release:  4.2 Triage Status:  None
* Mandatory Fields

Add a New Comment Rich Markup

Mon 20 Oct 2014 05:34:55 AM UTC, comment #4: 

I pushed John's fix for this.

Paul D. Smith <psmith>
Group administrator
Sun 14 Sep 2014 07:46:01 AM UTC, comment #3: 

Needed to patch file #32089.

Discovered some tests failing because the expected exit code
was wrong.

Fixing this seems to have revealed what is needed to get parallism working on VMS in the future.

(file #32093)

John Malmberg <wb8tyw>
Sun 14 Sep 2014 01:44:33 AM UTC, comment #2: 

Updated patch based on current git master.

This includes fixing most of the exit handling code for VMS children, which allows removing some VMS specific exit handling in other places.

Self tests:
 Previously about 104 Tests in 36 categories fail.
 Now about 45 tests in 22 categories fail.

Because some tests do not properly clean up, the number of tests that fail can vary a little bit.

The required VMS updates for the self tests has not yet been checked in.

There is now a run-time option to for Make to use MCR command for the macros for Make instead of a foreign command.  It is not the default, since the expansion of that macro will have a space in it, and that has the potential to cause problems if that is passed to make internal functions which tend to use space as a delimiter.

There is now a run-time option for make to always use command files instead of exporting the environment variables.  It is not the default, as testing shows there are many bugs in the generation of the command files that will need to be fixed.

(file #32089)

John Malmberg <wb8tyw>
Sat 14 Jun 2014 04:47:10 PM UTC, comment #1: 

Uploaded replacement patch:

  • Updated the Git description to match format in git logs.
  • Added vms_exit.c missing from previous patch needed for this to be applied against master.
  • Found that when make was reading DCL symbols and logical names as environment variables, it was doubling the "$" characters found.  This means that the export routine has to remove the duplicate "$" characters before creating the symbol.

This patch also includes the fix for exit decoding that has been discussed on the bug-make list.

The program name is created as the equivalent of a shell alias instead of using the alternate "MCR make-name" syntax so that when the macro is expanded, no spaces are present.  While it is not known that having a space there would cause a problem, I feel that there is a high risk of that.

The DCL symbol export is used instead of putting the symbols in the helper command procedure and always using a command procedure to try to have the program use as similar program flows to make to get the tests working.

It also seems to me to be more efficient to try to avoid using the helper command procedure as much as possible.

I am expecting that changes will be needed in the VMS specific command launching to support multiple jobs, One shell, and the issue of using the command file or a pool of subprocesses can be addressed them.

Copyright assignment papers are on file with fsf.org.

(file #31546)

John Malmberg <wb8tyw>
Wed 28 May 2014 05:00:20 AM UTC, original submission:  

This patch fixes Make on VMS to export symbols so that recursive and nested make commands will work.

This also exports a foreign command for the make image that was run.

Some of the tests still fail because VMS currently does not do shell expansion of exported symbols.  I will be looking at adding that capability in the future as part of improving posix shell simulation.

John Malmberg <wb8tyw>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

Attached Files
file #32093:  0001-Bug-42447-More-VMS-exit-handling-fixes.patch added by wb8tyw (4KiB - application/octet-stream - Update patch file #32089)
file #32089:  0001-Bug-42447-VMS-needs-to-simulate-exporting-symbols.patch added by wb8tyw (56KiB - application/octet-stream - Updated patch based on current git master.)
file #31546:  0001-vms_export_symbol_fix_pass2.patch added by wb8tyw (46KiB - application/octet-stream - Updated export fix and add missing vms_exit.c)
file #31460:  0001-vms_export_symbol_fix_pass1.patch added by wb8tyw (41KiB - application/octet-stream - Make exporting symbols work on VMS for recursive make.)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by psmith (Posted a comment)
  • -email is unavailable- added by wb8tyw (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.


    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2014-10-20 psmith StatusNone Fixed
        Open/ClosedOpen Closed
        Fixed ReleaseNone 4.2
    2014-09-14 wb8tyw Attached File- Added 0001-Bug-42447-More-VMS-exit-handling-fixes.patch, #32093
    2014-09-14 wb8tyw Attached File- Added 0001-Bug-42447-VMS-needs-to-simulate-exporting-symbols.patch, #32089
    2014-06-14 wb8tyw Attached File- Added 0001-vms_export_symbol_fix_pass2.patch, #31546
    2014-05-28 wb8tyw Attached File- Added 0001-vms_export_symbol_fix_pass1.patch, #31460

    Back to the top

    Powered by Savane 3.12