Skip to content

Commit 4e0554e

Browse files
committed
Introduce d_u32align / U32_REQUIRES_ALIGNMENT, needed for
ext/Digest/MD5/Makefile.PL and t/lib/md5-align.t. Introduce probes for struct msghdr, struct cmsghdr, sendmsg, recvmsg, readv, writev, setitimer, getitimer, ualarm, usleep, for possible later extension work. p4raw-id: //depot/perl@9560
1 parent 2ece6c1 commit 4e0554e

20 files changed

+887
-226
lines changed

Configure

Lines changed: 371 additions & 217 deletions
Large diffs are not rendered by default.

MANIFEST

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1516,6 +1516,7 @@ t/lib/lc-currency.t See if Locale::Codes work
15161516
t/lib/lc-language.t See if Locale::Codes work
15171517
t/lib/lc-uk.t See if Locale::Codes work
15181518
t/lib/md5-aaa.t See if Digest::MD5 extension works
1519+
t/lib/md5-align.t See if Digest::MD5 extension works
15191520
t/lib/md5-badf.t See if Digest::MD5 extension works
15201521
t/lib/md5-file.t See if Digest::MD5 extension works
15211522
t/lib/mimeb64.t see whether MIME::Base64 works

Porting/Glossary

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,10 @@ d_closedir (d_closedir.U):
437437
This variable conditionally defines HAS_CLOSEDIR if closedir() is
438438
available.
439439

440+
d_cmsghdr_s (d_cmsghdr_s.U):
441+
This variable conditionally defines the HAS_STRUCT_CMSGHDR symbol,
442+
which indicates that the struct cmsghdr is supported.
443+
440444
d_const (d_const.U):
441445
This variable conditionally defines the HASCONST symbol, which
442446
indicates to the C program that this C compiler knows about the
@@ -689,6 +693,10 @@ d_gethostprotos (d_gethostprotos.U):
689693
prototypes for the various gethost*() functions.
690694
See also netdbtype.U for probing for various netdb types.
691695

696+
d_getitimer (d_getitimer.U):
697+
This variable conditionally defines the HAS_GETITIMER symbol, which
698+
indicates to the C program that the getitimer() routine is available.
699+
692700
d_getlogin (d_getlogin.U):
693701
This variable conditionally defines the HAS_GETLOGIN symbol, which
694702
indicates to the C program that the getlogin() routine is available
@@ -1024,6 +1032,10 @@ d_msgget (d_msgget.U):
10241032
This variable conditionally defines the HAS_MSGGET symbol, which
10251033
indicates to the C program that the msgget() routine is available.
10261034

1035+
d_msghdr_s (d_msghdr_s.U):
1036+
This variable conditionally defines the HAS_STRUCT_MSGHDR symbol,
1037+
which indicates that the struct msghdr is supported.
1038+
10271039
d_msgrcv (d_msgrcv.U):
10281040
This variable conditionally defines the HAS_MSGRCV symbol, which
10291041
indicates to the C program that the msgrcv() routine is available.
@@ -1226,6 +1238,14 @@ d_readlink (d_readlink.U):
12261238
indicates to the C program that the readlink() routine is available
12271239
to read the value of a symbolic link.
12281240

1241+
d_readv (d_readv.U):
1242+
This variable conditionally defines the HAS_READV symbol, which
1243+
indicates to the C program that the readv() routine is available.
1244+
1245+
d_recvmsg (d_recvmsg.U):
1246+
This variable conditionally defines the HAS_RECVMSG symbol, which
1247+
indicates to the C program that the recvmsg() routine is available.
1248+
12291249
d_rename (d_rename.U):
12301250
This variable conditionally defines the HAS_RENAME symbol, which
12311251
indicates to the C program that the rename() routine is available
@@ -1305,6 +1325,10 @@ d_semop (d_semop.U):
13051325
This variable conditionally defines the HAS_SEMOP symbol, which
13061326
indicates to the C program that the semop() routine is available.
13071327

1328+
d_sendmsg (d_sendmsg.U):
1329+
This variable conditionally defines the HAS_SENDMSG symbol, which
1330+
indicates to the C program that the sendmsg() routine is available.
1331+
13081332
d_setegid (d_setegid.U):
13091333
This variable conditionally defines the HAS_SETEGID symbol, which
13101334
indicates to the C program that the setegid() routine is available
@@ -1329,6 +1353,10 @@ d_sethent (d_sethent.U):
13291353
This variable conditionally defines HAS_SETHOSTENT if sethostent() is
13301354
available.
13311355

1356+
d_setitimer (d_setitimer.U):
1357+
This variable conditionally defines the HAS_SETITIMER symbol, which
1358+
indicates to the C program that the setitimer() routine is available.
1359+
13321360
d_setlinebuf (d_setlnbuf.U):
13331361
This variable conditionally defines the HAS_SETLINEBUF symbol, which
13341362
indicates to the C program that the setlinebuf() routine is available
@@ -1663,6 +1691,14 @@ d_tzname (d_tzname.U):
16631691
This variable conditionally defines HAS_TZNAME if tzname[] is
16641692
available to access timezone names.
16651693

1694+
d_u32align (d_u32align.U):
1695+
This variable tells whether you must access character data
1696+
through U32-aligned pointers.
1697+
1698+
d_ualarm (d_ualarm.U):
1699+
This variable conditionally defines the HAS_UALARM symbol, which
1700+
indicates to the C program that the ualarm() routine is available.
1701+
16661702
d_umask (d_umask.U):
16671703
This variable conditionally defines the HAS_UMASK symbol, which
16681704
indicates to the C program that the umask() routine is available.
@@ -1677,6 +1713,10 @@ d_union_semun (d_union_semun.U):
16771713
This variable conditionally defines HAS_UNION_SEMUN if the
16781714
union semun is defined by including <sys/sem.h>.
16791715

1716+
d_usleep (d_usleep.U):
1717+
This variable conditionally defines HAS_USLEEP if usleep() is
1718+
available to do high granularity sleeps.
1719+
16801720
d_ustat (d_ustat.U):
16811721
This variable conditionally defines HAS_USTAT if ustat() is
16821722
available to query file system statistics by dev_t.
@@ -1737,6 +1777,10 @@ d_wctomb (d_wctomb.U):
17371777
indicates to the C program that the wctomb() routine is available
17381778
to convert a wide character to a multibyte.
17391779

1780+
d_writev (d_writev.U):
1781+
This variable conditionally defines the HAS_WRITEV symbol, which
1782+
indicates to the C program that the writev() routine is available.
1783+
17401784
d_xenix (Guess.U):
17411785
This variable conditionally defines the symbol XENIX, which alerts
17421786
the C program that it runs under Xenix.

Porting/config.sh

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
# Package name : perl5
1010
# Source directory : .
11-
# Configuration time: Tue Mar 27 07:55:38 EET DST 2001
11+
# Configuration time: Thu Apr 5 20:36:09 EET DST 2001
1212
# Configured by : jhi
1313
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
1414

@@ -62,7 +62,7 @@ ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_
6262
ccversion='V5.6-082'
6363
cf_by='jhi'
6464
65-
cf_time='Tue Mar 27 07:55:38 EET DST 2001'
65+
cf_time='Thu Apr 5 20:36:09 EET DST 2001'
6666
charsize='1'
6767
chgrp=''
6868
chmod=''
@@ -121,6 +121,7 @@ d_chown='define'
121121
d_chroot='define'
122122
d_chsize='undef'
123123
d_closedir='define'
124+
d_cmsghdr_s='define'
124125
d_const='define'
125126
d_crypt='define'
126127
d_csh='define'
@@ -175,6 +176,7 @@ d_gethbyname='define'
175176
d_gethent='define'
176177
d_gethname='define'
177178
d_gethostprotos='define'
179+
d_getitimer='define'
178180
d_getlogin='define'
179181
d_getmnt='undef'
180182
d_getmntent='undef'
@@ -247,6 +249,7 @@ d_msg_peek='define'
247249
d_msg_proxy='undef'
248250
d_msgctl='define'
249251
d_msgget='define'
252+
d_msghdr_s='define'
250253
d_msgrcv='define'
251254
d_msgsnd='define'
252255
d_msync='define'
@@ -280,6 +283,8 @@ d_qgcvt='undef'
280283
d_quad='define'
281284
d_readdir='define'
282285
d_readlink='define'
286+
d_readv='define'
287+
d_recvmsg='define'
283288
d_rename='define'
284289
d_rewinddir='define'
285290
d_rmdir='define'
@@ -297,11 +302,13 @@ d_semctl_semid_ds='define'
297302
d_semctl_semun='define'
298303
d_semget='define'
299304
d_semop='define'
305+
d_sendmsg='define'
300306
d_setegid='define'
301307
d_seteuid='define'
302308
d_setgrent='define'
303309
d_setgrps='define'
304310
d_sethent='define'
311+
d_setitimer='define'
305312
d_setlinebuf='define'
306313
d_setlocale='define'
307314
d_setnent='define'
@@ -377,9 +384,12 @@ d_time='define'
377384
d_times='define'
378385
d_truncate='define'
379386
d_tzname='define'
387+
d_u32align='define'
388+
d_ualarm='define'
380389
d_umask='define'
381390
d_uname='define'
382391
d_union_semun='undef'
392+
d_usleep='define'
383393
d_ustat='define'
384394
d_vendorarch='undef'
385395
d_vendorbin='undef'
@@ -394,6 +404,7 @@ d_wait4='define'
394404
d_waitpid='define'
395405
d_wcstombs='define'
396406
d_wctomb='define'
407+
d_writev='define'
397408
d_xenix='undef'
398409
date='date'
399410
db_hashtype='u_int32_t'
@@ -404,7 +415,7 @@ dlext='so'
404415
dlsrc='dl_dlopen.xs'
405416
doublesize='8'
406417
drand01='drand48()'
407-
dynamic_ext='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re'
418+
dynamic_ext='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread XS/Typemap attrs re'
408419
eagain='EAGAIN'
409420
ebcdic='undef'
410421
echo='echo'
@@ -413,7 +424,7 @@ emacs=''
413424
eunicefix=':'
414425
exe_ext=''
415426
expr='expr'
416-
extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re Errno'
427+
extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread XS/Typemap attrs re Errno'
417428
fflushNULL='define'
418429
fflushall='undef'
419430
find=''
@@ -553,7 +564,7 @@ issymlink='test -h'
553564
ivdformat='"ld"'
554565
ivsize='8'
555566
ivtype='long'
556-
known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re'
567+
known_extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File IO IPC/SysV MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread XS/Typemap attrs re'
557568
ksh=''
558569
ld='ld'
559570
lddlflags='-shared -expect_unresolved "*" -msym -std -s'

Porting/config_H

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
/*
1818
* Package name : perl5
1919
* Source directory : .
20-
* Configuration time: Tue Mar 27 07:55:38 EET DST 2001
20+
* Configuration time: Thu Apr 5 20:36:09 EET DST 2001
2121
* Configured by : jhi
2222
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
2323
*/
@@ -645,6 +645,12 @@
645645
*/
646646
#define HAS_UMASK /**/
647647

648+
/* HAS_USLEEP:
649+
* This symbol, if defined, indicates that the usleep routine is
650+
* available to let the process sleep on a sub-second accuracy.
651+
*/
652+
#define HAS_USLEEP /**/
653+
648654
/* HASVOLATILE:
649655
* This symbol, if defined, indicates that this C compiler knows about
650656
* the volatile declaration.
@@ -1241,6 +1247,12 @@
12411247
*/
12421248
/*#define VOID_CLOSEDIR / **/
12431249

1250+
/* HAS_STRUCT_CMSGHDR:
1251+
* This symbol, if defined, indicates that the struct cmsghdr
1252+
* is supported.
1253+
*/
1254+
#define HAS_STRUCT_CMSGHDR /**/
1255+
12441256
/* HAS_CSH:
12451257
* This symbol, if defined, indicates that the C-shell exists.
12461258
*/
@@ -1462,6 +1474,12 @@
14621474
*/
14631475
#define HAS_GETHOST_PROTOS /**/
14641476

1477+
/* HAS_GETITIMER:
1478+
* This symbol, if defined, indicates that the getitimer routine is
1479+
* available to return interval timers.
1480+
*/
1481+
#define HAS_GETITIMER /**/
1482+
14651483
/* HAS_GETMNT:
14661484
* This symbol, if defined, indicates that the getmnt routine is
14671485
* available to get filesystem mount info by filename.
@@ -1770,6 +1788,12 @@
17701788
*/
17711789
#define HAS_MSG /**/
17721790

1791+
/* HAS_STRUCT_MSGHDR:
1792+
* This symbol, if defined, indicates that the struct msghdr
1793+
* is supported.
1794+
*/
1795+
#define HAS_STRUCT_MSGHDR /**/
1796+
17731797
/* HAS_OFF64_T:
17741798
* This symbol will be defined if the C compiler supports off64_t.
17751799
*/
@@ -1810,6 +1834,19 @@
18101834
#define SCHED_YIELD sched_yield() /**/
18111835
#define HAS_SCHED_YIELD /**/
18121836

1837+
/* HAS_READV:
1838+
* This symbol, if defined, indicates that the readv routine is
1839+
* available to do gather reads. You will also need <sys/uio.h>
1840+
* and there I_SYSUIO.
1841+
*/
1842+
#define HAS_READV /**/
1843+
1844+
/* HAS_RECVMSG:
1845+
* This symbol, if defined, indicates that the recvmsg routine is
1846+
* available to send structured socket messages.
1847+
*/
1848+
#define HAS_RECVMSG /**/
1849+
18131850
/* HAS_SAFE_BCOPY:
18141851
* This symbol, if defined, indicates that the bcopy routine is available
18151852
* to copy potentially overlapping memory blocks. Otherwise you should
@@ -1848,6 +1885,12 @@
18481885
*/
18491886
#define HAS_SEM /**/
18501887

1888+
/* HAS_SENDMSG:
1889+
* This symbol, if defined, indicates that the sendmsg routine is
1890+
* available to send structured socket messages.
1891+
*/
1892+
#define HAS_SENDMSG /**/
1893+
18511894
/* HAS_SETGRENT:
18521895
* This symbol, if defined, indicates that the setgrent routine is
18531896
* available for initializing sequential access of the group database.
@@ -1867,6 +1910,12 @@
18671910
*/
18681911
#define HAS_SETHOSTENT /**/
18691912

1913+
/* HAS_SETITIMER:
1914+
* This symbol, if defined, indicates that the setitimer routine is
1915+
* available to set interval timers.
1916+
*/
1917+
#define HAS_SETITIMER /**/
1918+
18701919
/* HAS_SETNETENT:
18711920
* This symbol, if defined, indicates that the setnetent() routine is
18721921
* available.
@@ -2202,6 +2251,12 @@
22022251
*/
22032252
#define HAS_TIMES /**/
22042253

2254+
/* HAS_UALARM:
2255+
* This symbol, if defined, indicates that the ualarm routine is
2256+
* available to do alarms with microsecond granularity.
2257+
*/
2258+
#define HAS_UALARM /**/
2259+
22052260
/* HAS_UNION_SEMUN:
22062261
* This symbol, if defined, indicates that the union semun is
22072262
* defined by including <sys/sem.h>. If not, the user code
@@ -2257,6 +2312,12 @@
22572312
#define HAS_VPRINTF /**/
22582313
/*#define USE_CHAR_VSPRINTF / **/
22592314

2315+
/* HAS_WRITEV:
2316+
* This symbol, if defined, indicates that the writev routine is
2317+
* available to do scatter writes.
2318+
*/
2319+
#define HAS_WRITEV /**/
2320+
22602321
/* USE_DYNAMIC_LOADING:
22612322
* This symbol, if defined, indicates that dynamic loading of
22622323
* some sort is available.
@@ -3265,4 +3326,10 @@
32653326
*/
32663327
/*#define HAS_SOCKATMARK / **/
32673328

3329+
/* U32_ALIGNMENT_REQUIRED:
3330+
* This symbol, if defined, indicates that you must access
3331+
* character data through U32-aligned pointers.
3332+
*/
3333+
#define U32_ALIGNMENT_REQUIRED /**/
3334+
32683335
#endif

0 commit comments

Comments
 (0)