summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl/perl-5.12.3
diff options
context:
space:
mode:
authorNitin A Kamble <nitin.a.kamble@intel.com>2011-04-23 19:43:17 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-04-28 10:44:22 +0100
commit829b985eb5c329772db49da9838530a639cb2638 (patch)
tree3c18883d115058c2c96c60919b5c052d21b109e6 /meta/recipes-devtools/perl/perl-5.12.3
parent3669de7f96100a5d4fbfc9b4e2ebc16851ba98ea (diff)
downloadpoky-829b985eb5c329772db49da9838530a639cb2638.tar.gz
perl: upgrade from 5.12.2 to 5.12.3
And changed the perl tarball URL to more stable cpan location. (From OE-Core rev: 3a08c401f298095840a2aee9079845f5ff434410) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/perl/perl-5.12.3')
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/09_fix_installperl.patch21
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/Configure-multilib.patch17
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/Makefile.SH.patch290
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/Makefile.patch59
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/asm-pageh-fix.patch21
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/config.sh1086
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/config.sh-3238
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/config.sh-32-be1
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/config.sh-32-le1
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/config.sh-6438
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/config.sh-64-be1
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/config.sh-64-le1
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/cross-generate_uudmap.patch15
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/arm_optim.diff34
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/arm_thread_stress_timeout.diff25
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/cpan_config_path.diff24
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/cpan_definstalldirs.diff37
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/cpanplus_config_path.diff45
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/cpanplus_definstalldirs.diff54
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/db_file_ver.diff34
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/deprecate-with-apt.diff61
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/devel-ppport-ia64-optim.diff34
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/disable-zlib-bundling.diff31
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/doc_info.diff36
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/enc2xs_inc.diff52
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/errno_ver.diff34
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/extutils_hacks.diff315
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fakeroot.diff45
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff100
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/concat-stack-corruption.diff39
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/cpanplus-without-home.diff32
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/h2ph-gcc-4.5.diff108
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/hurd-ccflags.diff28
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/lc-numeric-docs.diff97
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/lc-numeric-sprintf.diff31
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/net_smtp_docs.diff25
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/processPL.diff45
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/instmodsh_doc.diff28
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/ld_run_path.diff25
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/libnet_config_path.diff37
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/m68k_thread_stress.diff45
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/mod_paths.diff100
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/module_build_man_extensions.diff33
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/patchlevel45
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/perlivp.diff40
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/prune_libs.diff38
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/series34
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/debian/squelch-locale-warnings.diff55
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/generate-sh.patch48
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/installperl.patch17
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/letgcc-find-errno.patch46
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/native-nopacklist.patch82
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/native-perlinc.patch26
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/native-ssp.patch16
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_1.patch27
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_2.patch24
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch6585
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_4.patch57
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_5.patch430
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_6.patch158
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/perl-configpm-switch.patch45
-rwxr-xr-xmeta/recipes-devtools/perl/perl-5.12.3/perl-configure.sh43
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/perl-dynloader.patch31
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/perl-enable-gdbm.patch19
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.3/perl-moreconfig.patch18
65 files changed, 11107 insertions, 0 deletions
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/09_fix_installperl.patch b/meta/recipes-devtools/perl/perl-5.12.3/09_fix_installperl.patch
new file mode 100644
index 0000000000..a80d17c8b0
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/09_fix_installperl.patch
@@ -0,0 +1,21 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Correctly identify arch-specific modules in ext/ where the .pm files
4are under lib.
5
6Ensure that POSIX/SigAction is kept with the rest of the POSIX module
7under archlib.
8
9Index: perl-5.12.3/installperl
10===================================================================
11--- perl-5.12.3.orig/installperl
12+++ perl-5.12.3/installperl
13@@ -750,7 +750,7 @@ sub installlib {
14 }
15
16 if (-f $_) {
17- if (/\.(?:al|ix)$/ && !($dir =~ m[^auto/(.*)$])) {
18+ if (/\.(?:al|ix)$/ && !($dir =~ m[^auto/(.*)$] && $archpms{$1})) {
19 $installlib = $installprivlib;
20 #We're installing *.al and *.ix files into $installprivlib,
21 #but we have to delete old *.al and *.ix files from the 5.000
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/Configure-multilib.patch b/meta/recipes-devtools/perl/perl-5.12.3/Configure-multilib.patch
new file mode 100644
index 0000000000..ef2be3d228
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/Configure-multilib.patch
@@ -0,0 +1,17 @@
1Upstream-Status:Pending
2
3Index: perl-5.12.3/Configure
4===================================================================
5--- perl-5.12.3.orig/Configure
6+++ perl-5.12.3/Configure
7@@ -1316,8 +1316,9 @@ loclibpth="/usr/local/lib /opt/local/lib
8 loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
9
10 : general looking path for locating libraries
11-glibpth="/lib /usr/lib $xlibpth"
12+glibpth="/lib /usr/lib /lib64 /usr/lib64 $xlibpth"
13 glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
14+test -f /usr/lib/`uname -m`-linux-gnu/libc.so && glibpth="/usr/lib/`uname -m`-linux-gnu $glibpth"
15 test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
16 test -f /shlib/libc.so && glibpth="/shlib $glibpth"
17 test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/Makefile.SH.patch b/meta/recipes-devtools/perl/perl-5.12.3/Makefile.SH.patch
new file mode 100644
index 0000000000..6371a3d5ab
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/Makefile.SH.patch
@@ -0,0 +1,290 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Index: perl-5.12.3/Makefile.SH
4===================================================================
5--- perl-5.12.3.orig/Makefile.SH
6+++ perl-5.12.3/Makefile.SH
7@@ -50,12 +50,12 @@ case "$useshrplib" in
8 true)
9 # Prefix all runs of 'miniperl' and 'perl' with
10 # $ldlibpth so that ./perl finds *this* shared libperl.
11- case "$LD_LIBRARY_PATH" in
12- '')
13- ldlibpth="LD_LIBRARY_PATH=`pwd`";;
14- *)
15- ldlibpth="LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}";;
16- esac
17+# case "$LD_LIBRARY_PATH" in
18+# '')
19+# ldlibpth="LD_LIBRARY_PATH=`pwd`";;
20+# *)
21+# ldlibpth="LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}";;
22+# esac
23
24 pldlflags="$cccdlflags"
25 static_ldflags=''
26@@ -133,7 +133,8 @@ true)
27 ldlibpth=''
28 ;;
29 *)
30- eval "ldlibpth=\"$ldlibpthname=`pwd`:\$$ldlibpthname\""
31+# We compile in the library path in OE from cross-compile, so lets not do this
32+# eval "ldlibpth=\"$ldlibpthname=`pwd`:\$$ldlibpthname\""
33 ;;
34 esac
35 # Strip off any trailing :'s
36@@ -154,18 +155,7 @@ true)
37 # INSTALL file, under "Building a shared perl library".
38 # If there is no pre-existing $libperl, we don't need
39 # to do anything further.
40- if test -f $archlib/CORE/$libperl; then
41- rm -f preload
42- cat <<'EOT' > preload
43-#! /bin/sh
44-lib=$1
45-shift
46-test -r $lib && export LD_PRELOAD="$lib $LD_PRELOAD"
47-exec "$@"
48-EOT
49- chmod 755 preload
50- ldlibpth="$ldlibpth `pwd`/preload `pwd`/$libperl"
51- fi
52+ echo linux libraries overwritten by cross-compile patches
53 ;;
54 os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth"
55 ;;
56@@ -557,9 +547,19 @@ splintfiles = $(c1)
57 .c.s:
58 $(CCCMDSRC) -S $*.c
59
60-all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
61- @echo " ";
62- @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
63+#all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
64+# @echo " ";
65+# @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
66+
67+all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) miniperl $(unidatafiles)
68+
69+more: $(generated_pods) $(private) $(public)
70+
71+more2: $(dynamic_ext)
72+
73+more3: $(nonxs_ext)
74+
75+more4: extras.make
76
77 .PHONY: all translators utilities
78
79@@ -567,16 +567,16 @@ all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(
80 # by make_patchnum.pl.
81 git_version.h: lib/Config_git.pl
82
83-lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl
84+lib/Config_git.pl: make_patchnum.pl
85 $(MINIPERL) make_patchnum.pl
86
87 # make sure that we recompile perl.c if the git version changes
88 perl$(OBJ_EXT): git_version.h
89
90-translators: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) FORCE
91+translators: $(CONFIGPM) $(dynamic_ext) FORCE
92 @echo " "; echo " Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all
93
94-utilities: $(MINIPERL_EXE) $(CONFIGPM) $(plextract) FORCE
95+utilities: $(CONFIGPM) $(plextract) FORCE
96 @echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all
97
98
99@@ -754,7 +754,7 @@ $(LIBPERL): $& $(obj) $(DYNALOADER) $(LI
100 true)
101 $spitshell >>$Makefile <<'!NO!SUBS!'
102 rm -f $@
103- $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs)
104+ $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs) -Wl,-soname,libperl.so.5
105 !NO!SUBS!
106 case "$osname" in
107 aix)
108@@ -795,7 +795,9 @@ $(MINIPERL_EXE): $& miniperlmain$(OBJ_EX
109 $(CC) -o $(MINIPERL_EXE) $(CLDFLAGS) \
110 $(mini_obj) \
111 miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
112- $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
113+ mv -f miniperl miniperl-target
114+ ln -s hostperl miniperl
115+# $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
116 !NO!SUBS!
117 ;;
118 next4*)
119@@ -803,7 +805,9 @@ $(MINIPERL_EXE): $& miniperlmain$(OBJ_EX
120 $(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) perlmini$(OBJ_EXT) opmini$(OBJ_EXT)
121 $(CC) -o $(MINIPERL_EXE) $(mini_obj) \
122 miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
123- $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
124+ mv -f miniperl miniperl-target
125+ ln -s hostperl miniperl
126+# $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
127 !NO!SUBS!
128 ;;
129 darwin*)
130@@ -825,7 +829,9 @@ $(MINIPERL_EXE): $& miniperlmain$(OBJ_EX
131 $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \
132 $(mini_obj) \
133 miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
134- $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
135+ mv -f miniperl miniperl-target
136+ ln -s hostperl miniperl
137+# $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
138 !NO!SUBS!
139 ;;
140 *)
141@@ -835,7 +841,10 @@ $(MINIPERL_EXE): $& miniperlmain$(OBJ_EX
142 $(LDLIBPTH) $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
143 $(mini_obj) \
144 miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs)
145- $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
146+
147+ mv -f miniperl miniperl-target
148+ ln -s hostperl miniperl
149+# $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
150 !NO!SUBS!
151 ;;
152 esac
153@@ -957,7 +966,7 @@ case "${osname}" in
154 catamount)
155 $spitshell >>$Makefile <<!GROK!THIS!
156 .PHONY: makeppport
157-makeppport: \$(MINIPERL_EXE) \$(CONFIGPM)
158+makeppport: \$(CONFIGPM)
159 -@for f in Makefile.PL PPPort_pm.PL PPPort_xs.PL ppport_h.PL; do \
160 (cd ext/Devel-PPPort && `pwd`/run.sh ../../$(MINIPERL_EXE) -I../../lib \$\$f); \
161 done
162@@ -967,7 +976,7 @@ makeppport: \$(MINIPERL_EXE) \$(CONFIGPM
163 *)
164 $spitshell >>$Makefile <<'!NO!SUBS!'
165 .PHONY: makeppport
166-makeppport: $(MINIPERL_EXE) $(CONFIGPM) $(nonxs_ext)
167+makeppport: $(CONFIGPM) $(nonxs_ext)
168 $(MINIPERL) $(Icwd) mkppport
169
170 !NO!SUBS!
171@@ -977,29 +986,29 @@ esac
172 $spitshell >>$Makefile <<'!NO!SUBS!'
173
174 .PHONY: preplibrary
175-preplibrary: $(MINIPERL_EXE) $(CONFIGPM) $(PREPLIBRARY_LIBPERL)
176+preplibrary: $(CONFIGPM) $(PREPLIBRARY_LIBPERL)
177
178 $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD)
179
180-$(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git.pl
181+$(CONFIGPOD): config.sh configpm Porting/Glossary lib/Config_git.pl
182 $(MINIPERL) configpm
183
184-lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM)
185+lib/ExtUtils/Miniperl.pm: miniperlmain.c minimod.pl $(CONFIGPM)
186 $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm
187
188-$(plextract): $(MINIPERL_EXE) $(CONFIGPM) x2p/s2p $(dynamic_ext)
189+$(plextract): $(CONFIGPM) x2p/s2p $(dynamic_ext)
190 @-rm -f $@
191 $(MINIPERL) $@.PL
192
193-x2p/s2p: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL
194+x2p/s2p: $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL
195 cd x2p; $(LDLIBPTH) $(MAKE) s2p
196
197-lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl
198+lib/buildcustomize.pl: write_buildcustomize.pl
199 $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl
200
201 unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data
202
203-uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
204+uni.data: $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
205 $(MINIPERL) $(Icwd) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p
206 # Commented out so always runs, mktables looks at far more files than we
207 # can in this makefile to decide if needs to run or not
208@@ -1008,21 +1017,21 @@ uni.data: $(MINIPERL_EXE) $(CONFIGPM) li
209 # $(PERL_EXE) and ext because buildtoc uses Text::Wrap uses re
210 # But also this ensures that all extensions are built before we try to scan
211 # them, which picks up Devel::PPPort's documentation.
212-pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) pod/buildtoc
213- $(RUN_PERL) -f -Ilib pod/buildtoc --build-toc -q
214+pod/perltoc.pod: $(perltoc_pod_prereqs) $(ext) pod/buildtoc
215+ $(MINIPERL) -f -Ilib pod/buildtoc --build-toc -q
216
217 pod/perlapi.pod: pod/perlintern.pod
218
219-pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
220+pod/perlintern.pod: autodoc.pl embed.fnc
221 $(MINIPERL) autodoc.pl
222
223-pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
224+pod/perlmodlib.pod: pod/perlmodlib.PL MANIFEST
225 $(MINIPERL) $(Icwd) pod/perlmodlib.PL -q
226
227 pod/perldelta.pod: pod/perl5123delta.pod
228 $(LNS) perl5123delta.pod pod/perldelta.pod
229
230-extra.pods: $(MINIPERL_EXE)
231+extra.pods:
232 -@test ! -f extra.pods || rm -f `cat extra.pods`
233 -@rm -f extra.pods
234 -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \
235@@ -1065,11 +1074,7 @@ no-install:
236 INSTALL_DEPENDENCE = all
237
238 install.perl: $(INSTALL_DEPENDENCE) installperl
239- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
240- -@test ! -s extras.lst || $(MAKE) extras.install
241-
242-install.man: all installman
243- $(RUN_PERL) installman --destdir=$(DESTDIR) $(INSTALLFLAGS)
244+ ./hostperl -Ifake_config_library -Ilib -MConfig installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
245
246 # XXX Experimental. Hardwired values, but useful for testing.
247 # Eventually Configure could ask for some of these values.
248@@ -1166,16 +1171,16 @@ manicheck: FORCE
249 #
250 # DynaLoader may be needed for extensions that use Makefile.PL.
251
252-$(DYNALOADER): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext)
253+$(DYNALOADER): lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext)
254 $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
255
256-d_dummy $(dynamic_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT)
257+d_dummy $(dynamic_ext): lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT)
258 $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
259
260-s_dummy $(static_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE
261+s_dummy $(static_ext): lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE
262 $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
263
264-n_dummy $(nonxs_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE
265+n_dummy $(nonxs_ext): lib/buildcustomize.pl preplibrary FORCE
266 $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
267 !NO!SUBS!
268
269@@ -1373,10 +1378,10 @@ _test:
270
271 test_prep_pre: preplibrary utilities $(nonxs_ext)
272
273-test_prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) $(dynamic_ext) $(TEST_PERL_DLL) runtests
274+test_prep: test_prep_pre $(unidatafiles) $(PERL_EXE) $(dynamic_ext) $(TEST_PERL_DLL) runtests
275 cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
276
277-test_prep_reonly: $(MINIPERL_EXE) $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL)
278+test_prep_reonly: $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL)
279 $(MINIPERL) make_ext.pl $(dynamic_ext_re) MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
280 cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
281
282@@ -1467,7 +1472,7 @@ minitest.prep:
283
284 # Can't depend on lib/Config.pm because that might be where miniperl
285 # is crashing.
286-minitest: $(MINIPERL_EXE) minitest.prep
287+minitest: minitest.prep
288 - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
289 && $(RUN_PERL) TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
290
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/Makefile.patch b/meta/recipes-devtools/perl/perl-5.12.3/Makefile.patch
new file mode 100644
index 0000000000..8a279a5262
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/Makefile.patch
@@ -0,0 +1,59 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Index: perl-5.12.3/Cross/Makefile
4===================================================================
5--- perl-5.12.3.orig/Cross/Makefile
6+++ perl-5.12.3/Cross/Makefile
7@@ -2,7 +2,8 @@
8 #
9 ## $Id: Makefile,v 1.5 2003/12/12 00:48:19 red Exp red $
10
11-export TOPDIR=${shell pwd}
12+override TOPDIR=${shell pwd}
13+export TOPDIR
14 include $(TOPDIR)/config
15 export CFLAGS
16 export SYS=$(ARCH)-$(OS)
17@@ -12,7 +13,7 @@ export OPTIMIZATION = -O2
18
19 export CC = $(CROSS)gcc
20 export CXX = $(CROSS)g++
21-export LD = $(CROSS)ld
22+export LD = $(CC)
23 export STRIP = $(CROSS)strip
24 export AR = $(CROSS)ar
25 export RANLIB = $(CROSS)ranlib
26@@ -34,17 +35,6 @@ CFLAGS+=$(FULL_OPTIMIZATION)
27 all:
28 @echo Please read the README file before doing anything else.
29
30-gen_patch:
31- diff -Bbur ../Makefile.SH Makefile.SH > Makefile.SH.patch
32- diff -Bbur ../installperl installperl > installperl.patch
33-
34-patch:
35- cd .. ; if [ ! -e ./CROSS_PATCHED ] ; then \
36- patch -p1 < Cross/Makefile.SH.patch; \
37- patch -p1 < Cross/installperl.patch ; mv installperl installperl-patched; \
38- sed -e 's/XXSTRIPXX/$(SYS)/' installperl-patched > installperl; \
39- touch CROSS_PATCHED ; fi
40-
41 perl:
42 @echo Perl cross-build directory is $(TOPDIR)
43 @echo Target arch is $(SYS)
44@@ -54,11 +44,11 @@ perl:
45 $(TOPDIR)/generate_config_sh config.sh-$(SYS) > $(TOPDIR)/../config.sh
46 cd $(TOPDIR)/.. ; ./Configure -S ; make depend ; make ; make more
47 cd $(TOPDIR)/.. ; mkdir -p fake_config_library ; cp lib/Config.pm lib/Config_heavy.pl fake_config_library
48- cd $(TOPDIR)/.. ; $(MAKE) more2 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig"
49- cd $(TOPDIR)/.. ; $(MAKE) more3 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig"
50- cd $(TOPDIR)/.. ; $(MAKE) more4 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig"
51+ cd $(TOPDIR)/.. ; $(MAKE) more2 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig"
52+ cd $(TOPDIR)/.. ; $(MAKE) more3 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig"
53+ cd $(TOPDIR)/.. ; $(MAKE) more4 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig"
54 cd $(TOPDIR)/.. ; rm -rf install_me_here
55- cd $(TOPDIR)/.. ; make install-strip
56+# cd $(TOPDIR)/.. ; make install-strip
57 cd $(TOPDIR)/.. ; sh -x Cross/warp
58
59
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/asm-pageh-fix.patch b/meta/recipes-devtools/perl/perl-5.12.3/asm-pageh-fix.patch
new file mode 100644
index 0000000000..c65b1a1fe3
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/asm-pageh-fix.patch
@@ -0,0 +1,21 @@
1Upstream-Status:Pending
2
3Perl inclues asm/page.h in order to get the definition for getpagesize which
4has been definied in unistd.h since glibc 2.1. Some recent version of linux
5libc headers removed the asm/page.h resulting in failures here for some
6people.
7
8Index: perl-5.12.3/cpan/IPC-SysV/SysV.xs
9===================================================================
10--- perl-5.12.3.orig/cpan/IPC-SysV/SysV.xs 2001-07-01 04:46:07.000000000 +1000
11+++ perl-5.12.3/cpan/IPC-SysV/SysV.xs 2001-07-01 04:46:07.000000000 +1000
12@@ -3,9 +3,6 @@
13 #include "XSUB.h"
14
15 #include <sys/types.h>
16-#ifdef __linux__
17-# include <asm/page.h>
18-#endif
19 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
20 #ifndef HAS_SEM
21 # include <sys/ipc.h>
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/config.sh b/meta/recipes-devtools/perl/perl-5.12.3/config.sh
new file mode 100644
index 0000000000..f1c5001bfb
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/config.sh
@@ -0,0 +1,1086 @@
1#!/bin/sh
2#
3# This file was produced by running the Configure script. It holds all the
4# definitions figured out by Configure. Should you modify one of these values,
5# do not forget to propagate your changes by running "Configure -der". You may
6# instead choose to run each of the .SH files by yourself, or "Configure -S".
7#
8
9# Package name : perl5
10# Source directory : .
11# Configuration time: Thu Dec 23 03:57:51 UTC 2010
12# Configured by : Open Embedded
13# Target system : linux qemux86 2.6.37-rc5-yocto-standard+ #1 preempt mon dec 20 14:21:27 pst 2010 i686 gnulinux
14
15: Configure command line arguments.
16config_arg0='Configure'
17config_args='-des -Doptimize=-O2 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Open Embedded -Dinstallprefix=@DESTDIR@ -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.12.3 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Ud_dosuid -Dd_semctl_semun -Ui_db -Ui_ndbm -Ui_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr'
18config_argc=28
19config_arg1='-des'
20config_arg2='-Doptimize=-O2'
21config_arg3='-Dmyhostname=localhost'
22config_arg4='-Dperladmin=root@localhost'
23config_arg5='-Dcc=gcc'
24config_arg6='-Dcf_by=Open Embedded'
25config_arg7='-Dinstallprefix=@DESTDIR@'
26config_arg8='-Dprefix=/usr'
27config_arg9='-Dvendorprefix=/usr'
28config_arg10='-Dsiteprefix=/usr'
29config_arg11='-Dotherlibdirs=/usr/lib/perl5/5.12.3'
30config_arg12='-Duseshrplib'
31config_arg13='-Dusethreads'
32config_arg14='-Duseithreads'
33config_arg15='-Duselargefiles'
34config_arg16='-Ud_dosuid'
35config_arg17='-Dd_semctl_semun'
36config_arg18='-Ui_db'
37config_arg19='-Ui_ndbm'
38config_arg20='-Ui_gdbm'
39config_arg21='-Di_shadow'
40config_arg22='-Di_syslog'
41config_arg23='-Dman3ext=3pm'
42config_arg24='-Duseperlio'
43config_arg25='-Dinstallusrbinperl'
44config_arg26='-Ubincompat5005'
45config_arg27='-Uversiononly'
46config_arg28='-Dpager=/usr/bin/less -isr'
47
48Author=''
49Date='$Date'
50Header=''
51Id='$Id'
52Locker=''
53Log='$Log'
54RCSfile='$RCSfile'
55Revision='$Revision'
56Source=''
57State=''
58_a='.a'
59_exe=''
60_o='.o'
61afs='false'
62afsroot='/afs'
63ansi2knr=''
64aphostname=''
65api_revision='5'
66api_subversion='0'
67api_version='12'
68api_versionstring='5.12.0'
69ar='ar'
70archlib='/usr/lib/perl5/5.12.3/@ARCH@-thread-multi'
71archlibexp='/usr/lib/perl5/5.12.3/@ARCH@-thread-multi'
72archname64=''
73archname='@ARCH@-thread-multi'
74archobjs=''
75asctime_r_proto='REENTRANT_PROTO_B_SB'
76awk='awk'
77baserev='5.0'
78bash=''
79bin='/usr/bin'
80bin_ELF='define'
81binexp='/usr/bin'
82bison='bison'
83byacc='byacc'
84c=''
85castflags='0'
86cat='cat'
87cc='gcc'
88cccdlflags='-fPIC'
89ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.12.3/@ARCH@-thread-multi/CORE'
90ccflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
91ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
92ccname='gcc'
93ccsymbols=''
94ccversion=''
95cf_by='Open Embedded'
96cf_email='Open Embedded@localhost.localdomain'
97charbits='8'
98charsize='1'
99chgrp=''
100chmod='chmod'
101chown=''
102clocktype='clock_t'
103comm='comm'
104compress=''
105contains='grep'
106cp='cp'
107cpio=''
108cpp='cpp'
109cpp_stuff='42'
110cppccsymbols=''
111cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector'
112cpplast='-'
113cppminus='-'
114cpprun='gcc -E'
115cppstdin='gcc -E'
116crypt_r_proto='REENTRANT_PROTO_B_CCS'
117cryptlib=''
118csh='csh'
119ctermid_r_proto='0'
120ctime_r_proto='REENTRANT_PROTO_B_SB'
121d_Gconvert='gcvt((x),(n),(b))'
122d_PRIEUldbl='define'
123d_PRIFUldbl='define'
124d_PRIGUldbl='define'
125d_PRIXU64='define'
126d_PRId64='define'
127d_PRIeldbl='define'
128d_PRIfldbl='define'
129d_PRIgldbl='define'
130d_PRIi64='define'
131d_PRIo64='define'
132d_PRIu64='define'
133d_PRIx64='define'
134d_SCNfldbl='define'
135d__fwalk='undef'
136d_access='define'
137d_accessx='undef'
138d_aintl='undef'
139d_alarm='define'
140d_archlib='define'
141d_asctime64='undef'
142d_asctime_r='define'
143d_atolf='undef'
144d_atoll='define'
145d_attribute_deprecated='define'
146d_attribute_format='define'
147d_attribute_malloc='define'
148d_attribute_nonnull='define'
149d_attribute_noreturn='define'
150d_attribute_pure='define'
151d_attribute_unused='define'
152d_attribute_warn_unused_result='define'
153d_bcmp='define'
154d_bcopy='define'
155d_bsd='undef'
156d_bsdgetpgrp='undef'
157d_bsdsetpgrp='undef'
158d_builtin_choose_expr='define'
159d_builtin_expect='define'
160d_bzero='define'
161d_c99_variadic_macros='define'
162d_casti32='undef'
163d_castneg='define'
164d_charvspr='undef'
165d_chown='define'
166d_chroot='define'
167d_chsize='undef'
168d_class='undef'
169d_clearenv='define'
170d_closedir='define'
171d_cmsghdr_s='define'
172d_const='define'
173d_copysignl='define'
174d_cplusplus='undef'
175d_crypt='define'
176d_crypt_r='define'
177d_csh='undef'
178d_ctermid='define'
179d_ctermid_r='undef'
180d_ctime64='undef'
181d_ctime_r='define'
182d_cuserid='define'
183d_dbl_dig='define'
184d_dbminitproto='undef'
185d_difftime64='undef'
186d_difftime='define'
187d_dir_dd_fd='undef'
188d_dirfd='define'
189d_dirnamlen='undef'
190d_dlerror='define'
191d_dlopen='define'
192d_dlsymun='undef'
193d_dosuid='undef'
194d_drand48_r='define'
195d_drand48proto='define'
196d_dup2='define'
197d_eaccess='define'
198d_endgrent='define'
199d_endgrent_r='undef'
200d_endhent='define'
201d_endhostent_r='undef'
202d_endnent='define'
203d_endnetent_r='undef'
204d_endpent='define'
205d_endprotoent_r='undef'
206d_endpwent='define'
207d_endpwent_r='undef'
208d_endsent='define'
209d_endservent_r='undef'
210d_eofnblk='define'
211d_eunice='undef'
212d_faststdio='define'
213d_fchdir='define'
214d_fchmod='define'
215d_fchown='define'
216d_fcntl='define'
217d_fcntl_can_lock='define'
218d_fd_macros='define'
219d_fd_set='define'
220d_fds_bits='define'
221d_fgetpos='define'
222d_finite='define'
223d_finitel='define'
224d_flexfnam='define'
225d_flock='define'
226d_flockproto='define'
227d_fork='define'
228d_fp_class='undef'
229d_fpathconf='define'
230d_fpclass='undef'
231d_fpclassify='undef'
232d_fpclassl='undef'
233d_fpos64_t='undef'
234d_frexpl='define'
235d_fs_data_s='undef'
236d_fseeko='define'
237d_fsetpos='define'
238d_fstatfs='define'
239d_fstatvfs='define'
240d_fsync='define'
241d_ftello='define'
242d_ftime='undef'
243d_futimes='define'
244d_gdbm_ndbm_h_uses_prototypes='undef'
245d_gdbmndbm_h_uses_prototypes='undef'
246d_getaddrinfo='define'
247d_getcwd='define'
248d_getespwnam='undef'
249d_getfsstat='undef'
250d_getgrent='define'
251d_getgrent_r='define'
252d_getgrgid_r='define'
253d_getgrnam_r='define'
254d_getgrps='define'
255d_gethbyaddr='define'
256d_gethbyname='define'
257d_gethent='define'
258d_gethname='define'
259d_gethostbyaddr_r='define'
260d_gethostbyname_r='define'
261d_gethostent_r='define'
262d_gethostprotos='define'
263d_getitimer='define'
264d_getlogin='define'
265d_getlogin_r='define'
266d_getmnt='undef'
267d_getmntent='define'
268d_getnameinfo='define'
269d_getnbyaddr='define'
270d_getnbyname='define'
271d_getnent='define'
272d_getnetbyaddr_r='define'
273d_getnetbyname_r='define'
274d_getnetent_r='define'
275d_getnetprotos='define'
276d_getpagsz='define'
277d_getpbyname='define'
278d_getpbynumber='define'
279d_getpent='define'
280d_getpgid='define'
281d_getpgrp2='undef'
282d_getpgrp='define'
283d_getppid='define'
284d_getprior='define'
285d_getprotobyname_r='define'
286d_getprotobynumber_r='define'
287d_getprotoent_r='define'
288d_getprotoprotos='define'
289d_getprpwnam='undef'
290d_getpwent='define'
291d_getpwent_r='define'
292d_getpwnam_r='define'
293d_getpwuid_r='define'
294d_getsbyname='define'
295d_getsbyport='define'
296d_getsent='define'
297d_getservbyname_r='define'
298d_getservbyport_r='define'
299d_getservent_r='define'
300d_getservprotos='define'
301d_getspnam='define'
302d_getspnam_r='define'
303d_gettimeod='define'
304d_gmtime64='undef'
305d_gmtime_r='define'
306d_gnulibc='define'
307d_grpasswd='define'
308d_hasmntopt='define'
309d_htonl='define'
310d_ilogbl='define'
311d_inc_version_list='undef'
312d_index='undef'
313d_inetaton='define'
314d_inetntop='define'
315d_inetpton='define'
316d_int64_t='define'
317d_isascii='define'
318d_isfinite='undef'
319d_isinf='define'
320d_isnan='define'
321d_isnanl='define'
322d_killpg='define'
323d_lchown='define'
324d_ldbl_dig='define'
325d_libm_lib_version='define'
326d_link='define'
327d_localtime64='undef'
328d_localtime_r='define'
329d_localtime_r_needs_tzset='define'
330d_locconv='define'
331d_lockf='define'
332d_longdbl='define'
333d_longlong='define'
334d_lseekproto='define'
335d_lstat='define'
336d_madvise='define'
337d_malloc_good_size='undef'
338d_malloc_size='undef'
339d_mblen='define'
340d_mbstowcs='define'
341d_mbtowc='define'
342d_memchr='define'
343d_memcmp='define'
344d_memcpy='define'
345d_memmove='define'
346d_memset='define'
347d_mkdir='define'
348d_mkdtemp='define'
349d_mkfifo='define'
350d_mkstemp='define'
351d_mkstemps='define'
352d_mktime64='undef'
353d_mktime='define'
354d_mmap='define'
355d_modfl='define'
356d_modfl_pow32_bug='undef'
357d_modflproto='define'
358d_mprotect='define'
359d_msg='define'
360d_msg_ctrunc='define'
361d_msg_dontroute='define'
362d_msg_oob='define'
363d_msg_peek='define'
364d_msg_proxy='define'
365d_msgctl='define'
366d_msgget='define'
367d_msghdr_s='define'
368d_msgrcv='define'
369d_msgsnd='define'
370d_msync='define'
371d_munmap='define'
372d_mymalloc='undef'
373d_ndbm='undef'
374d_ndbm_h_uses_prototypes='undef'
375d_nice='define'
376d_nl_langinfo='define'
377d_nv_zero_is_allbits_zero='define'
378d_off64_t='define'
379d_old_pthread_create_joinable='undef'
380d_oldpthreads='undef'
381d_oldsock='undef'
382d_open3='define'
383d_pathconf='define'
384d_pause='define'
385d_perl_otherlibdirs='define'
386d_phostname='undef'
387d_pipe='define'
388d_poll='define'
389d_portable='define'
390d_procselfexe='define'
391d_pseudofork='undef'
392d_pthread_atfork='define'
393d_pthread_attr_setscope='define'
394d_pthread_yield='define'
395d_pwage='undef'
396d_pwchange='undef'
397d_pwclass='undef'
398d_pwcomment='undef'
399d_pwexpire='undef'
400d_pwgecos='define'
401d_pwpasswd='define'
402d_pwquota='undef'
403d_qgcvt='define'
404d_quad='define'
405d_random_r='define'
406d_readdir64_r='define'
407d_readdir='define'
408d_readdir_r='define'
409d_readlink='define'
410d_readv='define'
411d_recvmsg='define'
412d_rename='define'
413d_rewinddir='define'
414d_rmdir='define'
415d_safebcpy='undef'
416d_safemcpy='undef'
417d_sanemcmp='define'
418d_sbrkproto='define'
419d_scalbnl='define'
420d_sched_yield='define'
421d_scm_rights='define'
422d_seekdir='define'
423d_select='define'
424d_sem='define'
425d_semctl='define'
426d_semctl_semid_ds='define'
427d_semctl_semun='define'
428d_semget='define'
429d_semop='define'
430d_sendmsg='define'
431d_setegid='define'
432d_seteuid='define'
433d_setgrent='define'
434d_setgrent_r='undef'
435d_setgrps='define'
436d_sethent='define'
437d_sethostent_r='undef'
438d_setitimer='define'
439d_setlinebuf='define'
440d_setlocale='define'
441d_setlocale_r='undef'
442d_setnent='define'
443d_setnetent_r='undef'
444d_setpent='define'
445d_setpgid='define'
446d_setpgrp2='undef'
447d_setpgrp='define'
448d_setprior='define'
449d_setproctitle='undef'
450d_setprotoent_r='undef'
451d_setpwent='define'
452d_setpwent_r='undef'
453d_setregid='define'
454d_setresgid='define'
455d_setresuid='define'
456d_setreuid='define'
457d_setrgid='undef'
458d_setruid='undef'
459d_setsent='define'
460d_setservent_r='undef'
461d_setsid='define'
462d_setvbuf='define'
463d_sfio='undef'
464d_shm='define'
465d_shmat='define'
466d_shmatprototype='define'
467d_shmctl='define'
468d_shmdt='define'
469d_shmget='define'
470d_sigaction='define'
471d_signbit='define'
472d_sigprocmask='define'
473d_sigsetjmp='define'
474d_sitearch='define'
475d_snprintf='define'
476d_sockatmark='define'
477d_sockatmarkproto='define'
478d_socket='define'
479d_socklen_t='define'
480d_sockpair='define'
481d_socks5_init='undef'
482d_sprintf_returns_strlen='define'
483d_sqrtl='define'
484d_srand48_r='define'
485d_srandom_r='define'
486d_sresgproto='define'
487d_sresuproto='define'
488d_statblks='define'
489d_statfs_f_flags='undef'
490d_statfs_s='define'
491d_statvfs='define'
492d_stdio_cnt_lval='undef'
493d_stdio_ptr_lval='define'
494d_stdio_ptr_lval_nochange_cnt='undef'
495d_stdio_ptr_lval_sets_cnt='define'
496d_stdio_stream_array='undef'
497d_stdiobase='define'
498d_stdstdio='define'
499d_strchr='define'
500d_strcoll='define'
501d_strctcpy='define'
502d_strerrm='strerror(e)'
503d_strerror='define'
504d_strerror_r='define'
505d_strftime='define'
506d_strlcat='undef'
507d_strlcpy='undef'
508d_strtod='define'
509d_strtol='define'
510d_strtold='define'
511d_strtoll='define'
512d_strtoq='define'
513d_strtoul='define'
514d_strtoull='define'
515d_strtouq='define'
516d_strxfrm='define'
517d_suidsafe='undef'
518d_symlink='define'
519d_syscall='define'
520d_syscallproto='define'
521d_sysconf='define'
522d_sysernlst=''
523d_syserrlst='define'
524d_system='define'
525d_tcgetpgrp='define'
526d_tcsetpgrp='define'
527d_telldir='define'
528d_telldirproto='define'
529d_time='define'
530d_timegm='define'
531d_times='define'
532d_tm_tm_gmtoff='define'
533d_tm_tm_zone='define'
534d_tmpnam_r='define'
535d_truncate='define'
536d_ttyname_r='define'
537d_tzname='define'
538d_ualarm='define'
539d_umask='define'
540d_uname='define'
541d_union_semun='undef'
542d_unordered='undef'
543d_unsetenv='define'
544d_usleep='define'
545d_usleepproto='define'
546d_ustat='define'
547d_vendorarch='define'
548d_vendorbin='define'
549d_vendorlib='define'
550d_vendorscript='define'
551d_vfork='undef'
552d_void_closedir='undef'
553d_voidsig='define'
554d_voidtty=''
555d_volatile='define'
556d_vprintf='define'
557d_vsnprintf='define'
558d_wait4='define'
559d_waitpid='define'
560d_wcstombs='define'
561d_wctomb='define'
562d_writev='define'
563d_xenix='undef'
564date='date'
565db_hashtype='u_int32_t'
566db_prefixtype='size_t'
567db_version_major=''
568db_version_minor=''
569db_version_patch=''
570defvoidused='15'
571direntrytype='struct dirent'
572dlext='so'
573dlsrc='dl_dlopen.xs'
574doublesize='8'
575drand01='drand48()'
576drand48_r_proto='REENTRANT_PROTO_I_ST'
577dtrace=''
578dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via GDBM_File SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/APItest/KeywordRPN XS/Typemap attributes mro re threads threads/shared'
579eagain='EAGAIN'
580ebcdic='undef'
581echo='echo'
582egrep='egrep'
583emacs=''
584endgrent_r_proto='0'
585endhostent_r_proto='0'
586endnetent_r_proto='0'
587endprotoent_r_proto='0'
588endpwent_r_proto='0'
589endservent_r_proto='0'
590eunicefix=':'
591exe_ext=''
592expr='expr'
593extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via GDBM_File SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/APItest/KeywordRPN XS/Typemap attributes mro re threads threads/shared Archive/Extract Archive/Tar Attribute/Handlers AutoLoader B/Debug B/Deparse B/Lint CGI CPAN CPANPLUS CPANPLUS/Dist/Build Class/ISA Devel/SelfStubber Digest Errno ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/ParseXS File/Fetch File/Path File/Temp FileCache Filter/Simple Getopt/Long I18N/LangTags IO/Compress IO/Zlib IPC/Cmd IPC/Open2 IPC/Open3 Locale/Codes Locale/Maketext Locale/Maketext/Simple Log/Message Log/Message/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Pluggable NEXT Net/Ping Object/Accessor Package/Constants Params/Check Parse/CPAN/Meta PerlIO/via/QuotedPrint Pod/Escapes Pod/LaTeX Pod/Parser Pod/Perldoc Pod/Plainer Pod/Simple Safe SelfLoader Shell Switch Term/ANSIColor Term/Cap Term/UI Test Test/Harness Test/Simple Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local Unicode/Collate XSLoader autodie autouse base bignum constant encoding/warnings if lib libnet parent podlators'
594extern_C='extern'
595extras=''
596fflushNULL='define'
597fflushall='undef'
598find=''
599firstmakefile='makefile'
600flex=''
601fpossize='16'
602fpostype='fpos_t'
603freetype='void'
604from=':'
605full_ar='/usr/bin/ar'
606full_csh='csh'
607full_sed='/bin/sed'
608gccansipedantic=''
609gccosandvers=''
610gccversion='4.5.1'
611getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
612getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
613getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
614gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
615gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
616gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
617getlogin_r_proto='REENTRANT_PROTO_I_BW'
618getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
619getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
620getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
621getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
622getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
623getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
624getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
625getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
626getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
627getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
628getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
629getservent_r_proto='REENTRANT_PROTO_I_SBWR'
630getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
631gidsign='1'
632gidsize='4'
633gidtype='gid_t'
634glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
635gmake='gmake'
636gmtime_r_proto='REENTRANT_PROTO_S_TS'
637gnulibc_version='2.12.1'
638grep='grep'
639groupcat='cat /etc/group'
640groupstype='gid_t'
641gzip='gzip'
642h_fcntl='false'
643h_sysfile='true'
644hint='recommended'
645hostcat='cat /etc/hosts'
646html1dir=' '
647html1direxp=''
648html3dir=' '
649html3direxp=''
650i16size='2'
651i16type='short'
652i32size='4'
653i64size='8'
654i8size='1'
655i8type='signed char'
656i_arpainet='define'
657i_assert='define'
658i_bsdioctl=''
659i_crypt='define'
660i_db='undef'
661i_dbm='undef'
662i_dirent='define'
663i_dld='undef'
664i_dlfcn='define'
665i_fcntl='undef'
666i_float='define'
667i_fp='undef'
668i_fp_class='undef'
669i_gdbm='undef'
670i_gdbm_ndbm='undef'
671i_gdbmndbm='undef'
672i_grp='define'
673i_ieeefp='undef'
674i_inttypes='define'
675i_langinfo='define'
676i_libutil='undef'
677i_limits='define'
678i_locale='define'
679i_machcthr='undef'
680i_malloc='define'
681i_mallocmalloc='undef'
682i_math='define'
683i_memory='undef'
684i_mntent='define'
685i_ndbm='undef'
686i_netdb='define'
687i_neterrno='undef'
688i_netinettcp='define'
689i_niin='define'
690i_poll='define'
691i_prot='undef'
692i_pthread='define'
693i_pwd='define'
694i_rpcsvcdbm='undef'
695i_sfio='undef'
696i_sgtty='undef'
697i_shadow='define'
698i_socks='undef'
699i_stdarg='define'
700i_stddef='define'
701i_stdlib='define'
702i_string='define'
703i_sunmath='undef'
704i_sysaccess='undef'
705i_sysdir='define'
706i_sysfile='define'
707i_sysfilio='undef'
708i_sysin='undef'
709i_sysioctl='define'
710i_syslog='define'
711i_sysmman='define'
712i_sysmode='undef'
713i_sysmount='define'
714i_sysndir='undef'
715i_sysparam='define'
716i_syspoll='define'
717i_sysresrc='define'
718i_syssecrt='undef'
719i_sysselct='define'
720i_syssockio='undef'
721i_sysstat='define'
722i_sysstatfs='define'
723i_sysstatvfs='define'
724i_systime='define'
725i_systimek='undef'
726i_systimes='define'
727i_systypes='define'
728i_sysuio='define'
729i_sysun='define'
730i_sysutsname='define'
731i_sysvfs='define'
732i_syswait='define'
733i_termio='undef'
734i_termios='define'
735i_time='define'
736i_unistd='define'
737i_ustat='define'
738i_utime='define'
739i_values='define'
740i_varargs='undef'
741i_varhdr='stdarg.h'
742i_vfork='undef'
743ignore_versioned_solibs='y'
744inc_version_list=' '
745inc_version_list_init='0'
746incpath=''
747inews=''
748initialinstalllocation='/usr/bin'
749installarchlib='@DESTDIR@/lib/perl5/5.12.3/@ARCH@-thread-multi'
750installbin='@DESTDIR@/bin'
751installhtml1dir=''
752installhtml3dir=''
753installman1dir=''
754installman3dir=''
755installprefix='@DESTDIR@'
756installprefixexp='@DESTDIR@'
757installprivlib='@DESTDIR@/lib/perl5/5.12.3'
758installscript='@DESTDIR@/bin'
759installsitearch='@DESTDIR@/lib/perl5/site_perl/5.12.3/@ARCH@-thread-multi'
760installsitebin='@DESTDIR@/bin'
761installsitehtml1dir=''
762installsitehtml3dir=''
763installsitelib='@DESTDIR@/lib/perl5/site_perl/5.12.3'
764installsiteman1dir=''
765installsiteman3dir=''
766installsitescript='@DESTDIR@/bin'
767installstyle='lib/perl5'
768installusrbinperl='define'
769installvendorarch='@DESTDIR@/lib/perl5/vendor_perl/5.12.3/@ARCH@-thread-multi'
770installvendorbin='@DESTDIR@/bin'
771installvendorhtml1dir=''
772installvendorhtml3dir=''
773installvendorlib='@DESTDIR@/lib/perl5/vendor_perl/5.12.3'
774installvendorman1dir=''
775installvendorman3dir=''
776installvendorscript='@DESTDIR@/bin'
777intsize='4'
778issymlink='test -h'
779ivdformat='"ld"'
780ivtype='long'
781known_extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize VMS/DCLsym VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/APItest/KeywordRPN XS/Typemap attributes mro re threads threads/shared '
782ksh=''
783ld='gcc'
784lddlflags='-shared -O2 -fstack-protector'
785ldflags=' -fstack-protector'
786ldflags_uselargefiles=''
787ldlibpthname='LD_LIBRARY_PATH'
788less='less'
789lib_ext='.a'
790libc='/lib/libc-2.12.1.so'
791libperl='libperl.so'
792libpth='/lib /usr/lib'
793libs='-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
794libsdirs=' /usr/lib'
795libsfiles=' libnsl.so libgdbm.so libdb.so libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
796libsfound=' /usr/lib/libnsl.so /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libpthread.so /usr/lib/libc.so'
797libspath=' /lib /usr/lib'
798libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD gdbm_compat'
799libswanted_uselargefiles=''
800line=''
801lint=''
802lkflags=''
803ln='ln'
804lns='/bin/ln -s'
805localtime_r_proto='REENTRANT_PROTO_S_TS'
806locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
807loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
808longlongsize='8'
809lp=''
810lpr=''
811ls='ls'
812lseeksize='8'
813lseektype='off_t'
814mad='undef'
815madlyh=''
816madlyobj=''
817madlysrc=''
818mail=''
819mailx=''
820make='make'
821make_set_make='#'
822mallocobj=''
823mallocsrc=''
824malloctype='void *'
825man1dir=' '
826man1direxp=''
827man1ext='0'
828man3dir=' '
829man3direxp=''
830man3ext='0'
831mips_type=''
832mistrustnm=''
833mkdir='mkdir'
834mmaptype='void *'
835modetype='mode_t'
836more='more'
837multiarch='undef'
838mv=''
839myarchname='@ARCH@'
840mydomain='.localdomain'
841myhostname='localhost'
842n='-n'
843netdb_hlen_type='size_t'
844netdb_name_type='const char *'
845netdb_net_type='in_addr_t'
846nm='nm'
847nm_opt=''
848nm_so_opt='--dynamic'
849nonxs_ext='Archive/Extract Archive/Tar Attribute/Handlers AutoLoader B/Debug B/Deparse B/Lint CGI CPAN CPANPLUS CPANPLUS/Dist/Build Class/ISA Devel/SelfStubber Digest Errno ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/ParseXS File/Fetch File/Path File/Temp FileCache Filter/Simple Getopt/Long I18N/LangTags IO/Compress IO/Zlib IPC/Cmd IPC/Open2 IPC/Open3 Locale/Codes Locale/Maketext Locale/Maketext/Simple Log/Message Log/Message/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Pluggable NEXT Net/Ping Object/Accessor Package/Constants Params/Check Parse/CPAN/Meta PerlIO/via/QuotedPrint Pod/Escapes Pod/LaTeX Pod/Parser Pod/Perldoc Pod/Plainer Pod/Simple Safe SelfLoader Shell Switch Term/ANSIColor Term/Cap Term/UI Test Test/Harness Test/Simple Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local Unicode/Collate XSLoader autodie autouse base bignum constant encoding/warnings if lib libnet parent podlators'
850nroff='nroff'
851nvEUformat='"E"'
852nvFUformat='"F"'
853nvGUformat='"G"'
854nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
855nveformat='"e"'
856nvfformat='"f"'
857nvgformat='"g"'
858nvsize='8'
859nvtype='double'
860o_nonblock='O_NONBLOCK'
861obj_ext='.o'
862old_pthread_create_joinable=''
863optimize='-O2'
864orderlib='false'
865osname='linux'
866osvers='2.6.37-rc5-yocto-standard+'
867otherlibdirs='/usr/lib/perl5/5.12.3'
868package='perl5'
869pager='/usr/bin/less -isr'
870passcat='cat /etc/passwd'
871patchlevel='12'
872path_sep=':'
873perl5='/usr/bin/perl'
874perl=''
875perl_patchlevel=''
876perladmin='root@localhost'
877perllibs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc'
878perlpath='/usr/bin/perl'
879pg='pg'
880phostname=''
881pidtype='pid_t'
882plibpth=''
883pmake=''
884pr=''
885prefix='/usr'
886prefixexp='/usr'
887privlib='/usr/lib/perl5/5.12.3'
888privlibexp='/usr/lib/perl5/5.12.3'
889procselfexe='"/proc/self/exe"'
890prototype='define'
891randbits='48'
892randfunc='drand48'
893random_r_proto='REENTRANT_PROTO_I_St'
894randseedtype='long'
895ranlib=':'
896rd_nodata='-1'
897readdir64_r_proto='REENTRANT_PROTO_I_TSR'
898readdir_r_proto='REENTRANT_PROTO_I_TSR'
899revision='5'
900rm='rm'
901rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
902rmail=''
903run=''
904runnm='false'
905sPRIEUldbl='"LE"'
906sPRIFUldbl='"LF"'
907sPRIGUldbl='"LG"'
908sPRIeldbl='"Le"'
909sPRIfldbl='"Lf"'
910sPRIgldbl='"Lg"'
911sSCNfldbl='"Lf"'
912sched_yield='sched_yield()'
913scriptdir='/usr/bin'
914scriptdirexp='/usr/bin'
915sed='sed'
916seedfunc='srand48'
917selecttype='fd_set *'
918sendmail=''
919setgrent_r_proto='0'
920sethostent_r_proto='0'
921setlocale_r_proto='0'
922setnetent_r_proto='0'
923setprotoent_r_proto='0'
924setpwent_r_proto='0'
925setservent_r_proto='0'
926sh='/bin/sh'
927shar=''
928sharpbang='#!'
929shmattype='void *'
930shortsize='2'
931shrpenv=''
932shsharp='true'
933sig_count='65'
934sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED '
935sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "NUM33", "RTMIN", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
936sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 6 17 29 31 '
937sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
938sig_size='69'
939signal_t='void'
940sitearch='/usr/lib/perl5/site_perl/5.12.3/@ARCH@-thread-multi'
941sitearchexp='/usr/lib/perl5/site_perl/5.12.3/@ARCH@-thread-multi'
942sitebin='/usr/bin'
943sitebinexp='/usr/bin'
944sitehtml1dir=''
945sitehtml1direxp=''
946sitehtml3dir=''
947sitehtml3direxp=''
948sitelib='/usr/lib/perl5/site_perl/5.12.3'
949sitelib_stem='/usr/lib/perl5/site_perl'
950sitelibexp='/usr/lib/perl5/site_perl/5.12.3'
951siteman1dir=''
952siteman1direxp=''
953siteman3dir=''
954siteman3direxp=''
955siteprefix='/usr'
956siteprefixexp='/usr'
957sitescript='/usr/bin'
958sitescriptexp='/usr/bin'
959sizetype='size_t'
960sleep=''
961smail=''
962so='so'
963sockethdr=''
964socketlib=''
965socksizetype='socklen_t'
966sort='sort'
967spackage='Perl5'
968spitshell='cat'
969srand48_r_proto='REENTRANT_PROTO_I_LS'
970srandom_r_proto='REENTRANT_PROTO_I_TS'
971src='.'
972ssizetype='ssize_t'
973startperl='#!/usr/bin/perl'
974startsh='#!/bin/sh'
975static_ext=' '
976stdchar='char'
977stdio_base='((fp)->_IO_read_base)'
978stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)'
979stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
980stdio_filbuf=''
981stdio_ptr='((fp)->_IO_read_ptr)'
982stdio_stream_array=''
983strerror_r_proto='REENTRANT_PROTO_B_IBW'
984strings='/usr/include/string.h'
985submit=''
986subversion='2'
987sysman='/usr/share/man/man1'
988tail=''
989tar=''
990targetarch=''
991tbl=''
992tee=''
993test='test'
994timeincl='/usr/include/sys/time.h /usr/include/time.h '
995timetype='time_t'
996tmpnam_r_proto='REENTRANT_PROTO_B_B'
997to=':'
998touch='touch'
999tr='tr'
1000trnl='\n'
1001troff=''
1002ttyname_r_proto='REENTRANT_PROTO_I_IBW'
1003u16size='2'
1004u16type='unsigned short'
1005u32size='4'
1006u64size='8'
1007u8size='1'
1008u8type='unsigned char'
1009uidsign='1'
1010uidsize='4'
1011uidtype='uid_t'
1012uname='uname'
1013uniq='uniq'
1014use5005threads='undef'
1015usecrosscompile='undef'
1016usedevel='undef'
1017usedl='define'
1018usedtrace='undef'
1019usefaststdio='undef'
1020useithreads='define'
1021uselargefiles='define'
1022uselongdouble='undef'
1023usemallocwrap='define'
1024usemorebits='undef'
1025usemultiplicity='define'
1026usemymalloc='n'
1027usenm='false'
1028useopcode='true'
1029useperlio='define'
1030useposix='true'
1031usereentrant='undef'
1032userelocatableinc='undef'
1033usesfio='false'
1034useshrplib='true'
1035usesitecustomize='undef'
1036usesocks='undef'
1037usethreads='define'
1038usevendorprefix='define'
1039usevfork='false'
1040usrinc='/usr/include'
1041uuname=''
1042uvXUformat='"lX"'
1043uvoformat='"lo"'
1044uvtype='unsigned long'
1045uvuformat='"lu"'
1046uvxformat='"lx"'
1047vaproto='define'
1048vendorarch='/usr/lib/perl5/vendor_perl/5.12.3/@ARCH@-thread-multi'
1049vendorarchexp='/usr/lib/perl5/vendor_perl/5.12.3/@ARCH@-thread-multi'
1050vendorbin='/usr/bin'
1051vendorbinexp='/usr/bin'
1052vendorhtml1dir=' '
1053vendorhtml1direxp=''
1054vendorhtml3dir=' '
1055vendorhtml3direxp=''
1056vendorlib='/usr/lib/perl5/vendor_perl/5.12.3'
1057vendorlib_stem='/usr/lib/perl5/vendor_perl'
1058vendorlibexp='/usr/lib/perl5/vendor_perl/5.12.3'
1059vendorman1dir=' '
1060vendorman1direxp=''
1061vendorman3dir=' '
1062vendorman3direxp=''
1063vendorprefix='/usr'
1064vendorprefixexp='/usr'
1065vendorscript='/usr/bin'
1066vendorscriptexp='/usr/bin'
1067version='5.12.3'
1068version_patchlevel_string='version 12 subversion 2'
1069versiononly='undef'
1070vi=''
1071voidflags='15'
1072xlibpth='/usr/lib/386 /lib/386'
1073yacc='yacc'
1074yaccflags=''
1075zcat=''
1076zip='zip'
1077PERL_REVISION=5
1078PERL_VERSION=12
1079PERL_SUBVERSION=2
1080PERL_API_REVISION=5
1081PERL_API_VERSION=12
1082PERL_API_SUBVERSION=0
1083PERL_PATCHLEVEL=''
1084PERL_CONFIG_SH=true
1085: Variables propagated from previous config.sh file.
1086libdb_needs_pthread='N'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32 b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32
new file mode 100644
index 0000000000..7259a0c6ae
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32
@@ -0,0 +1,38 @@
1alignbytes='4'
2cf_time='Thu Dec 23 03:57:51 UTC 2010'
3cppsymbols='_FILE_OFFSET_BITS=64 _GNU_SOURCE=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 _REENTRANT=1 _XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1 __BIGGEST_ALIGNMENT__=16 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __DBL_DENORM_MIN__=((double)4.94065645841246544177e-324L) __DBL_DIG__=15 __DBL_EPSILON__=((double)2.22044604925031308085e-16L) __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX_EXP__=1024 __DBL_MAX__=((double)1.79769313486231570815e+308L) __DBL_MIN_10_EXP__=(-307) __DBL_MIN_EXP__=(-1021) __DBL_MIN__=((double)2.22507385850720138309e-308L) __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX_EXP__=6145 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MIN_EXP__=(-6142) __DEC128_MIN__=1E-6143DL __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX_EXP__=97 __DEC32_MAX__=9.999999E96DF __DEC32_MIN_EXP__=(-94) __DEC32_MIN__=1E-95DF __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX_EXP__=385 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MIN_EXP__=(-382) __DEC64_MIN__=1E-383DD __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __DEC_EVAL_METHOD__=2 __ELF__=1 __FINITE_MATH_ONLY__=0 __FLT_DENORM_MIN__=1.40129846432481707092e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209289550781250000e-7F __FLT_EVAL_METHOD__=2 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX_EXP__=128 __FLT_MAX__=3.40282346638528859812e+38F __FLT_MIN_10_EXP__=(-37) __FLT_MIN_EXP__=(-125) __FLT_MIN__=1.17549435082228750797e-38F __FLT_RADIX__=2 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GLIBC_MINOR__=12 __GLIBC__=2 __GNUC_GNU_INLINE__=1 __GNUC_MINOR__=5 __GNUC_PATCHLEVEL__=1 __GNUC__=4 __GNU_LIBRARY__=6 __GXX_ABI_VERSION=1002 __INT16_C(c)=c __INT16_MAX__=32767 __INT16_TYPE__=short\ int __INT32_C(c)=c __INT32_MAX__=2147483647 __INT32_TYPE__=int __INT64_C(c)=cLL __INT64_MAX__=9223372036854775807LL __INT64_TYPE__=long\ long\ int __INT8_C(c)=c __INT8_MAX__=127 __INT8_TYPE__=signed\ char __INTMAX_C(c)=cLL __INTMAX_MAX__=9223372036854775807LL __INTMAX_TYPE__=long\ long\ int __INTPTR_MAX__=2147483647 __INTPTR_TYPE__=int __INT_FAST16_MAX__=2147483647 __INT_FAST16_TYPE__=int __INT_FAST32_MAX__=2147483647 __INT_FAST32_TYPE__=int __INT_FAST64_MAX__=9223372036854775807LL __INT_FAST64_TYPE__=long\ long\ int __INT_FAST8_MAX__=127 __INT_FAST8_TYPE__=signed\ char __INT_LEAST16_MAX__=32767 __INT_LEAST16_TYPE__=short\ int __INT_LEAST32_MAX__=2147483647 __INT_LEAST32_TYPE__=int __INT_LEAST64_MAX__=9223372036854775807LL __INT_LEAST64_TYPE__=long\ long\ int __INT_LEAST8_MAX__=127 __INT_LEAST8_TYPE__=signed\ char __INT_MAX__=2147483647 __LDBL_DENORM_MIN__=3.64519953188247460253e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443401e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX_EXP__=16384 __LDBL_MAX__=1.18973149535723176502e+4932L __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN_EXP__=(-16381) __LDBL_MIN__=3.36210314311209350626e-4932L __LONG_LONG_MAX__=9223372036854775807LL __LONG_MAX__=2147483647L __PRAGMA_REDEFINE_EXTNAME=1 __PTRDIFF_MAX__=2147483647 __PTRDIFF_TYPE__=int __REGISTER_PREFIX__= __SCHAR_MAX__=127 __SHRT_MAX__=32767 __SIG_ATOMIC_MAX__=2147483647 __SIG_ATOMIC_MIN__=(-2147483647\ -\ 1) __SIG_ATOMIC_TYPE__=int __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT__=4 __SIZEOF_INT__=4 __SIZEOF_LONG_DOUBLE__=12 __SIZEOF_LONG_LONG__=8 __SIZEOF_LONG__=4 __SIZEOF_POINTER__=4 __SIZEOF_PTRDIFF_T__=4 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=4 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_MAX__=4294967295U __SIZE_TYPE__=unsigned\ int __STDC_HOSTED__=1 __STDC__=1 __UINT16_C(c)=c __UINT16_MAX__=65535 __UINT16_TYPE__=short\ unsigned\ int __UINT32_C(c)=cU __UINT32_MAX__=4294967295U __UINT32_TYPE__=unsigned\ int __UINT64_C(c)=cULL __UINT64_MAX__=18446744073709551615ULL __UINT64_TYPE__=long\ long\ unsigned\ int __UINT8_C(c)=c __UINT8_MAX__=255 __UINT8_TYPE__=unsigned\ char __UINTMAX_C(c)=cULL __UINTMAX_MAX__=18446744073709551615ULL __UINTMAX_TYPE__=long\ long\ unsigned\ int __UINTPTR_MAX__=4294967295U __UINTPTR_TYPE__=unsigned\ int __UINT_FAST16_MAX__=4294967295U __UINT_FAST16_TYPE__=unsigned\ int __UINT_FAST32_MAX__=4294967295U __UINT_FAST32_TYPE__=unsigned\ int __UINT_FAST64_MAX__=18446744073709551615ULL __UINT_FAST64_TYPE__=long\ long\ unsigned\ int __UINT_FAST8_MAX__=255 __UINT_FAST8_TYPE__=unsigned\ char __UINT_LEAST16_MAX__=65535 __UINT_LEAST16_TYPE__=short\ unsigned\ int __UINT_LEAST32_MAX__=4294967295U __UINT_LEAST32_TYPE__=unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615ULL __UINT_LEAST64_TYPE__=long\ long\ unsigned\ int __UINT_LEAST8_MAX__=255 __UINT_LEAST8_TYPE__=unsigned\ char __USER_LABEL_PREFIX__= __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_POSIX=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __VERSION__="4.5.1" __WCHAR_MAX__=2147483647L __WCHAR_MIN__=(-2147483647L\ -\ 1) __WCHAR_TYPE__=long\ int __WINT_MAX__=4294967295U __WINT_MIN__=0U __WINT_TYPE__=unsigned\ int __gnu_linux__=1 __i386=1 __i386__=1 __i586=1 __i586__=1 __linux=1 __linux__=1 __pentium=1 __pentium__=1 __tune_i586__=1 __tune_pentium__=1 __unix=1 __unix__=1 i386=1 linux=1 unix=1'
4d_nv_preserves_uv='define'
5d_printf_format_null='define'
6d_u32align='undef'
7gidformat='"lu"'
8i32type='long'
9i64type='long long'
10ivsize='4'
11longdblsize='12'
12longsize='4'
13myuname='linux qemux86 2.6.37-rc5-yocto-standard+ #1 preempt mon dec 20 14:21:27 pst 2010 i686 gnulinux '
14need_va_copy='undef'
15netdb_host_type='const void *'
16nv_preserves_uv_bits='32'
17ptrsize='4'
18quadkind='3'
19quadtype='long long'
20sGMTIME_max='2147483647'
21sGMTIME_min='-2147483648'
22sLOCALTIME_max='2147483647'
23sLOCALTIME_min='-2147483648'
24sPRIXU64='"LX"'
25sPRId64='"Ld"'
26sPRIi64='"Li"'
27sPRIo64='"Lo"'
28sPRIu64='"Lu"'
29sPRIx64='"Lx"'
30selectminbits='32'
31sizesize='4'
32u32type='unsigned long'
33u64type='unsigned long long'
34uidformat='"lu"'
35uquadtype='unsigned long long'
36use64bitall='undef'
37use64bitint='undef'
38uvsize='4'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32-be b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32-be
new file mode 100644
index 0000000000..a59a9abb5e
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32-be
@@ -0,0 +1 @@
byteorder='4321'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32-le b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32-le
new file mode 100644
index 0000000000..10e4226567
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-32-le
@@ -0,0 +1 @@
byteorder='1234'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64 b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64
new file mode 100644
index 0000000000..6929d3a09d
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64
@@ -0,0 +1,38 @@
1alignbytes='8'
2cf_time='Thu Dec 23 02:06:42 UTC 2010'
3cppsymbols='_FILE_OFFSET_BITS=64 _GNU_SOURCE=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 _LP64=1 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 _REENTRANT=1 _XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1 __BIGGEST_ALIGNMENT__=16 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __DBL_DENORM_MIN__=((double)4.94065645841246544177e-324L) __DBL_DIG__=15 __DBL_EPSILON__=((double)2.22044604925031308085e-16L) __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX_EXP__=1024 __DBL_MAX__=((double)1.79769313486231570815e+308L) __DBL_MIN_10_EXP__=(-307) __DBL_MIN_EXP__=(-1021) __DBL_MIN__=((double)2.22507385850720138309e-308L) __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX_EXP__=6145 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MIN_EXP__=(-6142) __DEC128_MIN__=1E-6143DL __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX_EXP__=97 __DEC32_MAX__=9.999999E96DF __DEC32_MIN_EXP__=(-94) __DEC32_MIN__=1E-95DF __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX_EXP__=385 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MIN_EXP__=(-382) __DEC64_MIN__=1E-383DD __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __DEC_EVAL_METHOD__=2 __ELF__=1 __FINITE_MATH_ONLY__=0 __FLT_DENORM_MIN__=1.40129846432481707092e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209289550781250000e-7F __FLT_EVAL_METHOD__=0 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX_EXP__=128 __FLT_MAX__=3.40282346638528859812e+38F __FLT_MIN_10_EXP__=(-37) __FLT_MIN_EXP__=(-125) __FLT_MIN__=1.17549435082228750797e-38F __FLT_RADIX__=2 __GCC_HAVE_DWARF2_CFI_ASM=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GLIBC_MINOR__=12 __GLIBC__=2 __GNUC_GNU_INLINE__=1 __GNUC_MINOR__=5 __GNUC_PATCHLEVEL__=1 __GNUC__=4 __GNU_LIBRARY__=6 __GXX_ABI_VERSION=1002 __INT16_C(c)=c __INT16_MAX__=32767 __INT16_TYPE__=short\ int __INT32_C(c)=c __INT32_MAX__=2147483647 __INT32_TYPE__=int __INT64_C(c)=cL __INT64_MAX__=9223372036854775807L __INT64_TYPE__=long\ int __INT8_C(c)=c __INT8_MAX__=127 __INT8_TYPE__=signed\ char __INTMAX_C(c)=cL __INTMAX_MAX__=9223372036854775807L __INTMAX_TYPE__=long\ int __INTPTR_MAX__=9223372036854775807L __INTPTR_TYPE__=long\ int __INT_FAST16_MAX__=9223372036854775807L __INT_FAST16_TYPE__=long\ int __INT_FAST32_MAX__=9223372036854775807L __INT_FAST32_TYPE__=long\ int __INT_FAST64_MAX__=9223372036854775807L __INT_FAST64_TYPE__=long\ int __INT_FAST8_MAX__=127 __INT_FAST8_TYPE__=signed\ char __INT_LEAST16_MAX__=32767 __INT_LEAST16_TYPE__=short\ int __INT_LEAST32_MAX__=2147483647 __INT_LEAST32_TYPE__=int __INT_LEAST64_MAX__=9223372036854775807L __INT_LEAST64_TYPE__=long\ int __INT_LEAST8_MAX__=127 __INT_LEAST8_TYPE__=signed\ char __INT_MAX__=2147483647 __LDBL_DENORM_MIN__=3.64519953188247460253e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443401e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX_EXP__=16384 __LDBL_MAX__=1.18973149535723176502e+4932L __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN_EXP__=(-16381) __LDBL_MIN__=3.36210314311209350626e-4932L __LONG_LONG_MAX__=9223372036854775807LL __LONG_MAX__=9223372036854775807L __LP64__=1 __MMX__=1 __PRAGMA_REDEFINE_EXTNAME=1 __PTRDIFF_MAX__=9223372036854775807L __PTRDIFF_TYPE__=long\ int __REGISTER_PREFIX__= __SCHAR_MAX__=127 __SHRT_MAX__=32767 __SIG_ATOMIC_MAX__=2147483647 __SIG_ATOMIC_MIN__=(-2147483647\ -\ 1) __SIG_ATOMIC_TYPE__=int __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT__=4 __SIZEOF_INT__=4 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG_LONG__=8 __SIZEOF_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=8 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_MAX__=18446744073709551615UL __SIZE_TYPE__=long\ unsigned\ int __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1 __STDC_HOSTED__=1 __STDC__=1 __UINT16_C(c)=c __UINT16_MAX__=65535 __UINT16_TYPE__=short\ unsigned\ int __UINT32_C(c)=cU __UINT32_MAX__=4294967295U __UINT32_TYPE__=unsigned\ int __UINT64_C(c)=cUL __UINT64_MAX__=18446744073709551615UL __UINT64_TYPE__=long\ unsigned\ int __UINT8_C(c)=c __UINT8_MAX__=255 __UINT8_TYPE__=unsigned\ char __UINTMAX_C(c)=cUL __UINTMAX_MAX__=18446744073709551615UL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=18446744073709551615UL __UINTPTR_TYPE__=long\ unsigned\ int __UINT_FAST16_MAX__=18446744073709551615UL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=18446744073709551615UL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=18446744073709551615UL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_FAST8_MAX__=255 __UINT_FAST8_TYPE__=unsigned\ char __UINT_LEAST16_MAX__=65535 __UINT_LEAST16_TYPE__=short\ unsigned\ int __UINT_LEAST32_MAX__=4294967295U __UINT_LEAST32_TYPE__=unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615UL __UINT_LEAST64_TYPE__=long\ unsigned\ int __UINT_LEAST8_MAX__=255 __UINT_LEAST8_TYPE__=unsigned\ char __USER_LABEL_PREFIX__= __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_POSIX=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __VERSION__="4.5.1" __WCHAR_MAX__=2147483647 __WCHAR_MIN__=(-2147483647\ -\ 1) __WCHAR_TYPE__=int __WINT_MAX__=4294967295U __WINT_MIN__=0U __WINT_TYPE__=unsigned\ int __amd64=1 __amd64__=1 __gnu_linux__=1 __k8=1 __k8__=1 __linux=1 __linux__=1 __unix=1 __unix__=1 __x86_64=1 __x86_64__=1 linux=1 unix=1'
4d_nv_preserves_uv='undef'
5d_printf_format_null='undef'
6d_u32align='define'
7gidformat='"u"'
8i32type='int'
9i64type='long'
10ivsize='8'
11longdblsize='16'
12longsize='8'
13myuname='linux qemux86-64 2.6.37-rc5-yocto-standard+ #1 smp preempt mon dec 20 17:19:50 pst 2010 x86_64 gnulinux '
14need_va_copy='define'
15netdb_host_type='char *'
16nv_preserves_uv_bits='53'
17ptrsize='8'
18quadkind='2'
19quadtype='long'
20sGMTIME_max='67768036191676799'
21sGMTIME_min='-62167219200'
22sLOCALTIME_max='67768036191676799'
23sLOCALTIME_min='-62167219200'
24sPRIXU64='"lX"'
25sPRId64='"ld"'
26sPRIi64='"li"'
27sPRIo64='"lo"'
28sPRIu64='"lu"'
29sPRIx64='"lx"'
30selectminbits='64'
31sizesize='8'
32u32type='unsigned int'
33u64type='unsigned long'
34uidformat='"u"'
35uquadtype='unsigned long'
36use64bitall='define'
37use64bitint='define'
38uvsize='8'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64-be b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64-be
new file mode 100644
index 0000000000..c08ce3c431
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64-be
@@ -0,0 +1 @@
byteorder='87654321'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64-le b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64-le
new file mode 100644
index 0000000000..277d2a9bee
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/config.sh-64-le
@@ -0,0 +1 @@
byteorder='12345678'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/cross-generate_uudmap.patch b/meta/recipes-devtools/perl/perl-5.12.3/cross-generate_uudmap.patch
new file mode 100644
index 0000000000..d59ad8dae6
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/cross-generate_uudmap.patch
@@ -0,0 +1,15 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Index: perl-5.10.1/Makefile.SH
4===================================================================
5--- perl-5.10.1.orig/Makefile.SH 2010-02-12 19:06:17.000000000 +0300
6+++ perl-5.10.1/Makefile.SH 2010-02-12 19:10:13.000000000 +0300
7@@ -596,7 +596,7 @@
8 \$(RUN) ./generate_uudmap\$(HOST_EXE_EXT) >uudmap.h
9
10 generate_uudmap\$(HOST_EXE_EXT): generate_uudmap\$(OBJ_EXT)
11- \$(CC) -o generate_uudmap\$(EXE_EXT) \$(LDFLAGS) generate_uudmap\$(OBJ_EXT) \$(libs)
12+ \$(BUILD_CC) -o generate_uudmap\$(EXE_EXT) generate_uudmap.c
13
14 !GROK!THIS!
15 $spitshell >>$Makefile <<'!NO!SUBS!'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/arm_optim.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/arm_optim.diff
new file mode 100644
index 0000000000..b5b952e838
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/arm_optim.diff
@@ -0,0 +1,34 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Description: Downgrade the optimization of sv.c on arm due to a gcc-4.4 bug
5Bug-Debian: http://bugs.debian.org/580334
6
7Regression from gcc-4.3, not reported yet.
8
9 perl -e '"-2" =~ /(.+)/; @foo=(); push @foo, $_ for $1..undef; print @foo ? "ok\n" : "not ok\n"'
10
11
12---
13 cflags.SH | 6 +++++-
14 1 files changed, 5 insertions(+), 1 deletions(-)
15
16diff --git a/cflags.SH b/cflags.SH
17index a5d71b9..6914ba6 100755
18--- a/cflags.SH
19+++ b/cflags.SH
20@@ -312,7 +312,11 @@ for file do
21 regexec) ;;
22 run) ;;
23 scope) ;;
24- sv) ;;
25+ sv)
26+ case $archname in
27+ arm-*|armeb-*)
28+ optimize=-O0;;
29+ esac;;
30 taint) ;;
31 toke) ;;
32 universal) ;;
33--
34tg: (a508b62..) debian/arm_optim (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/arm_thread_stress_timeout.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/arm_thread_stress_timeout.diff
new file mode 100644
index 0000000000..700b344ed3
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/arm_thread_stress_timeout.diff
@@ -0,0 +1,25 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts
4Bug-Debian: http://bugs.debian.org/501970
5
6
7---
8 dist/threads-shared/t/stress.t | 2 +-
9 1 files changed, 1 insertions(+), 1 deletions(-)
10
11diff --git a/dist/threads-shared/t/stress.t b/dist/threads-shared/t/stress.t
12index adfd1ed..652a3e6 100755
13--- a/dist/threads-shared/t/stress.t
14+++ b/dist/threads-shared/t/stress.t
15@@ -34,7 +34,7 @@ use threads::shared;
16 {
17 my $cnt = 50;
18
19- my $TIMEOUT = 60;
20+ my $TIMEOUT = 150;
21
22 my $mutex = 1;
23 share($mutex);
24--
25tg: (a508b62..) debian/arm_thread_stress_timeout (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/cpan_config_path.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/cpan_config_path.diff
new file mode 100644
index 0000000000..27b4a45440
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/cpan_config_path.diff
@@ -0,0 +1,24 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Set location of CPAN::Config to /etc/perl as /usr may not be writable.
4
5
6---
7 cpan/CPAN/lib/CPAN/HandleConfig.pm | 2 +-
8 1 files changed, 1 insertions(+), 1 deletions(-)
9
10diff --git a/cpan/CPAN/lib/CPAN/HandleConfig.pm b/cpan/CPAN/lib/CPAN/HandleConfig.pm
11index 76cd81e..65a3b27 100644
12--- a/cpan/CPAN/lib/CPAN/HandleConfig.pm
13+++ b/cpan/CPAN/lib/CPAN/HandleConfig.pm
14@@ -543,7 +543,7 @@ sub load {
15 $configpm = $INC{"CPAN/MyConfig.pm"};
16 $redo++;
17 } else {
18- my($path_to_cpan) = File::Basename::dirname($INC{"CPAN.pm"});
19+ my($path_to_cpan) = '/etc/perl';
20 my($configpmdir) = File::Spec->catdir($path_to_cpan,"CPAN");
21 my($configpmtest) = File::Spec->catfile($configpmdir,"Config.pm");
22 my $inc_key;
23--
24tg: (a508b62..) debian/cpan_config_path (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/cpan_definstalldirs.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/cpan_definstalldirs.diff
new file mode 100644
index 0000000000..3931c2d357
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/cpan_definstalldirs.diff
@@ -0,0 +1,37 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Provide a sensible INSTALLDIRS default for modules installed from CPAN.
4
5Some modules which are included in core set INSTALLDIRS => 'perl'
6explicitly in Makefile.PL or Build.PL. This makes sense for the normal @INC
7ordering, but not ours.
8
9
10---
11 cpan/CPAN/lib/CPAN/FirstTime.pm | 4 ++--
12 1 files changed, 2 insertions(+), 2 deletions(-)
13
14diff --git a/cpan/CPAN/lib/CPAN/FirstTime.pm b/cpan/CPAN/lib/CPAN/FirstTime.pm
15index 53ffbf1..53976ff 100644
16--- a/cpan/CPAN/lib/CPAN/FirstTime.pm
17+++ b/cpan/CPAN/lib/CPAN/FirstTime.pm
18@@ -947,7 +947,7 @@ sub init {
19 my_prompt_loop(prefer_installer => 'MB', $matcher, 'MB|EUMM|RAND');
20
21 if (!$matcher or 'makepl_arg make_arg' =~ /$matcher/) {
22- my_dflt_prompt(makepl_arg => "", $matcher);
23+ my_dflt_prompt(makepl_arg => "INSTALLDIRS=site", $matcher);
24 my_dflt_prompt(make_arg => "", $matcher);
25 if ( $CPAN::Config->{makepl_arg} =~ /LIBS=|INC=/ ) {
26 $CPAN::Frontend->mywarn(
27@@ -969,7 +969,7 @@ sub init {
28 my_dflt_prompt(make_install_arg => $CPAN::Config->{make_arg} || "",
29 $matcher);
30
31- my_dflt_prompt(mbuildpl_arg => "", $matcher);
32+ my_dflt_prompt(mbuildpl_arg => "--installdirs site", $matcher);
33 my_dflt_prompt(mbuild_arg => "", $matcher);
34
35 if (exists $CPAN::HandleConfig::keys{mbuild_install_build_command}
36--
37tg: (a508b62..) debian/cpan_definstalldirs (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/cpanplus_config_path.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/cpanplus_config_path.diff
new file mode 100644
index 0000000000..8f2f5d2bd3
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/cpanplus_config_path.diff
@@ -0,0 +1,45 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Save local versions of CPANPLUS::Config::System into /etc/perl.
5
6This is a configuration file and needs to go in /etc by policy.
7Besides, /usr may not even be writable.
8
9This mirrors the Debian setup of CPAN.pm in debian/cpan_config_path.
10
11See #533707.
12
13---
14 cpan/CPANPLUS/lib/CPANPLUS/Configure.pm | 1 +
15 cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants.pm | 3 +++
16 2 files changed, 4 insertions(+), 0 deletions(-)
17
18diff --git a/cpan/CPANPLUS/lib/CPANPLUS/Configure.pm b/cpan/CPANPLUS/lib/CPANPLUS/Configure.pm
19index baac91d..a3794de 100644
20--- a/cpan/CPANPLUS/lib/CPANPLUS/Configure.pm
21+++ b/cpan/CPANPLUS/lib/CPANPLUS/Configure.pm
22@@ -276,6 +276,7 @@ Saves the configuration to the package name you provided.
23 If this package is not C<CPANPLUS::Config::System>, it will
24 be saved in your C<.cpanplus> directory, otherwise it will
25 be attempted to be saved in the system wide directory.
26+(On Debian systems, this system wide directory is /etc/perl.)
27
28 If no argument is provided, it will default to your personal
29 config.
30diff --git a/cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants.pm b/cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants.pm
31index 1a38200..6ee0d82 100644
32--- a/cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants.pm
33+++ b/cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants.pm
34@@ -199,6 +199,9 @@ use constant CONFIG_USER_FILE => sub {
35 ) . '.pm';
36 };
37 use constant CONFIG_SYSTEM_FILE => sub {
38+ # Debian-specific shortcut
39+ return '/etc/perl/CPANPLUS/Config/System.pm';
40+
41 require CPANPLUS::Internals;
42 require File::Basename;
43 my $dir = File::Basename::dirname(
44--
45tg: (a508b62..) debian/cpanplus_config_path (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/cpanplus_definstalldirs.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/cpanplus_definstalldirs.diff
new file mode 100644
index 0000000000..bd5fe80618
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/cpanplus_definstalldirs.diff
@@ -0,0 +1,54 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Configure CPANPLUS to use the site directories by default.
5Closes: 533707
6
7The core modules usually default to INSTALLDIRS=perl (ExtUtils::MakeMaker)
8or installdirs=core (Module::Build), so we need to explicitly ask for
9the site destination to get upgraded versions into /usr/local.
10
11See also the sister patch, debian/cpan_definstalldirs .
12
13---
14 cpan/CPANPLUS/lib/CPANPLUS/Config/System.pm | 30 +++++++++++++++++++++++++++
15 1 files changed, 30 insertions(+), 0 deletions(-)
16
17diff --git a/cpan/CPANPLUS/lib/CPANPLUS/Config/System.pm b/cpan/CPANPLUS/lib/CPANPLUS/Config/System.pm
18new file mode 100644
19index 0000000..5e6e11e
20--- /dev/null
21+++ b/cpan/CPANPLUS/lib/CPANPLUS/Config/System.pm
22@@ -0,0 +1,30 @@
23+### minimal pod, so you can find it with perldoc -l, etc
24+=pod
25+
26+=head1 NAME
27+
28+CPANPLUS::Config::System
29+
30+=head1 DESCRIPTION
31+
32+This is a CPANPLUS configuration file that sets appropriate default
33+settings on Debian systems.
34+
35+The only preconfigured settings are C<makemakerflags> (set to
36+C<INSTALLDIRS=site>) and C<buildflags> (set to C<--installdirs site>).
37+
38+These settings will not have any effect if
39+C</etc/perl/CPANPLUS/Config/System.pm> is present.
40+
41+=cut
42+
43+
44+package CPANPLUS::Config::System;
45+
46+sub setup {
47+ my $conf = shift;
48+ $conf->set_conf( makemakerflags => 'INSTALLDIRS=site' );
49+ $conf->set_conf( buildflags => '--installdirs site' );
50+}
51+
52+1;
53--
54tg: (a508b62..) debian/cpanplus_definstalldirs (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/db_file_ver.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/db_file_ver.diff
new file mode 100644
index 0000000000..e9aa60a9b9
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/db_file_ver.diff
@@ -0,0 +1,34 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Remove overly restrictive DB_File version check.
4Bug-Debian: http://bugs.debian.org/340047
5
6Package dependencies ensure the correct library is linked at run-time.
7
8
9---
10 cpan/DB_File/version.c | 2 ++
11 1 files changed, 2 insertions(+), 0 deletions(-)
12
13diff --git a/cpan/DB_File/version.c b/cpan/DB_File/version.c
14index 47158d3..67ccdff 100644
15--- a/cpan/DB_File/version.c
16+++ b/cpan/DB_File/version.c
17@@ -48,6 +48,7 @@ __getBerkeleyDBInfo()
18
19 (void)db_version(&Major, &Minor, &Patch) ;
20
21+#ifndef DEBIAN
22 /* Check that the versions of db.h and libdb.a are the same */
23 if (Major != DB_VERSION_MAJOR || Minor != DB_VERSION_MINOR )
24 /* || Patch != DB_VERSION_PATCH) */
25@@ -55,6 +56,7 @@ __getBerkeleyDBInfo()
26 croak("\nDB_File was build with libdb version %d.%d.%d,\nbut you are attempting to run it with libdb version %d.%d.%d\n",
27 DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
28 Major, Minor, Patch) ;
29+#endif /* DEBIAN */
30
31 /* check that libdb is recent enough -- we need 2.3.4 or greater */
32 if (Major == 2 && (Minor < 3 || (Minor == 3 && Patch < 4)))
33--
34tg: (a508b62..) debian/db_file_ver (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/deprecate-with-apt.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/deprecate-with-apt.diff
new file mode 100644
index 0000000000..ad0b0cfb86
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/deprecate-with-apt.diff
@@ -0,0 +1,61 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Point users to Debian packages of deprecated core modules
5Bug-Debian: http://bugs.debian.org/580034
6
7Class::ISA, Switch, Pod::Plainer, and (partially) Shell were
8deprecated from the Perl core in 5.12.0.
9
10To get a clean transition, perl-modules is going to recommend the separate
11Debian packages of these for one release cycle so that they will be
12pulled in by default on upgrades.
13
14However, on systems configured to ignore recommendations the deprecation
15warnings will still be useful, so modify them slightly to point to the
16separate packages instead.
17
18---
19 lib/deprecate.pm | 18 +++++++++++++++++-
20 1 files changed, 17 insertions(+), 1 deletions(-)
21
22diff --git a/lib/deprecate.pm b/lib/deprecate.pm
23index 7b92e0b..9db7330 100644
24--- a/lib/deprecate.pm
25+++ b/lib/deprecate.pm
26@@ -7,6 +7,16 @@ our $VERSION = 0.01;
27 our %Config;
28 unless (%Config) { require Config; *Config = \%Config::Config; }
29
30+# Debian-specific change: recommend the separate Debian packages of
31+# deprecated modules where available
32+
33+my %DEBIAN_PACKAGES = (
34+ "Class::ISA" => "libclass-isa-perl",
35+ "Pod::Plainer" => "libpod-plainer-perl",
36+ "Switch" => "libswitch-perl",
37+ "Shell" => "libshell-perl",
38+);
39+
40 sub import {
41 my ($package, $file, $line) = caller;
42 my $expect_leaf = "$package.pm";
43@@ -44,9 +54,15 @@ EOM
44 if (defined $callers_bitmask
45 && (vec($callers_bitmask, $warnings::Offsets{deprecated}, 1)
46 || vec($callers_bitmask, $warnings::Offsets{all}, 1))) {
47- warn <<"EOM";
48+ if (my $deb = $DEBIAN_PACKAGES{$package}) {
49+ warn <<"EOM";
50+$package will be removed from the Perl core distribution in the next major release. Please install the separate $deb package. It is being used at $call_file, line $call_line.
51+EOM
52+ } else {
53+ warn <<"EOM";
54 $package will be removed from the Perl core distribution in the next major release. Please install it from CPAN. It is being used at $call_file, line $call_line.
55 EOM
56+ }
57 }
58 return;
59 }
60--
61tg: (a508b62..) debian/deprecate-with-apt (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/devel-ppport-ia64-optim.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/devel-ppport-ia64-optim.diff
new file mode 100644
index 0000000000..e57a31577b
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/devel-ppport-ia64-optim.diff
@@ -0,0 +1,34 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Work around an ICE on ia64
5Closes: 548943
6
7Temporarily work around an internal compiler error in Devel::PPPort
8on ia64+gcc-4.3.
9
10
11---
12 cpan/Devel-PPPort/Makefile.PL | 7 +++++++
13 1 files changed, 7 insertions(+), 0 deletions(-)
14
15diff --git a/cpan/Devel-PPPort/Makefile.PL b/cpan/Devel-PPPort/Makefile.PL
16index 67eebc1..f1ef7a2 100644
17--- a/cpan/Devel-PPPort/Makefile.PL
18+++ b/cpan/Devel-PPPort/Makefile.PL
19@@ -75,6 +75,13 @@ sub configure
20 push @moreopts, INSTALLDIRS => ($] >= 5.007003 ? 'perl' : 'site');
21 }
22
23+
24+ # temporary Debian hack, see http://bugs.debian.org/548943
25+ require Config;
26+ if ($Config::Config{archname} =~ /^ia64/) {
27+ push @moreopts, OPTIMIZE => '-g -O0';
28+ }
29+
30 if ($opt{'apicheck'}) {
31 $PL_FILES{'apicheck_c.PL'} = 'apicheck.c';
32 push @C_FILES, qw{ apicheck.c };
33--
34tg: (a508b62..) debian/devel-ppport-ia64-optim (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/disable-zlib-bundling.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/disable-zlib-bundling.diff
new file mode 100644
index 0000000000..44349a534e
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/disable-zlib-bundling.diff
@@ -0,0 +1,31 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Disable zlib bundling in Compress::Raw::Zlib
5
6Compress::Raw::Zlib statically links its bundled version of zlib
7by default, but we use the system library instead.
8
9---
10 cpan/Compress-Raw-Zlib/config.in | 6 +++---
11 1 files changed, 3 insertions(+), 3 deletions(-)
12
13diff --git a/cpan/Compress-Raw-Zlib/config.in b/cpan/Compress-Raw-Zlib/config.in
14index c56cc03..2c6659b 100644
15--- a/cpan/Compress-Raw-Zlib/config.in
16+++ b/cpan/Compress-Raw-Zlib/config.in
17@@ -16,9 +16,9 @@
18 # Setting the Gzip OS Code
19 #
20
21-BUILD_ZLIB = True
22-INCLUDE = ./zlib-src
23-LIB = ./zlib-src
24+BUILD_ZLIB = False
25+INCLUDE = /usr/include
26+LIB = /usr/lib
27
28 OLD_ZLIB = False
29 GZIP_OS_CODE = AUTO_DETECT
30--
31tg: (a508b62..) debian/disable-zlib-bundling (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/doc_info.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/doc_info.diff
new file mode 100644
index 0000000000..be75f30144
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/doc_info.diff
@@ -0,0 +1,36 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Replace generic man(1) instructions with Debian-specific information.
4
5Indicate that the user needs to install the perl-doc package.
6
7
8---
9 pod/perl.pod | 12 ++++++++++--
10 1 files changed, 10 insertions(+), 2 deletions(-)
11
12diff --git a/pod/perl.pod b/pod/perl.pod
13index e67f062..3b8ae83 100644
14--- a/pod/perl.pod
15+++ b/pod/perl.pod
16@@ -242,8 +242,16 @@ For ease of access, the Perl manual has been split up into several sections.
17 perlwin32 Perl notes for Windows
18
19
20-On a Unix-like system, these documentation files will usually also be
21-available as manpages for use with the F<man> program.
22+On Debian systems, you need to install the B<perl-doc> package which
23+contains the majority of the standard Perl documentation and the
24+F<perldoc> program.
25+
26+Extensive additional documentation for Perl modules is available, both
27+those distributed with Perl and third-party modules which are packaged
28+or locally installed.
29+
30+You should be able to view Perl's documentation with your man(1)
31+program or perldoc(1).
32
33 In general, if something strange has gone wrong with your program and you're
34 not sure where you should look for help, try the B<-w> switch first. It will
35--
36tg: (a508b62..) debian/doc_info (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/enc2xs_inc.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/enc2xs_inc.diff
new file mode 100644
index 0000000000..4cac4b75f4
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/enc2xs_inc.diff
@@ -0,0 +1,52 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Tweak enc2xs to follow symlinks and ignore missing @INC directories.
4Bug-Debian: http://bugs.debian.org/290336
5
6- ignore missing directories,
7- follow symlinks (/usr/share/perl/5.8 -> 5.8.4).
8- filter "." out when running "enc2xs -C", it's unnecessary and causes
9 issues with follow => 1 (see #603686 and [rt.cpan.org #64585])
10
11---
12 cpan/Encode/bin/enc2xs | 8 ++++----
13 1 files changed, 4 insertions(+), 4 deletions(-)
14
15diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs
16index 773c0a0..bc1ae1b 100644
17--- a/cpan/Encode/bin/enc2xs
18+++ b/cpan/Encode/bin/enc2xs
19@@ -924,11 +924,11 @@ use vars qw(
20 sub find_e2x{
21 eval { require File::Find; };
22 my (@inc, %e2x_dir);
23- for my $inc (@INC){
24+ for my $inc (grep -d, @INC){
25 push @inc, $inc unless $inc eq '.'; #skip current dir
26 }
27 File::Find::find(
28- sub {
29+ { wanted => sub {
30 my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
31 $atime,$mtime,$ctime,$blksize,$blocks)
32 = lstat($_) or return;
33@@ -938,7 +938,7 @@ sub find_e2x{
34 $e2x_dir{$File::Find::dir} ||= $mtime;
35 }
36 return;
37- }, @inc);
38+ }, follow => 1}, @inc);
39 warn join("\n", keys %e2x_dir), "\n";
40 for my $d (sort {$e2x_dir{$a} <=> $e2x_dir{$b}} keys %e2x_dir){
41 $_E2X = $d;
42@@ -1005,7 +1005,7 @@ sub make_configlocal_pm {
43 $LocalMod{$enc} ||= $mod;
44 }
45 };
46- File::Find::find({wanted => $wanted}, @INC);
47+ File::Find::find({wanted => $wanted, follow => 1}, grep -d && !/^\./, @INC);
48 $_ModLines = "";
49 for my $enc ( sort keys %LocalMod ) {
50 $_ModLines .=
51--
52tg: (a508b62..) debian/enc2xs_inc (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/errno_ver.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/errno_ver.diff
new file mode 100644
index 0000000000..de73ed549a
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/errno_ver.diff
@@ -0,0 +1,34 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Remove Errno version check due to upgrade problems with long-running processes.
4Bug-Debian: http://bugs.debian.org/343351
5
6Remove version check which can cause problems for long running
7processes embedding perl when upgrading to a newer version,
8compatible, but built on a different machine.
9
10
11---
12 ext/Errno/Errno_pm.PL | 5 -----
13 1 files changed, 0 insertions(+), 5 deletions(-)
14
15diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
16index 124b8fc..b554cd4 100644
17--- a/ext/Errno/Errno_pm.PL
18+++ b/ext/Errno/Errno_pm.PL
19@@ -341,13 +341,8 @@ EOF
20 package Errno;
21 our (\@EXPORT_OK,\%EXPORT_TAGS,\@ISA,\$VERSION,\%errno,\$AUTOLOAD);
22 use Exporter ();
23-use Config;
24 use strict;
25
26-"\$Config{'archname'}-\$Config{'osvers'}" eq
27-"$Config{'archname'}-$Config{'osvers'}" or
28- die "Errno architecture ($Config{'archname'}-$Config{'osvers'}) does not match executable architecture (\$Config{'archname'}-\$Config{'osvers'})";
29-
30 \$VERSION = "$VERSION";
31 \$VERSION = eval \$VERSION;
32 \@ISA = qw(Exporter);
33--
34tg: (a508b62..) debian/errno_ver (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/extutils_hacks.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/extutils_hacks.diff
new file mode 100644
index 0000000000..e1cbdb5658
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/extutils_hacks.diff
@@ -0,0 +1,315 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Various debian-specific ExtUtils changes
4
5 * Respect umask during installation, and set as appropriate for each of
6 perl, vendor and site (policy requires group writable site dirs).
7
8 * Don't install .packlist or perllocal.pod for perl or vendor.
9 * Fiddle with *PREFIX and variables written to the makefile so that
10 install directories may be changed when make is run by passing
11 PREFIX= to the "make install" command (used when packaging
12 modules).
13
14 * Set location of libperl.a to /usr/lib.
15 * Note that libperl-dev package is required for embedded linking.
16 * Change install target dependencies to facilitate parallel makes.
17
18
19---
20 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm | 12 +++---
21 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 44 +++++-----------------
22 cpan/ExtUtils-MakeMaker/t/INST.t | 4 +--
23 cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t | 10 +++---
24 dist/ExtUtils-Install/lib/ExtUtils/Install.pm | 18 +++++-----
25 lib/ExtUtils/Embed.pm | 3 ++
26 6 files changed, 34 insertions(+), 57 deletions(-)
27
28diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
29index 4905aeb..a80ac20 100644
30--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
31+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
32@@ -701,8 +701,6 @@ all POD files in MAN1PODS and MAN3PODS.
33 sub manifypods_target {
34 my($self) = shift;
35
36- my $man1pods = '';
37- my $man3pods = '';
38 my $dependencies = '';
39
40 # populate manXpods & dependencies:
41@@ -718,7 +716,7 @@ END
42 foreach my $section (qw(1 3)) {
43 my $pods = $self->{"MAN${section}PODS"};
44 push @man_cmds, $self->split_command(<<CMD, %$pods);
45- \$(NOECHO) \$(POD2MAN) --section=$section --perm_rw=\$(PERM_RW)
46+ \$(NOECHO) \$(POD2MAN) --section=\$(MAN${section}EXT) --perm_rw=\$(PERM_RW)
47 CMD
48 }
49
50@@ -1428,9 +1426,11 @@ sub init_INSTALL_from_PREFIX {
51 $self->{SITEPREFIX} ||= $sprefix;
52 $self->{VENDORPREFIX} ||= $vprefix;
53
54- # Lots of MM extension authors like to use $(PREFIX) so we
55- # put something sensible in there no matter what.
56- $self->{PREFIX} = '$('.uc $self->{INSTALLDIRS}.'PREFIX)';
57+ my $p = $self->{PREFIX} = $self->{PERLPREFIX};
58+ for my $t (qw/PERL SITE VENDOR/)
59+ {
60+ $self->{"${t}PREFIX"} =~ s!^\Q$p\E(?=/|$)!\$(PREFIX)!;
61+ }
62 }
63
64 my $arch = $Config{archname};
65diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
66index 239d6df..940de38 100644
67--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
68+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
69@@ -2046,9 +2046,7 @@ doc__install : doc_site_install
70 $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
71
72 pure_perl_install :: all
73- $(NOECHO) $(MOD_INSTALL) \
74- read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
75- write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
76+ $(NOECHO) umask 022; $(MOD_INSTALL) \
77 $(INST_LIB) $(DESTINSTALLPRIVLIB) \
78 $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
79 $(INST_BIN) $(DESTINSTALLBIN) \
80@@ -2060,7 +2058,7 @@ pure_perl_install :: all
81
82
83 pure_site_install :: all
84- $(NOECHO) $(MOD_INSTALL) \
85+ $(NOECHO) umask 02; $(MOD_INSTALL) \
86 read }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
87 write }.$self->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{ \
88 $(INST_LIB) $(DESTINSTALLSITELIB) \
89@@ -2073,9 +2071,7 @@ pure_site_install :: all
90 }.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{
91
92 pure_vendor_install :: all
93- $(NOECHO) $(MOD_INSTALL) \
94- read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
95- write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \
96+ $(NOECHO) umask 022; $(MOD_INSTALL) \
97 $(INST_LIB) $(DESTINSTALLVENDORLIB) \
98 $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
99 $(INST_BIN) $(DESTINSTALLVENDORBIN) \
100@@ -2084,37 +2080,19 @@ pure_vendor_install :: all
101 $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
102
103 doc_perl_install :: all
104- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
105- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
106- -$(NOECHO) $(DOC_INSTALL) \
107- "Module" "$(NAME)" \
108- "installed into" "$(INSTALLPRIVLIB)" \
109- LINKTYPE "$(LINKTYPE)" \
110- VERSION "$(VERSION)" \
111- EXE_FILES "$(EXE_FILES)" \
112- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
113
114 doc_site_install :: all
115- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
116- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
117- -$(NOECHO) $(DOC_INSTALL) \
118+ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
119+ -$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
120+ -$(NOECHO) umask 02; $(DOC_INSTALL) \
121 "Module" "$(NAME)" \
122 "installed into" "$(INSTALLSITELIB)" \
123 LINKTYPE "$(LINKTYPE)" \
124 VERSION "$(VERSION)" \
125 EXE_FILES "$(EXE_FILES)" \
126- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
127+ >> }.$self->catfile('$(DESTINSTALLSITEARCH)','perllocal.pod').q{
128
129 doc_vendor_install :: all
130- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
131- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
132- -$(NOECHO) $(DOC_INSTALL) \
133- "Module" "$(NAME)" \
134- "installed into" "$(INSTALLVENDORLIB)" \
135- LINKTYPE "$(LINKTYPE)" \
136- VERSION "$(VERSION)" \
137- EXE_FILES "$(EXE_FILES)" \
138- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
139
140 };
141
142@@ -2123,13 +2101,12 @@ uninstall :: uninstall_from_$(INSTALLDIRS)dirs
143 $(NOECHO) $(NOOP)
144
145 uninstall_from_perldirs ::
146- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{
147
148 uninstall_from_sitedirs ::
149 $(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{
150
151 uninstall_from_vendordirs ::
152- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{
153+
154 };
155
156 join("",@m);
157@@ -2402,7 +2379,7 @@ MAP_PRELIBS = $Config{perllibs} $Config{cryptlib}
158 ($lperl = $libperl) =~ s/\$\(A\)/$self->{LIB_EXT}/;
159 }
160 unless ($libperl && -f $lperl) { # Ilya's code...
161- my $dir = $self->{PERL_SRC} || "$self->{PERL_ARCHLIB}/CORE";
162+ my $dir = $self->{PERL_SRC} || "/usr/lib";
163 $dir = "$self->{PERL_ARCHLIB}/.." if $self->{UNINSTALLED_PERL};
164 $libperl ||= "libperl$self->{LIB_EXT}";
165 $libperl = "$dir/$libperl";
166@@ -2998,8 +2975,7 @@ sub prefixify {
167 print STDERR " prefixify $var => $path\n" if $Verbose >= 2;
168 print STDERR " from $sprefix to $rprefix\n" if $Verbose >= 2;
169
170- if( $self->{ARGS}{PREFIX} &&
171- $path !~ s{^\Q$sprefix\E\b}{$rprefix}s )
172+ if( $path !~ s{^\Q$sprefix\E\b}{$rprefix}s && $self->{ARGS}{PREFIX} )
173 {
174
175 print STDERR " cannot prefix, using default.\n" if $Verbose >= 2;
176diff --git a/cpan/ExtUtils-MakeMaker/t/INST.t b/cpan/ExtUtils-MakeMaker/t/INST.t
177index 8a140eb..cf1410e 100755
178--- a/cpan/ExtUtils-MakeMaker/t/INST.t
179+++ b/cpan/ExtUtils-MakeMaker/t/INST.t
180@@ -59,9 +59,7 @@ isa_ok( $mm, 'ExtUtils::MakeMaker' );
181 is( $mm->{NAME}, 'Big::Dummy', 'NAME' );
182 is( $mm->{VERSION}, 0.01, 'VERSION' );
183
184-my $config_prefix = $Config{installprefixexp} || $Config{installprefix} ||
185- $Config{prefixexp} || $Config{prefix};
186-is( $mm->{PERLPREFIX}, $config_prefix, 'PERLPREFIX' );
187+is( $mm->{PERLPREFIX}, '$(PREFIX)', 'PERLPREFIX' );
188
189 is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE}, 'PERL_CORE' );
190
191diff --git a/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t b/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
192index 8bb9db8..316546d 100755
193--- a/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
194+++ b/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
195@@ -10,7 +10,7 @@ BEGIN {
196 }
197
198 use strict;
199-use Test::More tests => 52;
200+use Test::More tests => 47;
201 use MakeMaker::Test::Utils;
202 use MakeMaker::Test::Setup::BFD;
203 use ExtUtils::MakeMaker;
204@@ -56,16 +56,16 @@ like( $stdout->read, qr{
205 Writing\ $Makefile\ for\ Big::Dummy\n
206 }x );
207
208-is( $mm->{PREFIX}, '$(SITEPREFIX)', 'PREFIX set based on INSTALLDIRS' );
209+#is( $mm->{PREFIX}, '$(SITEPREFIX)', 'PREFIX set based on INSTALLDIRS' );
210
211 isa_ok( $mm, 'ExtUtils::MakeMaker' );
212
213 is( $mm->{NAME}, 'Big::Dummy', 'NAME' );
214 is( $mm->{VERSION}, 0.01, 'VERSION' );
215
216-foreach my $prefix (qw(PREFIX PERLPREFIX SITEPREFIX VENDORPREFIX)) {
217- unlike( $mm->{$prefix}, qr/\$\(PREFIX\)/ );
218-}
219+#foreach my $prefix (qw(PREFIX PERLPREFIX SITEPREFIX VENDORPREFIX)) {
220+# unlike( $mm->{$prefix}, qr/\$\(PREFIX\)/ );
221+#}
222
223
224 my $PREFIX = File::Spec->catdir('foo', 'bar');
225diff --git a/dist/ExtUtils-Install/lib/ExtUtils/Install.pm b/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
226index da58365..d6d5c11 100644
227--- a/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
228+++ b/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
229@@ -468,7 +468,7 @@ sub _can_write_dir {
230
231 =pod
232
233-=item _mkpath($dir,$show,$mode,$verbose,$dry_run)
234+=item _mkpath($dir,$show,$verbose,$dry_run)
235
236 Wrapper around File::Path::mkpath() to handle errors.
237
238@@ -485,13 +485,13 @@ writable.
239 =cut
240
241 sub _mkpath {
242- my ($dir,$show,$mode,$verbose,$dry_run)=@_;
243+ my ($dir,$show,$verbose,$dry_run)=@_;
244 if ( $verbose && $verbose > 1 && ! -d $dir) {
245 $show= 1;
246- printf "mkpath(%s,%d,%#o)\n", $dir, $show, $mode;
247+ printf "mkpath(%s,%d)\n", $dir, $show;
248 }
249 if (!$dry_run) {
250- if ( ! eval { File::Path::mkpath($dir,$show,$mode); 1 } ) {
251+ if ( ! eval { File::Path::mkpath($dir,$show); 1 } ) {
252 _choke("Can't create '$dir'","$@");
253 }
254
255@@ -796,7 +796,7 @@ sub install { #XXX OS-SPECIFIC
256 _chdir($cwd);
257 }
258 foreach my $targetdir (sort keys %check_dirs) {
259- _mkpath( $targetdir, 0, 0755, $verbose, $dry_run );
260+ _mkpath( $targetdir, 0, $verbose, $dry_run );
261 }
262 foreach my $found (@found_files) {
263 my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime,
264@@ -810,7 +810,7 @@ sub install { #XXX OS-SPECIFIC
265 $targetfile= _unlink_or_rename( $targetfile, 'tryhard', 'install' )
266 unless $dry_run;
267 } elsif ( ! -d $targetdir ) {
268- _mkpath( $targetdir, 0, 0755, $verbose, $dry_run );
269+ _mkpath( $targetdir, 0, $verbose, $dry_run );
270 }
271 print "Installing $targetfile\n";
272
273@@ -850,7 +850,7 @@ sub install { #XXX OS-SPECIFIC
274
275 if ($pack{'write'}) {
276 $dir = install_rooted_dir(dirname($pack{'write'}));
277- _mkpath( $dir, 0, 0755, $verbose, $dry_run );
278+ _mkpath( $dir, 0, $verbose, $dry_run );
279 print "Writing $pack{'write'}\n" if $verbose;
280 $packlist->write(install_rooted_file($pack{'write'})) unless $dry_run;
281 }
282@@ -1190,7 +1190,7 @@ be prepended as a directory to each installed file (and directory).
283 sub pm_to_blib {
284 my($fromto,$autodir,$pm_filter) = @_;
285
286- _mkpath($autodir,0,0755);
287+ _mkpath($autodir,0);
288 while(my($from, $to) = each %$fromto) {
289 if( -f $to && -s $from == -s $to && -M $to < -M $from ) {
290 print "Skip $to (unchanged)\n";
291@@ -1213,7 +1213,7 @@ sub pm_to_blib {
292 # we wont try hard here. its too likely to mess things up.
293 forceunlink($to);
294 } else {
295- _mkpath(dirname($to),0,0755);
296+ _mkpath(dirname($to),0);
297 }
298 if ($need_filtering) {
299 run_filter($pm_filter, $from, $to);
300diff --git a/lib/ExtUtils/Embed.pm b/lib/ExtUtils/Embed.pm
301index 24ae909..12d421d 100644
302--- a/lib/ExtUtils/Embed.pm
303+++ b/lib/ExtUtils/Embed.pm
304@@ -305,6 +305,9 @@ and extensions in your C/C++ applications.
305 Typically, an application B<Makefile> will invoke ExtUtils::Embed
306 functions while building your application.
307
308+Note that on Debian systems the B<libperl-dev> package is required for
309+compiling applications which embed an interpreter.
310+
311 =head1 @EXPORT
312
313 ExtUtils::Embed exports the following functions:
314--
315tg: (a508b62..) debian/extutils_hacks (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fakeroot.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fakeroot.diff
new file mode 100644
index 0000000000..2c8def5a81
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fakeroot.diff
@@ -0,0 +1,45 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Postpone LD_LIBRARY_PATH evaluation to the binary targets.
4
5Modify the setting of LD_LIBRARY_PATH to append pre-existing values at the
6time the rule is evaluated rather than when the Makefile is created.
7
8This is required when building packages with dpkg-buildpackage and fakeroot,
9since fakeroot (which now sets LD_LIBRARY_PATH) is not used for the "build"
10rule where the Makefile is created, but is for the clean/binary* targets.
11
12
13---
14 Makefile.SH | 9 ++-------
15 1 files changed, 2 insertions(+), 7 deletions(-)
16
17diff --git a/Makefile.SH b/Makefile.SH
18index fc13b2b..d420229 100755
19--- a/Makefile.SH
20+++ b/Makefile.SH
21@@ -50,12 +50,7 @@ case "$useshrplib" in
22 true)
23 # Prefix all runs of 'miniperl' and 'perl' with
24 # $ldlibpth so that ./perl finds *this* shared libperl.
25- case "$LD_LIBRARY_PATH" in
26- '')
27- ldlibpth="LD_LIBRARY_PATH=`pwd`";;
28- *)
29- ldlibpth="LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}";;
30- esac
31+ ldlibpth=LD_LIBRARY_PATH=`pwd`'$${LD_LIBRARY_PATH:+:}$$LD_LIBRARY_PATH'
32
33 pldlflags="$cccdlflags"
34 static_ldflags=''
35@@ -126,7 +121,7 @@ true)
36 ;;
37 esac
38 case "$ldlibpthname" in
39- '') ;;
40+ ''|LD_LIBRARY_PATH) ;;
41 *)
42 case "$osname" in
43 os2)
44--
45tg: (a508b62..) debian/fakeroot (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff
new file mode 100644
index 0000000000..375ae418f4
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/autodie-flock.diff
@@ -0,0 +1,100 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Allow for flock returning EAGAIN instead of EWOULDBLOCK on linux/parisc
5Bug-Debian: http://bugs.debian.org/543731
6Origin: upstream, http://github.com/pfenwick/autodie/commit/037738e11a6097734b0e1dabdd77b92e5fe35219
7
8
9---
10 cpan/autodie/lib/Fatal.pm | 14 +++++++++++++-
11 cpan/autodie/t/flock.t | 12 ++++++++++--
12 2 files changed, 23 insertions(+), 3 deletions(-)
13
14diff --git a/cpan/autodie/lib/Fatal.pm b/cpan/autodie/lib/Fatal.pm
15old mode 100644
16new mode 100755
17index 18e71ed..c17a257
18--- a/cpan/autodie/lib/Fatal.pm
19+++ b/cpan/autodie/lib/Fatal.pm
20@@ -5,6 +5,7 @@ use Carp;
21 use strict;
22 use warnings;
23 use Tie::RefHash; # To cache subroutine refs
24+use Config;
25
26 use constant PERL510 => ( $] >= 5.010 );
27
28@@ -52,6 +53,10 @@ our %_EWOULDBLOCK = (
29 MSWin32 => 33,
30 );
31
32+# the linux parisc port has separate EAGAIN and EWOULDBLOCK,
33+# and the kernel returns EAGAIN
34+my $try_EAGAIN = ($^O eq 'linux' and $Config{archname} =~ /hppa|parisc/) ? 1 : 0;
35+
36 # We have some tags that can be passed in for use with import.
37 # These are all assumed to be CORE::
38
39@@ -720,6 +725,11 @@ sub _one_invocation {
40 my $EWOULDBLOCK = eval { POSIX::EWOULDBLOCK(); }
41 || $_EWOULDBLOCK{$^O}
42 || _autocroak("Internal error - can't overload flock - EWOULDBLOCK not defined on this system.");
43+ my $EAGAIN = $EWOULDBLOCK;
44+ if ($try_EAGAIN) {
45+ $EAGAIN = eval { POSIX::EAGAIN(); }
46+ || _autocroak("Internal error - can't overload flock - EAGAIN not defined on this system.");
47+ }
48
49 require Fcntl; # For Fcntl::LOCK_NB
50
51@@ -735,7 +745,9 @@ sub _one_invocation {
52 # If we failed, but we're using LOCK_NB and
53 # returned EWOULDBLOCK, it's not a real error.
54
55- if (\$_[1] & Fcntl::LOCK_NB() and \$! == $EWOULDBLOCK ) {
56+ if (\$_[1] & Fcntl::LOCK_NB() and
57+ (\$! == $EWOULDBLOCK or
58+ ($try_EAGAIN and \$! == $EAGAIN ))) {
59 return \$retval;
60 }
61
62diff --git a/cpan/autodie/t/flock.t b/cpan/autodie/t/flock.t
63index a7550ba..6421a56 100755
64--- a/cpan/autodie/t/flock.t
65+++ b/cpan/autodie/t/flock.t
66@@ -2,7 +2,8 @@
67 use strict;
68 use Test::More;
69 use Fcntl qw(:flock);
70-use POSIX qw(EWOULDBLOCK);
71+use POSIX qw(EWOULDBLOCK EAGAIN);
72+use Config;
73
74 require Fatal;
75
76@@ -10,6 +11,9 @@ my $EWOULDBLOCK = eval { EWOULDBLOCK() }
77 || $Fatal::_EWOULDBLOCK{$^O}
78 || plan skip_all => "EWOULDBLOCK not defined on this system";
79
80+my $try_EAGAIN = ($^O eq 'linux' and $Config{archname} =~ /hppa|parisc/) ? 1 : 0;
81+my $EAGAIN = eval { EAGAIN() };
82+
83 my ($self_fh, $self_fh2);
84
85 eval {
86@@ -55,7 +59,11 @@ eval {
87 $return = flock($self_fh2, LOCK_EX | LOCK_NB);
88 };
89
90-is($!+0, $EWOULDBLOCK, "Double-flocking should be EWOULDBLOCK");
91+if (!$try_EAGAIN) {
92+ is($!+0, $EWOULDBLOCK, "Double-flocking should be EWOULDBLOCK");
93+} else {
94+ ok($!+0 == $EWOULDBLOCK || $!+0 == $EAGAIN, "Double-flocking should be EWOULDBLOCK or EAGAIN");
95+}
96 ok(!$return, "flocking a file twice should fail");
97 is($@, "", "Non-blocking flock should not fail on EWOULDBLOCK");
98
99--
100tg: (a508b62..) fixes/autodie-flock (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/concat-stack-corruption.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/concat-stack-corruption.diff
new file mode 100644
index 0000000000..40437f38ca
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/concat-stack-corruption.diff
@@ -0,0 +1,39 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Fix stack pointer corruption in pp_concat() with 'use encoding'
5Bug-Debian: http://bugs.debian.org/596105
6Bug: http://rt.perl.org/rt3/Ticket/Display.html?id=78674
7Origin: upstream, http://perl5.git.perl.org/perl.git/commit/e3393f51d48d8b790e26324eb0336fac9689fa46
8
9If the stack is reallocated during pp_concat() and 'use encoding' in
10effect, the stack pointer gets corrupted, causing memory allocation bugs
11and the like.
12
13---
14 pp_hot.c | 3 +++
15 1 files changed, 3 insertions(+), 0 deletions(-)
16
17diff --git a/pp_hot.c b/pp_hot.c
18index ee699ef..c5ed14e 100644
19--- a/pp_hot.c
20+++ b/pp_hot.c
21@@ -271,6 +271,8 @@ PP(pp_concat)
22 rbyte = !DO_UTF8(right);
23 }
24 if (lbyte != rbyte) {
25+ /* sv_utf8_upgrade_nomg() may reallocate the stack */
26+ PUTBACK;
27 if (lbyte)
28 sv_utf8_upgrade_nomg(TARG);
29 else {
30@@ -279,6 +281,7 @@ PP(pp_concat)
31 sv_utf8_upgrade_nomg(right);
32 rpv = SvPV_const(right, rlen);
33 }
34+ SPAGAIN;
35 }
36 sv_catpvn_nomg(TARG, rpv, rlen);
37
38--
39tg: (a508b62..) fixes/concat-stack-corruption (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/cpanplus-without-home.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/cpanplus-without-home.diff
new file mode 100644
index 0000000000..e7ff57c54f
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/cpanplus-without-home.diff
@@ -0,0 +1,32 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Fix CPANPLUS test failures when HOME doesn't exist
5Bug: http://rt.cpan.org/Public/Bug/Display.html?id=52988
6Bug-Debian: http://bugs.debian.org/577011
7Origin: upstream
8
9The Debian autobuilders are configured with a non-existing $ENV{HOME},
10triggering a bug in CPANPLUS that causes test failures.
11
12Fix from CPANPLUS-0.9001.
13
14---
15 cpan/CPANPLUS/lib/CPANPLUS/Internals/Utils.pm | 2 +-
16 1 files changed, 1 insertions(+), 1 deletions(-)
17
18diff --git a/cpan/CPANPLUS/lib/CPANPLUS/Internals/Utils.pm b/cpan/CPANPLUS/lib/CPANPLUS/Internals/Utils.pm
19index 27d2abc..8475c36 100644
20--- a/cpan/CPANPLUS/lib/CPANPLUS/Internals/Utils.pm
21+++ b/cpan/CPANPLUS/lib/CPANPLUS/Internals/Utils.pm
22@@ -5,7 +5,7 @@ use strict;
23 use CPANPLUS::Error;
24 use CPANPLUS::Internals::Constants;
25
26-use Cwd qw[chdir];
27+use Cwd qw[chdir cwd];
28 use File::Copy;
29 use Params::Check qw[check];
30 use Module::Load::Conditional qw[can_load];
31--
32tg: (a508b62..) fixes/cpanplus-without-home (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/h2ph-gcc-4.5.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/h2ph-gcc-4.5.diff
new file mode 100644
index 0000000000..9faab81f31
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/h2ph-gcc-4.5.diff
@@ -0,0 +1,108 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Author: Robin Barker <rmbarker@cpan.org>
4Subject: h2ph fix for gcc 4.5
5Bug-Debian: http://bugs.debian.org/599933
6Origin: upstream, http://perl5.git.perl.org/perl.git/commit/8d66b3f930dc6d88b524d103e304308ae73a46e7
7
8Fix h2ph and test. Needed to build with GCC 4.5.
9
10
11---
12 lib/h2ph.t | 12 ++++++++++--
13 utils/h2ph.PL | 28 +++++++++++++++++++++++-----
14 2 files changed, 33 insertions(+), 7 deletions(-)
15
16diff --git a/lib/h2ph.t b/lib/h2ph.t
17index 27dd7b9..8d62d46 100755
18--- a/lib/h2ph.t
19+++ b/lib/h2ph.t
20@@ -18,7 +18,7 @@ if (!(-e $extracted_program)) {
21 exit 0;
22 }
23
24-plan(4);
25+plan(5);
26
27 # quickly compare two text files
28 sub txt_compare {
29@@ -41,8 +41,16 @@ $result = runperl( progfile => 'lib/h2ph.pht',
30 stderr => 1 );
31 like( $result, qr/syntax OK$/, "output compiles");
32
33+$result = runperl( progfile => '_h2ph_pre.ph',
34+ switches => ['-c'],
35+ stderr => 1 );
36+like( $result, qr/syntax OK$/, "preamble compiles");
37+
38 $result = runperl( switches => ["-w"],
39- prog => '$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);');
40+ stderr => 1,
41+ prog => <<'PROG' );
42+$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);
43+PROG
44 is( $result, '', "output free of warnings" );
45
46 # cleanup
47diff --git a/utils/h2ph.PL b/utils/h2ph.PL
48index 8f56db4..1255807 100644
49--- a/utils/h2ph.PL
50+++ b/utils/h2ph.PL
51@@ -401,7 +401,10 @@ if ($opt_e && (scalar(keys %bad_file) > 0)) {
52 exit $Exit;
53
54 sub expr {
55- $new = '"(assembly code)"' and return if /\b__asm__\b/; # freak out.
56+ if (/\b__asm__\b/) { # freak out
57+ $new = '"(assembly code)"';
58+ return
59+ }
60 my $joined_args;
61 if(keys(%curargs)) {
62 $joined_args = join('|', keys(%curargs));
63@@ -770,7 +773,7 @@ sub inc_dirs
64 sub build_preamble_if_necessary
65 {
66 # Increment $VERSION every time this function is modified:
67- my $VERSION = 2;
68+ my $VERSION = 3;
69 my $preamble = "$Dest_dir/_h2ph_pre.ph";
70
71 # Can we skip building the preamble file?
72@@ -798,7 +801,16 @@ sub build_preamble_if_necessary
73 # parenthesized value: d=(v)
74 $define{$_} = $1;
75 }
76- if ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
77+ if (/^(\w+)\((\w)\)$/) {
78+ my($macro, $arg) = ($1, $2);
79+ my $def = $define{$_};
80+ $def =~ s/$arg/\$\{$arg\}/g;
81+ print PREAMBLE <<DEFINE;
82+unless (defined &$macro) { sub $macro(\$) { my (\$$arg) = \@_; \"$def\" } }
83+
84+DEFINE
85+ } elsif
86+ ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
87 # float:
88 print PREAMBLE
89 "unless (defined &$_) { sub $_() { $1 } }\n\n";
90@@ -807,8 +819,14 @@ sub build_preamble_if_necessary
91 print PREAMBLE
92 "unless (defined &$_) { sub $_() { $1 } }\n\n";
93 } elsif ($define{$_} =~ /^\w+$/) {
94- print PREAMBLE
95- "unless (defined &$_) { sub $_() { &$define{$_} } }\n\n";
96+ my $def = $define{$_};
97+ if ($isatype{$def}) {
98+ print PREAMBLE
99+ "unless (defined &$_) { sub $_() { \"$def\" } }\n\n";
100+ } else {
101+ print PREAMBLE
102+ "unless (defined &$_) { sub $_() { &$def } }\n\n";
103+ }
104 } else {
105 print PREAMBLE
106 "unless (defined &$_) { sub $_() { \"",
107--
108tg: (a508b62..) fixes/h2ph-gcc-4.5 (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/hurd-ccflags.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/hurd-ccflags.diff
new file mode 100644
index 0000000000..8868c643f1
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/hurd-ccflags.diff
@@ -0,0 +1,28 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Author: Samuel Thibault <sthibault@debian.org>
4Subject: Make hints/gnu.sh append to $ccflags rather than overriding them
5Bug-Debian: http://bugs.debian.org/587901
6
7Don't override possible extra $ccflags values given to Configure
8on GNU/Hurd.
9
10---
11 hints/gnu.sh | 2 +-
12 1 files changed, 1 insertions(+), 1 deletions(-)
13
14diff --git a/hints/gnu.sh b/hints/gnu.sh
15index 2cfce54..c1ba2db 100644
16--- a/hints/gnu.sh
17+++ b/hints/gnu.sh
18@@ -19,7 +19,7 @@ lddlflags='-shared'
19 ccdlflags='-Wl,-E'
20
21 # Debian bug #258618
22-ccflags='-D_GNU_SOURCE'
23+ccflags="-D_GNU_SOURCE $ccflags"
24
25 # The following routines are only available as stubs in GNU libc.
26 # XXX remove this once metaconf detects the GNU libc stubs.
27--
28tg: (a508b62..) fixes/hurd-ccflags (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/lc-numeric-docs.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/lc-numeric-docs.diff
new file mode 100644
index 0000000000..67a55da427
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/lc-numeric-docs.diff
@@ -0,0 +1,97 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: LC_NUMERIC documentation fixes
5Bug-Debian: http://bugs.debian.org/379329
6Bug: http://rt.perl.org/rt3/Ticket/Display.html?id=78452
7Origin: upstream, http://perl5.git.perl.org/perl.git/commit/903eb63f7d8d47a38971a8e9af7201b9927882cf
8
9LC_NUMERIC documentation updates fixing two errors:
10
11 - the early parts of perllocale.pod still say printf() uses LC_NUMERIC
12 with just 'use locale' when actually a POSIX::setlocale() call is
13 also needed
14
15 - format() hasn't used LC_NUMERIC unconditionally since 5.005_03
16 (commit 097ee67dff1c60f201bc09435bc6eaeeafcd8123).
17
18Test cases from the upstream commit dropped for the sake of simplicity.
19
20---
21 pod/perlform.pod | 20 ++++++++------------
22 pod/perllocale.pod | 15 ++++++---------
23 2 files changed, 14 insertions(+), 21 deletions(-)
24
25diff --git a/pod/perlform.pod b/pod/perlform.pod
26index 3cfa1b7..df0f0a1 100644
27--- a/pod/perlform.pod
28+++ b/pod/perlform.pod
29@@ -166,9 +166,9 @@ token on the first line. If an expression evaluates to a number with a
30 decimal part, and if the corresponding picture specifies that the decimal
31 part should appear in the output (that is, any picture except multiple "#"
32 characters B<without> an embedded "."), the character used for the decimal
33-point is B<always> determined by the current LC_NUMERIC locale. This
34-means that, if, for example, the run-time environment happens to specify a
35-German locale, "," will be used instead of the default ".". See
36+point is determined by the current LC_NUMERIC locale if C<use locale> is in
37+effect. This means that, if, for example, the run-time environment happens
38+to specify a German locale, "," will be used instead of the default ".". See
39 L<perllocale> and L<"WARNINGS"> for more information.
40
41
42@@ -442,15 +442,11 @@ Lexical variables (declared with "my") are not visible within a
43 format unless the format is declared within the scope of the lexical
44 variable. (They weren't visible at all before version 5.001.)
45
46-Formats are the only part of Perl that unconditionally use information
47-from a program's locale; if a program's environment specifies an
48-LC_NUMERIC locale, it is always used to specify the decimal point
49-character in formatted output. Perl ignores all other aspects of locale
50-handling unless the C<use locale> pragma is in effect. Formatted output
51-cannot be controlled by C<use locale> because the pragma is tied to the
52-block structure of the program, and, for historical reasons, formats
53-exist outside that block structure. See L<perllocale> for further
54-discussion of locale handling.
55+If a program's environment specifies an LC_NUMERIC locale and C<use
56+locale> is in effect when the format is declared, the locale is used
57+to specify the decimal point character in formatted output. Formatted
58+output cannot be controlled by C<use locale> at the time when write()
59+is called. See L<perllocale> for further discussion of locale handling.
60
61 Within strings that are to be displayed in a fixed length text field,
62 each control character is substituted by a space. (But remember the
63diff --git a/pod/perllocale.pod b/pod/perllocale.pod
64index 0dbabe7..0bec423 100644
65--- a/pod/perllocale.pod
66+++ b/pod/perllocale.pod
67@@ -115,8 +115,7 @@ ucfirst(), and lcfirst()) use C<LC_CTYPE>
68
69 =item *
70
71-B<The formatting functions> (printf(), sprintf() and write()) use
72-C<LC_NUMERIC>
73+B<Format declarations> (format()) use C<LC_NUMERIC>
74
75 =item *
76
77@@ -967,13 +966,11 @@ system's implementation of the locale system than by Perl.
78
79 =head2 write() and LC_NUMERIC
80
81-Formats are the only part of Perl that unconditionally use information
82-from a program's locale; if a program's environment specifies an
83-LC_NUMERIC locale, it is always used to specify the decimal point
84-character in formatted output. Formatted output cannot be controlled by
85-C<use locale> because the pragma is tied to the block structure of the
86-program, and, for historical reasons, formats exist outside that block
87-structure.
88+If a program's environment specifies an LC_NUMERIC locale and C<use
89+locale> is in effect when the format is declared, the locale is used
90+to specify the decimal point character in formatted output. Formatted
91+output cannot be controlled by C<use locale> at the time when write()
92+is called.
93
94 =head2 Freely available locale definitions
95
96--
97tg: (a508b62..) fixes/lc-numeric-docs (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/lc-numeric-sprintf.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/lc-numeric-sprintf.diff
new file mode 100644
index 0000000000..9fe07eb294
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/lc-numeric-sprintf.diff
@@ -0,0 +1,31 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Fix sprintf not to ignore LC_NUMERIC with constants
5Bug-Debian: http://bugs.debian.org/601549
6Bug: http://rt.perl.org/rt3/Ticket/Display.html?id=78632
7Origin: upstream, http://perl5.git.perl.org/perl.git/commit/b3fd61496ebc585b1115807e3195f17714662a09
8
9Don't fold constants in sprintf() if locales are used
10
11An upstream regression in 5.10.1 made sprintf() ignore LC_NUMERIC for
12numeric constants.
13
14---
15 op.c | 1 +
16 1 files changed, 1 insertions(+), 0 deletions(-)
17
18diff --git a/op.c b/op.c
19index e94f158..3c6badb 100644
20--- a/op.c
21+++ b/op.c
22@@ -2503,6 +2503,7 @@ S_fold_constants(pTHX_ register OP *o)
23 case OP_SLE:
24 case OP_SGE:
25 case OP_SCMP:
26+ case OP_SPRINTF:
27 /* XXX what about the numeric ops? */
28 if (PL_hints & HINT_LOCALE)
29 goto nope;
30--
31tg: (a508b62..) fixes/lc-numeric-sprintf (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/net_smtp_docs.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/net_smtp_docs.diff
new file mode 100644
index 0000000000..2307a09ea3
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/net_smtp_docs.diff
@@ -0,0 +1,25 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Document the Net::SMTP 'Port' option
4Bug-Debian: http://bugs.debian.org/100195
5Bug: http://rt.cpan.org/Public/Bug/Display.html?id=36038
6
7
8---
9 cpan/libnet/Net/SMTP.pm | 1 +
10 1 files changed, 1 insertions(+), 0 deletions(-)
11
12diff --git a/cpan/libnet/Net/SMTP.pm b/cpan/libnet/Net/SMTP.pm
13index a28496d..07b2498 100644
14--- a/cpan/libnet/Net/SMTP.pm
15+++ b/cpan/libnet/Net/SMTP.pm
16@@ -625,6 +625,7 @@ Net::SMTP will attempt to extract the address from the value passed.
17
18 B<Debug> - Enable debugging information
19
20+B<Port> - Select a port on the remote host to connect to (default is 25)
21
22 Example:
23
24--
25tg: (a508b62..) fixes/net_smtp_docs (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/processPL.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/processPL.diff
new file mode 100644
index 0000000000..fa2d7c365a
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/fixes/processPL.diff
@@ -0,0 +1,45 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Always use PERLRUNINST when building perl modules.
4Bug-Debian: http://bugs.debian.org/357264
5Bug: http://rt.cpan.org/Public/Bug/Display.html?id=17224
6
7Revert part of upstream change 24524 to always use PERLRUNINST when
8building perl modules: Some PDL demos expect blib to be implicitly
9searched.
10
11
12---
13 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 5 +----
14 1 files changed, 1 insertions(+), 4 deletions(-)
15
16diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
17index 239d6df..294d266 100644
18--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
19+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
20@@ -3043,14 +3043,11 @@ sub processPL {
21 # pm_to_blib depends on then it can't depend on pm_to_blib
22 # else we have a dependency loop.
23 my $pm_dep;
24- my $perlrun;
25 if( defined $self->{PM}{$target} ) {
26 $pm_dep = '';
27- $perlrun = 'PERLRUN';
28 }
29 else {
30 $pm_dep = 'pm_to_blib';
31- $perlrun = 'PERLRUNINST';
32 }
33
34 $m .= <<MAKE_FRAG;
35@@ -3059,7 +3056,7 @@ all :: $target
36 \$(NOECHO) \$(NOOP)
37
38 $target :: $plfile $pm_dep
39- \$($perlrun) $plfile $target
40+ \$(PERLRUNINST) $plfile $target
41 MAKE_FRAG
42
43 }
44--
45tg: (a508b62..) fixes/processPL (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/instmodsh_doc.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/instmodsh_doc.diff
new file mode 100644
index 0000000000..5555dfc43e
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/instmodsh_doc.diff
@@ -0,0 +1,28 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Debian policy doesn't install .packlist files for core or vendor.
4
5
6---
7 cpan/ExtUtils-MakeMaker/bin/instmodsh | 4 +++-
8 1 files changed, 3 insertions(+), 1 deletions(-)
9
10diff --git a/cpan/ExtUtils-MakeMaker/bin/instmodsh b/cpan/ExtUtils-MakeMaker/bin/instmodsh
11index 5874aa6..6a2f03e 100644
12--- a/cpan/ExtUtils-MakeMaker/bin/instmodsh
13+++ b/cpan/ExtUtils-MakeMaker/bin/instmodsh
14@@ -18,9 +18,11 @@ instmodsh - A shell to examine installed modules
15
16 =head1 DESCRIPTION
17
18-A little interface to ExtUtils::Installed to examine installed modules,
19+A little interface to ExtUtils::Installed to examine locally* installed modules,
20 validate your packlists and even create a tarball from an installed module.
21
22+*On Debian system, B<core> and B<vendor> modules are managed by C<dpkg>.
23+
24 =head1 SEE ALSO
25
26 ExtUtils::Installed
27--
28tg: (a508b62..) debian/instmodsh_doc (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/ld_run_path.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/ld_run_path.diff
new file mode 100644
index 0000000000..02610d34a9
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/ld_run_path.diff
@@ -0,0 +1,25 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Remove standard libs from LD_RUN_PATH as per Debian policy.
4
5
6---
7 .../ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm | 3 +++
8 1 files changed, 3 insertions(+), 0 deletions(-)
9
10diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
11index b807e97..6c955d7 100644
12--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
13+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
14@@ -53,6 +53,9 @@ sub _unix_os2_ext {
15 my($pwd) = cwd(); # from Cwd.pm
16 my($found) = 0;
17
18+ # Debian-specific: don't use LD_RUN_PATH for standard dirs
19+ $ld_run_path_seen{$_}++ for qw(/lib /usr/lib /usr/X11R6/lib);
20+
21 foreach my $thislib (split ' ', $potential_libs) {
22
23 # Handle possible linker path arguments.
24--
25tg: (a508b62..) debian/ld_run_path (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/libnet_config_path.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/libnet_config_path.diff
new file mode 100644
index 0000000000..a38e78ac34
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/libnet_config_path.diff
@@ -0,0 +1,37 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable.
4
5
6---
7 cpan/libnet/Net/Config.pm | 7 +++----
8 1 files changed, 3 insertions(+), 4 deletions(-)
9
10diff --git a/cpan/libnet/Net/Config.pm b/cpan/libnet/Net/Config.pm
11index db51c1f..8404593 100644
12--- a/cpan/libnet/Net/Config.pm
13+++ b/cpan/libnet/Net/Config.pm
14@@ -57,9 +57,8 @@ my %nc = (
15 }
16 TRY_INTERNET_CONFIG
17
18-my $file = __FILE__;
19+my $file = '/etc/perl/Net/libnet.cfg';
20 my $ref;
21-$file =~ s/Config.pm/libnet.cfg/;
22 if (-f $file) {
23 $ref = eval { local $SIG{__DIE__}; do $file };
24 if (ref($ref) eq 'HASH') {
25@@ -132,8 +131,8 @@ Net::Config - Local configuration data for libnet
26 C<Net::Config> holds configuration data for the modules in the libnet
27 distribution. During installation you will be asked for these values.
28
29-The configuration data is held globally in a file in the perl installation
30-tree, but a user may override any of these values by providing their own. This
31+The configuration data is held globally in C</etc/perl/Net/libnet.cfg>,
32+but a user may override any of these values by providing their own. This
33 can be done by having a C<.libnetrc> file in their home directory. This file
34 should return a reference to a HASH containing the keys described below.
35 For example
36--
37tg: (a508b62..) debian/libnet_config_path (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/m68k_thread_stress.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/m68k_thread_stress.diff
new file mode 100644
index 0000000000..675c9aa03d
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/m68k_thread_stress.diff
@@ -0,0 +1,45 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Disable some threads tests on m68k for now due to missing TLS.
4Closes: #495826, #517938
5
6
7---
8 dist/threads-shared/t/stress.t | 4 ++++
9 dist/threads-shared/t/waithires.t | 6 ++++++
10 2 files changed, 10 insertions(+), 0 deletions(-)
11
12diff --git a/dist/threads-shared/t/stress.t b/dist/threads-shared/t/stress.t
13index adfd1ed..8573f1a 100755
14--- a/dist/threads-shared/t/stress.t
15+++ b/dist/threads-shared/t/stress.t
16@@ -11,6 +11,10 @@ BEGIN {
17 print("1..0 # SKIP Broken under HP-UX 10.20\n");
18 exit(0);
19 }
20+ if ($^O eq 'linux' && $Config{archname} =~ /^m68k/) {
21+ print("1..0 # Skip: no TLS on m68k yet <http://bugs.debian.org/495826>\n");
22+ exit(0);
23+ }
24 }
25
26 use ExtUtils::testlib;
27diff --git a/dist/threads-shared/t/waithires.t b/dist/threads-shared/t/waithires.t
28index e3a1086..633374e 100755
29--- a/dist/threads-shared/t/waithires.t
30+++ b/dist/threads-shared/t/waithires.t
31@@ -16,6 +16,12 @@ BEGIN {
32 if (! eval 'use Time::HiRes "time"; 1') {
33 Test::skip_all('Time::HiRes not available');
34 }
35+
36+ if ($^O eq 'linux' && $Config{archname} =~ /^m68k/) {
37+ print("1..0 # Skip: no TLS on m68k yet <http://bugs.debian.org/495826>\n");
38+ exit(0);
39+ }
40+
41 }
42
43 use ExtUtils::testlib;
44--
45tg: (a508b62..) debian/m68k_thread_stress (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/mod_paths.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/mod_paths.diff
new file mode 100644
index 0000000000..26d8ed03a2
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/mod_paths.diff
@@ -0,0 +1,100 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Tweak @INC ordering for Debian
4
5Our order is:
6
7 etc (for config files)
8 site (5.8.1)
9 vendor (all)
10 core (5.8.1)
11 site (version-indep)
12 site (pre-5.8.1)
13
14The rationale being that an admin (via site), or module packager
15(vendor) can chose to shadow core modules when there is a newer
16version than is included in core.
17
18
19---
20 perl.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21 1 files changed, 58 insertions(+), 0 deletions(-)
22
23diff --git a/perl.c b/perl.c
24index 05cea40..023d6a0 100644
25--- a/perl.c
26+++ b/perl.c
27@@ -4125,6 +4125,11 @@ S_init_perllib(pTHX)
28 INCPUSH_ADD_SUB_DIRS|INCPUSH_CAN_RELOCATE);
29 #endif
30
31+#ifdef DEBIAN
32+ /* for configuration where /usr is mounted ro (CPAN::Config, Net::Config) */
33+ S_incpush_use_sep(aTHX_ STR_WITH_LEN("/etc/perl"), 0x0);
34+#endif
35+
36 #ifdef SITEARCH_EXP
37 /* sitearch is always relative to sitelib on Windows for
38 * DLL-based path intuition to work correctly */
39@@ -4242,6 +4247,59 @@ S_init_perllib(pTHX)
40 INCPUSH_ADD_OLD_VERS|INCPUSH_CAN_RELOCATE);
41 #endif
42
43+#ifdef DEBIAN
44+ /* Non-versioned site directory for local modules and for
45+ compatability with the previous packages' site dirs */
46+ S_incpush_use_sep(aTHX_ STR_WITH_LEN("/usr/local/lib/site_perl"),
47+ INCPUSH_ADD_SUB_DIRS);
48+
49+#ifdef PERL_INC_VERSION_LIST
50+ {
51+ struct stat s;
52+
53+ /* add small buffer in case old versions are longer than the
54+ current version */
55+ char sitearch[sizeof(SITEARCH_EXP)+16] = SITEARCH_EXP;
56+ char sitelib[sizeof(SITELIB_EXP)+16] = SITELIB_EXP;
57+ char const *vers[] = { PERL_INC_VERSION_LIST };
58+ char const **p;
59+
60+ char *arch_vers = strrchr(sitearch, '/');
61+ char *lib_vers = strrchr(sitelib, '/');
62+
63+ if (arch_vers && isdigit(*++arch_vers))
64+ *arch_vers = 0;
65+ else
66+ arch_vers = 0;
67+
68+ if (lib_vers && isdigit(*++lib_vers))
69+ *lib_vers = 0;
70+ else
71+ lib_vers = 0;
72+
73+ /* there is some duplication here as incpush does something
74+ similar internally, but required as sitearch is not a
75+ subdirectory of sitelib */
76+ for (p = vers; *p; p++)
77+ {
78+ if (arch_vers)
79+ {
80+ strcpy(arch_vers, *p);
81+ if (PerlLIO_stat(sitearch, &s) >= 0 && S_ISDIR(s.st_mode))
82+ S_incpush_use_sep(aTHX_ sitearch, strlen(sitearch), 0x0);
83+ }
84+
85+ if (lib_vers)
86+ {
87+ strcpy(lib_vers, *p);
88+ if (PerlLIO_stat(sitelib, &s) >= 0 && S_ISDIR(s.st_mode))
89+ S_incpush_use_sep(aTHX_ sitelib, strlen(sitelib), 0x0);
90+ }
91+ }
92+ }
93+#endif
94+#endif
95+
96 #ifdef PERL_OTHERLIBDIRS
97 S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_OTHERLIBDIRS),
98 INCPUSH_ADD_OLD_VERS|INCPUSH_ADD_ARCHONLY_SUB_DIRS
99--
100tg: (a508b62..) debian/mod_paths (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/module_build_man_extensions.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/module_build_man_extensions.diff
new file mode 100644
index 0000000000..63c8441bd2
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/module_build_man_extensions.diff
@@ -0,0 +1,33 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Adjust Module::Build manual page extensions for the Debian Perl policy
4Bug-Debian: http://bugs.debian.org/479460
5
6---
7 cpan/Module-Build/lib/Module/Build/Base.pm | 4 ++--
8 1 files changed, 2 insertions(+), 2 deletions(-)
9
10diff --git a/cpan/Module-Build/lib/Module/Build/Base.pm b/cpan/Module-Build/lib/Module/Build/Base.pm
11index 5bd8ec7..b4e606a 100644
12--- a/cpan/Module-Build/lib/Module/Build/Base.pm
13+++ b/cpan/Module-Build/lib/Module/Build/Base.pm
14@@ -3071,7 +3071,7 @@ sub manify_bin_pods {
15 foreach my $file (keys %$files) {
16 # Pod::Simple based parsers only support one document per instance.
17 # This is expected to change in a future version (Pod::Simple > 3.03).
18- my $parser = Pod::Man->new( section => 1 ); # binaries go in section 1
19+ my $parser = Pod::Man->new( section => '1p' ); # binaries go in section 1p
20 my $manpage = $self->man1page_name( $file ) . '.' .
21 $self->config( 'man1ext' );
22 my $outfile = File::Spec->catfile($mandir, $manpage);
23@@ -3096,7 +3096,7 @@ sub manify_lib_pods {
24 while (my ($file, $relfile) = each %$files) {
25 # Pod::Simple based parsers only support one document per instance.
26 # This is expected to change in a future version (Pod::Simple > 3.03).
27- my $parser = Pod::Man->new( section => 3 ); # libraries go in section 3
28+ my $parser = Pod::Man->new( section => '3pm' ); # libraries go in section 3pm
29 my $manpage = $self->man3page_name( $relfile ) . '.' .
30 $self->config( 'man3ext' );
31 my $outfile = File::Spec->catfile( $mandir, $manpage);
32--
33tg: (a508b62..) debian/module_build_man_extensions (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/patchlevel b/meta/recipes-devtools/perl/perl-5.12.3/debian/patchlevel
new file mode 100644
index 0000000000..0839fbd031
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/patchlevel
@@ -0,0 +1,45 @@
1Subject: List packaged patches for 5.12.3-2 in patchlevel.h
2Origin: vendor
3Bug-Debian: http://bugs.debian.org/567489
4
5The list can be refreshed from information in debian/patches by running
6'debian/rules refresh-patchlevel'.
7
8
9--- perl/patchlevel.bak
10+++ perl/patchlevel.h
11@@ -133,0 +134,34 @@
12+ ,"DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts"
13+ ,"DEBPKG:debian/cpan_config_path - Set location of CPAN::Config to /etc/perl as /usr may not be writable."
14+ ,"DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN."
15+ ,"DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly restrictive DB_File version check."
16+ ,"DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information."
17+ ,"DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs to follow symlinks and ignore missing @INC directories."
18+ ,"DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno version check due to upgrade problems with long-running processes."
19+ ,"DEBPKG:debian/extutils_hacks - Various debian-specific ExtUtils changes"
20+ ,"DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets."
21+ ,"DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor."
22+ ,"DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy."
23+ ,"DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable."
24+ ,"DEBPKG:debian/m68k_thread_stress - http://bugs.debian.org/495826 Disable some threads tests on m68k for now due to missing TLS."
25+ ,"DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian"
26+ ,"DEBPKG:debian/module_build_man_extensions - http://bugs.debian.org/479460 Adjust Module::Build manual page extensions for the Debian Perl policy"
27+ ,"DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list of libraries wanted to what we actually need."
28+ ,"DEBPKG:fixes/net_smtp_docs - http://bugs.debian.org/100195 [rt.cpan.org #36038] Document the Net::SMTP 'Port' option"
29+ ,"DEBPKG:fixes/processPL - http://bugs.debian.org/357264 [rt.cpan.org #17224] Always use PERLRUNINST when building perl modules."
30+ ,"DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip include directories in /usr/local"
31+ ,"DEBPKG:debian/disable-zlib-bundling - Disable zlib bundling in Compress::Raw::Zlib"
32+ ,"DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707 Configure CPANPLUS to use the site directories by default."
33+ ,"DEBPKG:debian/cpanplus_config_path - Save local versions of CPANPLUS::Config::System into /etc/perl."
34+ ,"DEBPKG:fixes/autodie-flock - http://bugs.debian.org/543731 Allow for flock returning EAGAIN instead of EWOULDBLOCK on linux/parisc"
35+ ,"DEBPKG:debian/devel-ppport-ia64-optim - http://bugs.debian.org/548943 Work around an ICE on ia64"
36+ ,"DEBPKG:fixes/cpanplus-without-home - http://bugs.debian.org/577011 [rt.cpan.org #52988] Fix CPANPLUS test failures when HOME doesn't exist"
37+ ,"DEBPKG:debian/arm_optim - http://bugs.debian.org/580334 Downgrade the optimization of sv.c on arm due to a gcc-4.4 bug"
38+ ,"DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/580034 Point users to Debian packages of deprecated core modules"
39+ ,"DEBPKG:fixes/hurd-ccflags - http://bugs.debian.org/587901 Make hints/gnu.sh append to $ccflags rather than overriding them"
40+ ,"DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts"
41+ ,"DEBPKG:fixes/lc-numeric-docs - http://bugs.debian.org/379329 [perl #78452] [903eb63] LC_NUMERIC documentation fixes"
42+ ,"DEBPKG:fixes/lc-numeric-sprintf - http://bugs.debian.org/601549 [perl #78632] [b3fd614] Fix sprintf not to ignore LC_NUMERIC with constants"
43+ ,"DEBPKG:fixes/concat-stack-corruption - http://bugs.debian.org/596105 [perl #78674] [e3393f5] Fix stack pointer corruption in pp_concat() with 'use encoding'"
44+ ,"DEBPKG:fixes/h2ph-gcc-4.5 - http://bugs.debian.org/599933 [8d66b3f] h2ph fix for gcc 4.5"
45+ ,"DEBPKG:patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.12.3-2 in patchlevel.h"
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/perlivp.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/perlivp.diff
new file mode 100644
index 0000000000..304e4c1af8
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/perlivp.diff
@@ -0,0 +1,40 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Make perlivp skip include directories in /usr/local
5Closes: 510895
6
7On Sat, Jan 10, 2009 at 12:37:18AM +1100, Brendan O'Dea wrote:
8> On Wed, Jan 7, 2009 at 12:21 AM, Niko Tyni <ntyni@debian.org> wrote:
9
10> > We could create the directories in a postinst script, but I'm not sure
11> > I see the point. They will be created automatically when installing
12> > CPAN modules.
13>
14> The directories are intentionally not created, as this way they are
15> excluded from the search path at start-up, saving a bunch of wasted
16> stats at use/require time in the common case that the user has not
17> installed any local packages. As Niko points out, they will be
18> created as required.
19
20
21Signed-off-by: Niko Tyni <ntyni@debian.org>
22
23---
24 utils/perlivp.PL | 1 +
25 1 files changed, 1 insertions(+), 0 deletions(-)
26
27diff --git a/utils/perlivp.PL b/utils/perlivp.PL
28index 9783261..156146f 100644
29--- a/utils/perlivp.PL
30+++ b/utils/perlivp.PL
31@@ -142,6 +142,7 @@ my $INC_total = 0;
32 my $INC_there = 0;
33 foreach (@INC) {
34 next if $_ eq '.'; # skip -d test here
35+ next if m|/usr/local|; # not shipped on Debian
36 if ($^O eq 'MacOS') {
37 next if $_ eq ':'; # skip -d test here
38 next if $_ eq 'Dev:Pseudo:'; # why is this in @INC?
39--
40tg: (a508b62..) debian/perlivp (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/prune_libs.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/prune_libs.diff
new file mode 100644
index 0000000000..5bb072c021
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/prune_libs.diff
@@ -0,0 +1,38 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Subject: Prune the list of libraries wanted to what we actually need.
4Bug-Debian: http://bugs.debian.org/128355
5
6We want to keep the dependencies on perl-base as small as possible,
7and some of the original list may be present on buildds (see Bug#128355).
8
9
10---
11 Configure | 5 ++---
12 1 files changed, 2 insertions(+), 3 deletions(-)
13
14diff --git a/Configure b/Configure
15index 3a8732b..6013c86 100755
16--- a/Configure
17+++ b/Configure
18@@ -1363,8 +1363,7 @@ libswanted_uselargefiles=''
19 : set usesocks on the Configure command line to enable socks.
20 : List of libraries we want.
21 : If anyone needs extra -lxxx, put those in a hint file.
22-libswanted="sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun"
23-libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
24+libswanted='gdbm gdbm_compat db dl m c crypt'
25 : We probably want to search /usr/shlib before most other libraries.
26 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
27 glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
28@@ -22179,7 +22178,7 @@ sunos*X4*)
29 ;;
30 *) case "$usedl" in
31 $define|true|[yY]*)
32- set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -lgdbm_compat @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'`
33+ set X `echo " $libs " | sed -e 's@ -lgdbm @ @' -e 's@ -lgdbm_compat @ @' -e 's@ -ldb @ @'`
34 shift
35 perllibs="$*"
36 ;;
37--
38tg: (a508b62..) debian/prune_libs (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/series b/meta/recipes-devtools/perl/perl-5.12.3/debian/series
new file mode 100644
index 0000000000..5425bc6323
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/series
@@ -0,0 +1,34 @@
1debian/arm_thread_stress_timeout.diff -p1
2debian/cpan_config_path.diff -p1
3debian/cpan_definstalldirs.diff -p1
4debian/db_file_ver.diff -p1
5debian/doc_info.diff -p1
6debian/enc2xs_inc.diff -p1
7debian/errno_ver.diff -p1
8debian/extutils_hacks.diff -p1
9debian/fakeroot.diff -p1
10debian/instmodsh_doc.diff -p1
11debian/ld_run_path.diff -p1
12debian/libnet_config_path.diff -p1
13debian/m68k_thread_stress.diff -p1
14debian/mod_paths.diff -p1
15debian/module_build_man_extensions.diff -p1
16debian/prune_libs.diff -p1
17fixes/net_smtp_docs.diff -p1
18fixes/processPL.diff -p1
19debian/perlivp.diff -p1
20debian/disable-zlib-bundling.diff -p1
21debian/cpanplus_definstalldirs.diff -p1
22debian/cpanplus_config_path.diff -p1
23fixes/autodie-flock.diff -p1
24debian/devel-ppport-ia64-optim.diff -p1
25fixes/cpanplus-without-home.diff -p1
26debian/arm_optim.diff -p1
27debian/deprecate-with-apt.diff -p1
28fixes/hurd-ccflags.diff -p1
29debian/squelch-locale-warnings.diff -p1
30fixes/lc-numeric-docs.diff -p1
31fixes/lc-numeric-sprintf.diff -p1
32fixes/concat-stack-corruption.diff -p1
33fixes/h2ph-gcc-4.5.diff -p1
34patchlevel -p1
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/debian/squelch-locale-warnings.diff b/meta/recipes-devtools/perl/perl-5.12.3/debian/squelch-locale-warnings.diff
new file mode 100644
index 0000000000..eac0fc30c4
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/debian/squelch-locale-warnings.diff
@@ -0,0 +1,55 @@
1Upstream-Status:Inappropriate [debian patch]
2
3From: Niko Tyni <ntyni@debian.org>
4Subject: Squelch locale warnings in Debian package maintainer scripts
5Bug-Debian: http://bugs.debian.org/508764
6
7The system locales are rather frequently out of sync with the C library
8during package upgrades, causing a huge amount of useless Perl locale
9warnings. Squelch them when running package maintainer scripts, detected
10by the DPKG_RUNNING_VERSION environment variable.
11
12Any real locale problem will show up after the system upgrade too, and
13the warning will be triggered normally again at that point.
14
15---
16 locale.c | 4 ++++
17 pod/perllocale.pod | 8 ++++++++
18 2 files changed, 12 insertions(+), 0 deletions(-)
19
20diff --git a/locale.c b/locale.c
21index 16ccce8..2592b3c 100644
22--- a/locale.c
23+++ b/locale.c
24@@ -359,6 +359,10 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
25 char *p;
26 const bool locwarn = (printwarn > 1 ||
27 (printwarn &&
28+
29+ /* Debian specific change - see http://bugs.debian.org/508764 */
30+ (!PerlEnv_getenv("DPKG_RUNNING_VERSION")) &&
31+
32 (!(p = PerlEnv_getenv("PERL_BADLANG")) || atoi(p))));
33
34 if (locwarn) {
35diff --git a/pod/perllocale.pod b/pod/perllocale.pod
36index 0dbabe7..60b7bab 100644
37--- a/pod/perllocale.pod
38+++ b/pod/perllocale.pod
39@@ -844,6 +844,14 @@ B<NOTE>: PERL_BADLANG only gives you a way to hide the warning message.
40 The message tells about some problem in your system's locale support,
41 and you should investigate what the problem is.
42
43+=item DPKG_RUNNING_VERSION
44+
45+On Debian systems, if the DPKG_RUNNING_VERSION environment variable is
46+set (to any value), the locale failure warnings will be suppressed just
47+like with a zero PERL_BADLANG setting. This is done to avoid floods
48+of spurious warnings during system upgrades.
49+See L<http://bugs.debian.org/508764>.
50+
51 =back
52
53 The following environment variables are not specific to Perl: They are
54--
55tg: (a508b62..) debian/squelch-locale-warnings (depends on: upstream)
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/generate-sh.patch b/meta/recipes-devtools/perl/perl-5.12.3/generate-sh.patch
new file mode 100644
index 0000000000..47f91c56d3
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/generate-sh.patch
@@ -0,0 +1,48 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Use the ld flags from the supplied configuration file. For sh we need the
4flags that specify to build PIC code so that the shared libraries work.
5
6Index: perl-5.8.8/Cross/generate_config_sh
7===================================================================
8--- perl-5.8.8.orig/Cross/generate_config_sh 2003-09-05 18:31:08.000000000 +1000
9+++ perl-5.8.8/Cross/generate_config_sh 2007-05-30 09:12:50.000000000 +1000
10@@ -19,10 +19,10 @@
11 $callbacks->{'ar'} = [\&simple_process, ["AR", "arm-linux-ar"]];
12 $callbacks->{'archname'} = [\&simple_process, ["SYS", "armv4l-linux"]];
13 $callbacks->{'cc'} = [\&simple_process, ["CC", "arm-linux-gcc"]];
14-$callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
15-$callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
16-$callbacks->{'ccflags'} = [\&simple_process, ["CFLAGS", "-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
17-$callbacks->{'ccflags_uselargefiles'} = [\&simple_process, ["CFLAGS", "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
18+#$callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
19+#$callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
20+$callbacks->{'ccflags'} = [\&simple_process_insert, ["CFLAGS", "-fno-strict-aliasing -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
21+$callbacks->{'ccflags_uselargefiles'} = [\&simple_process_insert, ["CFLAGS", "-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
22 $callbacks->{'ccname'} = [\&simple_process, ["CC", "arm-linux-gcc"]];
23 $callbacks->{'cpp'} = [\&simple_process, ["CCP", "arm-linux-cpp"]];
24 $callbacks->{'cppflags'} = [\&simple_process, ["CCPFLAGS", "-fno-strict-aliasing"]];
25@@ -105,6 +105,23 @@
26
27 }
28
29+# Insert env var into the variables value
30+sub simple_process_insert {
31+ my $key = shift;
32+ my $value = shift;
33+ my $envvar = $callbacks->{$key}->[1][0];
34+
35+ if ($ENV{$envvar}) {
36+ # Strip quotes from value
37+ $value =~ s/^\'//;
38+ $value =~ s/\'$//;
39+ # Remove -I/usr/local/... from the value
40+ $value =~ s#\W-I/usr/local/\w+\W# #g;
41+ # Prepend env var (OE setting) to value
42+ print("$key=\'$ENV{$envvar} $value\'\n");
43+ }
44+}
45+
46 sub library_munge {
47 my $key = shift;
48 my $value = shift;
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/installperl.patch b/meta/recipes-devtools/perl/perl-5.12.3/installperl.patch
new file mode 100644
index 0000000000..456012376e
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/installperl.patch
@@ -0,0 +1,17 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Index: perl-5.12.3/installperl
4===================================================================
5--- perl-5.12.3.orig/installperl
6+++ perl-5.12.3/installperl
7@@ -3,8 +3,8 @@
8 BEGIN {
9 require 5.004;
10 chdir '..' if !-d 'lib' and -d '../lib';
11- @INC = 'lib';
12- $ENV{PERL5LIB} = 'lib';
13+# @INC = 'lib';
14+# $ENV{PERL5LIB} = 'lib';
15
16 # This needs to be at BEGIN time, before any use of Config
17 require './install_lib.pl';
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/letgcc-find-errno.patch b/meta/recipes-devtools/perl/perl-5.12.3/letgcc-find-errno.patch
new file mode 100644
index 0000000000..5161e4c8b6
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/letgcc-find-errno.patch
@@ -0,0 +1,46 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3This removes all the logic that perl uses to locate an appropriate
4errno.h for the target. Instead we simple create a file that does
5
6 #include "errno.h"
7
8and use that as the file to parse. This is needed when using an
9external toolchain since perl will search in ${STAGING_INCDIR} for
10errno.h (when using gcc) and that isn't where it's located - its
11wherever the external toolchain keeps it's headers.
12
13Index: perl-5.12.3/ext/Errno/Errno_pm.PL
14===================================================================
15--- perl-5.12.3.orig/ext/Errno/Errno_pm.PL
16+++ perl-5.12.3/ext/Errno/Errno_pm.PL
17@@ -17,8 +17,18 @@ unlink "Errno.tmp" if -f "Errno.tmp";
18 open OUT, ">Errno.tmp" or die "Cannot open Errno.tmp: $!";
19 select OUT;
20 my $file;
21-my @files = get_files();
22-if ($Config{gccversion} ne '' && $^O eq 'MSWin32') {
23+#my @files = get_files();
24+my @files = ("errno.h");
25+
26+if (1) {
27+ open INCS, '>includes.c' or
28+ die "Cannot open includes.c";
29+ print INCS qq[#include "errno.h"\n];
30+ close INCS;
31+ process_file('includes.c');
32+ unlink 'includes.c';
33+}
34+elsif ($Config{gccversion} ne '' && $^O eq 'MSWin32') {
35 # MinGW complains "warning: #pragma system_header ignored outside include
36 # file" if the header files are processed individually, so include them
37 # all in .c file and process that instead.
38@@ -53,7 +63,7 @@ sub process_file {
39 chomp($file = `cygpath -w "$file"`);
40 }
41
42- return unless defined $file and -f $file;
43+# return unless defined $file and -f $file;
44 # warn "Processing $file\n";
45
46 local *FH;
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/native-nopacklist.patch b/meta/recipes-devtools/perl/perl-5.12.3/native-nopacklist.patch
new file mode 100644
index 0000000000..389c3342fb
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/native-nopacklist.patch
@@ -0,0 +1,82 @@
1Upstream-Status:Inappropriate [debian patch]
2
3Part of 52_debian_extutils_hacks.patch just to exclude the installation of .packlist files
4
5Index: perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
6===================================================================
7--- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
8+++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
9@@ -2047,8 +2047,6 @@ doc__install : doc_site_install
10
11 pure_perl_install :: all
12 $(NOECHO) $(MOD_INSTALL) \
13- read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
14- write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \
15 $(INST_LIB) $(DESTINSTALLPRIVLIB) \
16 $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
17 $(INST_BIN) $(DESTINSTALLBIN) \
18@@ -2074,8 +2072,6 @@ pure_site_install :: all
19
20 pure_vendor_install :: all
21 $(NOECHO) $(MOD_INSTALL) \
22- read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \
23- write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \
24 $(INST_LIB) $(DESTINSTALLVENDORLIB) \
25 $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
26 $(INST_BIN) $(DESTINSTALLVENDORBIN) \
27@@ -2084,37 +2080,19 @@ pure_vendor_install :: all
28 $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
29
30 doc_perl_install :: all
31- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
32- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
33- -$(NOECHO) $(DOC_INSTALL) \
34- "Module" "$(NAME)" \
35- "installed into" "$(INSTALLPRIVLIB)" \
36- LINKTYPE "$(LINKTYPE)" \
37- VERSION "$(VERSION)" \
38- EXE_FILES "$(EXE_FILES)" \
39- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
40
41 doc_site_install :: all
42- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
43- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
44+ $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
45+ -$(NOECHO) $(MKPATH) $(DESTINSTALLSITEARCH)
46 -$(NOECHO) $(DOC_INSTALL) \
47 "Module" "$(NAME)" \
48 "installed into" "$(INSTALLSITELIB)" \
49 LINKTYPE "$(LINKTYPE)" \
50 VERSION "$(VERSION)" \
51 EXE_FILES "$(EXE_FILES)" \
52- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
53+ >> }.$self->catfile('$(DESTINSTALLSITEARCH)','perllocal.pod').q{
54
55 doc_vendor_install :: all
56- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
57- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
58- -$(NOECHO) $(DOC_INSTALL) \
59- "Module" "$(NAME)" \
60- "installed into" "$(INSTALLVENDORLIB)" \
61- LINKTYPE "$(LINKTYPE)" \
62- VERSION "$(VERSION)" \
63- EXE_FILES "$(EXE_FILES)" \
64- >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{
65
66 };
67
68@@ -2123,13 +2101,12 @@ uninstall :: uninstall_from_$(INSTALLDIR
69 $(NOECHO) $(NOOP)
70
71 uninstall_from_perldirs ::
72- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{
73
74 uninstall_from_sitedirs ::
75 $(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{
76
77 uninstall_from_vendordirs ::
78- $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{
79+
80 };
81
82 join("",@m);
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/native-perlinc.patch b/meta/recipes-devtools/perl/perl-5.12.3/native-perlinc.patch
new file mode 100644
index 0000000000..f0bb1f6596
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/native-perlinc.patch
@@ -0,0 +1,26 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm
4===================================================================
5--- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000
6+++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000
7@@ -1597,6 +1597,19 @@
8 $self->{PERL_LIB} ||= $Config{privlibexp};
9 $self->{PERL_ARCHLIB} ||= $Config{archlibexp};
10 $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now
11+ # Check for environment override so we'll find the headers in the correct place
12+ if (defined $ENV{PERL_LIB})
13+ {
14+ $self->{PERL_LIB} = $ENV{PERL_LIB};
15+ }
16+ if (defined $ENV{PERL_ARCHLIB})
17+ {
18+ $self->{PERL_ARCHLIB} = $ENV{PERL_ARCHLIB};
19+ }
20+ if (defined $ENV{PERL_INC})
21+ {
22+ $self->{PERL_INC} = $ENV{PERL_INC};
23+ }
24 my $perl_h;
25
26 if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h"))
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/native-ssp.patch b/meta/recipes-devtools/perl/perl-5.12.3/native-ssp.patch
new file mode 100644
index 0000000000..e1e6f08735
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/native-ssp.patch
@@ -0,0 +1,16 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Fix for compiling with ssp enabled gcc:
4See http://bugs.openembedded.net/show_bug.cgi?id=1980
5
6diff -Naur perl-5.8.7.orig/cflags.SH perl-5.8.7/cflags.SH
7--- perl-5.8.7.orig/cflags.SH 2002-09-30 10:59:07.000000000 +0000
8+++ perl-5.8.7/cflags.SH 2005-10-02 04:08:39.000000000 +0000
9@@ -165,6 +165,8 @@
10 esac
11
12 : Can we perhaps use $ansi2knr here
13+ [[ $file == regcomp ]] && export ccflags="${ccflags} -fno-stack-protector"
14+ [[ $file == regexec ]] && export ccflags="${ccflags} -fno-stack-protector"
15 echo "$cc -c -DPERL_CORE $ccflags $optimize $warn"
16 eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $warn"'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_1.patch b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_1.patch
new file mode 100644
index 0000000000..d5a6295386
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_1.patch
@@ -0,0 +1,27 @@
1Upstream-Status:Inappropriate [Backport]
2
3Imported from perl git tree by Nitin A Kamble <nitin.a.kamble@intel.com>
42011-02-23
5
6commit 6695a346c41138df5b2c0e26b9a49b1f96137da0
7Author: Tony Cook <tony@openbsd32.tony.develop-help.com>
8Date: Thu Jul 22 09:54:13 2010 +1000
9
10 make_ext.pl populates @INC correctly, don't override it badly
11
12 PERL5LIB is populated by make_ext.pl with paths to the modules we need
13 to run, don't override this with "../../lib" since that may not have
14 been populated yet in a parallel build.
15
16diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL
17index 392b6fb..9e6d091 100644
18--- a/ext/POSIX/Makefile.PL
19+++ b/ext/POSIX/Makefile.PL
20@@ -1,7 +1,3 @@
21-# Explicitly avoid including '.' in @INC; autoloader gets confused since it
22-# can find POSIX.pm, but can't find autosplit.ix.
23-BEGIN { @INC = '../../lib';}
24-#
25 use ExtUtils::MakeMaker;
26 use ExtUtils::Constant 0.11 'WriteConstants';
27 use Config;
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_2.patch b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_2.patch
new file mode 100644
index 0000000000..a3432ab430
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_2.patch
@@ -0,0 +1,24 @@
1Upstream-Status:Inappropriate [Backport]
2
3Imported from perl git tree by Nitin A Kamble <nitin.a.kamble@intel.com>
42011-02-23
5
6commit 24e93d7838b346d2ed632075f3d824a325170616
7Author: Tony Cook <tony@develop-help.com>
8Date: Sat Aug 14 00:21:29 2010 +1000
9
10 POSIX/t/posix.t expects a certain start to Makefile.PL
11
12 6695a346 changed the start of Makefile.PL, but t/posix.t reads that to
13 test its read() implementation, restore enough of the original for the
14 test to pass.
15
16diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL
17index 9e6d091..292882c 100644
18--- a/ext/POSIX/Makefile.PL
19+++ b/ext/POSIX/Makefile.PL
20@@ -1,3 +1,4 @@
21+# Expect this line to be read by t/posix.t, don't change it
22 use ExtUtils::MakeMaker;
23 use ExtUtils::Constant 0.11 'WriteConstants';
24 use Config;
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch
new file mode 100644
index 0000000000..26af1f1d95
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_3.patch
@@ -0,0 +1,6585 @@
1Upstream-Status:Inappropriate [Backport]
2
3Imported from perl git tree by Nitin A Kamble <nitin.a.kamble@intel.com>
42011-02-23
5
6commit 4feb80ac47a22e7de7d7c1c1d5dfb3d744a2a3a7
7Author: Jerry D. Hedden <jdhedden@cpan.org>
8Date: Tue Aug 17 13:17:11 2010 -0400
9
10 Move POSIX.pm to lib/POSIX.pm to fix autosplitter problem
11
12diff --git a/MANIFEST b/MANIFEST
13index 3036d73..faf8974 100644
14--- a/MANIFEST
15+++ b/MANIFEST
16@@ -3183,9 +3183,9 @@ ext/POSIX/hints/openbsd.pl Hint for POSIX for named architecture
17 ext/POSIX/hints/sunos_4.pl Hint for POSIX for named architecture
18 ext/POSIX/hints/svr4.pl Hint for POSIX for named architecture
19 ext/POSIX/hints/uts.pl Hint for POSIX for named architecture
20+ext/POSIX/lib/POSIX.pm POSIX extension Perl module
21+ext/POSIX/lib/POSIX.pod POSIX extension documentation
22 ext/POSIX/Makefile.PL POSIX extension makefile writer
23-ext/POSIX/POSIX.pm POSIX extension Perl module
24-ext/POSIX/POSIX.pod POSIX extension documentation
25 ext/POSIX/POSIX.xs POSIX extension external subroutines
26 ext/POSIX/t/is.t See if POSIX isxxx() work
27 ext/POSIX/t/math.t Basic math tests for POSIX
28diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL
29index 292882c..07c3841 100644
30--- a/ext/POSIX/Makefile.PL
31+++ b/ext/POSIX/Makefile.PL
32@@ -18,7 +18,8 @@ WriteMakefile(
33 NAME => 'POSIX',
34 @libs,
35 XSPROTOARG => '-noprototypes', # XXX remove later?
36- VERSION_FROM => 'POSIX.pm',
37+ VERSION_FROM => 'lib/POSIX.pm',
38+ ABSTRACT_FROM => 'lib/POSIX.pod',
39 realclean => {FILES=> 'const-c.inc const-xs.inc'},
40 );
41
42diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm
43deleted file mode 100644
44index ffbd9de..0000000
45--- a/ext/POSIX/POSIX.pm
46+++ /dev/null
47@@ -1,1042 +0,0 @@
48-package POSIX;
49-use strict;
50-use warnings;
51-
52-our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = ();
53-
54-our $VERSION = "1.19";
55-
56-use AutoLoader;
57-
58-use XSLoader ();
59-
60-use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
61- F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
62- O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
63- O_WRONLY SEEK_CUR SEEK_END SEEK_SET
64- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
65- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
66- S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
67-
68-# Grandfather old foo_h form to new :foo_h form
69-my $loaded;
70-
71-sub import {
72- load_imports() unless $loaded++;
73- my $this = shift;
74- my @list = map { m/^\w+_h$/ ? ":$_" : $_ } @_;
75- local $Exporter::ExportLevel = 1;
76- Exporter::import($this,@list);
77-}
78-
79-sub croak { require Carp; goto &Carp::croak }
80-# declare usage to assist AutoLoad
81-sub usage;
82-
83-XSLoader::load 'POSIX', $VERSION;
84-
85-sub AUTOLOAD {
86- no strict;
87- no warnings 'uninitialized';
88- if ($AUTOLOAD =~ /::(_?[a-z])/) {
89- # require AutoLoader;
90- $AutoLoader::AUTOLOAD = $AUTOLOAD;
91- goto &AutoLoader::AUTOLOAD
92- }
93- local $! = 0;
94- my $constname = $AUTOLOAD;
95- $constname =~ s/.*:://;
96- my ($error, $val) = constant($constname);
97- croak $error if $error;
98- *$AUTOLOAD = sub { $val };
99-
100- goto &$AUTOLOAD;
101-}
102-
103-package POSIX::SigAction;
104-
105-use AutoLoader 'AUTOLOAD';
106-
107-package POSIX::SigRt;
108-
109-use AutoLoader 'AUTOLOAD';
110-
111-use Tie::Hash;
112-
113-use vars qw($SIGACTION_FLAGS $_SIGRTMIN $_SIGRTMAX $_sigrtn @ISA);
114-@POSIX::SigRt::ISA = qw(Tie::StdHash);
115-
116-$SIGACTION_FLAGS = 0;
117-
118-tie %POSIX::SIGRT, 'POSIX::SigRt';
119-
120-sub DESTROY {};
121-
122-package POSIX;
123-
124-1;
125-__END__
126-
127-sub usage {
128- my ($mess) = @_;
129- croak "Usage: POSIX::$mess";
130-}
131-
132-sub redef {
133- my ($mess) = @_;
134- croak "Use method $mess instead";
135-}
136-
137-sub unimpl {
138- my ($mess) = @_;
139- $mess =~ s/xxx//;
140- croak "Unimplemented: POSIX::$mess";
141-}
142-
143-sub assert {
144- usage "assert(expr)" if @_ != 1;
145- if (!$_[0]) {
146- croak "Assertion failed";
147- }
148-}
149-
150-sub tolower {
151- usage "tolower(string)" if @_ != 1;
152- lc($_[0]);
153-}
154-
155-sub toupper {
156- usage "toupper(string)" if @_ != 1;
157- uc($_[0]);
158-}
159-
160-sub closedir {
161- usage "closedir(dirhandle)" if @_ != 1;
162- CORE::closedir($_[0]);
163-}
164-
165-sub opendir {
166- usage "opendir(directory)" if @_ != 1;
167- my $dirhandle;
168- CORE::opendir($dirhandle, $_[0])
169- ? $dirhandle
170- : undef;
171-}
172-
173-sub readdir {
174- usage "readdir(dirhandle)" if @_ != 1;
175- CORE::readdir($_[0]);
176-}
177-
178-sub rewinddir {
179- usage "rewinddir(dirhandle)" if @_ != 1;
180- CORE::rewinddir($_[0]);
181-}
182-
183-sub errno {
184- usage "errno()" if @_ != 0;
185- $! + 0;
186-}
187-
188-sub creat {
189- usage "creat(filename, mode)" if @_ != 2;
190- &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1]);
191-}
192-
193-sub fcntl {
194- usage "fcntl(filehandle, cmd, arg)" if @_ != 3;
195- CORE::fcntl($_[0], $_[1], $_[2]);
196-}
197-
198-sub getgrgid {
199- usage "getgrgid(gid)" if @_ != 1;
200- CORE::getgrgid($_[0]);
201-}
202-
203-sub getgrnam {
204- usage "getgrnam(name)" if @_ != 1;
205- CORE::getgrnam($_[0]);
206-}
207-
208-sub atan2 {
209- usage "atan2(x,y)" if @_ != 2;
210- CORE::atan2($_[0], $_[1]);
211-}
212-
213-sub cos {
214- usage "cos(x)" if @_ != 1;
215- CORE::cos($_[0]);
216-}
217-
218-sub exp {
219- usage "exp(x)" if @_ != 1;
220- CORE::exp($_[0]);
221-}
222-
223-sub fabs {
224- usage "fabs(x)" if @_ != 1;
225- CORE::abs($_[0]);
226-}
227-
228-sub log {
229- usage "log(x)" if @_ != 1;
230- CORE::log($_[0]);
231-}
232-
233-sub pow {
234- usage "pow(x,exponent)" if @_ != 2;
235- $_[0] ** $_[1];
236-}
237-
238-sub sin {
239- usage "sin(x)" if @_ != 1;
240- CORE::sin($_[0]);
241-}
242-
243-sub sqrt {
244- usage "sqrt(x)" if @_ != 1;
245- CORE::sqrt($_[0]);
246-}
247-
248-sub getpwnam {
249- usage "getpwnam(name)" if @_ != 1;
250- CORE::getpwnam($_[0]);
251-}
252-
253-sub getpwuid {
254- usage "getpwuid(uid)" if @_ != 1;
255- CORE::getpwuid($_[0]);
256-}
257-
258-sub longjmp {
259- unimpl "longjmp() is C-specific: use die instead";
260-}
261-
262-sub setjmp {
263- unimpl "setjmp() is C-specific: use eval {} instead";
264-}
265-
266-sub siglongjmp {
267- unimpl "siglongjmp() is C-specific: use die instead";
268-}
269-
270-sub sigsetjmp {
271- unimpl "sigsetjmp() is C-specific: use eval {} instead";
272-}
273-
274-sub kill {
275- usage "kill(pid, sig)" if @_ != 2;
276- CORE::kill $_[1], $_[0];
277-}
278-
279-sub raise {
280- usage "raise(sig)" if @_ != 1;
281- CORE::kill $_[0], $$; # Is this good enough?
282-}
283-
284-sub offsetof {
285- unimpl "offsetof() is C-specific, stopped";
286-}
287-
288-sub clearerr {
289- redef "IO::Handle::clearerr()";
290-}
291-
292-sub fclose {
293- redef "IO::Handle::close()";
294-}
295-
296-sub fdopen {
297- redef "IO::Handle::new_from_fd()";
298-}
299-
300-sub feof {
301- redef "IO::Handle::eof()";
302-}
303-
304-sub fgetc {
305- redef "IO::Handle::getc()";
306-}
307-
308-sub fgets {
309- redef "IO::Handle::gets()";
310-}
311-
312-sub fileno {
313- redef "IO::Handle::fileno()";
314-}
315-
316-sub fopen {
317- redef "IO::File::open()";
318-}
319-
320-sub fprintf {
321- unimpl "fprintf() is C-specific--use printf instead";
322-}
323-
324-sub fputc {
325- unimpl "fputc() is C-specific--use print instead";
326-}
327-
328-sub fputs {
329- unimpl "fputs() is C-specific--use print instead";
330-}
331-
332-sub fread {
333- unimpl "fread() is C-specific--use read instead";
334-}
335-
336-sub freopen {
337- unimpl "freopen() is C-specific--use open instead";
338-}
339-
340-sub fscanf {
341- unimpl "fscanf() is C-specific--use <> and regular expressions instead";
342-}
343-
344-sub fseek {
345- redef "IO::Seekable::seek()";
346-}
347-
348-sub fsync {
349- redef "IO::Handle::sync()";
350-}
351-
352-sub ferror {
353- redef "IO::Handle::error()";
354-}
355-
356-sub fflush {
357- redef "IO::Handle::flush()";
358-}
359-
360-sub fgetpos {
361- redef "IO::Seekable::getpos()";
362-}
363-
364-sub fsetpos {
365- redef "IO::Seekable::setpos()";
366-}
367-
368-sub ftell {
369- redef "IO::Seekable::tell()";
370-}
371-
372-sub fwrite {
373- unimpl "fwrite() is C-specific--use print instead";
374-}
375-
376-sub getc {
377- usage "getc(handle)" if @_ != 1;
378- CORE::getc($_[0]);
379-}
380-
381-sub getchar {
382- usage "getchar()" if @_ != 0;
383- CORE::getc(STDIN);
384-}
385-
386-sub gets {
387- usage "gets()" if @_ != 0;
388- scalar <STDIN>;
389-}
390-
391-sub perror {
392- print STDERR "@_: " if @_;
393- print STDERR $!,"\n";
394-}
395-
396-sub printf {
397- usage "printf(pattern, args...)" if @_ < 1;
398- CORE::printf STDOUT @_;
399-}
400-
401-sub putc {
402- unimpl "putc() is C-specific--use print instead";
403-}
404-
405-sub putchar {
406- unimpl "putchar() is C-specific--use print instead";
407-}
408-
409-sub puts {
410- unimpl "puts() is C-specific--use print instead";
411-}
412-
413-sub remove {
414- usage "remove(filename)" if @_ != 1;
415- (-d $_[0]) ? CORE::rmdir($_[0]) : CORE::unlink($_[0]);
416-}
417-
418-sub rename {
419- usage "rename(oldfilename, newfilename)" if @_ != 2;
420- CORE::rename($_[0], $_[1]);
421-}
422-
423-sub rewind {
424- usage "rewind(filehandle)" if @_ != 1;
425- CORE::seek($_[0],0,0);
426-}
427-
428-sub scanf {
429- unimpl "scanf() is C-specific--use <> and regular expressions instead";
430-}
431-
432-sub sprintf {
433- usage "sprintf(pattern,args)" if @_ == 0;
434- CORE::sprintf(shift,@_);
435-}
436-
437-sub sscanf {
438- unimpl "sscanf() is C-specific--use regular expressions instead";
439-}
440-
441-sub tmpfile {
442- redef "IO::File::new_tmpfile()";
443-}
444-
445-sub ungetc {
446- redef "IO::Handle::ungetc()";
447-}
448-
449-sub vfprintf {
450- unimpl "vfprintf() is C-specific";
451-}
452-
453-sub vprintf {
454- unimpl "vprintf() is C-specific";
455-}
456-
457-sub vsprintf {
458- unimpl "vsprintf() is C-specific";
459-}
460-
461-sub abs {
462- usage "abs(x)" if @_ != 1;
463- CORE::abs($_[0]);
464-}
465-
466-sub atexit {
467- unimpl "atexit() is C-specific: use END {} instead";
468-}
469-
470-sub atof {
471- unimpl "atof() is C-specific, stopped";
472-}
473-
474-sub atoi {
475- unimpl "atoi() is C-specific, stopped";
476-}
477-
478-sub atol {
479- unimpl "atol() is C-specific, stopped";
480-}
481-
482-sub bsearch {
483- unimpl "bsearch() not supplied";
484-}
485-
486-sub calloc {
487- unimpl "calloc() is C-specific, stopped";
488-}
489-
490-sub div {
491- unimpl "div() is C-specific, use /, % and int instead";
492-}
493-
494-sub exit {
495- usage "exit(status)" if @_ != 1;
496- CORE::exit($_[0]);
497-}
498-
499-sub free {
500- unimpl "free() is C-specific, stopped";
501-}
502-
503-sub getenv {
504- usage "getenv(name)" if @_ != 1;
505- $ENV{$_[0]};
506-}
507-
508-sub labs {
509- unimpl "labs() is C-specific, use abs instead";
510-}
511-
512-sub ldiv {
513- unimpl "ldiv() is C-specific, use /, % and int instead";
514-}
515-
516-sub malloc {
517- unimpl "malloc() is C-specific, stopped";
518-}
519-
520-sub qsort {
521- unimpl "qsort() is C-specific, use sort instead";
522-}
523-
524-sub rand {
525- unimpl "rand() is non-portable, use Perl's rand instead";
526-}
527-
528-sub realloc {
529- unimpl "realloc() is C-specific, stopped";
530-}
531-
532-sub srand {
533- unimpl "srand()";
534-}
535-
536-sub system {
537- usage "system(command)" if @_ != 1;
538- CORE::system($_[0]);
539-}
540-
541-sub memchr {
542- unimpl "memchr() is C-specific, use index() instead";
543-}
544-
545-sub memcmp {
546- unimpl "memcmp() is C-specific, use eq instead";
547-}
548-
549-sub memcpy {
550- unimpl "memcpy() is C-specific, use = instead";
551-}
552-
553-sub memmove {
554- unimpl "memmove() is C-specific, use = instead";
555-}
556-
557-sub memset {
558- unimpl "memset() is C-specific, use x instead";
559-}
560-
561-sub strcat {
562- unimpl "strcat() is C-specific, use .= instead";
563-}
564-
565-sub strchr {
566- unimpl "strchr() is C-specific, use index() instead";
567-}
568-
569-sub strcmp {
570- unimpl "strcmp() is C-specific, use eq instead";
571-}
572-
573-sub strcpy {
574- unimpl "strcpy() is C-specific, use = instead";
575-}
576-
577-sub strcspn {
578- unimpl "strcspn() is C-specific, use regular expressions instead";
579-}
580-
581-sub strerror {
582- usage "strerror(errno)" if @_ != 1;
583- local $! = $_[0];
584- $! . "";
585-}
586-
587-sub strlen {
588- unimpl "strlen() is C-specific, use length instead";
589-}
590-
591-sub strncat {
592- unimpl "strncat() is C-specific, use .= instead";
593-}
594-
595-sub strncmp {
596- unimpl "strncmp() is C-specific, use eq instead";
597-}
598-
599-sub strncpy {
600- unimpl "strncpy() is C-specific, use = instead";
601-}
602-
603-sub strpbrk {
604- unimpl "strpbrk() is C-specific, stopped";
605-}
606-
607-sub strrchr {
608- unimpl "strrchr() is C-specific, use rindex() instead";
609-}
610-
611-sub strspn {
612- unimpl "strspn() is C-specific, stopped";
613-}
614-
615-sub strstr {
616- usage "strstr(big, little)" if @_ != 2;
617- CORE::index($_[0], $_[1]);
618-}
619-
620-sub strtok {
621- unimpl "strtok() is C-specific, stopped";
622-}
623-
624-sub chmod {
625- usage "chmod(mode, filename)" if @_ != 2;
626- CORE::chmod($_[0], $_[1]);
627-}
628-
629-sub fstat {
630- usage "fstat(fd)" if @_ != 1;
631- local *TMP;
632- CORE::open(TMP, "<&$_[0]"); # Gross.
633- my @l = CORE::stat(TMP);
634- CORE::close(TMP);
635- @l;
636-}
637-
638-sub mkdir {
639- usage "mkdir(directoryname, mode)" if @_ != 2;
640- CORE::mkdir($_[0], $_[1]);
641-}
642-
643-sub stat {
644- usage "stat(filename)" if @_ != 1;
645- CORE::stat($_[0]);
646-}
647-
648-sub umask {
649- usage "umask(mask)" if @_ != 1;
650- CORE::umask($_[0]);
651-}
652-
653-sub wait {
654- usage "wait()" if @_ != 0;
655- CORE::wait();
656-}
657-
658-sub waitpid {
659- usage "waitpid(pid, options)" if @_ != 2;
660- CORE::waitpid($_[0], $_[1]);
661-}
662-
663-sub gmtime {
664- usage "gmtime(time)" if @_ != 1;
665- CORE::gmtime($_[0]);
666-}
667-
668-sub localtime {
669- usage "localtime(time)" if @_ != 1;
670- CORE::localtime($_[0]);
671-}
672-
673-sub time {
674- usage "time()" if @_ != 0;
675- CORE::time;
676-}
677-
678-sub alarm {
679- usage "alarm(seconds)" if @_ != 1;
680- CORE::alarm($_[0]);
681-}
682-
683-sub chdir {
684- usage "chdir(directory)" if @_ != 1;
685- CORE::chdir($_[0]);
686-}
687-
688-sub chown {
689- usage "chown(uid, gid, filename)" if @_ != 3;
690- CORE::chown($_[0], $_[1], $_[2]);
691-}
692-
693-sub execl {
694- unimpl "execl() is C-specific, stopped";
695-}
696-
697-sub execle {
698- unimpl "execle() is C-specific, stopped";
699-}
700-
701-sub execlp {
702- unimpl "execlp() is C-specific, stopped";
703-}
704-
705-sub execv {
706- unimpl "execv() is C-specific, stopped";
707-}
708-
709-sub execve {
710- unimpl "execve() is C-specific, stopped";
711-}
712-
713-sub execvp {
714- unimpl "execvp() is C-specific, stopped";
715-}
716-
717-sub fork {
718- usage "fork()" if @_ != 0;
719- CORE::fork;
720-}
721-
722-sub getegid {
723- usage "getegid()" if @_ != 0;
724- $) + 0;
725-}
726-
727-sub geteuid {
728- usage "geteuid()" if @_ != 0;
729- $> + 0;
730-}
731-
732-sub getgid {
733- usage "getgid()" if @_ != 0;
734- $( + 0;
735-}
736-
737-sub getgroups {
738- usage "getgroups()" if @_ != 0;
739- my %seen;
740- grep(!$seen{$_}++, split(' ', $) ));
741-}
742-
743-sub getlogin {
744- usage "getlogin()" if @_ != 0;
745- CORE::getlogin();
746-}
747-
748-sub getpgrp {
749- usage "getpgrp()" if @_ != 0;
750- CORE::getpgrp;
751-}
752-
753-sub getpid {
754- usage "getpid()" if @_ != 0;
755- $$;
756-}
757-
758-sub getppid {
759- usage "getppid()" if @_ != 0;
760- CORE::getppid;
761-}
762-
763-sub getuid {
764- usage "getuid()" if @_ != 0;
765- $<;
766-}
767-
768-sub isatty {
769- usage "isatty(filehandle)" if @_ != 1;
770- -t $_[0];
771-}
772-
773-sub link {
774- usage "link(oldfilename, newfilename)" if @_ != 2;
775- CORE::link($_[0], $_[1]);
776-}
777-
778-sub rmdir {
779- usage "rmdir(directoryname)" if @_ != 1;
780- CORE::rmdir($_[0]);
781-}
782-
783-sub setbuf {
784- redef "IO::Handle::setbuf()";
785-}
786-
787-sub setvbuf {
788- redef "IO::Handle::setvbuf()";
789-}
790-
791-sub sleep {
792- usage "sleep(seconds)" if @_ != 1;
793- $_[0] - CORE::sleep($_[0]);
794-}
795-
796-sub unlink {
797- usage "unlink(filename)" if @_ != 1;
798- CORE::unlink($_[0]);
799-}
800-
801-sub utime {
802- usage "utime(filename, atime, mtime)" if @_ != 3;
803- CORE::utime($_[1], $_[2], $_[0]);
804-}
805-
806-sub load_imports {
807-%EXPORT_TAGS = (
808-
809- assert_h => [qw(assert NDEBUG)],
810-
811- ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower
812- isprint ispunct isspace isupper isxdigit tolower toupper)],
813-
814- dirent_h => [],
815-
816- errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT
817- EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED
818- ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT
819- EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS
820- EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK
821- EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH
822- ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM
823- ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
824- ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM
825- EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE
826- ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT
827- ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY
828- EUSERS EWOULDBLOCK EXDEV errno)],
829-
830- fcntl_h => [qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK
831- F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK
832- O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK
833- O_RDONLY O_RDWR O_TRUNC O_WRONLY
834- creat
835- SEEK_CUR SEEK_END SEEK_SET
836- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
837- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID
838- S_IWGRP S_IWOTH S_IWUSR)],
839-
840- float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG
841- DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP
842- DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP
843- FLT_DIG FLT_EPSILON FLT_MANT_DIG
844- FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP
845- FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP
846- FLT_RADIX FLT_ROUNDS
847- LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG
848- LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP
849- LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)],
850-
851- grp_h => [],
852-
853- limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX
854- INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON
855- MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX
856- PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN
857- SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX
858- ULONG_MAX USHRT_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX
859- _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT
860- _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX
861- _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX
862- _POSIX_STREAM_MAX _POSIX_TZNAME_MAX)],
863-
864- locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES
865- LC_MONETARY LC_NUMERIC LC_TIME NULL
866- localeconv setlocale)],
867-
868- math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod
869- frexp ldexp log10 modf pow sinh tan tanh)],
870-
871- pwd_h => [],
872-
873- setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)],
874-
875- signal_h => [qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK
876- SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM
877- SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL
878- SIGPIPE %SIGRT SIGRTMIN SIGRTMAX SIGQUIT SIGSEGV SIGSTOP
879- SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2
880- SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK
881- raise sigaction signal sigpending sigprocmask sigsuspend)],
882-
883- stdarg_h => [],
884-
885- stddef_h => [qw(NULL offsetof)],
886-
887- stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid
888- L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET
889- STREAM_MAX TMP_MAX stderr stdin stdout
890- clearerr fclose fdopen feof ferror fflush fgetc fgetpos
891- fgets fopen fprintf fputc fputs fread freopen
892- fscanf fseek fsetpos ftell fwrite getchar gets
893- perror putc putchar puts remove rewind
894- scanf setbuf setvbuf sscanf tmpfile tmpnam
895- ungetc vfprintf vprintf vsprintf)],
896-
897- stdlib_h => [qw(EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX NULL RAND_MAX
898- abort atexit atof atoi atol bsearch calloc div
899- free getenv labs ldiv malloc mblen mbstowcs mbtowc
900- qsort realloc strtod strtol strtoul wcstombs wctomb)],
901-
902- string_h => [qw(NULL memchr memcmp memcpy memmove memset strcat
903- strchr strcmp strcoll strcpy strcspn strerror strlen
904- strncat strncmp strncpy strpbrk strrchr strspn strstr
905- strtok strxfrm)],
906-
907- sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
908- S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
909- S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
910- fstat mkfifo)],
911-
912- sys_times_h => [],
913-
914- sys_types_h => [],
915-
916- sys_utsname_h => [qw(uname)],
917-
918- sys_wait_h => [qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED
919- WNOHANG WSTOPSIG WTERMSIG WUNTRACED)],
920-
921- termios_h => [qw( B0 B110 B1200 B134 B150 B1800 B19200 B200 B2400
922- B300 B38400 B4800 B50 B600 B75 B9600 BRKINT CLOCAL
923- CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB ECHO ECHOE ECHOK
924- ECHONL HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR
925- INLCR INPCK ISIG ISTRIP IXOFF IXON NCCS NOFLSH OPOST
926- PARENB PARMRK PARODD TCIFLUSH TCIOFF TCIOFLUSH TCION
927- TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
928- TOSTOP VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART
929- VSTOP VSUSP VTIME
930- cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcdrain
931- tcflow tcflush tcgetattr tcsendbreak tcsetattr )],
932-
933- time_h => [qw(CLK_TCK CLOCKS_PER_SEC NULL asctime clock ctime
934- difftime mktime strftime tzset tzname)],
935-
936- unistd_h => [qw(F_OK NULL R_OK SEEK_CUR SEEK_END SEEK_SET
937- STDERR_FILENO STDIN_FILENO STDOUT_FILENO W_OK X_OK
938- _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON
939- _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX
940- _PC_PIPE_BUF _PC_VDISABLE _POSIX_CHOWN_RESTRICTED
941- _POSIX_JOB_CONTROL _POSIX_NO_TRUNC _POSIX_SAVED_IDS
942- _POSIX_VDISABLE _POSIX_VERSION _SC_ARG_MAX
943- _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL
944- _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS
945- _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
946- _exit access ctermid cuserid
947- dup2 dup execl execle execlp execv execve execvp
948- fpathconf fsync getcwd getegid geteuid getgid getgroups
949- getpid getuid isatty lseek pathconf pause setgid setpgid
950- setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)],
951-
952- utime_h => [],
953-
954-);
955-
956-# Exporter::export_tags();
957-{
958- # De-duplicate the export list:
959- my %export;
960- @export{map {@$_} values %EXPORT_TAGS} = ();
961- # Doing the de-dup with a temporary hash has the advantage that the SVs in
962- # @EXPORT are actually shared hash key sacalars, which will save some memory.
963- push @EXPORT, keys %export;
964-}
965-
966-@EXPORT_OK = qw(
967- abs
968- alarm
969- atan2
970- chdir
971- chmod
972- chown
973- close
974- closedir
975- cos
976- exit
977- exp
978- fcntl
979- fileno
980- fork
981- getc
982- getgrgid
983- getgrnam
984- getlogin
985- getpgrp
986- getppid
987- getpwnam
988- getpwuid
989- gmtime
990- isatty
991- kill
992- lchown
993- link
994- localtime
995- log
996- mkdir
997- nice
998- open
999- opendir
1000- pipe
1001- printf
1002- rand
1003- read
1004- readdir
1005- rename
1006- rewinddir
1007- rmdir
1008- sin
1009- sleep
1010- sprintf
1011- sqrt
1012- srand
1013- stat
1014- system
1015- time
1016- times
1017- umask
1018- unlink
1019- utime
1020- wait
1021- waitpid
1022- write
1023-);
1024-
1025-require Exporter;
1026-}
1027-
1028-package POSIX::SigAction;
1029-
1030-sub new { bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0, SAFE => 0}, $_[0] }
1031-sub handler { $_[0]->{HANDLER} = $_[1] if @_ > 1; $_[0]->{HANDLER} };
1032-sub mask { $_[0]->{MASK} = $_[1] if @_ > 1; $_[0]->{MASK} };
1033-sub flags { $_[0]->{FLAGS} = $_[1] if @_ > 1; $_[0]->{FLAGS} };
1034-sub safe { $_[0]->{SAFE} = $_[1] if @_ > 1; $_[0]->{SAFE} };
1035-
1036-package POSIX::SigRt;
1037-
1038-
1039-sub _init {
1040- $_SIGRTMIN = &POSIX::SIGRTMIN;
1041- $_SIGRTMAX = &POSIX::SIGRTMAX;
1042- $_sigrtn = $_SIGRTMAX - $_SIGRTMIN;
1043-}
1044-
1045-sub _croak {
1046- &_init unless defined $_sigrtn;
1047- die "POSIX::SigRt not available" unless defined $_sigrtn && $_sigrtn > 0;
1048-}
1049-
1050-sub _getsig {
1051- &_croak;
1052- my $rtsig = $_[0];
1053- # Allow (SIGRT)?MIN( + n)?, a common idiom when doing these things in C.
1054- $rtsig = $_SIGRTMIN + ($1 || 0)
1055- if $rtsig =~ /^(?:(?:SIG)?RT)?MIN(\s*\+\s*(\d+))?$/;
1056- return $rtsig;
1057-}
1058-
1059-sub _exist {
1060- my $rtsig = _getsig($_[1]);
1061- my $ok = $rtsig >= $_SIGRTMIN && $rtsig <= $_SIGRTMAX;
1062- ($rtsig, $ok);
1063-}
1064-
1065-sub _check {
1066- my ($rtsig, $ok) = &_exist;
1067- die "No POSIX::SigRt signal $_[1] (valid range SIGRTMIN..SIGRTMAX, or $_SIGRTMIN..$_SIGRTMAX)"
1068- unless $ok;
1069- return $rtsig;
1070-}
1071-
1072-sub new {
1073- my ($rtsig, $handler, $flags) = @_;
1074- my $sigset = POSIX::SigSet->new($rtsig);
1075- my $sigact = POSIX::SigAction->new($handler,
1076- $sigset,
1077- $flags);
1078- POSIX::sigaction($rtsig, $sigact);
1079-}
1080-
1081-sub EXISTS { &_exist }
1082-sub FETCH { my $rtsig = &_check;
1083- my $oa = POSIX::SigAction->new();
1084- POSIX::sigaction($rtsig, undef, $oa);
1085- return $oa->{HANDLER} }
1086-sub STORE { my $rtsig = &_check; new($rtsig, $_[2], $SIGACTION_FLAGS) }
1087-sub DELETE { delete $SIG{ &_check } }
1088-sub CLEAR { &_exist; delete @SIG{ &POSIX::SIGRTMIN .. &POSIX::SIGRTMAX } }
1089-sub SCALAR { &_croak; $_sigrtn + 1 }
1090diff --git a/ext/POSIX/POSIX.pod b/ext/POSIX/POSIX.pod
1091deleted file mode 100644
1092index 64852e9..0000000
1093--- a/ext/POSIX/POSIX.pod
1094+++ /dev/null
1095@@ -1,2218 +0,0 @@
1096-=head1 NAME
1097-
1098-POSIX - Perl interface to IEEE Std 1003.1
1099-
1100-=head1 SYNOPSIS
1101-
1102- use POSIX;
1103- use POSIX qw(setsid);
1104- use POSIX qw(:errno_h :fcntl_h);
1105-
1106- printf "EINTR is %d\n", EINTR;
1107-
1108- $sess_id = POSIX::setsid();
1109-
1110- $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
1111- # note: that's a filedescriptor, *NOT* a filehandle
1112-
1113-=head1 DESCRIPTION
1114-
1115-The POSIX module permits you to access all (or nearly all) the standard
1116-POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish
1117-interfaces.
1118-
1119-I<Everything is exported by default> with the exception of any POSIX
1120-functions with the same name as a built-in Perl function, such as
1121-C<abs>, C<alarm>, C<rmdir>, C<write>, etc.., which will be exported
1122-only if you ask for them explicitly. This is an unfortunate backwards
1123-compatibility feature. You can stop the exporting by saying C<use
1124-POSIX ()> and then use the fully qualified names (ie. C<POSIX::SEEK_END>).
1125-
1126-This document gives a condensed list of the features available in the POSIX
1127-module. Consult your operating system's manpages for general information on
1128-most features. Consult L<perlfunc> for functions which are noted as being
1129-identical to Perl's builtin functions.
1130-
1131-The first section describes POSIX functions from the 1003.1 specification.
1132-The second section describes some classes for signal objects, TTY objects,
1133-and other miscellaneous objects. The remaining sections list various
1134-constants and macros in an organization which roughly follows IEEE Std
1135-1003.1b-1993.
1136-
1137-=head1 NOTE
1138-
1139-The POSIX module is probably the most complex Perl module supplied with
1140-the standard distribution. It incorporates autoloading, namespace games,
1141-and dynamic loading of code that's in Perl, C, or both. It's a great
1142-source of wisdom.
1143-
1144-=head1 CAVEATS
1145-
1146-A few functions are not implemented because they are C specific. If you
1147-attempt to call these, they will print a message telling you that they
1148-aren't implemented, and suggest using the Perl equivalent should one
1149-exist. For example, trying to access the setjmp() call will elicit the
1150-message "setjmp() is C-specific: use eval {} instead".
1151-
1152-Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
1153-are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
1154-For example, one vendor may not define EDEADLK, or the semantics of the
1155-errno values set by open(2) might not be quite right. Perl does not
1156-attempt to verify POSIX compliance. That means you can currently
1157-successfully say "use POSIX", and then later in your program you find
1158-that your vendor has been lax and there's no usable ICANON macro after
1159-all. This could be construed to be a bug.
1160-
1161-=head1 FUNCTIONS
1162-
1163-=over 8
1164-
1165-=item _exit
1166-
1167-This is identical to the C function C<_exit()>. It exits the program
1168-immediately which means among other things buffered I/O is B<not> flushed.
1169-
1170-Note that when using threads and in Linux this is B<not> a good way to
1171-exit a thread because in Linux processes and threads are kind of the
1172-same thing (Note: while this is the situation in early 2003 there are
1173-projects under way to have threads with more POSIXly semantics in Linux).
1174-If you want not to return from a thread, detach the thread.
1175-
1176-=item abort
1177-
1178-This is identical to the C function C<abort()>. It terminates the
1179-process with a C<SIGABRT> signal unless caught by a signal handler or
1180-if the handler does not return normally (it e.g. does a C<longjmp>).
1181-
1182-=item abs
1183-
1184-This is identical to Perl's builtin C<abs()> function, returning
1185-the absolute value of its numerical argument.
1186-
1187-=item access
1188-
1189-Determines the accessibility of a file.
1190-
1191- if( POSIX::access( "/", &POSIX::R_OK ) ){
1192- print "have read permission\n";
1193- }
1194-
1195-Returns C<undef> on failure. Note: do not use C<access()> for
1196-security purposes. Between the C<access()> call and the operation
1197-you are preparing for the permissions might change: a classic
1198-I<race condition>.
1199-
1200-=item acos
1201-
1202-This is identical to the C function C<acos()>, returning
1203-the arcus cosine of its numerical argument. See also L<Math::Trig>.
1204-
1205-=item alarm
1206-
1207-This is identical to Perl's builtin C<alarm()> function,
1208-either for arming or disarming the C<SIGARLM> timer.
1209-
1210-=item asctime
1211-
1212-This is identical to the C function C<asctime()>. It returns
1213-a string of the form
1214-
1215- "Fri Jun 2 18:22:13 2000\n\0"
1216-
1217-and it is called thusly
1218-
1219- $asctime = asctime($sec, $min, $hour, $mday, $mon, $year,
1220- $wday, $yday, $isdst);
1221-
1222-The C<$mon> is zero-based: January equals C<0>. The C<$year> is
1223-1900-based: 2001 equals C<101>. C<$wday> and C<$yday> default to zero
1224-(and are usually ignored anyway), and C<$isdst> defaults to -1.
1225-
1226-=item asin
1227-
1228-This is identical to the C function C<asin()>, returning
1229-the arcus sine of its numerical argument. See also L<Math::Trig>.
1230-
1231-=item assert
1232-
1233-Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
1234-to achieve similar things.
1235-
1236-=item atan
1237-
1238-This is identical to the C function C<atan()>, returning the
1239-arcus tangent of its numerical argument. See also L<Math::Trig>.
1240-
1241-=item atan2
1242-
1243-This is identical to Perl's builtin C<atan2()> function, returning
1244-the arcus tangent defined by its two numerical arguments, the I<y>
1245-coordinate and the I<x> coordinate. See also L<Math::Trig>.
1246-
1247-=item atexit
1248-
1249-atexit() is C-specific: use C<END {}> instead, see L<perlsub>.
1250-
1251-=item atof
1252-
1253-atof() is C-specific. Perl converts strings to numbers transparently.
1254-If you need to force a scalar to a number, add a zero to it.
1255-
1256-=item atoi
1257-
1258-atoi() is C-specific. Perl converts strings to numbers transparently.
1259-If you need to force a scalar to a number, add a zero to it.
1260-If you need to have just the integer part, see L<perlfunc/int>.
1261-
1262-=item atol
1263-
1264-atol() is C-specific. Perl converts strings to numbers transparently.
1265-If you need to force a scalar to a number, add a zero to it.
1266-If you need to have just the integer part, see L<perlfunc/int>.
1267-
1268-=item bsearch
1269-
1270-bsearch() not supplied. For doing binary search on wordlists,
1271-see L<Search::Dict>.
1272-
1273-=item calloc
1274-
1275-calloc() is C-specific. Perl does memory management transparently.
1276-
1277-=item ceil
1278-
1279-This is identical to the C function C<ceil()>, returning the smallest
1280-integer value greater than or equal to the given numerical argument.
1281-
1282-=item chdir
1283-
1284-This is identical to Perl's builtin C<chdir()> function, allowing
1285-one to change the working (default) directory, see L<perlfunc/chdir>.
1286-
1287-=item chmod
1288-
1289-This is identical to Perl's builtin C<chmod()> function, allowing
1290-one to change file and directory permissions, see L<perlfunc/chmod>.
1291-
1292-=item chown
1293-
1294-This is identical to Perl's builtin C<chown()> function, allowing one
1295-to change file and directory owners and groups, see L<perlfunc/chown>.
1296-
1297-=item clearerr
1298-
1299-Use the method C<IO::Handle::clearerr()> instead, to reset the error
1300-state (if any) and EOF state (if any) of the given stream.
1301-
1302-=item clock
1303-
1304-This is identical to the C function C<clock()>, returning the
1305-amount of spent processor time in microseconds.
1306-
1307-=item close
1308-
1309-Close the file. This uses file descriptors such as those obtained by calling
1310-C<POSIX::open>.
1311-
1312- $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
1313- POSIX::close( $fd );
1314-
1315-Returns C<undef> on failure.
1316-
1317-See also L<perlfunc/close>.
1318-
1319-=item closedir
1320-
1321-This is identical to Perl's builtin C<closedir()> function for closing
1322-a directory handle, see L<perlfunc/closedir>.
1323-
1324-=item cos
1325-
1326-This is identical to Perl's builtin C<cos()> function, for returning
1327-the cosine of its numerical argument, see L<perlfunc/cos>.
1328-See also L<Math::Trig>.
1329-
1330-=item cosh
1331-
1332-This is identical to the C function C<cosh()>, for returning
1333-the hyperbolic cosine of its numeric argument. See also L<Math::Trig>.
1334-
1335-=item creat
1336-
1337-Create a new file. This returns a file descriptor like the ones returned by
1338-C<POSIX::open>. Use C<POSIX::close> to close the file.
1339-
1340- $fd = POSIX::creat( "foo", 0611 );
1341- POSIX::close( $fd );
1342-
1343-See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
1344-
1345-=item ctermid
1346-
1347-Generates the path name for the controlling terminal.
1348-
1349- $path = POSIX::ctermid();
1350-
1351-=item ctime
1352-
1353-This is identical to the C function C<ctime()> and equivalent
1354-to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
1355-
1356-=item cuserid
1357-
1358-Get the login name of the owner of the current process.
1359-
1360- $name = POSIX::cuserid();
1361-
1362-=item difftime
1363-
1364-This is identical to the C function C<difftime()>, for returning
1365-the time difference (in seconds) between two times (as returned
1366-by C<time()>), see L</time>.
1367-
1368-=item div
1369-
1370-div() is C-specific, use L<perlfunc/int> on the usual C</> division and
1371-the modulus C<%>.
1372-
1373-=item dup
1374-
1375-This is similar to the C function C<dup()>, for duplicating a file
1376-descriptor.
1377-
1378-This uses file descriptors such as those obtained by calling
1379-C<POSIX::open>.
1380-
1381-Returns C<undef> on failure.
1382-
1383-=item dup2
1384-
1385-This is similar to the C function C<dup2()>, for duplicating a file
1386-descriptor to an another known file descriptor.
1387-
1388-This uses file descriptors such as those obtained by calling
1389-C<POSIX::open>.
1390-
1391-Returns C<undef> on failure.
1392-
1393-=item errno
1394-
1395-Returns the value of errno.
1396-
1397- $errno = POSIX::errno();
1398-
1399-This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
1400-
1401-=item execl
1402-
1403-execl() is C-specific, see L<perlfunc/exec>.
1404-
1405-=item execle
1406-
1407-execle() is C-specific, see L<perlfunc/exec>.
1408-
1409-=item execlp
1410-
1411-execlp() is C-specific, see L<perlfunc/exec>.
1412-
1413-=item execv
1414-
1415-execv() is C-specific, see L<perlfunc/exec>.
1416-
1417-=item execve
1418-
1419-execve() is C-specific, see L<perlfunc/exec>.
1420-
1421-=item execvp
1422-
1423-execvp() is C-specific, see L<perlfunc/exec>.
1424-
1425-=item exit
1426-
1427-This is identical to Perl's builtin C<exit()> function for exiting the
1428-program, see L<perlfunc/exit>.
1429-
1430-=item exp
1431-
1432-This is identical to Perl's builtin C<exp()> function for
1433-returning the exponent (I<e>-based) of the numerical argument,
1434-see L<perlfunc/exp>.
1435-
1436-=item fabs
1437-
1438-This is identical to Perl's builtin C<abs()> function for returning
1439-the absolute value of the numerical argument, see L<perlfunc/abs>.
1440-
1441-=item fclose
1442-
1443-Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
1444-
1445-=item fcntl
1446-
1447-This is identical to Perl's builtin C<fcntl()> function,
1448-see L<perlfunc/fcntl>.
1449-
1450-=item fdopen
1451-
1452-Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
1453-
1454-=item feof
1455-
1456-Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
1457-
1458-=item ferror
1459-
1460-Use method C<IO::Handle::error()> instead.
1461-
1462-=item fflush
1463-
1464-Use method C<IO::Handle::flush()> instead.
1465-See also L<perlvar/$OUTPUT_AUTOFLUSH>.
1466-
1467-=item fgetc
1468-
1469-Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
1470-
1471-=item fgetpos
1472-
1473-Use method C<IO::Seekable::getpos()> instead, or see L<L/seek>.
1474-
1475-=item fgets
1476-
1477-Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known
1478-as L<perlfunc/readline>.
1479-
1480-=item fileno
1481-
1482-Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
1483-
1484-=item floor
1485-
1486-This is identical to the C function C<floor()>, returning the largest
1487-integer value less than or equal to the numerical argument.
1488-
1489-=item fmod
1490-
1491-This is identical to the C function C<fmod()>.
1492-
1493- $r = fmod($x, $y);
1494-
1495-It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
1496-The C<$r> has the same sign as C<$x> and magnitude (absolute value)
1497-less than the magnitude of C<$y>.
1498-
1499-=item fopen
1500-
1501-Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
1502-
1503-=item fork
1504-
1505-This is identical to Perl's builtin C<fork()> function
1506-for duplicating the current process, see L<perlfunc/fork>
1507-and L<perlfork> if you are in Windows.
1508-
1509-=item fpathconf
1510-
1511-Retrieves the value of a configurable limit on a file or directory. This
1512-uses file descriptors such as those obtained by calling C<POSIX::open>.
1513-
1514-The following will determine the maximum length of the longest allowable
1515-pathname on the filesystem which holds C</var/foo>.
1516-
1517- $fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY );
1518- $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX );
1519-
1520-Returns C<undef> on failure.
1521-
1522-=item fprintf
1523-
1524-fprintf() is C-specific, see L<perlfunc/printf> instead.
1525-
1526-=item fputc
1527-
1528-fputc() is C-specific, see L<perlfunc/print> instead.
1529-
1530-=item fputs
1531-
1532-fputs() is C-specific, see L<perlfunc/print> instead.
1533-
1534-=item fread
1535-
1536-fread() is C-specific, see L<perlfunc/read> instead.
1537-
1538-=item free
1539-
1540-free() is C-specific. Perl does memory management transparently.
1541-
1542-=item freopen
1543-
1544-freopen() is C-specific, see L<perlfunc/open> instead.
1545-
1546-=item frexp
1547-
1548-Return the mantissa and exponent of a floating-point number.
1549-
1550- ($mantissa, $exponent) = POSIX::frexp( 1.234e56 );
1551-
1552-=item fscanf
1553-
1554-fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead.
1555-
1556-=item fseek
1557-
1558-Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
1559-
1560-=item fsetpos
1561-
1562-Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
1563-
1564-=item fstat
1565-
1566-Get file status. This uses file descriptors such as those obtained by
1567-calling C<POSIX::open>. The data returned is identical to the data from
1568-Perl's builtin C<stat> function.
1569-
1570- $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
1571- @stats = POSIX::fstat( $fd );
1572-
1573-=item fsync
1574-
1575-Use method C<IO::Handle::sync()> instead.
1576-
1577-=item ftell
1578-
1579-Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
1580-
1581-=item fwrite
1582-
1583-fwrite() is C-specific, see L<perlfunc/print> instead.
1584-
1585-=item getc
1586-
1587-This is identical to Perl's builtin C<getc()> function,
1588-see L<perlfunc/getc>.
1589-
1590-=item getchar
1591-
1592-Returns one character from STDIN. Identical to Perl's C<getc()>,
1593-see L<perlfunc/getc>.
1594-
1595-=item getcwd
1596-
1597-Returns the name of the current working directory.
1598-See also L<Cwd>.
1599-
1600-=item getegid
1601-
1602-Returns the effective group identifier. Similar to Perl' s builtin
1603-variable C<$(>, see L<perlvar/$EGID>.
1604-
1605-=item getenv
1606-
1607-Returns the value of the specified environment variable.
1608-The same information is available through the C<%ENV> array.
1609-
1610-=item geteuid
1611-
1612-Returns the effective user identifier. Identical to Perl's builtin C<$E<gt>>
1613-variable, see L<perlvar/$EUID>.
1614-
1615-=item getgid
1616-
1617-Returns the user's real group identifier. Similar to Perl's builtin
1618-variable C<$)>, see L<perlvar/$GID>.
1619-
1620-=item getgrgid
1621-
1622-This is identical to Perl's builtin C<getgrgid()> function for
1623-returning group entries by group identifiers, see
1624-L<perlfunc/getgrgid>.
1625-
1626-=item getgrnam
1627-
1628-This is identical to Perl's builtin C<getgrnam()> function for
1629-returning group entries by group names, see L<perlfunc/getgrnam>.
1630-
1631-=item getgroups
1632-
1633-Returns the ids of the user's supplementary groups. Similar to Perl's
1634-builtin variable C<$)>, see L<perlvar/$GID>.
1635-
1636-=item getlogin
1637-
1638-This is identical to Perl's builtin C<getlogin()> function for
1639-returning the user name associated with the current session, see
1640-L<perlfunc/getlogin>.
1641-
1642-=item getpgrp
1643-
1644-This is identical to Perl's builtin C<getpgrp()> function for
1645-returning the process group identifier of the current process, see
1646-L<perlfunc/getpgrp>.
1647-
1648-=item getpid
1649-
1650-Returns the process identifier. Identical to Perl's builtin
1651-variable C<$$>, see L<perlvar/$PID>.
1652-
1653-=item getppid
1654-
1655-This is identical to Perl's builtin C<getppid()> function for
1656-returning the process identifier of the parent process of the current
1657-process , see L<perlfunc/getppid>.
1658-
1659-=item getpwnam
1660-
1661-This is identical to Perl's builtin C<getpwnam()> function for
1662-returning user entries by user names, see L<perlfunc/getpwnam>.
1663-
1664-=item getpwuid
1665-
1666-This is identical to Perl's builtin C<getpwuid()> function for
1667-returning user entries by user identifiers, see L<perlfunc/getpwuid>.
1668-
1669-=item gets
1670-
1671-Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known
1672-as the C<readline()> function, see L<perlfunc/readline>.
1673-
1674-B<NOTE>: if you have C programs that still use C<gets()>, be very
1675-afraid. The C<gets()> function is a source of endless grief because
1676-it has no buffer overrun checks. It should B<never> be used. The
1677-C<fgets()> function should be preferred instead.
1678-
1679-=item getuid
1680-
1681-Returns the user's identifier. Identical to Perl's builtin C<$E<lt>> variable,
1682-see L<perlvar/$UID>.
1683-
1684-=item gmtime
1685-
1686-This is identical to Perl's builtin C<gmtime()> function for
1687-converting seconds since the epoch to a date in Greenwich Mean Time,
1688-see L<perlfunc/gmtime>.
1689-
1690-=item isalnum
1691-
1692-This is identical to the C function, except that it can apply to a
1693-single character or to a whole string. Note that locale settings may
1694-affect what characters are considered C<isalnum>. Does not work on
1695-Unicode characters code point 256 or higher. Consider using regular
1696-expressions and the C</[[:alnum:]]/> construct instead, or possibly
1697-the C</\w/> construct.
1698-
1699-=item isalpha
1700-
1701-This is identical to the C function, except that it can apply to
1702-a single character or to a whole string. Note that locale settings
1703-may affect what characters are considered C<isalpha>. Does not work
1704-on Unicode characters code point 256 or higher. Consider using regular
1705-expressions and the C</[[:alpha:]]/> construct instead.
1706-
1707-=item isatty
1708-
1709-Returns a boolean indicating whether the specified filehandle is connected
1710-to a tty. Similar to the C<-t> operator, see L<perlfunc/-X>.
1711-
1712-=item iscntrl
1713-
1714-This is identical to the C function, except that it can apply to
1715-a single character or to a whole string. Note that locale settings
1716-may affect what characters are considered C<iscntrl>. Does not work
1717-on Unicode characters code point 256 or higher. Consider using regular
1718-expressions and the C</[[:cntrl:]]/> construct instead.
1719-
1720-=item isdigit
1721-
1722-This is identical to the C function, except that it can apply to
1723-a single character or to a whole string. Note that locale settings
1724-may affect what characters are considered C<isdigit> (unlikely, but
1725-still possible). Does not work on Unicode characters code point 256
1726-or higher. Consider using regular expressions and the C</[[:digit:]]/>
1727-construct instead, or the C</\d/> construct.
1728-
1729-=item isgraph
1730-
1731-This is identical to the C function, except that it can apply to
1732-a single character or to a whole string. Note that locale settings
1733-may affect what characters are considered C<isgraph>. Does not work
1734-on Unicode characters code point 256 or higher. Consider using regular
1735-expressions and the C</[[:graph:]]/> construct instead.
1736-
1737-=item islower
1738-
1739-This is identical to the C function, except that it can apply to
1740-a single character or to a whole string. Note that locale settings
1741-may affect what characters are considered C<islower>. Does not work
1742-on Unicode characters code point 256 or higher. Consider using regular
1743-expressions and the C</[[:lower:]]/> construct instead. Do B<not> use
1744-C</[a-z]/>.
1745-
1746-=item isprint
1747-
1748-This is identical to the C function, except that it can apply to
1749-a single character or to a whole string. Note that locale settings
1750-may affect what characters are considered C<isprint>. Does not work
1751-on Unicode characters code point 256 or higher. Consider using regular
1752-expressions and the C</[[:print:]]/> construct instead.
1753-
1754-=item ispunct
1755-
1756-This is identical to the C function, except that it can apply to
1757-a single character or to a whole string. Note that locale settings
1758-may affect what characters are considered C<ispunct>. Does not work
1759-on Unicode characters code point 256 or higher. Consider using regular
1760-expressions and the C</[[:punct:]]/> construct instead.
1761-
1762-=item isspace
1763-
1764-This is identical to the C function, except that it can apply to
1765-a single character or to a whole string. Note that locale settings
1766-may affect what characters are considered C<isspace>. Does not work
1767-on Unicode characters code point 256 or higher. Consider using regular
1768-expressions and the C</[[:space:]]/> construct instead, or the C</\s/>
1769-construct. (Note that C</\s/> and C</[[:space:]]/> are slightly
1770-different in that C</[[:space:]]/> can normally match a vertical tab,
1771-while C</\s/> does not.)
1772-
1773-=item isupper
1774-
1775-This is identical to the C function, except that it can apply to
1776-a single character or to a whole string. Note that locale settings
1777-may affect what characters are considered C<isupper>. Does not work
1778-on Unicode characters code point 256 or higher. Consider using regular
1779-expressions and the C</[[:upper:]]/> construct instead. Do B<not> use
1780-C</[A-Z]/>.
1781-
1782-=item isxdigit
1783-
1784-This is identical to the C function, except that it can apply to a single
1785-character or to a whole string. Note that locale settings may affect what
1786-characters are considered C<isxdigit> (unlikely, but still possible).
1787-Does not work on Unicode characters code point 256 or higher.
1788-Consider using regular expressions and the C</[[:xdigit:]]/>
1789-construct instead, or simply C</[0-9a-f]/i>.
1790-
1791-=item kill
1792-
1793-This is identical to Perl's builtin C<kill()> function for sending
1794-signals to processes (often to terminate them), see L<perlfunc/kill>.
1795-
1796-=item labs
1797-
1798-(For returning absolute values of long integers.)
1799-labs() is C-specific, see L<perlfunc/abs> instead.
1800-
1801-=item lchown
1802-
1803-This is identical to the C function, except the order of arguments is
1804-consistent with Perl's builtin C<chown()> with the added restriction
1805-of only one path, not an list of paths. Does the same thing as the
1806-C<chown()> function but changes the owner of a symbolic link instead
1807-of the file the symbolic link points to.
1808-
1809-=item ldexp
1810-
1811-This is identical to the C function C<ldexp()>
1812-for multiplying floating point numbers with powers of two.
1813-
1814- $x_quadrupled = POSIX::ldexp($x, 2);
1815-
1816-=item ldiv
1817-
1818-(For computing dividends of long integers.)
1819-ldiv() is C-specific, use C</> and C<int()> instead.
1820-
1821-=item link
1822-
1823-This is identical to Perl's builtin C<link()> function
1824-for creating hard links into files, see L<perlfunc/link>.
1825-
1826-=item localeconv
1827-
1828-Get numeric formatting information. Returns a reference to a hash
1829-containing the current locale formatting values.
1830-
1831-Here is how to query the database for the B<de> (Deutsch or German) locale.
1832-
1833- $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
1834- print "Locale = $loc\n";
1835- $lconv = POSIX::localeconv();
1836- print "decimal_point = ", $lconv->{decimal_point}, "\n";
1837- print "thousands_sep = ", $lconv->{thousands_sep}, "\n";
1838- print "grouping = ", $lconv->{grouping}, "\n";
1839- print "int_curr_symbol = ", $lconv->{int_curr_symbol}, "\n";
1840- print "currency_symbol = ", $lconv->{currency_symbol}, "\n";
1841- print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n";
1842- print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n";
1843- print "mon_grouping = ", $lconv->{mon_grouping}, "\n";
1844- print "positive_sign = ", $lconv->{positive_sign}, "\n";
1845- print "negative_sign = ", $lconv->{negative_sign}, "\n";
1846- print "int_frac_digits = ", $lconv->{int_frac_digits}, "\n";
1847- print "frac_digits = ", $lconv->{frac_digits}, "\n";
1848- print "p_cs_precedes = ", $lconv->{p_cs_precedes}, "\n";
1849- print "p_sep_by_space = ", $lconv->{p_sep_by_space}, "\n";
1850- print "n_cs_precedes = ", $lconv->{n_cs_precedes}, "\n";
1851- print "n_sep_by_space = ", $lconv->{n_sep_by_space}, "\n";
1852- print "p_sign_posn = ", $lconv->{p_sign_posn}, "\n";
1853- print "n_sign_posn = ", $lconv->{n_sign_posn}, "\n";
1854-
1855-=item localtime
1856-
1857-This is identical to Perl's builtin C<localtime()> function for
1858-converting seconds since the epoch to a date see L<perlfunc/localtime>.
1859-
1860-=item log
1861-
1862-This is identical to Perl's builtin C<log()> function,
1863-returning the natural (I<e>-based) logarithm of the numerical argument,
1864-see L<perlfunc/log>.
1865-
1866-=item log10
1867-
1868-This is identical to the C function C<log10()>,
1869-returning the 10-base logarithm of the numerical argument.
1870-You can also use
1871-
1872- sub log10 { log($_[0]) / log(10) }
1873-
1874-or
1875-
1876- sub log10 { log($_[0]) / 2.30258509299405 }
1877-
1878-or
1879-
1880- sub log10 { log($_[0]) * 0.434294481903252 }
1881-
1882-=item longjmp
1883-
1884-longjmp() is C-specific: use L<perlfunc/die> instead.
1885-
1886-=item lseek
1887-
1888-Move the file's read/write position. This uses file descriptors such as
1889-those obtained by calling C<POSIX::open>.
1890-
1891- $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
1892- $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
1893-
1894-Returns C<undef> on failure.
1895-
1896-=item malloc
1897-
1898-malloc() is C-specific. Perl does memory management transparently.
1899-
1900-=item mblen
1901-
1902-This is identical to the C function C<mblen()>.
1903-Perl does not have any support for the wide and multibyte
1904-characters of the C standards, so this might be a rather
1905-useless function.
1906-
1907-=item mbstowcs
1908-
1909-This is identical to the C function C<mbstowcs()>.
1910-Perl does not have any support for the wide and multibyte
1911-characters of the C standards, so this might be a rather
1912-useless function.
1913-
1914-=item mbtowc
1915-
1916-This is identical to the C function C<mbtowc()>.
1917-Perl does not have any support for the wide and multibyte
1918-characters of the C standards, so this might be a rather
1919-useless function.
1920-
1921-=item memchr
1922-
1923-memchr() is C-specific, see L<perlfunc/index> instead.
1924-
1925-=item memcmp
1926-
1927-memcmp() is C-specific, use C<eq> instead, see L<perlop>.
1928-
1929-=item memcpy
1930-
1931-memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
1932-
1933-=item memmove
1934-
1935-memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
1936-
1937-=item memset
1938-
1939-memset() is C-specific, use C<x> instead, see L<perlop>.
1940-
1941-=item mkdir
1942-
1943-This is identical to Perl's builtin C<mkdir()> function
1944-for creating directories, see L<perlfunc/mkdir>.
1945-
1946-=item mkfifo
1947-
1948-This is similar to the C function C<mkfifo()> for creating
1949-FIFO special files.
1950-
1951- if (mkfifo($path, $mode)) { ....
1952-
1953-Returns C<undef> on failure. The C<$mode> is similar to the
1954-mode of C<mkdir()>, see L<perlfunc/mkdir>, though for C<mkfifo>
1955-you B<must> specify the C<$mode>.
1956-
1957-=item mktime
1958-
1959-Convert date/time info to a calendar time.
1960-
1961-Synopsis:
1962-
1963- mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = -1)
1964-
1965-The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
1966-I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
1967-year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
1968-year 2001 is 101. Consult your system's C<mktime()> manpage for details
1969-about these and the other arguments.
1970-
1971-Calendar time for December 12, 1995, at 10:30 am.
1972-
1973- $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
1974- print "Date = ", POSIX::ctime($time_t);
1975-
1976-Returns C<undef> on failure.
1977-
1978-=item modf
1979-
1980-Return the integral and fractional parts of a floating-point number.
1981-
1982- ($fractional, $integral) = POSIX::modf( 3.14 );
1983-
1984-=item nice
1985-
1986-This is similar to the C function C<nice()>, for changing
1987-the scheduling preference of the current process. Positive
1988-arguments mean more polite process, negative values more
1989-needy process. Normal user processes can only be more polite.
1990-
1991-Returns C<undef> on failure.
1992-
1993-=item offsetof
1994-
1995-offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
1996-
1997-=item open
1998-
1999-Open a file for reading for writing. This returns file descriptors, not
2000-Perl filehandles. Use C<POSIX::close> to close the file.
2001-
2002-Open a file read-only with mode 0666.
2003-
2004- $fd = POSIX::open( "foo" );
2005-
2006-Open a file for read and write.
2007-
2008- $fd = POSIX::open( "foo", &POSIX::O_RDWR );
2009-
2010-Open a file for write, with truncation.
2011-
2012- $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );
2013-
2014-Create a new file with mode 0640. Set up the file for writing.
2015-
2016- $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );
2017-
2018-Returns C<undef> on failure.
2019-
2020-See also L<perlfunc/sysopen>.
2021-
2022-=item opendir
2023-
2024-Open a directory for reading.
2025-
2026- $dir = POSIX::opendir( "/var" );
2027- @files = POSIX::readdir( $dir );
2028- POSIX::closedir( $dir );
2029-
2030-Returns C<undef> on failure.
2031-
2032-=item pathconf
2033-
2034-Retrieves the value of a configurable limit on a file or directory.
2035-
2036-The following will determine the maximum length of the longest allowable
2037-pathname on the filesystem which holds C</var>.
2038-
2039- $path_max = POSIX::pathconf( "/var", &POSIX::_PC_PATH_MAX );
2040-
2041-Returns C<undef> on failure.
2042-
2043-=item pause
2044-
2045-This is similar to the C function C<pause()>, which suspends
2046-the execution of the current process until a signal is received.
2047-
2048-Returns C<undef> on failure.
2049-
2050-=item perror
2051-
2052-This is identical to the C function C<perror()>, which outputs to the
2053-standard error stream the specified message followed by ": " and the
2054-current error string. Use the C<warn()> function and the C<$!>
2055-variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
2056-
2057-=item pipe
2058-
2059-Create an interprocess channel. This returns file descriptors like those
2060-returned by C<POSIX::open>.
2061-
2062- my ($read, $write) = POSIX::pipe();
2063- POSIX::write( $write, "hello", 5 );
2064- POSIX::read( $read, $buf, 5 );
2065-
2066-See also L<perlfunc/pipe>.
2067-
2068-=item pow
2069-
2070-Computes C<$x> raised to the power C<$exponent>.
2071-
2072- $ret = POSIX::pow( $x, $exponent );
2073-
2074-You can also use the C<**> operator, see L<perlop>.
2075-
2076-=item printf
2077-
2078-Formats and prints the specified arguments to STDOUT.
2079-See also L<perlfunc/printf>.
2080-
2081-=item putc
2082-
2083-putc() is C-specific, see L<perlfunc/print> instead.
2084-
2085-=item putchar
2086-
2087-putchar() is C-specific, see L<perlfunc/print> instead.
2088-
2089-=item puts
2090-
2091-puts() is C-specific, see L<perlfunc/print> instead.
2092-
2093-=item qsort
2094-
2095-qsort() is C-specific, see L<perlfunc/sort> instead.
2096-
2097-=item raise
2098-
2099-Sends the specified signal to the current process.
2100-See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
2101-
2102-=item rand
2103-
2104-C<rand()> is non-portable, see L<perlfunc/rand> instead.
2105-
2106-=item read
2107-
2108-Read from a file. This uses file descriptors such as those obtained by
2109-calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
2110-read then Perl will extend it to make room for the request.
2111-
2112- $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
2113- $bytes = POSIX::read( $fd, $buf, 3 );
2114-
2115-Returns C<undef> on failure.
2116-
2117-See also L<perlfunc/sysread>.
2118-
2119-=item readdir
2120-
2121-This is identical to Perl's builtin C<readdir()> function
2122-for reading directory entries, see L<perlfunc/readdir>.
2123-
2124-=item realloc
2125-
2126-realloc() is C-specific. Perl does memory management transparently.
2127-
2128-=item remove
2129-
2130-This is identical to Perl's builtin C<unlink()> function
2131-for removing files, see L<perlfunc/unlink>.
2132-
2133-=item rename
2134-
2135-This is identical to Perl's builtin C<rename()> function
2136-for renaming files, see L<perlfunc/rename>.
2137-
2138-=item rewind
2139-
2140-Seeks to the beginning of the file.
2141-
2142-=item rewinddir
2143-
2144-This is identical to Perl's builtin C<rewinddir()> function for
2145-rewinding directory entry streams, see L<perlfunc/rewinddir>.
2146-
2147-=item rmdir
2148-
2149-This is identical to Perl's builtin C<rmdir()> function
2150-for removing (empty) directories, see L<perlfunc/rmdir>.
2151-
2152-=item scanf
2153-
2154-scanf() is C-specific, use E<lt>E<gt> and regular expressions instead,
2155-see L<perlre>.
2156-
2157-=item setgid
2158-
2159-Sets the real group identifier and the effective group identifier for
2160-this process. Similar to assigning a value to the Perl's builtin
2161-C<$)> variable, see L<perlvar/$EGID>, except that the latter
2162-will change only the real user identifier, and that the setgid()
2163-uses only a single numeric argument, as opposed to a space-separated
2164-list of numbers.
2165-
2166-=item setjmp
2167-
2168-C<setjmp()> is C-specific: use C<eval {}> instead,
2169-see L<perlfunc/eval>.
2170-
2171-=item setlocale
2172-
2173-Modifies and queries program's locale. The following examples assume
2174-
2175- use POSIX qw(setlocale LC_ALL LC_CTYPE);
2176-
2177-has been issued.
2178-
2179-The following will set the traditional UNIX system locale behavior
2180-(the second argument C<"C">).
2181-
2182- $loc = setlocale( LC_ALL, "C" );
2183-
2184-The following will query the current LC_CTYPE category. (No second
2185-argument means 'query'.)
2186-
2187- $loc = setlocale( LC_CTYPE );
2188-
2189-The following will set the LC_CTYPE behaviour according to the locale
2190-environment variables (the second argument C<"">).
2191-Please see your systems C<setlocale(3)> documentation for the locale
2192-environment variables' meaning or consult L<perllocale>.
2193-
2194- $loc = setlocale( LC_CTYPE, "" );
2195-
2196-The following will set the LC_COLLATE behaviour to Argentinian
2197-Spanish. B<NOTE>: The naming and availability of locales depends on
2198-your operating system. Please consult L<perllocale> for how to find
2199-out which locales are available in your system.
2200-
2201- $loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" );
2202-
2203-=item setpgid
2204-
2205-This is similar to the C function C<setpgid()> for
2206-setting the process group identifier of the current process.
2207-
2208-Returns C<undef> on failure.
2209-
2210-=item setsid
2211-
2212-This is identical to the C function C<setsid()> for
2213-setting the session identifier of the current process.
2214-
2215-=item setuid
2216-
2217-Sets the real user identifier and the effective user identifier for
2218-this process. Similar to assigning a value to the Perl's builtin
2219-C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter
2220-will change only the real user identifier.
2221-
2222-=item sigaction
2223-
2224-Detailed signal management. This uses C<POSIX::SigAction> objects for
2225-the C<action> and C<oldaction> arguments (the oldaction can also be
2226-just a hash reference). Consult your system's C<sigaction> manpage
2227-for details, see also C<POSIX::SigRt>.
2228-
2229-Synopsis:
2230-
2231- sigaction(signal, action, oldaction = 0)
2232-
2233-Returns C<undef> on failure. The C<signal> must be a number (like
2234-SIGHUP), not a string (like "SIGHUP"), though Perl does try hard
2235-to understand you.
2236-
2237-If you use the SA_SIGINFO flag, the signal handler will in addition to
2238-the first argument, the signal name, also receive a second argument, a
2239-hash reference, inside which are the following keys with the following
2240-semantics, as defined by POSIX/SUSv3:
2241-
2242- signo the signal number
2243- errno the error number
2244- code if this is zero or less, the signal was sent by
2245- a user process and the uid and pid make sense,
2246- otherwise the signal was sent by the kernel
2247-
2248-The following are also defined by POSIX/SUSv3, but unfortunately
2249-not very widely implemented:
2250-
2251- pid the process id generating the signal
2252- uid the uid of the process id generating the signal
2253- status exit value or signal for SIGCHLD
2254- band band event for SIGPOLL
2255-
2256-A third argument is also passed to the handler, which contains a copy
2257-of the raw binary contents of the siginfo structure: if a system has
2258-some non-POSIX fields, this third argument is where to unpack() them
2259-from.
2260-
2261-Note that not all siginfo values make sense simultaneously (some are
2262-valid only for certain signals, for example), and not all values make
2263-sense from Perl perspective, you should to consult your system's
2264-C<sigaction> and possibly also C<siginfo> documentation.
2265-
2266-=item siglongjmp
2267-
2268-siglongjmp() is C-specific: use L<perlfunc/die> instead.
2269-
2270-=item sigpending
2271-
2272-Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
2273-objects for the C<sigset> argument. Consult your system's C<sigpending>
2274-manpage for details.
2275-
2276-Synopsis:
2277-
2278- sigpending(sigset)
2279-
2280-Returns C<undef> on failure.
2281-
2282-=item sigprocmask
2283-
2284-Change and/or examine calling process's signal mask. This uses
2285-C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
2286-Consult your system's C<sigprocmask> manpage for details.
2287-
2288-Synopsis:
2289-
2290- sigprocmask(how, sigset, oldsigset = 0)
2291-
2292-Returns C<undef> on failure.
2293-
2294-=item sigsetjmp
2295-
2296-C<sigsetjmp()> is C-specific: use C<eval {}> instead,
2297-see L<perlfunc/eval>.
2298-
2299-=item sigsuspend
2300-
2301-Install a signal mask and suspend process until signal arrives. This uses
2302-C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
2303-system's C<sigsuspend> manpage for details.
2304-
2305-Synopsis:
2306-
2307- sigsuspend(signal_mask)
2308-
2309-Returns C<undef> on failure.
2310-
2311-=item sin
2312-
2313-This is identical to Perl's builtin C<sin()> function
2314-for returning the sine of the numerical argument,
2315-see L<perlfunc/sin>. See also L<Math::Trig>.
2316-
2317-=item sinh
2318-
2319-This is identical to the C function C<sinh()>
2320-for returning the hyperbolic sine of the numerical argument.
2321-See also L<Math::Trig>.
2322-
2323-=item sleep
2324-
2325-This is functionally identical to Perl's builtin C<sleep()> function
2326-for suspending the execution of the current for process for certain
2327-number of seconds, see L<perlfunc/sleep>. There is one significant
2328-difference, however: C<POSIX::sleep()> returns the number of
2329-B<unslept> seconds, while the C<CORE::sleep()> returns the
2330-number of slept seconds.
2331-
2332-=item sprintf
2333-
2334-This is similar to Perl's builtin C<sprintf()> function
2335-for returning a string that has the arguments formatted as requested,
2336-see L<perlfunc/sprintf>.
2337-
2338-=item sqrt
2339-
2340-This is identical to Perl's builtin C<sqrt()> function.
2341-for returning the square root of the numerical argument,
2342-see L<perlfunc/sqrt>.
2343-
2344-=item srand
2345-
2346-Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
2347-
2348-=item sscanf
2349-
2350-sscanf() is C-specific, use regular expressions instead,
2351-see L<perlre>.
2352-
2353-=item stat
2354-
2355-This is identical to Perl's builtin C<stat()> function
2356-for returning information about files and directories.
2357-
2358-=item strcat
2359-
2360-strcat() is C-specific, use C<.=> instead, see L<perlop>.
2361-
2362-=item strchr
2363-
2364-strchr() is C-specific, see L<perlfunc/index> instead.
2365-
2366-=item strcmp
2367-
2368-strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
2369-
2370-=item strcoll
2371-
2372-This is identical to the C function C<strcoll()>
2373-for collating (comparing) strings transformed using
2374-the C<strxfrm()> function. Not really needed since
2375-Perl can do this transparently, see L<perllocale>.
2376-
2377-=item strcpy
2378-
2379-strcpy() is C-specific, use C<=> instead, see L<perlop>.
2380-
2381-=item strcspn
2382-
2383-strcspn() is C-specific, use regular expressions instead,
2384-see L<perlre>.
2385-
2386-=item strerror
2387-
2388-Returns the error string for the specified errno.
2389-Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
2390-
2391-=item strftime
2392-
2393-Convert date and time information to string. Returns the string.
2394-
2395-Synopsis:
2396-
2397- strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
2398-
2399-The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
2400-I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
2401-year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the
2402-year 2001 is 101. Consult your system's C<strftime()> manpage for details
2403-about these and the other arguments.
2404-
2405-If you want your code to be portable, your format (C<fmt>) argument
2406-should use only the conversion specifiers defined by the ANSI C
2407-standard (C89, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
2408-But even then, the B<results> of some of the conversion specifiers are
2409-non-portable. For example, the specifiers C<aAbBcpZ> change according
2410-to the locale settings of the user, and both how to set locales (the
2411-locale names) and what output to expect are non-standard.
2412-The specifier C<c> changes according to the timezone settings of the
2413-user and the timezone computation rules of the operating system.
2414-The C<Z> specifier is notoriously unportable since the names of
2415-timezones are non-standard. Sticking to the numeric specifiers is the
2416-safest route.
2417-
2418-The given arguments are made consistent as though by calling
2419-C<mktime()> before calling your system's C<strftime()> function,
2420-except that the C<isdst> value is not affected.
2421-
2422-The string for Tuesday, December 12, 1995.
2423-
2424- $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
2425- print "$str\n";
2426-
2427-=item strlen
2428-
2429-strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
2430-
2431-=item strncat
2432-
2433-strncat() is C-specific, use C<.=> instead, see L<perlop>.
2434-
2435-=item strncmp
2436-
2437-strncmp() is C-specific, use C<eq> instead, see L<perlop>.
2438-
2439-=item strncpy
2440-
2441-strncpy() is C-specific, use C<=> instead, see L<perlop>.
2442-
2443-=item strpbrk
2444-
2445-strpbrk() is C-specific, use regular expressions instead,
2446-see L<perlre>.
2447-
2448-=item strrchr
2449-
2450-strrchr() is C-specific, see L<perlfunc/rindex> instead.
2451-
2452-=item strspn
2453-
2454-strspn() is C-specific, use regular expressions instead,
2455-see L<perlre>.
2456-
2457-=item strstr
2458-
2459-This is identical to Perl's builtin C<index()> function,
2460-see L<perlfunc/index>.
2461-
2462-=item strtod
2463-
2464-String to double translation. Returns the parsed number and the number
2465-of characters in the unparsed portion of the string. Truly
2466-POSIX-compliant systems set $! ($ERRNO) to indicate a translation
2467-error, so clear $! before calling strtod. However, non-POSIX systems
2468-may not check for overflow, and therefore will never set $!.
2469-
2470-strtod should respect any POSIX I<setlocale()> settings.
2471-
2472-To parse a string $str as a floating point number use
2473-
2474- $! = 0;
2475- ($num, $n_unparsed) = POSIX::strtod($str);
2476-
2477-The second returned item and $! can be used to check for valid input:
2478-
2479- if (($str eq '') || ($n_unparsed != 0) || $!) {
2480- die "Non-numeric input $str" . ($! ? ": $!\n" : "\n");
2481- }
2482-
2483-When called in a scalar context strtod returns the parsed number.
2484-
2485-=item strtok
2486-
2487-strtok() is C-specific, use regular expressions instead, see
2488-L<perlre>, or L<perlfunc/split>.
2489-
2490-=item strtol
2491-
2492-String to (long) integer translation. Returns the parsed number and
2493-the number of characters in the unparsed portion of the string. Truly
2494-POSIX-compliant systems set $! ($ERRNO) to indicate a translation
2495-error, so clear $! before calling strtol. However, non-POSIX systems
2496-may not check for overflow, and therefore will never set $!.
2497-
2498-strtol should respect any POSIX I<setlocale()> settings.
2499-
2500-To parse a string $str as a number in some base $base use
2501-
2502- $! = 0;
2503- ($num, $n_unparsed) = POSIX::strtol($str, $base);
2504-
2505-The base should be zero or between 2 and 36, inclusive. When the base
2506-is zero or omitted strtol will use the string itself to determine the
2507-base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
2508-octal; any other leading characters mean decimal. Thus, "1234" is
2509-parsed as a decimal number, "01234" as an octal number, and "0x1234"
2510-as a hexadecimal number.
2511-
2512-The second returned item and $! can be used to check for valid input:
2513-
2514- if (($str eq '') || ($n_unparsed != 0) || !$!) {
2515- die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
2516- }
2517-
2518-When called in a scalar context strtol returns the parsed number.
2519-
2520-=item strtoul
2521-
2522-String to unsigned (long) integer translation. strtoul() is identical
2523-to strtol() except that strtoul() only parses unsigned integers. See
2524-L</strtol> for details.
2525-
2526-Note: Some vendors supply strtod() and strtol() but not strtoul().
2527-Other vendors that do supply strtoul() parse "-1" as a valid value.
2528-
2529-=item strxfrm
2530-
2531-String transformation. Returns the transformed string.
2532-
2533- $dst = POSIX::strxfrm( $src );
2534-
2535-Used in conjunction with the C<strcoll()> function, see L</strcoll>.
2536-
2537-Not really needed since Perl can do this transparently, see
2538-L<perllocale>.
2539-
2540-=item sysconf
2541-
2542-Retrieves values of system configurable variables.
2543-
2544-The following will get the machine's clock speed.
2545-
2546- $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
2547-
2548-Returns C<undef> on failure.
2549-
2550-=item system
2551-
2552-This is identical to Perl's builtin C<system()> function, see
2553-L<perlfunc/system>.
2554-
2555-=item tan
2556-
2557-This is identical to the C function C<tan()>, returning the
2558-tangent of the numerical argument. See also L<Math::Trig>.
2559-
2560-=item tanh
2561-
2562-This is identical to the C function C<tanh()>, returning the
2563-hyperbolic tangent of the numerical argument. See also L<Math::Trig>.
2564-
2565-=item tcdrain
2566-
2567-This is similar to the C function C<tcdrain()> for draining
2568-the output queue of its argument stream.
2569-
2570-Returns C<undef> on failure.
2571-
2572-=item tcflow
2573-
2574-This is similar to the C function C<tcflow()> for controlling
2575-the flow of its argument stream.
2576-
2577-Returns C<undef> on failure.
2578-
2579-=item tcflush
2580-
2581-This is similar to the C function C<tcflush()> for flushing
2582-the I/O buffers of its argument stream.
2583-
2584-Returns C<undef> on failure.
2585-
2586-=item tcgetpgrp
2587-
2588-This is identical to the C function C<tcgetpgrp()> for returning the
2589-process group identifier of the foreground process group of the controlling
2590-terminal.
2591-
2592-=item tcsendbreak
2593-
2594-This is similar to the C function C<tcsendbreak()> for sending
2595-a break on its argument stream.
2596-
2597-Returns C<undef> on failure.
2598-
2599-=item tcsetpgrp
2600-
2601-This is similar to the C function C<tcsetpgrp()> for setting the
2602-process group identifier of the foreground process group of the controlling
2603-terminal.
2604-
2605-Returns C<undef> on failure.
2606-
2607-=item time
2608-
2609-This is identical to Perl's builtin C<time()> function
2610-for returning the number of seconds since the epoch
2611-(whatever it is for the system), see L<perlfunc/time>.
2612-
2613-=item times
2614-
2615-The times() function returns elapsed realtime since some point in the past
2616-(such as system startup), user and system times for this process, and user
2617-and system times used by child processes. All times are returned in clock
2618-ticks.
2619-
2620- ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
2621-
2622-Note: Perl's builtin C<times()> function returns four values, measured in
2623-seconds.
2624-
2625-=item tmpfile
2626-
2627-Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
2628-
2629-=item tmpnam
2630-
2631-Returns a name for a temporary file.
2632-
2633- $tmpfile = POSIX::tmpnam();
2634-
2635-For security reasons, which are probably detailed in your system's
2636-documentation for the C library tmpnam() function, this interface
2637-should not be used; instead see L<File::Temp>.
2638-
2639-=item tolower
2640-
2641-This is identical to the C function, except that it can apply to a single
2642-character or to a whole string. Consider using the C<lc()> function,
2643-see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
2644-strings.
2645-
2646-=item toupper
2647-
2648-This is identical to the C function, except that it can apply to a single
2649-character or to a whole string. Consider using the C<uc()> function,
2650-see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
2651-strings.
2652-
2653-=item ttyname
2654-
2655-This is identical to the C function C<ttyname()> for returning the
2656-name of the current terminal.
2657-
2658-=item tzname
2659-
2660-Retrieves the time conversion information from the C<tzname> variable.
2661-
2662- POSIX::tzset();
2663- ($std, $dst) = POSIX::tzname();
2664-
2665-=item tzset
2666-
2667-This is identical to the C function C<tzset()> for setting
2668-the current timezone based on the environment variable C<TZ>,
2669-to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
2670-functions.
2671-
2672-=item umask
2673-
2674-This is identical to Perl's builtin C<umask()> function
2675-for setting (and querying) the file creation permission mask,
2676-see L<perlfunc/umask>.
2677-
2678-=item uname
2679-
2680-Get name of current operating system.
2681-
2682- ($sysname, $nodename, $release, $version, $machine) = POSIX::uname();
2683-
2684-Note that the actual meanings of the various fields are not
2685-that well standardized, do not expect any great portability.
2686-The C<$sysname> might be the name of the operating system,
2687-the C<$nodename> might be the name of the host, the C<$release>
2688-might be the (major) release number of the operating system,
2689-the C<$version> might be the (minor) release number of the
2690-operating system, and the C<$machine> might be a hardware identifier.
2691-Maybe.
2692-
2693-=item ungetc
2694-
2695-Use method C<IO::Handle::ungetc()> instead.
2696-
2697-=item unlink
2698-
2699-This is identical to Perl's builtin C<unlink()> function
2700-for removing files, see L<perlfunc/unlink>.
2701-
2702-=item utime
2703-
2704-This is identical to Perl's builtin C<utime()> function
2705-for changing the time stamps of files and directories,
2706-see L<perlfunc/utime>.
2707-
2708-=item vfprintf
2709-
2710-vfprintf() is C-specific, see L<perlfunc/printf> instead.
2711-
2712-=item vprintf
2713-
2714-vprintf() is C-specific, see L<perlfunc/printf> instead.
2715-
2716-=item vsprintf
2717-
2718-vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
2719-
2720-=item wait
2721-
2722-This is identical to Perl's builtin C<wait()> function,
2723-see L<perlfunc/wait>.
2724-
2725-=item waitpid
2726-
2727-Wait for a child process to change state. This is identical to Perl's
2728-builtin C<waitpid()> function, see L<perlfunc/waitpid>.
2729-
2730- $pid = POSIX::waitpid( -1, POSIX::WNOHANG );
2731- print "status = ", ($? / 256), "\n";
2732-
2733-=item wcstombs
2734-
2735-This is identical to the C function C<wcstombs()>.
2736-Perl does not have any support for the wide and multibyte
2737-characters of the C standards, so this might be a rather
2738-useless function.
2739-
2740-=item wctomb
2741-
2742-This is identical to the C function C<wctomb()>.
2743-Perl does not have any support for the wide and multibyte
2744-characters of the C standards, so this might be a rather
2745-useless function.
2746-
2747-=item write
2748-
2749-Write to a file. This uses file descriptors such as those obtained by
2750-calling C<POSIX::open>.
2751-
2752- $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
2753- $buf = "hello";
2754- $bytes = POSIX::write( $fd, $buf, 5 );
2755-
2756-Returns C<undef> on failure.
2757-
2758-See also L<perlfunc/syswrite>.
2759-
2760-=back
2761-
2762-=head1 CLASSES
2763-
2764-=head2 POSIX::SigAction
2765-
2766-=over 8
2767-
2768-=item new
2769-
2770-Creates a new C<POSIX::SigAction> object which corresponds to the C
2771-C<struct sigaction>. This object will be destroyed automatically when
2772-it is no longer needed. The first parameter is the handler, a sub
2773-reference. The second parameter is a C<POSIX::SigSet> object, it
2774-defaults to the empty set. The third parameter contains the
2775-C<sa_flags>, it defaults to 0.
2776-
2777- $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
2778- $sigaction = POSIX::SigAction->new( \&handler, $sigset, &POSIX::SA_NOCLDSTOP );
2779-
2780-This C<POSIX::SigAction> object is intended for use with the C<POSIX::sigaction()>
2781-function.
2782-
2783-=back
2784-
2785-=over 8
2786-
2787-=item handler
2788-
2789-=item mask
2790-
2791-=item flags
2792-
2793-accessor functions to get/set the values of a SigAction object.
2794-
2795- $sigset = $sigaction->mask;
2796- $sigaction->flags(&POSIX::SA_RESTART);
2797-
2798-=item safe
2799-
2800-accessor function for the "safe signals" flag of a SigAction object; see
2801-L<perlipc> for general information on safe (a.k.a. "deferred") signals. If
2802-you wish to handle a signal safely, use this accessor to set the "safe" flag
2803-in the C<POSIX::SigAction> object:
2804-
2805- $sigaction->safe(1);
2806-
2807-You may also examine the "safe" flag on the output action object which is
2808-filled in when given as the third parameter to C<POSIX::sigaction()>:
2809-
2810- sigaction(SIGINT, $new_action, $old_action);
2811- if ($old_action->safe) {
2812- # previous SIGINT handler used safe signals
2813- }
2814-
2815-=back
2816-
2817-=head2 POSIX::SigRt
2818-
2819-=over 8
2820-
2821-=item %SIGRT
2822-
2823-A hash of the POSIX realtime signal handlers. It is an extension of
2824-the standard %SIG, the $POSIX::SIGRT{SIGRTMIN} is roughly equivalent
2825-to $SIG{SIGRTMIN}, but the right POSIX moves (see below) are made with
2826-the POSIX::SigSet and POSIX::sigaction instead of accessing the %SIG.
2827-
2828-You can set the %POSIX::SIGRT elements to set the POSIX realtime
2829-signal handlers, use C<delete> and C<exists> on the elements, and use
2830-C<scalar> on the C<%POSIX::SIGRT> to find out how many POSIX realtime
2831-signals there are available (SIGRTMAX - SIGRTMIN + 1, the SIGRTMAX is
2832-a valid POSIX realtime signal).
2833-
2834-Setting the %SIGRT elements is equivalent to calling this:
2835-
2836- sub new {
2837- my ($rtsig, $handler, $flags) = @_;
2838- my $sigset = POSIX::SigSet($rtsig);
2839- my $sigact = POSIX::SigAction->new($handler, $sigset, $flags);
2840- sigaction($rtsig, $sigact);
2841- }
2842-
2843-The flags default to zero, if you want something different you can
2844-either use C<local> on $POSIX::SigRt::SIGACTION_FLAGS, or you can
2845-derive from POSIX::SigRt and define your own C<new()> (the tied hash
2846-STORE method of the %SIGRT calls C<new($rtsig, $handler, $SIGACTION_FLAGS)>,
2847-where the $rtsig ranges from zero to SIGRTMAX - SIGRTMIN + 1).
2848-
2849-Just as with any signal, you can use sigaction($rtsig, undef, $oa) to
2850-retrieve the installed signal handler (or, rather, the signal action).
2851-
2852-B<NOTE:> whether POSIX realtime signals really work in your system, or
2853-whether Perl has been compiled so that it works with them, is outside
2854-of this discussion.
2855-
2856-=item SIGRTMIN
2857-
2858-Return the minimum POSIX realtime signal number available, or C<undef>
2859-if no POSIX realtime signals are available.
2860-
2861-=item SIGRTMAX
2862-
2863-Return the maximum POSIX realtime signal number available, or C<undef>
2864-if no POSIX realtime signals are available.
2865-
2866-=back
2867-
2868-=head2 POSIX::SigSet
2869-
2870-=over 8
2871-
2872-=item new
2873-
2874-Create a new SigSet object. This object will be destroyed automatically
2875-when it is no longer needed. Arguments may be supplied to initialize the
2876-set.
2877-
2878-Create an empty set.
2879-
2880- $sigset = POSIX::SigSet->new;
2881-
2882-Create a set with SIGUSR1.
2883-
2884- $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
2885-
2886-=item addset
2887-
2888-Add a signal to a SigSet object.
2889-
2890- $sigset->addset( &POSIX::SIGUSR2 );
2891-
2892-Returns C<undef> on failure.
2893-
2894-=item delset
2895-
2896-Remove a signal from the SigSet object.
2897-
2898- $sigset->delset( &POSIX::SIGUSR2 );
2899-
2900-Returns C<undef> on failure.
2901-
2902-=item emptyset
2903-
2904-Initialize the SigSet object to be empty.
2905-
2906- $sigset->emptyset();
2907-
2908-Returns C<undef> on failure.
2909-
2910-=item fillset
2911-
2912-Initialize the SigSet object to include all signals.
2913-
2914- $sigset->fillset();
2915-
2916-Returns C<undef> on failure.
2917-
2918-=item ismember
2919-
2920-Tests the SigSet object to see if it contains a specific signal.
2921-
2922- if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
2923- print "contains SIGUSR1\n";
2924- }
2925-
2926-=back
2927-
2928-=head2 POSIX::Termios
2929-
2930-=over 8
2931-
2932-=item new
2933-
2934-Create a new Termios object. This object will be destroyed automatically
2935-when it is no longer needed. A Termios object corresponds to the termios
2936-C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
2937-and setattr() sets a file descriptor's parameters to match Termios' contents.
2938-
2939- $termios = POSIX::Termios->new;
2940-
2941-=item getattr
2942-
2943-Get terminal control attributes.
2944-
2945-Obtain the attributes for stdin.
2946-
2947- $termios->getattr( 0 ) # Recommended for clarity.
2948- $termios->getattr()
2949-
2950-Obtain the attributes for stdout.
2951-
2952- $termios->getattr( 1 )
2953-
2954-Returns C<undef> on failure.
2955-
2956-=item getcc
2957-
2958-Retrieve a value from the c_cc field of a termios object. The c_cc field is
2959-an array so an index must be specified.
2960-
2961- $c_cc[1] = $termios->getcc(1);
2962-
2963-=item getcflag
2964-
2965-Retrieve the c_cflag field of a termios object.
2966-
2967- $c_cflag = $termios->getcflag;
2968-
2969-=item getiflag
2970-
2971-Retrieve the c_iflag field of a termios object.
2972-
2973- $c_iflag = $termios->getiflag;
2974-
2975-=item getispeed
2976-
2977-Retrieve the input baud rate.
2978-
2979- $ispeed = $termios->getispeed;
2980-
2981-=item getlflag
2982-
2983-Retrieve the c_lflag field of a termios object.
2984-
2985- $c_lflag = $termios->getlflag;
2986-
2987-=item getoflag
2988-
2989-Retrieve the c_oflag field of a termios object.
2990-
2991- $c_oflag = $termios->getoflag;
2992-
2993-=item getospeed
2994-
2995-Retrieve the output baud rate.
2996-
2997- $ospeed = $termios->getospeed;
2998-
2999-=item setattr
3000-
3001-Set terminal control attributes.
3002-
3003-Set attributes immediately for stdout.
3004-
3005- $termios->setattr( 1, &POSIX::TCSANOW );
3006-
3007-Returns C<undef> on failure.
3008-
3009-=item setcc
3010-
3011-Set a value in the c_cc field of a termios object. The c_cc field is an
3012-array so an index must be specified.
3013-
3014- $termios->setcc( &POSIX::VEOF, 1 );
3015-
3016-=item setcflag
3017-
3018-Set the c_cflag field of a termios object.
3019-
3020- $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
3021-
3022-=item setiflag
3023-
3024-Set the c_iflag field of a termios object.
3025-
3026- $termios->setiflag( $c_iflag | &POSIX::BRKINT );
3027-
3028-=item setispeed
3029-
3030-Set the input baud rate.
3031-
3032- $termios->setispeed( &POSIX::B9600 );
3033-
3034-Returns C<undef> on failure.
3035-
3036-=item setlflag
3037-
3038-Set the c_lflag field of a termios object.
3039-
3040- $termios->setlflag( $c_lflag | &POSIX::ECHO );
3041-
3042-=item setoflag
3043-
3044-Set the c_oflag field of a termios object.
3045-
3046- $termios->setoflag( $c_oflag | &POSIX::OPOST );
3047-
3048-=item setospeed
3049-
3050-Set the output baud rate.
3051-
3052- $termios->setospeed( &POSIX::B9600 );
3053-
3054-Returns C<undef> on failure.
3055-
3056-=item Baud rate values
3057-
3058-B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
3059-
3060-=item Terminal interface values
3061-
3062-TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
3063-
3064-=item c_cc field values
3065-
3066-VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
3067-
3068-=item c_cflag field values
3069-
3070-CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
3071-
3072-=item c_iflag field values
3073-
3074-BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
3075-
3076-=item c_lflag field values
3077-
3078-ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
3079-
3080-=item c_oflag field values
3081-
3082-OPOST
3083-
3084-=back
3085-
3086-=head1 PATHNAME CONSTANTS
3087-
3088-=over 8
3089-
3090-=item Constants
3091-
3092-_PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE
3093-
3094-=back
3095-
3096-=head1 POSIX CONSTANTS
3097-
3098-=over 8
3099-
3100-=item Constants
3101-
3102-_POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
3103-
3104-=back
3105-
3106-=head1 SYSTEM CONFIGURATION
3107-
3108-=over 8
3109-
3110-=item Constants
3111-
3112-_SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
3113-
3114-=back
3115-
3116-=head1 ERRNO
3117-
3118-=over 8
3119-
3120-=item Constants
3121-
3122-E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
3123-EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
3124-EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
3125-EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
3126-ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
3127-ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
3128-ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
3129-EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
3130-ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
3131-ETXTBSY EUSERS EWOULDBLOCK EXDEV
3132-
3133-=back
3134-
3135-=head1 FCNTL
3136-
3137-=over 8
3138-
3139-=item Constants
3140-
3141-FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY
3142-
3143-=back
3144-
3145-=head1 FLOAT
3146-
3147-=over 8
3148-
3149-=item Constants
3150-
3151-DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP
3152-
3153-=back
3154-
3155-=head1 LIMITS
3156-
3157-=over 8
3158-
3159-=item Constants
3160-
3161-ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
3162-
3163-=back
3164-
3165-=head1 LOCALE
3166-
3167-=over 8
3168-
3169-=item Constants
3170-
3171-LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
3172-
3173-=back
3174-
3175-=head1 MATH
3176-
3177-=over 8
3178-
3179-=item Constants
3180-
3181-HUGE_VAL
3182-
3183-=back
3184-
3185-=head1 SIGNAL
3186-
3187-=over 8
3188-
3189-=item Constants
3190-
3191-SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
3192-SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
3193-SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
3194-SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
3195-SIG_UNBLOCK
3196-
3197-=back
3198-
3199-=head1 STAT
3200-
3201-=over 8
3202-
3203-=item Constants
3204-
3205-S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
3206-
3207-=item Macros
3208-
3209-S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
3210-
3211-=back
3212-
3213-=head1 STDLIB
3214-
3215-=over 8
3216-
3217-=item Constants
3218-
3219-EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
3220-
3221-=back
3222-
3223-=head1 STDIO
3224-
3225-=over 8
3226-
3227-=item Constants
3228-
3229-BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
3230-
3231-=back
3232-
3233-=head1 TIME
3234-
3235-=over 8
3236-
3237-=item Constants
3238-
3239-CLK_TCK CLOCKS_PER_SEC
3240-
3241-=back
3242-
3243-=head1 UNISTD
3244-
3245-=over 8
3246-
3247-=item Constants
3248-
3249-R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
3250-
3251-=back
3252-
3253-=head1 WAIT
3254-
3255-=over 8
3256-
3257-=item Constants
3258-
3259-WNOHANG WUNTRACED
3260-
3261-=over 16
3262-
3263-=item WNOHANG
3264-
3265-Do not suspend the calling process until a child process
3266-changes state but instead return immediately.
3267-
3268-=item WUNTRACED
3269-
3270-Catch stopped child processes.
3271-
3272-=back
3273-
3274-=item Macros
3275-
3276-WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
3277-
3278-=over 16
3279-
3280-=item WIFEXITED
3281-
3282-WIFEXITED($?) returns true if the child process exited normally
3283-(C<exit()> or by falling off the end of C<main()>)
3284-
3285-=item WEXITSTATUS
3286-
3287-WEXITSTATUS($?) returns the normal exit status of the child process
3288-(only meaningful if WIFEXITED($?) is true)
3289-
3290-=item WIFSIGNALED
3291-
3292-WIFSIGNALED($?) returns true if the child process terminated because
3293-of a signal
3294-
3295-=item WTERMSIG
3296-
3297-WTERMSIG($?) returns the signal the child process terminated for
3298-(only meaningful if WIFSIGNALED($?) is true)
3299-
3300-=item WIFSTOPPED
3301-
3302-WIFSTOPPED($?) returns true if the child process is currently stopped
3303-(can happen only if you specified the WUNTRACED flag to waitpid())
3304-
3305-=item WSTOPSIG
3306-
3307-WSTOPSIG($?) returns the signal the child process was stopped for
3308-(only meaningful if WIFSTOPPED($?) is true)
3309-
3310-=back
3311-
3312-=back
3313-
3314diff --git a/ext/POSIX/lib/POSIX.pm b/ext/POSIX/lib/POSIX.pm
3315new file mode 100644
3316index 0000000..ffbd9de
3317--- /dev/null
3318+++ b/ext/POSIX/lib/POSIX.pm
3319@@ -0,0 +1,1042 @@
3320+package POSIX;
3321+use strict;
3322+use warnings;
3323+
3324+our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = ();
3325+
3326+our $VERSION = "1.19";
3327+
3328+use AutoLoader;
3329+
3330+use XSLoader ();
3331+
3332+use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
3333+ F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
3334+ O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
3335+ O_WRONLY SEEK_CUR SEEK_END SEEK_SET
3336+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
3337+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
3338+ S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
3339+
3340+# Grandfather old foo_h form to new :foo_h form
3341+my $loaded;
3342+
3343+sub import {
3344+ load_imports() unless $loaded++;
3345+ my $this = shift;
3346+ my @list = map { m/^\w+_h$/ ? ":$_" : $_ } @_;
3347+ local $Exporter::ExportLevel = 1;
3348+ Exporter::import($this,@list);
3349+}
3350+
3351+sub croak { require Carp; goto &Carp::croak }
3352+# declare usage to assist AutoLoad
3353+sub usage;
3354+
3355+XSLoader::load 'POSIX', $VERSION;
3356+
3357+sub AUTOLOAD {
3358+ no strict;
3359+ no warnings 'uninitialized';
3360+ if ($AUTOLOAD =~ /::(_?[a-z])/) {
3361+ # require AutoLoader;
3362+ $AutoLoader::AUTOLOAD = $AUTOLOAD;
3363+ goto &AutoLoader::AUTOLOAD
3364+ }
3365+ local $! = 0;
3366+ my $constname = $AUTOLOAD;
3367+ $constname =~ s/.*:://;
3368+ my ($error, $val) = constant($constname);
3369+ croak $error if $error;
3370+ *$AUTOLOAD = sub { $val };
3371+
3372+ goto &$AUTOLOAD;
3373+}
3374+
3375+package POSIX::SigAction;
3376+
3377+use AutoLoader 'AUTOLOAD';
3378+
3379+package POSIX::SigRt;
3380+
3381+use AutoLoader 'AUTOLOAD';
3382+
3383+use Tie::Hash;
3384+
3385+use vars qw($SIGACTION_FLAGS $_SIGRTMIN $_SIGRTMAX $_sigrtn @ISA);
3386+@POSIX::SigRt::ISA = qw(Tie::StdHash);
3387+
3388+$SIGACTION_FLAGS = 0;
3389+
3390+tie %POSIX::SIGRT, 'POSIX::SigRt';
3391+
3392+sub DESTROY {};
3393+
3394+package POSIX;
3395+
3396+1;
3397+__END__
3398+
3399+sub usage {
3400+ my ($mess) = @_;
3401+ croak "Usage: POSIX::$mess";
3402+}
3403+
3404+sub redef {
3405+ my ($mess) = @_;
3406+ croak "Use method $mess instead";
3407+}
3408+
3409+sub unimpl {
3410+ my ($mess) = @_;
3411+ $mess =~ s/xxx//;
3412+ croak "Unimplemented: POSIX::$mess";
3413+}
3414+
3415+sub assert {
3416+ usage "assert(expr)" if @_ != 1;
3417+ if (!$_[0]) {
3418+ croak "Assertion failed";
3419+ }
3420+}
3421+
3422+sub tolower {
3423+ usage "tolower(string)" if @_ != 1;
3424+ lc($_[0]);
3425+}
3426+
3427+sub toupper {
3428+ usage "toupper(string)" if @_ != 1;
3429+ uc($_[0]);
3430+}
3431+
3432+sub closedir {
3433+ usage "closedir(dirhandle)" if @_ != 1;
3434+ CORE::closedir($_[0]);
3435+}
3436+
3437+sub opendir {
3438+ usage "opendir(directory)" if @_ != 1;
3439+ my $dirhandle;
3440+ CORE::opendir($dirhandle, $_[0])
3441+ ? $dirhandle
3442+ : undef;
3443+}
3444+
3445+sub readdir {
3446+ usage "readdir(dirhandle)" if @_ != 1;
3447+ CORE::readdir($_[0]);
3448+}
3449+
3450+sub rewinddir {
3451+ usage "rewinddir(dirhandle)" if @_ != 1;
3452+ CORE::rewinddir($_[0]);
3453+}
3454+
3455+sub errno {
3456+ usage "errno()" if @_ != 0;
3457+ $! + 0;
3458+}
3459+
3460+sub creat {
3461+ usage "creat(filename, mode)" if @_ != 2;
3462+ &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1]);
3463+}
3464+
3465+sub fcntl {
3466+ usage "fcntl(filehandle, cmd, arg)" if @_ != 3;
3467+ CORE::fcntl($_[0], $_[1], $_[2]);
3468+}
3469+
3470+sub getgrgid {
3471+ usage "getgrgid(gid)" if @_ != 1;
3472+ CORE::getgrgid($_[0]);
3473+}
3474+
3475+sub getgrnam {
3476+ usage "getgrnam(name)" if @_ != 1;
3477+ CORE::getgrnam($_[0]);
3478+}
3479+
3480+sub atan2 {
3481+ usage "atan2(x,y)" if @_ != 2;
3482+ CORE::atan2($_[0], $_[1]);
3483+}
3484+
3485+sub cos {
3486+ usage "cos(x)" if @_ != 1;
3487+ CORE::cos($_[0]);
3488+}
3489+
3490+sub exp {
3491+ usage "exp(x)" if @_ != 1;
3492+ CORE::exp($_[0]);
3493+}
3494+
3495+sub fabs {
3496+ usage "fabs(x)" if @_ != 1;
3497+ CORE::abs($_[0]);
3498+}
3499+
3500+sub log {
3501+ usage "log(x)" if @_ != 1;
3502+ CORE::log($_[0]);
3503+}
3504+
3505+sub pow {
3506+ usage "pow(x,exponent)" if @_ != 2;
3507+ $_[0] ** $_[1];
3508+}
3509+
3510+sub sin {
3511+ usage "sin(x)" if @_ != 1;
3512+ CORE::sin($_[0]);
3513+}
3514+
3515+sub sqrt {
3516+ usage "sqrt(x)" if @_ != 1;
3517+ CORE::sqrt($_[0]);
3518+}
3519+
3520+sub getpwnam {
3521+ usage "getpwnam(name)" if @_ != 1;
3522+ CORE::getpwnam($_[0]);
3523+}
3524+
3525+sub getpwuid {
3526+ usage "getpwuid(uid)" if @_ != 1;
3527+ CORE::getpwuid($_[0]);
3528+}
3529+
3530+sub longjmp {
3531+ unimpl "longjmp() is C-specific: use die instead";
3532+}
3533+
3534+sub setjmp {
3535+ unimpl "setjmp() is C-specific: use eval {} instead";
3536+}
3537+
3538+sub siglongjmp {
3539+ unimpl "siglongjmp() is C-specific: use die instead";
3540+}
3541+
3542+sub sigsetjmp {
3543+ unimpl "sigsetjmp() is C-specific: use eval {} instead";
3544+}
3545+
3546+sub kill {
3547+ usage "kill(pid, sig)" if @_ != 2;
3548+ CORE::kill $_[1], $_[0];
3549+}
3550+
3551+sub raise {
3552+ usage "raise(sig)" if @_ != 1;
3553+ CORE::kill $_[0], $$; # Is this good enough?
3554+}
3555+
3556+sub offsetof {
3557+ unimpl "offsetof() is C-specific, stopped";
3558+}
3559+
3560+sub clearerr {
3561+ redef "IO::Handle::clearerr()";
3562+}
3563+
3564+sub fclose {
3565+ redef "IO::Handle::close()";
3566+}
3567+
3568+sub fdopen {
3569+ redef "IO::Handle::new_from_fd()";
3570+}
3571+
3572+sub feof {
3573+ redef "IO::Handle::eof()";
3574+}
3575+
3576+sub fgetc {
3577+ redef "IO::Handle::getc()";
3578+}
3579+
3580+sub fgets {
3581+ redef "IO::Handle::gets()";
3582+}
3583+
3584+sub fileno {
3585+ redef "IO::Handle::fileno()";
3586+}
3587+
3588+sub fopen {
3589+ redef "IO::File::open()";
3590+}
3591+
3592+sub fprintf {
3593+ unimpl "fprintf() is C-specific--use printf instead";
3594+}
3595+
3596+sub fputc {
3597+ unimpl "fputc() is C-specific--use print instead";
3598+}
3599+
3600+sub fputs {
3601+ unimpl "fputs() is C-specific--use print instead";
3602+}
3603+
3604+sub fread {
3605+ unimpl "fread() is C-specific--use read instead";
3606+}
3607+
3608+sub freopen {
3609+ unimpl "freopen() is C-specific--use open instead";
3610+}
3611+
3612+sub fscanf {
3613+ unimpl "fscanf() is C-specific--use <> and regular expressions instead";
3614+}
3615+
3616+sub fseek {
3617+ redef "IO::Seekable::seek()";
3618+}
3619+
3620+sub fsync {
3621+ redef "IO::Handle::sync()";
3622+}
3623+
3624+sub ferror {
3625+ redef "IO::Handle::error()";
3626+}
3627+
3628+sub fflush {
3629+ redef "IO::Handle::flush()";
3630+}
3631+
3632+sub fgetpos {
3633+ redef "IO::Seekable::getpos()";
3634+}
3635+
3636+sub fsetpos {
3637+ redef "IO::Seekable::setpos()";
3638+}
3639+
3640+sub ftell {
3641+ redef "IO::Seekable::tell()";
3642+}
3643+
3644+sub fwrite {
3645+ unimpl "fwrite() is C-specific--use print instead";
3646+}
3647+
3648+sub getc {
3649+ usage "getc(handle)" if @_ != 1;
3650+ CORE::getc($_[0]);
3651+}
3652+
3653+sub getchar {
3654+ usage "getchar()" if @_ != 0;
3655+ CORE::getc(STDIN);
3656+}
3657+
3658+sub gets {
3659+ usage "gets()" if @_ != 0;
3660+ scalar <STDIN>;
3661+}
3662+
3663+sub perror {
3664+ print STDERR "@_: " if @_;
3665+ print STDERR $!,"\n";
3666+}
3667+
3668+sub printf {
3669+ usage "printf(pattern, args...)" if @_ < 1;
3670+ CORE::printf STDOUT @_;
3671+}
3672+
3673+sub putc {
3674+ unimpl "putc() is C-specific--use print instead";
3675+}
3676+
3677+sub putchar {
3678+ unimpl "putchar() is C-specific--use print instead";
3679+}
3680+
3681+sub puts {
3682+ unimpl "puts() is C-specific--use print instead";
3683+}
3684+
3685+sub remove {
3686+ usage "remove(filename)" if @_ != 1;
3687+ (-d $_[0]) ? CORE::rmdir($_[0]) : CORE::unlink($_[0]);
3688+}
3689+
3690+sub rename {
3691+ usage "rename(oldfilename, newfilename)" if @_ != 2;
3692+ CORE::rename($_[0], $_[1]);
3693+}
3694+
3695+sub rewind {
3696+ usage "rewind(filehandle)" if @_ != 1;
3697+ CORE::seek($_[0],0,0);
3698+}
3699+
3700+sub scanf {
3701+ unimpl "scanf() is C-specific--use <> and regular expressions instead";
3702+}
3703+
3704+sub sprintf {
3705+ usage "sprintf(pattern,args)" if @_ == 0;
3706+ CORE::sprintf(shift,@_);
3707+}
3708+
3709+sub sscanf {
3710+ unimpl "sscanf() is C-specific--use regular expressions instead";
3711+}
3712+
3713+sub tmpfile {
3714+ redef "IO::File::new_tmpfile()";
3715+}
3716+
3717+sub ungetc {
3718+ redef "IO::Handle::ungetc()";
3719+}
3720+
3721+sub vfprintf {
3722+ unimpl "vfprintf() is C-specific";
3723+}
3724+
3725+sub vprintf {
3726+ unimpl "vprintf() is C-specific";
3727+}
3728+
3729+sub vsprintf {
3730+ unimpl "vsprintf() is C-specific";
3731+}
3732+
3733+sub abs {
3734+ usage "abs(x)" if @_ != 1;
3735+ CORE::abs($_[0]);
3736+}
3737+
3738+sub atexit {
3739+ unimpl "atexit() is C-specific: use END {} instead";
3740+}
3741+
3742+sub atof {
3743+ unimpl "atof() is C-specific, stopped";
3744+}
3745+
3746+sub atoi {
3747+ unimpl "atoi() is C-specific, stopped";
3748+}
3749+
3750+sub atol {
3751+ unimpl "atol() is C-specific, stopped";
3752+}
3753+
3754+sub bsearch {
3755+ unimpl "bsearch() not supplied";
3756+}
3757+
3758+sub calloc {
3759+ unimpl "calloc() is C-specific, stopped";
3760+}
3761+
3762+sub div {
3763+ unimpl "div() is C-specific, use /, % and int instead";
3764+}
3765+
3766+sub exit {
3767+ usage "exit(status)" if @_ != 1;
3768+ CORE::exit($_[0]);
3769+}
3770+
3771+sub free {
3772+ unimpl "free() is C-specific, stopped";
3773+}
3774+
3775+sub getenv {
3776+ usage "getenv(name)" if @_ != 1;
3777+ $ENV{$_[0]};
3778+}
3779+
3780+sub labs {
3781+ unimpl "labs() is C-specific, use abs instead";
3782+}
3783+
3784+sub ldiv {
3785+ unimpl "ldiv() is C-specific, use /, % and int instead";
3786+}
3787+
3788+sub malloc {
3789+ unimpl "malloc() is C-specific, stopped";
3790+}
3791+
3792+sub qsort {
3793+ unimpl "qsort() is C-specific, use sort instead";
3794+}
3795+
3796+sub rand {
3797+ unimpl "rand() is non-portable, use Perl's rand instead";
3798+}
3799+
3800+sub realloc {
3801+ unimpl "realloc() is C-specific, stopped";
3802+}
3803+
3804+sub srand {
3805+ unimpl "srand()";
3806+}
3807+
3808+sub system {
3809+ usage "system(command)" if @_ != 1;
3810+ CORE::system($_[0]);
3811+}
3812+
3813+sub memchr {
3814+ unimpl "memchr() is C-specific, use index() instead";
3815+}
3816+
3817+sub memcmp {
3818+ unimpl "memcmp() is C-specific, use eq instead";
3819+}
3820+
3821+sub memcpy {
3822+ unimpl "memcpy() is C-specific, use = instead";
3823+}
3824+
3825+sub memmove {
3826+ unimpl "memmove() is C-specific, use = instead";
3827+}
3828+
3829+sub memset {
3830+ unimpl "memset() is C-specific, use x instead";
3831+}
3832+
3833+sub strcat {
3834+ unimpl "strcat() is C-specific, use .= instead";
3835+}
3836+
3837+sub strchr {
3838+ unimpl "strchr() is C-specific, use index() instead";
3839+}
3840+
3841+sub strcmp {
3842+ unimpl "strcmp() is C-specific, use eq instead";
3843+}
3844+
3845+sub strcpy {
3846+ unimpl "strcpy() is C-specific, use = instead";
3847+}
3848+
3849+sub strcspn {
3850+ unimpl "strcspn() is C-specific, use regular expressions instead";
3851+}
3852+
3853+sub strerror {
3854+ usage "strerror(errno)" if @_ != 1;
3855+ local $! = $_[0];
3856+ $! . "";
3857+}
3858+
3859+sub strlen {
3860+ unimpl "strlen() is C-specific, use length instead";
3861+}
3862+
3863+sub strncat {
3864+ unimpl "strncat() is C-specific, use .= instead";
3865+}
3866+
3867+sub strncmp {
3868+ unimpl "strncmp() is C-specific, use eq instead";
3869+}
3870+
3871+sub strncpy {
3872+ unimpl "strncpy() is C-specific, use = instead";
3873+}
3874+
3875+sub strpbrk {
3876+ unimpl "strpbrk() is C-specific, stopped";
3877+}
3878+
3879+sub strrchr {
3880+ unimpl "strrchr() is C-specific, use rindex() instead";
3881+}
3882+
3883+sub strspn {
3884+ unimpl "strspn() is C-specific, stopped";
3885+}
3886+
3887+sub strstr {
3888+ usage "strstr(big, little)" if @_ != 2;
3889+ CORE::index($_[0], $_[1]);
3890+}
3891+
3892+sub strtok {
3893+ unimpl "strtok() is C-specific, stopped";
3894+}
3895+
3896+sub chmod {
3897+ usage "chmod(mode, filename)" if @_ != 2;
3898+ CORE::chmod($_[0], $_[1]);
3899+}
3900+
3901+sub fstat {
3902+ usage "fstat(fd)" if @_ != 1;
3903+ local *TMP;
3904+ CORE::open(TMP, "<&$_[0]"); # Gross.
3905+ my @l = CORE::stat(TMP);
3906+ CORE::close(TMP);
3907+ @l;
3908+}
3909+
3910+sub mkdir {
3911+ usage "mkdir(directoryname, mode)" if @_ != 2;
3912+ CORE::mkdir($_[0], $_[1]);
3913+}
3914+
3915+sub stat {
3916+ usage "stat(filename)" if @_ != 1;
3917+ CORE::stat($_[0]);
3918+}
3919+
3920+sub umask {
3921+ usage "umask(mask)" if @_ != 1;
3922+ CORE::umask($_[0]);
3923+}
3924+
3925+sub wait {
3926+ usage "wait()" if @_ != 0;
3927+ CORE::wait();
3928+}
3929+
3930+sub waitpid {
3931+ usage "waitpid(pid, options)" if @_ != 2;
3932+ CORE::waitpid($_[0], $_[1]);
3933+}
3934+
3935+sub gmtime {
3936+ usage "gmtime(time)" if @_ != 1;
3937+ CORE::gmtime($_[0]);
3938+}
3939+
3940+sub localtime {
3941+ usage "localtime(time)" if @_ != 1;
3942+ CORE::localtime($_[0]);
3943+}
3944+
3945+sub time {
3946+ usage "time()" if @_ != 0;
3947+ CORE::time;
3948+}
3949+
3950+sub alarm {
3951+ usage "alarm(seconds)" if @_ != 1;
3952+ CORE::alarm($_[0]);
3953+}
3954+
3955+sub chdir {
3956+ usage "chdir(directory)" if @_ != 1;
3957+ CORE::chdir($_[0]);
3958+}
3959+
3960+sub chown {
3961+ usage "chown(uid, gid, filename)" if @_ != 3;
3962+ CORE::chown($_[0], $_[1], $_[2]);
3963+}
3964+
3965+sub execl {
3966+ unimpl "execl() is C-specific, stopped";
3967+}
3968+
3969+sub execle {
3970+ unimpl "execle() is C-specific, stopped";
3971+}
3972+
3973+sub execlp {
3974+ unimpl "execlp() is C-specific, stopped";
3975+}
3976+
3977+sub execv {
3978+ unimpl "execv() is C-specific, stopped";
3979+}
3980+
3981+sub execve {
3982+ unimpl "execve() is C-specific, stopped";
3983+}
3984+
3985+sub execvp {
3986+ unimpl "execvp() is C-specific, stopped";
3987+}
3988+
3989+sub fork {
3990+ usage "fork()" if @_ != 0;
3991+ CORE::fork;
3992+}
3993+
3994+sub getegid {
3995+ usage "getegid()" if @_ != 0;
3996+ $) + 0;
3997+}
3998+
3999+sub geteuid {
4000+ usage "geteuid()" if @_ != 0;
4001+ $> + 0;
4002+}
4003+
4004+sub getgid {
4005+ usage "getgid()" if @_ != 0;
4006+ $( + 0;
4007+}
4008+
4009+sub getgroups {
4010+ usage "getgroups()" if @_ != 0;
4011+ my %seen;
4012+ grep(!$seen{$_}++, split(' ', $) ));
4013+}
4014+
4015+sub getlogin {
4016+ usage "getlogin()" if @_ != 0;
4017+ CORE::getlogin();
4018+}
4019+
4020+sub getpgrp {
4021+ usage "getpgrp()" if @_ != 0;
4022+ CORE::getpgrp;
4023+}
4024+
4025+sub getpid {
4026+ usage "getpid()" if @_ != 0;
4027+ $$;
4028+}
4029+
4030+sub getppid {
4031+ usage "getppid()" if @_ != 0;
4032+ CORE::getppid;
4033+}
4034+
4035+sub getuid {
4036+ usage "getuid()" if @_ != 0;
4037+ $<;
4038+}
4039+
4040+sub isatty {
4041+ usage "isatty(filehandle)" if @_ != 1;
4042+ -t $_[0];
4043+}
4044+
4045+sub link {
4046+ usage "link(oldfilename, newfilename)" if @_ != 2;
4047+ CORE::link($_[0], $_[1]);
4048+}
4049+
4050+sub rmdir {
4051+ usage "rmdir(directoryname)" if @_ != 1;
4052+ CORE::rmdir($_[0]);
4053+}
4054+
4055+sub setbuf {
4056+ redef "IO::Handle::setbuf()";
4057+}
4058+
4059+sub setvbuf {
4060+ redef "IO::Handle::setvbuf()";
4061+}
4062+
4063+sub sleep {
4064+ usage "sleep(seconds)" if @_ != 1;
4065+ $_[0] - CORE::sleep($_[0]);
4066+}
4067+
4068+sub unlink {
4069+ usage "unlink(filename)" if @_ != 1;
4070+ CORE::unlink($_[0]);
4071+}
4072+
4073+sub utime {
4074+ usage "utime(filename, atime, mtime)" if @_ != 3;
4075+ CORE::utime($_[1], $_[2], $_[0]);
4076+}
4077+
4078+sub load_imports {
4079+%EXPORT_TAGS = (
4080+
4081+ assert_h => [qw(assert NDEBUG)],
4082+
4083+ ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower
4084+ isprint ispunct isspace isupper isxdigit tolower toupper)],
4085+
4086+ dirent_h => [],
4087+
4088+ errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT
4089+ EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED
4090+ ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT
4091+ EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS
4092+ EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK
4093+ EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH
4094+ ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM
4095+ ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
4096+ ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM
4097+ EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE
4098+ ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT
4099+ ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY
4100+ EUSERS EWOULDBLOCK EXDEV errno)],
4101+
4102+ fcntl_h => [qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK
4103+ F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK
4104+ O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK
4105+ O_RDONLY O_RDWR O_TRUNC O_WRONLY
4106+ creat
4107+ SEEK_CUR SEEK_END SEEK_SET
4108+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
4109+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID
4110+ S_IWGRP S_IWOTH S_IWUSR)],
4111+
4112+ float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG
4113+ DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP
4114+ DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP
4115+ FLT_DIG FLT_EPSILON FLT_MANT_DIG
4116+ FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP
4117+ FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP
4118+ FLT_RADIX FLT_ROUNDS
4119+ LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG
4120+ LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP
4121+ LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)],
4122+
4123+ grp_h => [],
4124+
4125+ limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX
4126+ INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON
4127+ MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX
4128+ PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN
4129+ SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX
4130+ ULONG_MAX USHRT_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX
4131+ _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT
4132+ _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX
4133+ _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX
4134+ _POSIX_STREAM_MAX _POSIX_TZNAME_MAX)],
4135+
4136+ locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES
4137+ LC_MONETARY LC_NUMERIC LC_TIME NULL
4138+ localeconv setlocale)],
4139+
4140+ math_h => [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod
4141+ frexp ldexp log10 modf pow sinh tan tanh)],
4142+
4143+ pwd_h => [],
4144+
4145+ setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)],
4146+
4147+ signal_h => [qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK
4148+ SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM
4149+ SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL
4150+ SIGPIPE %SIGRT SIGRTMIN SIGRTMAX SIGQUIT SIGSEGV SIGSTOP
4151+ SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2
4152+ SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK
4153+ raise sigaction signal sigpending sigprocmask sigsuspend)],
4154+
4155+ stdarg_h => [],
4156+
4157+ stddef_h => [qw(NULL offsetof)],
4158+
4159+ stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid
4160+ L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET
4161+ STREAM_MAX TMP_MAX stderr stdin stdout
4162+ clearerr fclose fdopen feof ferror fflush fgetc fgetpos
4163+ fgets fopen fprintf fputc fputs fread freopen
4164+ fscanf fseek fsetpos ftell fwrite getchar gets
4165+ perror putc putchar puts remove rewind
4166+ scanf setbuf setvbuf sscanf tmpfile tmpnam
4167+ ungetc vfprintf vprintf vsprintf)],
4168+
4169+ stdlib_h => [qw(EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX NULL RAND_MAX
4170+ abort atexit atof atoi atol bsearch calloc div
4171+ free getenv labs ldiv malloc mblen mbstowcs mbtowc
4172+ qsort realloc strtod strtol strtoul wcstombs wctomb)],
4173+
4174+ string_h => [qw(NULL memchr memcmp memcpy memmove memset strcat
4175+ strchr strcmp strcoll strcpy strcspn strerror strlen
4176+ strncat strncmp strncpy strpbrk strrchr strspn strstr
4177+ strtok strxfrm)],
4178+
4179+ sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
4180+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
4181+ S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
4182+ fstat mkfifo)],
4183+
4184+ sys_times_h => [],
4185+
4186+ sys_types_h => [],
4187+
4188+ sys_utsname_h => [qw(uname)],
4189+
4190+ sys_wait_h => [qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED
4191+ WNOHANG WSTOPSIG WTERMSIG WUNTRACED)],
4192+
4193+ termios_h => [qw( B0 B110 B1200 B134 B150 B1800 B19200 B200 B2400
4194+ B300 B38400 B4800 B50 B600 B75 B9600 BRKINT CLOCAL
4195+ CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB ECHO ECHOE ECHOK
4196+ ECHONL HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR
4197+ INLCR INPCK ISIG ISTRIP IXOFF IXON NCCS NOFLSH OPOST
4198+ PARENB PARMRK PARODD TCIFLUSH TCIOFF TCIOFLUSH TCION
4199+ TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
4200+ TOSTOP VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART
4201+ VSTOP VSUSP VTIME
4202+ cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcdrain
4203+ tcflow tcflush tcgetattr tcsendbreak tcsetattr )],
4204+
4205+ time_h => [qw(CLK_TCK CLOCKS_PER_SEC NULL asctime clock ctime
4206+ difftime mktime strftime tzset tzname)],
4207+
4208+ unistd_h => [qw(F_OK NULL R_OK SEEK_CUR SEEK_END SEEK_SET
4209+ STDERR_FILENO STDIN_FILENO STDOUT_FILENO W_OK X_OK
4210+ _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON
4211+ _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX
4212+ _PC_PIPE_BUF _PC_VDISABLE _POSIX_CHOWN_RESTRICTED
4213+ _POSIX_JOB_CONTROL _POSIX_NO_TRUNC _POSIX_SAVED_IDS
4214+ _POSIX_VDISABLE _POSIX_VERSION _SC_ARG_MAX
4215+ _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL
4216+ _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS
4217+ _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
4218+ _exit access ctermid cuserid
4219+ dup2 dup execl execle execlp execv execve execvp
4220+ fpathconf fsync getcwd getegid geteuid getgid getgroups
4221+ getpid getuid isatty lseek pathconf pause setgid setpgid
4222+ setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)],
4223+
4224+ utime_h => [],
4225+
4226+);
4227+
4228+# Exporter::export_tags();
4229+{
4230+ # De-duplicate the export list:
4231+ my %export;
4232+ @export{map {@$_} values %EXPORT_TAGS} = ();
4233+ # Doing the de-dup with a temporary hash has the advantage that the SVs in
4234+ # @EXPORT are actually shared hash key sacalars, which will save some memory.
4235+ push @EXPORT, keys %export;
4236+}
4237+
4238+@EXPORT_OK = qw(
4239+ abs
4240+ alarm
4241+ atan2
4242+ chdir
4243+ chmod
4244+ chown
4245+ close
4246+ closedir
4247+ cos
4248+ exit
4249+ exp
4250+ fcntl
4251+ fileno
4252+ fork
4253+ getc
4254+ getgrgid
4255+ getgrnam
4256+ getlogin
4257+ getpgrp
4258+ getppid
4259+ getpwnam
4260+ getpwuid
4261+ gmtime
4262+ isatty
4263+ kill
4264+ lchown
4265+ link
4266+ localtime
4267+ log
4268+ mkdir
4269+ nice
4270+ open
4271+ opendir
4272+ pipe
4273+ printf
4274+ rand
4275+ read
4276+ readdir
4277+ rename
4278+ rewinddir
4279+ rmdir
4280+ sin
4281+ sleep
4282+ sprintf
4283+ sqrt
4284+ srand
4285+ stat
4286+ system
4287+ time
4288+ times
4289+ umask
4290+ unlink
4291+ utime
4292+ wait
4293+ waitpid
4294+ write
4295+);
4296+
4297+require Exporter;
4298+}
4299+
4300+package POSIX::SigAction;
4301+
4302+sub new { bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0, SAFE => 0}, $_[0] }
4303+sub handler { $_[0]->{HANDLER} = $_[1] if @_ > 1; $_[0]->{HANDLER} };
4304+sub mask { $_[0]->{MASK} = $_[1] if @_ > 1; $_[0]->{MASK} };
4305+sub flags { $_[0]->{FLAGS} = $_[1] if @_ > 1; $_[0]->{FLAGS} };
4306+sub safe { $_[0]->{SAFE} = $_[1] if @_ > 1; $_[0]->{SAFE} };
4307+
4308+package POSIX::SigRt;
4309+
4310+
4311+sub _init {
4312+ $_SIGRTMIN = &POSIX::SIGRTMIN;
4313+ $_SIGRTMAX = &POSIX::SIGRTMAX;
4314+ $_sigrtn = $_SIGRTMAX - $_SIGRTMIN;
4315+}
4316+
4317+sub _croak {
4318+ &_init unless defined $_sigrtn;
4319+ die "POSIX::SigRt not available" unless defined $_sigrtn && $_sigrtn > 0;
4320+}
4321+
4322+sub _getsig {
4323+ &_croak;
4324+ my $rtsig = $_[0];
4325+ # Allow (SIGRT)?MIN( + n)?, a common idiom when doing these things in C.
4326+ $rtsig = $_SIGRTMIN + ($1 || 0)
4327+ if $rtsig =~ /^(?:(?:SIG)?RT)?MIN(\s*\+\s*(\d+))?$/;
4328+ return $rtsig;
4329+}
4330+
4331+sub _exist {
4332+ my $rtsig = _getsig($_[1]);
4333+ my $ok = $rtsig >= $_SIGRTMIN && $rtsig <= $_SIGRTMAX;
4334+ ($rtsig, $ok);
4335+}
4336+
4337+sub _check {
4338+ my ($rtsig, $ok) = &_exist;
4339+ die "No POSIX::SigRt signal $_[1] (valid range SIGRTMIN..SIGRTMAX, or $_SIGRTMIN..$_SIGRTMAX)"
4340+ unless $ok;
4341+ return $rtsig;
4342+}
4343+
4344+sub new {
4345+ my ($rtsig, $handler, $flags) = @_;
4346+ my $sigset = POSIX::SigSet->new($rtsig);
4347+ my $sigact = POSIX::SigAction->new($handler,
4348+ $sigset,
4349+ $flags);
4350+ POSIX::sigaction($rtsig, $sigact);
4351+}
4352+
4353+sub EXISTS { &_exist }
4354+sub FETCH { my $rtsig = &_check;
4355+ my $oa = POSIX::SigAction->new();
4356+ POSIX::sigaction($rtsig, undef, $oa);
4357+ return $oa->{HANDLER} }
4358+sub STORE { my $rtsig = &_check; new($rtsig, $_[2], $SIGACTION_FLAGS) }
4359+sub DELETE { delete $SIG{ &_check } }
4360+sub CLEAR { &_exist; delete @SIG{ &POSIX::SIGRTMIN .. &POSIX::SIGRTMAX } }
4361+sub SCALAR { &_croak; $_sigrtn + 1 }
4362diff --git a/ext/POSIX/lib/POSIX.pod b/ext/POSIX/lib/POSIX.pod
4363new file mode 100644
4364index 0000000..64852e9
4365--- /dev/null
4366+++ b/ext/POSIX/lib/POSIX.pod
4367@@ -0,0 +1,2218 @@
4368+=head1 NAME
4369+
4370+POSIX - Perl interface to IEEE Std 1003.1
4371+
4372+=head1 SYNOPSIS
4373+
4374+ use POSIX;
4375+ use POSIX qw(setsid);
4376+ use POSIX qw(:errno_h :fcntl_h);
4377+
4378+ printf "EINTR is %d\n", EINTR;
4379+
4380+ $sess_id = POSIX::setsid();
4381+
4382+ $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
4383+ # note: that's a filedescriptor, *NOT* a filehandle
4384+
4385+=head1 DESCRIPTION
4386+
4387+The POSIX module permits you to access all (or nearly all) the standard
4388+POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish
4389+interfaces.
4390+
4391+I<Everything is exported by default> with the exception of any POSIX
4392+functions with the same name as a built-in Perl function, such as
4393+C<abs>, C<alarm>, C<rmdir>, C<write>, etc.., which will be exported
4394+only if you ask for them explicitly. This is an unfortunate backwards
4395+compatibility feature. You can stop the exporting by saying C<use
4396+POSIX ()> and then use the fully qualified names (ie. C<POSIX::SEEK_END>).
4397+
4398+This document gives a condensed list of the features available in the POSIX
4399+module. Consult your operating system's manpages for general information on
4400+most features. Consult L<perlfunc> for functions which are noted as being
4401+identical to Perl's builtin functions.
4402+
4403+The first section describes POSIX functions from the 1003.1 specification.
4404+The second section describes some classes for signal objects, TTY objects,
4405+and other miscellaneous objects. The remaining sections list various
4406+constants and macros in an organization which roughly follows IEEE Std
4407+1003.1b-1993.
4408+
4409+=head1 NOTE
4410+
4411+The POSIX module is probably the most complex Perl module supplied with
4412+the standard distribution. It incorporates autoloading, namespace games,
4413+and dynamic loading of code that's in Perl, C, or both. It's a great
4414+source of wisdom.
4415+
4416+=head1 CAVEATS
4417+
4418+A few functions are not implemented because they are C specific. If you
4419+attempt to call these, they will print a message telling you that they
4420+aren't implemented, and suggest using the Perl equivalent should one
4421+exist. For example, trying to access the setjmp() call will elicit the
4422+message "setjmp() is C-specific: use eval {} instead".
4423+
4424+Furthermore, some evil vendors will claim 1003.1 compliance, but in fact
4425+are not so: they will not pass the PCTS (POSIX Compliance Test Suites).
4426+For example, one vendor may not define EDEADLK, or the semantics of the
4427+errno values set by open(2) might not be quite right. Perl does not
4428+attempt to verify POSIX compliance. That means you can currently
4429+successfully say "use POSIX", and then later in your program you find
4430+that your vendor has been lax and there's no usable ICANON macro after
4431+all. This could be construed to be a bug.
4432+
4433+=head1 FUNCTIONS
4434+
4435+=over 8
4436+
4437+=item _exit
4438+
4439+This is identical to the C function C<_exit()>. It exits the program
4440+immediately which means among other things buffered I/O is B<not> flushed.
4441+
4442+Note that when using threads and in Linux this is B<not> a good way to
4443+exit a thread because in Linux processes and threads are kind of the
4444+same thing (Note: while this is the situation in early 2003 there are
4445+projects under way to have threads with more POSIXly semantics in Linux).
4446+If you want not to return from a thread, detach the thread.
4447+
4448+=item abort
4449+
4450+This is identical to the C function C<abort()>. It terminates the
4451+process with a C<SIGABRT> signal unless caught by a signal handler or
4452+if the handler does not return normally (it e.g. does a C<longjmp>).
4453+
4454+=item abs
4455+
4456+This is identical to Perl's builtin C<abs()> function, returning
4457+the absolute value of its numerical argument.
4458+
4459+=item access
4460+
4461+Determines the accessibility of a file.
4462+
4463+ if( POSIX::access( "/", &POSIX::R_OK ) ){
4464+ print "have read permission\n";
4465+ }
4466+
4467+Returns C<undef> on failure. Note: do not use C<access()> for
4468+security purposes. Between the C<access()> call and the operation
4469+you are preparing for the permissions might change: a classic
4470+I<race condition>.
4471+
4472+=item acos
4473+
4474+This is identical to the C function C<acos()>, returning
4475+the arcus cosine of its numerical argument. See also L<Math::Trig>.
4476+
4477+=item alarm
4478+
4479+This is identical to Perl's builtin C<alarm()> function,
4480+either for arming or disarming the C<SIGARLM> timer.
4481+
4482+=item asctime
4483+
4484+This is identical to the C function C<asctime()>. It returns
4485+a string of the form
4486+
4487+ "Fri Jun 2 18:22:13 2000\n\0"
4488+
4489+and it is called thusly
4490+
4491+ $asctime = asctime($sec, $min, $hour, $mday, $mon, $year,
4492+ $wday, $yday, $isdst);
4493+
4494+The C<$mon> is zero-based: January equals C<0>. The C<$year> is
4495+1900-based: 2001 equals C<101>. C<$wday> and C<$yday> default to zero
4496+(and are usually ignored anyway), and C<$isdst> defaults to -1.
4497+
4498+=item asin
4499+
4500+This is identical to the C function C<asin()>, returning
4501+the arcus sine of its numerical argument. See also L<Math::Trig>.
4502+
4503+=item assert
4504+
4505+Unimplemented, but you can use L<perlfunc/die> and the L<Carp> module
4506+to achieve similar things.
4507+
4508+=item atan
4509+
4510+This is identical to the C function C<atan()>, returning the
4511+arcus tangent of its numerical argument. See also L<Math::Trig>.
4512+
4513+=item atan2
4514+
4515+This is identical to Perl's builtin C<atan2()> function, returning
4516+the arcus tangent defined by its two numerical arguments, the I<y>
4517+coordinate and the I<x> coordinate. See also L<Math::Trig>.
4518+
4519+=item atexit
4520+
4521+atexit() is C-specific: use C<END {}> instead, see L<perlsub>.
4522+
4523+=item atof
4524+
4525+atof() is C-specific. Perl converts strings to numbers transparently.
4526+If you need to force a scalar to a number, add a zero to it.
4527+
4528+=item atoi
4529+
4530+atoi() is C-specific. Perl converts strings to numbers transparently.
4531+If you need to force a scalar to a number, add a zero to it.
4532+If you need to have just the integer part, see L<perlfunc/int>.
4533+
4534+=item atol
4535+
4536+atol() is C-specific. Perl converts strings to numbers transparently.
4537+If you need to force a scalar to a number, add a zero to it.
4538+If you need to have just the integer part, see L<perlfunc/int>.
4539+
4540+=item bsearch
4541+
4542+bsearch() not supplied. For doing binary search on wordlists,
4543+see L<Search::Dict>.
4544+
4545+=item calloc
4546+
4547+calloc() is C-specific. Perl does memory management transparently.
4548+
4549+=item ceil
4550+
4551+This is identical to the C function C<ceil()>, returning the smallest
4552+integer value greater than or equal to the given numerical argument.
4553+
4554+=item chdir
4555+
4556+This is identical to Perl's builtin C<chdir()> function, allowing
4557+one to change the working (default) directory, see L<perlfunc/chdir>.
4558+
4559+=item chmod
4560+
4561+This is identical to Perl's builtin C<chmod()> function, allowing
4562+one to change file and directory permissions, see L<perlfunc/chmod>.
4563+
4564+=item chown
4565+
4566+This is identical to Perl's builtin C<chown()> function, allowing one
4567+to change file and directory owners and groups, see L<perlfunc/chown>.
4568+
4569+=item clearerr
4570+
4571+Use the method C<IO::Handle::clearerr()> instead, to reset the error
4572+state (if any) and EOF state (if any) of the given stream.
4573+
4574+=item clock
4575+
4576+This is identical to the C function C<clock()>, returning the
4577+amount of spent processor time in microseconds.
4578+
4579+=item close
4580+
4581+Close the file. This uses file descriptors such as those obtained by calling
4582+C<POSIX::open>.
4583+
4584+ $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
4585+ POSIX::close( $fd );
4586+
4587+Returns C<undef> on failure.
4588+
4589+See also L<perlfunc/close>.
4590+
4591+=item closedir
4592+
4593+This is identical to Perl's builtin C<closedir()> function for closing
4594+a directory handle, see L<perlfunc/closedir>.
4595+
4596+=item cos
4597+
4598+This is identical to Perl's builtin C<cos()> function, for returning
4599+the cosine of its numerical argument, see L<perlfunc/cos>.
4600+See also L<Math::Trig>.
4601+
4602+=item cosh
4603+
4604+This is identical to the C function C<cosh()>, for returning
4605+the hyperbolic cosine of its numeric argument. See also L<Math::Trig>.
4606+
4607+=item creat
4608+
4609+Create a new file. This returns a file descriptor like the ones returned by
4610+C<POSIX::open>. Use C<POSIX::close> to close the file.
4611+
4612+ $fd = POSIX::creat( "foo", 0611 );
4613+ POSIX::close( $fd );
4614+
4615+See also L<perlfunc/sysopen> and its C<O_CREAT> flag.
4616+
4617+=item ctermid
4618+
4619+Generates the path name for the controlling terminal.
4620+
4621+ $path = POSIX::ctermid();
4622+
4623+=item ctime
4624+
4625+This is identical to the C function C<ctime()> and equivalent
4626+to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
4627+
4628+=item cuserid
4629+
4630+Get the login name of the owner of the current process.
4631+
4632+ $name = POSIX::cuserid();
4633+
4634+=item difftime
4635+
4636+This is identical to the C function C<difftime()>, for returning
4637+the time difference (in seconds) between two times (as returned
4638+by C<time()>), see L</time>.
4639+
4640+=item div
4641+
4642+div() is C-specific, use L<perlfunc/int> on the usual C</> division and
4643+the modulus C<%>.
4644+
4645+=item dup
4646+
4647+This is similar to the C function C<dup()>, for duplicating a file
4648+descriptor.
4649+
4650+This uses file descriptors such as those obtained by calling
4651+C<POSIX::open>.
4652+
4653+Returns C<undef> on failure.
4654+
4655+=item dup2
4656+
4657+This is similar to the C function C<dup2()>, for duplicating a file
4658+descriptor to an another known file descriptor.
4659+
4660+This uses file descriptors such as those obtained by calling
4661+C<POSIX::open>.
4662+
4663+Returns C<undef> on failure.
4664+
4665+=item errno
4666+
4667+Returns the value of errno.
4668+
4669+ $errno = POSIX::errno();
4670+
4671+This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
4672+
4673+=item execl
4674+
4675+execl() is C-specific, see L<perlfunc/exec>.
4676+
4677+=item execle
4678+
4679+execle() is C-specific, see L<perlfunc/exec>.
4680+
4681+=item execlp
4682+
4683+execlp() is C-specific, see L<perlfunc/exec>.
4684+
4685+=item execv
4686+
4687+execv() is C-specific, see L<perlfunc/exec>.
4688+
4689+=item execve
4690+
4691+execve() is C-specific, see L<perlfunc/exec>.
4692+
4693+=item execvp
4694+
4695+execvp() is C-specific, see L<perlfunc/exec>.
4696+
4697+=item exit
4698+
4699+This is identical to Perl's builtin C<exit()> function for exiting the
4700+program, see L<perlfunc/exit>.
4701+
4702+=item exp
4703+
4704+This is identical to Perl's builtin C<exp()> function for
4705+returning the exponent (I<e>-based) of the numerical argument,
4706+see L<perlfunc/exp>.
4707+
4708+=item fabs
4709+
4710+This is identical to Perl's builtin C<abs()> function for returning
4711+the absolute value of the numerical argument, see L<perlfunc/abs>.
4712+
4713+=item fclose
4714+
4715+Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
4716+
4717+=item fcntl
4718+
4719+This is identical to Perl's builtin C<fcntl()> function,
4720+see L<perlfunc/fcntl>.
4721+
4722+=item fdopen
4723+
4724+Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
4725+
4726+=item feof
4727+
4728+Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
4729+
4730+=item ferror
4731+
4732+Use method C<IO::Handle::error()> instead.
4733+
4734+=item fflush
4735+
4736+Use method C<IO::Handle::flush()> instead.
4737+See also L<perlvar/$OUTPUT_AUTOFLUSH>.
4738+
4739+=item fgetc
4740+
4741+Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
4742+
4743+=item fgetpos
4744+
4745+Use method C<IO::Seekable::getpos()> instead, or see L<L/seek>.
4746+
4747+=item fgets
4748+
4749+Use method C<IO::Handle::gets()> instead. Similar to E<lt>E<gt>, also known
4750+as L<perlfunc/readline>.
4751+
4752+=item fileno
4753+
4754+Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
4755+
4756+=item floor
4757+
4758+This is identical to the C function C<floor()>, returning the largest
4759+integer value less than or equal to the numerical argument.
4760+
4761+=item fmod
4762+
4763+This is identical to the C function C<fmod()>.
4764+
4765+ $r = fmod($x, $y);
4766+
4767+It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
4768+The C<$r> has the same sign as C<$x> and magnitude (absolute value)
4769+less than the magnitude of C<$y>.
4770+
4771+=item fopen
4772+
4773+Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
4774+
4775+=item fork
4776+
4777+This is identical to Perl's builtin C<fork()> function
4778+for duplicating the current process, see L<perlfunc/fork>
4779+and L<perlfork> if you are in Windows.
4780+
4781+=item fpathconf
4782+
4783+Retrieves the value of a configurable limit on a file or directory. This
4784+uses file descriptors such as those obtained by calling C<POSIX::open>.
4785+
4786+The following will determine the maximum length of the longest allowable
4787+pathname on the filesystem which holds C</var/foo>.
4788+
4789+ $fd = POSIX::open( "/var/foo", &POSIX::O_RDONLY );
4790+ $path_max = POSIX::fpathconf( $fd, &POSIX::_PC_PATH_MAX );
4791+
4792+Returns C<undef> on failure.
4793+
4794+=item fprintf
4795+
4796+fprintf() is C-specific, see L<perlfunc/printf> instead.
4797+
4798+=item fputc
4799+
4800+fputc() is C-specific, see L<perlfunc/print> instead.
4801+
4802+=item fputs
4803+
4804+fputs() is C-specific, see L<perlfunc/print> instead.
4805+
4806+=item fread
4807+
4808+fread() is C-specific, see L<perlfunc/read> instead.
4809+
4810+=item free
4811+
4812+free() is C-specific. Perl does memory management transparently.
4813+
4814+=item freopen
4815+
4816+freopen() is C-specific, see L<perlfunc/open> instead.
4817+
4818+=item frexp
4819+
4820+Return the mantissa and exponent of a floating-point number.
4821+
4822+ ($mantissa, $exponent) = POSIX::frexp( 1.234e56 );
4823+
4824+=item fscanf
4825+
4826+fscanf() is C-specific, use E<lt>E<gt> and regular expressions instead.
4827+
4828+=item fseek
4829+
4830+Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
4831+
4832+=item fsetpos
4833+
4834+Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
4835+
4836+=item fstat
4837+
4838+Get file status. This uses file descriptors such as those obtained by
4839+calling C<POSIX::open>. The data returned is identical to the data from
4840+Perl's builtin C<stat> function.
4841+
4842+ $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
4843+ @stats = POSIX::fstat( $fd );
4844+
4845+=item fsync
4846+
4847+Use method C<IO::Handle::sync()> instead.
4848+
4849+=item ftell
4850+
4851+Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
4852+
4853+=item fwrite
4854+
4855+fwrite() is C-specific, see L<perlfunc/print> instead.
4856+
4857+=item getc
4858+
4859+This is identical to Perl's builtin C<getc()> function,
4860+see L<perlfunc/getc>.
4861+
4862+=item getchar
4863+
4864+Returns one character from STDIN. Identical to Perl's C<getc()>,
4865+see L<perlfunc/getc>.
4866+
4867+=item getcwd
4868+
4869+Returns the name of the current working directory.
4870+See also L<Cwd>.
4871+
4872+=item getegid
4873+
4874+Returns the effective group identifier. Similar to Perl' s builtin
4875+variable C<$(>, see L<perlvar/$EGID>.
4876+
4877+=item getenv
4878+
4879+Returns the value of the specified environment variable.
4880+The same information is available through the C<%ENV> array.
4881+
4882+=item geteuid
4883+
4884+Returns the effective user identifier. Identical to Perl's builtin C<$E<gt>>
4885+variable, see L<perlvar/$EUID>.
4886+
4887+=item getgid
4888+
4889+Returns the user's real group identifier. Similar to Perl's builtin
4890+variable C<$)>, see L<perlvar/$GID>.
4891+
4892+=item getgrgid
4893+
4894+This is identical to Perl's builtin C<getgrgid()> function for
4895+returning group entries by group identifiers, see
4896+L<perlfunc/getgrgid>.
4897+
4898+=item getgrnam
4899+
4900+This is identical to Perl's builtin C<getgrnam()> function for
4901+returning group entries by group names, see L<perlfunc/getgrnam>.
4902+
4903+=item getgroups
4904+
4905+Returns the ids of the user's supplementary groups. Similar to Perl's
4906+builtin variable C<$)>, see L<perlvar/$GID>.
4907+
4908+=item getlogin
4909+
4910+This is identical to Perl's builtin C<getlogin()> function for
4911+returning the user name associated with the current session, see
4912+L<perlfunc/getlogin>.
4913+
4914+=item getpgrp
4915+
4916+This is identical to Perl's builtin C<getpgrp()> function for
4917+returning the process group identifier of the current process, see
4918+L<perlfunc/getpgrp>.
4919+
4920+=item getpid
4921+
4922+Returns the process identifier. Identical to Perl's builtin
4923+variable C<$$>, see L<perlvar/$PID>.
4924+
4925+=item getppid
4926+
4927+This is identical to Perl's builtin C<getppid()> function for
4928+returning the process identifier of the parent process of the current
4929+process , see L<perlfunc/getppid>.
4930+
4931+=item getpwnam
4932+
4933+This is identical to Perl's builtin C<getpwnam()> function for
4934+returning user entries by user names, see L<perlfunc/getpwnam>.
4935+
4936+=item getpwuid
4937+
4938+This is identical to Perl's builtin C<getpwuid()> function for
4939+returning user entries by user identifiers, see L<perlfunc/getpwuid>.
4940+
4941+=item gets
4942+
4943+Returns one line from C<STDIN>, similar to E<lt>E<gt>, also known
4944+as the C<readline()> function, see L<perlfunc/readline>.
4945+
4946+B<NOTE>: if you have C programs that still use C<gets()>, be very
4947+afraid. The C<gets()> function is a source of endless grief because
4948+it has no buffer overrun checks. It should B<never> be used. The
4949+C<fgets()> function should be preferred instead.
4950+
4951+=item getuid
4952+
4953+Returns the user's identifier. Identical to Perl's builtin C<$E<lt>> variable,
4954+see L<perlvar/$UID>.
4955+
4956+=item gmtime
4957+
4958+This is identical to Perl's builtin C<gmtime()> function for
4959+converting seconds since the epoch to a date in Greenwich Mean Time,
4960+see L<perlfunc/gmtime>.
4961+
4962+=item isalnum
4963+
4964+This is identical to the C function, except that it can apply to a
4965+single character or to a whole string. Note that locale settings may
4966+affect what characters are considered C<isalnum>. Does not work on
4967+Unicode characters code point 256 or higher. Consider using regular
4968+expressions and the C</[[:alnum:]]/> construct instead, or possibly
4969+the C</\w/> construct.
4970+
4971+=item isalpha
4972+
4973+This is identical to the C function, except that it can apply to
4974+a single character or to a whole string. Note that locale settings
4975+may affect what characters are considered C<isalpha>. Does not work
4976+on Unicode characters code point 256 or higher. Consider using regular
4977+expressions and the C</[[:alpha:]]/> construct instead.
4978+
4979+=item isatty
4980+
4981+Returns a boolean indicating whether the specified filehandle is connected
4982+to a tty. Similar to the C<-t> operator, see L<perlfunc/-X>.
4983+
4984+=item iscntrl
4985+
4986+This is identical to the C function, except that it can apply to
4987+a single character or to a whole string. Note that locale settings
4988+may affect what characters are considered C<iscntrl>. Does not work
4989+on Unicode characters code point 256 or higher. Consider using regular
4990+expressions and the C</[[:cntrl:]]/> construct instead.
4991+
4992+=item isdigit
4993+
4994+This is identical to the C function, except that it can apply to
4995+a single character or to a whole string. Note that locale settings
4996+may affect what characters are considered C<isdigit> (unlikely, but
4997+still possible). Does not work on Unicode characters code point 256
4998+or higher. Consider using regular expressions and the C</[[:digit:]]/>
4999+construct instead, or the C</\d/> construct.
5000+
5001+=item isgraph
5002+
5003+This is identical to the C function, except that it can apply to
5004+a single character or to a whole string. Note that locale settings
5005+may affect what characters are considered C<isgraph>. Does not work
5006+on Unicode characters code point 256 or higher. Consider using regular
5007+expressions and the C</[[:graph:]]/> construct instead.
5008+
5009+=item islower
5010+
5011+This is identical to the C function, except that it can apply to
5012+a single character or to a whole string. Note that locale settings
5013+may affect what characters are considered C<islower>. Does not work
5014+on Unicode characters code point 256 or higher. Consider using regular
5015+expressions and the C</[[:lower:]]/> construct instead. Do B<not> use
5016+C</[a-z]/>.
5017+
5018+=item isprint
5019+
5020+This is identical to the C function, except that it can apply to
5021+a single character or to a whole string. Note that locale settings
5022+may affect what characters are considered C<isprint>. Does not work
5023+on Unicode characters code point 256 or higher. Consider using regular
5024+expressions and the C</[[:print:]]/> construct instead.
5025+
5026+=item ispunct
5027+
5028+This is identical to the C function, except that it can apply to
5029+a single character or to a whole string. Note that locale settings
5030+may affect what characters are considered C<ispunct>. Does not work
5031+on Unicode characters code point 256 or higher. Consider using regular
5032+expressions and the C</[[:punct:]]/> construct instead.
5033+
5034+=item isspace
5035+
5036+This is identical to the C function, except that it can apply to
5037+a single character or to a whole string. Note that locale settings
5038+may affect what characters are considered C<isspace>. Does not work
5039+on Unicode characters code point 256 or higher. Consider using regular
5040+expressions and the C</[[:space:]]/> construct instead, or the C</\s/>
5041+construct. (Note that C</\s/> and C</[[:space:]]/> are slightly
5042+different in that C</[[:space:]]/> can normally match a vertical tab,
5043+while C</\s/> does not.)
5044+
5045+=item isupper
5046+
5047+This is identical to the C function, except that it can apply to
5048+a single character or to a whole string. Note that locale settings
5049+may affect what characters are considered C<isupper>. Does not work
5050+on Unicode characters code point 256 or higher. Consider using regular
5051+expressions and the C</[[:upper:]]/> construct instead. Do B<not> use
5052+C</[A-Z]/>.
5053+
5054+=item isxdigit
5055+
5056+This is identical to the C function, except that it can apply to a single
5057+character or to a whole string. Note that locale settings may affect what
5058+characters are considered C<isxdigit> (unlikely, but still possible).
5059+Does not work on Unicode characters code point 256 or higher.
5060+Consider using regular expressions and the C</[[:xdigit:]]/>
5061+construct instead, or simply C</[0-9a-f]/i>.
5062+
5063+=item kill
5064+
5065+This is identical to Perl's builtin C<kill()> function for sending
5066+signals to processes (often to terminate them), see L<perlfunc/kill>.
5067+
5068+=item labs
5069+
5070+(For returning absolute values of long integers.)
5071+labs() is C-specific, see L<perlfunc/abs> instead.
5072+
5073+=item lchown
5074+
5075+This is identical to the C function, except the order of arguments is
5076+consistent with Perl's builtin C<chown()> with the added restriction
5077+of only one path, not an list of paths. Does the same thing as the
5078+C<chown()> function but changes the owner of a symbolic link instead
5079+of the file the symbolic link points to.
5080+
5081+=item ldexp
5082+
5083+This is identical to the C function C<ldexp()>
5084+for multiplying floating point numbers with powers of two.
5085+
5086+ $x_quadrupled = POSIX::ldexp($x, 2);
5087+
5088+=item ldiv
5089+
5090+(For computing dividends of long integers.)
5091+ldiv() is C-specific, use C</> and C<int()> instead.
5092+
5093+=item link
5094+
5095+This is identical to Perl's builtin C<link()> function
5096+for creating hard links into files, see L<perlfunc/link>.
5097+
5098+=item localeconv
5099+
5100+Get numeric formatting information. Returns a reference to a hash
5101+containing the current locale formatting values.
5102+
5103+Here is how to query the database for the B<de> (Deutsch or German) locale.
5104+
5105+ $loc = POSIX::setlocale( &POSIX::LC_ALL, "de" );
5106+ print "Locale = $loc\n";
5107+ $lconv = POSIX::localeconv();
5108+ print "decimal_point = ", $lconv->{decimal_point}, "\n";
5109+ print "thousands_sep = ", $lconv->{thousands_sep}, "\n";
5110+ print "grouping = ", $lconv->{grouping}, "\n";
5111+ print "int_curr_symbol = ", $lconv->{int_curr_symbol}, "\n";
5112+ print "currency_symbol = ", $lconv->{currency_symbol}, "\n";
5113+ print "mon_decimal_point = ", $lconv->{mon_decimal_point}, "\n";
5114+ print "mon_thousands_sep = ", $lconv->{mon_thousands_sep}, "\n";
5115+ print "mon_grouping = ", $lconv->{mon_grouping}, "\n";
5116+ print "positive_sign = ", $lconv->{positive_sign}, "\n";
5117+ print "negative_sign = ", $lconv->{negative_sign}, "\n";
5118+ print "int_frac_digits = ", $lconv->{int_frac_digits}, "\n";
5119+ print "frac_digits = ", $lconv->{frac_digits}, "\n";
5120+ print "p_cs_precedes = ", $lconv->{p_cs_precedes}, "\n";
5121+ print "p_sep_by_space = ", $lconv->{p_sep_by_space}, "\n";
5122+ print "n_cs_precedes = ", $lconv->{n_cs_precedes}, "\n";
5123+ print "n_sep_by_space = ", $lconv->{n_sep_by_space}, "\n";
5124+ print "p_sign_posn = ", $lconv->{p_sign_posn}, "\n";
5125+ print "n_sign_posn = ", $lconv->{n_sign_posn}, "\n";
5126+
5127+=item localtime
5128+
5129+This is identical to Perl's builtin C<localtime()> function for
5130+converting seconds since the epoch to a date see L<perlfunc/localtime>.
5131+
5132+=item log
5133+
5134+This is identical to Perl's builtin C<log()> function,
5135+returning the natural (I<e>-based) logarithm of the numerical argument,
5136+see L<perlfunc/log>.
5137+
5138+=item log10
5139+
5140+This is identical to the C function C<log10()>,
5141+returning the 10-base logarithm of the numerical argument.
5142+You can also use
5143+
5144+ sub log10 { log($_[0]) / log(10) }
5145+
5146+or
5147+
5148+ sub log10 { log($_[0]) / 2.30258509299405 }
5149+
5150+or
5151+
5152+ sub log10 { log($_[0]) * 0.434294481903252 }
5153+
5154+=item longjmp
5155+
5156+longjmp() is C-specific: use L<perlfunc/die> instead.
5157+
5158+=item lseek
5159+
5160+Move the file's read/write position. This uses file descriptors such as
5161+those obtained by calling C<POSIX::open>.
5162+
5163+ $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
5164+ $off_t = POSIX::lseek( $fd, 0, &POSIX::SEEK_SET );
5165+
5166+Returns C<undef> on failure.
5167+
5168+=item malloc
5169+
5170+malloc() is C-specific. Perl does memory management transparently.
5171+
5172+=item mblen
5173+
5174+This is identical to the C function C<mblen()>.
5175+Perl does not have any support for the wide and multibyte
5176+characters of the C standards, so this might be a rather
5177+useless function.
5178+
5179+=item mbstowcs
5180+
5181+This is identical to the C function C<mbstowcs()>.
5182+Perl does not have any support for the wide and multibyte
5183+characters of the C standards, so this might be a rather
5184+useless function.
5185+
5186+=item mbtowc
5187+
5188+This is identical to the C function C<mbtowc()>.
5189+Perl does not have any support for the wide and multibyte
5190+characters of the C standards, so this might be a rather
5191+useless function.
5192+
5193+=item memchr
5194+
5195+memchr() is C-specific, see L<perlfunc/index> instead.
5196+
5197+=item memcmp
5198+
5199+memcmp() is C-specific, use C<eq> instead, see L<perlop>.
5200+
5201+=item memcpy
5202+
5203+memcpy() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
5204+
5205+=item memmove
5206+
5207+memmove() is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
5208+
5209+=item memset
5210+
5211+memset() is C-specific, use C<x> instead, see L<perlop>.
5212+
5213+=item mkdir
5214+
5215+This is identical to Perl's builtin C<mkdir()> function
5216+for creating directories, see L<perlfunc/mkdir>.
5217+
5218+=item mkfifo
5219+
5220+This is similar to the C function C<mkfifo()> for creating
5221+FIFO special files.
5222+
5223+ if (mkfifo($path, $mode)) { ....
5224+
5225+Returns C<undef> on failure. The C<$mode> is similar to the
5226+mode of C<mkdir()>, see L<perlfunc/mkdir>, though for C<mkfifo>
5227+you B<must> specify the C<$mode>.
5228+
5229+=item mktime
5230+
5231+Convert date/time info to a calendar time.
5232+
5233+Synopsis:
5234+
5235+ mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = -1)
5236+
5237+The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
5238+I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
5239+year (C<year>) is given in years since 1900. I.e. The year 1995 is 95; the
5240+year 2001 is 101. Consult your system's C<mktime()> manpage for details
5241+about these and the other arguments.
5242+
5243+Calendar time for December 12, 1995, at 10:30 am.
5244+
5245+ $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 );
5246+ print "Date = ", POSIX::ctime($time_t);
5247+
5248+Returns C<undef> on failure.
5249+
5250+=item modf
5251+
5252+Return the integral and fractional parts of a floating-point number.
5253+
5254+ ($fractional, $integral) = POSIX::modf( 3.14 );
5255+
5256+=item nice
5257+
5258+This is similar to the C function C<nice()>, for changing
5259+the scheduling preference of the current process. Positive
5260+arguments mean more polite process, negative values more
5261+needy process. Normal user processes can only be more polite.
5262+
5263+Returns C<undef> on failure.
5264+
5265+=item offsetof
5266+
5267+offsetof() is C-specific, you probably want to see L<perlfunc/pack> instead.
5268+
5269+=item open
5270+
5271+Open a file for reading for writing. This returns file descriptors, not
5272+Perl filehandles. Use C<POSIX::close> to close the file.
5273+
5274+Open a file read-only with mode 0666.
5275+
5276+ $fd = POSIX::open( "foo" );
5277+
5278+Open a file for read and write.
5279+
5280+ $fd = POSIX::open( "foo", &POSIX::O_RDWR );
5281+
5282+Open a file for write, with truncation.
5283+
5284+ $fd = POSIX::open( "foo", &POSIX::O_WRONLY | &POSIX::O_TRUNC );
5285+
5286+Create a new file with mode 0640. Set up the file for writing.
5287+
5288+ $fd = POSIX::open( "foo", &POSIX::O_CREAT | &POSIX::O_WRONLY, 0640 );
5289+
5290+Returns C<undef> on failure.
5291+
5292+See also L<perlfunc/sysopen>.
5293+
5294+=item opendir
5295+
5296+Open a directory for reading.
5297+
5298+ $dir = POSIX::opendir( "/var" );
5299+ @files = POSIX::readdir( $dir );
5300+ POSIX::closedir( $dir );
5301+
5302+Returns C<undef> on failure.
5303+
5304+=item pathconf
5305+
5306+Retrieves the value of a configurable limit on a file or directory.
5307+
5308+The following will determine the maximum length of the longest allowable
5309+pathname on the filesystem which holds C</var>.
5310+
5311+ $path_max = POSIX::pathconf( "/var", &POSIX::_PC_PATH_MAX );
5312+
5313+Returns C<undef> on failure.
5314+
5315+=item pause
5316+
5317+This is similar to the C function C<pause()>, which suspends
5318+the execution of the current process until a signal is received.
5319+
5320+Returns C<undef> on failure.
5321+
5322+=item perror
5323+
5324+This is identical to the C function C<perror()>, which outputs to the
5325+standard error stream the specified message followed by ": " and the
5326+current error string. Use the C<warn()> function and the C<$!>
5327+variable instead, see L<perlfunc/warn> and L<perlvar/$ERRNO>.
5328+
5329+=item pipe
5330+
5331+Create an interprocess channel. This returns file descriptors like those
5332+returned by C<POSIX::open>.
5333+
5334+ my ($read, $write) = POSIX::pipe();
5335+ POSIX::write( $write, "hello", 5 );
5336+ POSIX::read( $read, $buf, 5 );
5337+
5338+See also L<perlfunc/pipe>.
5339+
5340+=item pow
5341+
5342+Computes C<$x> raised to the power C<$exponent>.
5343+
5344+ $ret = POSIX::pow( $x, $exponent );
5345+
5346+You can also use the C<**> operator, see L<perlop>.
5347+
5348+=item printf
5349+
5350+Formats and prints the specified arguments to STDOUT.
5351+See also L<perlfunc/printf>.
5352+
5353+=item putc
5354+
5355+putc() is C-specific, see L<perlfunc/print> instead.
5356+
5357+=item putchar
5358+
5359+putchar() is C-specific, see L<perlfunc/print> instead.
5360+
5361+=item puts
5362+
5363+puts() is C-specific, see L<perlfunc/print> instead.
5364+
5365+=item qsort
5366+
5367+qsort() is C-specific, see L<perlfunc/sort> instead.
5368+
5369+=item raise
5370+
5371+Sends the specified signal to the current process.
5372+See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
5373+
5374+=item rand
5375+
5376+C<rand()> is non-portable, see L<perlfunc/rand> instead.
5377+
5378+=item read
5379+
5380+Read from a file. This uses file descriptors such as those obtained by
5381+calling C<POSIX::open>. If the buffer C<$buf> is not large enough for the
5382+read then Perl will extend it to make room for the request.
5383+
5384+ $fd = POSIX::open( "foo", &POSIX::O_RDONLY );
5385+ $bytes = POSIX::read( $fd, $buf, 3 );
5386+
5387+Returns C<undef> on failure.
5388+
5389+See also L<perlfunc/sysread>.
5390+
5391+=item readdir
5392+
5393+This is identical to Perl's builtin C<readdir()> function
5394+for reading directory entries, see L<perlfunc/readdir>.
5395+
5396+=item realloc
5397+
5398+realloc() is C-specific. Perl does memory management transparently.
5399+
5400+=item remove
5401+
5402+This is identical to Perl's builtin C<unlink()> function
5403+for removing files, see L<perlfunc/unlink>.
5404+
5405+=item rename
5406+
5407+This is identical to Perl's builtin C<rename()> function
5408+for renaming files, see L<perlfunc/rename>.
5409+
5410+=item rewind
5411+
5412+Seeks to the beginning of the file.
5413+
5414+=item rewinddir
5415+
5416+This is identical to Perl's builtin C<rewinddir()> function for
5417+rewinding directory entry streams, see L<perlfunc/rewinddir>.
5418+
5419+=item rmdir
5420+
5421+This is identical to Perl's builtin C<rmdir()> function
5422+for removing (empty) directories, see L<perlfunc/rmdir>.
5423+
5424+=item scanf
5425+
5426+scanf() is C-specific, use E<lt>E<gt> and regular expressions instead,
5427+see L<perlre>.
5428+
5429+=item setgid
5430+
5431+Sets the real group identifier and the effective group identifier for
5432+this process. Similar to assigning a value to the Perl's builtin
5433+C<$)> variable, see L<perlvar/$EGID>, except that the latter
5434+will change only the real user identifier, and that the setgid()
5435+uses only a single numeric argument, as opposed to a space-separated
5436+list of numbers.
5437+
5438+=item setjmp
5439+
5440+C<setjmp()> is C-specific: use C<eval {}> instead,
5441+see L<perlfunc/eval>.
5442+
5443+=item setlocale
5444+
5445+Modifies and queries program's locale. The following examples assume
5446+
5447+ use POSIX qw(setlocale LC_ALL LC_CTYPE);
5448+
5449+has been issued.
5450+
5451+The following will set the traditional UNIX system locale behavior
5452+(the second argument C<"C">).
5453+
5454+ $loc = setlocale( LC_ALL, "C" );
5455+
5456+The following will query the current LC_CTYPE category. (No second
5457+argument means 'query'.)
5458+
5459+ $loc = setlocale( LC_CTYPE );
5460+
5461+The following will set the LC_CTYPE behaviour according to the locale
5462+environment variables (the second argument C<"">).
5463+Please see your systems C<setlocale(3)> documentation for the locale
5464+environment variables' meaning or consult L<perllocale>.
5465+
5466+ $loc = setlocale( LC_CTYPE, "" );
5467+
5468+The following will set the LC_COLLATE behaviour to Argentinian
5469+Spanish. B<NOTE>: The naming and availability of locales depends on
5470+your operating system. Please consult L<perllocale> for how to find
5471+out which locales are available in your system.
5472+
5473+ $loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" );
5474+
5475+=item setpgid
5476+
5477+This is similar to the C function C<setpgid()> for
5478+setting the process group identifier of the current process.
5479+
5480+Returns C<undef> on failure.
5481+
5482+=item setsid
5483+
5484+This is identical to the C function C<setsid()> for
5485+setting the session identifier of the current process.
5486+
5487+=item setuid
5488+
5489+Sets the real user identifier and the effective user identifier for
5490+this process. Similar to assigning a value to the Perl's builtin
5491+C<$E<lt>> variable, see L<perlvar/$UID>, except that the latter
5492+will change only the real user identifier.
5493+
5494+=item sigaction
5495+
5496+Detailed signal management. This uses C<POSIX::SigAction> objects for
5497+the C<action> and C<oldaction> arguments (the oldaction can also be
5498+just a hash reference). Consult your system's C<sigaction> manpage
5499+for details, see also C<POSIX::SigRt>.
5500+
5501+Synopsis:
5502+
5503+ sigaction(signal, action, oldaction = 0)
5504+
5505+Returns C<undef> on failure. The C<signal> must be a number (like
5506+SIGHUP), not a string (like "SIGHUP"), though Perl does try hard
5507+to understand you.
5508+
5509+If you use the SA_SIGINFO flag, the signal handler will in addition to
5510+the first argument, the signal name, also receive a second argument, a
5511+hash reference, inside which are the following keys with the following
5512+semantics, as defined by POSIX/SUSv3:
5513+
5514+ signo the signal number
5515+ errno the error number
5516+ code if this is zero or less, the signal was sent by
5517+ a user process and the uid and pid make sense,
5518+ otherwise the signal was sent by the kernel
5519+
5520+The following are also defined by POSIX/SUSv3, but unfortunately
5521+not very widely implemented:
5522+
5523+ pid the process id generating the signal
5524+ uid the uid of the process id generating the signal
5525+ status exit value or signal for SIGCHLD
5526+ band band event for SIGPOLL
5527+
5528+A third argument is also passed to the handler, which contains a copy
5529+of the raw binary contents of the siginfo structure: if a system has
5530+some non-POSIX fields, this third argument is where to unpack() them
5531+from.
5532+
5533+Note that not all siginfo values make sense simultaneously (some are
5534+valid only for certain signals, for example), and not all values make
5535+sense from Perl perspective, you should to consult your system's
5536+C<sigaction> and possibly also C<siginfo> documentation.
5537+
5538+=item siglongjmp
5539+
5540+siglongjmp() is C-specific: use L<perlfunc/die> instead.
5541+
5542+=item sigpending
5543+
5544+Examine signals that are blocked and pending. This uses C<POSIX::SigSet>
5545+objects for the C<sigset> argument. Consult your system's C<sigpending>
5546+manpage for details.
5547+
5548+Synopsis:
5549+
5550+ sigpending(sigset)
5551+
5552+Returns C<undef> on failure.
5553+
5554+=item sigprocmask
5555+
5556+Change and/or examine calling process's signal mask. This uses
5557+C<POSIX::SigSet> objects for the C<sigset> and C<oldsigset> arguments.
5558+Consult your system's C<sigprocmask> manpage for details.
5559+
5560+Synopsis:
5561+
5562+ sigprocmask(how, sigset, oldsigset = 0)
5563+
5564+Returns C<undef> on failure.
5565+
5566+=item sigsetjmp
5567+
5568+C<sigsetjmp()> is C-specific: use C<eval {}> instead,
5569+see L<perlfunc/eval>.
5570+
5571+=item sigsuspend
5572+
5573+Install a signal mask and suspend process until signal arrives. This uses
5574+C<POSIX::SigSet> objects for the C<signal_mask> argument. Consult your
5575+system's C<sigsuspend> manpage for details.
5576+
5577+Synopsis:
5578+
5579+ sigsuspend(signal_mask)
5580+
5581+Returns C<undef> on failure.
5582+
5583+=item sin
5584+
5585+This is identical to Perl's builtin C<sin()> function
5586+for returning the sine of the numerical argument,
5587+see L<perlfunc/sin>. See also L<Math::Trig>.
5588+
5589+=item sinh
5590+
5591+This is identical to the C function C<sinh()>
5592+for returning the hyperbolic sine of the numerical argument.
5593+See also L<Math::Trig>.
5594+
5595+=item sleep
5596+
5597+This is functionally identical to Perl's builtin C<sleep()> function
5598+for suspending the execution of the current for process for certain
5599+number of seconds, see L<perlfunc/sleep>. There is one significant
5600+difference, however: C<POSIX::sleep()> returns the number of
5601+B<unslept> seconds, while the C<CORE::sleep()> returns the
5602+number of slept seconds.
5603+
5604+=item sprintf
5605+
5606+This is similar to Perl's builtin C<sprintf()> function
5607+for returning a string that has the arguments formatted as requested,
5608+see L<perlfunc/sprintf>.
5609+
5610+=item sqrt
5611+
5612+This is identical to Perl's builtin C<sqrt()> function.
5613+for returning the square root of the numerical argument,
5614+see L<perlfunc/sqrt>.
5615+
5616+=item srand
5617+
5618+Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
5619+
5620+=item sscanf
5621+
5622+sscanf() is C-specific, use regular expressions instead,
5623+see L<perlre>.
5624+
5625+=item stat
5626+
5627+This is identical to Perl's builtin C<stat()> function
5628+for returning information about files and directories.
5629+
5630+=item strcat
5631+
5632+strcat() is C-specific, use C<.=> instead, see L<perlop>.
5633+
5634+=item strchr
5635+
5636+strchr() is C-specific, see L<perlfunc/index> instead.
5637+
5638+=item strcmp
5639+
5640+strcmp() is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
5641+
5642+=item strcoll
5643+
5644+This is identical to the C function C<strcoll()>
5645+for collating (comparing) strings transformed using
5646+the C<strxfrm()> function. Not really needed since
5647+Perl can do this transparently, see L<perllocale>.
5648+
5649+=item strcpy
5650+
5651+strcpy() is C-specific, use C<=> instead, see L<perlop>.
5652+
5653+=item strcspn
5654+
5655+strcspn() is C-specific, use regular expressions instead,
5656+see L<perlre>.
5657+
5658+=item strerror
5659+
5660+Returns the error string for the specified errno.
5661+Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
5662+
5663+=item strftime
5664+
5665+Convert date and time information to string. Returns the string.
5666+
5667+Synopsis:
5668+
5669+ strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
5670+
5671+The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
5672+I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1. The
5673+year (C<year>) is given in years since 1900. I.e., the year 1995 is 95; the
5674+year 2001 is 101. Consult your system's C<strftime()> manpage for details
5675+about these and the other arguments.
5676+
5677+If you want your code to be portable, your format (C<fmt>) argument
5678+should use only the conversion specifiers defined by the ANSI C
5679+standard (C89, to play safe). These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
5680+But even then, the B<results> of some of the conversion specifiers are
5681+non-portable. For example, the specifiers C<aAbBcpZ> change according
5682+to the locale settings of the user, and both how to set locales (the
5683+locale names) and what output to expect are non-standard.
5684+The specifier C<c> changes according to the timezone settings of the
5685+user and the timezone computation rules of the operating system.
5686+The C<Z> specifier is notoriously unportable since the names of
5687+timezones are non-standard. Sticking to the numeric specifiers is the
5688+safest route.
5689+
5690+The given arguments are made consistent as though by calling
5691+C<mktime()> before calling your system's C<strftime()> function,
5692+except that the C<isdst> value is not affected.
5693+
5694+The string for Tuesday, December 12, 1995.
5695+
5696+ $str = POSIX::strftime( "%A, %B %d, %Y", 0, 0, 0, 12, 11, 95, 2 );
5697+ print "$str\n";
5698+
5699+=item strlen
5700+
5701+strlen() is C-specific, use C<length()> instead, see L<perlfunc/length>.
5702+
5703+=item strncat
5704+
5705+strncat() is C-specific, use C<.=> instead, see L<perlop>.
5706+
5707+=item strncmp
5708+
5709+strncmp() is C-specific, use C<eq> instead, see L<perlop>.
5710+
5711+=item strncpy
5712+
5713+strncpy() is C-specific, use C<=> instead, see L<perlop>.
5714+
5715+=item strpbrk
5716+
5717+strpbrk() is C-specific, use regular expressions instead,
5718+see L<perlre>.
5719+
5720+=item strrchr
5721+
5722+strrchr() is C-specific, see L<perlfunc/rindex> instead.
5723+
5724+=item strspn
5725+
5726+strspn() is C-specific, use regular expressions instead,
5727+see L<perlre>.
5728+
5729+=item strstr
5730+
5731+This is identical to Perl's builtin C<index()> function,
5732+see L<perlfunc/index>.
5733+
5734+=item strtod
5735+
5736+String to double translation. Returns the parsed number and the number
5737+of characters in the unparsed portion of the string. Truly
5738+POSIX-compliant systems set $! ($ERRNO) to indicate a translation
5739+error, so clear $! before calling strtod. However, non-POSIX systems
5740+may not check for overflow, and therefore will never set $!.
5741+
5742+strtod should respect any POSIX I<setlocale()> settings.
5743+
5744+To parse a string $str as a floating point number use
5745+
5746+ $! = 0;
5747+ ($num, $n_unparsed) = POSIX::strtod($str);
5748+
5749+The second returned item and $! can be used to check for valid input:
5750+
5751+ if (($str eq '') || ($n_unparsed != 0) || $!) {
5752+ die "Non-numeric input $str" . ($! ? ": $!\n" : "\n");
5753+ }
5754+
5755+When called in a scalar context strtod returns the parsed number.
5756+
5757+=item strtok
5758+
5759+strtok() is C-specific, use regular expressions instead, see
5760+L<perlre>, or L<perlfunc/split>.
5761+
5762+=item strtol
5763+
5764+String to (long) integer translation. Returns the parsed number and
5765+the number of characters in the unparsed portion of the string. Truly
5766+POSIX-compliant systems set $! ($ERRNO) to indicate a translation
5767+error, so clear $! before calling strtol. However, non-POSIX systems
5768+may not check for overflow, and therefore will never set $!.
5769+
5770+strtol should respect any POSIX I<setlocale()> settings.
5771+
5772+To parse a string $str as a number in some base $base use
5773+
5774+ $! = 0;
5775+ ($num, $n_unparsed) = POSIX::strtol($str, $base);
5776+
5777+The base should be zero or between 2 and 36, inclusive. When the base
5778+is zero or omitted strtol will use the string itself to determine the
5779+base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
5780+octal; any other leading characters mean decimal. Thus, "1234" is
5781+parsed as a decimal number, "01234" as an octal number, and "0x1234"
5782+as a hexadecimal number.
5783+
5784+The second returned item and $! can be used to check for valid input:
5785+
5786+ if (($str eq '') || ($n_unparsed != 0) || !$!) {
5787+ die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
5788+ }
5789+
5790+When called in a scalar context strtol returns the parsed number.
5791+
5792+=item strtoul
5793+
5794+String to unsigned (long) integer translation. strtoul() is identical
5795+to strtol() except that strtoul() only parses unsigned integers. See
5796+L</strtol> for details.
5797+
5798+Note: Some vendors supply strtod() and strtol() but not strtoul().
5799+Other vendors that do supply strtoul() parse "-1" as a valid value.
5800+
5801+=item strxfrm
5802+
5803+String transformation. Returns the transformed string.
5804+
5805+ $dst = POSIX::strxfrm( $src );
5806+
5807+Used in conjunction with the C<strcoll()> function, see L</strcoll>.
5808+
5809+Not really needed since Perl can do this transparently, see
5810+L<perllocale>.
5811+
5812+=item sysconf
5813+
5814+Retrieves values of system configurable variables.
5815+
5816+The following will get the machine's clock speed.
5817+
5818+ $clock_ticks = POSIX::sysconf( &POSIX::_SC_CLK_TCK );
5819+
5820+Returns C<undef> on failure.
5821+
5822+=item system
5823+
5824+This is identical to Perl's builtin C<system()> function, see
5825+L<perlfunc/system>.
5826+
5827+=item tan
5828+
5829+This is identical to the C function C<tan()>, returning the
5830+tangent of the numerical argument. See also L<Math::Trig>.
5831+
5832+=item tanh
5833+
5834+This is identical to the C function C<tanh()>, returning the
5835+hyperbolic tangent of the numerical argument. See also L<Math::Trig>.
5836+
5837+=item tcdrain
5838+
5839+This is similar to the C function C<tcdrain()> for draining
5840+the output queue of its argument stream.
5841+
5842+Returns C<undef> on failure.
5843+
5844+=item tcflow
5845+
5846+This is similar to the C function C<tcflow()> for controlling
5847+the flow of its argument stream.
5848+
5849+Returns C<undef> on failure.
5850+
5851+=item tcflush
5852+
5853+This is similar to the C function C<tcflush()> for flushing
5854+the I/O buffers of its argument stream.
5855+
5856+Returns C<undef> on failure.
5857+
5858+=item tcgetpgrp
5859+
5860+This is identical to the C function C<tcgetpgrp()> for returning the
5861+process group identifier of the foreground process group of the controlling
5862+terminal.
5863+
5864+=item tcsendbreak
5865+
5866+This is similar to the C function C<tcsendbreak()> for sending
5867+a break on its argument stream.
5868+
5869+Returns C<undef> on failure.
5870+
5871+=item tcsetpgrp
5872+
5873+This is similar to the C function C<tcsetpgrp()> for setting the
5874+process group identifier of the foreground process group of the controlling
5875+terminal.
5876+
5877+Returns C<undef> on failure.
5878+
5879+=item time
5880+
5881+This is identical to Perl's builtin C<time()> function
5882+for returning the number of seconds since the epoch
5883+(whatever it is for the system), see L<perlfunc/time>.
5884+
5885+=item times
5886+
5887+The times() function returns elapsed realtime since some point in the past
5888+(such as system startup), user and system times for this process, and user
5889+and system times used by child processes. All times are returned in clock
5890+ticks.
5891+
5892+ ($realtime, $user, $system, $cuser, $csystem) = POSIX::times();
5893+
5894+Note: Perl's builtin C<times()> function returns four values, measured in
5895+seconds.
5896+
5897+=item tmpfile
5898+
5899+Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
5900+
5901+=item tmpnam
5902+
5903+Returns a name for a temporary file.
5904+
5905+ $tmpfile = POSIX::tmpnam();
5906+
5907+For security reasons, which are probably detailed in your system's
5908+documentation for the C library tmpnam() function, this interface
5909+should not be used; instead see L<File::Temp>.
5910+
5911+=item tolower
5912+
5913+This is identical to the C function, except that it can apply to a single
5914+character or to a whole string. Consider using the C<lc()> function,
5915+see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
5916+strings.
5917+
5918+=item toupper
5919+
5920+This is identical to the C function, except that it can apply to a single
5921+character or to a whole string. Consider using the C<uc()> function,
5922+see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
5923+strings.
5924+
5925+=item ttyname
5926+
5927+This is identical to the C function C<ttyname()> for returning the
5928+name of the current terminal.
5929+
5930+=item tzname
5931+
5932+Retrieves the time conversion information from the C<tzname> variable.
5933+
5934+ POSIX::tzset();
5935+ ($std, $dst) = POSIX::tzname();
5936+
5937+=item tzset
5938+
5939+This is identical to the C function C<tzset()> for setting
5940+the current timezone based on the environment variable C<TZ>,
5941+to be used by C<ctime()>, C<localtime()>, C<mktime()>, and C<strftime()>
5942+functions.
5943+
5944+=item umask
5945+
5946+This is identical to Perl's builtin C<umask()> function
5947+for setting (and querying) the file creation permission mask,
5948+see L<perlfunc/umask>.
5949+
5950+=item uname
5951+
5952+Get name of current operating system.
5953+
5954+ ($sysname, $nodename, $release, $version, $machine) = POSIX::uname();
5955+
5956+Note that the actual meanings of the various fields are not
5957+that well standardized, do not expect any great portability.
5958+The C<$sysname> might be the name of the operating system,
5959+the C<$nodename> might be the name of the host, the C<$release>
5960+might be the (major) release number of the operating system,
5961+the C<$version> might be the (minor) release number of the
5962+operating system, and the C<$machine> might be a hardware identifier.
5963+Maybe.
5964+
5965+=item ungetc
5966+
5967+Use method C<IO::Handle::ungetc()> instead.
5968+
5969+=item unlink
5970+
5971+This is identical to Perl's builtin C<unlink()> function
5972+for removing files, see L<perlfunc/unlink>.
5973+
5974+=item utime
5975+
5976+This is identical to Perl's builtin C<utime()> function
5977+for changing the time stamps of files and directories,
5978+see L<perlfunc/utime>.
5979+
5980+=item vfprintf
5981+
5982+vfprintf() is C-specific, see L<perlfunc/printf> instead.
5983+
5984+=item vprintf
5985+
5986+vprintf() is C-specific, see L<perlfunc/printf> instead.
5987+
5988+=item vsprintf
5989+
5990+vsprintf() is C-specific, see L<perlfunc/sprintf> instead.
5991+
5992+=item wait
5993+
5994+This is identical to Perl's builtin C<wait()> function,
5995+see L<perlfunc/wait>.
5996+
5997+=item waitpid
5998+
5999+Wait for a child process to change state. This is identical to Perl's
6000+builtin C<waitpid()> function, see L<perlfunc/waitpid>.
6001+
6002+ $pid = POSIX::waitpid( -1, POSIX::WNOHANG );
6003+ print "status = ", ($? / 256), "\n";
6004+
6005+=item wcstombs
6006+
6007+This is identical to the C function C<wcstombs()>.
6008+Perl does not have any support for the wide and multibyte
6009+characters of the C standards, so this might be a rather
6010+useless function.
6011+
6012+=item wctomb
6013+
6014+This is identical to the C function C<wctomb()>.
6015+Perl does not have any support for the wide and multibyte
6016+characters of the C standards, so this might be a rather
6017+useless function.
6018+
6019+=item write
6020+
6021+Write to a file. This uses file descriptors such as those obtained by
6022+calling C<POSIX::open>.
6023+
6024+ $fd = POSIX::open( "foo", &POSIX::O_WRONLY );
6025+ $buf = "hello";
6026+ $bytes = POSIX::write( $fd, $buf, 5 );
6027+
6028+Returns C<undef> on failure.
6029+
6030+See also L<perlfunc/syswrite>.
6031+
6032+=back
6033+
6034+=head1 CLASSES
6035+
6036+=head2 POSIX::SigAction
6037+
6038+=over 8
6039+
6040+=item new
6041+
6042+Creates a new C<POSIX::SigAction> object which corresponds to the C
6043+C<struct sigaction>. This object will be destroyed automatically when
6044+it is no longer needed. The first parameter is the handler, a sub
6045+reference. The second parameter is a C<POSIX::SigSet> object, it
6046+defaults to the empty set. The third parameter contains the
6047+C<sa_flags>, it defaults to 0.
6048+
6049+ $sigset = POSIX::SigSet->new(SIGINT, SIGQUIT);
6050+ $sigaction = POSIX::SigAction->new( \&handler, $sigset, &POSIX::SA_NOCLDSTOP );
6051+
6052+This C<POSIX::SigAction> object is intended for use with the C<POSIX::sigaction()>
6053+function.
6054+
6055+=back
6056+
6057+=over 8
6058+
6059+=item handler
6060+
6061+=item mask
6062+
6063+=item flags
6064+
6065+accessor functions to get/set the values of a SigAction object.
6066+
6067+ $sigset = $sigaction->mask;
6068+ $sigaction->flags(&POSIX::SA_RESTART);
6069+
6070+=item safe
6071+
6072+accessor function for the "safe signals" flag of a SigAction object; see
6073+L<perlipc> for general information on safe (a.k.a. "deferred") signals. If
6074+you wish to handle a signal safely, use this accessor to set the "safe" flag
6075+in the C<POSIX::SigAction> object:
6076+
6077+ $sigaction->safe(1);
6078+
6079+You may also examine the "safe" flag on the output action object which is
6080+filled in when given as the third parameter to C<POSIX::sigaction()>:
6081+
6082+ sigaction(SIGINT, $new_action, $old_action);
6083+ if ($old_action->safe) {
6084+ # previous SIGINT handler used safe signals
6085+ }
6086+
6087+=back
6088+
6089+=head2 POSIX::SigRt
6090+
6091+=over 8
6092+
6093+=item %SIGRT
6094+
6095+A hash of the POSIX realtime signal handlers. It is an extension of
6096+the standard %SIG, the $POSIX::SIGRT{SIGRTMIN} is roughly equivalent
6097+to $SIG{SIGRTMIN}, but the right POSIX moves (see below) are made with
6098+the POSIX::SigSet and POSIX::sigaction instead of accessing the %SIG.
6099+
6100+You can set the %POSIX::SIGRT elements to set the POSIX realtime
6101+signal handlers, use C<delete> and C<exists> on the elements, and use
6102+C<scalar> on the C<%POSIX::SIGRT> to find out how many POSIX realtime
6103+signals there are available (SIGRTMAX - SIGRTMIN + 1, the SIGRTMAX is
6104+a valid POSIX realtime signal).
6105+
6106+Setting the %SIGRT elements is equivalent to calling this:
6107+
6108+ sub new {
6109+ my ($rtsig, $handler, $flags) = @_;
6110+ my $sigset = POSIX::SigSet($rtsig);
6111+ my $sigact = POSIX::SigAction->new($handler, $sigset, $flags);
6112+ sigaction($rtsig, $sigact);
6113+ }
6114+
6115+The flags default to zero, if you want something different you can
6116+either use C<local> on $POSIX::SigRt::SIGACTION_FLAGS, or you can
6117+derive from POSIX::SigRt and define your own C<new()> (the tied hash
6118+STORE method of the %SIGRT calls C<new($rtsig, $handler, $SIGACTION_FLAGS)>,
6119+where the $rtsig ranges from zero to SIGRTMAX - SIGRTMIN + 1).
6120+
6121+Just as with any signal, you can use sigaction($rtsig, undef, $oa) to
6122+retrieve the installed signal handler (or, rather, the signal action).
6123+
6124+B<NOTE:> whether POSIX realtime signals really work in your system, or
6125+whether Perl has been compiled so that it works with them, is outside
6126+of this discussion.
6127+
6128+=item SIGRTMIN
6129+
6130+Return the minimum POSIX realtime signal number available, or C<undef>
6131+if no POSIX realtime signals are available.
6132+
6133+=item SIGRTMAX
6134+
6135+Return the maximum POSIX realtime signal number available, or C<undef>
6136+if no POSIX realtime signals are available.
6137+
6138+=back
6139+
6140+=head2 POSIX::SigSet
6141+
6142+=over 8
6143+
6144+=item new
6145+
6146+Create a new SigSet object. This object will be destroyed automatically
6147+when it is no longer needed. Arguments may be supplied to initialize the
6148+set.
6149+
6150+Create an empty set.
6151+
6152+ $sigset = POSIX::SigSet->new;
6153+
6154+Create a set with SIGUSR1.
6155+
6156+ $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
6157+
6158+=item addset
6159+
6160+Add a signal to a SigSet object.
6161+
6162+ $sigset->addset( &POSIX::SIGUSR2 );
6163+
6164+Returns C<undef> on failure.
6165+
6166+=item delset
6167+
6168+Remove a signal from the SigSet object.
6169+
6170+ $sigset->delset( &POSIX::SIGUSR2 );
6171+
6172+Returns C<undef> on failure.
6173+
6174+=item emptyset
6175+
6176+Initialize the SigSet object to be empty.
6177+
6178+ $sigset->emptyset();
6179+
6180+Returns C<undef> on failure.
6181+
6182+=item fillset
6183+
6184+Initialize the SigSet object to include all signals.
6185+
6186+ $sigset->fillset();
6187+
6188+Returns C<undef> on failure.
6189+
6190+=item ismember
6191+
6192+Tests the SigSet object to see if it contains a specific signal.
6193+
6194+ if( $sigset->ismember( &POSIX::SIGUSR1 ) ){
6195+ print "contains SIGUSR1\n";
6196+ }
6197+
6198+=back
6199+
6200+=head2 POSIX::Termios
6201+
6202+=over 8
6203+
6204+=item new
6205+
6206+Create a new Termios object. This object will be destroyed automatically
6207+when it is no longer needed. A Termios object corresponds to the termios
6208+C struct. new() mallocs a new one, getattr() fills it from a file descriptor,
6209+and setattr() sets a file descriptor's parameters to match Termios' contents.
6210+
6211+ $termios = POSIX::Termios->new;
6212+
6213+=item getattr
6214+
6215+Get terminal control attributes.
6216+
6217+Obtain the attributes for stdin.
6218+
6219+ $termios->getattr( 0 ) # Recommended for clarity.
6220+ $termios->getattr()
6221+
6222+Obtain the attributes for stdout.
6223+
6224+ $termios->getattr( 1 )
6225+
6226+Returns C<undef> on failure.
6227+
6228+=item getcc
6229+
6230+Retrieve a value from the c_cc field of a termios object. The c_cc field is
6231+an array so an index must be specified.
6232+
6233+ $c_cc[1] = $termios->getcc(1);
6234+
6235+=item getcflag
6236+
6237+Retrieve the c_cflag field of a termios object.
6238+
6239+ $c_cflag = $termios->getcflag;
6240+
6241+=item getiflag
6242+
6243+Retrieve the c_iflag field of a termios object.
6244+
6245+ $c_iflag = $termios->getiflag;
6246+
6247+=item getispeed
6248+
6249+Retrieve the input baud rate.
6250+
6251+ $ispeed = $termios->getispeed;
6252+
6253+=item getlflag
6254+
6255+Retrieve the c_lflag field of a termios object.
6256+
6257+ $c_lflag = $termios->getlflag;
6258+
6259+=item getoflag
6260+
6261+Retrieve the c_oflag field of a termios object.
6262+
6263+ $c_oflag = $termios->getoflag;
6264+
6265+=item getospeed
6266+
6267+Retrieve the output baud rate.
6268+
6269+ $ospeed = $termios->getospeed;
6270+
6271+=item setattr
6272+
6273+Set terminal control attributes.
6274+
6275+Set attributes immediately for stdout.
6276+
6277+ $termios->setattr( 1, &POSIX::TCSANOW );
6278+
6279+Returns C<undef> on failure.
6280+
6281+=item setcc
6282+
6283+Set a value in the c_cc field of a termios object. The c_cc field is an
6284+array so an index must be specified.
6285+
6286+ $termios->setcc( &POSIX::VEOF, 1 );
6287+
6288+=item setcflag
6289+
6290+Set the c_cflag field of a termios object.
6291+
6292+ $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
6293+
6294+=item setiflag
6295+
6296+Set the c_iflag field of a termios object.
6297+
6298+ $termios->setiflag( $c_iflag | &POSIX::BRKINT );
6299+
6300+=item setispeed
6301+
6302+Set the input baud rate.
6303+
6304+ $termios->setispeed( &POSIX::B9600 );
6305+
6306+Returns C<undef> on failure.
6307+
6308+=item setlflag
6309+
6310+Set the c_lflag field of a termios object.
6311+
6312+ $termios->setlflag( $c_lflag | &POSIX::ECHO );
6313+
6314+=item setoflag
6315+
6316+Set the c_oflag field of a termios object.
6317+
6318+ $termios->setoflag( $c_oflag | &POSIX::OPOST );
6319+
6320+=item setospeed
6321+
6322+Set the output baud rate.
6323+
6324+ $termios->setospeed( &POSIX::B9600 );
6325+
6326+Returns C<undef> on failure.
6327+
6328+=item Baud rate values
6329+
6330+B38400 B75 B200 B134 B300 B1800 B150 B0 B19200 B1200 B9600 B600 B4800 B50 B2400 B110
6331+
6332+=item Terminal interface values
6333+
6334+TCSADRAIN TCSANOW TCOON TCIOFLUSH TCOFLUSH TCION TCIFLUSH TCSAFLUSH TCIOFF TCOOFF
6335+
6336+=item c_cc field values
6337+
6338+VEOF VEOL VERASE VINTR VKILL VQUIT VSUSP VSTART VSTOP VMIN VTIME NCCS
6339+
6340+=item c_cflag field values
6341+
6342+CLOCAL CREAD CSIZE CS5 CS6 CS7 CS8 CSTOPB HUPCL PARENB PARODD
6343+
6344+=item c_iflag field values
6345+
6346+BRKINT ICRNL IGNBRK IGNCR IGNPAR INLCR INPCK ISTRIP IXOFF IXON PARMRK
6347+
6348+=item c_lflag field values
6349+
6350+ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH TOSTOP
6351+
6352+=item c_oflag field values
6353+
6354+OPOST
6355+
6356+=back
6357+
6358+=head1 PATHNAME CONSTANTS
6359+
6360+=over 8
6361+
6362+=item Constants
6363+
6364+_PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE
6365+
6366+=back
6367+
6368+=head1 POSIX CONSTANTS
6369+
6370+=over 8
6371+
6372+=item Constants
6373+
6374+_POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
6375+
6376+=back
6377+
6378+=head1 SYSTEM CONFIGURATION
6379+
6380+=over 8
6381+
6382+=item Constants
6383+
6384+_SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION
6385+
6386+=back
6387+
6388+=head1 ERRNO
6389+
6390+=over 8
6391+
6392+=item Constants
6393+
6394+E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
6395+EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ
6396+EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR
6397+EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG
6398+ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC
6399+ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR
6400+ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE
6401+EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS
6402+ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS
6403+ETXTBSY EUSERS EWOULDBLOCK EXDEV
6404+
6405+=back
6406+
6407+=head1 FCNTL
6408+
6409+=over 8
6410+
6411+=item Constants
6412+
6413+FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY
6414+
6415+=back
6416+
6417+=head1 FLOAT
6418+
6419+=over 8
6420+
6421+=item Constants
6422+
6423+DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP
6424+
6425+=back
6426+
6427+=head1 LIMITS
6428+
6429+=over 8
6430+
6431+=item Constants
6432+
6433+ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
6434+
6435+=back
6436+
6437+=head1 LOCALE
6438+
6439+=over 8
6440+
6441+=item Constants
6442+
6443+LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
6444+
6445+=back
6446+
6447+=head1 MATH
6448+
6449+=over 8
6450+
6451+=item Constants
6452+
6453+HUGE_VAL
6454+
6455+=back
6456+
6457+=head1 SIGNAL
6458+
6459+=over 8
6460+
6461+=item Constants
6462+
6463+SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART
6464+SA_SIGINFO SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
6465+SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
6466+SIGUSR1 SIGUSR2 SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK
6467+SIG_UNBLOCK
6468+
6469+=back
6470+
6471+=head1 STAT
6472+
6473+=over 8
6474+
6475+=item Constants
6476+
6477+S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
6478+
6479+=item Macros
6480+
6481+S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
6482+
6483+=back
6484+
6485+=head1 STDLIB
6486+
6487+=over 8
6488+
6489+=item Constants
6490+
6491+EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX RAND_MAX
6492+
6493+=back
6494+
6495+=head1 STDIO
6496+
6497+=over 8
6498+
6499+=item Constants
6500+
6501+BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid L_tmpname TMP_MAX
6502+
6503+=back
6504+
6505+=head1 TIME
6506+
6507+=over 8
6508+
6509+=item Constants
6510+
6511+CLK_TCK CLOCKS_PER_SEC
6512+
6513+=back
6514+
6515+=head1 UNISTD
6516+
6517+=over 8
6518+
6519+=item Constants
6520+
6521+R_OK SEEK_CUR SEEK_END SEEK_SET STDIN_FILENO STDOUT_FILENO STDERR_FILENO W_OK X_OK
6522+
6523+=back
6524+
6525+=head1 WAIT
6526+
6527+=over 8
6528+
6529+=item Constants
6530+
6531+WNOHANG WUNTRACED
6532+
6533+=over 16
6534+
6535+=item WNOHANG
6536+
6537+Do not suspend the calling process until a child process
6538+changes state but instead return immediately.
6539+
6540+=item WUNTRACED
6541+
6542+Catch stopped child processes.
6543+
6544+=back
6545+
6546+=item Macros
6547+
6548+WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG WIFSTOPPED WSTOPSIG
6549+
6550+=over 16
6551+
6552+=item WIFEXITED
6553+
6554+WIFEXITED($?) returns true if the child process exited normally
6555+(C<exit()> or by falling off the end of C<main()>)
6556+
6557+=item WEXITSTATUS
6558+
6559+WEXITSTATUS($?) returns the normal exit status of the child process
6560+(only meaningful if WIFEXITED($?) is true)
6561+
6562+=item WIFSIGNALED
6563+
6564+WIFSIGNALED($?) returns true if the child process terminated because
6565+of a signal
6566+
6567+=item WTERMSIG
6568+
6569+WTERMSIG($?) returns the signal the child process terminated for
6570+(only meaningful if WIFSIGNALED($?) is true)
6571+
6572+=item WIFSTOPPED
6573+
6574+WIFSTOPPED($?) returns true if the child process is currently stopped
6575+(can happen only if you specified the WUNTRACED flag to waitpid())
6576+
6577+=item WSTOPSIG
6578+
6579+WSTOPSIG($?) returns the signal the child process was stopped for
6580+(only meaningful if WIFSTOPPED($?) is true)
6581+
6582+=back
6583+
6584+=back
6585+
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_4.patch b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_4.patch
new file mode 100644
index 0000000000..98bf0743fb
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_4.patch
@@ -0,0 +1,57 @@
1Upstream-Status:Inappropriate [Backport]
2
3commit 43c0c913165d6abe1bc0cb45a784eb1c32c3700b
4Author: Nicholas Clark <nick@ccl4.org>
5Date: Mon Feb 14 09:06:42 2011 +0000
6
7 For miniperl, use the USE_SITECUSTOMIZE feature to load the build-time @INC
8
9 For miniperl (only), always enable USE_SITECUSTOMIZE, but change it to load
10 a buildcustomize.pl file from $INC[0], if present. The default @INC for
11 miniperl is '.', so by default this does nothing.
12
13diff --git a/perl.c b/perl.c
14index 8f8565d..6bb9f46 100644
15--- a/perl.c
16+++ b/perl.c
17@@ -24,6 +24,10 @@
18 * function of the interpreter; that can be found in perlmain.c
19 */
20
21+#ifdef PERL_IS_MINIPERL
22+# define USE_SITECUSTOMIZE
23+#endif
24+
25 #include "EXTERN.h"
26 #define PERL_IN_PERL_C
27 #include "perl.h"
28@@ -1973,15 +1977,26 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
29 }
30 }
31
32-#if defined(USE_SITECUSTOMIZE) && !defined(PERL_IS_MINIPERL)
33+#if defined(USE_SITECUSTOMIZE)
34 if (!minus_f) {
35- /* SITELIB_EXP is a function call on Win32.
36- The games with local $! are to avoid setting errno if there is no
37+ /* The games with local $! are to avoid setting errno if there is no
38 sitecustomize script. */
39+# ifdef PERL_IS_MINIPERL
40+ AV *const inc = GvAV(PL_incgv);
41+ SV **const inc0 = inc ? av_fetch(inc, 0, FALSE) : NULL;
42+
43+ if (inc0) {
44+ (void)Perl_av_create_and_unshift_one(aTHX_ &PL_preambleav,
45+ Perl_newSVpvf(aTHX_
46+ "BEGIN { do {local $!; -f '%"SVf"/buildcustomize.pl'} && do '%"SVf"/buildcustomize.pl' }", *inc0, *inc0));
47+ }
48+# else
49+ /* SITELIB_EXP is a function call on Win32. */
50 const char *const sitelib = SITELIB_EXP;
51 (void)Perl_av_create_and_unshift_one(aTHX_ &PL_preambleav,
52 Perl_newSVpvf(aTHX_
53 "BEGIN { do {local $!; -f '%s/sitecustomize.pl'} && do '%s/sitecustomize.pl' }", sitelib, sitelib));
54+# endif
55 }
56 #endif
57
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_5.patch b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_5.patch
new file mode 100644
index 0000000000..5891ee6a93
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_5.patch
@@ -0,0 +1,430 @@
1Upstream-Status:Inappropriate [Backport]
2
3Rebased by Nitin A Kamble <nitin.a.kamble@intel.com> on 3/11/2011
4
5commit 5e4c4c91bd52a48de59520d5e9b4e3478e49c613
6Author: Nicholas Clark <nick@ccl4.org>
7Date: Mon Feb 14 10:14:18 2011 +0000
8
9 Use a buildcustomize.pl to set @INC in miniperl when building extensions.
10
11 With the build tools now shipped in various subdirectories of cpan/ and dist/
12 we need to add several paths to @INC when invoking MakeMaker (etc) to build
13 extensions.
14
15 The previous approach of using $ENV{PERL5LIB} was fragile, because:
16 a: It was hitting the length limit for %ENV variables on VMS
17 b: It was running the risk of race conditions in a parallel build -
18 ExtUtils::Makemaker "knows" to add -I../..lib, which puts lib at the *front*
19 of @INC, but if one parallel process happens to copy a module into lib/
20 whilst another is searching for it, the second may get a partial read
21 c: Overwriting $ENV{PERL5LIB} breaks any system where any of the installed
22 build tools are actually implemented in Perl, if they are relying on
23 $ENV{PERL5LIB} for setup
24
25 This approach
26
27 a: Doesn't have %ENV length limits
28 b: Ensures that lib/ is last, so copy targets are always shadowing copy
29 sources
30 c: Only affects miniperl, and doesn't touch $ENV{PERL5LIB}
31
32 Approaches that turned out to have fatal flaws:
33
34 1: Using $ENV{PERL5OPT} with a module fails because ExtUtils::MakeMaker
35 searches for the build perl without setting lib, and treats the error
36 caused by a failed -M as "not a valid perl 5 binary"
37 2: Refactoring ExtUtils::MakeMaker to *not* use -I for lib, and instead rely
38 on $ENV{PERL5LIB} [which includes "../../lib"] fails because:
39 some extensions have subdirectories, and on these EU::MM correctly uses
40 -I../../../lib, where as $ENV{PERL5LIB} only has space for relative paths,
41 and only with two levels.
42
43 This approach actually takes advantage of ExtUtils::MakeMaker setting an -I
44 option correct for the depth of directory being built.
45
46Index: perl-5.12.3/Cross/Makefile-cross-SH
47===================================================================
48--- perl-5.12.3.orig/Cross/Makefile-cross-SH
49+++ perl-5.12.3/Cross/Makefile-cross-SH
50@@ -324,7 +324,7 @@ $spitshell >>$Makefile <<'!NO!SUBS!'
51
52 CONFIGPM = xlib/$(CROSS_NAME)/Config.pm
53
54-private = preplibrary $(CONFIGPM) $(CROSS_LIB)/Config.pod
55+private = preplibrary $(CONFIGPM) $(CROSS_LIB)/Config.pod lib/buildcustomize.pl
56
57 shextract = Makefile cflags config.h makeaperl makedepend \
58 makedir myconfig writemain pod/Makefile
59@@ -752,6 +752,9 @@ lib/lib.pm: miniperl $(CONFIGPM)
60 @-rm -f $@
61 $(LDLIBPTH) ./miniperl -Ilib -MCross lib/lib_pm.PL
62
63+lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl
64+ $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl
65+
66 unidatafiles $(unidatafiles): uni.data
67
68 uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables
69@@ -922,16 +925,16 @@ manicheck: FORCE
70
71
72
73-$(DYNALOADER): preplibrary FORCE
74+$(DYNALOADER): lib/buildcustomize.pl preplibrary FORCE
75 @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
76
77-d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE
78+d_dummy $(dynamic_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE
79 @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
80
81-s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE
82+s_dummy $(static_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE
83 @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
84
85-n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
86+n_dummy $(nonxs_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary $(DYNALOADER) FORCE
87 @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
88 !NO!SUBS!
89
90Index: perl-5.12.3/MANIFEST
91===================================================================
92--- perl-5.12.3.orig/MANIFEST
93+++ perl-5.12.3/MANIFEST
94@@ -4747,6 +4747,7 @@ win32/wince.c WinCE port
95 win32/wince.h WinCE port
96 win32/wincesck.c WinCE port
97 writemain.SH Generate perlmain.c from miniperlmain.c+extensions
98+write_buildcustomize.pl Generate lib/buildcustomize.pl
99 x2p/a2p.c Output of a2p.y run through byacc
100 x2p/a2p.h Global declarations
101 x2p/a2p.pod Pod for awk to perl translator
102Index: perl-5.12.3/Makefile.SH
103===================================================================
104--- perl-5.12.3.orig/Makefile.SH
105+++ perl-5.12.3/Makefile.SH
106@@ -428,7 +428,7 @@ esac
107 ## In the following dollars and backticks do not need the extra backslash.
108 $spitshell >>$Makefile <<'!NO!SUBS!'
109
110-private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h
111+private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h lib/buildcustomize.pl
112
113 # Files to be built with variable substitution before miniperl
114 # is available.
115@@ -991,6 +991,9 @@ $(plextract): $(MINIPERL_EXE) $(CONFIGPM
116 x2p/s2p: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL
117 cd x2p; $(LDLIBPTH) $(MAKE) s2p
118
119+lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl
120+ $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl
121+
122 unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data
123
124 uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
125@@ -1160,16 +1163,16 @@ manicheck: FORCE
126 #
127 # DynaLoader may be needed for extensions that use Makefile.PL.
128
129-$(DYNALOADER): $(MINIPERL_EXE) preplibrary FORCE $(nonxs_ext)
130+$(DYNALOADER): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext)
131 $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
132
133-d_dummy $(dynamic_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT)
134+d_dummy $(dynamic_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT)
135 $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
136
137-s_dummy $(static_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE
138+s_dummy $(static_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE
139 $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
140
141-n_dummy $(nonxs_ext): $(MINIPERL_EXE) preplibrary FORCE
142+n_dummy $(nonxs_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE
143 $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
144 !NO!SUBS!
145
146Index: perl-5.12.3/installperl
147===================================================================
148--- perl-5.12.3.orig/installperl
149+++ perl-5.12.3/installperl
150@@ -714,6 +714,8 @@ sub installlib {
151 # ignore the test extensions
152 return if $dir =~ m{\bXS/(?:APItest|Typemap)\b};
153 return if $name =~ m{\b(?:APItest|Typemap)\.pm$};
154+ # ignore the build support code
155+ return if $name =~ /\bbuildcustomize\.pl$/;
156 # ignore the demo files
157 return if $dir =~ /\b(?:demos?|eg)\b/;
158
159Index: perl-5.12.3/make_ext.pl
160===================================================================
161--- perl-5.12.3.orig/make_ext.pl
162+++ perl-5.12.3/make_ext.pl
163@@ -4,11 +4,9 @@ use warnings;
164 use Config;
165 BEGIN {
166 if ($^O eq 'MSWin32') {
167- unshift @INC, ('../cpan/Cwd', '../cpan/Cwd/lib');
168- require File::Spec::Functions;
169+ unshift @INC, '../cpan/Cwd';
170 require FindExt;
171- }
172- else {
173+ } else {
174 unshift @INC, 'cpan/Cwd';
175 }
176 }
177@@ -18,27 +16,6 @@ my $is_Win32 = $^O eq 'MSWin32';
178 my $is_VMS = $^O eq 'VMS';
179 my $is_Unix = !$is_Win32 && !$is_VMS;
180
181-# To clarify, this isn't the entire suite of modules considered "toolchain"
182-# It's not even all modules needed to build ext/
183-# It's just the source paths of the (minimum complete set of) modules in ext/
184-# needed to build the nonxs modules
185-# After which, all nonxs modules are in lib, which was always sufficient to
186-# allow miniperl to build everything else.
187-
188-# This list cannot get any longer without overflowing the length limit for
189-# environment variables on VMS
190-my @toolchain = qw(cpan/AutoLoader/lib
191- cpan/Cwd cpan/Cwd/lib
192- cpan/ExtUtils-Command/lib
193- dist/ExtUtils-Install/lib
194- cpan/ExtUtils-MakeMaker/lib
195- cpan/ExtUtils-Manifest/lib
196- cpan/File-Path/lib
197- );
198-
199-# Used only in ExtUtils::Liblist::Kid::_win32_ext()
200-push @toolchain, 'cpan/Text-ParseWords/lib' if $is_Win32;
201-
202 my @ext_dirs = qw(cpan dist ext);
203 my $ext_dirs_re = '(?:' . join('|', @ext_dirs) . ')';
204
205@@ -295,16 +272,7 @@ sub build_extension {
206 $perl ||= "$up/miniperl";
207 my $return_dir = $up;
208 my $lib_dir = "$up/lib";
209- # $lib_dir must be last, as we're copying files into it, and in a parallel
210- # make there's a race condition if one process tries to open a module that
211- # another process has half-written.
212- my @new_inc = ((map {"$up/$_"} @toolchain), $lib_dir);
213- if ($is_Win32) {
214- @new_inc = map {File::Spec::Functions::rel2abs($_)} @new_inc;
215- }
216- $ENV{PERL5LIB} = join $Config{path_sep}, @new_inc;
217 $ENV{PERL_CORE} = 1;
218- # warn $ENV{PERL5LIB};
219
220 my $makefile;
221 if ($is_VMS) {
222@@ -375,7 +343,7 @@ EOM
223 @cross = '-MCross';
224 }
225
226- my @args = (@cross, 'Makefile.PL');
227+ my @args = ("-I$lib_dir", @cross, 'Makefile.PL');
228 if ($is_VMS) {
229 my $libd = VMS::Filespec::vmspath($lib_dir);
230 push @args, "INST_LIB=$libd", "INST_ARCHLIB=$libd";
231Index: perl-5.12.3/vms/descrip_mms.template
232===================================================================
233--- perl-5.12.3.orig/vms/descrip_mms.template
234+++ perl-5.12.3/vms/descrip_mms.template
235@@ -360,7 +360,7 @@ CRTLOPTS =,$(CRTL)/Options
236 unidatadirs = lib/unicore/To lib/unicore/lib
237
238 # Modules which must be installed before we can build extensions
239-LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm
240+LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm [.lib]buildcustomize.pl
241
242 utils1 = [.lib.pods]perldoc.com [.lib.ExtUtils]Miniperl.pm [.utils]c2ph.com [.utils]h2ph.com
243 utils2 = [.utils]h2xs.com [.utils]libnetcfg.com [.lib]perlbug.com [.utils]dprofpp.com
244@@ -458,6 +458,9 @@ archcorefiles : $(ac) $(ARCHAUTO)time.st
245 [.lib]re.pm : [.ext.re]re.pm
246 Copy/NoConfirm/Log $(MMS$SOURCE) [.lib]
247
248+[.lib]buildcustomize.pl : write_buildcustomize.pl $(MINIPERL_EXE)
249+ $(MINIPERL) write_buildcustomize.pl > [.lib]buildcustomize.pl
250+
251 vmspipe.com : [.vms]vmspipe.com
252 Copy/NoConfirm/Log $(MMS$SOURCE) []
253
254@@ -561,7 +564,7 @@ unidatafiles.ts : $(MINIPERL_EXE) [.lib]
255 @ If F$Search("$(MMS$TARGET)").nes."" Then Delete/NoLog/NoConfirm $(MMS$TARGET);*
256 @ Copy/NoConfirm _NLA0: $(MMS$TARGET)
257
258-DynaLoader$(O) : $(ARCHDIR)Config.pm $(MINIPERL_EXE) [.lib.VMS]Filespec.pm
259+DynaLoader$(O) : [.lib]buildcustomize.pl $(ARCHDIR)Config.pm $(MINIPERL_EXE) [.lib.VMS]Filespec.pm
260 $(MINIPERL) make_ext.pl "MAKE=$(MMS)" "DynaLoader"
261
262 dynext : $(LIBPREREQ) $(DBG)perlshr$(E) unidatafiles.ts DynaLoader$(O) preplibrary makeppport $(MINIPERL_EXE)
263@@ -1856,6 +1859,7 @@ tidy : cleanlis
264 - If F$Search("[.utils]*.com;-1").nes."" Then Purge/NoConfirm/Log [.utils]*.com
265 - If F$Search("[.x2p]*.com;-1").nes."" Then Purge/NoConfirm/Log [.x2p]*.com
266 - If F$Search("[.lib.pods]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib.pods]*.com
267+ - If F$Search("[.lib]buildcustomize.pl;-1").nes."" Then Purge/NoConfirm/Log [.lib]buildcustomize.pl
268
269 clean : tidy cleantest
270 - $(MINIPERL) make_ext.pl "MAKE=$(MMS)" "--all" "--target=clean"
271Index: perl-5.12.3/win32/Makefile
272===================================================================
273--- perl-5.12.3.orig/win32/Makefile
274+++ perl-5.12.3/win32/Makefile
275@@ -923,6 +923,9 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c
276 -$(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)"
277 if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
278
279+..\lib\buildcustomize.pl: $(MINIPERL) ..\write_buildcustomize.pl
280+ $(MINIPERL) -I..\lib ..\write_buildcustomize.pl .. >..\lib\buildcustomize.pl
281+
282 $(MINIPERL) : $(MINIDIR) $(MINI_OBJ)
283 $(LINK32) -subsystem:console -out:$@ @<<
284 $(LINK_FLAGS) $(LIBFILES) $(MINI_OBJ)
285@@ -1045,24 +1048,24 @@ MakePPPort: $(MINIPERL) $(CONFIGPM) Exte
286 #-------------------------------------------------------------------------------
287 # There's no direct way to mark a dependency on
288 # DynaLoader.pm, so this will have to do
289-Extensions: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER)
290+Extensions: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER)
291 $(XCOPY) ..\*.h $(COREDIR)\*.*
292 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic
293
294-Extensions_reonly: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER)
295+Extensions_reonly: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER)
296 $(XCOPY) ..\*.h $(COREDIR)\*.*
297 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re
298
299-Extensions_static : ..\make_ext.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM)
300+Extensions_static : ..\make_ext.pl ..\lib\buildcustomize.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM)
301 $(XCOPY) ..\*.h $(COREDIR)\*.*
302 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static
303 $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static
304
305-Extensions_nonxs: ..\make_ext.pl $(PERLDEP) $(CONFIGPM)
306+Extensions_nonxs: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM)
307 $(XCOPY) ..\*.h $(COREDIR)\*.*
308 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs
309
310-$(DYNALOADER) : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs
311+$(DYNALOADER) : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs
312 $(XCOPY) ..\*.h $(COREDIR)\*.*
313 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader
314
315@@ -1159,6 +1162,7 @@ distclean: realclean
316 -del /f $(LIBDIR)\Win32CORE.pm
317 -del /f $(LIBDIR)\Win32API\File.pm
318 -del /f $(LIBDIR)\Win32API\File\cFile.pc
319+ -del /f $(LIBDIR)\buildcustomize.pl
320 -del /f $(DISTDIR)\XSLoader\XSLoader.pm
321 -if exist $(LIBDIR)\App rmdir /s /q $(LIBDIR)\App
322 -if exist $(LIBDIR)\Archive rmdir /s /q $(LIBDIR)\Archive
323Index: perl-5.12.3/win32/makefile.mk
324===================================================================
325--- perl-5.12.3.orig/win32/makefile.mk
326+++ perl-5.12.3/win32/makefile.mk
327@@ -1215,6 +1215,10 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c
328 $(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" \
329 || $(MAKE) $(MAKEMACROS) $(CONFIGPM) $(MAKEFILE)
330
331+..\lib\buildcustomize.pl: $(MINIPERL) ..\write_buildcustomize.pl
332+ $(MINIPERL) -I..\lib ..\write_buildcustomize.pl .. >..\lib\buildcustomize.pl
333+
334+
335 $(MINIPERL) : $(MINIDIR) $(MINI_OBJ) $(CRTIPMLIBS)
336 .IF "$(CCTYPE)" == "BORLAND"
337 if not exist $(CCLIBDIR)\PSDK\odbccp32.lib \
338@@ -1423,24 +1427,24 @@ MakePPPort: $(MINIPERL) $(CONFIGPM) Exte
339 #-------------------------------------------------------------------------------
340 # There's no direct way to mark a dependency on
341 # DynaLoader.pm, so this will have to do
342-Extensions : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER)
343+Extensions : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER)
344 $(XCOPY) ..\*.h $(COREDIR)\*.*
345 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic
346
347-Extensions_reonly : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER)
348+Extensions_reonly : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER)
349 $(XCOPY) ..\*.h $(COREDIR)\*.*
350 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re
351
352-Extensions_static : ..\make_ext.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM)
353+Extensions_static : ..\make_ext.pl ..\lib\buildcustomize.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM)
354 $(XCOPY) ..\*.h $(COREDIR)\*.*
355 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static
356 $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static
357
358-Extensions_nonxs : ..\make_ext.pl $(PERLDEP) $(CONFIGPM)
359+Extensions_nonxs : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM)
360 $(XCOPY) ..\*.h $(COREDIR)\*.*
361 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs
362
363-$(DYNALOADER) : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs
364+$(DYNALOADER) : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs
365 $(XCOPY) ..\*.h $(COREDIR)\*.*
366 $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader
367
368@@ -1534,6 +1538,7 @@ distclean: realclean
369 -del /f $(LIBDIR)\Win32CORE.pm
370 -del /f $(LIBDIR)\Win32API\File.pm
371 -del /f $(LIBDIR)\Win32API\File\cFile.pc
372+ -del /f $(LIBDIR)\buildcustomize.pl
373 -del /f $(DISTDIR)\XSLoader\XSLoader.pm
374 -if exist $(LIBDIR)\App rmdir /s /q $(LIBDIR)\App
375 -if exist $(LIBDIR)\Archive rmdir /s /q $(LIBDIR)\Archive
376Index: perl-5.12.3/write_buildcustomize.pl
377===================================================================
378--- /dev/null
379+++ perl-5.12.3/write_buildcustomize.pl
380@@ -0,0 +1,50 @@
381+#!./miniperl -w
382+
383+use strict;
384+if (@ARGV) {
385+ my $dir = shift;
386+ chdir $dir or die "Can't chdir '$dir': $!";
387+ unshift @INC, 'lib';
388+}
389+
390+unshift @INC, ('cpan/Cwd', 'cpan/Cwd/lib');
391+require File::Spec::Functions;
392+
393+# To clarify, this isn't the entire suite of modules considered "toolchain"
394+# It's not even all modules needed to build ext/
395+# It's just the source paths of the (minimum complete set of) modules in ext/
396+# needed to build the nonxs modules
397+# After which, all nonxs modules are in lib, which was always sufficient to
398+# allow miniperl to build everything else.
399+
400+my @toolchain = qw(cpan/AutoLoader/lib
401+ cpan/Cwd cpan/Cwd/lib
402+ cpan/ExtUtils-Command/lib
403+ dist/ExtUtils-Install/lib
404+ cpan/ExtUtils-MakeMaker/lib
405+ cpan/ExtUtils-Manifest/lib
406+ cpan/File-Path/lib
407+ );
408+
409+# Used only in ExtUtils::Liblist::Kid::_win32_ext()
410+push @toolchain, 'cpan/Text-ParseWords/lib' if $^O eq 'MSWin32';
411+
412+# lib must be last, as the the toolchain modules write themselves into it
413+# as they build, and it's important that @INC order ensures that the partially
414+# written files are always masked by the complete versions.
415+
416+my $inc = join ",\n ",
417+ map { "q\0$_\0" }
418+ (map {File::Spec::Functions::rel2abs($_)} @toolchain, 'lib'), '.';
419+
420+# If any of the system's build tools are written in Perl, then this module
421+# may well be loaded by a much older version than we are building. So keep it
422+# as backwards compatible as is easy.
423+print <<"EOT";
424+#!perl
425+
426+# We are miniperl, building extensions
427+# Reset \@INC completely, adding the directories we need, and removing the
428+# installed directories (which we don't need to read, and may confuse us)
429+\@INC = ($inc);
430+EOT
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_6.patch b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_6.patch
new file mode 100644
index 0000000000..42677391de
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/parallel_build_fix_6.patch
@@ -0,0 +1,158 @@
1Upstream-Status:Inappropriate [Backport]
2
3Rebased by Nitin A Kamble <nitin.a.kamble@intel.com> on 3/11/2011
4
5commit 7353f64c5bca6e7102582a1e0017c850930249c3
6Author: Nicholas Clark <nick@ccl4.org>
7Date: Mon Feb 14 20:36:36 2011 +0000
8
9 Add ext/re/re.pm to the @INC set for miniperl by lib/buildcustomize.pl
10
11 This avoids a build-time race condition where lib/re.pm might be read midway
12 through the *second* copy of it (when ext/re/Makefile is being run). It also
13 simplifies many [Mm]akefile* rules, which previously had a special case to
14 copy it early.
15
16Index: perl-5.12.3/Cross/Makefile-cross-SH
17===================================================================
18--- perl-5.12.3.orig/Cross/Makefile-cross-SH
19+++ perl-5.12.3/Cross/Makefile-cross-SH
20@@ -727,7 +727,7 @@ fi
21 $spitshell >>$Makefile <<'!NO!SUBS!'
22
23 .PHONY: preplibrary
24-preplibrary: miniperl $(CONFIGPM) lib/lib.pm lib/re.pm $(PREPLIBRARY_LIBPERL)
25+preplibrary: miniperl $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
26
27 .PHONY: makeppport
28 makeppport: miniperl$(EXE_EXT) $(CONFIGPM)
29@@ -748,10 +748,6 @@ $(plextract): miniperl $(CONFIGPM) x2p/s
30 @-rm -f $@
31 $(LDLIBPTH) ./miniperl -I`pwd`/lib $@.PL
32
33-lib/lib.pm: miniperl $(CONFIGPM)
34- @-rm -f $@
35- $(LDLIBPTH) ./miniperl -Ilib -MCross lib/lib_pm.PL
36-
37 lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl
38 $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl
39
40@@ -1212,7 +1208,7 @@ minitest.prep:
41
42 # Can't depend on lib/Config.pm because that might be where miniperl
43 # is crashing.
44-minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep
45+minitest: miniperl$(EXE_EXT) minitest.prep
46 - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
47 && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
48
49Index: perl-5.12.3/Makefile.SH
50===================================================================
51--- perl-5.12.3.orig/Makefile.SH
52+++ perl-5.12.3/Makefile.SH
53@@ -970,7 +970,7 @@ esac
54 $spitshell >>$Makefile <<'!NO!SUBS!'
55
56 .PHONY: preplibrary
57-preplibrary: $(MINIPERL_EXE) $(CONFIGPM) lib/re.pm $(PREPLIBRARY_LIBPERL)
58+preplibrary: $(MINIPERL_EXE) $(CONFIGPM) $(PREPLIBRARY_LIBPERL)
59
60 $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD)
61
62@@ -980,10 +980,6 @@ $(CONFIGPOD): config.sh $(MINIPERL_EXE)
63 lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM)
64 $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm
65
66-lib/re.pm: ext/re/re.pm
67- @-rm -f $@
68- cp ext/re/re.pm lib/re.pm
69-
70 $(plextract): $(MINIPERL_EXE) $(CONFIGPM) x2p/s2p $(dynamic_ext)
71 @-rm -f $@
72 $(MINIPERL) $@.PL
73@@ -1267,7 +1263,7 @@ _cleaner2:
74 rm -f lib/.exists lib/*/.exists lib/*/*/.exists
75 rm -f h2ph.man pstruct
76 rm -rf .config
77- rm -f preload lib/re.pm
78+ rm -f preload
79 rm -rf lib/Encode lib/Compress lib/Hash lib/re
80 rm -rf lib/TAP lib/Module/Pluggable lib/App
81 rm -rf lib/mro
82@@ -1464,7 +1460,7 @@ minitest.prep:
83
84 # Can't depend on lib/Config.pm because that might be where miniperl
85 # is crashing.
86-minitest: $(MINIPERL_EXE) lib/re.pm minitest.prep
87+minitest: $(MINIPERL_EXE) minitest.prep
88 - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
89 && $(RUN_PERL) TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
90
91Index: perl-5.12.3/vms/descrip_mms.template
92===================================================================
93--- perl-5.12.3.orig/vms/descrip_mms.template
94+++ perl-5.12.3/vms/descrip_mms.template
95@@ -360,7 +360,7 @@ CRTLOPTS =,$(CRTL)/Options
96 unidatadirs = lib/unicore/To lib/unicore/lib
97
98 # Modules which must be installed before we can build extensions
99-LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm [.lib]buildcustomize.pl
100+LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]buildcustomize.pl
101
102 utils1 = [.lib.pods]perldoc.com [.lib.ExtUtils]Miniperl.pm [.utils]c2ph.com [.utils]h2ph.com
103 utils2 = [.utils]h2xs.com [.utils]libnetcfg.com [.lib]perlbug.com [.utils]dprofpp.com
104@@ -455,9 +455,6 @@ pod = $(pod0) $(pod1) $(pod2) $(pod3) $(
105 archcorefiles : $(ac) $(ARCHAUTO)time.stamp
106 @ $(NOOP)
107
108-[.lib]re.pm : [.ext.re]re.pm
109- Copy/NoConfirm/Log $(MMS$SOURCE) [.lib]
110-
111 [.lib]buildcustomize.pl : write_buildcustomize.pl $(MINIPERL_EXE)
112 $(MINIPERL) write_buildcustomize.pl > [.lib]buildcustomize.pl
113
114@@ -1487,7 +1484,7 @@ test_harness : all [.t.lib]vmsfspec.t
115 - @[.vms]test.com "$(E)" "$(__DEBUG__)"
116 @ $(MINIPERL) -e "print ""Ran tests"";" > [.t]rantests.
117
118-minitest : $(MINITEST_EXE) [.lib]re.pm [.lib.VMS]Filespec.pm unidatafiles.ts
119+minitest : $(MINITEST_EXE) [.lib.VMS]Filespec.pm unidatafiles.ts
120 @ PERL_TEST_DRIVER == "minitest"
121 - @[.vms]test.com "$(E)" "$(__DEBUG__)"
122
123Index: perl-5.12.3/win32/Makefile
124===================================================================
125--- perl-5.12.3.orig/win32/Makefile
126+++ perl-5.12.3/win32/Makefile
127@@ -918,7 +918,6 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c
128 if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
129 $(XCOPY) ..\*.h $(COREDIR)\*.*
130 $(XCOPY) *.h $(COREDIR)\*.*
131- $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
132 $(RCOPY) include $(COREDIR)\*.*
133 -$(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)"
134 if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
135Index: perl-5.12.3/win32/makefile.mk
136===================================================================
137--- perl-5.12.3.orig/win32/makefile.mk
138+++ perl-5.12.3/win32/makefile.mk
139@@ -1210,7 +1210,6 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c
140 if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
141 $(XCOPY) ..\*.h $(COREDIR)\*.*
142 $(XCOPY) *.h $(COREDIR)\*.*
143- $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
144 $(RCOPY) include $(COREDIR)\*.*
145 $(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" \
146 || $(MAKE) $(MAKEMACROS) $(CONFIGPM) $(MAKEFILE)
147Index: perl-5.12.3/write_buildcustomize.pl
148===================================================================
149--- perl-5.12.3.orig/write_buildcustomize.pl
150+++ perl-5.12.3/write_buildcustomize.pl
151@@ -24,6 +24,7 @@ my @toolchain = qw(cpan/AutoLoader/lib
152 cpan/ExtUtils-MakeMaker/lib
153 dist/ExtUtils-Manifest/lib
154 cpan/File-Path/lib
155+ ext/re
156 );
157
158 # Used only in ExtUtils::Liblist::Kid::_win32_ext()
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/perl-configpm-switch.patch b/meta/recipes-devtools/perl/perl-5.12.3/perl-configpm-switch.patch
new file mode 100644
index 0000000000..9e9f342866
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/perl-configpm-switch.patch
@@ -0,0 +1,45 @@
1Upstream-Status:Inappropriate [native]
2
3This patch is used for perl-native only. It enables the switching of
4configuration files between Config_heavy.pl and
5Config_heavy-target.pl by setting the environment variables
6PERLCONFIGTARGET - the later containing settings for the target while
7the former contains those for the host. This will allow cpan.bbclass
8to use the settings appropriate for the native and/or target builds
9as required. This also disables the use of the cache since the cached
10values would be valid for the host only.
11
12--- perl-5.8.8/configpm 2007/04/30 03:10:43 1.1
13+++ perl-5.8.8/configpm 2007/04/30 03:11:56
14@@ -374,7 +374,7 @@
15 my($self, $key) = @_;
16
17 # check for cached value (which may be undef so we use exists not defined)
18- return $self->{$key} if exists $self->{$key};
19+ #return $self->{$key} if exists $self->{$key};
20
21 return $self->fetch_string($key);
22 }
23@@ -530,7 +530,21 @@
24 sub DESTROY { }
25
26 sub AUTOLOAD {
27- require 'Config_heavy.pl';
28+ my $cfgfile = 'Config_heavy.pl';
29+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes")
30+ {
31+ $cfgfile = 'Config_heavy-target.pl';
32+ }
33+ if (defined $ENV{PERL_ARCHLIB})
34+ {
35+ push @INC, $ENV{PERL_ARCHLIB};
36+ require $cfgfile;
37+ pop @INC;
38+ }
39+ else
40+ {
41+ require $cfgfile;
42+ }
43 goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
44 die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
45 }
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/perl-configure.sh b/meta/recipes-devtools/perl/perl-5.12.3/perl-configure.sh
new file mode 100755
index 0000000000..e72ce49f99
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/perl-configure.sh
@@ -0,0 +1,43 @@
1#! /bin/sh
2
3#
4# Generate the common perl configuration
5# Needs to be run on a host that matches the bitsize of the target platform
6#
7
8echo sh Configure -des \
9 -Doptimize=-O2 \
10 -Dmyhostname=localhost \
11 -Dperladmin=root@localhost \
12 -Dcc=gcc \
13 -Dcf_by='Open Embedded' \
14 -Dinstallprefix=@DESTDIR@ \
15 -Dprefix=/usr \
16 -Dvendorprefix=/usr \
17 -Dsiteprefix=/usr \
18 -Dotherlibdirs=/usr/lib/perl5/5.12.3 \
19 -Duseshrplib \
20 -Dusethreads \
21 -Duseithreads \
22 -Duselargefiles \
23 -Ud_dosuid \
24 -Dd_semctl_semun \
25 -Ui_db \
26 -Ui_ndbm \
27 -Ui_gdbm \
28 -Di_shadow \
29 -Di_syslog \
30 -Dman3ext=3pm \
31 -Duseperlio \
32 -Dinstallusrbinperl \
33 -Ubincompat5005 \
34 -Uversiononly \
35 -Dpager='/usr/bin/less -isr'
36
37cp -f config.sh config.sh.COMMON
38
39TARGETOS=$(grep myarchname config.sh.COMMON | sed "s#.*'\(.*\)'.*#\1#")
40
41sed -r -i config.sh.COMMON \
42 -e "s#(install.*=')(/usr)/local(.*')#\1@DESTDIR@\2\3#g" \
43 -e 's#'$TARGETOS'#@ARCH@#g'
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/perl-dynloader.patch b/meta/recipes-devtools/perl/perl-5.12.3/perl-dynloader.patch
new file mode 100644
index 0000000000..d5ea00f2da
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/perl-dynloader.patch
@@ -0,0 +1,31 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Allow the location that .so files are searched for for dynamic
4loading to be changed via an environment variable. This is to allow
5us to load .so's from the host system while building for the target
6system.
7
8Update by Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/21
9
10--- perl-5.12.3/dist/XSLoader/XSLoader_pm.PL 2007/04/20 09:03:08 1.1
11+++ perl-5.12.3/dist/XSLoader/XSLoader_pm.PL 2007/04/20 09:03:08
12@@ -65,6 +65,19 @@
13 print OUT <<'EOT';
14 my $modpname = join('/',@modparts);
15 my $modlibname = (caller())[1];
16+ # OE: Allow env to form dynamic loader to look in a different place
17+ # This is so it finds the host .so files, not the targets
18+ if (defined $ENV{PERLHOSTLIB})
19+ {
20+ my $hostlib = $ENV{PERLHOSTLIB};
21+ print STDERR "*** Module name IN: $modlibname\n";
22+ ($p1, $p2, $p3, $p4, $p5) = $modlibname =~ m/(^(.*lib\/)?)((perl\/[0-9\.]*\/)?)(.*)$/;
23+ print STDERR "*** p1: $p1 p3: $p3 p5: $p5\n";
24+ if ( $p1 ne "" ) {
25+ $modlibname = $hostlib.$p5;
26+ }
27+ print STDERR "*** Module name OUT: $modlibname\n";
28+ }
29 my $c = @modparts;
30 $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename
31 my $file = "$modlibname/auto/$modpname/$modfname.$dl_dlext";
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/perl-enable-gdbm.patch b/meta/recipes-devtools/perl/perl-5.12.3/perl-enable-gdbm.patch
new file mode 100644
index 0000000000..aa83fca5ae
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/perl-enable-gdbm.patch
@@ -0,0 +1,19 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3Index: perl-5.8.8/config_h.SH
4===================================================================
5--- perl-5.8.8.orig/config_h.SH 2005-11-01 02:13:05.000000000 +0800
6+++ perl-5.8.8/config_h.SH 2010-11-01 17:06:07.215219738 +0800
7@@ -709,6 +709,12 @@
8 */
9 #$i_float I_FLOAT /**/
10
11+/* I_GDBM:
12+ * This symbol, if defined, indicates that <gdbm.h> exists and should
13+ * be included.
14+ */
15+#$i_gdbm I_GDBM /**/
16+
17 /* I_LIMITS:
18 * This symbol, if defined, indicates to the C program that it should
19 * include <limits.h> to get definition of symbols like WORD_BIT or
diff --git a/meta/recipes-devtools/perl/perl-5.12.3/perl-moreconfig.patch b/meta/recipes-devtools/perl/perl-5.12.3/perl-moreconfig.patch
new file mode 100644
index 0000000000..59ce85a7a3
--- /dev/null
+++ b/meta/recipes-devtools/perl/perl-5.12.3/perl-moreconfig.patch
@@ -0,0 +1,18 @@
1Upstream-Status:Inappropriate [embedded specific]
2
3We need ld in the fake config library, but it's not included by default. So
4expand the number of items included. While this works it indicates that the
5rest of the config items are not being picked up and/or are being picked up
6from the host. More investigation needed.
7
8--- perl-5.8.8/configpm 2007/04/20 09:48:05 1.1
9+++ perl-5.8.8/configpm 2007/04/20 09:57:12
10@@ -2,7 +2,7 @@
11 use strict;
12 use vars qw(%Config $Config_SH_expanded);
13
14-my $how_many_common = 22;
15+my $how_many_common = 50;
16
17 # commonly used names to precache (and hence lookup fastest)
18 my %Common;