dslinux/user/perl/vos Changes Makefile build.cm compile_full_perl.cm compile_perl.cm config.alpha.def config.alpha.h config.ga.def config.ga.h config.pl configure_full_perl.sh configure_perl.cm install_perl.cm make_full_perl.sh mv-if-diff perl.bind test_vos_dummies.c vos.c vos_dummies.c vosish.h

cayenne dslinux_cayenne at user.in-berlin.de
Mon Dec 4 18:02:19 CET 2006


Update of /cvsroot/dslinux/dslinux/user/perl/vos
In directory antilope:/tmp/cvs-serv17422/vos

Added Files:
	Changes Makefile build.cm compile_full_perl.cm compile_perl.cm 
	config.alpha.def config.alpha.h config.ga.def config.ga.h 
	config.pl configure_full_perl.sh configure_perl.cm 
	install_perl.cm make_full_perl.sh mv-if-diff perl.bind 
	test_vos_dummies.c vos.c vos_dummies.c vosish.h 
Log Message:
Adding fresh perl source to HEAD to branch from

--- NEW FILE: test_vos_dummies.c ---
/*  +++begin copyright+++ *******************************************  */
/*                                                                     */
/*  COPYRIGHT (c) 1997, 1998, 2000 Stratus Computer (DE), Inc.         */
/*                                                                     */
/*  This program is free software; you can redistribute it and/or      */
/*  modify it under the terms of either:                               */
/*                                                                     */
/*  a) the GNU General Public License as published by the Free         */
/*  Software Foundation; either version 1, or (at your option) any     */
/*  later version, or                                                  */
/*                                                                     */
/*  b) the "Artistic License" which comes with this Kit.               */
/*                                                                     */
/*  This program is distributed in the hope that it will be useful,    */
/*  but WITHOUT ANY WARRANTY; without even the implied warranty of     */
/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See either   */
/*  the GNU General Public License or the Artistic License for more    */
/*  details.                                                           */
/*                                                                     */
/*  You should have received a copy of the Artistic License with this  */
/*  Kit, in the file named "Artistic".  If not, you can get one from   */
/*  the Perl distribution.                                             */
/*                                                                     */
/*  You should also have received a copy of the GNU General Public     */
/*  License along with this program; if not, you can get one from      */
/*  the Perl distribution or else write to the Free Software           */
/*  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA          */
/*  02111-1307, USA.                                                   */
/*                                                                     */
/*  +++end copyright+++ *********************************************  */

/* This program tests the code in vos_dummies.c to make sure it
   works as expected.  */

extern int dup (int _fildes);

int t_dummies ()
{
int  fildes;

     fildes=3;
     dup (fildes);
}

--- NEW FILE: config.alpha.def ---
$CONFIG_SH='config.sh'
$Id='$Id'
$alignbytes='8'
$aphostname=''
$archlib=''
$archlibexp=''
$archname=''
$asctime_r_proto='0'
$bin='/system/ported/command_library'
$binexp='/system/ported/command_library'
$byteorder='4321'
$castflags='0'
$cf_by='Paul.Green at stratus.com'
$cf_time='2004-01-13 12:00 UCT'
$cpp_stuff='42'
$cpplast='-'
$cppminus='-'
$cpprun='cc -E -'
$cppstdin='cc -E'
$crypt_r_proto='0'
$ctermid_r_proto='0'
$ctime_r_proto='0'
$d_Gconvert='sprintf((b),"%.*g",(n),(x))'
$d_PRIeldbl='define'
$d_PRIfldbl='define'
$d_PRIgldbl='define'
$d_SCNfldbl='define'
$d__fwalk='undef'
$d_access='undef'
$d_accessx='undef'
$d_aintl='undef'
$d_alarm='define'
$d_archlib='undef'
$d_asctime_r='undef'
$d_atolf='undef'
$d_atoll='undef'
$d_attribut='undef'
$d_bcmp='undef'
$d_bcopy='undef'
$d_bsdgetpgrp='undef'
$d_bsdsetpgrp='undef'
$d_bzero='undef'
$d_casti32='undef'
$d_castneg='define'
$d_charvspr='undef'
$d_chown='undef'
$d_chroot='undef'
$d_chsize='undef'
$d_class='undef'
$d_cmsghdr_s='undef'
$d_const='define'
$d_copysignl='undef'
$d_crypt='undef'
$d_crypt_r='undef'
$d_csh='undef'
$d_ctermid_r='undef'
$d_ctime_r='undef'
$d_cuserid='undef'
$d_dbl_dig='define'
$d_dbminitproto='undef'
$d_difftime='define'
$d_dirfd='undef'
$d_dirnamlen='undef'
$d_dlerror='undef'
$d_dlsymun='undef'
$d_dosuid='undef'
$d_drand48_r='undef'
$d_drand48proto='undef'
$d_dup2='undef'
$d_eaccess='undef'
$d_endgrent='undef'
$d_endgrent_r='undef'
$d_endhent='define'
$d_endhostent_r='undef'
$d_endnent='define'
$d_endnetent_r='undef'
$d_endpent='define'
$d_endprotoent_r='undef'
$d_endpwent='undef'
$d_endpwent_r='undef'
$d_endsent='define'
$d_endservent_r='undef'
$d_eofnblk='define'
$d_faststdio='define'
$d_fchdir='undef'
$d_fchmod='define'
$d_fchown='undef'
$d_fcntl='define'
$d_fcntl_can_lock='define'
$d_fd_set='define'
$d_fgetpos='define'
$d_finite='undef'
$d_finitel='undef'
$d_flexfnam='define'
$d_flock='undef'
$d_flockproto='undef'
$d_fork='undef'
$d_fp_class='undef'
$d_fpathconf='define'
$d_fpclass='undef'
$d_fpclassify='undef'
$d_fpclassl='undef'
$d_fpos64_t='undef'
$d_frexpl='undef'
$d_fs_data_s='undef'
$d_fseeko='undef'
$d_fsetpos='define'
$d_fstatfs='undef'
$d_fstatvfs='undef'
$d_fsync='undef'
$d_ftello='undef'
$d_getcwd='define'
$d_getespwnam='undef'
$d_getfsstat='undef'
$d_getgrent='undef'
$d_getgrent_r='undef'
$d_getgrgid_r='undef'
$d_getgrnam_r='undef'
$d_getgrps='undef'
$d_gethbyaddr='define'
$d_gethbyname='define'
$d_gethent='define'
$d_gethname='define'
$d_gethostbyaddr_r='undef'
$d_gethostbyname_r='undef'
$d_gethostent_r='undef'
$d_gethostprotos='define'
$d_getitimer='undef'
$d_getlogin='define'
$d_getlogin_r='undef'
$d_getmnt='undef'
$d_getmntent='undef'
$d_getnbyaddr='define'
$d_getnbyname='define'
$d_getnent='define'
$d_getnetbyaddr_r='undef'
$d_getnetbyname_r='undef'
$d_getnetent_r='undef'
$d_getnetprotos='define'
$d_getpagsz='undef'
$d_getpbyname='define'
$d_getpbynumber='define'
$d_getpent='define'
$d_getpgid='undef'
$d_getpgrp2='undef'
$d_getpgrp='define'
$d_getppid='define'
$d_getprior='undef'
$d_getprotobyname_r='undef'
$d_getprotobynumber_r='undef'
$d_getprotoent_r='undef'
$d_getprotoprotos='define'
$d_getprpwnam='undef'
$d_getpwent='undef'
$d_getpwent_r='undef'
$d_getpwnam_r='undef'
$d_getpwuid_r='undef'
$d_getsbyname='define'
$d_getsbyport='define'
$d_getsent='define'
$d_getservbyname_r='undef'
$d_getservbyport_r='undef'
$d_getservent_r='undef'
$d_getservprotos='define'
$d_getspnam='undef'
$d_getspnam_r='undef'
$d_gettimeod='undef'
$d_gmtime_r='undef'
$d_gnulibc='undef'
$d_grpasswd='undef'
$d_hasmntopt='undef'
$d_htonl='define'
$d_ilogbl='undef'
$d_index='undef'
$d_inetaton='undef'
$d_int64_t='undef'
$d_isascii='define'
$d_isfinite='undef'
$d_isinf='undef'
$d_isnan='undef'
$d_isnanl='undef'
$d_killpg='undef'
$d_lchown='undef'
$d_ldbl_dig='define'
$d_link='undef'
$d_localtime_r='undef'
$d_locconv='define'
$d_lockf='define'
$d_longdbl='define'
$d_longlong='undef'
$d_lseekproto='define'
$d_lstat='define'
$d_madvise='undef'
$d_mblen='define'
$d_mbstowcs='define'
$d_mbtowc='define'
$d_memchr='define'
$d_memcmp='define'
$d_memcpy='define'
$d_memmove='define'
$d_memset='define'
$d_mkdir='define'
$d_mkdtemp='undef'
$d_mkfifo='define'
$d_mkstemp='undef'
$d_mkstemps='undef'
$d_mktime='define'
$d_mmap='undef'
$d_modfl='undef'
$d_modflproto='undef'
$d_modfl_pow32_bug='undef'
$d_mprotect='undef'
$d_msg='undef'
$d_msg_ctrunc='undef'
$d_msg_dontroute='undef'
$d_msg_oob='undef'
$d_msg_peek='undef'
$d_msg_proxy='undef'
$d_msghdr_s='undef'
$d_msync='undef'
$d_munmap='undef'
$d_mymalloc='undef'
$d_nice='undef'
$d_nl_langinfo='undef'
$d_nv_preserves_uv='define'
$nv_preserves_uv_bits='32'
$d_off64_t='undef'
$d_old_pthread_create_joinable='undef'
$d_oldpthreads='undef'
$d_open3='define'
$d_pathconf='define'
$d_pause='define'
$d_perl_otherlibdirs='undef'
$d_phostname='undef'
$d_pipe='define'
$d_poll='define'
$d_procselfexe='undef'
$d_pthread_atfork='undef'
$d_pthread_attr_setscope='undef'
$d_pthread_yield='undef'
$d_pwage='undef'
$d_pwchange='undef'
$d_pwclass='undef'
$d_pwcomment='undef'
$d_pwexpire='undef'
$d_pwgecos='undef'
$d_pwpasswd='undef'
$d_pwquota='undef'
$d_quad='undef'
$d_random_r='undef'
$d_readdir64_r='undef'
$d_readdir='define'
$d_readdir_r='undef'
$d_readlink='define'
$d_readv='undef'
$d_recvmsg='undef'
$d_rename='define'
$d_rewinddir='define'
$d_rmdir='define'
$d_safebcpy='undef'
$d_safemcpy='undef'
$d_sanemcmp='define'
$d_sbrkproto='undef'
$d_scalbnl='undef'
$d_sched_yield='undef'
$d_scm_rights='undef'
$d_seekdir='undef'
$d_select='define'
$d_sem='undef'
$d_semctl_semid_ds='undef'
$d_semctl_semun='undef'
$d_sendmsg='undef'
$d_setegid='undef'
$d_seteuid='undef'
$d_setgrent='undef'
$d_setgrent_r='undef'
$d_setgrps='undef'
$d_sethent='define'
$d_sethostent_r='undef'
$d_setitimer='undef'
$d_setlinebuf='undef'
$d_setlocale='define'
$d_setlocale_r='undef'
$d_setnent='define'
$d_setnetent_r='undef'
$d_setpent='define'
$d_setpgid='undef'
$d_setpgrp2='undef'
$d_setpgrp='undef'
$d_setprior='undef'
$d_setproctitle='undef'
$d_setprotoent_r='undef'
$d_setpwent='undef'
$d_setpwent_r='undef'
$d_setregid='undef'
$d_setresgid='undef'
$d_setresuid='undef'
$d_setreuid='undef'
$d_setrgid='undef'
$d_setruid='undef'
$d_setsent='define'
$d_setservent_r='undef'
$d_setsid='undef'
$d_setvbuf='define'
$d_sfio='undef'
$d_shm='undef'
$d_shmatprototype='define'
$d_sigaction='undef'
$d_sigprocmask='undef'
$d_sigsetjmp='undef'
$d_sockatmark='undef'
$d_sockatmarkproto='undef'
$d_socket='define'
$d_sockpair='undef'
$d_socks5_init='undef'
$d_sqrtl='undef'
$d_srand48_r='undef'
$d_srandom_r='undef'
$d_sresgproto='undef'
$d_sresuproto='undef'
$d_statblks='undef'
$d_statfs_f_flags='undef'
$d_statfs_s='undef'
$d_stdio_cnt_lval='define'
$d_stdio_ptr_lval='define'
$d_stdio_ptr_lval_nochange_cnt='undef'
$d_stdio_ptr_lval_sets_cnt='undef'
$d_stdio_stream_array='define'
$d_stdiobase='define'
$d_stdstdio='define'
$d_strchr='define'
$d_strcoll='define'
$d_strctcpy='define'
$d_strerrm='strerror(e)'
$d_strerror='define'
$d_strerror_r='undef'
$d_strftime='define'
$d_strtod='define'
$d_strtol='define'
$d_strtold='undef'
$d_strtoll='undef'
$d_strtoq='undef'
$d_strtoul='define'
$d_strtoull='undef'
$d_strtouq='undef'
$d_strxfrm='define'
$d_suidsafe='define'
$d_symlink='define'
$d_syscall='undef'
$d_syscallproto='undef'
$d_sysconf='define'
$d_syserrlst='define'
$d_system='define'
$d_tcgetpgrp='undef'
$d_tcsetpgrp='undef'
$d_telldir='undef'
$d_telldirproto='undef'
$d_time='define'
$d_times='define'
$d_tm_tm_gmtoff='undef'
$d_tm_tm_zone='undef'
$d_tmpnam_r='undef'
$d_truncate='undef'
$d_ttyname_r='undef'
$d_tzname='define'
$d_u32align='define'
$d_ualarm='undef'
$d_umask='define'
$d_uname='define'
$d_union_semun='undef'
$d_unordered='undef'
$d_usleep='undef'
$d_usleepproto='undef'
$d_ustat='undef'
$d_vendorarch='define'
$d_vendorlib='define'
$d_vfork='undef'
$d_void_closedir='undef'
$d_volatile='define'
$d_vprintf='define'
$d_wait4='undef'
$d_waitpid='define'
$d_wcstombs='define'
$d_wctomb='define'
$d_writev='undef'
$db_hashtype='int'
$db_prefixtype='int'
$db_version_major='undef'
$db_version_minor='undef'
$db_version_patch='undef'
$defvoidused='15'
$direntrytype='struct dirent'
$doublesize='8'
$drand01='(rand() / (double) ((unsigned long)1 << 15))'
$drand48_r_proto='0'
$eagain='EAGAIN'
$ebcdic='undef'
$endgrent_r_proto='0'
$endhostent_r_proto='0'
$endnetent_r_proto='0'
$endprotoent_r_proto='0'
$endpwent_r_proto='0'
$endservent_r_proto='0'
$fflushNULL='define'
$fflushall='undef'
$fpostype='fpos_t'
$freetype='void'
$full_csh=''
$full_sed='/system/ported/command_library/sed.pm'
$getgrent_r_proto='0'
$getgrgid_r_proto='0'
$getgrnam_r_proto='0'
$gethostbyaddr_r_proto='0'
$gethostbyname_r_proto='0'
$gethostent_r_proto='0'
$getlogin_r_proto='0'
$getnetbyaddr_r_proto='0'
$getnetbyname_r_proto='0'
$getnetent_r_proto='0'
$getprotobyname_r_proto='0'
$getprotobynumber_r_proto='0'
$getprotoent_r_proto='0'
$getpwent_r_proto='0'
$getpwnam_r_proto='0'
$getpwuid_r_proto='0'
$getservbyname_r_proto='0'
$getservbyport_r_proto='0'
$getservent_r_proto='0'
$getspnam_r_proto='0'
$gidformat='"d"'
$gidsign='-1'
$gidsize='4'
$gidtype='gid_t'
$gmtime_r_proto='0'
$groupstype='gid_t'
$i16size='2'
$i16type='short'
$i32size='4'
$i32type='int'
$i64size='_error_'
$i64type='_error_'
$i8size='1'
$i8type='char'
$i_arpainet='define'
$i_crypt='undef'
$i_dbm='undef'
$i_dirent='define'
$i_dlfcn='undef'
$i_fcntl='define'
$i_float='define'
$i_fp='undef'
$i_fp_class='undef'
$i_grp='define'
$i_ieeefp='undef'
$i_inttypes='undef'
$i_langinfo='undef'
$i_libutil='undef'
$i_limits='define'
$i_locale='define'
$i_machcthr='undef'
$i_math='define'
$i_memory='undef'
$i_mntent='undef'
$i_ndbm='undef'
$i_netdb='define'
$i_neterrno='undef'
$i_netinettcp='undef'
$i_niin='define'
$i_poll='undef'
$i_prot='undef'
$i_pthread='undef'
$i_pwd='define'
$i_rpcsvcdbm='undef'
$i_sfio='undef'
$i_sgtty='undef'
$i_shadow='undef'
$i_socks='undef'
$i_stdarg='define'
$i_stddef='define'
$i_stdlib='define'
$i_string='define'
$i_sunmath='undef'
$i_sysaccess='undef'
$i_sysdir='undef'
$i_sysfile='undef'
$i_sysioctl='define'
$i_syslog='undef'
$i_sysmode='undef'
$i_sysmount='undef'
$i_sysndir='undef'
$i_sysparam='undef'
$i_sysresrc='undef'
$i_syssecrt='undef'
$i_sysselct='define'
$i_syssockio='undef'
$i_sysstat='define'
$i_sysstatfs='undef'
$i_sysstatvfs='undef'
$i_systime='define'
$i_systimek='undef'
$i_systimes='define'
$i_systypes='define'
$i_sysuio='undef'
$i_sysun='undef'
$i_sysutsname='define'
$i_sysvfs='undef'
$i_syswait='define'
$i_termio='undef'
$i_termios='define'
$i_time='undef'
$i_unistd='define'
$i_ustat='undef'
$i_utime='define'
$i_values='define'
$i_varargs='undef'
$i_vfork='undef'
$inc_version_list_init='0'
$installprefix='/system/ported/perl5'
$installprefixexp='/system/ported/perl5'
$installusrbinperl='undef'
$intsize='4'
$ivdformat='"d"'
$ivsize='4'
$ivtype='int'
$localtime_r_proto='0'
$longdblsize='8'
$longlongsize='_error_'
$longsize='4'
$lseeksize='4'
$lseektype='off_t'
$malloctype='void *'
$mmaptype='void *'
$modetype='mode_t'
$multiarch='undef'
$myuname='VOS'
$need_va_copy='undef'
$netdb_hlen_type='int'
$netdb_host_type='char *'
$netdb_name_type='char *'
$netdb_net_type='long'
$nveformat='"e"'
$nvfformat='"f"'
$nvgformat='"g"'
$nvsize='8'
$nvtype='double'
$o_nonblock='O_NONBLOCK'
$old_pthread_create_joinable=''
$osname='VOS'
$osvers='VOS'
$otherlibdirs=''
$package='perl5'
$pidtype='pid_t'
$pm_apiversion='5.005'
$privlib='/system/ported/lib/perl5/5.8.8'
$privlibexp='/system/ported/lib/perl5/5.8.8'
$procselfexe=''
$prototype='define'
$ptrsize='4'
$quadkind='_error_'
$quadtype='_error_'
$randbits='15'
$random_r_proto='0'
$randseedtype='unsigned int'
$rd_nodata='-1'
$readdir64_r_proto='0'
$readdir_r_proto='0'
$sPRIeldbl='"Le"'
$sPRIfldbl='"Lf"'
$sPRIgldbl='"Lg"'
$sSCNfldbl='"Lf"'
$sched_yield=''
$seedfunc='srand'
$selectminbits='1'
$selecttype='fd_set *'
$setgrent_r_proto='0'
$sethostent_r_proto='0'
$setlocale_r_proto='0'
$setnetent_r_proto='0'
$setprotoent_r_proto='0'
$setpwent_r_proto='0'
$setservent_r_proto='0'
$sh='/bin/sh'
$shmattype='void *'
$shortsize='2'
$sig_name_init='"ZERO","ABRT","FPE","ILL","INT","SEGV","TERM","USR1","USR2","IO","HUP","URG","ALRM","KILL","PIPE","QUIT","CHLD","CONT","STOP","TSTP","TTIN","TTOU","BUS","RT1","RT2","RT3","RT4","RT5","RT6","RT7","RT8",0'
$sig_num_init='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,0'
$sig_size='31'
$signal_t='void'
$sitearch='/system/ported/lib/perl5/site_perl/5.8.8/hppa1.1'
$sitearchexp='/system/ported/lib/perl5/site_perl/5.8.8/hppa1.1'
$sitelib='/system/ported/lib/perl5/site_perl/5.8.8'
$sitelib_stem='/system/ported/lib/perl5/site_perl'
$sitelibexp='/system/ported/lib/perl5/site_perl/5.8.8'
$sizesize='4'
$sizetype='size_t'
$socksizetype='int'
$srand48_r_proto='0'
$srandom_r_proto='0'
$src='/vos_ftp_site/pub/vos/posix/(alpha|ga)/perl'
$ssizetype='ssize_t'
$startperl='!perl.pm'
$stdchar='unsigned char'
$stdio_base='((fp)->_base)'
$stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
$stdio_cnt='((fp)->_cnt)'
$stdio_ptr='((fp)->_ptr)'
$stdio_stream_array='_iob'
$strerror_r_proto='0'
$targetarch='undef'
$timetype='time_t'
$tmpnam_r_proto='0'
$ttyname_r_proto='0'
$u16size='2'
$u16type='unsigned short'
$u32size='4'
$u32type='unsigned int'
$u64size='_error_'
$u64type='_error_'
$u8size='1'
$u8type='unsigned char'
$uidformat='"d"'
$uidsign='-1'
$uidsize='4'
$uidtype='uid_t'
$undef='$undef'
$uquadtype='_error_'
$use5005threads='undef'
$use64bitall='undef'
$use64bitint='undef'
$usecrosscompile='undef'
$usedl='undef'
$usefaststdio='define'
$usefaststdio='define'
$useithreads='undef'
$uselargefiles='undef'
$uselongdouble='define'
$usemorebits='undef'
$usemultiplicity='undef'
$useperlio='undef'
$usereentrant='undef'
$usesocks='undef'
$uvXUformat='"X"'
$uvoformat='"o"'
$uvsize='4'
$uvtype='unsigned int'
$uvuformat='"u"'
$uvxformat='"x"'
$vendorarch=''
$vendorarchexp=''
$vendorlib_stem=''
$vendorlibexp=''
$voidflags='15'
$xs_apiversion='5.00563'
$d_futimes='undef'
$d_malloc_size='undef'
$d_malloc_good_size='undef'
$usesitecustomize='undef'
$d_unsetenv='undef'
$usemallocwrap='undef'
$d_nv_zero_is_allbits_zero='undef'
$d_attribute_format='undef'
$d_attribute_noreturn='undef'
$d_attribute_malloc='undef'
$d_attribute_nonnull='undef'
$d_attribute_pure='undef'
$d_attribute_unused='undef'
$d_attribute_warn_unused_result='undef'
$d_clearenv='undef'
$d_libm_lib_version='undef'
$d_sprintf_returns_strlen='undef'
$d_strlcat='undef'
$d_strlcpy='undef'
$userelocatableinc='undef'

--- NEW FILE: configure_perl.cm ---
& This command macro configures perl to build with
& either the alpha or generally-available version of
& VOS POSIX.1 support.
& Written 00-10-24 by Paul Green (Paul_Green at stratus.com)
&
&begin_parameters
     version   option(-version)name,allow(alpha,ga),=ga
&end_parameters
&echo command_lines
&
&if (file_info config.&version&.def date_modified) >= &+
    (file_info config.&version&.h date_modified)
&then &do
!copy_file config.&version&.def config.def -delete
&
& NOTE: We must invoke Perl 5 not Perl 4. The following
& commands runs perl5 if it exists, otherwise runs perl,
& in the hopes it is really perl5.
&
!attach_default_output (process_dir)>_where_perl ; &+
     where_command perl5 ; detach_default_output
&if (index (contents (process_dir)>_where_perl) 'perl5:') ^= 0
&then !perl5 config.pl
&else !perl  config.pl
&
!rename config.h.new config.&version&.h -delete
!delete_file config.def
&end
&
&if (file_info config.&version&.h date_modified) ^= (file_info config.h date_modified)
&then !copy_file config.&version&.h config.h -delete -keep_dates

--- NEW FILE: mv-if-diff ---
: mv-if-diff file1 file2
: move file1 to file2 if file1 and file2 are different.

if test $# -lt 2 ; then
	echo "usage:  $0 file1 file2"
	echo "move file1 to file2 if file1 and file2 are different."
	exit 1
fi
if cmp $1 $2 >/dev/null 2>&1; then
	echo "File $2 not changed."
	rm -f $1
else
	rm -f $2
	mv $1 $2
fi

--- NEW FILE: make_full_perl.sh ---
# This macro makes full perl and runs its test scripts
gmake
gmake test

--- NEW FILE: perl.bind ---
name:     perl;

/* entry:    main; */

modules:  miniperlmain,
          av,
          deb,
          doio,
          doop,
          dump,
          globals,
          gv,
          hv,
          locale,
          mg,
          numeric,
          op,
          pad,
          perl,
          perlapi,
          perlio,
          perly,
          pp,
          pp_ctl,
          pp_hot,
          pp_pack,
          pp_sort,
          pp_sys,
          reentr,
          regcomp,
          regexec,
          run,
          scope,
          sv,
          taint,
          toke,
          universal,
          utf8,
          util,
          vos,
          xsutils;

end;

--- NEW FILE: Makefile ---
#
# This Makefile can be used to update the config.alpha.h and
# config.ga.h files *in UNIX* (in VOS the configure_perl.cm
# is used).  Update the config.*.def files appropriately when
# you add new symbols to Configure.  If you don't know VOS,
# most of the time a safe guess for a symbol is 'undef'.
#

all:	config.alpha.h config.ga.h

config.alpha.h:	config.alpha.def ../config_h.SH mv-if-diff
	cp config.alpha.def config.def
	perl config.pl
	sh mv-if-diff config.h.new config.alpha.h
	rm -f config.def config.h.new

config.ga.h:	config.ga.def ../config_h.SH mv-if-diff
	cp config.ga.def config.def
	perl config.pl
	sh mv-if-diff config.h.new config.ga.h
	rm -f config.def config.h.new

--- NEW FILE: vos_dummies.c ---
/*  +++begin copyright+++ *******************************************  */
/*                                                                     */
/*  COPYRIGHT (c) 1997, 1998, 1999, 2000 Stratus Computer (DE), Inc.   */
/*                                                                     */
/*  This program is free software; you can redistribute it and/or      */
/*  modify it under the terms of either:                               */
/*                                                                     */
/*  a) the GNU General Public License as published by the Free         */
/*  Software Foundation; either version 1, or (at your option) any     */
/*  later version, or                                                  */
/*                                                                     */
/*  b) the "Artistic License" which comes with this Kit.               */
/*                                                                     */
/*  This program is distributed in the hope that it will be useful,    */
/*  but WITHOUT ANY WARRANTY; without even the implied warranty of     */
/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See either   */
/*  the GNU General Public License or the Artistic License for more    */
/*  details.                                                           */
/*                                                                     */
/*  You should have received a copy of the Artistic License with this  */
/*  Kit, in the file named "Artistic".  If not, you can get one from   */
/*  the Perl distribution.                                             */
/*                                                                     */
/*  You should also have received a copy of the GNU General Public     */
/*  License along with this program; if not, you can get one from      */
/*  the Perl distribution or else write to the Free Software           */
/*  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA          */
/*  02111-1307, USA.                                                   */
/*                                                                     */
/*  +++end copyright+++ *********************************************  */

#define _POSIX_C_SOURCE 199309L

#include <stdio.h>
#include <string.h>
#include <sys/types.h>

extern void s$stop_program (char_varying (256) *command_line, 
                            short int          *error_code);
extern void s$write_code (char_varying     *record_buffer, 
                          short int        *error_code);
extern int vos_call_debug ();

#pragma page
static void bomb (char *p_name)
{
char_varying(256)   msgvs;

     strcpy_vstr_nstr (&msgvs, "FATAL ERROR: Call to unimplemented function '");
     strcat_vstr_nstr (&msgvs, p_name);
     strcat_vstr_nstr (&msgvs, "'. Entering debugger.");
     s$write_code (&msgvs, &0);

     strcpy_vstr_nstr (&msgvs, "Please capture the output of the 'trace' request and mail it to Paul_Green at stratus.com.");
     s$write_code (&msgvs, &0);

     vos_call_debug ();

     strcpy_vstr_nstr (&msgvs, "Return from debugger. Stopping program. Sorry but this error is unrecoverable.");
     s$write_code (&msgvs, &0);
     s$stop_program (&"", &1);
}

extern int dup (int _fildes)
{
     bomb ("dup");
}

extern int do_aspawn ()
{
     bomb ("do_aspawn");
}

extern int do_spawn ()
{
     bomb ("do_spawn");
}

extern pid_t fork (void)
{
     bomb ("fork");
}

extern void Perl_dump_mstats (char *s)
{
     bomb ("Perl_dump_mstats");
}

extern int Perl_get_mstats (struct perl_mstats *buf, int buflen, int level)
{
     bomb ("Perl_get_mstats");
}

extern pid_t waitpid (pid_t pid, int *stat_loc, int options)
{

     bomb ("waitpid");
}


--- NEW FILE: compile_perl.cm ---
& This command macro creates the appropriate subdirectory
& for the specified processor type and then runs the
& build macro in that subdirectory to create the perl
& executable program module file.
& Written 99-02-03 by Paul Green (Paul_Green at stratus.com)
& Modified 00-10-24 by Paul Green
&
&begin_parameters
     cpu       option(-processor)name,allow(mc68020,i80860,pa7100,pa8000),=pa7100
     recompile switch(-recompile),=1
     rebind    switch(-rebind),=1
     module    option(-module)module_name,='(current_module)'
     tgt_mod   option(-target_module)module_name,='(current_module)'
     version   option(-version)name,allow(alpha,ga),=ga
     compiler  option(-compiler)name,allow(cc,gcc)=cc
&end_parameters
&echo command_lines
&
&if &recompile&
&then &set_string recompile -recompile
&else &set_string recompile -no_recompile
&
&if &rebind&
&then &set_string rebind -rebind
&else &set_string rebind -no_rebind
&
&if &cpu& = mc68020
&then &set_string obj ''
&if &cpu& = i80860
&then &set_string obj .860
&if &cpu& = pa7100
&then &set_string obj .7100
&if &cpu& = pa8000
&then &set_string obj .8000
&
&if &compiler& = gcc & &version& = alpha
&then &do
 &display_line GCC is not supported by the alpha version of POSIX support.
 &return e$translation_failed
&end
&if &cpu& = mc68020 & &version& = ga
&then &do
 &display_line The mc68020 CPU is not supported by the GA version of POSIX support.
 &return e$translation_failed
&end
&if &cpu& = i80860 & &version& = ga
&then &do
 &display_line The i80860 CPU is not supported by the GA version of POSIX support.
 &return e$translation_failed
&end
&if &cpu& = pa8000 & &compiler& = gcc
&then &do
 &display_line The pa8000 CPU is not supported by the GNU GCC compiler.
 &return e$translation_failed
&end
&if ^ (exists obj&obj& -directory)
&then !create_dir obj&obj&
&
&if ^ (exists obj&obj&>build.out)
&then !create_file obj&obj&>build.out ; set_implicit_locking obj&obj&>build.out
&
!configure_perl -version &version&
&
!change_current_dir obj&obj&
!start_process (string <build -processor &cpu& &recompile& &rebind& &+
     -target_module &tgt_mod& -version &version& -compiler &compiler&) &+
     -module &module&
!change_current_dir <

--- NEW FILE: vos.c ---
/* Beginning of modification history */
/* Written 02-01-02 by Nick Ing-Simmons (nick at ing-simmons.net) */
/* Modified 02-03-27 by Paul Green (Paul.Green at stratus.com) to
     add socketpair() dummy. */
/* Modified 02-04-24 by Paul Green (Paul.Green at stratus.com) to
     have pow(0,0) return 1, avoiding c-1471. */
/* End of modification history */

#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>

/* VOS doesn't supply a truncate function, so we build one up
   from the available POSIX functions.  */

int
truncate(const char *path, off_t len)
{
 int fd = open(path,O_WRONLY);
 int code = -1;
 if (fd >= 0) {
   code = ftruncate(fd,len);
   close(fd); 
 }
 return code;
}

/* VOS doesn't implement AF_UNIX (AF_LOCAL) style sockets, and
   the perl emulation of them hangs on VOS (due to stcp-1257),
   so we supply this version that always fails.  */

int
socketpair (int family, int type, int protocol, int fd[2]) {
 fd[0] = 0;
 fd[1] = 0;
 errno = ENOSYS;
 return -1;
}

/* Supply a private version of the power function that returns 1
   for x**0.  This avoids c-1471.  Abigail's Japh tests depend
   on this fix.  We leave all the other cases to the VOS C
   runtime.  */

double s_crt_pow(double *x, double *y);

double pow(x,y)
double x, y;
{
     if (y == 0e0)                 /* c-1471 */
     {
          errno = EDOM;
          return (1e0);
     }

     return(s_crt_pow(&x,&y));
}

--- NEW FILE: config.alpha.h ---
/*
 * This file was produced by running the config_h.SH script, which
 * gets its values from config.sh, which is generally produced by
 * running Configure.
 *
 * Feel free to modify any of this as the need arises.  Note, however,
 * that running config_h.SH again will wipe out any changes you've made.
 * For a more permanent change edit config.sh and rerun config_h.SH.
 *
 * \$Id: config.alpha.h,v 1.2 2006-12-04 17:02:16 dslinux_cayenne Exp $
 */

/*
 * Package name      : perl5
 * Source directory  : /vos_ftp_site/pub/vos/posix/(alpha|ga)/perl
 * Configuration time: 2002-02-15 20:16 UCT
 * Configured by     : Paul.Green at stratus.com
 * Target system     : VOS
 */
[...4259 lines suppressed...]

/* Uid_t_sign:
 *	This symbol holds the signedess of a Uid_t.
 *	1 for unsigned, -1 for signed.
 */
#define Uid_t_sign	-1		/* UID sign */

/* Uid_t_size:
 *	This symbol holds the size of a Uid_t in bytes.
 */
#define Uid_t_size 4		/* UID size */

/* Uid_t:
 *	This symbol holds the type used to declare user ids in the kernel.
 *	It can be int, ushort, uid_t, etc... It may be necessary to include
 *	<sys/types.h> to get any typedef'ed information.
 */
#define Uid_t uid_t		/* UID type */

#endif

--- NEW FILE: config.ga.def ---
$CONFIG_SH='config.sh'
$Id='$Id'
$alignbytes='8'
$aphostname=''
$archlib=''
$archlibexp=''
$archname=''
$asctime_r_proto='0'
$bin='/system/gnu_library/bin'
$binexp='/system/gnu_library/bin'
$byteorder='4321'
$castflags='0'
$cf_by='Paul.Green at stratus.com'
$cf_time='2004-01-13 12:00 UCT'
$cpp_stuff='42'
$cpplast='-'
$cppminus='-'
$cpprun='cc -E -'
$cppstdin='cc -E'
$crypt_r_proto='0'
$ctermid_r_proto='0'
$ctime_r_proto='0'
$d_Gconvert='sprintf((b),"%.*g",(n),(x))'
$d_PRIeldbl='define'
$d_PRIfldbl='define'
$d_PRIgldbl='define'
$d_SCNfldbl='define'
$d__fwalk='undef'
$d_access='define'
$d_accessx='undef'
$d_aintl='undef'
$d_alarm='define'
$d_archlib='undef'
$d_asctime_r='undef'
$d_atolf='undef'
$d_atoll='undef'
$d_attribut='undef'
$d_bcmp='undef'
$d_bcopy='undef'
$d_bsdgetpgrp='undef'
$d_bsdsetpgrp='undef'
$d_bzero='undef'
$d_casti32='undef'
$d_castneg='define'
$d_charvspr='undef'
$d_chown='define'
$d_chroot='undef'
$d_chsize='undef'
$d_class='undef'
$d_cmsghdr_s='undef'
$d_const='define'
$d_copysignl='undef'
$d_crypt='undef'
$d_crypt_r='undef'
$d_csh='define'
$d_ctermid_r='undef'
$d_ctime_r='undef'
$d_cuserid='undef'
$d_dbl_dig='define'
$d_dbminitproto='undef'
$d_difftime='define'
$d_dirfd='undef'
$d_dirnamlen='undef'
$d_dlerror='undef'
$d_dlsymun='undef'
$d_dosuid='undef'
$d_drand48_r='undef'
$d_drand48proto='undef'
$d_dup2='define'
$d_eaccess='undef'
$d_endgrent='undef'
$d_endgrent_r='undef'
$d_endhent='define'
$d_endhostent_r='undef'
$d_endnent='define'
$d_endnetent_r='undef'
$d_endpent='define'
$d_endprotoent_r='undef'
$d_endpwent='undef'
$d_endpwent_r='undef'
$d_endsent='define'
$d_endservent_r='undef'
$d_eofnblk='define'
$d_faststdio='define'
$d_fchdir='undef'
$d_fchmod='define'
$d_fchown='undef'
$d_fcntl='define'
$d_fcntl_can_lock='define'
$d_fd_set='define'
$d_fgetpos='define'
$d_finite='undef'
$d_finitel='undef'
$d_flexfnam='define'
$d_flock='undef'
$d_flockproto='undef'
$d_fork='define'
$d_fp_class='undef'
$d_fpathconf='define'
$d_fpclass='undef'
$d_fpclassify='undef'
$d_fpclassl='undef'
$d_fpos64_t='undef'
$d_frexpl='undef'
$d_fs_data_s='undef'
$d_fseeko='undef'
$d_fsetpos='define'
$d_fstatfs='undef'
$d_fstatvfs='undef'
$d_fsync='undef'
$d_ftello='undef'
$d_getcwd='define'
$d_getespwnam='undef'
$d_getfsstat='undef'
$d_getgrent='undef'
$d_getgrent_r='undef'
$d_getgrgid_r='undef'
$d_getgrnam_r='undef'
$d_getgrps='undef'
$d_gethbyaddr='define'
$d_gethbyname='define'
$d_gethent='define'
$d_gethname='define'
$d_gethostbyaddr_r='undef'
$d_gethostbyname_r='undef'
$d_gethostent_r='undef'
$d_gethostprotos='define'
$d_getitimer='undef'
$d_getlogin='define'
$d_getlogin_r='undef'
$d_getmnt='undef'
$d_getmntent='undef'
$d_getnbyaddr='define'
$d_getnbyname='define'
$d_getnent='define'
$d_getnetbyaddr_r='undef'
$d_getnetbyname_r='undef'
$d_getnetent_r='undef'
$d_getnetprotos='define'
$d_getpagsz='undef'
$d_getpbyname='define'
$d_getpbynumber='define'
$d_getpent='define'
$d_getpgid='undef'
$d_getpgrp2='undef'
$d_getpgrp='define'
$d_getppid='define'
$d_getprior='undef'
$d_getprotobyname_r='undef'
$d_getprotobynumber_r='undef'
$d_getprotoent_r='undef'
$d_getprotoprotos='define'
$d_getprpwnam='undef'
$d_getpwent='undef'
$d_getpwent_r='undef'
$d_getpwnam_r='undef'
$d_getpwuid_r='undef'
$d_getsbyname='define'
$d_getsbyport='define'
$d_getsent='define'
$d_getservbyname_r='undef'
$d_getservbyport_r='undef'
$d_getservent_r='undef'
$d_getservprotos='define'
$d_getspnam='undef'
$d_getspnam_r='undef'
$d_gettimeod='define'
$d_gmtime_r='undef'
$d_gnulibc='undef'
$d_grpasswd='undef'
$d_hasmntopt='undef'
$d_htonl='define'
$d_ilogbl='undef'
$d_index='undef'
$d_inetaton='undef'
$d_int64_t='undef'
$d_isascii='define'
$d_isfinite='undef'
$d_isinf='undef'
$d_isnan='undef'
$d_isnanl='undef'
$d_killpg='undef'
$d_lchown='undef'
$d_ldbl_dig='define'
$d_link='undef'
$d_localtime_r='undef'
$d_locconv='define'
$d_lockf='define'
$d_longdbl='define'
$d_longlong='undef'
$d_lseekproto='define'
$d_lstat='define'
$d_madvise='undef'
$d_mblen='define'
$d_mbstowcs='define'
$d_mbtowc='define'
$d_memchr='define'
$d_memcmp='define'
$d_memcpy='define'
$d_memmove='define'
$d_memset='define'
$d_mkdir='define'
$d_mkdtemp='undef'
$d_mkfifo='define'
$d_mkstemp='undef'
$d_mkstemps='undef'
$d_mktime='define'
$d_mmap='define'
$d_modfl='undef'
$d_modflproto='undef'
$d_modfl_pow32_bug='undef'
$d_mprotect='undef'
$d_msg='undef'
$d_msg_ctrunc='undef'
$d_msg_dontroute='undef'
$d_msg_oob='undef'
$d_msg_peek='undef'
$d_msg_proxy='undef'
$d_msghdr_s='undef'
$d_msync='undef'
$d_munmap='define'
$d_mymalloc='undef'
$d_nice='undef'
$d_nl_langinfo='undef'
$d_nv_preserves_uv='define'
$nv_preserves_uv_bits='32'
$d_off64_t='undef'
$d_old_pthread_create_joinable='undef'
$d_oldpthreads='undef'
$d_open3='define'
$d_pathconf='define'
$d_pause='define'
$d_perl_otherlibdirs='undef'
$d_phostname='undef'
$d_pipe='define'
$d_poll='define'
$d_procselfexe='undef'
$d_pthread_atfork='undef'
$d_pthread_attr_setscope='undef'
$d_pthread_yield='undef'
$d_pwage='undef'
$d_pwchange='undef'
$d_pwclass='undef'
$d_pwcomment='undef'
$d_pwexpire='undef'
$d_pwgecos='undef'
$d_pwpasswd='undef'
$d_pwquota='undef'
$d_quad='undef'
$d_random_r='undef'
$d_readdir64_r='undef'
$d_readdir='define'
$d_readdir_r='undef'
$d_readlink='define'
$d_readv='undef'
$d_recvmsg='undef'
$d_rename='define'
$d_rewinddir='define'
$d_rmdir='define'
$d_safebcpy='undef'
$d_safemcpy='undef'
$d_sanemcmp='define'
$d_sbrkproto='undef'
$d_scalbnl='undef'
$d_sched_yield='undef'
$d_scm_rights='undef'
$d_seekdir='undef'
$d_select='define'
$d_sem='undef'
$d_semctl_semid_ds='undef'
$d_semctl_semun='undef'
$d_sendmsg='undef'
$d_setegid='define'
$d_seteuid='define'
$d_setgrent='undef'
$d_setgrent_r='undef'
$d_setgrps='undef'
$d_sethent='define'
$d_sethostent_r='undef'
$d_setitimer='undef'
$d_setlinebuf='define'
$d_setlocale='define'
$d_setlocale_r='undef'
$d_setnent='define'
$d_setnetent_r='undef'
$d_setpent='define'
$d_setpgid='define'
$d_setpgrp2='undef'
$d_setpgrp='undef'
$d_setprior='undef'
$d_setproctitle='undef'
$d_setprotoent_r='undef'
$d_setpwent='undef'
$d_setpwent_r='undef'
$d_setregid='undef'
$d_setresgid='undef'
$d_setresuid='undef'
$d_setreuid='undef'
$d_setrgid='undef'
$d_setruid='undef'
$d_setsent='define'
$d_setservent_r='undef'
$d_setsid='define'
$d_setvbuf='define'
$d_sfio='undef'
$d_shm='undef'
$d_shmatprototype='define'
$d_sigaction='define'
$d_sigprocmask='define'
$d_sigsetjmp='define'
$d_sockatmark='undef'
$d_sockatmarkproto='undef'
$d_socket='define'
$d_sockpair='undef'
$d_socks5_init='undef'
$d_sqrtl='undef'
$d_srand48_r='undef'
$d_srandom_r='undef'
$d_sresgproto='undef'
$d_sresuproto='undef'
$d_statblks='undef'
$d_statfs_f_flags='undef'
$d_statfs_s='undef'
$d_stdio_cnt_lval='define'
$d_stdio_ptr_lval='define'
$d_stdio_ptr_lval_nochange_cnt='undef'
$d_stdio_ptr_lval_sets_cnt='undef'
$d_stdio_stream_array='define'
$d_stdiobase='define'
$d_stdstdio='define'
$d_strchr='define'
$d_strcoll='define'
$d_strctcpy='define'
$d_strerrm='strerror(e)'
$d_strerror='define'
$d_strerror_r='undef'
$d_strftime='define'
$d_strtod='define'
$d_strtol='define'
$d_strtold='undef'
$d_strtoll='undef'
$d_strtoq='undef'
$d_strtoul='define'
$d_strtoull='undef'
$d_strtouq='undef'
$d_strxfrm='define'
$d_suidsafe='define'
$d_symlink='define'
$d_syscall='undef'
$d_syscallproto='undef'
$d_sysconf='define'
$d_syserrlst='define'
$d_system='define'
$d_tcgetpgrp='define'
$d_tcsetpgrp='define'
$d_telldir='undef'
$d_telldirproto='undef'
$d_time='define'
$d_times='define'
$d_tm_tm_gmtoff='undef'
$d_tm_tm_zone='undef'
$d_tmpnam_r='undef'
$d_truncate='undef'
$d_ttyname_r='undef'
$d_tzname='define'
$d_u32align='define'
$d_ualarm='undef'
$d_umask='define'
$d_uname='define'
$d_union_semun='undef'
$d_unordered='undef'
$d_usleep='undef'
$d_usleepproto='undef'
$d_ustat='undef'
$d_vendorarch='define'
$d_vendorlib='define'
$d_vfork='undef'
$d_void_closedir='undef'
$d_volatile='define'
$d_vprintf='define'
$d_wait4='define'
$d_waitpid='define'
$d_wcstombs='define'
$d_wctomb='define'
$d_writev='undef'
$db_hashtype='int'
$db_prefixtype='int'
$db_version_major='undef'
$db_version_minor='undef'
$db_version_patch='undef'
$defvoidused='15'
$direntrytype='struct dirent'
$doublesize='8'
$drand01='(rand() / (double) ((unsigned long)1 << 15))'
$drand48_r_proto='0'
$eagain='EAGAIN'
$ebcdic='undef'
$endgrent_r_proto='0'
$endhostent_r_proto='0'
$endnetent_r_proto='0'
$endprotoent_r_proto='0'
$endpwent_r_proto='0'
$endservent_r_proto='0'
$fflushNULL='define'
$fflushall='undef'
$fpostype='fpos_t'
$freetype='void'
$full_csh='/system/gnu_library/bin/bash.pm'
$full_sed='/system/gnu_library/bin/sed.pm'
$getgrent_r_proto='0'
$getgrgid_r_proto='0'
$getgrnam_r_proto='0'
$gethostbyaddr_r_proto='0'
$gethostbyname_r_proto='0'
$gethostent_r_proto='0'
$getlogin_r_proto='0'
$getnetbyaddr_r_proto='0'
$getnetbyname_r_proto='0'
$getnetent_r_proto='0'
$getprotobyname_r_proto='0'
$getprotobynumber_r_proto='0'
$getprotoent_r_proto='0'
$getpwent_r_proto='0'
$getpwnam_r_proto='0'
$getpwuid_r_proto='0'
$getservbyname_r_proto='0'
$getservbyport_r_proto='0'
$getservent_r_proto='0'
$getspnam_r_proto='0'
$gidformat='"d"'
$gidsign='-1'
$gidsize='4'
$gidtype='gid_t'
$gmtime_r_proto='0'
$groupstype='gid_t'
$i16size='2'
$i16type='short'
$i32size='4'
$i32type='int'
$i64size='_error_'
$i64type='_error_'
$i8size='1'
$i8type='char'
$i_arpainet='define'
$i_crypt='undef'
$i_dbm='undef'
$i_dirent='define'
$i_dlfcn='undef'
$i_fcntl='define'
$i_float='define'
$i_fp='undef'
$i_fp_class='undef'
$i_grp='define'
$i_ieeefp='undef'
$i_inttypes='undef'
$i_langinfo='undef'
$i_libutil='undef'
$i_limits='define'
$i_locale='define'
$i_machcthr='undef'
$i_math='define'
$i_memory='undef'
$i_mntent='undef'
$i_ndbm='undef'
$i_netdb='define'
$i_neterrno='undef'
$i_netinettcp='define'
$i_niin='define'
$i_poll='undef'
$i_prot='undef'
$i_pthread='undef'
$i_pwd='define'
$i_rpcsvcdbm='undef'
$i_sfio='undef'
$i_sgtty='undef'
$i_shadow='undef'
$i_socks='undef'
$i_stdarg='define'
$i_stddef='define'
$i_stdlib='define'
$i_string='define'
$i_sunmath='undef'
$i_sysaccess='undef'
$i_sysdir='undef'
$i_sysfile='undef'
$i_sysioctl='define'
$i_syslog='undef'
$i_sysmode='undef'
$i_sysmount='undef'
$i_sysndir='undef'
$i_sysparam='undef'
$i_sysresrc='undef'
$i_syssecrt='undef'
$i_sysselct='define'
$i_syssockio='undef'
$i_sysstat='define'
$i_sysstatfs='undef'
$i_sysstatvfs='undef'
$i_systime='define'
$i_systimek='undef'
$i_systimes='define'
$i_systypes='define'
$i_sysuio='undef'
$i_sysun='undef'
$i_sysutsname='define'
$i_sysvfs='undef'
$i_syswait='define'
$i_termio='undef'
$i_termios='define'
$i_time='undef'
$i_unistd='define'
$i_ustat='undef'
$i_utime='define'
$i_values='define'
$i_varargs='undef'
$i_vfork='undef'
$inc_version_list_init='0'
$installprefix='/system/ported/perl5'
$installprefixexp='/system/ported/perl5'
$installusrbinperl='undef'
$intsize='4'
$ivdformat='"d"'
$ivsize='4'
$ivtype='int'
$localtime_r_proto='0'
$longdblsize='8'
$longlongsize='_error_'
$longsize='4'
$lseeksize='4'
$lseektype='off_t'
$malloctype='void *'
$mmaptype='void *'
$modetype='mode_t'
$multiarch='undef'
$myuname='VOS'
$need_va_copy='undef'
$netdb_hlen_type='int'
$netdb_host_type='char *'
$netdb_name_type='char *'
$netdb_net_type='long'
$nveformat='"e"'
$nvfformat='"f"'
$nvgformat='"g"'
$nvsize='8'
$nvtype='double'
$o_nonblock='O_NONBLOCK'
$old_pthread_create_joinable=''
$osname='VOS'
$osvers='VOS'
$otherlibdirs=''
$package='perl5'
$pidtype='pid_t'
$pm_apiversion='5.005'
$privlib='/system/ported/lib/perl5/5.8.8'
$privlibexp='/system/ported/lib/perl5/5.8.8'
$procselfexe=''
$prototype='define'
$ptrsize='4'
$quadkind='_error_'
$quadtype='_error_'
$randbits='15'
$random_r_proto='0'
$randseedtype='unsigned int'
$rd_nodata='-1'
$readdir64_r_proto='0'
$readdir_r_proto='0'
$sPRIeldbl='"Le"'
$sPRIfldbl='"Lf"'
$sPRIgldbl='"Lg"'
$sSCNfldbl='"Lf"'
$sched_yield=''
$seedfunc='srand'
$selectminbits='1'
$selecttype='fd_set *'
$setgrent_r_proto='0'
$sethostent_r_proto='0'
$setlocale_r_proto='0'
$setnetent_r_proto='0'
$setprotoent_r_proto='0'
$setpwent_r_proto='0'
$setservent_r_proto='0'
$sh='/system/gnu_library/bin/bash.pm'
$shmattype='void *'
$shortsize='2'
$sig_name_init='"ZERO","ABRT","FPE","ILL","INT","SEGV","TERM","USR1","USR2","IO","HUP","URG","ALRM","CHLD","CONT","KILL","STOP","PIPE","QUIT","BUS","TRAP","TSTP","TTIN","TTOU","RT1","RT2","RT3","RT4","RT5","RT6","RT7","RT8",0'
$sig_num_init='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,0'
$sig_size='32'
$signal_t='void'
$sitearch='/system/ported/lib/perl5/site_perl/5.8.8/hppa1.1'
$sitearchexp='/system/ported/lib/perl5/site_perl/5.8.8/hppa1.1'
$sitelib='/system/ported/lib/perl5/site_perl/5.8.8'
$sitelib_stem='/system/ported/lib/perl5/site_perl'
$sitelibexp='/system/ported/lib/perl5/site_perl/5.8.8'
$sizesize='4'
$sizetype='size_t'
$socksizetype='int'
$srand48_r_proto='0'
$srandom_r_proto='0'
$src='/vos_ftp_site/pub/vos/posix/(alpha|ga)/perl'
$ssizetype='ssize_t'
$startperl='!perl.pm'
$stdchar='unsigned char'
$stdio_base='((fp)->_base)'
$stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
$stdio_cnt='((fp)->_cnt)'
$stdio_ptr='((fp)->_ptr)'
$stdio_stream_array='_iob'
$strerror_r_proto='0'
$targetarch='undef'
$timetype='time_t'
$tmpnam_r_proto='0'
$ttyname_r_proto='0'
$u16size='2'
$u16type='unsigned short'
$u32size='4'
$u32type='unsigned int'
$u64size='_error_'
$u64type='_error_'
$u8size='1'
$u8type='unsigned char'
$uidformat='"d"'
$uidsign='-1'
$uidsize='4'
$uidtype='uid_t'
$undef='$undef'
$uquadtype='_error_'
$use5005threads='undef'
$use64bitall='undef'
$use64bitint='undef'
$usecrosscompile='undef'
$usedl='undef'
$usefaststdio='define'
$useithreads='undef'
$uselargefiles='undef'
$uselongdouble='define'
$usemorebits='undef'
$usemultiplicity='undef'
$useperlio='undef'
$usereentrant='undef'
$usesocks='undef'
$uvXUformat='"X"'
$uvoformat='"o"'
$uvsize='4'
$uvtype='unsigned int'
$uvuformat='"u"'
$uvxformat='"x"'
$vendorarch=''
$vendorarchexp=''
$vendorlib_stem=''
$vendorlibexp=''
$voidflags='15'
$xs_apiversion='5.00563'
$d_futimes='undef'
$d_malloc_size='undef'
$d_malloc_good_size='undef'
$usesitecustomize='undef'
$d_unsetenv='undef'
$usemallocwrap='undef'
$d_nv_zero_is_allbits_zero='undef'
$d_attribute_format='undef'
$d_attribute_noreturn='undef'
$d_attribute_malloc='undef'
$d_attribute_nonnull='undef'
$d_attribute_pure='undef'
$d_attribute_unused='undef'
$d_attribute_warn_unused_result='undef'
$d_clearenv='undef'
$d_libm_lib_version='undef'
$d_sprintf_returns_strlen='undef'
$d_strlcat='undef'
$d_strlcpy='undef'
$userelocatableinc='undef'

--- NEW FILE: build.cm ---
&begin_parameters
     cpu       option(-processor)name,allow(mc68020,i80860,pa7100,pa8000),=mc68020
     recompile switch(-recompile),=1
     rebind    switch(-rebind),=1
     tgt_mod   option(-target_module)module_name,='(current_module)'
     version   option(-version)name,allow(alpha,ga),=ga
     compiler  option(-compiler)name,allow(cc,gcc)=cc
&end_parameters
&echo command_lines
&
& This is a VOS command macro to build Perl 5 for the Stratus VOS
& operating system. You need to have the VOS POSIX.1 support
& loaded on your system. Change the following statement, if
& necessary, to assign the correct pathname of the directory that
& contains VOS POSIX.1 support.
&
&if &version& = alpha
&then &set_string POSIX >vos_ftp_site>pub>vos>alpha>posix
&else &set_string POSIX >system>posix_object_library
&
& See if the site has VOS POSIX.1 support loaded. If not, quit now.
&
&if ^ (exists &POSIX& -directory)
&then &do
      &display_line build: VOS POSIX.1 support not found. &POSIX&
      &return 1
      &end
&
&if &cpu& = mc68020 & &version& = ga | &cpu& = i80860 & &version& = ga
&then &do
      &display_line build: "-version ga" is incompatible with "-processor mc68020 or i80860"
      &return 1
      &end
&
&if &compiler& = gcc & &version& = alpha
&then &do
      &display_line build: "-compiler gcc" is incompatible with "-version alpha"
      &return 1
      &end
&
&if &compiler& = gcc & &cpu& = pa8000
&then &do
      &display_line build: "-compiler gcc" is incompatible with "-processor pa8000"
      &return 1
      &end
&
& Set up the appropriate directory suffix for each architecture.
&
&if &cpu& = mc68020
&then &set_string obj ''
&if &cpu& = i80860
&then &set_string obj .860
&if &cpu& = pa7100
&then &set_string obj .7100
&if &cpu& = pa8000
&then &set_string obj .8000
&
&if &cpu& = mc68020
&then &set_string obj2 68k
&else &set_string obj2 (substr &obj& 2)
&
&if &cpu& = mc68020
&then &set_string bindsize -size large
&else &set_string bindsize ''
&
&if &compiler& = cc
&then &do
&set_string cpu -processor &cpu&
&set_string s .obj
&end
&else &do
&set_string cpu ''
&set_string s .o
&end
&
& Suppress several harmless compiler warning and advice messages.
& Use -list -show_include all -show_macros both_ways when debugging.
&
&set_string cflags -D_SVID_SOURCE -D_POSIX_C_SOURCE=199506L -DPERL_CORE -O4 -DPERL_NO_DEV_RANDOM
&
&if &compiler& = cc
&then &set_string cflags &cflags& '-u'
&else &set_string cflags &cflags& '-c'
&
& The following is a work-around for stcp-1437,8,9
&
&if &version& = ga
&then &set_string cflags &cflags& -D_BSD_SOURCE
&
&if &compiler& = cc
&then &set_string diag -suppress_diag 2006 2064 2065
&else &set_string diag ''
&
& The following is a work-around for stcp-1570 and GCC.
& (and for some perl errors that only cc finds)
&
&if &compiler& = gcc
&then &set_string diag &diag& -w
&else &set_string diag &diag& -w1
&
&if &version& = alpha
&then !set_library_paths include << < &POSIX&>incl &+
     (master_disk)>system>include_library
&else !set_library_paths include << < &+
     (master_disk)>system>stcp>include_library &+
     (master_disk)>system>include_library>sysv &+
     (master_disk)>system>include_library
&
&if &compiler& = gcc
&then !set_library_paths command '(current_dir)' &+
     (master_disk)>system>gnu_library>bin &+
     (master_disk)>system>command_library
&else !set_library_paths command '(current_dir)' &+
     (master_disk)>system>command_library
&
& If requested, compile the source code.
&
&if &recompile& = 0
&then &goto CHECK_REBIND
&
& Some of the compiler invocations need more VM than
& the defaults allow. Raise the limits.
!update_process_cmd_limits -initial_total_limit 150000000 -initial_heap_limit 100000000 -no_ask
&
!&compiler& <<av.c &diag& &cpu& &cflags& -o av&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<deb.c &diag& &cpu& &cflags& -o deb&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<doio.c &diag& &cpu& &cflags& -o doio&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<doop.c &diag& &cpu& &cflags& -o doop&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<dump.c &diag& &cpu& &cflags& -o dump&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<globals.c &diag& &cpu& &cflags& -o globals&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<gv.c &diag& &cpu& &cflags& -o gv&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<hv.c &diag& &cpu& &cflags& -o hv&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<locale.c &diag& &cpu& &cflags& -o locale&s&
&if (command_status) ^= 0 &then &return
&   !&compiler& <<malloc.c &diag& &cpu& &cflags& -o malloc&s&
&   &if (command_status) ^= 0 &then &return
!&compiler& <<mg.c &diag& &cpu& &cflags& -o mg&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<numeric.c &diag& &cpu& &cflags& -o numeric&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<op.c &diag& &cpu& &cflags& -o op&s&
&if (command_status) ^= 0 &then &return
&
& We are essentially building miniperl for now. Until we
& get a POSIX shell on VOS we won't add any of the extensions.
&
& !link <<op.c opmini.c -delete
& &if (command_status) ^= 0 &then &return
& !&compiler& opmini.c &diag& &cpu& &cflags& -DPERL_EXTERNAL_GLOB -o opmini&s&
& &if (command_status) ^= 0 &then &return
& !unlink opmini.c
& &if (command_status) ^= 0 &then &return
&
!&compiler& <<pad.c &diag& &cpu& &cflags& -o pad&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<perl.c &diag& &cpu& &cflags& -o perl&s& &+
     -DARCHLIB="/system/ported/lib/perl5/5.8.8/&obj2&" &+
     -DARCHLIB_EXP="/system/ported/lib/perl5/5.8.8/&obj2&" &+
     -DSITEARCH="/system/ported/lib/perl5/site_perl/5.8.8/&obj2&" &+
     -DSITEARCH_EXP="/system/ported/lib/perl5/site_perl/5.8.8/&obj2&" &+
     -DARCHNAME="&obj2&"
&if (command_status) ^= 0 &then &return
!&compiler& <<perlapi.c &diag& &cpu& &cflags& -o perlapi&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<perlio.c &diag& &cpu& &cflags& -o perlio&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<perly.c &diag& &cpu& &cflags& -o perly&s&
&if (command_status) ^= 0 &then &return
& compiling pp.c for the PA-RISC hits compiler bug pcg-98; avoid it.
& The bug is fixed in VOS 14.1.0 and all later releases.
&if (index (string &cpu&) pa) > 0 & (module_info os_release) < 'VOS Release 14.1.0'
&then !&compiler& <<pp.c &diag& &cpu& &cflags& -no_schedule -o pp&s&
&else !&compiler& <<pp.c &diag& &cpu& &cflags& -o pp&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<pp_ctl.c &diag& &cpu& &cflags& -o pp_ctl&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<pp_hot.c &diag& &cpu& &cflags& -o pp_hot&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<pp_pack.c &diag& &cpu& &cflags& -o pp_pack&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<pp_sort.c &diag& &cpu& &cflags& -o pp_sort&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<pp_sys.c &diag& &cpu& &cflags& -o pp_sys&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<reentr.c &diag& &cpu& &cflags& -o reentr&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<regcomp.c &diag& &cpu& &cflags& -o regcomp&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<regexec.c &diag& &cpu& &cflags& -o regexec&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<run.c &diag& &cpu& &cflags& -o run&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<scope.c &diag& &cpu& &cflags& -o scope&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<sv.c &diag& &cpu& &cflags& -o sv&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<taint.c &diag& &cpu& &cflags& -o taint&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<toke.c &diag& &cpu& &cflags& -o toke&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<universal.c &diag& &cpu& &cflags& -o universal&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<utf8.c &diag& &cpu& &cflags& -o utf8&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<util.c &diag& &cpu& &cflags& -o util&s&
&if (command_status) ^= 0 &then &return
!&compiler& <<xsutils.c &diag& &cpu& &cflags& -o xsutils&s&
&if (command_status) ^= 0 &then &return
!&compiler& <vos.c &diag& &cpu& &cflags& -o vos&s&
&if (command_status) ^= 0 &then &return
&if &version& = alpha
&then &do
!&compiler& <vos_dummies.c &cpu& -O4 -o vos_dummies&s&
&if (command_status) ^= 0 &then &return
&end
&
&if &compiler& = gcc
&then &do
 &if (exists -file perl.a) &then !delete_file perl.a
 !ar rc perl.a av.o deb.o doio.o doop.o dump.o globals.o gv.o hv.o locale.o &+
 mg.o numeric.o op.o pad.o perl.o perlapi.o perlio.o perly.o pp.o pp_ctl.o &+
 pp_hot.o pp_pack.o pp_sort.o pp_sys.o reentr.o regcomp.o regexec.o run.o &+
 scope.o sv.o taint.o toke.o universal.o utf8.o util.o vos.o xsutils.o
 !delete_file *.o -no_ask -brief
&end
&else &do
 !&compiler& <<miniperlmain.c &diag& &cpu& &cflags& -o miniperlmain&s&
 &if (command_status) ^= 0 &then &return
&end
&
& If requested, bind the executable program module.
&
&label CHECK_REBIND
&if &rebind& = 0
&then &return
&
&if (exists -directory (master_disk)>system>tcp_os>object_library.&obj2&)
&then &set_string tcp_objlib (master_disk)>system>tcp_os>object_library.&obj2&
&else &set_string tcp_objlib (master_disk)>system>tcp_os>object_library
&
&if (exists -directory (master_disk)>system>stcp>object_library.&obj2&)
&then &set_string stcp_objlib (master_disk)>system>stcp>object_library.&obj2&
&else &set_string stcp_objlib (master_disk)>system>stcp>object_library
&
&if (exists -directory (master_disk)>system>object_library.&obj2&)
&then &set_string objlib (master_disk)>system>object_library.&obj2&
&else &set_string objlib (master_disk)>system>object_library
&
&if (exists -directory (master_disk)>system>c_object_library.&obj2&)
&then &set_string c_objlib (master_disk)>system>c_object_library.&obj2&
&else &set_string c_objlib (master_disk)>system>c_object_library
&
&if (exists -directory (master_disk)>system>posix_object_library.&obj2&)
&then &set_string posix_objlib (master_disk)>system>posix_object_library.&obj2&
&else &set_string posix_objlib (master_disk)>system>posix_object_library
&
&if &version& = alpha
&then !set_library_paths object . &tcp_objlib& &+
     &POSIX&>c>sysv_runtime>obj&obj& &+
     &POSIX&>c>runtime>obj&obj& &+
     &c_objlib& &objlib&
&else !set_library_paths object . &stcp_objlib& &+
     &stcp_objlib&>common &+
     &stcp_objlib&>net &+
     &stcp_objlib&>sbsd &+
     &stcp_objlib&>socket &+
     &posix_objlib&>sysv &+
     &posix_objlib&>bsd &+
     &posix_objlib& &+
     &c_objlib& &objlib&
&if &compiler& = gcc
&then &do
 &set_string cflags (before &$cflags& -c)
 !&compiler& <<miniperlmain.c perl.a &diag& &cpu& &cflags& -o perl.pm
 &if (command_status) ^= 0 &then &return
 !delete_file perl.a
&end
&else &do
 &if &version& = alpha
 &then !bind -control <perl.bind vos_dummies &+
     &tcp_objlib&>tcp_runtime &tcp_objlib&>tcp_gethost &+
     &cpu& -target_module &tgt_mod& &bindsize& -map
 &else !bind -control <perl.bind &cpu& -target_module &tgt_mod& -map
 &if (command_status) ^= 0 &then &return
&end
!delete_file *&s& -no_ask -brief

--- NEW FILE: install_perl.cm ---
& Macro to install the perl components into the right directories
& Written 00-10-24 by Paul Green (Paul.Green at stratus.com)
& Updated 02-02-15 by Paul Green
&
&begin_parameters
     cpu       option(-processor)name,allow(mc68020,i80860,pa7100,pa8000),=mc68020
     name      option(-name)name,allow(perl,perl5),=perl5
&end_parameters priv
&echo command_lines
&
&if &cpu& = mc68020
&then &set_string obj ''
&if &cpu& = i80860
&then &set_string obj .860
&if &cpu& = pa7100
&then &set_string obj .7100
&if &cpu& = pa8000
&then &set_string obj .8000
&
&set_string MDS (master_disk)>system
&
&if ^ (exists -directory &MDS&>ported)
&then !create_dir &MDS&>ported
&
&if ^ (exists -directory &MDS&>ported>command_library)
&then !create_dir &MDS&>ported>command_library
&
&if ^ (exists -directory &MDS&>ported>lib)
&then !create_dir &MDS&>ported>lib
&
&if ^ (exists -directory &MDS&>ported>lib>perl5)
&then !create_dir &MDS&>ported>lib>perl5
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>5.8.8)
&then !create_dir &MDS&>ported>lib>perl5>5.8.8
&
!copy_file <lib>*.pm &MDS&>ported>lib>perl5>5.8.8>*.pm -delete
!copy_file <lib>*.pl &MDS&>ported>lib>perl5>5.8.8>*.pl -delete
!copy_file <lib>*.pod &MDS&>ported>lib>perl5>5.8.8>*.pod -delete
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>5.8.8>68k)
&then !create_dir &MDS&>ported>lib>perl5>5.8.8>68k
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>5.8.8>860)
&then !create_dir &MDS&>ported>lib>perl5>5.8.8>860
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>5.8.8>7100)
&then !create_dir &MDS&>ported>lib>perl5>5.8.8>7100
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>5.8.8>8000)
&then !create_dir &MDS&>ported>lib>perl5>5.8.8>8000
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>site_perl)
&then !create_dir &MDS&>ported>lib>perl5>site_perl
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>site_perl>5.8.8)
&then !create_dir &MDS&>ported>lib>perl5>site_perl>5.8.8
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>site_perl>5.8.8>68k)
&then !create_dir &MDS&>ported>lib>perl5>site_perl>5.8.8>68k
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>site_perl>5.8.8>860)
&then !create_dir &MDS&>ported>lib>perl5>site_perl>5.8.8>860
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>site_perl>5.8.8>7100)
&then !create_dir &MDS&>ported>lib>perl5>site_perl>5.8.8>7100
&
&if ^ (exists -directory &MDS&>ported>lib>perl5>site_perl>5.8.8>8000)
&then !create_dir &MDS&>ported>lib>perl5>site_perl>5.8.8>8000
&
!copy_file obj&obj&>perl.pm &MDS&>ported>command_library>&name&.pm.new -delete
!rename &MDS&>ported>command_library>&name&.pm *.(date).(time) -delete
!rename &MDS&>ported>command_library>&name&.pm.new &name&.pm -delete

--- NEW FILE: config.pl ---
# This file fills in a config_h.SH template based on the data
# of the file config.def and outputs a config.h.
#
# Written January 24, 2000 by Jarkko Hietaniemi [jhi at iki.fi]
# Modified February 2, 2000 by Paul Green [Paul_Green at stratus.com]
# Modified October 23, 2000 by Paul Green [Paul_Green at stratus.com]

#
# Read in the definitions file
#

if (open(CONFIG_DEF, "config.def")) {
    while (<CONFIG_DEF>) {
        if (/^([^=]+)='(.*)'$/) {
            my ($var, $val) = ($1, $2);
            $define{$var} = $val;
            $used{$var} = 0;
        } else {
            warn "config.def: $.: illegal line: $_";
        }
    }
} else {
    die "$0: Cannot open config.def: $!";
}

close (CONFIG_DEF);

#
# Open the template input file.
#

$lineno = 0;
unless (open(CONFIG_SH, "../config_h.SH")) {
    die "$0: Cannot open ../config_h.SH: $!";
}

#
# Open the output file.
#

unless (open(CONFIG_H, ">config.h.new")) {
    die "$0: Cannot open config.h.new for output: $!";
}

#
#   Skip lines before the first !GROK!THIS!
#

while (<CONFIG_SH>) {
    $lineno = $lineno + 1;
    last if /^sed <<!GROK!THIS!/;
}

#
#   Process the rest of the file, a line at a time.
#   Stop when the next !GROK!THIS! is found.
#

while (<CONFIG_SH>) {
    $lineno = $lineno + 1;
    last if /^!GROK!THIS!/;
#
#   The definition of SITEARCH and SITEARCH_EXP has to be commented-out.
#   The easiest way to do this is to special-case it here.
#
    if (/^#define SITEARCH*/) {
        s@(^.*$)@/*$1@;
    }
#
#   The case of #$d_foo at the BOL has to be handled carefully.
#   If $d_foo is "undef", then we must first comment out the entire line.
#
    if (/^#(\$\w+)/) {
        if (exists $define{$1}) {
            $used{$1}=1;
            s@^#(\$\w+)@("$define{$1}" eq "undef") ?
                "/*#define":"#$define{$1}"@e;
        }
    }
#
#   There could be multiple $variables on this line.
#   Find and replace all of them.
#
    if (/(\$\w+)/) {
        s/(\$\w+)/(exists $define{$1}) ?
            (($used{$1}=1),$define{$1}) :
            ((print "Undefined keyword $1 on line $lineno\n"),$1)/ge;
        print CONFIG_H;
    }
#
#   There are no variables, just print the line out.
#
    else {
        print CONFIG_H;
    }
}

unless (close (CONFIG_H)) {
    die "$0: Cannot close config.h.new: $!";
    }

close (CONFIG_SH);

while (($key,$value) = each %used) {
    if ($value == 0 && $key ne '$undef') {
        print "Unused keyword definition: $key\n";
    }
}


--- NEW FILE: compile_full_perl.cm ---
& This command macro builds and tests full perl using
& the native perl build scripts.  The prerequsites for
& using this macro are a VOS Continuum system running
& VOS Release 14.5.0 and VOS GNU C/C++ and GNU Tools 2.0.1.
& 
& Written 02-05-05 by Paul Green (Paul.Green at stratus.com)
&
&begin_parameters
     debug_sw       switch(-debug)
&end_parameters
&echo command_lines
&
!add_library_path command (master_disk)>system>gnu_library>bin &+
     -after '(current_dir)'
&
&if (process_type) = interactive
&then !set_terminal_parameters -pause_lines 0
&
&set_string release (before (after (module_info system_release) 'VOS Release ') ' ')
&if &release& < '14.5'
&then &do
 &display_line You must be running VOS Release 14.5.0 or later to use this macro.
 &return e$wrong_version
&end
&
&if ^ (exists -directory (master_disk)>system>gnu_library>lib>perl5)
&then &do
 &display_line You must have S877 - GNU C/C++ and GNU Tools Release 2.0.1 to use this macro.
 &return e$wrong_version
&end
&
!change_current_dir <
&
&if &debug_sw&
&then !bash vos/configure_full_perl.sh -DDEBUGGING -Doptimize=-g
&else !bash vos/configure_full_perl.sh
&
!bash vos/make_full_perl.sh

--- NEW FILE: Changes ---
This file documents the changes made to port Perl to the Stratus
VOS operating system.

For 5.8.4:
     Updated "config.alpha.def", "config.ga.def", "build.cm" and
     "perl.bind" to build this version of perl.

For 5.8.0:
     Updated "config.alpha.def", "config.ga.def", "build.cm", and
     "install_perl.cm" to use directory naming conventions that
     are closer to the perl standard directory names.

     Added "compile_full_perl.cm", "configure_full_perl.sh" and
     "make_full_perl.sh" for building full perl.

     For the first time, full perl can now be built on VOS using
     its native Configure script and makefiles.  See README.vos
     for details.

For 5.7.1:
     Updated "build.cm" and "compile_perl.cm" to build perl using
          either cc or gcc.
     Brought "config.alpha.def" and "config.ga.def" up-to-date.
     Updated "configure_perl.cm" to rebuild the header file even if
          the date of the definitions file is equal to the date of
          the header, because the perl distribution resets all dates
          to the same value.
     Update "Changes".
     Update "perl.bind".

For 5.7:
     Updated "build.cm" to build perl using either the alpha or GA
          version of POSIX.
     Updated "Changes".
     Updated "compile_perl.cm" to use either the alpha or GA
          version of POSIX.
     Split "config.def" into config.alpha.def and config.ga.def;
          one for each version. Use the configure_perl.cm macro
          to select the appropriate version.
     Split "config.h" into config.alpha.h and config.ga.h. Use the
          configure_perl.cm macro to select the appropriate version.
     Updated "config.pl". It now diagnoses undefined (missing) and
          unused substitution variables. When a new version of
          Perl comes out, run "configure_perl.cm", add any missing
          definitions to config.*.def, and remove any unused
          definitions.
     Removed "config_h.SH_orig". It is no longer needed.
     Added "configure_perl.cm". It is used to configure perl so that
          it can be built with either version of VOS POSIX.1 support.
     Added "install_perl.cm" to install Perl into the appropriate
          system directories.
     Updated "perl.bind" to work with either the alpha or GA
          version of POSIX.
     Updated "vosish.h" to just use the standard "unixish.h" since
          there are no changes needed at this time.

After 5.005_63:
     Supplied "config.pl" perl script that takes "config_h.SH_orig"
          and "config.def" as input and produces "config.h.new".
          With some luck, you will just need to edit "config.def"
          to create a new port.
     Updated "build.cm".
     Updated "compile_perl.cm".
     Added   "config.def".
     Updated "config.h".
     Added   "config.pl".
     Updated "config_h.SH_orig".
     Updated "perl.bind".
     Updated "README.vos".
     Updated "vos_dummies.c".
     Updated "vosish.h".

after 5.005_02:
     Initial release.
     Supplied "build.cm" command macro to build perl.
     Supplied "Changes" to document the change history.
     Supplied "compile_perl.cm" to launch processes to compile all
          four versions of the Perl 5 binaries.
     Supplied "config.h" to configure Perl 5 to VOS. Unfortunately,
          since VOS does not have the configure tool, this file was
          built by hand by editing "config_h.SH".
     Supplied "config_h.SH_orig", which is the version of this file
          that was current for version 5.005_02. Use this to discover
          any subsequent changes to config_h.SH that must be
          hand-copied into the real config.h.
     Supplied "perl.bind" to control the VOS binder.
     Supplied "README.vos" to describe the VOS port.
     Supplied "test_vos_dummies.c" to test the VOS dummy functions.
     Supplied "vos_dummies.c" to trap unimplemented POSIX functions.
     Supplied "vosish.h" to configure Perl 5 to VOS.
     
(end)

--- NEW FILE: configure_full_perl.sh ---
# Configure environment variables for perl build.
declare -x AWK="/system/gnu_library/bin/gawk.pm"
export AWK
declare -x CC="/system/gnu_library/bin/gcc.pm"
export CC
declare -x CPP="$CC $CPPFLAGS -E"
export CPP
declare -x CPPFLAGS="-D_POSIX_SOURCE=199506L -D_SYSV"
export CPPFLAGS
declare -x CONFIG_SHELL="bash"
export CONFIG_SHELL
declare -x LD="/system/gnu_library/bin/gcc.pm"
export LD
declare -x MAKE="/system/gnu_library/bin/gmake.pm"
export MAKE
declare -x RANLIB=":"
export RANLIB
declare -x SHELL="/system/gnu_library/bin/bash.pm"
export SHELL
#
bash Configure -des

--- NEW FILE: vosish.h ---
#ifdef __GNUC__
#include "../unixish.h"
#else
#include "unixish.h"
#endif

/* The following declaration is an avoidance for posix-950. */
extern int ioctl (int fd, int request, ...);

/* Specify a prototype for truncate() since we are supplying one. */
extern int truncate (const char *path, off_t len);

/* Specify a prototype for socketpair() since we supplying one. */
extern int socketpair (int family, int type, int protocol, int fd[2]);

--- NEW FILE: config.ga.h ---
/*
 * This file was produced by running the config_h.SH script, which
 * gets its values from config.sh, which is generally produced by
 * running Configure.
 *
 * Feel free to modify any of this as the need arises.  Note, however,
 * that running config_h.SH again will wipe out any changes you've made.
 * For a more permanent change edit config.sh and rerun config_h.SH.
 *
 * \$Id: config.ga.h,v 1.2 2006-12-04 17:02:16 dslinux_cayenne Exp $
 */

/*
 * Package name      : perl5
 * Source directory  : /vos_ftp_site/pub/vos/posix/(alpha|ga)/perl
 * Configuration time: 2002-02-15 20:16 UCT
 * Configured by     : Paul.Green at stratus.com
 * Target system     : VOS
 */
[...4259 lines suppressed...]

/* Uid_t_sign:
 *	This symbol holds the signedess of a Uid_t.
 *	1 for unsigned, -1 for signed.
 */
#define Uid_t_sign	-1		/* UID sign */

/* Uid_t_size:
 *	This symbol holds the size of a Uid_t in bytes.
 */
#define Uid_t_size 4		/* UID size */

/* Uid_t:
 *	This symbol holds the type used to declare user ids in the kernel.
 *	It can be int, ushort, uid_t, etc... It may be necessary to include
 *	<sys/types.h> to get any typedef'ed information.
 */
#define Uid_t uid_t		/* UID type */

#endif




More information about the dslinux-commit mailing list