Subj: Anyone tried 5.5.65?
No I have not yet tried it on VMS.
Craig A. Berry wrote:
> I looks like there are yet more configuration changes. I'm assuming the following
>should be #defined since even my old 5.2 DEC C has iconv() and iconv.h:
>
> I_ICONV
> HAS_ICONV
We may need a test in subconfigure.com to '$ gosub findhdr "<iconv.h>"'
('findhdr' is the name of the mini script that Configure writes out
on unix BTW).
> but has anyone made an attempt at generating $inc_version_list_init?
>
> CC/DECC
>/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/Define=PERL_CORE PERL.C
>
> const char *incverlist[] = { PERL_INC_VERSION_LIST };
> .........................................^
> %CC-E-UNDECLARED, In the initializer for incverlist[0], "$inc_version_list_init" is
>not declared.
> at line number 3204 in file DISK8:[BERRYC.PERL5_5_650]PERL.C;1
> %MMK-F-ERRUPD, error status %X10B91262 occurred when updating target PERL.OBJ
>
> from config.h:
>
> /* PERL_INC_VERSION_LIST:
> * This variable specifies the list of subdirectories in over
> * which perl.c:incpush() and lib/lib.pm will automatically
> * search when adding directories to @INC, in a format suitable
> * for a C initialization string. See the inc_version_list entry
> * in Porting/Glossary for more details.
> */
> #define PERL_INC_VERSION_LIST $inc_version_list_init /**/
FWIW (hopefully helpful) here is what lands in config.h on Tru64 unix:
% grep PERL_INC_VERSION_LIST config.h
/* PERL_INC_VERSION_LIST:
#define PERL_INC_VERSION_LIST "5.005/alpha-dec_osf","5.005",0 /**/
so it's just a string pulled from the answer to this question in Configure:
$cat <<'EOM'
In order to ease the process of upgrading, this version of perl
can be configured to use modules built and installed with earlier
versions of perl that were installed under $prefix. Specify here
the list of earlier versions that this version of perl should check.
If Configure detected no earlier versions of perl installed under
$prefix, then the list will be empty. Answer 'none' to tell perl
to not search earlier versions.
The default should almost always be sensible, so if you're not sure,
just accept the default.
EOM
rp='List of earlier versions to include in @INC?'
. ./myread
case "$ans" in
[Nn]one) inc_version_list=' ' ;;
> looks like this one also needs to be generated (lord help us if this depends on
>networking vendor):
>
> /* SELECT_MIN_BITS:
> * This symbol holds the minimum number of bits operated by select.
> * That is, if you do select(n, ...), how many bits at least will be
> * cleared in the masks if some activity is detected. Usually this
> * is either n or 32*ceil(n/32), especially many little-endians do
> * the latter. This is only useful if you have select(), naturally.
> */
> #define SELECT_MIN_BITS $selectminbits /**/
>
Here is Tru64 Unix's answer:
% grep SELECT_MIN_BITS config.h
/* SELECT_MIN_BITS:
#define SELECT_MIN_BITS 32 /**/
Here is the try.c program that Configure runs to determine selectminbits:
Checking to see on how many bits at a time your select() operates...
EOM
$cat >try.c <<EOCP
#include <sys/types.h>
#$i_time I_TIME
#$i_systime I_SYS_TIME
#$i_systimek I_SYS_TIME_KERNEL
#ifdef I_TIME
# include <time.h>
#endif
#ifdef I_SYS_TIME
# ifdef I_SYS_TIME_KERNEL
# define KERNEL
# endif
# include <sys/time.h>
# ifdef I_SYS_TIME_KERNEL
# undef KERNEL
# endif
#endif
#$i_sysselct I_SYS_SELECT
#ifdef I_SYS_SELECT
#include <sys/select.h>
#endif
#$d_socket HAS_SOCKET
#ifdef HAS_SOCKET
# include <sys/socket.h> /* Might include <sys/bsdtypes.h> */
#endif
#include <stdio.h>
$selecttype b;
#define S sizeof(*(b))
#define MINBITS 64
#define NBYTES (S * 8 > MINBITS ? S : MINBITS/8)
#define NBITS (NBYTES * 8)
int main() {
char s[NBYTES];
struct timeval t;
int i;
FILE* fp;
int fd;
fclose(stdin);
fp = fopen("try.c", "r");
if (fp == 0)
exit(1);
fd = fileno(fp);
if (fd < 0)
exit(2);
b = ($selecttype)s;
for (i = 0; i < NBITS; i++)
FD_SET(i, b);
t.tv_sec = 0;
t.tv_usec = 0;
select(fd + 1, b, 0, 0, &t);
for (i = NBITS - 1; i > fd && FD_ISSET(i, b); i--);
printf("%d\n", i + 1);
return 0;
}
Then here is the portion of Configure that sets the variable
based on running that program and not the default to a hardcoded
32:
if eval $compile_ok; then
selectminbits=`./try`
case "$selectminbits" in
'') cat >&4 <<EOM
Cannot figure out on how many bits at a time your select() operates.
I'll play safe and guess it is 32 bits.
EOM
selectminbits=32
bits="32 bits"
;;
1) bits="1 bit" ;;
*) bits="$selectminbits bits" ;;
esac
echo "Your select() operates on $bits at a time." >&4
else
rp='What is the minimum number of bits your select()
ope
rates on?'
case "$byteorder" in
1234|12345678) dflt=32 ;;
*) dflt=1 ;;
esac
. ./myread
val=$ans
I hope that helps.
Conversion to DCL of both portions (if either is even necessary on VMS)
is left as an exercise for the reader.
Peter Prymmer