Re: how to link compiler logical from mmk

2008-11-26 Thread Craig A. Berry

On Nov 25, 2008, at 11:53 PM, ravi kumar wrote:

Thanks for your advice. Actually she had some requirement to build  
perl5.10.0 on alpha 8.3 machine but she didn't have that machine so  
she has to build that on 7.3-2 machine but she got 8.3 buildtreee in  
her machine so she wants to use that buildtree to build perl5.10.0  
with 8.3 sharebles since she needs symlinks should work . so please  
help her guiding the proper way of doing this.



There is no "proper" way.  I've heard of such things being done, but  
it requires a knowledge of how the compiler, linker, and CRTL work  
beyond what the documentation is likely to provide.  It also will  
require a knowledge of how the Perl configuration process works beyond  
what one typically needs to build Perl; that part I might be able to  
help with.


Symlinks involved RMS changes, not just CRTL changes, so I don't think  
you can get working symlinks just by having a later CRTL.  It *might*  
be possible to get it built but you couldn't actually test it on an  
older version of VMS.  In other words, you'll need an 8.3 (or possibly  
8.2?) system in order to test that what you've built actually works,  
assuming you can get it to build this way at all.


As John indicated, configure.com does all sorts of probes to assess  
the capabilities of the system you are building on.  To do what you  
are trying to do by running configure.com, you'll need to fake the  
answer to F$GETSYI("VERSION") and make sure the compiler sees the  
equivalent of


#define __CRTL_VER 8030

for every test compile that it does.  Those are minimum requirements.   
There are very likely others I haven't thought of.


I suppose an alternative would be to manually edit config.sh to say  
you have the features that you want.  So, for example, the line that  
looks like


d_symlink='undef'

you'd change to

d_symlink='define'

Then use munchconfig to manually regenerate config.h and the other  
resulting files.  This would be after configuration and before  
building.  None of this is documented or supported -- you'll have to  
read the code in configure.com to understand how it works.


I would expect whatever approach you take will expose various  
incompatibilities between your custom build environment and the  
standard one, and will require a good bit of troubleshooting and  
debugging to sort out.


Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
 Brad Leithauser



Re: how to link compiler logical from mmk

2008-11-25 Thread ravi kumar
Hi John,

Thanks for your advice. Actually she had some requirement to build
perl5.10.0 on alpha 8.3 machine but she didn't have that machine so she has
to build that on 7.3-2 machine but she got 8.3 buildtreee in her machine so
she wants to use that buildtree to build perl5.10.0 with 8.3 sharebles since
she needs symlinks should work . so please help her guiding the proper way
of doing this.

Thanks,
Ravikumar.




On Tue, Nov 25, 2008 at 9:25 PM, John E. Malmberg <[EMAIL PROTECTED]> wrote:

> purnima bhandari wrote:
>
>> Hi All,
>>
>> Thanks for all the help...
>>
>> I am able to link by adding my own .com fine which is defining the
>> compiler's needed logical.I added that one in the descrip.mms file into the
>> .FIRST location for MMK and i also modified the descrip_mms.template for
>> Perl5.10.0.
>>
>
> And as I stated in my first e-mail, making such changes would not result in
> perl building successfully.
>
> The line that you added attempts to change the version of the C compiler
> used in the compile.  This has no effect on what run time library is in use.
>
> Why do you think you need to do this?
>
> Nothing in your previous posts indicate that this is needed to do what you
> have stated you are trying to do.
>
> Perl 5.10.0 should compile fine with any version of DEC/Compaq/HP C on any
> VMS platform later than 5.5-2.  There are a few small patches needed for
> some older versions that have been posted to this list.
>
> Now the build is going fine except for the file VMS.C.Below is the warning
>> i am getting.
>>
>> CC/DECC/NOANSI_ALIAS
>> /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList-
>> /float=ieee/ieee=denorm/Define=(PERL_CORE,_USE_STD_STAT=1) VMS.C
>>
>
>
>VMS_INO_T_COPY(statbufp->st_ino, statbufp->crtl_stat.st_ino);
>> ^
>> %CC-W-CVTDIFTYPES, In this statement, "statbufp->crtl_stat.st_ino"
>>
> >  of type "pointer to unsigned short", is being converted to "unsig
>
>> ned int".
>>
>
> You have set a macro definition that is not available in the C RTL header
> file for the version of VMS you are building on.
>
> This has nothing to do with the compiler version you are using.
>
> Changing the compiler version is done for several reasons, but not the one
> that you gave in your previous e-mail, which is why changing it does not
> solve your problem.
>
> The compiler version used is DEC C V 7.x.
>>
>
> Tell us what you are trying to accomplish and why.
>
> Changing the version that the compiler you are using will not help with
> run-time library issues.
>
> > On 17 Nov 2008, at 03:38 , purnima bhandari wrote:
> >
> >>
> >> I am trying to build a perl5.10.0 using MMK.
> >> I am linking against the 8.3 decc$shr on a 7.3-2 system.
>
> This has nothing to do with the compiler version.
>
> >> Compiler virsion of the & 7.3-2 is below.
> >> $ cc/ver
> >> DEC C V5.7-006 on OpenVMS Alpha V7.3-2
> >> $
>
> Here are the issues you are facing:
>
> 1. PERL uses DCL to determine what features are available on the system
> perl is being built on in the configure state.
>
> This means that even if you change the link to use the newer DECC$SHR, and
> got everything else to work, you will still end up with a Perl that is
> limited to what is available on the build system.
>
> In some cases it does this by building small programs, in others by
> internal knowledge.
>
> The compiler version has nothing at all to do with this.
>
> Because you got incompatible parameters in your resulting build, it looks
> like you did something to bypass that phase of the Perl build.
>
> 2. In the Perl build procedure, perl builds several helper programs that
> are run.  If you succeed in linking them against the newer DECC$SHR, they
> may not run, and may fail in odd ways.
>
> The compiler version has nothing at all to do with this.
>
> 3. The compiler by default, like DCL will use the header file libraries for
> the build platform.  This will result in it only using the features that are
> available on the build platform, even if you get it to link with the newer
> library.
>
> > I am very new to the VMS .Can anyone please help me with their
> > suggestions?
>
> What are you trying to do?
>
> There is a need for more people to be hacking on VMS perl internals, so I
> do not want to chase you away.
>
> However if you are new, you should start with simple things, and explain
>  why you think you need to do complex solutions.
>
> VMS does not make it as hard to do things as other platforms, so trying to
> solve simple problems by doing complex things as maintaining different
> compiler versions is usually a waste of time.
>
> -John
> [EMAIL PROTECTED]
> Personal Opinion Only
>
>


-- 
Ravikumar karnati


Re: how to link compiler logical from mmk

2008-11-25 Thread John E. Malmberg

purnima bhandari wrote:

Hi All,

Thanks for all the help...

I am able to link by adding my own .com fine which is defining the 
compiler's needed logical.I added that one in the descrip.mms file into 
the .FIRST location for MMK and i also modified the descrip_mms.template 
for Perl5.10.0.


And as I stated in my first e-mail, making such changes would not result 
in perl building successfully.


The line that you added attempts to change the version of the C compiler 
used in the compile.  This has no effect on what run time library is in use.


Why do you think you need to do this?

Nothing in your previous posts indicate that this is needed to do what 
you have stated you are trying to do.


Perl 5.10.0 should compile fine with any version of DEC/Compaq/HP C on 
any VMS platform later than 5.5-2.  There are a few small patches needed 
for some older versions that have been posted to this list.


Now the build is going fine except for the file VMS.C.Below is the 
warning i am getting.


CC/DECC/NOANSI_ALIAS 
/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList-

/float=ieee/ieee=denorm/Define=(PERL_CORE,_USE_STD_STAT=1) VMS.C




VMS_INO_T_COPY(statbufp->st_ino, statbufp->crtl_stat.st_ino);
^
%CC-W-CVTDIFTYPES, In this statement, "statbufp->crtl_stat.st_ino"

>  of type "pointer to unsigned short", is being converted to "unsig

ned int".


You have set a macro definition that is not available in the C RTL 
header file for the version of VMS you are building on.


This has nothing to do with the compiler version you are using.

Changing the compiler version is done for several reasons, but not the 
one that you gave in your previous e-mail, which is why changing it does 
not solve your problem.



The compiler version used is DEC C V 7.x.


Tell us what you are trying to accomplish and why.

Changing the version that the compiler you are using will not help with 
run-time library issues.


> On 17 Nov 2008, at 03:38 , purnima bhandari wrote:
>
>>
>> I am trying to build a perl5.10.0 using MMK.
>> I am linking against the 8.3 decc$shr on a 7.3-2 system.

This has nothing to do with the compiler version.

>> Compiler virsion of the & 7.3-2 is below.
>> $ cc/ver
>> DEC C V5.7-006 on OpenVMS Alpha V7.3-2
>> $

Here are the issues you are facing:

1. PERL uses DCL to determine what features are available on the system 
perl is being built on in the configure state.


This means that even if you change the link to use the newer DECC$SHR, 
and got everything else to work, you will still end up with a Perl that 
is limited to what is available on the build system.


In some cases it does this by building small programs, in others by 
internal knowledge.


The compiler version has nothing at all to do with this.

Because you got incompatible parameters in your resulting build, it 
looks like you did something to bypass that phase of the Perl build.


2. In the Perl build procedure, perl builds several helper programs that 
are run.  If you succeed in linking them against the newer DECC$SHR, 
they may not run, and may fail in odd ways.


The compiler version has nothing at all to do with this.

3. The compiler by default, like DCL will use the header file libraries 
for the build platform.  This will result in it only using the features 
that are available on the build platform, even if you get it to link 
with the newer library.


> I am very new to the VMS .Can anyone please help me with their
> suggestions?

What are you trying to do?

There is a need for more people to be hacking on VMS perl internals, so 
I do not want to chase you away.


However if you are new, you should start with simple things, and explain 
  why you think you need to do complex solutions.


VMS does not make it as hard to do things as other platforms, so trying 
to solve simple problems by doing complex things as maintaining 
different compiler versions is usually a waste of time.


-John
[EMAIL PROTECTED]
Personal Opinion Only



Re: how to link compiler logical from mmk

2008-11-24 Thread purnima bhandari
Hi All,

Thanks for all the help...

I am able to link by adding my own .com fine which is defining the
compiler's needed logical.I added that one in the descrip.mms file into the
.FIRST location for MMK and i also modified the descrip_mms.template for
Perl5.10.0.

Now the build is going fine except for the file VMS.C.Below is the warning i
am getting.

CC/DECC/NOANSI_ALIAS
/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/float=ieee/ieee=denorm/Define=(PERL_CORE,_USE_STD_
STAT=1) VMS.C

VMS_INO_T_COPY(statbufp->st_ino, statbufp->crtl_stat.st_ino);
^
%CC-W-CVTDIFTYPES, In this statement, "statbufp->crtl_stat.st_ino" of type
"pointer to unsigned short", is being converted to "unsig
ned int".
at line number 11837 in file PERL_BUILD_ROOT:[00]vms.c;1

VMS_DEVICE_ENCODE
^
%CC-W-CVTDIFTYPES, In this statement, "statbufp->crtl_stat.st_dev" of type
"pointer to char", is being converted to "unsigned int".
at line number 11838 in file PERL_BUILD_ROOT:[00]vms.c;1

  VMS_INO_T_COPY(statbufp->st_ino, statbufp->crtl_stat.st_ino);
..^
%CC-W-CVTDIFTYPES, In this statement, "statbufp->crtl_stat.st_ino" of type
"pointer to unsigned short", is being converted to "unsig
ned int".
at line number 11993 in file PERL_BUILD_ROOT:[00]vms.c;1

  VMS_DEVICE_ENCODE
..^
%CC-W-CVTDIFTYPES, In this statement, "statbufp->crtl_stat.st_dev" of type
"pointer to char", is being converted to "unsigned int".
at line number 11994 in file PERL_BUILD_ROOT:[00]vms.c;1

rslt = realpath(filespec, outbuf);
...^
%CC-I-IMPLICITFUNC, In this statement, the identifier "realpath" is
implicitly declared as a function.
at line number 13127 in file PERL_BUILD_ROOT:[00]vms.c;1

rslt = realpath(filespec, outbuf);
^
%CC-W-CVTDIFTYPES, In this statement, "realpath(...)" of type "int", is
being converted to "pointer to char".
at line number 13127 in file PERL_BUILD_ROOT:[00]vms.c;1
%MMK-F-ERRUPD, error status %X10B91260 occurred when updating target VMS.OBJ
  25-NOV-2008 02:08:59
$



The compiler version used is DEC C V 7.x.
I am very new to the VMS .Can anyone please help me with their suggestions?

Thanks in advance.


Regards,
Purnima




On Mon, Nov 17, 2008 at 7:20 PM, Matt Madison <[EMAIL PROTECTED]> wrote:

> Purnima,
> Assuming you're using the command procedure provided with DEC C to set the
> version that you want to use, the simplest way to do what you want is to
> add:
>
> .FIRST
> @SYS$SYSTEM:DECC$SET_VERSION 6.0
>
> to the makefile (substituting whichever version you have installed for
> "6.0" on that command line).
>
> Note that logical names *are* inherited from the parent process; it's the
> SET COMMAND which changes the CC DCL verb that does not get passed down to
> the subprocess.
>
> Any commands you put under the ".FIRST" target will get executed in the
> subprocess on its creation, before any of the commands that build real
> targets.  So it's perfect for commands you need to setup the subprocess's
> environment.
>
> Hope this helps.
>
> -Matt
>
>
> On 17 Nov 2008, at 03:38 , purnima bhandari wrote:
>
> Hi,
>
> I am trying to build a perl5.10.0 using MMK.
> I am linking against the 8.3 decc$shr on a 7.3-2 system.
> Compiler virsion of the & 7.3-2 is below.
> $ cc/ver
> DEC C V5.7-006 on OpenVMS Alpha V7.3-2
> $
>
> For compiling the perl5.10.0 i need minimum DECC v6.0.
> By defining the logical with new compiler i am  getting  crash because the
> mmk is not inheriting either symbols or logical names from the parent
> process. At command prompt the file is getting compiled with the logical
> defined.. So I need to include the process of calling .com file which
> defines the compiler logical in mmk.
>
> how can I add my own command file to be called from mmk?
>
> Thanks in advance.
>
>
> Regards,
> Purnima
>
>
>


Re: how to link compiler logical from mmk

2008-11-17 Thread John E. Malmberg

purnima bhandari wrote:

Hi,

I am trying to build a perl5.10.0 using MMK.
I am linking against the 8.3 decc$shr on a 7.3-2 system.
Compiler virsion of the & 7.3-2 is below.
$ cc/ver
DEC C V5.7-006 on OpenVMS Alpha V7.3-2
$


That operation is likely to fail.

To build Perl on an older version of VMS and link against a newer CRTL 
is going to result in the same as if you linked against the older version.


It is a very complex setup that you need to build against a later set of 
libraries.  I know because I used to do it routinely when I worked for 
HP in the VMS Engineering group.



For compiling the perl5.10.0 i need minimum DECC v6.0.


The compiler version and the runtime library version have nothing to do 
with each other.


I have not heard of any reports that DECC 6.x is needed to build Perl.

HP/DEC C 7.x is now the current releases, which would be what would be 
recommended for use on VMS 8.3.



By defining the logical with new compiler i am  getting  crash because the
mmk is not inheriting either symbols or logical names from the parent
process. At command prompt the file is getting compiled with the logical
defined.. So I need to include the process of calling .com file which
defines the compiler logical in mmk.


You obviously do not understand the VMS environment yet well enough to 
realize that what you are asking for help on has nothing to do with what 
you say you are trying to do.


So even if we were able to tell you how to do the steps you asked, the 
end result will still be useless to you.


That is unless we ignore what you are asking and happen to guess right 
on what you really need.  And it is not likely that we are that good at 
guessing.



*how can I add my own command file to be called from mmk?


Now what are you really trying to do and why?

Is this for a business use?

I am sorry that I can not be of more help.  I do not have a listing of 
the many steps needed to do the type of build that you are asking for, 
and it would probably take me quite a while to create and test them.


I also do not have the time to provide such high level consulting for free.

Current employment contracts prevent me from selling such consulting, 
but there may be other people available that are monitoring this list or 
the Perl jobs mailing list.



-John
[EMAIL PROTECTED]
Personal Opinion Only



how to link compiler logical from mmk

2008-11-16 Thread purnima bhandari
Hi,

I am trying to build a perl5.10.0 using MMK.
I am linking against the 8.3 decc$shr on a 7.3-2 system.
Compiler virsion of the & 7.3-2 is below.
$ cc/ver
DEC C V5.7-006 on OpenVMS Alpha V7.3-2
$

For compiling the perl5.10.0 i need minimum DECC v6.0.
By defining the logical with new compiler i am  getting  crash because the
mmk is not inheriting either symbols or logical names from the parent
process. At command prompt the file is getting compiled with the logical
defined.. So I need to include the process of calling .com file which
defines the compiler logical in mmk.

*how can I add my own command file to be called from mmk?

*Thanks in advance.


Regards,
Purnima