cons-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CONS on OpenVMS


From: Don's Email
Subject: Re: CONS on OpenVMS
Date: Fri, 11 May 2001 11:29:50 -0700

Steven,

Thanks for the added input into my OpenVMS installation endeavor.  At the
risk of hogging the discuss group bandwidth I've included dumps of my Config
environment, as well as, a dump of my debug session showing the recursion
error.  It appears that the mkdir is called in an infinite loop due to the
values in $self->{dir}.  I don't really know why this simple example would
even be calling mkdir, since it is only one directory and it already exists.

Sincerely,
Donald G Plugge

*** %Config information from my local perl
libpth = /sys$share /sys$library
dlsrc = dl_vms.c
archname = VMS_AXP
osvers = V6.2
prefix = perl_root
installprivlib = perl_root:[lib]
installarchlib = perl_root:[lib.VMS_AXP.5_005]
cc = CC/DECC
ccflags = /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList
so = exe
osname = VMS
archlibexp = perl_root:[lib.VMS_AXP.5_005]
archname = VMS_AXP
sig_name = ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE
ALRM TERM ABRT USR1 USR2",0
sig_num = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0
privlibexp = perl_root:[lib]
libs =
extensions = Fcntl Errno IO Opcode Dumper attrs re Stdio DCLsym B SDBM_File
POSIX
CONFIG = true
PATCHLEVEL = 5
SUBVERSION = 0
alignbytes = 8
ar =
arch = VMS_AXP
archlib = perl_root:[lib.VMS_AXP.]
baserev = 5.0
bin = /perl_root/000000
binexp = perl_root:[000000]
binexp = perl_root:[000000]
builddir = perl_root:[000000]
byteorder = 1234
castflags = 0
cccdlflags =
ccdlflags =
cf_by = unknown
cf_email =
address@hidden
cf_time = Fri nov 20 08:14:07.30 1998
cpp_stuff = 42
cppminus =
cppstdin = CC/DECC/noobj/preprocess=sys$output sys$input
d_Gconvert = my_gconvert(x,n,t,b)
d_alarm = define
d_archlib = define
d_attribut =
d_bcmp =
d_bcopy =
d_bincompat3 =
d_bsdgetpgrp =
d_bsdpgrp =
d_bsdsetpgrp =
d_bzero =
d_casti32 = define
d_castneg = define
d_charvspr =
d_chown = define
d_chroot =
d_chsize =
d_const = define
d_crypt = define
d_csh =
d_cuserid = define
d_dbl_dig = define
d_difftime = define
d_dirnamlen = define
d_dlerror =
d_dlsymun =
d_dosuid =
d_dup2 = define
d_endgrent = define
d_endhent = define
d_endnent =
d_endpent =
d_endpwent = define
d_endsent =
d_eofnblk =
d_eunice =
d_fchmod =
d_fchown =
d_fcntl =
d_fgetpos = define
d_flexfnam = define
d_flock =
d_fork =
d_fpathconf =
d_fsetpos = define
d_getgrent = define
d_getgrps =
d_gethbyaddr = define
d_gethbyname = define
d_gethent =
d_gethent =
d_gethostprotos = define
d_getlogin = define
d_getnbyaddr = define
d_getnbyname = define
d_getnent =
d_getnetprotos = define
d_getpbyname = define
d_getpbynumber = define
d_getpent = define
d_getpgid =
d_getpgrp2 =
d_getpgrp =
d_getppid =
d_getprior =
d_getprotoprotos = define
d_getpwent = define
d_getsbyname = define
d_getsbyport = define
d_getsent =
d_getsent =
d_getservprotos = define
d_gettimeod =
d_gnulibc =
d_grpasswd =
d_htonl = define
d_index =
d_inetaton =
d_isascii = define
d_killpg =
d_lchown =
d_link =
d_locconv = define
d_lockf =
d_longdbl = define
d_longlong = define
d_lstat =
d_mblen = define
d_mbstowcs = define
d_mbtowc = define
d_memcmp = define
d_memcpy = define
d_memmove = define
d_memset = define
d_mkdir = define
d_mkfifo =
d_mknod =
d_mkstemp =
d_mktime = define
d_msg =
d_mymalloc =
d_nice = define
d_oldarchlib = define
d_oldpthreads =
d_open3 = define
d_pathconf =
d_pause = define
d_pipe = define
d_poll =
d_pthread_yield =
d_pthreads_created_joinable =
d_pwage =
d_pwchange =
d_pwclass =
d_pwcomment = define
d_pwexpire =
d_pwgecos = define
d_pwpasswd = define
d_pwquota =
d_readdir = define
d_readlink =
d_rename = define
d_rewinddir = define
d_rmdir = define
d_safebcpy =
d_safemcpy = define
d_sanemcmp = define
d_sched_yield =
d_seekdir = define
d_select = define
d_sem =
d_semctl_semid_ds =
d_semctl_semun =
d_setegid =
d_seteuid =
d_setgrent =
d_setgrps =
d_sethent =
d_sethent =
d_setlinebuf =
d_setlocale = define
d_setnent =
d_setpent =
d_setpgid =
d_setpgrp2 =
d_setpgrp =
d_setprior =
d_setpwent = define
d_setregid =
d_setresgid =
d_setresuid =
d_setreuid =
d_setrgid =
d_setruid =
d_setsent =
d_setsid =
d_setvbuf = define
d_sfio =
d_shm =
d_shmatprototype =
d_sigaction =
d_sigsetjmp =
d_socket = define
d_sockpair =
d_statblks =
d_stdio_cnt_lval = define
d_stdio_ptr_lval = define
d_stdiobase = define
d_stdstdio = define
d_strchr = define
d_strcoll = define
d_strctcpy = define
d_strerrm = strerror((e),vaxc$errno)
d_strerror = define
d_strtod = define
d_strtol = define
d_strtoul = define
d_strxfrm = define
d_suidsafe =
d_symlink =
d_syscall =
d_sysconf =
d_syserrlst =
d_system = define
d_tcgetpgrp =
d_tcsetpgrp =
d_telldir = define
d_times = define
d_truncate =
d_tzname =
d_umask = define
d_uname =
d_union_semun =
d_unlink_all_versions =
d_vfork = define
d_vms_do_sockets = define
d_void_closedir = define
d_volatile = define
d_vprintf = define
d_wait4 =
d_waitpid = define
d_wcstombs = define
d_wctomb = define
db_hashtype =
db_prefixtype =
defvoidused = 15
devtype = dev_t
direntrytype = struct dirent
dlext = exe
dlobj = dl_vms.obj
doublesize = 8
eagain =
ebcdic =
eunicefix = :
exe_ext = .exe
fpostype = fpos_t
freetype = void
full_csh =
full_sed = _NLA0:
gidtype = gid_t
hint = none
hintfile =
i_arpainet =
i_dbm =
i_dirent =
i_dlfcn =
i_fcntl = define
i_float = define
i_grp =
i_limits = define
i_locale = define
i_math = define
i_memory =
i_ndbm =
i_netdb =
i_neterrno = define
i_niin = define
i_pwd =
i_rpcsvcdbm =
i_sfio =
i_sgtty =
i_stdarg = define
i_stddef = define
i_stdlib = define
i_string = define
i_sysdir =
i_sysfile = define
i_sysioctl =
i_sysndir =
i_sysparam =
i_sysresrc =
i_sysselct =
i_sysstat = define
i_systime =
i_systimek =
i_systimes =
i_systypes = define
i_sysun =
i_syswait =
i_termio =
i_termios =
i_time = define
i_unistd = define
i_utime =
i_values =
i_varargs =
i_vfork =
installbin = perl_root:[000000]
installman1dir = perl_root:[man.man1]
installman3dir = perl_root:[man.man3]
installscript = perl_root:[000000]
installsitearch = perl_root:[lib.site_perl.VMS_AXP]
installsitelib = perl_root:[lib.site_perl]
intsize = 4
ld = Link
lddlflags = /Share
ldflags = /NoTrace/NoMap
lib_ext = .olb
libc = (DECCRTL)
longdblsize = 16
longlongsize = 8
longsize = 4
lseektype = int
mab =
malloctype = void *
man1ext = rno
man3ext = rno
modetype = unsigned int
mydomain = .nci.nih.gov
myhostname = fafnir
myuname = VMS fafnir V6.2 DEC 3000 Model 400
netdb_hlen_type = int
netdb_host_type = char *
netdb_name_type = char *
netdb_net_type = long
o_nonblock =
obj_ext = .obj
oldarchlib = perl_root:[lib.VMS_AXP]
oldarchlibexp = perl_root:[lib.VMS_AXP]
package = perl5
pager = most
path_sep = |
perladmin =
address@hidden
pidtype = unsigned int
privlib = perl_root:[lib]
prototype = define
ptrsize = 4
randbits = 31
ranlib =
rd_nodata =
selecttype = fd_set *
sh = MCR
shortsize = 2
shrplib = define
sig_name_init =
"ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL","BUS","SEGV"
,"SYS","PIPE","ALRM","TERM","ABRT","USR1","USR2",0
signal_t = void
sitearch = perl_root:[lib.site_perl.VMS_AXP]
sitearchexp = perl_root:[lib.site_perl.VMS_AXP]
sitelib = perl_root:[lib.site_perl]
sitelibexp = perl_root:[lib.site_perl]
sizetype = size_t
spitshell = write sys$output
ssizetype = int
startperl = $ perl 'f$env("procedure")' 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7'
'p8'  !
$ exit++ + ++$status != 0 and $exit = $status = undef;
stdchar = char
stdio_base = ((*fp)->_base)
stdio_bufsiz = ((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base)
stdio_cnt = ((*fp)->_cnt)
stdio_ptr = ((*fp)->_ptr)
timetype = time_t
uidtype = unsigned int
usedl = define
usemymalloc = N
useperlio =
useposix = false
usethreads =
usevfork = true
vms_cc_type = decc
voidflags = 15

*** perl compiled on OpenVMS 6.2, although I know run 7.2-1 of OpenVMS.

This is perl, version 5.005_02 built for VMS_AXP

Copyright 1987-1998, Larry Wall

Perl may be copied only under the terms of either the Artistic License or
the
GNU General Public License, which may be found in the Perl 5.0 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to the
Internet, point your browser at
http://www.perl.com/, the Perl Home Page.

*** running the construct. file in debug mode then examining the $tgt
variable

Swifty> perl -d cons. hello.exe

Loading DB routines from perl5db.pl version 1.0401
Emacs support available.

Enter h or `h h' for help.

main::(cons.:20):       $ver_num = "2.1";
  DB<1>
  DB<1>
  DB<1>
  DB<1>
  DB<1>
  DB<1>
  DB<1> n
main::(cons.:21):       $ver_rev = ".2";
  DB<1>
main::(cons.:22):       $version = sprintf "This is Cons %s%s " .
main::(cons.:23):                   '($Id: cons.pl,v 1.103 2000/09/10
04:59:21 k
night Exp $)'. "\n",
main::(cons.:24):                   $ver_num, $ver_rev;
  DB<1>
main::(cons.:44):       require 5.002;
  DB<1>
main::(cons.:91):       $| = 1;
  DB<1>
main::(cons.:94):       srand(time . $$); # this works better than time ^ $$
in
perlfunc manpage.
  DB<1>
main::(cons.:96):       $usage = q(
main::(cons.:97):       Usage: cons <arguments> -- <construct-args>
  DB<1>
main::(cons.:184):          my ($vol, $dir, $file) =
File::Spec->splitpath($0);
  DB<1>
main::(cons.:184):          my ($vol, $dir, $file) =
File::Spec->splitpath($0);
  DB<1>
main::(cons.:185):          $0 = $file;
  DB<1>
main::(cons.:189):      $param::topfile = 'Construct';  # Top-level
construction
 file.
  DB<1>
main::(cons.:190):      $param::install = 1;            # Show installations
  DB<1>
main::(cons.:191):      $param::build = 1;              # Build targets
  DB<1>
main::(cons.:193):      $param::sigpro = 'md5';         # Signature
protocol.
  DB<1>
main::(cons.:194):      $param::depfile = '';           # Write all deps out
to
this file
  DB<1>
main::(cons.:195):      $param::salt = '';              # Salt derived file
sign
atures with this.
  DB<1>
main::(cons.:196):      $param::rep_sig_times_ok = 1;   # Repository
.consign ti
mes are in sync
  DB<1>
main::(cons.:198):      $param::conscript_chdir = 0;    # Change dir to
Conscrip
t directory
  DB<1>
main::(cons.:199):      $param::quiet = 0;              # should we show the
com
mand being executed.
  DB<1>
main::(cons.:202):      $indent = '';
  DB<1>
main::(cons.:214):      @param::defaults = (
main::(cons.:215):           'SUFEXE'       => $_exe,
# '' on UNIX systems
main::(cons.:216):           'SUFLIB'       => $_a,
# '.a' on UNIX systems
main::(cons.:217):           'SUFLIBS'      => "$_so:$_a",
# '.so:.a' on UNIX
main::(cons.:218):           'SUFOBJ'       => $_o,
# '.o' on UNIX systems
main::(cons.:219):           'SUFMAP'       => {
main::(cons.:220):               '.c'  => 'build::command::cc',
main::(cons.:221):               '.s'  => 'build::command::cc',
main::(cons.:222):               '.S'  => 'build::command::cc',
main::(cons.:223):               '.C'  => 'build::command::cxx',
main::(cons.:224):               '.cc' => 'build::command::cxx',
main::(cons.:225):               '.cxx'=> 'build::command::cxx',
main::(cons.:226):               '.cpp'=> 'build::command::cxx',
main::(cons.:227):               '.c++'=> 'build::command::cxx',
main::(cons.:228):               '.C++'=> 'build::command::cxx',
  DB<1>
main::(cons.:232):      if ($_WIN32) {
  DB<1>
main::(cons.:260):          my @unix = (
main::(cons.:261):              'CC'             => 'cc',
main::(cons.:262):              'CFLAGS'         => '',
main::(cons.:263):              'CCCOM'          => '%CC %CFLAGS %_IFLAGS -c
%<
-o %>',
main::(cons.:264):              'CXX'            => '%CC',
main::(cons.:265):              'CXXFLAGS'       => '%CFLAGS',
main::(cons.:266):              'CXXCOM'         => '%CXX %CXXFLAGS
%_IFLAGS -c
%< -o %>',
main::(cons.:267):              'INCDIRPREFIX'   => '-I',
main::(cons.:268):              'LINK'           => '%CXX',
main::(cons.:269):              'LINKCOM'        => '%LINK %LDFLAGS -o %> %<
%_L
DIRS %LIBS',
main::(cons.:270):              'LINKMODULECOM'  => '%LD -r -o %> %<',
main::(cons.:271):              'LIBDIRPREFIX'   => '-L',
main::(cons.:272):              'AR'             => 'ar',
main::(cons.:273):              'ARFLAGS'        => 'r', # rs?
main::(cons.:274):              'ARCOM'          => "%AR %ARFLAGS %>
%<\n%RANLIB
 %>",
main::(cons.:275):              'RANLIB'         => 'ranlib',
main::(cons.:276):              'AS'             => 'as',
main::(cons.:277):              'ASFLAGS'        => '',
main::(cons.:278):              'ASCOM'          => '%AS %ASFLAGS %< -o %>',
main::(cons.:279):              'LD'             => 'ld',
main::(cons.:280):              'LDFLAGS'        => '',
main::(cons.:281):              'PREFLIB'        => 'lib',
main::(cons.:282):              'ENV'            => { 'PATH' =>
'/bin:/usr/bin'
},
main::(cons.:283):          );
  DB<1>
main::(cons.:284):          push(@param::defaults, @unix);
  DB<1>
main::(cons.:288):      while (@ARGV) {
  DB<1>
main::(cons.:289):          $_ = shift @ARGV;
  DB<1>
main::(cons.:290):          last if /^--$/;             # Argument passing
to Co
nstruct.
  DB<1>
main::(cons.:291):          &option, next                       if s/^-//;
  DB<1>
main::(cons.:292):          push (@param::include, $_), next    if s/^\+//;
  DB<1>
main::(cons.:293):          &equate, next                       if /=/;
  DB<1>
main::(cons.:294):          push (@targets, $_), next;
  DB<1>
main::(cons.:365):      'sig'->select($param::sigpro);
  DB<1>
main::(cons.:377):      };
  DB<1>
main::(cons.:386):      };
  DB<1>
main::(cons.:388):      if ($param::depfile) {
  DB<1>
main::(cons.:396):          my ($vol, $dir, $file) =
File::Spec->splitpath($para
m::topfile);
  DB<1>
main::(cons.:396):          my ($vol, $dir, $file) =
File::Spec->splitpath($para
m::topfile);
  DB<1>
main::(cons.:397):          if ($vol || $dir) {
  DB<1>
main::(cons.:405):      my $target_top;
  DB<1>
main::(cons.:406):      if ($param::traverse) {
  DB<1>
main::(cons.:422):      dir::init();
  DB<1>
override::(cons.:426):  if ($param::overfile) {
  DB<1>
main::(cons.:450):      my $re;
  DB<1>
main::(cons.:451):      for $re (@param::include) {
  DB<1>
main::(cons.:460):      doscripts($param::topfile);
  DB<1>
main::(cons.:464):      %priority =
main::(cons.:465):          ('none' => 1, 'handled' => 2, 'built' => 3,
'unknown
' => 4, 'errors' => 5);
  DB<1>
main::(cons.:468):      @targets = @param::default_targets if ! @targets;
  DB<1>
main::(cons.:470):      $errors = 0;
  DB<1>
main::(cons.:473):      my $tgt;
  DB<1>
main::(cons.:474):      for $tgt (map($dir::top->lookup($_), @targets)) {
  DB<1>
main::(cons.:475):          if ($target_top && !
$tgt->is_under($target_top)) {
  DB<1> x $tgt
0  file=HASH(0x558dfc)
   'builder' => build::command::link=HASH(0x558e8c)
      'com' => 'LINK'
      'comsig' => 'LINK'
      'env' => cons=HASH(0x5493ac)
         'AR' => 'ar'
         'ARCOM' => '%AR %ARFLAGS %> %<
%RANLIB %>'
         'ARFLAGS' => 'r'
         'AS' => 'as'
         'ASCOM' => '%AS %ASFLAGS %< -o %>'
         'ASFLAGS' => ''
         'CC' => 'CC'
         'CCCOM' => '%CC /STAND=VAXC /OBJ=.OBJ'
         'CFLAGS' => ''
         'CXX' => '%CC'
         'CXXCOM' => '%CXX %CXXFLAGS %_IFLAGS -c %< -o %>'
         'CXXFLAGS' => '%CFLAGS'
         'ENV' => HASH(0x545070)
            'PATH' => '/bin:/usr/bin'
         'INCDIRPREFIX' => '-I'
         'LD' => 'ld'
         'LDFLAGS' => ''
         'LIBDIRPREFIX' => '-L'
         'LINK' => 'LINK'
         'LINKCOM' => '%LINK'
         'LINKMODULECOM' => '%LD -r -o %> %<'
         'PREFLIB' => 'lib'
         'RANLIB' => 'ranlib'
         'SUFEXE' => '.exe'
         'SUFLIB' => '.olb'
         'SUFLIBS' => '.exe:.olb'
         'SUFMAP' => HASH(0x545190)
            '.C' => 'build::command::cxx'
            '.C++' => 'build::command::cxx'
            '.S' => 'build::command::cc'
            '.c' => 'build::command::cc'
            '.c++' => 'build::command::cxx'
            '.cc' => 'build::command::cxx'
            '.cpp' => 'build::command::cxx'
            '.cxx' => 'build::command::cxx'
            '.s' => 'build::command::cc'
         'SUFOBJ' => '.obj'
         '_IFLAGS' => '%(%)'
         '_LDIRS' => '%(%)'
         '_cc' => build::command::cc=HASH(0x55a69c)
            'com' => 'CC /STAND=VAXC /OBJ=.OBJ'
            'comsig' => 'CC /STAND=VAXC /OBJ=.OBJ'
            'env' => cons=HASH(0x5493ac)
               -> REUSED_ADDRESS
            'includes' => ''
            'scanner' => scan::cpp=HASH(0x55a6a8)
               'path' => ARRAY(0x4033fc)
                    empty array
         '_cwd' => dir=HASH(0x5492f8)
            'dir' => HASH(0x5492d4)
               'member' => HASH(0x5492ec)
                  '$1$DIA5:[LSW.CONS.CONS-2_1_2]' => dir=HASH(0x5492f8)
                     -> REUSED_ADDRESS
            'entry' => '$1$DIA5:[LSW.CONS.CONS-2_1_2]'
            'member' => HASH(0x54931c)
               '.' => dir=HASH(0x5492f8)
                  -> REUSED_ADDRESS
               '..' => HASH(0x5492d4)
                  -> REUSED_ADDRESS
               'Construct' => file=HASH(0x549364)
                  'dir' => dir=HASH(0x5492f8)
                     -> REUSED_ADDRESS
                  'entry' => 'Construct'
                  'rsrcpath' => 'Construct'
               'hello.c' => file=HASH(0x558e68)
                  'creator' => ARRAY(0x558fd0)
                     0  'script'
                     1  'Construct'
                     2  8
                     3  'cons::Objects'
                     4  1
                     5  0
                  'dir' => dir=HASH(0x5492f8)
                     -> REUSED_ADDRESS
                  'entry' => 'hello.c'
               'hello.exe' => file=HASH(0x558dfc)
                  -> REUSED_ADDRESS
               'hello.obj' => file=HASH(0x558de4)
                  'builder' => build::command::cc=HASH(0x55a69c)
                     -> REUSED_ADDRESS
                  'creator' => ARRAY(0x558eec)
                     0  'script'
                     1  'Construct'
                     2  7
                     3  'cons::Program'
                     4  1
                     5  undef
                  'dep' => ARRAY(0x328300)
                       empty array
                  'dir' => dir=HASH(0x5492f8)
                     -> REUSED_ADDRESS
                  'entry' => 'hello.obj'
                  'sources' => ARRAY(0x55c534)
                     0  file=HASH(0x558e68)
                        -> REUSED_ADDRESS
            'path' => '.'
            'prefix' => ''
            'srcdir' => dir=HASH(0x5492f8)
               -> REUSED_ADDRESS
            'srcpath' => '.'
            'srcprefix' => ''
         '_envcopy' => ARRAY(0x55906c)
            0  'ARFLAGS'
            1  'r'
            2  'CXXFLAGS'
            3  '%CFLAGS'
            4  'ASFLAGS'
            5  ''
            6  'PREFLIB'
            7  'lib'
            8  'LIBDIRPREFIX'
            9  '-L'
            10  'CCCOM'
            11  '%CC /STAND=VAXC /OBJ=.OBJ'
            12  'SUFLIB'
            13  '.olb'
            14  'CC'
            15  'CC'
            16  'INCDIRPREFIX'
            17  '-I'
            18  'ENV'
            19  HASH(0x545070)
               -> REUSED_ADDRESS
            20  'SUFOBJ'
            21  '.obj'
            22  'SUFMAP'
            23  HASH(0x545190)
               -> REUSED_ADDRESS
            24  'LINKCOM'
            25  '%LINK'
            26  'LINK'
            27  'LINK'
            28  'LD'
            29  'ld'
            30  'SUFEXE'
            31  '.exe'
            32  'CFLAGS'
            33  ''
            34  'ARCOM'
            35  '%AR %ARFLAGS %> %<
%RANLIB %>'
            36  'CXXCOM'
            37  '%CXX %CXXFLAGS %_IFLAGS -c %< -o %>'
            38  'ASCOM'
            39  '%AS %ASFLAGS %< -o %>'
            40  'AR'
            41  'ar'
            42  'CXX'
            43  '%CC'
            44  'LINKMODULECOM'
            45  '%LD -r -o %> %<'
            46  'AS'
            47  'as'
            48  'RANLIB'
            49  'ranlib'
            50  'SUFLIBS'
            51  '.exe:.olb'
            52  'LDFLAGS'
            53  ''
      'includes' => ''
   'creator' => ARRAY(0x39df58)
      0  'script'
      1  'Construct'
      2  7
      3  'cons::Program'
      4  1
      5  undef
   'dep' => ARRAY(0x558fdc)
        empty array
   'dir' => dir=HASH(0x5492f8)
      -> REUSED_ADDRESS
   'entry' => 'hello.exe'
   'sources' => ARRAY(0x558f34)
      0  file=HASH(0x558de4)
         -> REUSED_ADDRESS
  DB<2> exit
Debugged program terminated.  Use q to quit or R to restart,
  use O inhibit_exit to avoid stopping after program termination,
  h q, h R or h O to get additional info.
  DB<3> exit

*** my modified construct. file looks like
$env = new cons(
           CC => 'CC',
           CCOM => '%CC /STAND=VAXC /OBJ=.OBJ',
           LINK => 'LINK',
           LINKCOM => '%LINK'
           );
Program $env 'hello.exe', 'hello.obj';
$env->Objects('hello.c');

*** END

----- Original Message -----
From: "Steven Knight" <
address@hidden>
To: "Don's Email" <
address@hidden>
Cc: <
address@hidden>
Sent: Wednesday, May 09, 2001 8:38 AM
Subject: Re: Fw: CONS on OpenVMS


> Donald--
>
> > I did play with the contruct. file in an attempt to setup a simple hello
> > world for the VMS environment.  My work resulted in a greater
understanding
> > of the flexibility of CONS.  However, I ended with a deep recursion on
> > subroutine "futil::mkdir" at cons. line 2927.
>
> What was the configuration that caused this recursion?
>
> > I'm attempting to perform the following commands in CONS:
> >
> > 1) I want to compile the hello.c code into hello.obj
> > $ CC /STAND=VAXC HELLO.C
>
> Is the .OBJ extension a VMS standard, or just your preference for
> your particular build configuration?
>
> > I included the "Objects" method, otherwise CONS didn't know how to
construct
> > the .OBJ file.
>
> You can use the SUFOBJ construction variable to set the object
> suffix to '.OBJ'.  That should eliminate having to use the Objects
> method explicitly.
>
> Actually, Cons uses the Perl %Config values for the default file
> extensions.  Hence my question above; if .OBJ is the VMS standard
> suffix for object files, and the Perl port to OpenVMS used that
> file suffix, then it *should* have been stored in Perl's %Config
> hash and Cons would have used the .OBJ extension by default.
>
> You can see what Cons is picking up from Perl as its default object
> file extension by executing:
>
> perl -e "use Config; print $Config{_o}"
>
> (or the equivalent, if that idiom doesn't work on OpenVMS for some
> reason).  Actually, I'd be interested to know what the VMS version
> of Perl has in the entir %Config hash...
>
> BTW, what version of Perl is this (perl -v)?
>
> Thanks for getting Cons to work on VMS.  More portability is good...
>
> --SK
>
>
> _______________________________________________
>
address@hidden
> http://mail.gnu.org/mailman/listinfo/cons-discuss
> Cons URL: http://www.dsmit.com/cons/
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]