diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2001-05-24 18:36:42 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2001-05-24 18:36:42 +0000 |
commit | 8bab8b19946f98d4be49345ca9c42e56674b65fb (patch) | |
tree | bd62d7b5d463fab205d08914b30ba647eb3c8bc8 /gnu/usr.bin/perl/win32 | |
parent | 483d4e680bd2a6db14835b1b4d65be33488d532b (diff) |
merge in perl 5.6.1 with our local changes
Diffstat (limited to 'gnu/usr.bin/perl/win32')
-rw-r--r-- | gnu/usr.bin/perl/win32/Makefile | 241 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/bin/search.pl | 9 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/config.bc | 74 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/config.vc | 76 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/config_H.bc | 289 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/config_H.gc | 289 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/config_H.vc | 289 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/include/sys/socket.h | 39 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/makefile.mk | 259 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/perllib.c | 9 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/pod.mak | 7 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/win32.c | 278 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/win32.h | 81 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/win32iop.h | 4 | ||||
-rw-r--r-- | gnu/usr.bin/perl/win32/win32sck.c | 93 |
15 files changed, 1404 insertions, 633 deletions
diff --git a/gnu/usr.bin/perl/win32/Makefile b/gnu/usr.bin/perl/win32/Makefile index 1531f727f00..08030afb3a3 100644 --- a/gnu/usr.bin/perl/win32/Makefile +++ b/gnu/usr.bin/perl/win32/Makefile @@ -1,26 +1,86 @@ #
# Makefile to build perl on Windows NT using Microsoft NMAKE.
#
-# This is set up to build a perl.exe that runs off a shared library
-# (perl56.dll). Also makes individual DLLs for the XS extensions.
-#
##
## Make sure you read README.win32 *before* you mess with anything here!
##
+## If you want a configuration that is the same as ActivePerl (see
+## www.ActiveState.com) make sure you set at least BUILD_FLAVOR below!
+##
##
## Build configuration. Edit the values below to suit your needs.
##
#
-# Set these to wherever you want "nmake install" to put your
-# newly built perl.
+# Set these to wherever you want "nmake install" to put your newly
+# built perl. Setting it to a path with spaces is NOT recommended.
#
INST_DRV = c:
INST_TOP = $(INST_DRV)\perl
#
+# uncomment one of the following lines if you are using either
+# Visual C++ 2.x, or Visual C++ 5.x (aka Visual Studio 97) _without_
+# service pack 3 applied.
+#
+# If you have 5.x SP3 or later, or 6.x, no change is required.
+#
+#CCTYPE = MSVC20
+#CCTYPE = MSVC_PRE_50SP3
+
+#
+# set the install locations of the compiler include/libraries. Running
+# VCVARS32.BAT is *required* when using Visual C. Some versions of
+# Visual C earlier than 5.x SP3 don't define MSVCDIR in the environment.
+# If such is the case you may have to set CCHOME explicitly. Spaces in
+# the path name should not be quoted.
+#
+# If you have run VCVARS32.BAT and have VC 5.x SP3 or later, the defaults
+# should just work.
+#
+#CCHOME = f:\msvc20
+CCHOME = $(MSVCDIR)
+CCINCDIR = $(CCHOME)\include
+CCLIBDIR = $(CCHOME)\lib
+
+#
+# if you have the source for des_fcrypt(), uncomment CRYPT_SRC and make sure
+# the file exists (see README.win32). File should be located in the same
+# directory as this makefile.
+#
+# If you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
+# library, uncomment CRYPT_LIB, and make sure the library exists (see
+# README.win32). Specify the full pathname of the library.
+#
+# If you don't enable one of these, the crypt() builtin will fail to work.
+# (Generally not critical.)
+#
+#CRYPT_SRC = fcrypt.c
+#CRYPT_LIB = fcrypt.lib
+
+#
+# uncomment this option if you want to bulk-enable all the options that
+# ActiveState uses to build their ActivePerl distribution. If you set this,
+# there should be no need to set any of the other options that follow.
+#
+# If you don't enable this, the defaults below will get you the most
+# efficient perl configuration possible that will also be compatible
+# with the build defaults used on Unix platforms. On the other hand,
+# the ActivePerl configuration will get you fork() emulation at the
+# cost of some added bloat.
+#
+#BUILD_FLAVOR = ActivePerl
+
+#
+# uncomment next line if you want debug version of perl (big and slow).
+# If not enabled, we automatically try to use maximum optimization
+# with all compilers that are known to have a working optimizer.
+#
+#CFG = Debug
+
+#
# Comment this out if you DON'T want your perl installation to be versioned.
# This means that the new installation will overwrite any files from the
# old installation at the same INST_TOP location. Leaving it enabled is
@@ -29,7 +89,7 @@ INST_TOP = $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER = \5.6.0
+INST_VER = \5.6.1
#
# Comment this out if you DON'T want your perl installation to have
@@ -40,27 +100,27 @@ INST_VER = \5.6.0 # the same location. Commenting it out gives you a simpler
# installation that is easier to understand for beginners.
#
-INST_ARCH = \$(ARCHNAME)
+INST_ARCH = \$(ARCHNAME)
#
# uncomment to enable multiple interpreters. This is need for fork()
# emulation.
#
-#USE_MULTI = define
+#USE_MULTI = define
#
# Beginnings of interpreter cloning/threads; still very incomplete.
# This should be enabled to get the fork() emulation. This needs
# USE_MULTI as well.
#
-#USE_ITHREADS = define
+#USE_ITHREADS = define
#
# uncomment to enable the implicit "host" layer for all system calls
# made by perl. This needs USE_MULTI above. This is also needed to
# get fork().
#
-#USE_IMP_SYS = define
+#USE_IMP_SYS = define
#
# WARNING! This option is deprecated and will eventually go away (enable
@@ -79,23 +139,11 @@ INST_ARCH = \$(ARCHNAME) # uncomment next line if you want to use the PERL_OBJECT build option.
# DO NOT ENABLE unless you have legacy code that relies on the C++
# CPerlObj class that was available in 5.005. This cannot be enabled
-# if you ask for USE_5005THREADS above.
+# if you ask for USE_5005THREADS or USE_MULTI above.
#
#USE_OBJECT = define
#
-# uncomment one of the following lines if you are using either
-# Visual C++ 2.x or Visual C++ 6.x (aka Visual Studio 98)
-#
-#CCTYPE = MSVC20
-#CCTYPE = MSVC60
-
-#
-# uncomment next line if you want debug version of perl (big,slow)
-#
-#CFG = Debug
-
-#
# uncomment to enable use of PerlCRT.DLL when using the Visual C compiler.
# It has patches that fix known bugs in older versions of MSVCRT.DLL.
# This currently requires VC 5.0 with Service Pack 3 or later.
@@ -108,28 +156,15 @@ INST_ARCH = \$(ARCHNAME) #
# uncomment to enable linking with setargv.obj under the Visual C
-# compiler. Setting this options enables perl to expand wildcards in
+# compiler. Setting this option enables perl to expand wildcards in
# arguments, but it may be harder to use alternate methods like
-# File::DosGlob that are more powerful. This option is supported only with
-# Visual C.
+# File::DosGlob that are more powerful, or use perl inside shells
+# that do the expansion for you. This option is supported only
+# with Visual C.
#
#USE_SETARGV = define
#
-# if you have the source for des_fcrypt(), uncomment this and make sure the
-# file exists (see README.win32). File should be located in the same
-# directory as this file.
-#
-#CRYPT_SRC = fcrypt.c
-
-#
-# if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
-# library, uncomment this, and make sure the library exists (see README.win32)
-# Specify the full pathname of the library.
-#
-#CRYPT_LIB = fcrypt.lib
-
-#
# set this if you wish to use perl's malloc
# WARNING: Turning this on/off WILL break binary compatibility with extensions
# you may have compiled with/without it. Be prepared to recompile all
@@ -139,18 +174,6 @@ INST_ARCH = \$(ARCHNAME) #PERL_MALLOC = define
#
-# set the install locations of the compiler include/libraries
-# Running VCVARS32.BAT is *required* when using Visual C.
-# Some versions of Visual C don't define MSVCDIR in the environment,
-# so you may have to set CCHOME explicitly (spaces in the path name should
-# not be quoted)
-#
-#CCHOME = f:\msvc20
-CCHOME = $(MSVCDIR)
-CCINCDIR = $(CCHOME)\include
-CCLIBDIR = $(CCHOME)\lib
-
-#
# Additional compiler flags can be specified here.
#
@@ -193,6 +216,19 @@ EXTRALIBDIRS = ##################### CHANGE THESE ONLY IF YOU MUST #####################
+!IF "$(BUILD_FLAVOR)" == "ActivePerl"
+INST_VER =
+INST_ARCH =
+USE_MULTI = define
+USE_ITHREADS = define
+USE_IMP_SYS = define
+USE_5005THREADS = undef
+USE_OBJECT = undef
+USE_PERLCRT = undef
+USE_SETARGV =
+PERL_MALLOC = undef
+!ENDIF
+
!IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
D_CRYPT = undef
!ELSE
@@ -223,6 +259,10 @@ USE_ITHREADS = undef PERL_MALLOC = undef
!ENDIF
+!IF "$(CCTYPE)" == ""
+CCTYPE = MSVC60
+!ENDIF
+
!IF "$(USE_MULTI)" == ""
USE_MULTI = undef
!ENDIF
@@ -284,18 +324,12 @@ ARCHNAME = $(ARCHNAME)-thread # Visual Studio 98 specific
!IF "$(CCTYPE)" == "MSVC60"
-
# VC 6.0 can load the socket dll on demand. Makes the test suite
# run in about 10% less time.
DELAYLOAD = -DELAYLOAD:wsock32.dll -DELAYLOAD:shell32.dll delayimp.lib
-
-# VC 6.0 seems capable of compiling perl correctly with optimizations
-# enabled. Anything earlier fails tests.
-!IF "$(CFG)" == ""
-CFG = Optimize
-!ENDIF
!ENDIF
+
ARCHDIR = ..\lib\$(ARCHNAME)
COREDIR = ..\lib\CORE
AUTODIR = ..\lib\auto
@@ -311,7 +345,7 @@ INST_LIB = $(INST_TOP)$(INST_VER)\lib INST_ARCHLIB = $(INST_LIB)$(INST_ARCH)
INST_COREDIR = $(INST_ARCHLIB)\CORE
INST_POD = $(INST_LIB)\pod
-INST_HTML = $(INST_POD)\html
+INST_HTML = $(INST_TOP)$(INST_VER)\html
#
# Programs to compile, build .lib files and link
@@ -350,16 +384,17 @@ OPTIMIZE = -Od -MD -Zi -DDEBUGGING ! ENDIF
LINK_DBG = -debug -pdb:none
!ELSE
-! IF "$(CFG)" == "Optimize"
# -O1 yields smaller code, which turns out to be faster than -O2
-#OPTIMIZE = -O2 -MD -DNDEBUG
OPTIMIZE = -O1 -MD -DNDEBUG
-! ELSE
+# VC 6.0 seems capable of compiling perl correctly with optimizations
+# enabled. Anything earlier fails tests.
+! IF "$(CCTYPE)" == "MSVC20" || "$(CCTYPE)" == "MSVC_PRE_50SP3"
OPTIMIZE = -Od -MD -DNDEBUG
! ENDIF
LINK_DBG = -release
!ENDIF
+
!IF "$(USE_OBJECT)" == "define"
OPTIMIZE = $(OPTIMIZE) $(CXX_FLAG)
BUILDOPT = $(BUILDOPT) -DPERL_OBJECT
@@ -687,7 +722,7 @@ CFG_VARS = \ "INST_ARCH=$(INST_ARCH)" \
"archname=$(ARCHNAME)" \
"cc=$(CC)" \
- "ccflags=$(OPTIMIZE:"=\") $(DEFINES) $(BUILDOPT)" \
+ "ccflags=-nologo $(OPTIMIZE:"=\") $(DEFINES) $(BUILDOPT)" \
"cf_email=$(EMAIL)" \
"d_crypt=$(D_CRYPT)" \
"d_mymalloc=$(PERL_MALLOC)" \
@@ -830,7 +865,7 @@ perlmain$(o) : perlmain.c $(CC) $(CFLAGS_O) -UPERLDLL $(OBJOUT_FLAG)$@ -c perlmain.c
$(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES)
- $(LINK32) -subsystem:console -out:$@ -stack:0x8000000 $(LINK_FLAGS) \
+ $(LINK32) -subsystem:console -out:$@ -stack:0x1000000 $(LINK_FLAGS) \
$(LIBFILES) $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
copy $(PERLEXE) $(WPERLEXE)
$(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS
@@ -963,14 +998,23 @@ utils: $(PERLEXE) $(X2P) cd ..\utils
$(MAKE) PERL=$(MINIPERL)
cd ..\pod
- copy ..\README.amiga .\perlamiga.pod
- copy ..\README.cygwin .\perlcygwin.pod
- copy ..\README.dos .\perldos.pod
- copy ..\README.hpux .\perlhpux.pod
- copy ..\README.machten .\perlmachten.pod
- copy ..\README.os2 .\perlos2.pod
- copy ..\vms\perlvms.pod .\perlvms.pod
- copy ..\README.win32 .\perlwin32.pod
+ copy ..\README.aix .\perlaix.pod
+ copy ..\README.amiga .\perlamiga.pod
+ copy ..\README.bs2000 .\perlbs2000.pod
+ copy ..\README.cygwin .\perlcygwin.pod
+ copy ..\README.dos .\perldos.pod
+ copy ..\README.epoc .\perlepoc.pod
+ copy ..\README.hpux .\perlhpux.pod
+ copy ..\README.machten .\perlmachten.pod
+ copy ..\README.macos .\perlmacos.pod
+ copy ..\README.mpeix .\perlmpeix.pod
+ copy ..\README.os2 .\perlos2.pod
+ copy ..\README.os390 .\perlos390.pod
+ copy ..\README.solaris .\perlsolaris.pod
+ copy ..\README.vmesa .\perlvmesa.pod
+ copy ..\vms\perlvms.pod .\perlvms.pod
+ copy ..\README.vos .\perlvos.pod
+ copy ..\README.win32 .\perlwin32.pod
$(MAKE) -f ..\win32\pod.mak converters
cd ..\win32
$(PERLEXE) $(PL2BAT) $(UTILS)
@@ -981,25 +1025,32 @@ distclean: clean -del /f *.def *.map
-del /f $(EXTENSION_DLL) $(EXTENSION_PM)
-del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
- -del /f $(EXTDIR)\DynaLoader\dl_win32.xs
+ -del /f $(EXTDIR)\DynaLoader\dl_win32.xs $(EXTDIR)\DynaLoader\DynaLoader.pm
-del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm
- -del /f $(LIBDIR)\XSLoader.pm
+ -del /f $(LIBDIR)\XSLoader.pm $(EXTDIR)\DynaLoader\XSLoader.pm
+ -del /f $(LIBDIR)\Devel\.exists $(LIBDIR)\File\.exists $(LIBDIR)\Sys\.exists
-del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
-del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm $(LIBDIR)\Thread.pm
-del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
- -del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
+ -del /f $(LIBDIR)\B.pm $(EXTDIR)\B\defsubs.h $(LIBDIR)\O.pm $(LIBDIR)\re.pm
-del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
-del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm
-del /f $(LIBDIR)\File\Glob.pm
- -rmdir /s /q $(LIBDIR)\IO || rmdir /s $(LIBDIR)\IO
- -rmdir /s /q $(LIBDIR)\Thread || rmdir /s $(LIBDIR)\Thread
- -rmdir /s /q $(LIBDIR)\B || rmdir /s $(LIBDIR)\B
- -rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data
- -del /f $(PODDIR)\*.html
- -del /f $(PODDIR)\*.bat
+ -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO || rmdir /s $(LIBDIR)\IO
+ -if exist $(LIBDIR)\Thread rmdir /s /q $(LIBDIR)\Thread || rmdir /s $(LIBDIR)\Thread
+ -if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B || rmdir /s $(LIBDIR)\B
+ -if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data
+ cd $(PODDIR)
+ -del /f *.html *.bat checkpods \
+ perlaix.pod perlamiga.pod perlbs2000.pod perlcygwin.pod \
+ perldos.pod perlepoc.pod perlhpux.pod perlmachten.pod \
+ perlmacos.pod perlmpeix.pod perlos2.pod perlos390.pod \
+ perlsolaris.pod perlvmesa.pod perlvms.pod perlvos.pod \
+ perlwin32.pod pod2html pod2latex pod2man pod2text pod2usage \
+ podchecker podselect
cd ..\utils
- -del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc dprofpp
- -del /f *.bat
+ -del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc dprofpp \
+ *.bat perlcc pstruct
cd ..\win32
cd ..\x2p
-del /f find2perl s2p
@@ -1011,8 +1062,8 @@ distclean: clean cd $(EXTDIR)
-del /s *.lib *.def *.map *.pdb *.bs Makefile *$(o) pm_to_blib
cd ..\win32
- -rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR)
- -rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)
+ -if exist $(AUTODIR) rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR)
+ -if exist $(COREDIR) rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)
install : all installbare installhtml
@@ -1080,7 +1131,7 @@ clean : -@erase $(WPERLEXE)
-@erase $(PERLDLL)
-@erase $(CORE_OBJ)
- -rmdir /s /q $(MINIDIR) || rmdir /s $(MINIDIR)
+ -if exist $(MINIDIR) rmdir /s /q $(MINIDIR) || rmdir /s $(MINIDIR)
-@erase $(WIN32_OBJ)
-@erase $(DLL_OBJ)
-@erase $(X2P_OBJ)
@@ -1089,3 +1140,19 @@ clean : -@erase ..\x2p\*.exe ..\x2p\*.bat
-@erase *.ilk
-@erase *.pdb
+
+# Handy way to run perlbug -ok without having to install and run the
+# installed perlbug. We don't re-run the tests here - we trust the user.
+# Please *don't* use this unless all tests pass.
+# If you want to report test failures, use "nmake nok" instead.
+ok: utils
+ $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)"
+
+okfile: utils
+ $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok
+
+nok: utils
+ $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)"
+
+nokfile: utils
+ $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok
diff --git a/gnu/usr.bin/perl/win32/bin/search.pl b/gnu/usr.bin/perl/win32/bin/search.pl index ad74001be5f..f647b8426f3 100644 --- a/gnu/usr.bin/perl/win32/bin/search.pl +++ b/gnu/usr.bin/perl/win32/bin/search.pl @@ -47,7 +47,12 @@ $version = "950918.5"; $stripped=0; &init; -$rc_file = join('/', $ENV{'HOME'}, ".search"); +if (exists $ENV{'HOME'}) { + $rc_file = join('/', $ENV{'HOME'}, ".search"); +} +else { + $rc_file = ""; +} &check_args; @@ -621,7 +626,7 @@ sub read_rc local($line_num, $ln, $tag) = 0; local($use_default, @default) = 0; - { package magic; $ = 0; } ## turn off warnings for when we run EXPR's + { package magic; $^W= 0; } ## turn off warnings for when we run EXPR's unless (open(RC, "$file")) { $use_default=1; diff --git a/gnu/usr.bin/perl/win32/config.bc b/gnu/usr.bin/perl/win32/config.bc index 1b984bb08d8..92c2bcb9d74 100644 --- a/gnu/usr.bin/perl/win32/config.bc +++ b/gnu/usr.bin/perl/win32/config.bc @@ -7,7 +7,6 @@ Header='' Id='$Id' Locker='' Log='$Log' -Mcc='Mcc' RCSfile='$RCSfile' Revision='$Revision' Source='' @@ -41,11 +40,14 @@ byteorder='1234' c='' castflags='0' cat='type' -cc='bcc32' +cc='~CC~' cccdlflags=' ' ccdlflags='-tWD' ccflags='-DWIN32' +ccflags_uselargefiles='' +ccname='~CC~' ccsymbols='' +ccversion='' cf_by='nobody' cf_email='nobody@no.where.net' cf_time='' @@ -71,11 +73,13 @@ cppsymbols='' crosscompile='undef' cryptlib='' csh='undef' +d_SCNfldbl='undef' +d__fwalk='undef' d_Gconvert='gcvt((x),(n),(b))' -d_PRIEldbl='undef' -d_PRIFldbl='undef' -d_PRIGldbl='undef' -d_PRIX64='undef' +d_PRIEUldbl='undef' +d_PRIFUldbl='undef' +d_PRIGUldbl='undef' +d_PRIXU64='undef' d_PRId64='undef' d_PRIeldbl='undef' d_PRIfldbl='undef' @@ -125,12 +129,12 @@ d_endnent='undef' d_endpent='undef' d_endpwent='undef' d_endsent='undef' -d_endspent='undef' d_eofnblk='define' d_eunice='undef' d_fchmod='undef' d_fchown='undef' d_fcntl='undef' +d_fcntl_can_lock='undef' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' @@ -140,14 +144,17 @@ d_flock='define' d_fork='undef' d_fpathconf='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_ftime='define' d_getcwd='undef' +d_getespwnam='undef' d_getfsstat='undef' d_getgrent='undef' d_getgrps='undef' @@ -163,6 +170,7 @@ d_getnbyaddr='undef' d_getnbyname='undef' d_getnent='undef' d_getnetprotos='undef' +d_getpagsz='undef' d_getpbyname='define' d_getpbynumber='define' d_getpent='undef' @@ -172,12 +180,12 @@ d_getpgrp='undef' d_getppid='undef' d_getprior='undef' d_getprotoprotos='define' +d_getprpwnam='undef' d_getpwent='undef' d_getsbyname='define' d_getsbyport='define' d_getsent='undef' d_getservprotos='define' -d_getspent='undef' d_getspnam='undef' d_gettimeod='undef' d_gnulibc='undef' @@ -189,6 +197,8 @@ d_index='undef' d_inetaton='undef' d_int64_t='undef' d_isascii='define' +d_isnan='define' +d_isnanl='undef' d_killpg='undef' d_lchown='undef' d_ldbl_dig='define' @@ -215,6 +225,7 @@ d_mkstemp='undef' d_mkstemps='undef' d_mktime='define' d_mmap='undef' +d_modfl='undef' d_mprotect='undef' d_msg='undef' d_msg_ctrunc='undef' @@ -231,6 +242,7 @@ d_munmap='undef' d_mymalloc='undef' d_nice='undef' d_nv_preserves_uv='define' +d_nv_preserves_uv_bits='32' d_off64_t='undef' d_old_pthread_create_joinable='undef' d_oldpthreads='undef' @@ -238,6 +250,7 @@ d_oldsock='undef' d_open3='undef' d_pathconf='undef' d_pause='define' +d_perl_otherlibdirs='undef' d_phostname='undef' d_pipe='define' d_poll='undef' @@ -261,6 +274,7 @@ d_rmdir='define' d_safebcpy='undef' d_safemcpy='undef' d_sanemcmp='define' +d_sbrkproto='undef' d_sched_yield='undef' d_scm_rights='undef' d_seekdir='define' @@ -284,6 +298,7 @@ d_setpgid='undef' d_setpgrp2='undef' d_setpgrp='undef' d_setprior='undef' +d_setproctitle='undef' d_setpwent='undef' d_setregid='undef' d_setresgid='undef' @@ -293,7 +308,6 @@ d_setrgid='undef' d_setruid='undef' d_setsent='undef' d_setsid='undef' -d_setspent='undef' d_setvbuf='define' d_sfio='undef' d_shm='undef' @@ -307,6 +321,7 @@ d_sigsetjmp='undef' d_socket='define' d_socklen_t='undef' d_sockpair='undef' +d_socks5_init='undef' d_sqrtl='undef' d_statblks='undef' d_statfs_f_flags='undef' @@ -314,6 +329,8 @@ d_statfs_s='undef' d_statvfs='undef' d_stdio_cnt_lval='define' d_stdio_ptr_lval='define' +d_stdio_ptr_lval_sets_cnt='undef' +d_stdio_ptr_lval_nochange_cnt='undef' d_stdio_stream_array='undef' d_stdiobase='define' d_stdstdio='define' @@ -393,6 +410,7 @@ freetype='void' full_ar='' full_csh='' full_sed='' +gccosandvers='' gccversion='' gidformat='"d"' gidsign='-1' @@ -407,7 +425,6 @@ h_fcntl='false' h_sysfile='true' hint='recommended' hostcat='ypcat hosts' -huge='' i16size='2' i16type='short' i32size='4' @@ -430,6 +447,7 @@ i_grp='undef' i_iconv='undef' i_ieeefp='undef' i_inttypes='undef' +i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' @@ -443,6 +461,7 @@ i_neterrno='undef' i_netinettcp='undef' i_niin='undef' i_poll='undef' +i_prot='undef' i_pthread='undef' i_pwd='undef' i_rpcsvcdbm='define' @@ -517,15 +536,16 @@ installvendorarch='' installvendorbin='' installvendorlib='' intsize='4' +issymlink='' ivdformat='"ld"' ivsize='4' ivtype='long' known_extensions='~static_ext~ ~dynamic_ext~ ~nonxs_ext~' ksh='' -large='' -ld='tlink32' +ld='~LINK32~' lddlflags='-Tpd ~LINK_FLAGS~' ldflags='~LINK_FLAGS~' +ldflags_uselargefiles='' ldlibpthname='' less='less' lib_ext='.lib' @@ -538,6 +558,7 @@ libsfiles='' libsfound='' libspath='' libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x' +libswanted_uselargefiles='' line='line' lint='' lkflags='' @@ -566,11 +587,9 @@ man1ext='1' man3dir='~INST_TOP~~INST_VER~\man\man3' man3direxp='~INST_TOP~~INST_VER~\man\man3' man3ext='3' -medium='' mips_type='' mkdir='mkdir' mmaptype='void *' -models='none' modetype='mode_t' more='more /e' multiarch='undef' @@ -589,6 +608,12 @@ nm_opt='' nm_so_opt='' nonxs_ext='Errno' nroff='' +nvEUformat='"E"' +nvFUformat='"F"' +nvGUformat='"G"' +nveformat='"e"' +nvfformat='"f"' +nvgformat='"g"' nvsize='8' nvtype='double' o_nonblock='O_NONBLOCK' @@ -598,14 +623,16 @@ optimize='-O2' orderlib='false' osname='MSWin32' osvers='4.0' +otherlibdirs='' package='perl5' pager='more /e' passcat='' -patchlevel='~PATCHLEVEL~' +patchlevel='~PERL_VERSION~' path_sep=';' perl5='' perl='perl' perladmin='' +perllibs='~libs~' perlpath='~INST_TOP~~INST_VER~\bin~INST_ARCH~\perl.exe' pg='' phostname='hostname' @@ -631,10 +658,10 @@ revision='5' rm='del' rmail='' runnm='true' -sPRIEldbl='"E"' -sPRIFldbl='"F"' -sPRIGldbl='"G"' -sPRIX64='"lX"' +sPRIEUldbl='"E"' +sPRIFUldbl='"F"' +sPRIGUldbl='"G"' +sPRIXU64='"lX"' sPRId64='"ld"' sPRIeldbl='"e"' sPRIfldbl='"f"' @@ -643,6 +670,7 @@ sPRIi64='"li"' sPRIo64='"lo"' sPRIu64='"lu"' sPRIx64='"lx"' +sSCNfldbl='"f"' sched_yield='' scriptdir='~INST_TOP~~INST_VER~\bin' scriptdirexp='~INST_TOP~~INST_VER~\bin' @@ -677,7 +705,6 @@ sizesize='4' sizetype='size_t' sleep='' smail='' -small='' so='dll' sockethdr='' socketlib='' @@ -685,7 +712,6 @@ socksizetype='int' sort='sort' spackage='Perl5' spitshell='' -split='' src='' ssizetype='int' startperl='#!perl' @@ -700,7 +726,7 @@ stdio_ptr='((fp)->curp)' stdio_stream_array='' strings='/usr/include/string.h' submit='' -subversion='~SUBVERSION~' +subversion='~PERL_SUBVERSION~' sysman='/usr/man/man1' tail='' tar='' @@ -750,6 +776,7 @@ usevendorprefix='undef' usevfork='false' usrinc='/usr/include' uuname='' +uvXUformat='"lX"' uvoformat='"lo"' uvsize='4' uvtype='unsigned long' @@ -765,6 +792,7 @@ vendorlibexp='' vendorprefix='' vendorprefixexp='' version='~VERSION~' +versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' @@ -777,5 +805,3 @@ PERL_VERSION='~PERL_VERSION~' PERL_API_REVISION='~PERL_API_REVISION~' PERL_API_SUBVERSION='~PERL_API_SUBVERSION~' PERL_API_VERSION='~PERL_API_VERSION~' -PATCHLEVEL='~PERL_VERSION~' -SUBVERSION='~PERL_SUBVERSION~' diff --git a/gnu/usr.bin/perl/win32/config.vc b/gnu/usr.bin/perl/win32/config.vc index f3dff460ca0..d08fdb75282 100644 --- a/gnu/usr.bin/perl/win32/config.vc +++ b/gnu/usr.bin/perl/win32/config.vc @@ -1,4 +1,4 @@ -## Configured by: ~cf_email~ +# Configured by: ~cf_email~ ## Target system: WIN32 Author='' CONFIGDOTSH='true' @@ -7,7 +7,6 @@ Header='' Id='$Id' Locker='' Log='$Log' -Mcc='Mcc' RCSfile='$RCSfile' Revision='$Revision' Source='' @@ -41,11 +40,14 @@ byteorder='1234' c='' castflags='0' cat='type' -cc='cl' +cc='~CC~' cccdlflags=' ' ccdlflags=' ' ccflags='-MD -DWIN32' +ccflags_uselargefiles='' +ccname='~CC~' ccsymbols='' +ccversion='' cf_by='nobody' cf_email='nobody@no.where.net' cf_time='' @@ -71,11 +73,13 @@ cppsymbols='' crosscompile='undef' cryptlib='' csh='undef' +d_SCNfldbl='undef' +d__fwalk='undef' d_Gconvert='sprintf((b),"%.*g",(n),(x))' -d_PRIEldbl='undef' -d_PRIFldbl='undef' -d_PRIGldbl='undef' -d_PRIX64='undef' +d_PRIEUldbl='undef' +d_PRIFUldbl='undef' +d_PRIGUldbl='undef' +d_PRIXU64='undef' d_PRId64='undef' d_PRIeldbl='undef' d_PRIfldbl='undef' @@ -125,12 +129,12 @@ d_endnent='undef' d_endpent='undef' d_endpwent='undef' d_endsent='undef' -d_endspent='undef' d_eofnblk='define' d_eunice='undef' d_fchmod='undef' d_fchown='undef' d_fcntl='undef' +d_fcntl_can_lock='undef' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' @@ -140,14 +144,17 @@ d_flock='define' d_fork='undef' d_fpathconf='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_ftime='define' d_getcwd='undef' +d_getespwnam='undef' d_getfsstat='undef' d_getgrent='undef' d_getgrps='undef' @@ -163,6 +170,7 @@ d_getnbyaddr='undef' d_getnbyname='undef' d_getnent='undef' d_getnetprotos='undef' +d_getpagsz='undef' d_getpbyname='define' d_getpbynumber='define' d_getpent='undef' @@ -172,12 +180,12 @@ d_getpgrp='undef' d_getppid='undef' d_getprior='undef' d_getprotoprotos='define' +d_getprpwnam='undef' d_getpwent='undef' d_getsbyname='define' d_getsbyport='define' d_getsent='undef' d_getservprotos='define' -d_getspent='undef' d_getspnam='undef' d_gettimeod='undef' d_gnulibc='undef' @@ -189,6 +197,8 @@ d_index='undef' d_inetaton='undef' d_int64_t='undef' d_isascii='define' +d_isnan='define' +d_isnanl='undef' d_killpg='undef' d_lchown='undef' d_ldbl_dig='define' @@ -215,6 +225,7 @@ d_mkstemp='undef' d_mkstemps='undef' d_mktime='define' d_mmap='undef' +d_modfl='undef' d_mprotect='undef' d_msg='undef' d_msg_ctrunc='undef' @@ -231,6 +242,7 @@ d_munmap='undef' d_mymalloc='undef' d_nice='undef' d_nv_preserves_uv='define' +d_nv_preserves_uv_bits='32' d_off64_t='undef' d_old_pthread_create_joinable='undef' d_oldpthreads='undef' @@ -238,6 +250,7 @@ d_oldsock='undef' d_open3='undef' d_pathconf='undef' d_pause='define' +d_perl_otherlibdirs='undef' d_phostname='undef' d_pipe='define' d_poll='undef' @@ -261,6 +274,7 @@ d_rmdir='define' d_safebcpy='undef' d_safemcpy='undef' d_sanemcmp='define' +d_sbrkproto='undef' d_sched_yield='undef' d_scm_rights='undef' d_seekdir='define' @@ -284,6 +298,7 @@ d_setpgid='undef' d_setpgrp2='undef' d_setpgrp='undef' d_setprior='undef' +d_setproctitle='undef' d_setpwent='undef' d_setregid='undef' d_setresgid='undef' @@ -293,7 +308,6 @@ d_setrgid='undef' d_setruid='undef' d_setsent='undef' d_setsid='undef' -d_setspent='undef' d_setvbuf='define' d_sfio='undef' d_shm='undef' @@ -307,6 +321,7 @@ d_sigsetjmp='undef' d_socket='define' d_socklen_t='undef' d_sockpair='undef' +d_socks5_init='undef' d_sqrtl='undef' d_statblks='undef' d_statfs_f_flags='undef' @@ -314,6 +329,8 @@ d_statfs_s='undef' d_statvfs='undef' d_stdio_cnt_lval='define' d_stdio_ptr_lval='define' +d_stdio_ptr_lval_sets_cnt='undef' +d_stdio_ptr_lval_nochange_cnt='undef' d_stdio_stream_array='undef' d_stdiobase='define' d_stdstdio='define' @@ -393,6 +410,7 @@ freetype='void' full_ar='' full_csh='' full_sed='' +gccosandvers='' gccversion='' gidformat='"ld"' gidsign='-1' @@ -407,7 +425,6 @@ h_fcntl='false' h_sysfile='true' hint='recommended' hostcat='ypcat hosts' -huge='' i16size='2' i16type='short' i32size='4' @@ -430,6 +447,7 @@ i_grp='undef' i_iconv='undef' i_ieeefp='undef' i_inttypes='undef' +i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' @@ -443,6 +461,7 @@ i_neterrno='undef' i_netinettcp='undef' i_niin='undef' i_poll='undef' +i_prot='undef' i_pthread='undef' i_pwd='undef' i_rpcsvcdbm='define' @@ -517,15 +536,16 @@ installvendorarch='' installvendorbin='' installvendorlib='' intsize='4' +issymlink='' ivdformat='"ld"' ivsize='4' ivtype='long' known_extensions='~static_ext~ ~dynamic_ext~ ~nonxs_ext~' ksh='' -large='' -ld='link' +ld='~LINK32~' lddlflags='-dll ~LINK_FLAGS~' ldflags='~LINK_FLAGS~' +ldflags_uselargefiles='' ldlibpthname='' less='less' lib_ext='.lib' @@ -538,6 +558,7 @@ libsfiles='' libsfound='' libspath='' libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x' +libswanted_uselargefiles='' line='line' lint='' lkflags='' @@ -566,11 +587,9 @@ man1ext='1' man3dir='~INST_TOP~~INST_VER~\man\man3' man3direxp='~INST_TOP~~INST_VER~\man\man3' man3ext='3' -medium='' mips_type='' mkdir='mkdir' mmaptype='void *' -models='none' modetype='mode_t' more='more /e' multiarch='undef' @@ -589,6 +608,12 @@ nm_opt='' nm_so_opt='' nonxs_ext='Errno' nroff='' +nvEUformat='"E"' +nvFUformat='"F"' +nvGUformat='"G"' +nveformat='"e"' +nvfformat='"f"' +nvgformat='"g"' nvsize='8' nvtype='double' o_nonblock='O_NONBLOCK' @@ -598,14 +623,16 @@ optimize='-O' orderlib='false' osname='MSWin32' osvers='4.0' +otherlibdirs='' package='perl5' pager='more /e' passcat='' -patchlevel='~PATCHLEVEL~' +patchlevel='~PERL_VERSION~' path_sep=';' perl5='' perl='perl' perladmin='' +perllibs='~libs~' perlpath='~INST_TOP~~INST_VER~\bin~INST_ARCH~\perl.exe' pg='' phostname='hostname' @@ -631,10 +658,10 @@ revision='5' rm='del' rmail='' runnm='true' -sPRIEldbl='"E"' -sPRIFldbl='"F"' -sPRIGldbl='"G"' -sPRIX64='"lX"' +sPRIEUldbl='"E"' +sPRIFUldbl='"F"' +sPRIGUldbl='"G"' +sPRIXU64='"lX"' sPRId64='"ld"' sPRIeldbl='"e"' sPRIfldbl='"f"' @@ -643,6 +670,7 @@ sPRIi64='"li"' sPRIo64='"lo"' sPRIu64='"lu"' sPRIx64='"lx"' +sSCNfldbl='"f"' sched_yield='' scriptdir='~INST_TOP~~INST_VER~\bin' scriptdirexp='~INST_TOP~~INST_VER~\bin' @@ -677,7 +705,6 @@ sizesize='4' sizetype='size_t' sleep='' smail='' -small='' so='dll' sockethdr='' socketlib='' @@ -685,7 +712,6 @@ socksizetype='int' sort='sort' spackage='Perl5' spitshell='' -split='' src='' ssizetype='int' startperl='#!perl' @@ -700,7 +726,7 @@ stdio_ptr='((fp)->_ptr)' stdio_stream_array='' strings='/usr/include/string.h' submit='' -subversion='~SUBVERSION~' +subversion='~PERL_SUBVERSION~' sysman='/usr/man/man1' tail='' tar='' @@ -750,6 +776,7 @@ usevendorprefix='undef' usevfork='false' usrinc='/usr/include' uuname='' +uvXUformat='"lX"' uvoformat='"lo"' uvsize='4' uvtype='unsigned long' @@ -765,6 +792,7 @@ vendorlibexp='' vendorprefix='' vendorprefixexp='' version='~VERSION~' +versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' @@ -777,5 +805,3 @@ PERL_VERSION='~PERL_VERSION~' PERL_API_REVISION='~PERL_API_REVISION~' PERL_API_SUBVERSION='~PERL_API_SUBVERSION~' PERL_API_VERSION='~PERL_API_VERSION~' -PATCHLEVEL='~PERL_VERSION~' -SUBVERSION='~PERL_SUBVERSION~' diff --git a/gnu/usr.bin/perl/win32/config_H.bc b/gnu/usr.bin/perl/win32/config_H.bc index 7e04ed184f5..5e8610e10c4 100644 --- a/gnu/usr.bin/perl/win32/config_H.bc +++ b/gnu/usr.bin/perl/win32/config_H.bc @@ -13,7 +13,7 @@ /* * Package name : perl5 * Source directory : - * Configuration time: Tue Mar 21 01:26:35 2000 + * Configuration time: Thu Feb 1 08:29:38 2001 * Configured by : gsar * Target system : */ @@ -220,17 +220,6 @@ */ /*#define HAS_GETPGID /**/ -/* HAS_GETPGRP: - * This symbol, if defined, indicates that the getpgrp routine is - * available to get the current process group. - */ -/* USE_BSD_GETPGRP: - * This symbol, if defined, indicates that getpgrp needs one - * arguments whereas USG one needs none. - */ -/*#define HAS_GETPGRP /**/ -/*#define USE_BSD_GETPGRP /**/ - /* HAS_GETPGRP2: * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX) * routine is available to get the current process group. @@ -485,18 +474,6 @@ */ /*#define HAS_SETPGID /**/ -/* HAS_SETPGRP: - * This symbol, if defined, indicates that the setpgrp routine is - * available to set the current process group. - */ -/* USE_BSD_SETPGRP: - * This symbol, if defined, indicates that setpgrp needs two - * arguments whereas USG one needs none. See also HAS_SETPGID - * for a POSIX interface. - */ -/*#define HAS_SETPGRP /**/ -/*#define USE_BSD_SETPGRP /**/ - /* HAS_SETPGRP2: * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX) * routine is available to set the current process group. @@ -980,12 +957,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* STDCHAR: - * This symbol is defined to be the type of char used in stdio.h. - * It has the values "unsigned char" or "char". - */ -#define STDCHAR unsigned char /**/ - /* CROSSCOMPILE: * This symbol, if defined, signifies that we our * build process is a cross-compilation. @@ -1088,7 +1059,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.6.0\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -1119,8 +1090,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ /* PERL_BINCOMPAT_5005: * This symbol, if defined, indicates that this version of Perl should be @@ -1180,21 +1151,21 @@ * This macro surrounds its token with double quotes. */ #if 42 == 1 -# define CAT2(a,b) a/**/b -# define STRINGIFY(a) "a" +#define CAT2(a,b) a/**/b +#define STRINGIFY(a) "a" /* If you can get stringification with catify, tell me how! */ #endif #if 42 == 42 -# define PeRl_CaTiFy(a, b) a ## b -# define PeRl_StGiFy(a) #a +#define PeRl_CaTiFy(a, b) a ## b +#define PeRl_StGiFy(a) #a /* the additional level of indirection enables these macros to be * used as arguments to other macros. See K&R 2nd ed., page 231. */ -# define CAT2(a,b) PeRl_CaTiFy(a,b) -# define StGiFy(a) PeRl_StGiFy(a) -# define STRINGIFY(a) PeRl_StGiFy(a) +#define CAT2(a,b) PeRl_CaTiFy(a,b) +#define StGiFy(a) PeRl_StGiFy(a) +#define STRINGIFY(a) PeRl_StGiFy(a) #endif #if 42 != 1 && 42 != 42 -#include "Bletch: How does this C preprocessor catenate tokens?" +# include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: @@ -1324,23 +1295,30 @@ */ /*#define HAS_ENDSERVENT /**/ -/* HAS_ENDSPENT: - * This symbol, if defined, indicates that the endspent system call is - * available to finalize the scan of SysV shadow password entries. - */ -/*#define HAS_ENDSPENT /**/ - /* HAS_FD_SET: * This symbol, when defined, indicates presence of the fd_set typedef * in <sys/types.h> */ #define HAS_FD_SET /**/ +/* FLEXFILENAMES: + * This symbol, if defined, indicates that the system supports filenames + * longer than 14 characters. + */ +#define FLEXFILENAMES /**/ + /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ /*#define HAS_FPOS64_T /**/ +/* HAS_FREXPL: + * This symbol, if defined, indicates that the frexpl routine is + * available to break a long double floating-point number into + * a normalized fraction and an integral power of 2. + */ +/*#define HAS_FREXPL /**/ + /* HAS_STRUCT_FS_DATA: * This symbol, if defined, indicates that the struct fs_data * to do statfs() is supported. @@ -1388,6 +1366,12 @@ */ /*#define HAS_GETCWD /**/ +/* HAS_GETESPWNAM: + * This symbol, if defined, indicates that the getespwnam system call is + * available to retrieve enchanced (shadow) password entries by name. + */ +/*#define HAS_GETESPWNAM /**/ + /* HAS_GETFSSTAT: * This symbol, if defined, indicates that the getfsstat routine is * available to stat filesystems in bulk. @@ -1493,6 +1477,13 @@ */ /*#define HAS_GETNET_PROTOS /**/ +/* HAS_GETPAGESIZE: + * This symbol, if defined, indicates that the getpagesize system call + * is available to get system page size, which is the granularity of + * many memory management calls. + */ +/*#define HAS_GETPAGESIZE /**/ + /* HAS_GETPROTOENT: * This symbol, if defined, indicates that the getprotoent() routine is * available to look up protocols in some data base or another. @@ -1518,6 +1509,12 @@ */ #define HAS_GETPROTO_PROTOS /**/ +/* HAS_GETPRPWNAM: + * This symbol, if defined, indicates that the getprpwnam system call is + * available to retrieve protected (shadow) password entries by name. + */ +/*#define HAS_GETPRPWNAM /**/ + /* HAS_GETPWENT: * This symbol, if defined, indicates that the getpwent routine is * available for sequential access of the passwd database. @@ -1539,12 +1536,6 @@ */ #define HAS_GETSERV_PROTOS /**/ -/* HAS_GETSPENT: - * This symbol, if defined, indicates that the getspent system call is - * available to retrieve SysV shadow password entries sequentially. - */ -/*#define HAS_GETSPENT /**/ - /* HAS_GETSPNAM: * This symbol, if defined, indicates that the getspnam system call is * available to retrieve SysV shadow password entries by name. @@ -1620,6 +1611,25 @@ */ #define HAS_ISASCII /**/ +/* HAS_ISNAN: + * This symbol, if defined, indicates that the isnan routine is + * available to check whether a double is a NaN. + */ +#define HAS_ISNAN /**/ + +/* HAS_ISNANL: + * This symbol, if defined, indicates that the isnanl routine is + * available to check whether a long double is a NaN. + */ +/*#define HAS_ISNANL /**/ + +/* HAS_LCHOWN: + * This symbol, if defined, indicates that the lchown routine is + * available to operate on a symbolic link (instead of following the + * link). + */ +/*#define HAS_LCHOWN /**/ + /* HAS_LDBL_DIG: * This symbol, if defined, indicates that this system's <float.h> * or <limits.h> defines the symbol LDBL_DIG, which is the number @@ -1707,6 +1717,13 @@ /*#define HAS_MMAP /**/ #define Mmap_t void * /**/ +/* HAS_MODFL: + * This symbol, if defined, indicates that the modfl routine is + * available to split a long double x into a fractional part f and + * an integer part i such that |f| < 1.0 and (f + i) = x. + */ +/*#define HAS_MODFL /**/ + /* HAS_MPROTECT: * This symbol, if defined, indicates that the mprotect system call is * available to modify the access protection of a memory mapped file. @@ -1819,6 +1836,12 @@ */ /*#define HAS_SETPROTOENT /**/ +/* HAS_SETPROCTITLE: + * This symbol, if defined, indicates that the setproctitle routine is + * available to set process title. + */ +/*#define HAS_SETPROCTITLE /**/ + /* HAS_SETPWENT: * This symbol, if defined, indicates that the setpwent routine is * available for initializing sequential access of the passwd database. @@ -1831,12 +1854,6 @@ */ /*#define HAS_SETSERVENT /**/ -/* HAS_SETSPENT: - * This symbol, if defined, indicates that the setspent system call is - * available to initialize the scan of SysV shadow password entries. - */ -/*#define HAS_SETSPENT /**/ - /* HAS_SETVBUF: * This symbol, if defined, indicates that the setvbuf routine is * available to change buffering on an open stdio stream. @@ -1940,6 +1957,12 @@ /*#define HAS_MSG_PROXY /**/ /*#define HAS_SCM_RIGHTS /**/ +/* HAS_SOCKS5_INIT: + * This symbol, if defined, indicates that the socks5_init routine is + * available to initialize SOCKS 5. + */ +/*#define HAS_SOCKS5_INIT /**/ + /* HAS_SQRTL: * This symbol, if defined, indicates that the sqrtl routine is * available to do long double square roots. @@ -2002,12 +2025,23 @@ * This symbol is defined if the FILE_cnt macro can be used as an * lvalue. */ +/* STDIO_PTR_LVAL_SETS_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n has the side effect of decreasing the + * value of File_cnt(fp) by n. + */ +/* STDIO_PTR_LVAL_NOCHANGE_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n leaves File_cnt(fp) unchanged. + */ #define USE_STDIO_PTR /**/ #ifdef USE_STDIO_PTR #define FILE_ptr(fp) ((fp)->curp) #define STDIO_PTR_LVALUE /**/ #define FILE_cnt(fp) ((fp)->level) #define STDIO_CNT_LVALUE /**/ +/*#define STDIO_PTR_LVAL_SETS_CNT /**/ +/*#define STDIO_PTR_LVAL_NOCHANGE_CNT /**/ #endif /* USE_STDIO_BASE: @@ -2275,6 +2309,12 @@ */ /*#define I_INTTYPES /**/ +/* I_LIBUTIL: + * This symbol, if defined, indicates that <libutil.h> exists and + * should be included. + */ +/*#define I_LIBUTIL /**/ + /* I_MACH_CTHREADS: * This symbol, if defined, indicates to the C program that it should * include <mach/cthreads.h>. @@ -2305,6 +2345,12 @@ */ /*#define I_POLL /**/ +/* I_PROT: + * This symbol, if defined, indicates that <prot.h> exists and + * should be included. + */ +/*#define I_PROT /**/ + /* I_PTHREAD: * This symbol, if defined, indicates to the C program that it should * include <pthread.h>. @@ -2467,8 +2513,18 @@ * This symbol, if defined, contains the string used by stdio to * format long doubles (format 'g') for output. */ +/* PERL_PRIeldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'e') for output. + */ +/* PERL_SCNfldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'f') for input. + */ /*#define PERL_PRIfldbl "f" /**/ /*#define PERL_PRIgldbl "g" /**/ +/*#define PERL_PRIeldbl "e" /**/ +/*#define PERL_SCNfldbl "f" /**/ /* Off_t: * This symbol holds the type used to declare offsets in the kernel. @@ -2556,6 +2612,16 @@ #define Netdb_name_t char * /**/ #define Netdb_net_t long /**/ +/* PERL_OTHERLIBDIRS: + * This variable contains a colon-separated set of paths for the perl + * binary to search for additional library files or modules. + * These directories will be tacked to the end of @INC. + * Perl will automatically search below each path for version- + * and architecture-specific directories. See PERL_INC_VERSION_LIST + * for more details. + */ +/*#define PERL_OTHERLIBDIRS "" /**/ + /* IVTYPE: * This symbol defines the C type used for Perl's IV. */ @@ -2619,9 +2685,16 @@ /* U64SIZE: * This symbol contains the sizeof(U64). */ +/* NVSIZE: + * This symbol contains the sizeof(NV). + */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE - * can preserve all the bit of a variable of type UVSIZE. + * can preserve all the bits of a variable of type UVTYPE. + */ +/* NV_PRESERVES_UV_BITS: + * This symbol contains the number of bits a variable of type NVTYPE + * can preserve of a variable of type UVTYPE. */ #define IVTYPE long /**/ #define UVTYPE unsigned long /**/ @@ -2648,7 +2721,9 @@ #define I64SIZE 8 /**/ #define U64SIZE 8 /**/ #endif +#define NVSIZE 8 /**/ #define NV_PRESERVES_UV +#define NV_PRESERVES_UV_BITS 32 /* IVdf: * This symbol defines the format string used for printing a Perl IV @@ -2664,12 +2739,27 @@ */ /* UVxf: * This symbol defines the format string used for printing a Perl UV - * as an unsigned hexadecimal integer. + * as an unsigned hexadecimal integer in lowercase abcdef. + */ +/* NVef: + * This symbol defines the format string used for printing a Perl NV + * using %e-ish floating point format. + */ +/* NVff: + * This symbol defines the format string used for printing a Perl NV + * using %f-ish floating point format. + */ +/* NVgf: + * This symbol defines the format string used for printing a Perl NV + * using %g-ish floating point format. */ #define IVdf "ld" /**/ #define UVuf "lu" /**/ #define UVof "lo" /**/ #define UVxf "lx" /**/ +#define NVef "e" /**/ +#define NVff "f" /**/ +#define NVgf "g" /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. @@ -2688,8 +2778,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.6.0\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.6.0")) /**/ +#define PRIVLIB "c:\\perl\\5.6.1\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.6.1")) /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -2787,7 +2877,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2810,8 +2900,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "c:\\perl\\site\\5.6.0\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.6.0")) /**/ +#define SITELIB "c:\\perl\\site\\5.6.1\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.6.1")) /**/ #define SITELIB_STEM "" /**/ /* Size_t_size: @@ -3036,7 +3126,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86 for older + * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86 for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -3055,7 +3145,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.6.0\\lib for older directories across major versions + * search in c:\\perl\\site\\5.6.1\\lib for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's @@ -3068,17 +3158,62 @@ #define PERL_XS_APIVERSION "5.6.0" #define PERL_PM_APIVERSION "5.005" -/* HAS_LCHOWN: - * This symbol, if defined, indicates that the lchown routine is - * available to operate on a symbolic link (instead of following the - * link). +/* HAS_GETPGRP: + * This symbol, if defined, indicates that the getpgrp routine is + * available to get the current process group. */ -/*#define HAS_LCHOWN /**/ +/* USE_BSD_GETPGRP: + * This symbol, if defined, indicates that getpgrp needs one + * arguments whereas USG one needs none. + */ +/*#define HAS_GETPGRP /**/ +/*#define USE_BSD_GETPGRP /**/ -/* FLEXFILENAMES: - * This symbol, if defined, indicates that the system supports filenames - * longer than 14 characters. +/* HAS_SETPGRP: + * This symbol, if defined, indicates that the setpgrp routine is + * available to set the current process group. */ -#define FLEXFILENAMES /**/ +/* USE_BSD_SETPGRP: + * This symbol, if defined, indicates that setpgrp needs two + * arguments whereas USG one needs none. See also HAS_SETPGID + * for a POSIX interface. + */ +/*#define HAS_SETPGRP /**/ +/*#define USE_BSD_SETPGRP /**/ + +/* STDCHAR: + * This symbol is defined to be the type of char used in stdio.h. + * It has the values "unsigned char" or "char". + */ +#define STDCHAR unsigned char /**/ + +/* HAS__FWALK: + * This symbol, if defined, indicates that the _fwalk system call is + * available to apply a function to all the file handles. + */ +/*#define HAS__FWALK /**/ + +/* FCNTL_CAN_LOCK: + * This symbol, if defined, indicates that fcntl() can be used + * for file locking. Normally on Unix systems this is defined. + * It may be undefined on VMS. + */ +/*#define FCNTL_CAN_LOCK /**/ + +/* HAS_FSYNC: + * This symbol, if defined, indicates that the fsync routine is + * available to write a file's modified data and attributes to + * permanent storage. + */ +/*#define HAS_FSYNC /**/ + +/* HAS_SBRK_PROTO: + * This symbol, if defined, indicates that the system provides + * a prototype for the sbrk() function. Otherwise, it is up + * to the program to supply one. Good guesses are + * extern void* sbrk _((int)); + * extern void* sbrk _((size_t)); + */ +/*#define HAS_SBRK_PROTO /**/ #endif diff --git a/gnu/usr.bin/perl/win32/config_H.gc b/gnu/usr.bin/perl/win32/config_H.gc index 07e89dadb57..fe08aa9c601 100644 --- a/gnu/usr.bin/perl/win32/config_H.gc +++ b/gnu/usr.bin/perl/win32/config_H.gc @@ -13,7 +13,7 @@ /* * Package name : perl5 * Source directory : - * Configuration time: Tue Mar 21 01:26:44 2000 + * Configuration time: Thu Feb 1 08:30:01 2001 * Configured by : gsar * Target system : */ @@ -220,17 +220,6 @@ */ /*#define HAS_GETPGID /**/ -/* HAS_GETPGRP: - * This symbol, if defined, indicates that the getpgrp routine is - * available to get the current process group. - */ -/* USE_BSD_GETPGRP: - * This symbol, if defined, indicates that getpgrp needs one - * arguments whereas USG one needs none. - */ -/*#define HAS_GETPGRP /**/ -/*#define USE_BSD_GETPGRP /**/ - /* HAS_GETPGRP2: * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX) * routine is available to get the current process group. @@ -485,18 +474,6 @@ */ /*#define HAS_SETPGID /**/ -/* HAS_SETPGRP: - * This symbol, if defined, indicates that the setpgrp routine is - * available to set the current process group. - */ -/* USE_BSD_SETPGRP: - * This symbol, if defined, indicates that setpgrp needs two - * arguments whereas USG one needs none. See also HAS_SETPGID - * for a POSIX interface. - */ -/*#define HAS_SETPGRP /**/ -/*#define USE_BSD_SETPGRP /**/ - /* HAS_SETPGRP2: * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX) * routine is available to set the current process group. @@ -980,12 +957,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* STDCHAR: - * This symbol is defined to be the type of char used in stdio.h. - * It has the values "unsigned char" or "char". - */ -#define STDCHAR char /**/ - /* CROSSCOMPILE: * This symbol, if defined, signifies that we our * build process is a cross-compilation. @@ -1088,7 +1059,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.6.0\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -1119,8 +1090,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ /* PERL_BINCOMPAT_5005: * This symbol, if defined, indicates that this version of Perl should be @@ -1180,21 +1151,21 @@ * This macro surrounds its token with double quotes. */ #if 42 == 1 -# define CAT2(a,b) a/**/b -# define STRINGIFY(a) "a" +#define CAT2(a,b) a/**/b +#define STRINGIFY(a) "a" /* If you can get stringification with catify, tell me how! */ #endif #if 42 == 42 -# define PeRl_CaTiFy(a, b) a ## b -# define PeRl_StGiFy(a) #a +#define PeRl_CaTiFy(a, b) a ## b +#define PeRl_StGiFy(a) #a /* the additional level of indirection enables these macros to be * used as arguments to other macros. See K&R 2nd ed., page 231. */ -# define CAT2(a,b) PeRl_CaTiFy(a,b) -# define StGiFy(a) PeRl_StGiFy(a) -# define STRINGIFY(a) PeRl_StGiFy(a) +#define CAT2(a,b) PeRl_CaTiFy(a,b) +#define StGiFy(a) PeRl_StGiFy(a) +#define STRINGIFY(a) PeRl_StGiFy(a) #endif #if 42 != 1 && 42 != 42 -#include "Bletch: How does this C preprocessor catenate tokens?" +# include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: @@ -1324,23 +1295,30 @@ */ /*#define HAS_ENDSERVENT /**/ -/* HAS_ENDSPENT: - * This symbol, if defined, indicates that the endspent system call is - * available to finalize the scan of SysV shadow password entries. - */ -/*#define HAS_ENDSPENT /**/ - /* HAS_FD_SET: * This symbol, when defined, indicates presence of the fd_set typedef * in <sys/types.h> */ #define HAS_FD_SET /**/ +/* FLEXFILENAMES: + * This symbol, if defined, indicates that the system supports filenames + * longer than 14 characters. + */ +#define FLEXFILENAMES /**/ + /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ /*#define HAS_FPOS64_T /**/ +/* HAS_FREXPL: + * This symbol, if defined, indicates that the frexpl routine is + * available to break a long double floating-point number into + * a normalized fraction and an integral power of 2. + */ +/*#define HAS_FREXPL /**/ + /* HAS_STRUCT_FS_DATA: * This symbol, if defined, indicates that the struct fs_data * to do statfs() is supported. @@ -1388,6 +1366,12 @@ */ /*#define HAS_GETCWD /**/ +/* HAS_GETESPWNAM: + * This symbol, if defined, indicates that the getespwnam system call is + * available to retrieve enchanced (shadow) password entries by name. + */ +/*#define HAS_GETESPWNAM /**/ + /* HAS_GETFSSTAT: * This symbol, if defined, indicates that the getfsstat routine is * available to stat filesystems in bulk. @@ -1493,6 +1477,13 @@ */ /*#define HAS_GETNET_PROTOS /**/ +/* HAS_GETPAGESIZE: + * This symbol, if defined, indicates that the getpagesize system call + * is available to get system page size, which is the granularity of + * many memory management calls. + */ +/*#define HAS_GETPAGESIZE /**/ + /* HAS_GETPROTOENT: * This symbol, if defined, indicates that the getprotoent() routine is * available to look up protocols in some data base or another. @@ -1518,6 +1509,12 @@ */ #define HAS_GETPROTO_PROTOS /**/ +/* HAS_GETPRPWNAM: + * This symbol, if defined, indicates that the getprpwnam system call is + * available to retrieve protected (shadow) password entries by name. + */ +/*#define HAS_GETPRPWNAM /**/ + /* HAS_GETPWENT: * This symbol, if defined, indicates that the getpwent routine is * available for sequential access of the passwd database. @@ -1539,12 +1536,6 @@ */ #define HAS_GETSERV_PROTOS /**/ -/* HAS_GETSPENT: - * This symbol, if defined, indicates that the getspent system call is - * available to retrieve SysV shadow password entries sequentially. - */ -/*#define HAS_GETSPENT /**/ - /* HAS_GETSPNAM: * This symbol, if defined, indicates that the getspnam system call is * available to retrieve SysV shadow password entries by name. @@ -1620,6 +1611,25 @@ */ #define HAS_ISASCII /**/ +/* HAS_ISNAN: + * This symbol, if defined, indicates that the isnan routine is + * available to check whether a double is a NaN. + */ +#define HAS_ISNAN /**/ + +/* HAS_ISNANL: + * This symbol, if defined, indicates that the isnanl routine is + * available to check whether a long double is a NaN. + */ +/*#define HAS_ISNANL /**/ + +/* HAS_LCHOWN: + * This symbol, if defined, indicates that the lchown routine is + * available to operate on a symbolic link (instead of following the + * link). + */ +/*#define HAS_LCHOWN /**/ + /* HAS_LDBL_DIG: * This symbol, if defined, indicates that this system's <float.h> * or <limits.h> defines the symbol LDBL_DIG, which is the number @@ -1707,6 +1717,13 @@ /*#define HAS_MMAP /**/ #define Mmap_t void * /**/ +/* HAS_MODFL: + * This symbol, if defined, indicates that the modfl routine is + * available to split a long double x into a fractional part f and + * an integer part i such that |f| < 1.0 and (f + i) = x. + */ +/*#define HAS_MODFL /**/ + /* HAS_MPROTECT: * This symbol, if defined, indicates that the mprotect system call is * available to modify the access protection of a memory mapped file. @@ -1819,6 +1836,12 @@ */ /*#define HAS_SETPROTOENT /**/ +/* HAS_SETPROCTITLE: + * This symbol, if defined, indicates that the setproctitle routine is + * available to set process title. + */ +/*#define HAS_SETPROCTITLE /**/ + /* HAS_SETPWENT: * This symbol, if defined, indicates that the setpwent routine is * available for initializing sequential access of the passwd database. @@ -1831,12 +1854,6 @@ */ /*#define HAS_SETSERVENT /**/ -/* HAS_SETSPENT: - * This symbol, if defined, indicates that the setspent system call is - * available to initialize the scan of SysV shadow password entries. - */ -/*#define HAS_SETSPENT /**/ - /* HAS_SETVBUF: * This symbol, if defined, indicates that the setvbuf routine is * available to change buffering on an open stdio stream. @@ -1940,6 +1957,12 @@ /*#define HAS_MSG_PROXY /**/ /*#define HAS_SCM_RIGHTS /**/ +/* HAS_SOCKS5_INIT: + * This symbol, if defined, indicates that the socks5_init routine is + * available to initialize SOCKS 5. + */ +/*#define HAS_SOCKS5_INIT /**/ + /* HAS_SQRTL: * This symbol, if defined, indicates that the sqrtl routine is * available to do long double square roots. @@ -2002,12 +2025,23 @@ * This symbol is defined if the FILE_cnt macro can be used as an * lvalue. */ +/* STDIO_PTR_LVAL_SETS_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n has the side effect of decreasing the + * value of File_cnt(fp) by n. + */ +/* STDIO_PTR_LVAL_NOCHANGE_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n leaves File_cnt(fp) unchanged. + */ #define USE_STDIO_PTR /**/ #ifdef USE_STDIO_PTR #define FILE_ptr(fp) ((fp)->_ptr) #define STDIO_PTR_LVALUE /**/ #define FILE_cnt(fp) ((fp)->_cnt) #define STDIO_CNT_LVALUE /**/ +/*#define STDIO_PTR_LVAL_SETS_CNT /**/ +/*#define STDIO_PTR_LVAL_NOCHANGE_CNT /**/ #endif /* USE_STDIO_BASE: @@ -2275,6 +2309,12 @@ */ /*#define I_INTTYPES /**/ +/* I_LIBUTIL: + * This symbol, if defined, indicates that <libutil.h> exists and + * should be included. + */ +/*#define I_LIBUTIL /**/ + /* I_MACH_CTHREADS: * This symbol, if defined, indicates to the C program that it should * include <mach/cthreads.h>. @@ -2305,6 +2345,12 @@ */ /*#define I_POLL /**/ +/* I_PROT: + * This symbol, if defined, indicates that <prot.h> exists and + * should be included. + */ +/*#define I_PROT /**/ + /* I_PTHREAD: * This symbol, if defined, indicates to the C program that it should * include <pthread.h>. @@ -2467,8 +2513,18 @@ * This symbol, if defined, contains the string used by stdio to * format long doubles (format 'g') for output. */ +/* PERL_PRIeldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'e') for output. + */ +/* PERL_SCNfldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'f') for input. + */ /*#define PERL_PRIfldbl "f" /**/ /*#define PERL_PRIgldbl "g" /**/ +/*#define PERL_PRIeldbl "e" /**/ +/*#define PERL_SCNfldbl "f" /**/ /* Off_t: * This symbol holds the type used to declare offsets in the kernel. @@ -2556,6 +2612,16 @@ #define Netdb_name_t char * /**/ #define Netdb_net_t long /**/ +/* PERL_OTHERLIBDIRS: + * This variable contains a colon-separated set of paths for the perl + * binary to search for additional library files or modules. + * These directories will be tacked to the end of @INC. + * Perl will automatically search below each path for version- + * and architecture-specific directories. See PERL_INC_VERSION_LIST + * for more details. + */ +/*#define PERL_OTHERLIBDIRS "" /**/ + /* IVTYPE: * This symbol defines the C type used for Perl's IV. */ @@ -2619,9 +2685,16 @@ /* U64SIZE: * This symbol contains the sizeof(U64). */ +/* NVSIZE: + * This symbol contains the sizeof(NV). + */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE - * can preserve all the bit of a variable of type UVSIZE. + * can preserve all the bits of a variable of type UVTYPE. + */ +/* NV_PRESERVES_UV_BITS: + * This symbol contains the number of bits a variable of type NVTYPE + * can preserve of a variable of type UVTYPE. */ #define IVTYPE long /**/ #define UVTYPE unsigned long /**/ @@ -2648,7 +2721,9 @@ #define I64SIZE 8 /**/ #define U64SIZE 8 /**/ #endif +#define NVSIZE 8 /**/ #define NV_PRESERVES_UV +#define NV_PRESERVES_UV_BITS 32 /* IVdf: * This symbol defines the format string used for printing a Perl IV @@ -2664,12 +2739,27 @@ */ /* UVxf: * This symbol defines the format string used for printing a Perl UV - * as an unsigned hexadecimal integer. + * as an unsigned hexadecimal integer in lowercase abcdef. + */ +/* NVef: + * This symbol defines the format string used for printing a Perl NV + * using %e-ish floating point format. + */ +/* NVff: + * This symbol defines the format string used for printing a Perl NV + * using %f-ish floating point format. + */ +/* NVgf: + * This symbol defines the format string used for printing a Perl NV + * using %g-ish floating point format. */ #define IVdf "ld" /**/ #define UVuf "lu" /**/ #define UVof "lo" /**/ #define UVxf "lx" /**/ +#define NVef "e" /**/ +#define NVff "f" /**/ +#define NVgf "g" /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. @@ -2688,8 +2778,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.6.0\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.6.0")) /**/ +#define PRIVLIB "c:\\perl\\5.6.1\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.6.1")) /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -2787,7 +2877,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2810,8 +2900,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "c:\\perl\\site\\5.6.0\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.6.0")) /**/ +#define SITELIB "c:\\perl\\site\\5.6.1\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.6.1")) /**/ #define SITELIB_STEM "" /**/ /* Size_t_size: @@ -3036,7 +3126,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86 for older + * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86 for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -3055,7 +3145,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.6.0\\lib for older directories across major versions + * search in c:\\perl\\site\\5.6.1\\lib for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's @@ -3068,17 +3158,62 @@ #define PERL_XS_APIVERSION "5.6.0" #define PERL_PM_APIVERSION "5.005" -/* HAS_LCHOWN: - * This symbol, if defined, indicates that the lchown routine is - * available to operate on a symbolic link (instead of following the - * link). +/* HAS_GETPGRP: + * This symbol, if defined, indicates that the getpgrp routine is + * available to get the current process group. */ -/*#define HAS_LCHOWN /**/ +/* USE_BSD_GETPGRP: + * This symbol, if defined, indicates that getpgrp needs one + * arguments whereas USG one needs none. + */ +/*#define HAS_GETPGRP /**/ +/*#define USE_BSD_GETPGRP /**/ -/* FLEXFILENAMES: - * This symbol, if defined, indicates that the system supports filenames - * longer than 14 characters. +/* HAS_SETPGRP: + * This symbol, if defined, indicates that the setpgrp routine is + * available to set the current process group. */ -#define FLEXFILENAMES /**/ +/* USE_BSD_SETPGRP: + * This symbol, if defined, indicates that setpgrp needs two + * arguments whereas USG one needs none. See also HAS_SETPGID + * for a POSIX interface. + */ +/*#define HAS_SETPGRP /**/ +/*#define USE_BSD_SETPGRP /**/ + +/* STDCHAR: + * This symbol is defined to be the type of char used in stdio.h. + * It has the values "unsigned char" or "char". + */ +#define STDCHAR char /**/ + +/* HAS__FWALK: + * This symbol, if defined, indicates that the _fwalk system call is + * available to apply a function to all the file handles. + */ +/*#define HAS__FWALK /**/ + +/* FCNTL_CAN_LOCK: + * This symbol, if defined, indicates that fcntl() can be used + * for file locking. Normally on Unix systems this is defined. + * It may be undefined on VMS. + */ +/*#define FCNTL_CAN_LOCK /**/ + +/* HAS_FSYNC: + * This symbol, if defined, indicates that the fsync routine is + * available to write a file's modified data and attributes to + * permanent storage. + */ +/*#define HAS_FSYNC /**/ + +/* HAS_SBRK_PROTO: + * This symbol, if defined, indicates that the system provides + * a prototype for the sbrk() function. Otherwise, it is up + * to the program to supply one. Good guesses are + * extern void* sbrk _((int)); + * extern void* sbrk _((size_t)); + */ +/*#define HAS_SBRK_PROTO /**/ #endif diff --git a/gnu/usr.bin/perl/win32/config_H.vc b/gnu/usr.bin/perl/win32/config_H.vc index 5d77c7b0329..e1b1f12bb01 100644 --- a/gnu/usr.bin/perl/win32/config_H.vc +++ b/gnu/usr.bin/perl/win32/config_H.vc @@ -13,7 +13,7 @@ /* * Package name : perl5 * Source directory : - * Configuration time: Tue Mar 21 01:26:24 2000 + * Configuration time: Thu Feb 1 08:30:12 2001 * Configured by : gsar * Target system : */ @@ -220,17 +220,6 @@ */ /*#define HAS_GETPGID /**/ -/* HAS_GETPGRP: - * This symbol, if defined, indicates that the getpgrp routine is - * available to get the current process group. - */ -/* USE_BSD_GETPGRP: - * This symbol, if defined, indicates that getpgrp needs one - * arguments whereas USG one needs none. - */ -/*#define HAS_GETPGRP /**/ -/*#define USE_BSD_GETPGRP /**/ - /* HAS_GETPGRP2: * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX) * routine is available to get the current process group. @@ -485,18 +474,6 @@ */ /*#define HAS_SETPGID /**/ -/* HAS_SETPGRP: - * This symbol, if defined, indicates that the setpgrp routine is - * available to set the current process group. - */ -/* USE_BSD_SETPGRP: - * This symbol, if defined, indicates that setpgrp needs two - * arguments whereas USG one needs none. See also HAS_SETPGID - * for a POSIX interface. - */ -/*#define HAS_SETPGRP /**/ -/*#define USE_BSD_SETPGRP /**/ - /* HAS_SETPGRP2: * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX) * routine is available to set the current process group. @@ -980,12 +957,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* STDCHAR: - * This symbol is defined to be the type of char used in stdio.h. - * It has the values "unsigned char" or "char". - */ -#define STDCHAR char /**/ - /* CROSSCOMPILE: * This symbol, if defined, signifies that we our * build process is a cross-compilation. @@ -1088,7 +1059,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.6.0\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -1119,8 +1090,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ /* PERL_BINCOMPAT_5005: * This symbol, if defined, indicates that this version of Perl should be @@ -1180,21 +1151,21 @@ * This macro surrounds its token with double quotes. */ #if 42 == 1 -# define CAT2(a,b) a/**/b -# define STRINGIFY(a) "a" +#define CAT2(a,b) a/**/b +#define STRINGIFY(a) "a" /* If you can get stringification with catify, tell me how! */ #endif #if 42 == 42 -# define PeRl_CaTiFy(a, b) a ## b -# define PeRl_StGiFy(a) #a +#define PeRl_CaTiFy(a, b) a ## b +#define PeRl_StGiFy(a) #a /* the additional level of indirection enables these macros to be * used as arguments to other macros. See K&R 2nd ed., page 231. */ -# define CAT2(a,b) PeRl_CaTiFy(a,b) -# define StGiFy(a) PeRl_StGiFy(a) -# define STRINGIFY(a) PeRl_StGiFy(a) +#define CAT2(a,b) PeRl_CaTiFy(a,b) +#define StGiFy(a) PeRl_StGiFy(a) +#define STRINGIFY(a) PeRl_StGiFy(a) #endif #if 42 != 1 && 42 != 42 -#include "Bletch: How does this C preprocessor catenate tokens?" +# include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: @@ -1324,23 +1295,30 @@ */ /*#define HAS_ENDSERVENT /**/ -/* HAS_ENDSPENT: - * This symbol, if defined, indicates that the endspent system call is - * available to finalize the scan of SysV shadow password entries. - */ -/*#define HAS_ENDSPENT /**/ - /* HAS_FD_SET: * This symbol, when defined, indicates presence of the fd_set typedef * in <sys/types.h> */ #define HAS_FD_SET /**/ +/* FLEXFILENAMES: + * This symbol, if defined, indicates that the system supports filenames + * longer than 14 characters. + */ +#define FLEXFILENAMES /**/ + /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ /*#define HAS_FPOS64_T /**/ +/* HAS_FREXPL: + * This symbol, if defined, indicates that the frexpl routine is + * available to break a long double floating-point number into + * a normalized fraction and an integral power of 2. + */ +/*#define HAS_FREXPL /**/ + /* HAS_STRUCT_FS_DATA: * This symbol, if defined, indicates that the struct fs_data * to do statfs() is supported. @@ -1388,6 +1366,12 @@ */ /*#define HAS_GETCWD /**/ +/* HAS_GETESPWNAM: + * This symbol, if defined, indicates that the getespwnam system call is + * available to retrieve enchanced (shadow) password entries by name. + */ +/*#define HAS_GETESPWNAM /**/ + /* HAS_GETFSSTAT: * This symbol, if defined, indicates that the getfsstat routine is * available to stat filesystems in bulk. @@ -1493,6 +1477,13 @@ */ /*#define HAS_GETNET_PROTOS /**/ +/* HAS_GETPAGESIZE: + * This symbol, if defined, indicates that the getpagesize system call + * is available to get system page size, which is the granularity of + * many memory management calls. + */ +/*#define HAS_GETPAGESIZE /**/ + /* HAS_GETPROTOENT: * This symbol, if defined, indicates that the getprotoent() routine is * available to look up protocols in some data base or another. @@ -1518,6 +1509,12 @@ */ #define HAS_GETPROTO_PROTOS /**/ +/* HAS_GETPRPWNAM: + * This symbol, if defined, indicates that the getprpwnam system call is + * available to retrieve protected (shadow) password entries by name. + */ +/*#define HAS_GETPRPWNAM /**/ + /* HAS_GETPWENT: * This symbol, if defined, indicates that the getpwent routine is * available for sequential access of the passwd database. @@ -1539,12 +1536,6 @@ */ #define HAS_GETSERV_PROTOS /**/ -/* HAS_GETSPENT: - * This symbol, if defined, indicates that the getspent system call is - * available to retrieve SysV shadow password entries sequentially. - */ -/*#define HAS_GETSPENT /**/ - /* HAS_GETSPNAM: * This symbol, if defined, indicates that the getspnam system call is * available to retrieve SysV shadow password entries by name. @@ -1620,6 +1611,25 @@ */ #define HAS_ISASCII /**/ +/* HAS_ISNAN: + * This symbol, if defined, indicates that the isnan routine is + * available to check whether a double is a NaN. + */ +#define HAS_ISNAN /**/ + +/* HAS_ISNANL: + * This symbol, if defined, indicates that the isnanl routine is + * available to check whether a long double is a NaN. + */ +/*#define HAS_ISNANL /**/ + +/* HAS_LCHOWN: + * This symbol, if defined, indicates that the lchown routine is + * available to operate on a symbolic link (instead of following the + * link). + */ +/*#define HAS_LCHOWN /**/ + /* HAS_LDBL_DIG: * This symbol, if defined, indicates that this system's <float.h> * or <limits.h> defines the symbol LDBL_DIG, which is the number @@ -1707,6 +1717,13 @@ /*#define HAS_MMAP /**/ #define Mmap_t void * /**/ +/* HAS_MODFL: + * This symbol, if defined, indicates that the modfl routine is + * available to split a long double x into a fractional part f and + * an integer part i such that |f| < 1.0 and (f + i) = x. + */ +/*#define HAS_MODFL /**/ + /* HAS_MPROTECT: * This symbol, if defined, indicates that the mprotect system call is * available to modify the access protection of a memory mapped file. @@ -1819,6 +1836,12 @@ */ /*#define HAS_SETPROTOENT /**/ +/* HAS_SETPROCTITLE: + * This symbol, if defined, indicates that the setproctitle routine is + * available to set process title. + */ +/*#define HAS_SETPROCTITLE /**/ + /* HAS_SETPWENT: * This symbol, if defined, indicates that the setpwent routine is * available for initializing sequential access of the passwd database. @@ -1831,12 +1854,6 @@ */ /*#define HAS_SETSERVENT /**/ -/* HAS_SETSPENT: - * This symbol, if defined, indicates that the setspent system call is - * available to initialize the scan of SysV shadow password entries. - */ -/*#define HAS_SETSPENT /**/ - /* HAS_SETVBUF: * This symbol, if defined, indicates that the setvbuf routine is * available to change buffering on an open stdio stream. @@ -1940,6 +1957,12 @@ /*#define HAS_MSG_PROXY /**/ /*#define HAS_SCM_RIGHTS /**/ +/* HAS_SOCKS5_INIT: + * This symbol, if defined, indicates that the socks5_init routine is + * available to initialize SOCKS 5. + */ +/*#define HAS_SOCKS5_INIT /**/ + /* HAS_SQRTL: * This symbol, if defined, indicates that the sqrtl routine is * available to do long double square roots. @@ -2002,12 +2025,23 @@ * This symbol is defined if the FILE_cnt macro can be used as an * lvalue. */ +/* STDIO_PTR_LVAL_SETS_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n has the side effect of decreasing the + * value of File_cnt(fp) by n. + */ +/* STDIO_PTR_LVAL_NOCHANGE_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n leaves File_cnt(fp) unchanged. + */ #define USE_STDIO_PTR /**/ #ifdef USE_STDIO_PTR #define FILE_ptr(fp) ((fp)->_ptr) #define STDIO_PTR_LVALUE /**/ #define FILE_cnt(fp) ((fp)->_cnt) #define STDIO_CNT_LVALUE /**/ +/*#define STDIO_PTR_LVAL_SETS_CNT /**/ +/*#define STDIO_PTR_LVAL_NOCHANGE_CNT /**/ #endif /* USE_STDIO_BASE: @@ -2275,6 +2309,12 @@ */ /*#define I_INTTYPES /**/ +/* I_LIBUTIL: + * This symbol, if defined, indicates that <libutil.h> exists and + * should be included. + */ +/*#define I_LIBUTIL /**/ + /* I_MACH_CTHREADS: * This symbol, if defined, indicates to the C program that it should * include <mach/cthreads.h>. @@ -2305,6 +2345,12 @@ */ /*#define I_POLL /**/ +/* I_PROT: + * This symbol, if defined, indicates that <prot.h> exists and + * should be included. + */ +/*#define I_PROT /**/ + /* I_PTHREAD: * This symbol, if defined, indicates to the C program that it should * include <pthread.h>. @@ -2467,8 +2513,18 @@ * This symbol, if defined, contains the string used by stdio to * format long doubles (format 'g') for output. */ +/* PERL_PRIeldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'e') for output. + */ +/* PERL_SCNfldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'f') for input. + */ /*#define PERL_PRIfldbl "f" /**/ /*#define PERL_PRIgldbl "g" /**/ +/*#define PERL_PRIeldbl "e" /**/ +/*#define PERL_SCNfldbl "f" /**/ /* Off_t: * This symbol holds the type used to declare offsets in the kernel. @@ -2556,6 +2612,16 @@ #define Netdb_name_t char * /**/ #define Netdb_net_t long /**/ +/* PERL_OTHERLIBDIRS: + * This variable contains a colon-separated set of paths for the perl + * binary to search for additional library files or modules. + * These directories will be tacked to the end of @INC. + * Perl will automatically search below each path for version- + * and architecture-specific directories. See PERL_INC_VERSION_LIST + * for more details. + */ +/*#define PERL_OTHERLIBDIRS "" /**/ + /* IVTYPE: * This symbol defines the C type used for Perl's IV. */ @@ -2619,9 +2685,16 @@ /* U64SIZE: * This symbol contains the sizeof(U64). */ +/* NVSIZE: + * This symbol contains the sizeof(NV). + */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE - * can preserve all the bit of a variable of type UVSIZE. + * can preserve all the bits of a variable of type UVTYPE. + */ +/* NV_PRESERVES_UV_BITS: + * This symbol contains the number of bits a variable of type NVTYPE + * can preserve of a variable of type UVTYPE. */ #define IVTYPE long /**/ #define UVTYPE unsigned long /**/ @@ -2648,7 +2721,9 @@ #define I64SIZE 8 /**/ #define U64SIZE 8 /**/ #endif +#define NVSIZE 8 /**/ #define NV_PRESERVES_UV +#define NV_PRESERVES_UV_BITS 32 /* IVdf: * This symbol defines the format string used for printing a Perl IV @@ -2664,12 +2739,27 @@ */ /* UVxf: * This symbol defines the format string used for printing a Perl UV - * as an unsigned hexadecimal integer. + * as an unsigned hexadecimal integer in lowercase abcdef. + */ +/* NVef: + * This symbol defines the format string used for printing a Perl NV + * using %e-ish floating point format. + */ +/* NVff: + * This symbol defines the format string used for printing a Perl NV + * using %f-ish floating point format. + */ +/* NVgf: + * This symbol defines the format string used for printing a Perl NV + * using %g-ish floating point format. */ #define IVdf "ld" /**/ #define UVuf "lu" /**/ #define UVof "lo" /**/ #define UVxf "lx" /**/ +#define NVef "e" /**/ +#define NVff "f" /**/ +#define NVgf "g" /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. @@ -2688,8 +2778,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.6.0\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.6.0")) /**/ +#define PRIVLIB "c:\\perl\\5.6.1\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.6.1")) /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -2787,7 +2877,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2810,8 +2900,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "c:\\perl\\site\\5.6.0\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.6.0")) /**/ +#define SITELIB "c:\\perl\\site\\5.6.1\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.6.1")) /**/ #define SITELIB_STEM "" /**/ /* Size_t_size: @@ -3036,7 +3126,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86 for older + * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86 for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -3055,7 +3145,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.6.0\\lib for older directories across major versions + * search in c:\\perl\\site\\5.6.1\\lib for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's @@ -3068,17 +3158,62 @@ #define PERL_XS_APIVERSION "5.6.0" #define PERL_PM_APIVERSION "5.005" -/* HAS_LCHOWN: - * This symbol, if defined, indicates that the lchown routine is - * available to operate on a symbolic link (instead of following the - * link). +/* HAS_GETPGRP: + * This symbol, if defined, indicates that the getpgrp routine is + * available to get the current process group. */ -/*#define HAS_LCHOWN /**/ +/* USE_BSD_GETPGRP: + * This symbol, if defined, indicates that getpgrp needs one + * arguments whereas USG one needs none. + */ +/*#define HAS_GETPGRP /**/ +/*#define USE_BSD_GETPGRP /**/ -/* FLEXFILENAMES: - * This symbol, if defined, indicates that the system supports filenames - * longer than 14 characters. +/* HAS_SETPGRP: + * This symbol, if defined, indicates that the setpgrp routine is + * available to set the current process group. */ -#define FLEXFILENAMES /**/ +/* USE_BSD_SETPGRP: + * This symbol, if defined, indicates that setpgrp needs two + * arguments whereas USG one needs none. See also HAS_SETPGID + * for a POSIX interface. + */ +/*#define HAS_SETPGRP /**/ +/*#define USE_BSD_SETPGRP /**/ + +/* STDCHAR: + * This symbol is defined to be the type of char used in stdio.h. + * It has the values "unsigned char" or "char". + */ +#define STDCHAR char /**/ + +/* HAS__FWALK: + * This symbol, if defined, indicates that the _fwalk system call is + * available to apply a function to all the file handles. + */ +/*#define HAS__FWALK /**/ + +/* FCNTL_CAN_LOCK: + * This symbol, if defined, indicates that fcntl() can be used + * for file locking. Normally on Unix systems this is defined. + * It may be undefined on VMS. + */ +/*#define FCNTL_CAN_LOCK /**/ + +/* HAS_FSYNC: + * This symbol, if defined, indicates that the fsync routine is + * available to write a file's modified data and attributes to + * permanent storage. + */ +/*#define HAS_FSYNC /**/ + +/* HAS_SBRK_PROTO: + * This symbol, if defined, indicates that the system provides + * a prototype for the sbrk() function. Otherwise, it is up + * to the program to supply one. Good guesses are + * extern void* sbrk _((int)); + * extern void* sbrk _((size_t)); + */ +/*#define HAS_SBRK_PROTO /**/ #endif diff --git a/gnu/usr.bin/perl/win32/include/sys/socket.h b/gnu/usr.bin/perl/win32/include/sys/socket.h index 194de9581f8..d1f1de6b6aa 100644 --- a/gnu/usr.bin/perl/win32/include/sys/socket.h +++ b/gnu/usr.bin/perl/win32/include/sys/socket.h @@ -10,49 +10,16 @@ extern "C" { #endif -#ifndef _WINDOWS_ -#ifdef __GNUC__ #define WIN32_LEAN_AND_MEAN #ifdef __GNUC__ -#define Win32_Winsock +# define Win32_Winsock #endif #include <windows.h> -#else -#define _WINDOWS_ - -#define FAR -#define PASCAL __stdcall -#define WINAPI __stdcall - -#undef WORD -typedef int BOOL; -typedef unsigned short WORD; -typedef void* HANDLE; -typedef void* HWND; -typedef int (FAR WINAPI *FARPROC)(); - -typedef unsigned long DWORD; -typedef void *PVOID; - -#define IN -#define OUT - -typedef struct _OVERLAPPED { - DWORD Internal; - DWORD InternalHigh; - DWORD Offset; - DWORD OffsetHigh; - HANDLE hEvent; -} OVERLAPPED, *LPOVERLAPPED; - -#endif -#endif //_WINDOWS_ -// #ifndef __GNUC__ #include <winsock.h> -// #endif + +#include "win32.h" #define ENOTSOCK WSAENOTSOCK -#undef HOST_NOT_FOUND #ifdef USE_SOCKETS_AS_HANDLES diff --git a/gnu/usr.bin/perl/win32/makefile.mk b/gnu/usr.bin/perl/win32/makefile.mk index 7ed23dd3be1..040eaee2028 100644 --- a/gnu/usr.bin/perl/win32/makefile.mk +++ b/gnu/usr.bin/perl/win32/makefile.mk @@ -5,26 +5,104 @@ # Borland C++ 5.02
# Mingw32 with gcc-2.95.2 or better **experimental**
#
-# This is set up to build a perl.exe that runs off a shared library
-# (perl56.dll). Also makes individual DLLs for the XS extensions.
-#
##
## Make sure you read README.win32 *before* you mess with anything here!
##
+## If you want a configuration that is the same as ActivePerl (see
+## www.ActiveState.com) make sure you set at least BUILD_FLAVOR below!
+##
##
## Build configuration. Edit the values below to suit your needs.
##
#
-# Set these to wherever you want "dmake install" to put your
-# newly built perl.
+# Set these to wherever you want "dmake install" to put your newly
+# built perl. Setting it to a path with spaces is NOT recommended.
#
INST_DRV *= c:
INST_TOP *= $(INST_DRV)\perl
#
+# uncomment exactly one of the following
+#
+# Visual C++ 2.x
+#CCTYPE *= MSVC20
+# Visual C++ > 2.x and < 5.x SP3
+#CCTYPE *= MSVC_PRE_50SP3
+# Visual C++ >= 5.x SP3
+#CCTYPE *= MSVC60
+# Borland 5.02 or later
+#CCTYPE *= BORLAND
+# mingw32+gcc-2.95.2 or better
+CCTYPE *= GCC
+
+#
+# uncomment this if your Borland compiler is older than v5.4.
+#
+#BCCOLD = define
+
+#
+# uncomment this if you want to use Borland's VCL as your CRT.
+#
+#BCCVCL = define
+
+#
+# set the install locations of the compiler include/libraries. Running
+# VCVARS32.BAT is *required* when using Visual C. Some versions of
+# Visual C earlier than 5.x SP3 don't define MSVCDIR in the environment.
+# If such is the case you may have to set CCHOME explicitly. Spaces in
+# the path name should not be quoted.
+#
+#CCHOME *= F:\Borland\BC5
+#CCHOME *= $(MSVCDIR)
+CCHOME *= c:\gcc-2.95.2-msvcrt
+
+CCINCDIR *= $(CCHOME)\include
+CCLIBDIR *= $(CCHOME)\lib
+
+#
+# uncomment this if you are compiling under Windows 95/98 and command.com
+# (not needed if you're running under 4DOS/NT 6.01 or later)
+#IS_WIN95 *= define
+
+#
+# if you have the source for des_fcrypt(), uncomment CRYPT_SRC and make sure
+# the file exists (see README.win32). File should be located in the same
+# directory as this makefile.
+#
+# If you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
+# library, uncomment CRYPT_LIB, and make sure the library exists (see
+# README.win32). Specify the full pathname of the library.
+#
+# If you don't enable one of these, the crypt() builtin will fail to work.
+# (Generally not critical.)
+#
+#CRYPT_SRC *= fcrypt.c
+#CRYPT_LIB *= fcrypt.lib
+
+#
+# uncomment this option if you want to bulk-enable all the options that
+# ActiveState uses to build their ActivePerl distribution. If you set this,
+# there should be no need to set any of the other options that follow.
+#
+# If you don't enable this, the defaults below will get you the most
+# efficient perl configuration possible that will also be compatible
+# with the build defaults used on Unix platforms. On the other hand,
+# the ActivePerl configuration will get you fork() emulation at the
+# cost of some added bloat.
+#
+#BUILD_FLAVOR *= ActivePerl
+
+#
+# uncomment next line if you want debug version of perl (big and slow).
+# If not enabled, we automatically try to use maximum optimization
+# with all compilers that are known to have a working optimizer.
+#
+#CFG *= Debug
+
+#
# Comment this out if you DON'T want your perl installation to be versioned.
# This means that the new installation will overwrite any files from the
# old installation at the same INST_TOP location. Leaving it enabled is
@@ -33,7 +111,7 @@ INST_TOP *= $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER *= \5.6.0
+INST_VER *= \5.6.1
#
# Comment this out if you DON'T want your perl installation to have
@@ -83,37 +161,11 @@ INST_ARCH *= \$(ARCHNAME) # uncomment next line if you want to use the PERL_OBJECT build option.
# DO NOT ENABLE unless you have legacy code that relies on the C++
# CPerlObj class that was available in 5.005. This cannot be enabled
-# if you ask for USE_5005THREADS above.
+# if you ask for USE_5005THREADS or USE_MULTI above.
#
#USE_OBJECT *= define
#
-# uncomment exactly one of the following
-#
-# Visual C++ 2.x
-#CCTYPE *= MSVC20
-# Visual C++ > 2.x and < 6.x
-#CCTYPE *= MSVC
-# Visual C++ >= 6.x
-#CCTYPE *= MSVC60
-# Borland 5.02 or later
-#CCTYPE *= BORLAND
-# mingw32+gcc-2.95.2 or better
-CCTYPE *= GCC
-
-#
-# uncomment this if you are compiling under Windows 95/98 and command.com
-# (not needed if you're running under 4DOS/NT 6.01 or later)
-#IS_WIN95 *= define
-
-#
-# uncomment next line if you want debug version of perl (big,slow)
-# If not enabled, we automatically try to use maximum optimization
-# with all compilers that are known to have a working optimizer.
-#
-#CFG *= Debug
-
-#
# uncomment to enable use of PerlCRT.DLL when using the Visual C compiler.
# It has patches that fix known bugs in older versions of MSVCRT.DLL.
# This currently requires VC 5.0 with Service Pack 3 or later.
@@ -126,28 +178,15 @@ CCTYPE *= GCC #
# uncomment to enable linking with setargv.obj under the Visual C
-# compiler. Setting this options enables perl to expand wildcards in
+# compiler. Setting this option enables perl to expand wildcards in
# arguments, but it may be harder to use alternate methods like
-# File::DosGlob that are more powerful. This option is supported only with
-# Visual C.
+# File::DosGlob that are more powerful, or use perl inside shells
+# that do the expansion for you. This option is supported only
+# with Visual C.
#
#USE_SETARGV *= define
#
-# if you have the source for des_fcrypt(), uncomment this and make sure the
-# file exists (see README.win32). File should be located in the same
-# directory as this file.
-#
-#CRYPT_SRC *= fcrypt.c
-
-#
-# if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
-# library, uncomment this, and make sure the library exists (see README.win32)
-# Specify the full pathname of the library.
-#
-#CRYPT_LIB *= fcrypt.lib
-
-#
# set this if you wish to use perl's malloc
# WARNING: Turning this on/off WILL break binary compatibility with extensions
# you may have compiled with/without it. Be prepared to recompile all
@@ -157,19 +196,6 @@ CCTYPE *= GCC #PERL_MALLOC *= define
#
-# set the install locations of the compiler include/libraries
-# Running VCVARS32.BAT is *required* when using Visual C.
-# Some versions of Visual C don't define MSVCDIR in the environment,
-# so you may have to set CCHOME explicitly (spaces in the path name should
-# not be quoted)
-#
-#CCHOME *= c:\bc5
-#CCHOME *= $(MSVCDIR)
-CCHOME *= c:\gcc-2.95.2-msvcrt
-CCINCDIR *= $(CCHOME)\include
-CCLIBDIR *= $(CCHOME)\lib
-
-#
# Additional compiler flags can be specified here.
#
@@ -218,6 +244,19 @@ EXTRALIBDIRS *= ##################### CHANGE THESE ONLY IF YOU MUST #####################
+.IF "$(BUILD_FLAVOR)" == "ActivePerl"
+INST_VER !=
+INST_ARCH !=
+USE_MULTI != define
+USE_ITHREADS != define
+USE_IMP_SYS != define
+USE_5005THREADS != undef
+USE_OBJECT != undef
+USE_PERLCRT != undef
+USE_SETARGV !=
+PERL_MALLOC != undef
+.ENDIF
+
.IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
D_CRYPT = undef
.ELSE
@@ -312,7 +351,7 @@ INST_LIB = $(INST_TOP)$(INST_VER)\lib INST_ARCHLIB = $(INST_LIB)$(INST_ARCH)
INST_COREDIR = $(INST_ARCHLIB)\CORE
INST_POD = $(INST_LIB)\pod
-INST_HTML = $(INST_POD)\html
+INST_HTML = $(INST_TOP)$(INST_VER)\html
#
# Programs to compile, build .lib files and link
@@ -323,7 +362,11 @@ INST_HTML = $(INST_POD)\html .IF "$(CCTYPE)" == "BORLAND"
CC = bcc32
+.IF "$(BCCOLD)" != "define"
+LINK32 = ilink32
+.ELSE
LINK32 = tlink32
+.END
LIB32 = tlib /P128
IMPLIB = implib -c
RSC = rc
@@ -339,10 +382,10 @@ SUBSYS = console CXX_FLAG = -P
LIBC = cw32mti.lib
-LIBFILES = $(CRYPT_LIB) import32.lib $(LIBC) odbc32.lib odbccp32.lib
+LIBFILES = $(CRYPT_LIB) import32.lib $(LIBC)
.IF "$(CFG)" == "Debug"
-OPTIMIZE = -v -D_RTLDLL -DDEBUGGING
+OPTIMIZE = -v -D_RTLDLL -DDEBUGGING -y -R
LINK_DBG = -v
.ELSE
OPTIMIZE = -O2 -D_RTLDLL
@@ -355,6 +398,14 @@ LINK_FLAGS = $(LINK_DBG) -L"$(INST_COREDIR)" -L"$(CCLIBDIR)" OBJOUT_FLAG = -o
EXEOUT_FLAG = -e
LIBOUT_FLAG =
+.IF "$(BCCOLD)" != "define"
+LINK_FLAGS += -Gn
+DEFINES += -D_MT
+.IF "$(BCCVCL)" == "define"
+LIBC != cp32mti.lib vcl.lib vcl50.lib vclx50.lib vcle50.lib
+LINK_FLAGS += -L"$(CCLIBDIR)\Release"
+.END
+.END
.ELIF "$(CCTYPE)" == "GCC"
@@ -809,6 +860,7 @@ CFG_VARS = \ INST_ARCH=$(INST_ARCH) ~ \
archname=$(ARCHNAME) ~ \
cc=$(CC) ~ \
+ ld=$(LINK32) ~ \
ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT) ~ \
cf_email=$(EMAIL) ~ \
d_crypt=$(D_CRYPT) ~ \
@@ -1070,7 +1122,7 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES) $(LINK32) -mconsole -o $@ $(BLINK_FLAGS) \
$(PERLEXE_OBJ) $(PERLIMPLIB) $(LIBFILES)
.ELSE
- $(LINK32) -subsystem:console -out:$@ -stack:0x8000000 $(BLINK_FLAGS) \
+ $(LINK32) -subsystem:console -out:$@ -stack:0x1000000 $(BLINK_FLAGS) \
$(LIBFILES) $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
.ENDIF
copy $(PERLEXE) $(WPERLEXE)
@@ -1182,14 +1234,23 @@ doc: $(PERLEXE) utils: $(PERLEXE) $(X2P)
cd ..\utils && $(MAKE) PERL=$(MINIPERL)
- copy ..\README.amiga ..\pod\perlamiga.pod
- copy ..\README.cygwin ..\pod\perlcygwin.pod
- copy ..\README.dos ..\pod\perldos.pod
- copy ..\README.hpux ..\pod\perlhpux.pod
- copy ..\README.machten ..\pod\perlmachten.pod
- copy ..\README.os2 ..\pod\perlos2.pod
- copy ..\README.os2 ..\pod\perlos2.pod
- copy ..\vms\perlvms.pod ..\pod\perlvms.pod
+ copy ..\README.aix ..\pod\perlaix.pod
+ copy ..\README.amiga ..\pod\perlamiga.pod
+ copy ..\README.bs2000 ..\pod\perlbs2000.pod
+ copy ..\README.cygwin ..\pod\perlcygwin.pod
+ copy ..\README.dos ..\pod\perldos.pod
+ copy ..\README.epoc ..\pod\perlepoc.pod
+ copy ..\README.hpux ..\pod\perlhpux.pod
+ copy ..\README.machten ..\pod\perlmachten.pod
+ copy ..\README.macos ..\pod\perlmacos.pod
+ copy ..\README.mpeix ..\pod\perlmpeix.pod
+ copy ..\README.os2 ..\pod\perlos2.pod
+ copy ..\README.os390 ..\pod\perlos390.pod
+ copy ..\README.solaris ..\pod\perlsolaris.pod
+ copy ..\README.vmesa ..\pod\perlvmesa.pod
+ copy ..\vms\perlvms.pod ..\pod\perlvms.pod
+ copy ..\README.vos ..\pod\perlvos.pod
+ copy ..\README.win32 ..\pod\perlwin32.pod
cd ..\pod && $(MAKE) -f ..\win32\pod.mak converters
$(PERLEXE) $(PL2BAT) $(UTILS)
@@ -1199,32 +1260,38 @@ distclean: clean -del /f *.def *.map
-del /f $(EXTENSION_DLL) $(EXTENSION_PM)
-del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
- -del /f $(EXTDIR)\DynaLoader\dl_win32.xs
+ -del /f $(EXTDIR)\DynaLoader\dl_win32.xs $(EXTDIR)\DynaLoader\DynaLoader.pm
-del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm
- -del /f $(LIBDIR)\XSLoader.pm
+ -del /f $(LIBDIR)\XSLoader.pm $(EXTDIR)\DynaLoader\XSLoader.pm
+ -del /f $(LIBDIR)\Devel\.exists $(LIBDIR)\File\.exists $(LIBDIR)\Sys\.exists
-del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
-del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm $(LIBDIR)\Thread.pm
-del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
- -del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
+ -del /f $(LIBDIR)\B.pm $(EXTDIR)\B\defsubs.h $(LIBDIR)\O.pm $(LIBDIR)\re.pm
-del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
-del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm
-del /f $(LIBDIR)\File\Glob.pm
- -rmdir /s /q $(LIBDIR)\IO || rmdir /s $(LIBDIR)\IO
- -rmdir /s /q $(LIBDIR)\Thread || rmdir /s $(LIBDIR)\Thread
- -rmdir /s /q $(LIBDIR)\B || rmdir /s $(LIBDIR)\B
- -rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data
- -del /f $(PODDIR)\*.html
- -del /f $(PODDIR)\*.bat
+ -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO || rmdir /s $(LIBDIR)\IO
+ -if exist $(LIBDIR)\Thread rmdir /s /q $(LIBDIR)\Thread || rmdir /s $(LIBDIR)\Thread
+ -if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B || rmdir /s $(LIBDIR)\B
+ -if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data
+ -cd $(PODDIR) && del /f *.html *.bat checkpods \
+ perlaix.pod perlamiga.pod perlbs2000.pod perlcygwin.pod \
+ perldos.pod perlepoc.pod perlhpux.pod perlmachten.pod \
+ perlmacos.pod perlmpeix.pod perlos2.pod perlos390.pod \
+ perlsolaris.pod perlvmesa.pod perlvms.pod perlvos.pod \
+ perlwin32.pod pod2html pod2latex pod2man pod2text pod2usage \
+ podchecker podselect
-cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc \
- dprofpp *.bat
+ dprofpp *.bat perlcc pstruct
-cd ..\x2p && del /f find2perl s2p *.bat
-del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
-del /f $(CONFIGPM)
-del /f bin\*.bat
-cd $(EXTDIR) && del /s *$(a) *.def *.map *.pdb *.bs Makefile *$(o) \
pm_to_blib
- -rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR)
- -rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)
+ -if exist $(AUTODIR) rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR)
+ -if exist $(COREDIR) rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)
install : all installbare installhtml
@@ -1291,7 +1358,7 @@ clean : -@erase $(WPERLEXE)
-@erase $(PERLDLL)
-@erase $(CORE_OBJ)
- -rmdir /s /q $(MINIDIR) || rmdir /s $(MINIDIR)
+ -if exist $(MINIDIR) rmdir /s /q $(MINIDIR) || rmdir /s $(MINIDIR)
-@erase $(WIN32_OBJ)
-@erase $(DLL_OBJ)
-@erase $(X2P_OBJ)
@@ -1300,3 +1367,19 @@ clean : -@erase ..\x2p\*.exe ..\x2p\*.bat
-@erase *.ilk
-@erase *.pdb
+
+# Handy way to run perlbug -ok without having to install and run the
+# installed perlbug. We don't re-run the tests here - we trust the user.
+# Please *don't* use this unless all tests pass.
+# If you want to report test failures, use "dmake nok" instead.
+ok: utils
+ $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)"
+
+okfile: utils
+ $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok
+
+nok: utils
+ $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)"
+
+nokfile: utils
+ $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok
diff --git a/gnu/usr.bin/perl/win32/perllib.c b/gnu/usr.bin/perl/win32/perllib.c index 857aada2471..e2b245d84f8 100644 --- a/gnu/usr.bin/perl/win32/perllib.c +++ b/gnu/usr.bin/perl/win32/perllib.c @@ -338,6 +338,10 @@ RunPerl(int argc, char **argv, char **env) EXTERN_C void set_w32_module_name(void); +EXTERN_C void +EndSockets(void); + + #ifdef __MINGW32__ EXTERN_C /* GCC in C++ mode mangles the name, otherwise */ #endif @@ -367,6 +371,11 @@ DllMain(HANDLE hModule, /* DLL module handle */ * process termination or call to FreeLibrary. */ case DLL_PROCESS_DETACH: + EndSockets(); +#if defined(USE_THREADS) || defined(USE_ITHREADS) + if (PL_curinterp) + FREE_THREAD_KEY; +#endif break; /* The attached process creates a new thread. */ diff --git a/gnu/usr.bin/perl/win32/pod.mak b/gnu/usr.bin/perl/win32/pod.mak index b1a1b9c56ae..cd00eea2491 100644 --- a/gnu/usr.bin/perl/win32/pod.mak +++ b/gnu/usr.bin/perl/win32/pod.mak @@ -323,6 +323,7 @@ podselect: podselect.PL ../lib/Config.pm $(PERL) -I ../lib podselect.PL compile: all - $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' pod2latex pod2man pod2text checkpods -prog -verbose dcf -log ../compilelog; - - + $(REALPERL) -I../lib ../utils/perlcc pod2latex -o pod2latex.exe -v 10 -log ../compilelog + $(REALPERL) -I../lib ../utils/perlcc pod2man -o pod2man.exe -v 10 -log ../compilelog + $(REALPERL) -I../lib ../utils/perlcc pod2text -o pod2text.exe -v 10 -log ../compilelog + $(REALPERL) -I../lib ../utils/perlcc checkpods -o checkpods.exe -v 10 -log ../compilelog diff --git a/gnu/usr.bin/perl/win32/win32.c b/gnu/usr.bin/perl/win32/win32.c index 840274beab5..cceb2e53ea2 100644 --- a/gnu/usr.bin/perl/win32/win32.c +++ b/gnu/usr.bin/perl/win32/win32.c @@ -53,7 +53,6 @@ #else #include <utime.h> #endif - #ifdef __GNUC__ /* Mingw32 defaults to globing command line * So we turn it off like this: @@ -177,7 +176,9 @@ get_regstr_from(HKEY hkey, const char *valuename, SV **svp) if (retval == ERROR_SUCCESS) { DWORD datalen; retval = RegQueryValueEx(handle, valuename, 0, &type, NULL, &datalen); - if (retval == ERROR_SUCCESS && type == REG_SZ) { + if (retval == ERROR_SUCCESS + && (type == REG_SZ || type == REG_EXPAND_SZ)) + { dTHXo; if (!*svp) *svp = sv_2mortal(newSVpvn("",0)); @@ -435,12 +436,19 @@ win32_os_id(void) DllExport int win32_getpid(void) { + int pid; #ifdef USE_ITHREADS dTHXo; if (w32_pseudo_id) return -((int)w32_pseudo_id); #endif - return _getpid(); + pid = _getpid(); + /* Windows 9x appears to always reports a pid for threads and processes + * that has the high bit set. So we treat the lower 31 bits as the + * "real" PID for Perl's purposes. */ + if (IsWin95() && pid < 0) + pid = -pid; + return pid; } /* Tokenize a string. Words are null-separated, and the list @@ -567,9 +575,12 @@ do_aspawn(void *vreally, void **vmark, void **vsp) (const char* const*)argv); } - if (flag != P_NOWAIT) { + if (flag == P_NOWAIT) { + if (IsWin95()) + PL_statusvalue = -1; /* >16bits hint for pp_system() */ + } + else { if (status < 0) { - dTHR; if (ckWARN(WARN_EXEC)) Perl_warner(aTHX_ WARN_EXEC, "Can't spawn \"%s\": %s", argv[0], strerror(errno)); status = 255 * 256; @@ -656,9 +667,12 @@ do_spawn2(char *cmd, int exectype) cmd = argv[0]; Safefree(argv); } - if (exectype != EXECF_SPAWN_NOWAIT) { + if (exectype == EXECF_SPAWN_NOWAIT) { + if (IsWin95()) + PL_statusvalue = -1; /* >16bits hint for pp_system() */ + } + else { if (status < 0) { - dTHR; if (ckWARN(WARN_EXEC)) Perl_warner(aTHX_ WARN_EXEC, "Can't %s \"%s\": %s", (exectype == EXECF_EXEC ? "exec" : "spawn"), @@ -1020,10 +1034,11 @@ win32_kill(int pid, int sig) { dTHXo; HANDLE hProcess; + long child; #ifdef USE_ITHREADS if (pid < 0) { /* it is a pseudo-forked child */ - long child = find_pseudo_pid(-pid); + child = find_pseudo_pid(-pid); if (child >= 0) { if (!sig) return 0; @@ -1033,11 +1048,15 @@ win32_kill(int pid, int sig) return 0; } } + else if (IsWin95()) { + pid = -pid; + goto alien_process; + } } else #endif { - long child = find_pid(pid); + child = find_pid(pid); if (child >= 0) { if (!sig) return 0; @@ -1048,7 +1067,9 @@ win32_kill(int pid, int sig) } } else { - hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid); +alien_process: + hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, + (IsWin95() ? -pid : pid)); if (hProcess) { if (!sig) return 0; @@ -1276,8 +1297,6 @@ win32_longpath(char *path) return path; } -#ifndef USE_WIN32_RTL_ENV - DllExport char * win32_getenv(const char *name) { @@ -1379,8 +1398,6 @@ win32_putenv(const char *name) return relval; } -#endif - static long filetime_to_clock(PFILETIME ft) { @@ -1610,7 +1627,7 @@ win32_uname(struct utsname *name) char *arch; GetSystemInfo(&info); -#if defined(__BORLANDC__) || defined(__MINGW32__) +#if (defined(__BORLANDC__)&&(__BORLANDC__<=0x520)) || defined(__MINGW32__) switch (info.u.s.wProcessorArchitecture) { #else switch (info.wProcessorArchitecture) { @@ -1635,34 +1652,48 @@ DllExport int win32_waitpid(int pid, int *status, int flags) { dTHXo; + DWORD timeout = (flags & WNOHANG) ? 0 : INFINITE; int retval = -1; + long child; if (pid == -1) /* XXX threadid == 1 ? */ return win32_wait(status); #ifdef USE_ITHREADS else if (pid < 0) { - long child = find_pseudo_pid(-pid); + child = find_pseudo_pid(-pid); if (child >= 0) { HANDLE hThread = w32_pseudo_child_handles[child]; - DWORD waitcode = WaitForSingleObject(hThread, INFINITE); - if (waitcode != WAIT_FAILED) { + DWORD waitcode = WaitForSingleObject(hThread, timeout); + if (waitcode == WAIT_TIMEOUT) { + return 0; + } + else if (waitcode != WAIT_FAILED) { if (GetExitCodeThread(hThread, &waitcode)) { *status = (int)((waitcode & 0xff) << 8); retval = (int)w32_pseudo_child_pids[child]; remove_dead_pseudo_process(child); - return retval; + return -retval; } } else errno = ECHILD; } + else if (IsWin95()) { + pid = -pid; + goto alien_process; + } } #endif else { - long child = find_pid(pid); + HANDLE hProcess; + DWORD waitcode; + child = find_pid(pid); if (child >= 0) { - HANDLE hProcess = w32_child_handles[child]; - DWORD waitcode = WaitForSingleObject(hProcess, INFINITE); - if (waitcode != WAIT_FAILED) { + hProcess = w32_child_handles[child]; + waitcode = WaitForSingleObject(hProcess, timeout); + if (waitcode == WAIT_TIMEOUT) { + return 0; + } + else if (waitcode != WAIT_FAILED) { if (GetExitCodeProcess(hProcess, &waitcode)) { *status = (int)((waitcode & 0xff) << 8); retval = (int)w32_child_pids[child]; @@ -1674,12 +1705,25 @@ win32_waitpid(int pid, int *status, int flags) errno = ECHILD; } else { - retval = cwait(status, pid, WAIT_CHILD); - /* cwait() returns "correctly" on Borland */ -#ifndef __BORLANDC__ - if (status) - *status *= 256; -#endif +alien_process: + hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, + (IsWin95() ? -pid : pid)); + if (hProcess) { + waitcode = WaitForSingleObject(hProcess, timeout); + if (waitcode == WAIT_TIMEOUT) { + return 0; + } + else if (waitcode != WAIT_FAILED) { + if (GetExitCodeProcess(hProcess, &waitcode)) { + *status = (int)((waitcode & 0xff) << 8); + CloseHandle(hProcess); + return pid; + } + } + CloseHandle(hProcess); + } + else + errno = ECHILD; } } return retval >= 0 ? pid : retval; @@ -1711,7 +1755,7 @@ win32_wait(int *status) *status = (int)((exitcode & 0xff) << 8); retval = (int)w32_pseudo_child_pids[i]; remove_dead_pseudo_process(i); - return retval; + return -retval; } } } @@ -1755,7 +1799,7 @@ static VOID CALLBACK TimerProc(HWND win, UINT msg, UINT id, DWORD time) dTHXo; KillTimer(NULL,timerid); timerid=0; - sighandler(14); + CALL_FPTR(PL_sighandlerp)(14); } #endif /* !PERL_OBJECT */ @@ -1800,7 +1844,6 @@ win32_crypt(const char *txt, const char *salt) { dTHXo; #ifdef HAVE_DES_FCRYPT - dTHR; return des_fcrypt(txt, salt, w32_crypt_buffer); #else Perl_croak(aTHX_ "The crypt() function is unimplemented due to excessive paranoia."); @@ -1808,53 +1851,6 @@ win32_crypt(const char *txt, const char *salt) #endif } -/* C doesn't like repeat struct definitions */ - -#if defined(USE_FIXED_OSFHANDLE) || defined(PERL_MSVCRT_READFIX) - -#ifndef _CRTIMP -#define _CRTIMP __declspec(dllimport) -#endif - -/* - * Control structure for lowio file handles - */ -typedef struct { - long osfhnd; /* underlying OS file HANDLE */ - char osfile; /* attributes of file (e.g., open in text mode?) */ - char pipech; /* one char buffer for handles opened on pipes */ - int lockinitflag; - CRITICAL_SECTION lock; -} ioinfo; - - -/* - * Array of arrays of control structures for lowio files. - */ -EXTERN_C _CRTIMP ioinfo* __pioinfo[]; - -/* - * Definition of IOINFO_L2E, the log base 2 of the number of elements in each - * array of ioinfo structs. - */ -#define IOINFO_L2E 5 - -/* - * Definition of IOINFO_ARRAY_ELTS, the number of elements in ioinfo array - */ -#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) - -/* - * Access macros for getting at an ioinfo struct and its fields from a - * file handle - */ -#define _pioinfo(i) (__pioinfo[(i) >> IOINFO_L2E] + ((i) & (IOINFO_ARRAY_ELTS - 1))) -#define _osfhnd(i) (_pioinfo(i)->osfhnd) -#define _osfile(i) (_pioinfo(i)->osfile) -#define _pipech(i) (_pioinfo(i)->pipech) - -#endif - #ifdef USE_FIXED_OSFHANDLE #define FOPEN 0x01 /* file handle open */ @@ -1893,10 +1889,6 @@ EXTERN_C _CRTIMP ioinfo* __pioinfo[]; * -- BKS, 1-23-2000 */ -/* since we are not doing a dup2(), this works fine */ - -#define _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = osfh) - /* create an ioinfo entry, kill its handle, and steal the entry */ static int @@ -2313,7 +2305,25 @@ win32_abort(void) DllExport int win32_fstat(int fd,struct stat *sbufptr) { - return fstat(fd,sbufptr); +#ifdef __BORLANDC__ + /* A file designated by filehandle is not shown as accessible + * for write operations, probably because it is opened for reading. + * --Vadim Konovalov + */ + int rc = fstat(fd,sbufptr); + BY_HANDLE_FILE_INFORMATION bhfi; + if (GetFileInformationByHandle((HANDLE)_get_osfhandle(fd), &bhfi)) { + sbufptr->st_mode &= 0xFE00; + if (bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY) + sbufptr->st_mode |= (S_IREAD + (S_IREAD >> 3) + (S_IREAD >> 6)); + else + sbufptr->st_mode |= ((S_IREAD|S_IWRITE) + ((S_IREAD|S_IWRITE) >> 3) + + ((S_IREAD|S_IWRITE) >> 6)); + } + return rc; +#else + return my_fstat(fd,sbufptr); +#endif } DllExport int @@ -2391,7 +2401,9 @@ win32_popen(const char *command, const char *mode) /* close saved handle */ win32_close(oldfd); + LOCK_FDPID_MUTEX; sv_setiv(*av_fetch(w32_fdpid, p[parent], TRUE), childpid); + UNLOCK_FDPID_MUTEX; /* set process id so that it can be returned by perl's open() */ PL_forkprocess = childpid; @@ -2427,7 +2439,9 @@ win32_pclose(FILE *pf) int childpid, status; SV *sv; + LOCK_FDPID_MUTEX; sv = *av_fetch(w32_fdpid, win32_fileno(pf), TRUE); + if (SvIOK(sv)) childpid = SvIVX(sv); else @@ -2440,6 +2454,7 @@ win32_pclose(FILE *pf) win32_fclose(pf); SvIVX(sv) = 0; + UNLOCK_FDPID_MUTEX; if (win32_waitpid(childpid, &status, 0) == -1) return -1; @@ -3259,9 +3274,12 @@ RETRY: if (mode == P_NOWAIT) { /* asynchronous spawn -- store handle, return PID */ - w32_child_handles[w32_num_children] = ProcessInformation.hProcess; - w32_child_pids[w32_num_children] = ProcessInformation.dwProcessId; ret = (int)ProcessInformation.dwProcessId; + if (IsWin95() && ret < 0) + ret = -ret; + + w32_child_handles[w32_num_children] = ProcessInformation.hProcess; + w32_child_pids[w32_num_children] = (DWORD)ret; ++w32_num_children; } else { @@ -3506,6 +3524,25 @@ win32_dynaload(const char* filename) { dTHXo; HMODULE hModule; + char buf[MAX_PATH+1]; + char *first; + + /* LoadLibrary() doesn't recognize forward slashes correctly, + * so turn 'em back. */ + first = strchr(filename, '/'); + if (first) { + STRLEN len = strlen(filename); + if (len <= MAX_PATH) { + strcpy(buf, filename); + filename = &buf[first - filename]; + while (*filename) { + if (*filename == '/') + *(char*)filename = '\\'; + ++filename; + } + filename = buf; + } + } if (USING_WIDE()) { WCHAR wfilename[MAX_PATH+1]; A2WHELPER(filename, wfilename, sizeof(wfilename)); @@ -3821,8 +3858,11 @@ XS(w32_Spawn) &stStartInfo, /* -> Startup info */ &stProcInfo)) /* <- Process info (if OK) */ { + int pid = (int)stProcInfo.dwProcessId; + if (IsWin95() && pid < 0) + pid = -pid; + sv_setiv(ST(2), pid); CloseHandle(stProcInfo.hThread);/* library source code does this. */ - sv_setiv(ST(2), stProcInfo.dwProcessId); bSuccess = TRUE; } XSRETURN_IV(bSuccess); @@ -3851,6 +3891,9 @@ XS(w32_GetShortPathName) shortpath = sv_mortalcopy(ST(0)); SvUPGRADE(shortpath, SVt_PV); + if (!SvPVX(shortpath) || !SvLEN(shortpath)) + XSRETURN_UNDEF; + /* src == target is allowed */ do { len = GetShortPathName(SvPVX(shortpath), @@ -3880,6 +3923,9 @@ XS(w32_GetFullPathName) filename = ST(0); fullpath = sv_mortalcopy(filename); SvUPGRADE(fullpath, SVt_PV); + if (!SvPVX(fullpath) || !SvLEN(fullpath)) + XSRETURN_UNDEF; + do { len = GetFullPathName(SvPVX(filename), SvLEN(fullpath), @@ -3966,18 +4012,6 @@ Perl_init_os_extras(void) char *file = __FILE__; dXSUB_SYS; - w32_perlshell_tokens = Nullch; - w32_perlshell_items = -1; - w32_fdpid = newAV(); /* XXX needs to be in Perl_win32_init()? */ - New(1313, w32_children, 1, child_tab); - w32_num_children = 0; - w32_init_socktype = 0; -#ifdef USE_ITHREADS - w32_pseudo_id = 0; - New(1313, w32_pseudo_children, 1, child_tab); - w32_num_pseudo_children = 0; -#endif - /* these names are Activeware compatible */ newXS("Win32::GetCwd", w32_GetCwd, file); newXS("Win32::SetCwd", w32_SetCwd, file); @@ -4035,16 +4069,50 @@ win32_get_child_IO(child_IO_table* ptbl) ptbl->childStdErr = GetStdHandle(STD_ERROR_HANDLE); } - -#ifdef USE_ITHREADS +#ifdef HAVE_INTERP_INTERN # ifdef PERL_OBJECT +# undef Perl_sys_intern_init +# define Perl_sys_intern_init CPerlObj::Perl_sys_intern_init # undef Perl_sys_intern_dup # define Perl_sys_intern_dup CPerlObj::Perl_sys_intern_dup +# undef Perl_sys_intern_clear +# define Perl_sys_intern_clear CPerlObj::Perl_sys_intern_clear # define pPerl this # endif void +Perl_sys_intern_init(pTHX) +{ + w32_perlshell_tokens = Nullch; + w32_perlshell_vec = (char**)NULL; + w32_perlshell_items = 0; + w32_fdpid = newAV(); + New(1313, w32_children, 1, child_tab); + w32_num_children = 0; +# ifdef USE_ITHREADS + w32_pseudo_id = 0; + New(1313, w32_pseudo_children, 1, child_tab); + w32_num_pseudo_children = 0; +# endif + w32_init_socktype = 0; +} + +void +Perl_sys_intern_clear(pTHX) +{ + Safefree(w32_perlshell_tokens); + Safefree(w32_perlshell_vec); + /* NOTE: w32_fdpid is freed by sv_clean_all() */ + Safefree(w32_children); +# ifdef USE_ITHREADS + Safefree(w32_pseudo_children); +# endif +} + +# ifdef USE_ITHREADS + +void Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst) { dst->perlshell_tokens = Nullch; @@ -4052,12 +4120,12 @@ Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst) dst->perlshell_items = 0; dst->fdpid = newAV(); Newz(1313, dst->children, 1, child_tab); - Newz(1313, dst->pseudo_children, 1, child_tab); dst->pseudo_id = 0; - dst->children->num = 0; - dst->thr_intern.Winit_socktype = src->thr_intern.Winit_socktype; + Newz(1313, dst->pseudo_children, 1, child_tab); + dst->thr_intern.Winit_socktype = 0; } -#endif +# endif /* USE_ITHREADS */ +#endif /* HAVE_INTERP_INTERN */ #ifdef PERL_OBJECT # undef this diff --git a/gnu/usr.bin/perl/win32/win32.h b/gnu/usr.bin/perl/win32/win32.h index 35d5bdfa985..f5cc83e5e57 100644 --- a/gnu/usr.bin/perl/win32/win32.h +++ b/gnu/usr.bin/perl/win32/win32.h @@ -122,11 +122,6 @@ struct utsname { #define PERL_NO_FORCE_LINK /* no need for PL_force_link_funcs */ -/* if USE_WIN32_RTL_ENV is not defined, Perl uses direct Win32 calls - * to read the environment, bypassing the runtime's (usually broken) - * facilities for accessing the same. See note in util.c/my_setenv(). */ -/*#define USE_WIN32_RTL_ENV */ - /* Define USE_FIXED_OSFHANDLE to fix MSVCRT's _open_osfhandle() on W95. It now uses some black magic to work seamlessly with the DLL CRT and works with MSVC++ 4.0+ or GCC/Mingw32 @@ -135,6 +130,12 @@ struct utsname { #define USE_FIXED_OSFHANDLE #endif +/* Define PERL_WIN32_SOCK_DLOAD to have Perl dynamically load the winsock + DLL when needed. Don't use if your compiler supports delayloading (ie, VC++ 6.0) + -- BKS 5-29-2000 */ +#if !(defined(_M_IX86) && _MSC_VER >= 1200) +#define PERL_WIN32_SOCK_DLOAD +#endif #define ENV_IS_CASELESS #ifndef VER_PLATFORM_WIN32_WINDOWS /* VC-2.0 headers don't have this */ @@ -153,14 +154,22 @@ struct utsname { # define F_OK 0 #endif +/* for waitpid() */ +#ifndef WNOHANG +# define WNOHANG 1 +#endif + #define PERL_GET_CONTEXT_DEFINED /* Compiler-specific stuff. */ #ifdef __BORLANDC__ /* Borland C++ */ +#if (__BORLANDC__ <= 0x520) #define _access access #define _chdir chdir +#endif + #define _getpid getpid #define wcsicmp _wcsicmp #include <sys/types.h> @@ -177,8 +186,6 @@ struct utsname { #pragma warn -aus /* "'foo' is assigned a value that is never used" */ #pragma warn -use /* "'foo' is declared but never used" */ #pragma warn -csu /* "comparing signed and unsigned values" */ -#pragma warn -pro /* "call to function with no prototype" */ -#pragma warn -stu /* "undefined structure 'foo'" */ /* Borland is picky about a bare member function name used as its ptr */ #ifdef PERL_OBJECT @@ -188,6 +195,8 @@ struct utsname { /* Borland C thinks that a pointer to a member variable is 12 bytes in size. */ #define PERL_MEMBER_PTR_SIZE 12 +#define isnan _isnan + #endif #ifdef _MSC_VER /* Microsoft Visual C++ */ @@ -200,6 +209,8 @@ typedef unsigned short mode_t; /* Visual C thinks that a pointer to a member variable is 16 bytes in size. */ #define PERL_MEMBER_PTR_SIZE 16 +#define isnan _isnan + #endif /* _MSC_VER */ #ifdef __MINGW32__ /* Minimal Gnu-Win32 */ @@ -211,6 +222,7 @@ typedef long gid_t; #endif #define flushall _flushall #define fcloseall _fcloseall +#define isnan _isnan /* ...same libraries as MSVC */ #ifdef PERL_OBJECT # define MEMBER_TO_FPTR(name) &(name) @@ -294,7 +306,7 @@ extern int chown(const char *p, uid_t o, gid_t g); #define init_os_extras Perl_init_os_extras DllExport void Perl_win32_init(int *argcp, char ***argvp); -DllExport void Perl_init_os_extras(); +DllExport void Perl_init_os_extras(void); DllExport void win32_str_os_error(void *sv, DWORD err); DllExport int RunPerl(int argc, char **argv, char **env); @@ -327,6 +339,7 @@ DllExport void win32_get_child_IO(child_IO_table* ptr); extern FILE * my_fdopen(int, char *); #endif extern int my_fclose(FILE *); +extern int my_fstat(int fd, struct stat *sbufptr); extern int do_aspawn(void *really, void **mark, void **sp); extern int do_spawn(char *cmd); extern int do_spawn_nowait(char *cmd); @@ -477,11 +490,63 @@ struct interp_intern { } STMT_END #endif +#if defined(USE_FIXED_OSFHANDLE) || defined(PERL_MSVCRT_READFIX) +#ifdef PERL_CORE + +/* C doesn't like repeat struct definitions */ +#ifndef _CRTIMP +#define _CRTIMP __declspec(dllimport) +#endif + +/* + * Control structure for lowio file handles + */ +typedef struct { + long osfhnd; /* underlying OS file HANDLE */ + char osfile; /* attributes of file (e.g., open in text mode?) */ + char pipech; /* one char buffer for handles opened on pipes */ + int lockinitflag; + CRITICAL_SECTION lock; +} ioinfo; + + +/* + * Array of arrays of control structures for lowio files. + */ +EXTERN_C _CRTIMP ioinfo* __pioinfo[]; + +/* + * Definition of IOINFO_L2E, the log base 2 of the number of elements in each + * array of ioinfo structs. + */ +#define IOINFO_L2E 5 + +/* + * Definition of IOINFO_ARRAY_ELTS, the number of elements in ioinfo array + */ +#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) + +/* + * Access macros for getting at an ioinfo struct and its fields from a + * file handle + */ +#define _pioinfo(i) (__pioinfo[(i) >> IOINFO_L2E] + ((i) & (IOINFO_ARRAY_ELTS - 1))) +#define _osfhnd(i) (_pioinfo(i)->osfhnd) +#define _osfile(i) (_pioinfo(i)->osfile) +#define _pipech(i) (_pioinfo(i)->pipech) + +/* since we are not doing a dup2(), this works fine */ +#define _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = (long)osfh) +#endif +#endif + /* * This provides a layer of functions and macros to ensure extensions will * get to use the same RTL functions as the core. */ #include "win32iop.h" +#define EXEC_ARGV_CAST(x) ((const char *const *) x) + #endif /* _INC_WIN32_PERL5 */ diff --git a/gnu/usr.bin/perl/win32/win32iop.h b/gnu/usr.bin/perl/win32/win32iop.h index d7c2ac4f743..9b814f25531 100644 --- a/gnu/usr.bin/perl/win32/win32iop.h +++ b/gnu/usr.bin/perl/win32/win32iop.h @@ -120,10 +120,8 @@ DllExport void win32_seekdir(DIR *dirp, long loc); DllExport void win32_rewinddir(DIR *dirp); DllExport int win32_closedir(DIR *dirp); -#ifndef USE_WIN32_RTL_ENV DllExport char* win32_getenv(const char *name); DllExport int win32_putenv(const char *name); -#endif DllExport unsigned win32_sleep(unsigned int); DllExport int win32_times(struct tms *timebuf); @@ -300,12 +298,10 @@ END_EXTERN_C #undef crypt #define crypt(t,s) win32_crypt(t,s) -#ifndef USE_WIN32_RTL_ENV #undef getenv #define getenv win32_getenv #undef putenv #define putenv win32_putenv -#endif #endif /* WIN32IO_IS_STDIO */ #endif /* WIN32IOP_H */ diff --git a/gnu/usr.bin/perl/win32/win32sck.c b/gnu/usr.bin/perl/win32/win32sck.c index 93d501edefb..c1b24d5e6a4 100644 --- a/gnu/usr.bin/perl/win32/win32sck.c +++ b/gnu/usr.bin/perl/win32/win32sck.c @@ -39,12 +39,12 @@ # define TO_SOCKET(x) (x) #endif /* USE_SOCKETS_AS_HANDLES */ -#ifdef USE_THREADS +#if defined(USE_THREADS) || defined(USE_ITHREADS) #define StartSockets() \ STMT_START { \ if (!wsock_started) \ start_sockets(); \ - set_socktype(); \ + set_socktype(); \ } STMT_END #else #define StartSockets() \ @@ -56,12 +56,6 @@ } STMT_END #endif -#define EndSockets() \ - STMT_START { \ - if (wsock_started) \ - WSACleanup(); \ - } STMT_END - #define SOCKET_TEST(x, y) \ STMT_START { \ StartSockets(); \ @@ -77,6 +71,13 @@ static struct servent* win32_savecopyservent(struct servent*d, static int wsock_started = 0; +EXTERN_C void +EndSockets(void) +{ + if (wsock_started) + WSACleanup(); +} + void start_sockets(void) { @@ -103,8 +104,8 @@ void set_socktype(void) { #ifdef USE_SOCKETS_AS_HANDLES -#ifdef USE_THREADS - dTHX; +#if defined(USE_THREADS) || defined(USE_ITHREADS) + dTHXo; if (!w32_init_socktype) { #endif int iSockOpt = SO_SYNCHRONOUS_NONALERT; @@ -113,7 +114,7 @@ set_socktype(void) */ setsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE, (char *)&iSockOpt, sizeof(iSockOpt)); -#ifdef USE_THREADS +#if defined(USE_THREADS) || defined(USE_ITHREADS) w32_init_socktype = 1; } #endif @@ -142,7 +143,7 @@ my_fdopen(int fd, char *mode) /* * If we get here, then fd is actually a socket. */ - Newz(1310, fp, 1, FILE); + Newz(1310, fp, 1, FILE); /* XXX leak, good thing this code isn't used */ if(fp == NULL) { errno = ENOMEM; return NULL; @@ -421,18 +422,70 @@ win32_socket(int af, int type, int protocol) int my_fclose (FILE *pf) { - int osf, retval; + int osf; if (!wsock_started) /* No WinSock? */ return(fclose(pf)); /* Then not a socket. */ osf = TO_SOCKET(fileno(pf));/* Get it now before it's gone! */ - retval = fclose(pf); /* Must fclose() before closesocket() */ - if (osf != -1 - && closesocket(osf) == SOCKET_ERROR - && WSAGetLastError() != WSAENOTSOCK) - { - return EOF; + if (osf != -1) { + int err; + win32_fflush(pf); + err = closesocket(osf); + if (err == 0) { +#if defined(USE_FIXED_OSFHANDLE) || defined(PERL_MSVCRT_READFIX) + _set_osfhnd(fileno(pf), INVALID_HANDLE_VALUE); +#endif + (void)fclose(pf); /* handle already closed, ignore error */ + return 0; + } + else if (err == SOCKET_ERROR) { + err = WSAGetLastError(); + if (err != WSAENOTSOCK) { + (void)fclose(pf); + errno = err; + return EOF; + } + } } - return retval; + return fclose(pf); +} + +#undef fstat +int +my_fstat(int fd, struct stat *sbufptr) +{ + /* This fixes a bug in fstat() on Windows 9x. fstat() uses the + * GetFileType() win32 syscall, which will fail on Windows 9x. + * So if we recognize a socket on Windows 9x, we return the + * same results as on Windows NT/2000. + * XXX this should be extended further to set S_IFSOCK on + * sbufptr->st_mode. + */ + int osf; + if (!wsock_started || IsWinNT()) + return fstat(fd, sbufptr); + + osf = TO_SOCKET(fd); + if (osf != -1) { + char sockbuf[256]; + int optlen = sizeof(sockbuf); + int retval; + + retval = getsockopt((SOCKET)osf, SOL_SOCKET, SO_TYPE, sockbuf, &optlen); + if (retval != SOCKET_ERROR || WSAGetLastError() != WSAENOTSOCK) { +#if defined(__BORLANDC__)&&(__BORLANDC__<=0x520) + sbufptr->st_mode = S_IFIFO; +#else + sbufptr->st_mode = _S_IFIFO; +#endif + sbufptr->st_rdev = sbufptr->st_dev = (dev_t)fd; + sbufptr->st_nlink = 1; + sbufptr->st_uid = sbufptr->st_gid = sbufptr->st_ino = 0; + sbufptr->st_atime = sbufptr->st_mtime = sbufptr->st_ctime = 0; + sbufptr->st_size = (off_t)0; + return 0; + } + } + return fstat(fd, sbufptr); } struct hostent * |