On Monday, February 28, 2005, at 02:58PM, John E. Malmberg wrote:
The perl hack to produce a consistent dev_t st_dev will proably not work on symbolic links and mount points.
So to support them I will have to make sure that the modules are built with the correct structure sizes.
As the _USE_STD_STAT is likely to have the same order issues as _LARGEFILE did, it needs to be defined in the MMS files.
Also, support for getpgid() will require that the feature macro __USE_LONG_GID_T be defined.
It therefore looks like a change is needed to allow the configure script to pass a list of macros to be appended to a /define=() switch on the C compiler.
If a harmless macro is specified in the MMS file for the cases where there are no extra macros to be defined, this would simplify the coding required to make this change
That way the Configure script can do something that results in:
BUILD_MACROS=,_LARGEFILE=1,_USE_STD_STAT=1,__USE_LONG_GID_T
I think CCDEFINES might be a better name, and I would prefer to make it a variable substitution on [.vms]descrip_mms.template rather than producing a long, complicated macro string that someone has to pass exactly right to MM(S|K).
Annother option is to use the /FIRST_INCLUDE option.
And where it is used:
/MACRO=(VMS_NULL_ARG($)BUILD_MACROS) /MACRO=(X2SUBP($)BULD_MACROS)
As I noted in my IEEE posting, I know how to make it work for the descrip_mms.tempate, but not the other generated descrip.mms files.
If you modify the ccflags symbol appropriately (see what I did for uselargefiles), MakeMaker should pick it up from Config and use it to build extensions correctly.
If I understand your uselargefiles change, you used a variable substitution for ~LARGEFILES~ and passed it as a parameter to the script that built the outer descrip.mms. I did not see a ccflags change, but I will look for it tomorrow.
Did you get a chance to look at the hard link support modifications that I posted about? I am not sure how to resolve the issue on the test that fails. I think it is wrong for a test script to assume that the default protection would be PROT=(O:RWD, G:RWD, W:RWD).
-John [EMAIL PROTECTED] Personal Opinion Only