summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorAndy Stormont <astormont@racktopsystems.com>2014-01-29 20:53:24 +0000
committerDan McDonald <danmcd@omniti.com>2014-04-04 12:50:08 -0400
commitc9f77c52c0735e65aa2534394c5151cdb963cbef (patch)
tree5170e70a63b36f653e635ddaece0b4720034031f /usr/src
parent7a3fc0ccaf807a654980fdce2d9187503628b99d (diff)
downloadillumos-gate-c9f77c52c0735e65aa2534394c5151cdb963cbef.tar.gz
3900 illumos will not build against gcc compiled perl
4723 Remove unused perl extensions Reviewed by: Keith Wesolowski <keith.wesolowski@joyent.com> Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net> Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/perl/Makefile72
-rw-r--r--usr/src/cmd/perl/Makefile.perl35
-rw-r--r--usr/src/cmd/perl/Makefile.targ43
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/BSM/Makefile29
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/BSM/Makefile.PL56
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Catalog.pm349
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Catalog.xs244
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Makefile.PL140
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Changes9
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Exacct.pm121
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Exacct.xs606
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/File.pm42
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/File.xs253
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/Makefile.PL139
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/MANIFEST24
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Makefile.PL173
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Makefile.PL141
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Object.pm195
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Object.xs687
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/README50
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/README.ON22
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/exacct_common.xh134
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/extract_defines159
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Catalog.pod144
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Exacct.pod193
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/File.pod178
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Group.pod98
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Item.pod94
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Object.pod150
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/README20
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/RandTest227
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/dummy.t8
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/randtest.c235
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/typemap73
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/Makefile30
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/Makefile.PL50
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/inc.flg30
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/mapfile-vers24
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs21
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/MANIFEST4
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile33
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL60
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/mapfile-vers32
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Lgrp.pm3
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/MANIFEST10
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Makefile34
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Makefile.PL87
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/mapfile-vers39
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/Changes4
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/MANIFEST7
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/Makefile.PL101
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/config/5.8.4/5.11/i386/Config.pm1292
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/config/5.8.4/5.11/sparc/Config.pm1292
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/perlgcc.PL62
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/pod/perlgcc.pod81
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Pg/Makefile29
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Pg/Makefile.PL64
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Changes4
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/MANIFEST15
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Makefile.PL67
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Privilege.pm49
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Privilege.xs291
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/README28
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/pod/Privilege.pod148
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/t/Privilege.t278
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/typemap28
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Project/MANIFEST9
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Project/Makefile34
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Project/Makefile.PL68
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.pm3
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.xs15
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Project/mapfile-vers36
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Task/MANIFEST8
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Task/Makefile30
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Task/Makefile.PL67
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Task/Task.pm3
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Task/mapfile-vers24
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Changes6
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/MANIFEST15
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Makefile.PL69
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/README27
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Ucred.pm36
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Ucred.xs165
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/pod/Ucred.pod127
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/t/Ucred.t179
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/typemap44
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Utils/MANIFEST4
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Utils/Makefile28
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Utils/Makefile.PL38
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Utils/mapfile-vers28
-rw-r--r--usr/src/cmd/perl/contrib/copy_contrib.sh108
-rw-r--r--usr/src/cmd/perl/req.flg32
-rw-r--r--usr/src/cmd/perl/skel/Makefile124
-rw-r--r--usr/src/man/man3perl/Exacct.3perl325
-rw-r--r--usr/src/man/man3perl/Exacct::Catalog.3perl217
-rw-r--r--usr/src/man/man3perl/Exacct::File.3perl234
-rw-r--r--usr/src/man/man3perl/Exacct::Object.3perl201
-rw-r--r--usr/src/man/man3perl/Exacct::Object::Group.3perl116
-rw-r--r--usr/src/man/man3perl/Exacct::Object::Item.3perl103
-rw-r--r--usr/src/man/man3perl/Makefile32
-rw-r--r--usr/src/man/man3perl/Privilege.3perl303
-rw-r--r--usr/src/man/man3perl/Ucred.3perl235
-rw-r--r--usr/src/pkg/manifests/runtime-perl-510-module-sun-solaris.mf71
103 files changed, 563 insertions, 12041 deletions
diff --git a/usr/src/cmd/perl/Makefile b/usr/src/cmd/perl/Makefile
index 73217fa083..b779ed2969 100644
--- a/usr/src/cmd/perl/Makefile
+++ b/usr/src/cmd/perl/Makefile
@@ -1,59 +1,37 @@
#
-# CDDL HEADER START
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
+# Copyright (c) 2014 Racktop Systems.
#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-include ../Makefile.cmd
-all := TARGET = all
-install := TARGET = install
-clobber := TARGET = clobber
-clean := TARGET = clean
-test := TARGET = test
+include $(SRC)/cmd/Makefile.cmd
-# PERL_LEGACY is versions of Perl still delivered through ON
-PERL_VERSIONS = 5.10.0
+SUBDIRS = \
+ contrib/Sun/Solaris/BSM \
+ contrib/Sun/Solaris/Intrs \
+ contrib/Sun/Solaris/Kstat \
+ contrib/Sun/Solaris/Lgrp \
+ contrib/Sun/Solaris/Pg \
+ contrib/Sun/Solaris/Project \
+ contrib/Sun/Solaris/Task \
+ contrib/Sun/Solaris/Utils
-.PARALLEL: $(PERL_VERSIONS)
+all := TARGET = all
+install := TARGET = install
+clean := TARGET = clean
+clobber := TARGET = clobber
-all install test: $(PERL_VERSIONS)
-
-clean: FRC
-
-clobber: clean
- $(RM) -r $(PERL_VERSIONS)
-
-#
-# Perl is not lint-clean. Fake up a target.
-#
-lint:
- @ $(ECHO) "usr/src/cmd/perl is not lint-clean: skipping"
- @ $(TRUE)
+all install clean clobber: $(SUBDIRS)
-$(PERL_VERSIONS): FRC
- @ if [ ! -d $@ ]; then \
- $(CP) -r skel $@; \
- fi
- @ cd $@; pwd; PERL_VERSION=$@ $(MAKE) $(TARGET)
+$(SUBDIRS): FRC
+ @cd $@; pwd; $(MAKE) $(TARGET)
FRC:
diff --git a/usr/src/cmd/perl/Makefile.perl b/usr/src/cmd/perl/Makefile.perl
new file mode 100644
index 0000000000..da4f50b4ee
--- /dev/null
+++ b/usr/src/cmd/perl/Makefile.perl
@@ -0,0 +1,35 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+include $(SRC)/lib/Makefile.lib
+
+PERL_VERSION = 5.10.0
+
+PERL_ARCH = i86pc-solaris-64int
+$(SPARC_BLD)PERL_ARCH = sun4-solaris-64int
+
+PERLDIR = $(ADJUNCT_PROTO)/usr/perl5/$(PERL_VERSION)
+PERLLIBDIR = $(PERLDIR)/lib/$(PERL_ARCH)
+PERLINCDIR = $(PERLLIBDIR)/CORE
+
+PERLMOD = $(MODULE).pm
+PERLEXT = $(MACH)/$(MODULE).so
+
+ROOTPERLDIR = $(ROOT)/usr/perl5/$(PERL_VERSION)
+ROOTPERLLIBDIR = $(ROOTPERLDIR)/lib/$(PERL_ARCH)
+ROOTPERLMODDIR = $(ROOTPERLLIBDIR)/Sun/Solaris
+ROOTPERLEXTDIR = $(ROOTPERLLIBDIR)/auto/Sun/Solaris/$(MODULE)
+
+ROOTPERLMOD = $(ROOTPERLMODDIR)/$(MODULE).pm
+ROOTPERLEXT = $(ROOTPERLEXTDIR)/$(MODULE).so
diff --git a/usr/src/cmd/perl/Makefile.targ b/usr/src/cmd/perl/Makefile.targ
new file mode 100644
index 0000000000..b3d7dbf30f
--- /dev/null
+++ b/usr/src/cmd/perl/Makefile.targ
@@ -0,0 +1,43 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+# Link against libc as perl solaris specs
+$(PERLEXT):= LDLIBS += -lc
+
+# Allow for undefined symbols satisfied by perl
+$(PERLEXT):= ZDEFS =
+
+$(MACH):
+ $(INS.dir)
+
+$(PERLEXT): $(MACH)/$(MODULE).o
+ $(BUILD.SO) $(MACH)/$(MODULE).o
+
+$(MACH)/$(MODULE).o: $(MACH)/$(MODULE).c
+ $(COMPILE.c) $(C_PICFLAGS) -I$(PERLINCDIR) $< -o $@
+
+$(MACH)/$(MODULE).c: $(MACH) $(MODULE).xs
+ $(PERLDIR)/bin/xsubpp $(XSUBPPFLAGS) $(MODULE).xs >$@
+
+$(ROOTPERLMODDIR):
+ $(INS.dir)
+
+$(ROOTPERLMOD): $(ROOTPERLMODDIR) $(MODULE).pm
+ $(RM) $@; $(INS) -s -m $(FILEMODE) -f $^
+
+$(ROOTPERLEXTDIR):
+ $(INS.dir)
+
+$(ROOTPERLEXT): $(ROOTPERLEXTDIR) $(MACH)/$(MODULE).so
+ $(RM) $@; $(INS) -s -m $(FILEMODE) -f $^
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/BSM/Makefile b/usr/src/cmd/perl/contrib/Sun/Solaris/BSM/Makefile
new file mode 100644
index 0000000000..e8899113d1
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/BSM/Makefile
@@ -0,0 +1,29 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+MODULE = _BSMparse
+
+include $(SRC)/cmd/perl/Makefile.perl
+
+# Install module into arch independant directory
+ROOTPERLMODDIR = $(ROOTPERLDIR)/lib/Sun/Solaris/BSM
+
+include $(SRC)/cmd/perl/Makefile.targ
+
+all: $(PERLMOD)
+
+install: $(ROOTPERLMOD)
+
+clean clobber:
+ $(RM) -r $(MACH)
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/BSM/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/BSM/Makefile.PL
deleted file mode 100644
index cdd0d4d256..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/BSM/Makefile.PL
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License"). You may not use this file except in compliance
-# with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright (c) 2001 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#ident "%Z%%M% %I% %E% SMI"
-#
-
-use ExtUtils::MakeMaker;
-
-WriteMakefile(
- NAME => 'Sun::Solaris::BSM::_BSMparse',
- VERSION_FROM => '_BSMparse.pm',
- clean => {
- FILES => '_BSMparse.po'
- }
-);
-
-sub MY::postamble {
- '
-PO_OBJ = _BSMparse.po
-PO_SRC = _BSMparse.pm
-XGETTEXT = xgettext
-
-$(PO_OBJ): $(PO_SRC)
- $(XGETTEXT) -d $(PO_OBJ) $(PO_SRC)
-
-_msg: $(MSGDOMAIN) $(PO_OBJ)
- $(RM) $(MSGDOMAIN)/$(PO_OBJ)
- $(CP) $(PO_OBJ) $(MSGDOMAIN)
-
-$(MSGDOMAIN):
- $(INS.dir)
-
-';
-}
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Catalog.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Catalog.pm
deleted file mode 100644
index 2cb3e121da..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Catalog.pm
+++ /dev/null
@@ -1,349 +0,0 @@
-#
-# Copyright (c) 2002, 2008 Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Catalog.pm contains perl code for exacct catalog tag manipulation.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-
-package Sun::Solaris::Exacct::Catalog;
-
-our $VERSION = '1.3';
-use Carp;
-use XSLoader;
-XSLoader::load(__PACKAGE__, $VERSION);
-
-# %_Constants and @_Constants are set up by the XSUB bootstrap() function.
-our (@EXPORT_OK, %EXPORT_TAGS, @_Constants, %_Constants);
-@EXPORT_OK = @_Constants;
-%EXPORT_TAGS = (CONSTANTS => \@_Constants, ALL => \@EXPORT_OK);
-
-use base qw(Exporter);
-
-#
-# Class interface.
-#
-
-#
-# Register a foreign catalog. Arguments are as follows:
-# <catalog prefix> Used to uniquely identify the catalog being defined.
-# Must be composed only of uppercase characters.
-# <catalog id> Numeric identifier for the catalog.
-# Must be between 1 and 15.
-# <export flag> If true, the constants defined by the register sub will
-# be exported into the caller's namespace.
-# <id list> List of (name, value) pairs. These are prefixed with
-# "<catalog_prefix>_" and are used for defining constants
-# that can be used as catalog id field values.
-# An example:
-# Sun::Solaris::Exacct::Catalog->register("FROB", 0x01, 1,
-# FLUB => 0x00000001, WURB => 0x00000010)
-# results in the definition of the following constants:
-# EXC_FROB 0x01 << 24
-# FROB_FLUB 0x00000001
-# FROB_WURB 0x00000010
-#
-# Returns 'undef' on success, otherwise an error message.
-#
-sub register
-{
- my ($class, $cat_pfx, $cat_id, $export, %idlist) = @_;
-
- # Sanity checks.
- my $cat = 'EXC_'. $cat_pfx;
- return ("Invalid catalog prefix \"$cat_pfx\"")
- if ($cat_pfx !~ /^[A-Z][A-Z0-9]*$/ || $cat_pfx =~ /^EX[TCD]$/);
- return ("Duplicate catalog prefix")
- if (exists($_Constants{catlg}{name}{$cat}));
- my $id = $cat_id << 24;
- return ("Invalid catalog id \"$cat_id\"")
- if ($cat_id < 1 || $cat_id > 0xf); # 4-bit field
-
- # Validate the (name, value) pairs.
- my %seen;
- while (my ($n, $v) = each(%idlist)) {
- return ("Invalid id name \"$n\"")
- if ($n !~ /^[A-Z][A-Z0-9_]*[A-Z0-9]$/);
- return ("Invalid id value \"$v\"")
- if ($v < 0 || $v > 0xffffff); # 24-bit field
- return ("Redefinition of id value \"$v\"")
- if ($seen{$v}++);
- }
- undef(%seen);
-
- # Initialise new lookup data members
- $_Constants{catlg}{name}{$cat} = $id;
- $_Constants{catlg}{value}{$id} = $cat;
- my $id_by_name = $_Constants{id}{name}{$cat_pfx}{name} = {};
- my $id_by_val = $_Constants{id}{name}{$cat_pfx}{value} = {};
- $_Constants{id}{value}{$id} = $_Constants{id}{name}{$cat_pfx};
-
- # Put the passed (name, value) pairs into the appropriate hashes.
- my @export_ok = ($cat);
- while (my ($n, $v) = each(%idlist)) {
- my $pn = "${cat_pfx}_${n}";
- $id_by_name->{$pn} = $v;
- $id_by_val->{$v} = $pn;
- push(@export_ok, $pn);
- }
-
- # Export the new symbols into the caller's namespace if required.
- if ($export) {
- our (%EXPORT, @EXPORT_OK);
- @EXPORT{@export_ok} = (1) x @export_ok;
- push(@EXPORT_OK, @export_ok);
- __PACKAGE__->export_to_level(1, undef, @export_ok);
- }
-}
-
-#
-# Create a new Catalog object. Arguments are either an integer, an existing
-# Catalog object or a (type, catalog, id) triplet.
-#
-sub new
-{
- my ($class, @vals) = @_;
- my $value;
-
- # A single value must be a full catalog tag
- if (@vals == 1) {
- $value = _catalog_value($vals[0]);
-
- # A list of 3 values is (type, catalog, id)
- } elsif (@vals == 3) {
- my ($t, $c, $d) = @vals;
- my ($which);
-
- $which = _is_iv($t) ? 'value' : 'name';
- croak("Invalid data type \"$t\"")
- if (! exists($_Constants{type}{$which}{$t}));
- $t = $_Constants{type}{name}{$t} if ($which eq 'name');
-
- $which = _is_iv($c) ? 'value' : 'name';
- croak("Invalid catalog \"$c\"")
- if (! exists($_Constants{catlg}{$which}{$c}));
- $c = $_Constants{catlg}{name}{$c} if ($which eq 'name');
-
- $which = _is_iv($d) ? 'value' : 'name';
- croak("Invalid data id \"$d\"")
- if (! exists($_Constants{id}{value}{$c}{$which}{$d}));
- $d = $_Constants{id}{value}{$c}{name}{$d} if ($which eq 'name');
-
- $value = $t | $c | $d;
-
- # Only 1 or 3 arguments are valid
- } else {
- croak("Invalid number of arguments");
- }
-
- # Create a readonly catalog object.
- return (_new_catalog($value));
-}
-
-#
-# Object interface.
-#
-
-#
-# Get the value of a Catalog object. In a scalar context it returns the 32-bit
-# integer representing the tag. In a list context it returns a
-# (type, catalog, id) triplet. Each of these is a dual-typed SV that in a
-# string context returns a representation of the appropriate constant, e.g.
-# 'EXD_HOSTNAME', and in a numeric context returns the integer value of the
-# associated constant.
-#
-sub value
-{
- my ($self) = @_;
-
- # In an array context return the split out catalog components
- if (wantarray()) {
- my $t = $$self & &EXT_TYPE_MASK;
- $t = _double_type($t, exists($_Constants{type}{value}{$t})
- ? $_Constants{type}{value}{$t}
- : 'UNKNOWN_TYPE');
-
- my $c = $$self & &EXC_CATALOG_MASK;
- $c = _double_type($c,
- exists($_Constants{catlg}{value}{$c})
- ? $_Constants{catlg}{value}{$c}
- : 'UNKNOWN_CATALOG');
-
- my $d = $$self & &EXD_DATA_MASK;
- $d = _double_type($d,
- exists($_Constants{id}{value}{int($c)}{value}{$d})
- ? $_Constants{id}{value}{int($c)}{value}{$d}
- : 'UNKNOWN_ID');
-
- return($t, $c, $d);
-
- # In a scalar context return the whole thing
- } else {
- return($$self);
- }
-}
-
-#
-# Fetch the type field of the Catalog object. The return value is a dual-typed
-# SV that in a string context returns a representation of the appropriate
-# constant, e.g. 'EXT_STRING', and in a numeric context returns the integer
-# value of the associated constant.
-#
-sub type
-{
- my ($self) = @_;
-
- # Extract the type field and look up the string representation.
- my $t = $$self & &EXT_TYPE_MASK;
- $t = _double_type($t, exists($_Constants{type}{value}{$t})
- ? $_Constants{type}{value}{$t} : 'UNKNOWN_TYPE');
- return ($t);
-}
-
-#
-# Fetch the catalog field of the Catalog object. (see type()).
-#
-sub catalog
-{
- my ($self, $val) = @_;
-
- # Extract the catalog field and look up the string representation.
- my $c = $$self & &EXC_CATALOG_MASK;
- $c = _double_type($c, exists($_Constants{catlg}{value}{$c})
- ? $_Constants{catlg}{value}{$c} : 'UNKNOWN_CATALOG');
- return ($c);
-}
-
-#
-# Fetch the id field of the Catalog object. (see type()).
-#
-sub id
-{
- my ($self, $val) = @_;
-
- #
- # Extract the catalog and id field and look up the
- # string representation of the id field.
- #
- my $c = $$self & &EXC_CATALOG_MASK;
- my $d = $$self & &EXD_DATA_MASK;
- $d = _double_type($d, exists($_Constants{id}{value}{$c}{value}{$d})
- ? $_Constants{id}{value}{$c}{value}{$d} : 'UNKNOWN_ID');
- return ($d);
-}
-
-#
-# Return a string representation of the type field.
-#
-sub type_str
-{
- my ($self) = @_;
-
- # Lookup the type and fabricate a string from it.
- my $t = $$self & &EXT_TYPE_MASK;
- if (exists($_Constants{type}{value}{$t})) {
- $t = $_Constants{type}{value}{$t};
- $t =~ s/^EXT_//;
- $t =~ s/_/ /g;
- return(lc($t));
- } else {
- return('UNKNOWN TYPE');
- }
-}
-
-#
-# Return a string representation of the catalog field.
-#
-sub catalog_str
-{
- my ($self) = @_;
-
- # Lookup the catalog and fabricate a string from it.
- my $c = $$self & &EXC_CATALOG_MASK;
- if (exists($_Constants{catlg}{value}{$c})) {
- $c = $_Constants{catlg}{value}{$c};
- $c =~ s/^EXC_//;
- $c =~ s/_/ /g;
- return(lc($c));
- } else {
- return('UNKNOWN CATALOG');
- }
-}
-
-#
-# Return a string representation of the id field.
-#
-sub id_str
-{
- my ($self) = @_;
-
- # Lookup the id and fabricate a string from it.
- my $c = $$self & &EXC_CATALOG_MASK;
- my $d = $$self & &EXD_DATA_MASK;
- if (exists($_Constants{id}{value}{$c}) &&
- exists($_Constants{id}{value}{$c}{value}{$d})) {
- $d = $_Constants{id}{value}{$c}{value}{$d};
- $d =~ s/^[A-Z]+_//;
- $d =~ s/_/ /g;
- return(lc($d));
- } else {
- return('UNKNOWN ID');
- }
-}
-
-#
-# AUTOLOAD for constant definitions. Values are looked up in the %_Constants
-# hash, and then used to create an anonymous sub that will return the correct
-# value. This is then placed into the appropriate symbol table so that future
-# calls will bypass the AUTOLOAD and call the sub directly.
-#
-sub AUTOLOAD
-{
- # Extract the name of the constant we are looking for, and its prefix.
- our $AUTOLOAD;
- my $const = $AUTOLOAD;
- $const =~ s/.*:://;
- my ($prefix) = $const =~ /^([^_]+)/;
-
- # Try to find the appropriate prefix hash.
- my $href;
- if ($prefix eq 'EXT') {
- $href = $_Constants{type}{name};
- } elsif ($prefix eq 'EXC') {
- $href = $_Constants{catlg}{name};
- } elsif (exists($_Constants{id}{name}{$prefix})) {
- $href = $_Constants{id}{name}{$prefix}{name};
- }
-
- # Look first in the prefix hash, otherwise try the 'other' hash.
- my $val = undef;
- if (exists($href->{$const})) {
- $val = $href->{$const};
- } elsif (exists($_Constants{other}{name}{$const})) {
- $val = $_Constants{other}{name}{$const};
- }
-
- #
- # Generate the const sub, place in the appropriate glob
- # and finally goto it to return the value.
- #
- croak("Undefined constant \"$const\"") if (! defined($val));
- my $sub = sub { return $val; };
- no strict qw(refs);
- *{$AUTOLOAD} = $sub;
- goto &$sub;
-}
-
-#
-# To quieten AUTOLOAD - if this isn't defined AUTLOAD will be called
-# unnecessarily during object destruction.
-#
-sub DESTROY
-{
-}
-
-1;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Catalog.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Catalog.xs
deleted file mode 100644
index 6d97405b2c..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Catalog.xs
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*
- * Catalog.xs contains XS code for exacct catalog tag manipulation. This
- * consists of code to create the @_Constants array and %_Constants hash used
- * for defining constants on the fly via AUTOLOAD, and utility functions for
- * creaing double-typed SVs.
- */
-
-#include "../exacct_common.xh"
-
-/* Pull in the file generated by extract_defines. */
-#include "CatalogDefs.xi"
-
-/*
- * This function populates the %_Constants hash and @_Constants array based on
- * the values extracted from the exacct header files by the extract_defines
- * script and written to the .xi file which is included above. It also creates
- * a const sub for each constant that returns the associcated value. It should
- * be called from the BOOT section of this module. The structure of the
- * %_Constants hash is given below - this is used to map between the symbolic
- * and numeric values of the various EX[CTD] constants. The register() method
- * extends the %_Constants hash with values for the foreign catalog, so that it
- * can be handled in exactly the same way as the built-in catalog.
- *
- * $Constants{catlg}{name}{EXC_DEFAULT} => 0
- * ...
- * {value}{0} => 'EXC_DEFAULT'
- * ...
- * *A*
- * {id}{name}{EXD}{name}{EXD_CREATOR} => 3
- * ...
- * {value}{3} => 'EXD_CREATOR'
- * ...
- * {value}{0} => *A*
- * ...
- * {other}{name}{EXC_CATALOG_MASK} => 251658240
- * ...
- * {value}{251658240} => 'EXC_CATALOG_MASK'
- * ...
- * {type}{name}{EXT_DOUBLE} => 1342177280
- * ...
- * {value}{1342177280} => 'EXT_DOUBLE'
- * ...
- */
-#define CONST_NAME "::Catalog::_Constants"
-static void
-define_catalog_constants()
-{
- HV *const_hash, *hv1, *hv2, *hv3;
- AV *const_ary;
- HV *type_by_name, *type_by_value;
- HV *catlg_by_name, *catlg_by_value;
- HV *id_by_name, *id_by_value;
- HV *other_by_name, *other_by_value;
- constval_t *cvp;
-
- /* Create the two new perl variables. */
- const_hash = perl_get_hv(PKGBASE CONST_NAME, TRUE);
- const_ary = perl_get_av(PKGBASE CONST_NAME, TRUE);
-
- /* Create the 'type' subhash. */
- type_by_name = newHV();
- type_by_value = newHV();
- hv1 = newHV();
- hv_store(const_hash, "type", 4, newRV_noinc((SV*)hv1), 0);
- hv_store(hv1, "name", 4, newRV_noinc((SV*)type_by_name), 0);
- hv_store(hv1, "value", 5, newRV_noinc((SV*)type_by_value), 0);
-
- /* Create the 'catlg' subhash. */
- catlg_by_name = newHV();
- catlg_by_value = newHV();
- hv1 = newHV();
- hv_store(const_hash, "catlg", 5, newRV_noinc((SV*)hv1), 0);
- hv_store(hv1, "name", 4, newRV_noinc((SV*)catlg_by_name), 0);
- hv_store(hv1, "value", 5, newRV_noinc((SV*)catlg_by_value), 0);
-
- /*
- * The 'id' subhash has an extra level of name/value subhashes,
- * where the upper level is indexed by the catalog prefix (EXD for
- * the default catalog). The lower two levels are actually the same
- * hashes referenced by two parents, and hold the catalog id numeric
- * values and corresponding string values.
- */
- id_by_name = newHV();
- id_by_value = newHV();
- hv1 = newHV();
- hv_store(const_hash, "id", 2, newRV_noinc((SV*)hv1), 0);
- hv2 = newHV();
- hv_store(hv1, "name", 4, newRV_noinc((SV*)hv2), 0);
- hv3 = newHV();
- hv_store(hv2, "EXD", 3, newRV_noinc((SV*)hv3), 0);
- hv_store(hv3, "name", 4, newRV_noinc((SV*)id_by_name), 0);
- hv_store(hv3, "value", 5, newRV_noinc((SV*)id_by_value), 0);
- IdValueHash = newHV();
- hv_store(hv1, "value", 5, newRV_noinc((SV*)IdValueHash), 0);
- hv_store_ent(IdValueHash, newSVuv(EXC_DEFAULT), newRV_inc((SV*)hv3), 0);
-
- /* Create the 'other' subhash, for non-catalog #defines. */
- other_by_name = newHV();
- other_by_value = newHV();
- hv1 = newHV();
- hv_store(const_hash, "other", 5, newRV_noinc((SV*)hv1), 0);
- hv_store(hv1, "name", 4, newRV_noinc((SV*)other_by_name), 0);
- hv_store(hv1, "value", 5, newRV_noinc((SV*)other_by_value), 0);
-
- /*
- * Populate %_Constants and %_Constants from the contents of the
- * generated constants array.
- */
- for (cvp = constants; cvp->name != NULL; cvp++) {
- HV *name_hv, *value_hv;
- SV *name, *value;
-
- /* Create the name/value SVs, save the name in @_Constants. */
- name = newSVpvn((char *)cvp->name, cvp->len);
- value = newSVuv(cvp->value);
- av_push(const_ary, SvREFCNT_inc(name));
-
- /*
- * Decide which hash the name/value belong in,
- * based on consttype .
- */
- switch (cvp->consttype) {
- case type:
- name_hv = type_by_name;
- value_hv = type_by_value;
- break;
- case catlg:
- name_hv = catlg_by_name;
- /* Special case for duplicated-value EXC_NONE tag. */
- if (cvp->value == EXC_NONE &&
- strcmp(cvp->name, "EXC_NONE") == 0) {
- value_hv = NULL;
- } else {
- value_hv = catlg_by_value;
- }
- break;
- case id:
- name_hv = id_by_name;
- value_hv = id_by_value;
- break;
- case other:
- name_hv = other_by_name;
- value_hv = other_by_value;
- break;
- }
-
- /* Store in the appropriate name & value hashes. */
- if (name_hv) {
- hv_store_ent(name_hv, name, value, 0);
- }
- if (value_hv) {
- hv_store_ent(value_hv, value, name, 0);
- }
-
- /* Free the name and/or value if they weren't used. */
- if (! name_hv) {
- SvREFCNT_dec(value);
- }
- if (! value_hv) {
- SvREFCNT_dec(name);
- }
- }
-}
-#undef CONST_NAME
-
-/*
- * The XS code exported to perl is below here. Note that the XS preprocessor
- * has its own commenting syntax, so all comments from this point on are in
- * that form.
- *
- * All the following are private functions.
- */
-
-MODULE = Sun::Solaris::Exacct::Catalog PACKAGE = Sun::Solaris::Exacct::Catalog
-PROTOTYPES: ENABLE
-
- #
- # Define the stash pointers if required and create and populate @_Constants.
- #
-BOOT:
- init_stashes();
- define_catalog_constants();
-
- #
- # Create and return a double-typed SV.
- #
-SV*
-_double_type(i, c)
- unsigned int i;
- char *c;
-CODE:
- RETVAL = newSVuv(i);
- sv_setpv(RETVAL, c);
- SvIOK_on(RETVAL);
-OUTPUT:
- RETVAL
-
- #
- # Return true if the SV contains an IV.
- #
-int
-_is_iv(sv)
- SV *sv;
-CODE:
- RETVAL = SvIOK(sv);
-OUTPUT:
- RETVAL
-
- #
- # Return true if the SV contains a PV.
- #
-int
-_is_pv(sv)
- SV *sv;
-CODE:
- RETVAL = SvPOK(sv);
-OUTPUT:
- RETVAL
-
- #
- # Return a blessed reference to a readonly copy of the passed IV
- #
-SV*
-_new_catalog(sv)
- SV *sv;
-CODE:
- RETVAL = new_catalog(SvUV(sv));
-OUTPUT:
- RETVAL
-
- #
- # Return the integer catalog value from the passed object or SV.
- #
-int
-_catalog_value(sv)
- SV *sv;
-CODE:
- RETVAL = catalog_value(sv);
-OUTPUT:
- RETVAL
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Makefile.PL
deleted file mode 100644
index c46f92c714..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Catalog/Makefile.PL
+++ /dev/null
@@ -1,140 +0,0 @@
-#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Makefile.PL for ::Exacct::Catalog
-#
-
-# See ../Makefile.PL for an explanation of the linker flag manipulations.
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-#
-# Some later versions of ExtUtils::MakeMaker are broken,
-# and complain about function redefinitions in the child Makefile.PLs.
-# Stop the warnings.
-#
-no warnings qw(redefine);
-
-our (@defines, @man3pods);
-
-#
-# MakeMaker overrides.
-#
-package MY;
-no warnings qw(once);
-
-#
-# Overrides that are common to both the ON and non-ON build environments.
-#
-
-#
-# Suppress the setting of LD_RUN_PATH, as it isn't necessary.
-#
-
-sub const_loadlibs
-{
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
-}
-
-sub dynamic_lib
-{
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
-}
-
-#
-# ON-specific overrides.
-#
-if (exists($ENV{CODEMGR_WS}) && exists($ENV{ENVCPPFLAGS1})) {
- #
- # Override postamble and replace it with one that explicitly records
- # the dependency between Catalog.c (generated from Catalog.xs by xsubpp)
- # and the ObjectDefs.xi file (generated from sys/exacct_catalog.h by
- # extract_defines). Note we have to mimic the -I processing done by cc
- # to find the correct version of the file, as we want the copy from the
- # proto area rather than /usr/include. This ensures that the constant
- # values exported by the perl module stay up-to date with the
- # corresponding #defines.
- #
- *postamble = sub {
- return <<'EOF';
-EXACCT_H:sh= \
- for dir in $ENVCPPFLAGS1 $ENVCPPFLAGS2 $ENVCPPFLAGS3 $ENVCPPFLAGS4 \
- /usr/include; do \
- dir=`expr $dir : '^-I\(.*\)$' \| $dir`; \
- file="$dir/sys/exacct_catalog.h"; \
- test -f $file && echo $file && break; \
- done;
-
-Catalog.c: CatalogDefs.xi
-
-CatalogDefs.xi: ../extract_defines $(EXACCT_H)
- $(PERL) ../extract_defines Catalog $@ $(EXACCT_H)
-EOF
- };
-
- # Enable/disable debugging as required.
- @main::defines = ( DEFINE => '-DEXACCT_DEBUG' )
- if (! exists($ENV{RELEASE_BUILD}));
-
- # Don't install POD pages for ON.
- @main::man3pods = ( MAN3PODS => {} );
-
-#
-# Non-ON overrides.
-#
-} else {
- #
- # Override postamble and replace it with one that explicitly records
- # the dependency between Catalog.c (generated from Catalog.xs by xsubpp)
- # and the ObjectDefs.xi file (generated from
- # /usr/include/sys/exacct_catalog.h by extract_defines). This ensures
- # that the constant values exported by the perl module stay up-to date
- # with the corresponding #defines.
- #
- *postamble = sub {
- return <<'EOF';
-EXACCT_H = /usr/include/sys/exacct_catalog.h
-
-Catalog.c: CatalogDefs.xi
-
-CatalogDefs.xi: ../extract_defines $(EXACCT_H)
- $(PERL) ../extract_defines Catalog $@ $(EXACCT_H)
-EOF
- };
-
- # Install the POD documentation for non-ON builds.
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Exacct';
- @main::man3pods = (
- MAN3PODS => { '../pod/Catalog.pod' =>
- $man3pfx . '::Catalog.$(MAN3EXT)' }
- );
-}
-
-#
-# Having set everything up, write the Makefile.
-#
-package main;
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Exacct::Catalog',
- VERSION_FROM => 'Catalog.pm',
- H => [ '../exacct_common.xh' ],
- TYPEMAPS => [ '../typemap' ],
- @defines,
- @man3pods,
- dynamic_lib => { OTHERLDFLAGS =>
- '-h $(DLBASE).$(DLEXT) ' .
- '-R\$$ORIGIN/.. $(INST_ARCHAUTODIR)/../Exacct.so'
- },
- realclean => { FILES => 'CatalogDefs.xi' },
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Changes b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Changes
deleted file mode 100644
index ed4fa7304a..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Changes
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-Version 1.4
-Fixed bug when building in ON environment - was using incorrect header files.
-
-Version 1.3
-Initial Public Source release.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Exacct.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Exacct.pm
deleted file mode 100644
index e778c6dfae..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Exacct.pm
+++ /dev/null
@@ -1,121 +0,0 @@
-#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Exacct.pm contains wrappers for the exacct error functions and syscalls,
-# and some 'shorthand' convenience functions.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-
-package Sun::Solaris::Exacct;
-
-our $VERSION = '1.5';
-use XSLoader;
-XSLoader::load(__PACKAGE__, $VERSION);
-
-# @_Constants is set up by the XSUB bootstrap() function.
-our (@EXPORT_OK, %EXPORT_TAGS, @_Constants);
-my @syscalls = qw(getacct putacct wracct);
-my @libcalls = qw(ea_error ea_error_str);
-my @shorthand = qw(ea_register_catalog ea_new_catalog ea_new_file ea_new_item
- ea_new_group ea_dump_object);
-@EXPORT_OK = (@_Constants, @syscalls, @libcalls, @shorthand);
-%EXPORT_TAGS = (CONSTANTS => \@_Constants, SYSCALLS => \@syscalls,
- LIBCALLS => \@libcalls, SHORTHAND => \@shorthand, ALL => \@EXPORT_OK);
-
-use base qw(Exporter);
-
-#
-# Extend the default Exporter::import to do optional inclusion of all the
-# lower-level Exacct modules. Any export tag prefixed with 'EXACCT_' is
-# interpreted as a request to import that tag from all the Exacct modules.
-#
-sub import
-{
- my (@my_tags, %sub_tags);
- shift(@_);
- foreach my $tag (@_) {
- # Note: Modifies @_
- if ($tag =~ /^:EXACCT_(.*)$/) {
- my $new_tag = ":$1";
- push(@my_tags, $new_tag);
- $sub_tags{$new_tag} = 1;
- } else {
- push(@my_tags, $tag);
- }
- }
-
- # Export the taglist with all "EXACCT_" prefixes removed.
- __PACKAGE__->export_to_level(1, undef, @my_tags);
-
- # Do sub-module imports if required.
- if (@my_tags = grep(exists($sub_tags{$_}), qw(:ALL :CONSTANTS))) {
-
- # ::Catalog
- require Sun::Solaris::Exacct::Catalog;
- Sun::Solaris::Exacct::Catalog->export_to_level(1, undef,
- @my_tags);
-
- # ::File and Fcntl
- require Sun::Solaris::Exacct::File;
- Sun::Solaris::Exacct::File->export_to_level(1, undef,
- @my_tags);
- require Fcntl;
- Fcntl->export_to_level(1, undef, ':DEFAULT');
-
- # ::Object
- require Sun::Solaris::Exacct::Object;
- Sun::Solaris::Exacct::Object->export_to_level(1, undef,
- @my_tags);
- }
-}
-
-#
-# Convenience functions - shorthand for fully qualified method names. Note that
-# goto() is used to call the methods so that any errors will appear to come
-# from the correct place. Because goto() does not understand method call syntax
-# it is necessary to fake up the class a parameter by unshifting the appropriate
-# class name onto the argument lists.
-#
-
-sub ea_register_catalog
-{
- unshift(@_, 'Sun::Solaris::Exacct::Catalog');
- goto(&Sun::Solaris::Exacct::Catalog::register);
-}
-
-sub ea_new_catalog
-{
- unshift(@_, 'Sun::Solaris::Exacct::Catalog');
- goto(&Sun::Solaris::Exacct::Catalog::new);
-}
-
-sub ea_new_file
-{
- unshift(@_, 'Sun::Solaris::Exacct::File');
- goto(&Sun::Solaris::Exacct::File::new);
-}
-
-sub ea_new_item
-{
- unshift(@_, 'Sun::Solaris::Exacct::Item');
- goto(&Sun::Solaris::Exacct::Object::Item::new);
-}
-
-sub ea_new_group
-{
- unshift(@_, 'Sun::Solaris::Exacct::Group');
- goto(&Sun::Solaris::Exacct::Object::Group::new);
-}
-
-sub ea_dump_object
-{
- unshift(@_, 'Sun::Solaris::Exacct::Object');
- goto(&Sun::Solaris::Exacct::Object::dump);
-}
-
-1;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Exacct.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Exacct.xs
deleted file mode 100644
index 459138cd10..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Exacct.xs
+++ /dev/null
@@ -1,606 +0,0 @@
-/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
- *
- * Exacct.xs contains XS code for creating various exacct-related constants,
- * and for providing wrappers around exacct error handling and
- * accounting-related system calls. It also contains commonly-used utility
- * code shared by its sub-modules.
- */
-
-#include <string.h>
-#include "exacct_common.xh"
-
-/*
- * Pull in the file generated by extract_defines. This contains a table
- * of numeric constants and their string equivalents which have been extracted
- * from the various exacct header files by the extract_defines script.
- */
-#include "ExacctDefs.xi"
-
-/*
- * Object stash pointers - caching these speeds up the creation and
- * typechecking of perl objects by removing the need to do a hash lookup.
- * The peculiar variable names are so that typemaps can generate the correct
- * package name using the typemap '$Package' variable as the root of the name.
- */
-HV *Sun_Solaris_Exacct_Catalog_stash;
-HV *Sun_Solaris_Exacct_File_stash;
-HV *Sun_Solaris_Exacct_Object_Item_stash;
-HV *Sun_Solaris_Exacct_Object_Group_stash;
-HV *Sun_Solaris_Exacct_Object__Array_stash;
-
-/*
- * Pointer to part of the hash tree built by define_catalog_constants in
- * Catalog.xs. This is used by catalog_id_str() when mapping from a catalog
- * to an id string.
- */
-HV *IdValueHash = NULL;
-
-/*
- * Last buffer size used for packing and unpacking exacct objects.
- */
-static int last_bufsz = 0;
-
-/*
- * Common utility code. This is placed here instead of in the sub-modules to
- * reduce the number of cross-module linker dependencies that are required,
- * although most of the code more properly belongs in the sub-modules.
- */
-
-/*
- * This function populates the various stash pointers used by the ::Exacct
- * module. It is called from each of the module BOOT sections to ensure the
- * stash pointers are initialised on startup.
- */
-void
-init_stashes(void)
-{
- if (Sun_Solaris_Exacct_Catalog_stash == NULL) {
- Sun_Solaris_Exacct_Catalog_stash =
- gv_stashpv(PKGBASE "::Catalog", TRUE);
- Sun_Solaris_Exacct_File_stash =
- gv_stashpv(PKGBASE "::File", TRUE);
- Sun_Solaris_Exacct_Object_Item_stash =
- gv_stashpv(PKGBASE "::Object::Item", TRUE);
- Sun_Solaris_Exacct_Object_Group_stash =
- gv_stashpv(PKGBASE "::Object::Group", TRUE);
- Sun_Solaris_Exacct_Object__Array_stash =
- gv_stashpv(PKGBASE "::Object::_Array", TRUE);
- }
-}
-
-/*
- * This function populates the @_Constants array in the specified package
- * based on the values extracted from the exacct header files by the
- * extract_defines script and written to the .xi file which is included above.
- * It also creates a const sub for each constant that returns the associcated
- * value. It should be called from the BOOT sections of modules that export
- * constants.
- */
-#define CONST_NAME "::_Constants"
-void
-define_constants(const char *pkg, constval_t *cvp)
-{
- HV *stash;
- char *name;
- AV *constants;
-
- /* Create the new perl @_Constants variable. */
- stash = gv_stashpv(pkg, TRUE);
- name = New(0, name, strlen(pkg) + sizeof (CONST_NAME), char);
- PERL_ASSERT(name != NULL);
- strcpy(name, pkg);
- strcat(name, CONST_NAME);
- constants = perl_get_av(name, TRUE);
- Safefree(name);
-
- /* Populate @_Constants from the contents of the generated array. */
- for (; cvp->name != NULL; cvp++) {
- newCONSTSUB(stash, (char *)cvp->name, newSVuv(cvp->value));
- av_push(constants, newSVpvn((char *)cvp->name, cvp->len));
- }
-}
-#undef CONST_NAME
-
-/*
- * Return a new Catalog object - only accepts an integer catalog value.
- * Use this purely for speed when creating Catalog objects from other XS code.
- * All other Catalog object creation should be done with the perl new() method.
- */
-SV*
-new_catalog(uint32_t cat)
-{
- SV *iv, *ref;
-
- iv = newSVuv(cat);
- ref = newRV_noinc(iv);
- sv_bless(ref, Sun_Solaris_Exacct_Catalog_stash);
- SvREADONLY_on(iv);
- return (ref);
-}
-
-/*
- * Return the integer catalog value from the passed Catalog or IV.
- * Calls croak() if the SV is not of the correct type.
- */
-ea_catalog_t
-catalog_value(SV *catalog)
-{
- SV *sv;
-
- /* If a reference, dereference and check it is a Catalog. */
- if (SvROK(catalog)) {
- sv = SvRV(catalog);
- if (SvIOK(sv) &&
- SvSTASH(sv) == Sun_Solaris_Exacct_Catalog_stash) {
- return (SvIV(sv));
- } else {
- croak("Parameter is not a Catalog or integer");
- }
-
- /* For a plain IV, just return the value. */
- } else if (SvIOK(catalog)) {
- return (SvIV(catalog));
-
- /* Anything else is an error */
- } else {
- croak("Parameter is not a Catalog or integer");
- }
-}
-
-/*
- * Return the string value of the id subfield of an ea_catalog_t.
- */
-char *
-catalog_id_str(ea_catalog_t catalog)
-{
- static ea_catalog_t cat_val = ~0U;
- static HV *cat_hash = NULL;
- ea_catalog_t cat;
- ea_catalog_t id;
- char key[12]; /* Room for dec(2^32) digits. */
- SV **svp;
-
- cat = catalog & EXC_CATALOG_MASK;
- id = catalog & EXD_DATA_MASK;
-
- /* Fetch the correct id subhash if the catalog has changed. */
- if (cat_val != cat) {
- snprintf(key, sizeof (key), "%d", cat);
- PERL_ASSERT(IdValueHash != NULL);
- svp = hv_fetch(IdValueHash, key, strlen(key), FALSE);
- if (svp == NULL) {
- cat_val = ~0U;
- cat_hash = NULL;
- } else {
- HV *hv;
-
- cat_val = cat;
- hv = (HV *)SvRV(*svp);
- PERL_ASSERT(hv != NULL);
- svp = hv_fetch(hv, "value", 5, FALSE);
- PERL_ASSERT(svp != NULL);
- cat_hash = (HV *)SvRV(*svp);
- PERL_ASSERT(cat_hash != NULL);
- }
- }
-
- /* If we couldn't find the hash, it is a catalog we don't know about. */
- if (cat_hash == NULL) {
- return ("UNKNOWN_ID");
- }
-
- /* Fetch the value from the selected catalog and return it. */
- snprintf(key, sizeof (key), "%d", id);
- svp = hv_fetch(cat_hash, key, strlen(key), TRUE);
- if (svp == NULL) {
- return ("UNKNOWN_ID");
- }
- return (SvPVX(*svp));
-}
-
-/*
- * Create a new ::Object by wrapping an ea_object_t in a perl SV. This is used
- * to wrap exacct records that have been read from a file, or packed records
- * that have been inflated.
- */
-SV *
-new_xs_ea_object(ea_object_t *ea_obj)
-{
- xs_ea_object_t *xs_obj;
- SV *sv_obj;
-
- /* Allocate space - use perl allocator. */
- New(0, xs_obj, 1, xs_ea_object_t);
- PERL_ASSERT(xs_obj != NULL);
- xs_obj->ea_obj = ea_obj;
- xs_obj->perl_obj = NULL;
- sv_obj = NEWSV(0, 0);
- PERL_ASSERT(sv_obj != NULL);
-
- /*
- * Initialise according to the type of the passed exacct object,
- * and bless the perl object into the appropriate class.
- */
- if (ea_obj->eo_type == EO_ITEM) {
- if ((ea_obj->eo_catalog & EXT_TYPE_MASK) == EXT_EXACCT_OBJECT) {
- INIT_EMBED_ITEM_FLAGS(xs_obj);
- } else {
- INIT_PLAIN_ITEM_FLAGS(xs_obj);
- }
- sv_setiv(newSVrv(sv_obj, NULL), PTR2IV(xs_obj));
- sv_bless(sv_obj, Sun_Solaris_Exacct_Object_Item_stash);
- } else {
- INIT_GROUP_FLAGS(xs_obj);
- sv_setiv(newSVrv(sv_obj, NULL), PTR2IV(xs_obj));
- sv_bless(sv_obj, Sun_Solaris_Exacct_Object_Group_stash);
- }
-
- /*
- * We are passing back a pointer masquerading as a perl IV,
- * so make sure it can't be modified.
- */
- SvREADONLY_on(SvRV(sv_obj));
- return (sv_obj);
-}
-
-/*
- * Convert the perl form of an ::Object into the corresponding exacct form.
- * This is used prior to writing an ::Object to a file, or passing it to
- * putacct. This is only required for embedded items and groups - for normal
- * items it is a no-op.
- */
-ea_object_t *
-deflate_xs_ea_object(SV *sv)
-{
- xs_ea_object_t *xs_obj;
- ea_object_t *ea_obj;
-
- /* Get the source xs_ea_object_t. */
- PERL_ASSERT(sv != NULL);
- sv = SvRV(sv);
- PERL_ASSERT(sv != NULL);
- xs_obj = INT2PTR(xs_ea_object_t *, SvIV(sv));
- PERL_ASSERT(xs_obj != NULL);
- ea_obj = xs_obj->ea_obj;
- PERL_ASSERT(ea_obj != NULL);
-
- /* Break any list this object is a part of. */
- ea_obj->eo_next = NULL;
-
- /* Deal with Items containing embedded Objects. */
- if (IS_EMBED_ITEM(xs_obj)) {
- xs_ea_object_t *child_xs_obj;
- SV *perl_obj;
- size_t bufsz;
-
- /* Get the underlying perl object an deflate that in turn. */
- perl_obj = xs_obj->perl_obj;
- PERL_ASSERT(perl_obj != NULL);
- deflate_xs_ea_object(perl_obj);
- perl_obj = SvRV(perl_obj);
- PERL_ASSERT(perl_obj != NULL);
- child_xs_obj = INT2PTR(xs_ea_object_t *, SvIV(perl_obj));
- PERL_ASSERT(child_xs_obj->ea_obj != NULL);
-
- /* Free any existing object contents. */
- if (ea_obj->eo_item.ei_object != NULL) {
- ea_free(ea_obj->eo_item.ei_object,
- ea_obj->eo_item.ei_size);
- ea_obj->eo_item.ei_object = NULL;
- ea_obj->eo_item.ei_size = 0;
- }
-
- /* Pack the object. */
- while (1) {
- /* Use the last buffer size as a best guess. */
- if (last_bufsz != 0) {
- ea_obj->eo_item.ei_object =
- ea_alloc(last_bufsz);
- PERL_ASSERT(ea_obj->eo_item.ei_object != NULL);
- } else {
- ea_obj->eo_item.ei_object = NULL;
- }
-
- /*
- * Pack the object. If the buffer is too small,
- * we will go around again with the correct size.
- * If unsucessful, we will bail.
- */
- if ((bufsz = ea_pack_object(child_xs_obj->ea_obj,
- ea_obj->eo_item.ei_object, last_bufsz)) == -1) {
- ea_free(ea_obj->eo_item.ei_object, last_bufsz);
- ea_obj->eo_item.ei_object = NULL;
- return (NULL);
- } else if (bufsz > last_bufsz) {
- ea_free(ea_obj->eo_item.ei_object, last_bufsz);
- last_bufsz = bufsz;
- continue;
- } else {
- ea_obj->eo_item.ei_size = bufsz;
- break;
- }
- }
-
- /* Deal with Groups. */
- } else if (IS_GROUP(xs_obj)) {
- MAGIC *mg;
- AV *av;
- int len, i;
- xs_ea_object_t *ary_xs;
- ea_object_t *ary_ea, *prev_ea;
-
- /* Find the AV underlying the tie. */
- mg = mg_find(SvRV(xs_obj->perl_obj), 'P');
- PERL_ASSERT(mg != NULL);
- av = (AV*)SvRV(mg->mg_obj);
- PERL_ASSERT(av != NULL);
-
- /*
- * Step along the AV, deflating each object and linking it into
- * the exacct group item list.
- */
- prev_ea = ary_ea = NULL;
- len = av_len(av) + 1;
- ea_obj->eo_group.eg_nobjs = 0;
- ea_obj->eo_group.eg_objs = NULL;
- for (i = 0; i < len; i++) {
- /*
- * Get the source xs_ea_object_t. If the current slot
- * in the array is empty, skip it.
- */
- SV **ary_svp;
- if ((ary_svp = av_fetch(av, i, FALSE)) == NULL) {
- continue;
- }
- PERL_ASSERT(*ary_svp != NULL);
-
- /* Deflate it. */
- ary_ea = deflate_xs_ea_object(*ary_svp);
- PERL_ASSERT(ary_ea != NULL);
-
- /* Link into the list. */
- ary_ea->eo_next = NULL;
- if (ea_obj->eo_group.eg_objs == NULL) {
- ea_obj->eo_group.eg_objs = ary_ea;
- }
- ea_obj->eo_group.eg_nobjs++;
- if (prev_ea != NULL) {
- prev_ea->eo_next = ary_ea;
- }
- prev_ea = ary_ea;
- }
- }
- return (ea_obj);
-}
-
-/*
- * Private Sun::Solaris::Exacct utility code.
- */
-
-/*
- * Return a string representation of an ea_error.
- */
-static const char *
-error_str(int eno)
-{
- switch (eno) {
- case EXR_OK:
- return ("no error");
- case EXR_SYSCALL_FAIL:
- return ("system call failed");
- case EXR_CORRUPT_FILE:
- return ("corrupt file");
- case EXR_EOF:
- return ("end of file");
- case EXR_NO_CREATOR:
- return ("no creator");
- case EXR_INVALID_BUF:
- return ("invalid buffer");
- case EXR_NOTSUPP:
- return ("not supported");
- case EXR_UNKN_VERSION:
- return ("unknown version");
- case EXR_INVALID_OBJ:
- return ("invalid object");
- default:
- return ("unknown error");
- }
-}
-
-/*
- * The XS code exported to perl is below here. Note that the XS preprocessor
- * has its own commenting syntax, so all comments from this point on are in
- * that form.
- */
-
-MODULE = Sun::Solaris::Exacct PACKAGE = Sun::Solaris::Exacct
-PROTOTYPES: ENABLE
-
- #
- # Define the stash pointers if required and create and populate @_Constants.
- #
-BOOT:
- init_stashes();
- define_constants(PKGBASE, constants);
-
- #
- # Return the last exacct error as a dual-typed SV. In a numeric context the
- # SV will evaluate to the value of an EXR_* constant, in string context to a
- # error message.
- #
-SV*
-ea_error()
-PREINIT:
- int eno;
- const char *msg;
-CODE:
- eno = ea_error();
- msg = error_str(eno);
- RETVAL = newSViv(eno);
- sv_setpv(RETVAL, (char*) msg);
- SvIOK_on(RETVAL);
-OUTPUT:
- RETVAL
-
- #
- # Return a string describing the last error to be encountered. If the value
- # returned by ea_error is EXR_SYSCALL_FAIL, a string describing the value of
- # errno will be returned. For all other values returned by ea_error() a string
- # describing the exacct error will be returned.
- #
-char*
-ea_error_str()
-PREINIT:
- int eno;
-CODE:
- eno = ea_error();
- if (eno == EXR_SYSCALL_FAIL) {
- RETVAL = strerror(errno);
- if (RETVAL == NULL) {
- RETVAL = "unknown system error";
- }
- } else {
- RETVAL = (char*) error_str(eno);
- }
-OUTPUT:
- RETVAL
-
- #
- # Return an accounting record for the specified task or process. idtype is
- # either P_TASKID or P_PID and id is a process or task id.
- #
-SV*
-getacct(idtype, id)
- idtype_t idtype;
- id_t id;
-PREINIT:
- int bufsz;
- char *buf;
- ea_object_t *ea_obj;
-CODE:
- /* Get the required accounting buffer. */
- while (1) {
- /* Use the last buffer size as a best guess. */
- if (last_bufsz != 0) {
- buf = ea_alloc(last_bufsz);
- PERL_ASSERT(buf != NULL);
- } else {
- buf = NULL;
- }
-
- /*
- * get the accounting record. If the buffer is too small,
- * we will go around again with the correct size.
- * If unsucessful, we will bail.
- */
- if ((bufsz = getacct(idtype, id, buf, last_bufsz)) == -1) {
- if (last_bufsz != 0) {
- ea_free(buf, last_bufsz);
- }
- XSRETURN_UNDEF;
- } else if (bufsz > last_bufsz) {
- ea_free(buf, last_bufsz);
- last_bufsz = bufsz;
- continue;
- } else {
- break;
- }
- }
-
- /* Unpack the buffer. */
- if (ea_unpack_object(&ea_obj, EUP_ALLOC, buf, bufsz) == -1) {
- ea_free(buf, last_bufsz);
- XSRETURN_UNDEF;
- }
- ea_free(buf, last_bufsz);
- RETVAL = new_xs_ea_object(ea_obj);
-OUTPUT:
- RETVAL
-
- #
- # Write an accounting record into the system accounting file. idtype is
- # either P_TASKID or P_PID and id is a process or task id. value may be either
- # an ::Exacct::Object, in which case it will be packed and inserted in the
- # file, or a SV which will be converted to a string and inserted into the file.
- #
-SV*
-putacct(idtype, id, value)
- idtype_t idtype;
- id_t id;
- SV *value;
-PREINIT:
- HV *stash;
- STRLEN bufsz;
- int flags, ret;
- char *buf;
-CODE:
- /* If it is an ::Object::Item or ::Object::Group, pack it. */
- stash = SvROK(value) ? SvSTASH(SvRV(value)) : NULL;
- if (stash == Sun_Solaris_Exacct_Object_Item_stash ||
- stash == Sun_Solaris_Exacct_Object_Group_stash) {
- ea_object_t *obj;
-
- /* Deflate the object. */
- if ((obj = deflate_xs_ea_object(value)) == NULL) {
- XSRETURN_NO;
- }
-
- /* Pack the object. */
- while (1) {
- /* Use the last buffer size as a best guess. */
- if (last_bufsz != 0) {
- buf = ea_alloc(last_bufsz);
- PERL_ASSERT(buf != NULL);
- } else {
- buf = NULL;
- }
-
- /*
- * Pack the object. If the buffer is too small, we
- * will go around again with the correct size.
- * If unsucessful, we will bail.
- */
- if ((bufsz = ea_pack_object(obj, buf, last_bufsz))
- == -1) {
- if (last_bufsz != 0) {
- ea_free(buf, last_bufsz);
- }
- XSRETURN_NO;
- } else if (bufsz > last_bufsz) {
- ea_free(buf, last_bufsz);
- last_bufsz = bufsz;
- continue;
- } else {
- break;
- }
- }
- flags = EP_EXACCT_OBJECT;
-
- /* Otherwise treat it as normal SV - convert to a string. */
- } else {
- buf = SvPV(value, bufsz);
- flags = EP_RAW;
- }
-
- /* Call putacct to write the buffer */
- RETVAL = putacct(idtype, id, buf, bufsz, flags) == 0
- ? &PL_sv_yes : &PL_sv_no;
-
- /* Clean up if we allocated a buffer. */
- if (flags == EP_EXACCT_OBJECT) {
- ea_free(buf, last_bufsz);
- }
-OUTPUT:
- RETVAL
-
- #
- # Write an accounting record for the specified task or process. idtype is
- # either P_TASKID or P_PID, id is a process or task id and flags is either
- # EW_PARTIAL or EW_INTERVAL.
- #
-int
-wracct(idtype, id, flags)
- idtype_t idtype;
- id_t id;
- int flags;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/File.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/File.pm
deleted file mode 100644
index 4d7bba2291..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/File.pm
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# File.pm contains wrappers for the exacct file manipulation routines.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-
-package Sun::Solaris::Exacct::File;
-
-our $VERSION = '1.3';
-use XSLoader;
-XSLoader::load(__PACKAGE__, $VERSION);
-
-# @_Constants is set up by the XSUB bootstrap() function.
-our (@EXPORT_OK, %EXPORT_TAGS, @_Constants);
-@EXPORT_OK = @_Constants;
-%EXPORT_TAGS = (CONSTANTS => \@_Constants, ALL => \@EXPORT_OK);
-
-use base qw(Exporter);
-
-#
-# Extend the default Exporter::import to do optional inclusion of the
-# Fcntl module.
-#
-sub import
-{
- # Do the normal export processing for this module.
- __PACKAGE__->export_to_level(1, @_);
-
- # Export from Fcntl if the tag is ':ALL'
- if (grep(/^:ALL$/, @_)) {
- require Fcntl;
- Fcntl->export_to_level(1, undef, ':DEFAULT');
- }
-}
-
-1;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/File.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/File.xs
deleted file mode 100644
index 2a4f0e2ede..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/File.xs
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
- *
- * File.xs contains XS code for exacct file manipulation.
- */
-
-#include <pwd.h>
-#include "../exacct_common.xh"
-
-/* Pull in the file generated by extract_defines. */
-#include "FileDefs.xi"
-
-/*
- * The XS code exported to perl is below here. Note that the XS preprocessor
- * has its own commenting syntax, so all comments from this point on are in
- * that form.
- */
-
-MODULE = Sun::Solaris::Exacct::File PACKAGE = Sun::Solaris::Exacct::File
-PROTOTYPES: ENABLE
-
- #
- # Define the stash pointers if required and create and populate @_Constants.
- #
-BOOT:
- {
- init_stashes();
- define_constants(PKGBASE "::File", constants);
- }
-
- #
- # Open an exacct file and return an object with which to manipulate it.
- # The parameters are the filename, the open mode and a list of optional
- # (key => value) parameters where the key may be one of creator, aflags or
- # mode. For a full explanation of the various combinations, see the manpage
- # for ea_open_file(3EXACCT).
- #
-ea_file_t *
-new(class, name, oflags, ...)
- char *class;
- char *name;
- int oflags;
-PREINIT:
- int i;
- /* Assume usernames are <= 32 chars (pwck(1M) assumes <= 8) */
- char user[33];
- char *creator = NULL;
- int aflags = -1;
- mode_t mode = 0666;
-CODE:
- /*
- * Account for the mandatory parameters,
- * and the rest must be an even number.
- */
- i = items - 3;
- if ((i % 2) != 0) {
- croak("Usage: Sun::Solaris::Exacct::File::new"
- "(class, name, oflags, ...)");
- }
-
- /* Process any optional parameters. */
- for (i = 3; i < items; i += 2) {
- if (strEQ(SvPV_nolen(ST(i)), "creator")) {
- creator = SvPV_nolen(ST(i + 1));
- } else if (strEQ(SvPV_nolen(ST(i)), "aflags")) {
- aflags = SvIV(ST(i + 1));
- } else if (strEQ(SvPV_nolen(ST(i)), "mode")) {
- mode = SvIV(ST(i + 1));
- } else {
- croak("invalid named argument %s", SvPV_nolen(ST(i)));
- }
- }
-
- /* Check and default the creator parameter. */
- if (oflags & O_CREAT && creator == NULL) {
- uid_t uid;
- struct passwd *pwent;
-
- uid = getuid();
- if ((pwent = getpwuid(uid)) == NULL) {
- snprintf(user, sizeof (user), "%d", uid);
- } else {
- strlcpy(user, pwent->pw_name, sizeof (user));
- }
- creator = user;
- }
-
- /* Check and default the aflags parameter. */
- if (aflags == -1) {
- if (oflags == O_RDONLY) {
- aflags = EO_HEAD;
- } else {
- aflags = EO_TAIL;
- }
- }
- RETVAL = ea_alloc(sizeof (ea_file_t));
- PERL_ASSERT(RETVAL != NULL);
- if (ea_open(RETVAL, name, creator, aflags, oflags, mode) == -1) {
- ea_free(RETVAL, sizeof (ea_file_t));
- RETVAL = NULL;
- }
-OUTPUT:
- RETVAL
-
-void
-DESTROY(self)
- ea_file_t *self;
-CODE:
- ea_close(self);
- ea_free(self, sizeof(ea_file_t));
-
- #
- # Return the creator of the file.
- #
-SV*
-creator(self)
- ea_file_t *self;
-PREINIT:
- const char *creator;
-CODE:
- if ((creator = ea_get_creator(self)) == NULL) {
- RETVAL = &PL_sv_undef;
- } else {
- RETVAL = newSVpv(creator, 0);
- }
-OUTPUT:
- RETVAL
-
- #
- # Return the hostname the file was created on.
- #
-SV*
-hostname(self)
- ea_file_t *self;
-PREINIT:
- const char *hostname;
-CODE:
- if ((hostname = ea_get_hostname(self)) == NULL) {
- RETVAL = &PL_sv_undef;
- } else {
- RETVAL = newSVpv(hostname, 0);
- }
-OUTPUT:
- RETVAL
-
- #
- # Get the next/previous record from the file and return its type.
- # These two operations are so similar that the XSUB ALIAS functionality is
- # used to merge them into one function.
- #
-void
-next(self)
- ea_file_t *self;
-ALIAS:
- previous = 1
-PREINIT:
- ea_object_type_t type;
- const char *type_str;
- ea_object_t object;
- SV *sv;
- static const char *const type_map[] =
- { "EO_NONE", "EO_GROUP", "EO_ITEM" };
-PPCODE:
- /* Call the appropriate next/last function. */
- if (ix == 0) {
- type = ea_next_object(self, &object);
- } else {
- type = ea_previous_object(self, &object);
- }
-
- /* Work out the call context. */
- switch (GIMME_V) {
- case G_SCALAR:
- /* In a scalar context, just return the type. */
- EXTEND(SP, 1);
- if (type == EO_ERROR) {
- PUSHs(&PL_sv_undef);
- } else {
- sv = newSVuv(type);
- sv_setpv(sv, type_map[type]);
- SvIOK_on(sv);
- PUSHs(sv_2mortal(sv));
- }
- break;
- case G_ARRAY:
- /* In a list contect, return the type and catalog. */
- EXTEND(SP, 2);
- if (type == EO_ERROR) {
- PUSHs(&PL_sv_undef);
- PUSHs(&PL_sv_undef);
- } else {
- sv = newSVuv(type);
- sv_setpv(sv, type_map[type]);
- SvIOK_on(sv);
- PUSHs(sv_2mortal(sv));
- PUSHs(sv_2mortal(new_catalog(object.eo_catalog)));
- }
- break;
- case G_VOID:
- default:
- /* In a void context, return nothing. */
- break;
- }
-
- #
- # Get the next object from the file and return as an ::Object.
- #
-SV*
-get(self)
- ea_file_t *self;
-PREINIT:
- ea_object_t *obj;
-CODE:
- if ((obj = ea_get_object_tree(self, 1)) != NULL) {
- RETVAL = new_xs_ea_object(obj);
- } else {
- RETVAL = &PL_sv_undef;
- }
-OUTPUT:
- RETVAL
-
- #
- # Write the passed list of ::Objects to the file.
- # Returns true on success and false on failure.
- #
-SV*
-write(self, ...)
- ea_file_t *self;
-PREINIT:
- int i;
- SV *sv;
- HV *stash;
- ea_object_t *obj;
-CODE:
- for (i = 1; i < items; i++) {
- /* Check the value is either an ::Item or a ::Group. */
- sv = SvRV(ST(i));
- stash = sv ? SvSTASH(sv) : NULL;
- if (stash != Sun_Solaris_Exacct_Object_Item_stash &&
- stash != Sun_Solaris_Exacct_Object_Group_stash) {
- XSRETURN_NO;
- }
-
- /* Deflate and write the object. */
- obj = deflate_xs_ea_object(ST(i));
- PERL_ASSERT(obj != NULL);
- if (ea_write_object(self, obj) == -1) {
- XSRETURN_NO;
- }
- }
- RETVAL = &PL_sv_yes;
-OUTPUT:
- RETVAL
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/Makefile.PL
deleted file mode 100644
index 3ca840de95..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/File/Makefile.PL
+++ /dev/null
@@ -1,139 +0,0 @@
-#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Makefile.PL for ::Exacct::File
-#
-
-# See ../Makefile.PL for an explanation of the linker flag manipulations.
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-#
-# Some later versions of ExtUtils::MakeMaker are broken,
-# and complain about function redefinitions in the child Makefile.PLs.
-# Stop the warnings.
-#
-no warnings qw(redefine);
-
-our (@defines, @man3pods);
-
-#
-# MakeMaker overrides.
-#
-package MY;
-no warnings qw(once);
-
-#
-# Overrides that are common to both the ON and non-ON build environments.
-#
-
-#
-# Suppress the setting of LD_RUN_PATH, as it isn't necessary.
-#
-
-sub const_loadlibs
-{
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
-}
-
-sub dynamic_lib
-{
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
-}
-
-#
-# ON-specific overrides.
-#
-if (exists($ENV{CODEMGR_WS}) && exists($ENV{ENVCPPFLAGS1})) {
- #
- # Override postamble and replace it with one that explicitly records
- # the dependency between File.c (generated from File.xs by xsubpp)
- # and the FileDefs.xi file (generated from sys/exacct_catalog.h by
- # extract_defines). Note we have to mimic the -I processing done by cc
- # to find the correct version of the file, as we want the copy from the
- # proto area rather than /usr/include. This ensures that the constant
- # values exported by the perl module stay up-to date with the
- # corresponding #defines.
- #
- *postamble = sub {
- return <<'EOF';
-EXACCT_H:sh= \
- for dir in $ENVCPPFLAGS1 $ENVCPPFLAGS2 $ENVCPPFLAGS3 $ENVCPPFLAGS4 \
- /usr/include; do \
- dir=`expr $dir : '^-I\(.*\)$' \| $dir`; \
- file="$dir/exacct.h"; \
- test -f $file && echo $file && break; \
- done;
-
-File.c: FileDefs.xi
-
-FileDefs.xi: ../extract_defines $(EXACCT_H)
- $(PERL) ../extract_defines File $@ $(EXACCT_H)
-EOF
- };
-
- # Enable/disable debugging as required.
- @main::defines = ( DEFINE => '-DEXACCT_DEBUG' )
- if (! exists($ENV{RELEASE_BUILD}));
-
- # Don't install POD pages for ON.
- @main::man3pods = ( MAN3PODS => {} );
-
-#
-# Non-ON overrides.
-#
-} else {
- #
- # Override postamble and replace it with one that explicitly records
- # the dependency between File.c (generated from File.xs by xsubpp)
- # and the FileDefs.xi file (generated from /usr/include/exacct.h by
- # extract_defines). This ensures # that the constant values exported
- # by the perl module stay up-to date with the corresponding #defines.
- #
- *postamble = sub {
- return <<'EOF';
-EXACCT_H = /usr/include/exacct.h
-
-File.c: FileDefs.xi
-
-FileDefs.xi: ../extract_defines $(EXACCT_H)
- $(PERL) ../extract_defines File $@ $(EXACCT_H)
-EOF
- };
-
- # Install the POD documentation for non-ON builds.
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Exacct';
- @main::man3pods = (
- MAN3PODS => { '../pod/File.pod' =>
- $man3pfx . '::File.$(MAN3EXT)' }
- );
-}
-
-#
-# Having set everything up, write the Makefile.
-#
-package main;
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Exacct::File',
- VERSION_FROM => 'File.pm',
- H => [ '../exacct_common.xh' ],
- TYPEMAPS => [ '../typemap' ],
- @defines,
- @man3pods,
- dynamic_lib => { OTHERLDFLAGS =>
- '-h $(DLBASE).$(DLEXT) ' .
- '-R\$$ORIGIN/.. $(INST_ARCHAUTODIR)/../Exacct.so'
- },
- realclean => { FILES => 'FileDefs.xi' },
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/MANIFEST
deleted file mode 100644
index eb1dd3931e..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/MANIFEST
+++ /dev/null
@@ -1,24 +0,0 @@
-Catalog/Catalog.pm
-Catalog/Catalog.xs
-Catalog/Makefile.PL
-Changes
-Exacct.pm
-Exacct.xs
-exacct_common.xh
-extract_defines
-File/File.pm
-File/File.xs
-File/Makefile.PL
-Makefile.PL
-MANIFEST
-Object/Makefile.PL
-Object/Object.pm
-Object/Object.xs
-pod/Catalog.pod
-pod/Exacct.pod
-pod/File.pod
-pod/Group.pod
-pod/Item.pod
-pod/Object.pod
-README
-typemap
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Makefile.PL
deleted file mode 100644
index 24a44b9f4e..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Makefile.PL
+++ /dev/null
@@ -1,173 +0,0 @@
-#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Makefile.PL for ::Exacct
-#
-
-#
-# Linker flags note:
-# The various .so files that comprise the ::Exacct module need to be able to
-# cross-call each other, and therefore to prevent runtime linker errors it is
-# necessary to establish linker dependencies between the various .so files.
-#
-# This causes several problems. The first of these is that perl .so files are
-# built in one directory (under ../blib in this case) and installed into
-# another, so it is necessary to record the dependency using a path relative to
-# the dependent. This can be done with the $ORIGIN linker mechanism.
-
-# The second problem is that it is necessary to specify the name of the
-# dependee at link edit time in a manner that doesn't result in the build-time
-# path of the dependee being hard coded in to the dependent, as this would
-# stop ld.so.1 performing its normal search process for the files. This can't
-# be done with the normal '--L/my/lib/path -lmylib' mechanism, because the XSUB
-# .so files aren't prefixed with 'lib'. To do this the -h linker flag is used
-# to explicitly set the SONAME in the dependee. This is then used as the name
-# of the dependent in the dependee rather than the full path by which it was
-# found at link edit time.
-#
-# For more details, refer to the Linker and Libraries Guide.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-our (@defines, @man3pods);
-
-#
-# MakeMaker overrides.
-#
-package MY;
-no warnings qw(once);
-
-#
-# Overrides that are common to both the ON and non-ON build environments.
-#
-
-#
-# Force the parent directory to be built first, because the sub-modules all
-# have a linker dependency against Exacct.so.
-#
-sub top_targets
-{
- my $self = shift(@_);
- my $txt = $self->SUPER::top_targets(@_);
- $txt =~ s/pm_to_blib subdirs/pm_to_blib \$(LINKTYPE) .WAIT subdirs/;
- return($txt);
-}
-
-#
-# Make 'install' wait for 'all' to complete.
-#
-sub install
-{
- my $self = shift(@_);
- my $txt = $self->SUPER::install(@_);
- $txt =~ s/ all / all .WAIT /g;
- return($txt);
-}
-
-#
-# Suppress the setting of LD_RUN_PATH, as it isn't necessary.
-#
-sub const_loadlibs
-{
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
-}
-
-sub dynamic_lib
-{
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
-}
-
-#
-# ON-specific overrides.
-#
-if (exists($ENV{CODEMGR_WS}) && exists($ENV{ENVCPPFLAGS1})) {
- #
- # Override postamble and replace it with one that explicitly records
- # the dependency between Exacct.c (generated from Exacct.xs by xsubpp)
- # and the ExacctDefs.xi file (generated from sys/exacct.h by
- # extract_defines). Note we have to mimic the -I processing done by cc
- # to find the correct version of the file, as we want the copy from the
- # proto area rather than /usr/include. This ensures that the constant
- # values exported by the perl module stay up-to date with the
- # corresponding #defines.
- #
- *postamble = sub {
- return <<'EOF';
-EXACCT_H:sh= \
- for dir in $ENVCPPFLAGS1 $ENVCPPFLAGS2 $ENVCPPFLAGS3 $ENVCPPFLAGS4 \
- /usr/include; do \
- dir=`expr $dir : '^-I\(.*\)$' \| $dir`; \
- file="$dir/sys/exacct.h"; \
- test -f $file && echo $file && break; \
- done;
-
-Exacct.c: ExacctDefs.xi
-
-ExacctDefs.xi: extract_defines $(EXACCT_H)
- $(PERL) extract_defines Exacct $@ $(EXACCT_H)
-EOF
- };
-
- # Enable/disable debugging as required.
- @main::defines = ( DEFINE => '-DEXACCT_DEBUG' )
- if (! exists($ENV{RELEASE_BUILD}));
-
- # Don't install POD pages for ON.
- @main::man3pods = ( MAN3PODS => {} );
-
-#
-# Non-ON overrides.
-#
-} else {
- #
- # Override postamble and replace it with one that explicitly records
- # the dependency between Exacct.c (generated from Exacct.xs by xsubpp)
- # and the ExacctDefs.xi file (generated from /usr/include/sys/exacct.h
- # by extract_defines). This ensures that the constant values exported
- # by the perl module stay up-to date with the corresponding #defines.
- #
- *postamble = sub {
- return <<'EOF';
-EXACCT_H = /usr/include/sys/exacct.h
-
-Exacct.c: ExacctDefs.xi
-
-ExacctDefs.xi: extract_defines $(EXACCT_H)
- $(PERL) extract_defines Exacct $@ $(EXACCT_H)
-EOF
- };
-
- # Install the POD documentation for non-ON builds.
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Exacct';
- @main::man3pods = (
- MAN3PODS => { 'pod/Exacct.pod' => $man3pfx . '.$(MAN3EXT)' }
- );
-}
-
-#
-# Having set everything up, write the Makefile.
-#
-package main;
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Exacct',
- VERSION_FROM => 'Exacct.pm',
- DIR => [ qw(Catalog File Object) ],
- H => [ 'exacct_common.xh' ],
- LIBS => [ '-lexacct' ],
- @defines,
- @man3pods,
- dynamic_lib => { OTHERLDFLAGS => '-h $(DLBASE).$(DLEXT)' },
- realclean => { FILES => 'ExacctDefs.xi' },
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Makefile.PL
deleted file mode 100644
index 1a4379506d..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Makefile.PL
+++ /dev/null
@@ -1,141 +0,0 @@
-#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Makefile.PL for ::Exacct::Object
-#
-
-# See ../Makefile.PL for an explanation of the linker flag manipulations.
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-#
-# Some later versions of ExtUtils::MakeMaker are broken,
-# and complain about function redefinitions in the child Makefile.PLs.
-# Stop the warnings.
-#
-no warnings qw(redefine);
-
-our (@defines, @man3pods);
-
-#
-# MakeMaker overrides.
-#
-package MY;
-no warnings qw(once);
-
-#
-# Overrides that are common to both the ON and non-ON build environments.
-#
-
-#
-# Suppress the setting of LD_RUN_PATH, as it isn't necessary.
-#
-
-sub const_loadlibs
-{
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
-}
-
-sub dynamic_lib
-{
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
-}
-
-#
-# ON-specific overrides.
-#
-if (exists($ENV{CODEMGR_WS}) && exists($ENV{ENVCPPFLAGS1})) {
- #
- # Override postamble and replace it with one that explicitly records
- # the dependency between Object.c (generated from Object.xs by xsubpp)
- # and the ObjectDefs.xi file (generated from sys/exacct.h by
- # extract_defines). Note we have to mimic the -I processing done by cc
- # to find the correct version of the file, as we want the copy from the
- # proto area rather than /usr/include. This ensures that the constant
- # values exported by the perl module stay up-to date with the
- # corresponding #defines.
- #
- *postamble = sub {
- return <<'EOF';
-EXACCT_H:sh= \
- for dir in $ENVCPPFLAGS1 $ENVCPPFLAGS2 $ENVCPPFLAGS3 $ENVCPPFLAGS4 \
- /usr/include; do \
- dir=`expr $dir : '^-I\(.*\)$' \| $dir`; \
- file="$dir/sys/exacct.h"; \
- test -f $file && echo $file && break; \
- done;
-
-Object.c: ObjectDefs.xi
-
-ObjectDefs.xi: ../extract_defines $(EXACCT_H)
- $(PERL) ../extract_defines Object $@ $(EXACCT_H)
-EOF
- };
-
- # Enable/disable debugging as required.
- @main::defines = ( DEFINE => '-DEXACCT_DEBUG' )
- if (! exists($ENV{RELEASE_BUILD}));
-
- # Don't install POD pages for ON.
- @main::man3pods = ( MAN3PODS => {} );
-
-#
-# Non-ON overrides.
-#
-} else {
- #
- # Override postamble and replace it with one that explicitly records
- # the dependency between Object.c (generated from Object.xs by xsubpp)
- # and the ObjectDefs.xi file (generated from /usr/include/sys/exacct.h
- # by # extract_defines). This ensures # that the constant values
- # exported by the perl module stay up-to date with the corresponding
- # #defines.
- #
- *postamble = sub {
- return <<'EOF';
-EXACCT_H = /usr/include/sys/exacct.h
-
-Object.c: ObjectDefs.xi
-
-ObjectDefs.xi: ../extract_defines $(EXACCT_H)
- $(PERL) ../extract_defines Object $@ $(EXACCT_H)
-EOF
- };
-
- # Install the POD documentation for non-ON builds.
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Exacct';
- @main::man3pods = ( MAN3PODS => {
- '../pod/Object.pod' => $man3pfx . '::Object.$(MAN3EXT)',
- '../pod/Item.pod' => $man3pfx . '::Object::Item.$(MAN3EXT)',
- '../pod/Group.pod' => $man3pfx . '::Object::Group.$(MAN3EXT)'
- });
-}
-
-#
-# Having set everything up, write the Makefile.
-#
-package main;
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Exacct::Object',
- VERSION_FROM => 'Object.pm',
- H => [ '../exacct_common.xh' ],
- TYPEMAPS => [ '../typemap' ],
- @defines,
- @man3pods,
- dynamic_lib => { OTHERLDFLAGS =>
- '-h $(DLBASE).$(DLEXT) ' .
- '-R\$$ORIGIN/.. $(INST_ARCHAUTODIR)/../Exacct.so'
- },
- realclean => { FILES => 'ObjectDefs.xi' },
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Object.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Object.pm
deleted file mode 100644
index d083e1b3de..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Object.pm
+++ /dev/null
@@ -1,195 +0,0 @@
-#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Object.pm contains perl code for exacct object manipulation.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-
-package Sun::Solaris::Exacct::Object;
-
-our $VERSION = '1.3';
-use XSLoader;
-XSLoader::load(__PACKAGE__, $VERSION);
-
-our (@EXPORT_OK, %EXPORT_TAGS, @_Constants);
-@EXPORT_OK = @_Constants;
-%EXPORT_TAGS = (CONSTANTS => \@_Constants, ALL => \@EXPORT_OK);
-
-use base qw(Exporter);
-use Sun::Solaris::Exacct::Catalog qw(:CONSTANTS);
-
-#
-# Class methods
-#
-
-#
-# Dump an exacct object to the specified filehandle, or STDOUT by default.
-#
-sub dump
-{
- # Fettle parameters.
- my ($class, $obj, $fh, $indent) = @_;
- $fh ||= \*STDOUT;
- $indent ||= 0;
- my $istr = ' ' x $indent;
-
- # Check for undef values.
- if (! defined($obj)) {
- print $fh ($istr, "UNDEFINED_VALUE\n");
- return;
- }
-
- # Deal with items.
- my @cat = $obj->catalog()->value();
- if ($obj->type() == &EO_ITEM) {
- printf $fh ("%sITEM\n%s Catalog = %s|%s|%s\n",
- $istr, $istr, @cat);
- $indent++;
- my $val = $obj->value();
-
- # Recursively dump nested objects.
- if (ref($val)) {
- $class->dump($val, $fh, $indent);
-
- # Just print out items.
- } else {
- $val = unpack('H*', $val) if ($cat[0] == &EXT_RAW);
- printf $fh ("%s Value = %s\n", $istr, $val);
- }
-
- # Deal with groups.
- } else {
- printf $fh ("%sGROUP\n%s Catalog = %s|%s|%s\n",
- $istr, $istr, @cat);
- $indent++;
- foreach my $val ($obj->value()) {
- $class->dump($val, $fh, $indent);
- }
- printf $fh ("%sENDGROUP\n", $istr);
- }
-}
-
-#
-# Item subclass - establish inheritance.
-#
-package Sun::Solaris::Exacct::Object::Item;
-use base qw(Sun::Solaris::Exacct::Object);
-
-#
-# Group subclass - establish inheritance.
-#
-package Sun::Solaris::Exacct::Object::Group;
-use base qw(Sun::Solaris::Exacct::Object);
-
-#
-# Tied array used for holding a group's items.
-#
-package Sun::Solaris::Exacct::Object::_Array;
-use Carp;
-
-#
-# Check the passed list of arguments are derived from ::Object
-#
-sub check_args
-{
- my @duff;
- foreach my $i (@_) {
- push(@duff, $i)
- if (! UNIVERSAL::isa($i, 'Sun::Solaris::Exacct::Object'));
- }
- if (@duff) {
- local $Carp::CarpLevel = 2;
- croak('"', join('", "', @duff), @duff == 1 ? '" is' : '" are',
- ' not of type Sun::Solaris::Exacct::Object');
- }
-}
-
-#
-# Tied hash access methods
-#
-sub TIEARRAY
-{
- return(bless([], $_[0]));
-}
-
-sub FETCHSIZE
-{
- return(scalar(@{$_[0]}));
-}
-
-sub STORESIZE
-{
- $#{$_[0]} = $_[1] - 1;
-}
-
-sub STORE
-{
- check_args($_[2]);
- return($_[0]->[$_[1]] = copy_xs_ea_objects($_[2]));
-}
-
-sub FETCH
-{
- return($_[0]->[$_[1]]);
-}
-
-sub CLEAR
-{
- @{$_[0]} = ();
-}
-
-sub POP
-{
- return(pop(@{$_[0]}));
-}
-
-sub PUSH
-{
- my $a = shift(@_);
- check_args(@_);
- push(@$a, copy_xs_ea_objects(@_));
-}
-
-sub SHIFT
-{
- return(shift(@{$_[0]}));
-}
-
-sub UNSHIFT
-{
- my $a = shift(@_);
- check_args($_[2]);
- return(unshift(@$a, copy_xs_ea_objects(@_)));
-}
-
-sub EXISTS
-{
- return(exists($_[0]->[$_[1]]));
-}
-
-sub DELETE
-{
- return(delete($_[0]->[$_[1]]));
-}
-
-sub EXTEND
-{
-}
-
-sub SPLICE
-{
- my $a = shift(@_);
- my $sz = scalar(@$a);
- my $off = @_ ? shift(@_) : 0;
- $off += $sz if $off < 0;
- my $len = @_ ? shift : $sz - $off;
- check_args(@_);
- return(splice(@$a, $off, $len, copy_xs_ea_objects(@_)));
-}
-
-1;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Object.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Object.xs
deleted file mode 100644
index 2e3a799f84..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/Object/Object.xs
+++ /dev/null
@@ -1,687 +0,0 @@
-/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
- *
- * Object.xs contains XS code for exacct file manipulation.
- */
-
-#include <strings.h>
-#include "../exacct_common.xh"
-
-/* Pull in the file generated by extract_defines. */
-#include "ObjectDefs.xi"
-
-/* From Catalog.xs. */
-extern char *catalog_id_str(ea_catalog_t catalog);
-
-/*
- * Copy an xs_ea_object_t. If the perl_obj part is null, we just copy the
- * ea_object_t part. If the perl_obj part is not null and the Object is an
- * Item it must be because the Item contains an embedded Object, which will be
- * recursively copied. Otherwise the Object must be a Group, so the Group will
- * be copied, and the list of Objects it contains will be recursively copied.
- */
-static SV *
-copy_xs_ea_object(SV *src_sv)
-{
- xs_ea_object_t *src, *dst;
- SV *dst_sv, *dst_rv;
-
- /* Get the source xs_ea_object_t and make a new one. */
- PERL_ASSERT(src_sv != NULL);
- src_sv = SvRV(src_sv);
- PERL_ASSERT(src_sv != NULL);
- src = INT2PTR(xs_ea_object_t *, SvIV(src_sv));
- PERL_ASSERT(src != NULL);
- New(0, dst, 1, xs_ea_object_t);
- dst->flags = src->flags;
-
- /* If the Object is a plain Item only the ea_obj part needs copying. */
- if (IS_PLAIN_ITEM(src)) {
- dst->ea_obj = ea_copy_object_tree(src->ea_obj);
- PERL_ASSERT(dst->ea_obj != NULL);
- dst->perl_obj = NULL;
-
- /*
- * Otherwise if it is an Item with a perl_obj part, it means that it
- * must be an Item containing an unpacked nested Object. In this case
- * the nested Object can be copied by a recursive call.
- */
- } else if (IS_EMBED_ITEM(src)) {
- dst->ea_obj = ea_copy_object(src->ea_obj);
- PERL_ASSERT(dst->ea_obj != NULL);
- dst->perl_obj = copy_xs_ea_object(src->perl_obj);
-
- /*
- * If we get here it must be a Group, so perl_obj will point to a tied
- * AV. We therefore copy the exacct part then create a new tied array
- * and recursively copy each Item individually.
- */
- } else {
- MAGIC *mg;
- AV *src_av, *dst_av, *tied_av;
- SV *sv;
- int i, len;
-
- /* Copy the exacct part of the Group. */
- dst->ea_obj = ea_copy_object(src->ea_obj);
- PERL_ASSERT(dst->ea_obj != NULL);
-
- /* Find the AV underlying the tie. */
- mg = mg_find(SvRV(src->perl_obj), 'P');
- PERL_ASSERT(mg != NULL);
- src_av = (AV *)SvRV(mg->mg_obj);
- PERL_ASSERT(src_av != NULL);
-
- /* Create a new AV and copy across into it. */
- dst_av = newAV();
- len = av_len(src_av) + 1;
- av_extend(dst_av, len);
- for (i = 0; i < len; i++) {
- SV **svp;
-
- /* undef elements don't need copying. */
- if ((svp = av_fetch(src_av, i, FALSE)) != NULL) {
- sv = copy_xs_ea_object(*svp);
- if (av_store(dst_av, i, sv) == NULL) {
- SvREFCNT_dec(sv);
- }
- }
- }
-
- /* Create a new AV and tie the filled AV to it. */
- sv = newRV_noinc((SV *)dst_av);
- sv_bless(sv, Sun_Solaris_Exacct_Object__Array_stash);
- tied_av = newAV();
- sv_magic((SV *)tied_av, sv, 'P', Nullch, 0);
- SvREFCNT_dec(sv);
- dst->perl_obj = newRV_noinc((SV *)tied_av);
- }
-
- /* Wrap the new xs_ea_object_t in a blessed RV and return it. */
- dst_sv = newSViv(PTR2IV(dst));
- dst_rv = newRV_noinc(dst_sv);
- sv_bless(dst_rv, SvSTASH(src_sv));
- SvREADONLY_on(dst_sv);
- return (dst_rv);
-}
-
-/*
- * If an ea_xs_object_t only has the ea_obj part populated, create the
- * corresponding perl_obj part. For plain Items this is a no-op. If the
- * object is embedded, the embedded part will be unpacked and stored in the
- * perl part. If the object is a Group, the linked list of Items will be
- * wrapped in the corresponding perl structure and stored in a tied perl array.
- */
-static int
-inflate_xs_ea_object(xs_ea_object_t *xs_obj)
-{
- ea_object_t *ea_obj;
-
- /* Check there is not already a perl_obj part. */
- PERL_ASSERT(xs_obj != NULL);
- PERL_ASSERT(xs_obj->perl_obj == NULL);
-
- /* Deal with Items containing embedded Objects. */
- if (IS_EMBED_ITEM(xs_obj)) {
- /* unpack & wrap in an xs_ea_object_t. */
- if (ea_unpack_object(&ea_obj, EUP_ALLOC,
- xs_obj->ea_obj->eo_item.ei_object,
- xs_obj->ea_obj->eo_item.ei_size) == -1) {
- return (0);
- }
- xs_obj->perl_obj = new_xs_ea_object(ea_obj);
-
- /* Deal with Groups. */
- } else if (IS_GROUP(xs_obj)) {
- int i, len;
- AV *av, *tied_av;
- SV *rv, *sv;
-
- /* Create a new array. */
- av = newAV();
- ea_obj = xs_obj->ea_obj;
- len = ea_obj->eo_group.eg_nobjs;
- ea_obj = ea_obj->eo_group.eg_objs;
-
- /* Copy each object from the old array into the new array. */
- for (i = 0; i < len; i++) {
- rv = new_xs_ea_object(ea_obj);
- if (av_store(av, i, rv) == NULL) {
- SvREFCNT_dec(rv);
- }
- ea_obj = ea_obj->eo_next;
- }
-
- /* Create a new AV and tie the filled AV to it. */
- rv = newRV_noinc((SV *)av);
- sv_bless(rv, Sun_Solaris_Exacct_Object__Array_stash);
- tied_av = newAV();
- sv_magic((SV *)tied_av, rv, 'P', Nullch, 0);
- SvREFCNT_dec(rv);
- xs_obj->perl_obj = newRV_noinc((SV *)tied_av);
- }
- return (1);
-}
-
-/*
- * The XS code exported to perl is below here. Note that the XS preprocessor
- * has its own commenting syntax, so all comments from this point on are in
- * that form.
- */
-
-MODULE = Sun::Solaris::Exacct::Object PACKAGE = Sun::Solaris::Exacct::Object
-PROTOTYPES: ENABLE
-
- #
- # Define the stash pointers if required and create and populate @_Constants.
- #
-BOOT:
- {
- init_stashes();
- define_constants(PKGBASE "::Object", constants);
- }
-
- #
- # Return a dual-typed SV containing the type of the object.
- #
-SV *
-type(self)
- xs_ea_object_t *self;
-CODE:
- RETVAL = newSViv(self->ea_obj->eo_type);
- switch (self->ea_obj->eo_type) {
- case EO_ITEM:
- sv_setpv(RETVAL, "EO_ITEM");
- break;
- case EO_GROUP:
- sv_setpv(RETVAL, "EO_GROUP");
- break;
- case EO_NONE:
- default:
- sv_setpv(RETVAL, "EO_NONE");
- break;
- }
- SvIOK_on(RETVAL);
-OUTPUT:
- RETVAL
-
- #
- # Return a copy of the catalog of the object.
- #
-SV *
-catalog(self)
- xs_ea_object_t *self;
-CODE:
- RETVAL = new_catalog(self->ea_obj->eo_catalog);
-OUTPUT:
- RETVAL
-
- #
- # Return the value of the object. For simple Items, a SV containing the value
- # of the underlying exacct ea_item_t is returned. For nested Items or Groups,
- # a reference to the nested Item or Group is returned. For Groups, in a scalar
- # context a reference to the tied array used to store the objects in the Group
- # is returned; in a list context the objects within the Group are returned on
- # the perl stack as a list.
- #
-void
-value(self)
- xs_ea_object_t *self;
-PPCODE:
- /*
- * For Items, return the perl representation
- * of the underlying ea_object_t.
- */
- if (IS_ITEM(self)) {
- SV *retval;
-
- switch (self->ea_obj->eo_catalog & EXT_TYPE_MASK) {
- case EXT_UINT8:
- retval = newSVuv(self->ea_obj->eo_item.ei_uint8);
- break;
- case EXT_UINT16:
- retval = newSVuv(self->ea_obj->eo_item.ei_uint16);
- break;
- case EXT_UINT32:
- retval = newSVuv(self->ea_obj->eo_item.ei_uint32);
- break;
- case EXT_UINT64:
- retval = newSVuv(self->ea_obj->eo_item.ei_uint64);
- break;
- case EXT_DOUBLE:
- retval = newSVnv(self->ea_obj->eo_item.ei_double);
- break;
- case EXT_STRING:
- retval = newSVpvn(self->ea_obj->eo_item.ei_string,
- self->ea_obj->eo_item.ei_size - 1);
- break;
- case EXT_RAW:
- retval = newSVpvn(self->ea_obj->eo_item.ei_raw,
- self->ea_obj->eo_item.ei_size);
- break;
- /*
- * For embedded objects and Groups, return a ref to the perl SV.
- */
- case EXT_EXACCT_OBJECT:
- if (self->perl_obj == NULL) {
- /* Make sure the object is inflated. */
- if (! inflate_xs_ea_object(self)) {
- XSRETURN_UNDEF;
- }
- }
- retval = SvREFCNT_inc(self->perl_obj);
- break;
- case EXT_GROUP:
- retval = SvREFCNT_inc(self->perl_obj);
- break;
- case EXT_NONE:
- default:
- croak("Invalid object type");
- break;
- }
- EXTEND(SP, 1);
- PUSHs(sv_2mortal(retval));
-
- /*
- * Now we deal with Groups.
- */
- } else {
- /* Make sure the object is inflated. */
- if (self->perl_obj == NULL) {
- if (! inflate_xs_ea_object(self)) {
- XSRETURN_UNDEF;
- }
- }
-
- /* In a list context return the contents of the AV. */
- if (GIMME_V == G_ARRAY) {
- MAGIC *mg;
- AV *av;
- int len, i;
-
- /* Find the AV underlying the tie. */
- mg = mg_find(SvRV(self->perl_obj), 'P');
- PERL_ASSERT(mg != NULL);
- av = (AV *)SvRV(mg->mg_obj);
- PERL_ASSERT(av != NULL);
-
- /*
- * Push the contents of the array onto the stack.
- * Push undef for any empty array slots.
- */
- len = av_len(av) + 1;
- EXTEND(SP, len);
- for (i = 0; i < len; i++) {
- SV **svp;
-
- if ((svp = av_fetch(av, i, FALSE)) == NULL) {
- PUSHs(&PL_sv_undef);
- } else {
- PERL_ASSERT(*svp != NULL);
- PUSHs(sv_2mortal(SvREFCNT_inc(*svp)));
- }
- }
-
- /* In a scalar context, return a ref to the array of Items. */
- } else {
- EXTEND(SP, 1);
- PUSHs(sv_2mortal(SvREFCNT_inc(self->perl_obj)));
- }
- }
-
- #
- # Call the ea_match_catalog function.
- #
-int
-match_catalog(self, catalog)
- xs_ea_object_t *self;
- SV *catalog;
-CODE:
- RETVAL = ea_match_object_catalog(self->ea_obj, catalog_value(catalog));
-OUTPUT:
- RETVAL
-
- #
- # Destroy an Object.
- #
-void
-DESTROY(self)
- xs_ea_object_t *self;
-PREINIT:
- ea_object_t *ea_obj;
- SV *perl_obj;
-CODE:
- /*
- * Because both libexacct and perl know about the ea_object_t, we have
- * to make sure that they don't both end up freeing the object. First
- * we break any link to the next ea_object_t in the chain. Next, if
- * the object is a Group and there is an active perl_obj chain, we will
- * let perl clean up the Objects, so we zero the eo_group chain.
- */
- perl_obj = self->perl_obj;
- ea_obj = self->ea_obj;
- ea_obj->eo_next = NULL;
- if (IS_GROUP(self) && perl_obj != NULL) {
- ea_obj->eo_group.eg_nobjs = 0;
- ea_obj->eo_group.eg_objs = NULL;
- }
- ea_free_object(ea_obj, EUP_ALLOC);
- if (perl_obj != NULL) {
- SvREFCNT_dec(perl_obj);
- }
- Safefree(self);
-
-MODULE = Sun::Solaris::Exacct::Object PACKAGE = Sun::Solaris::Exacct::Object::Item
-PROTOTYPES: ENABLE
-
- #
- # Create a new Item.
- #
-xs_ea_object_t *
-new(class, catalog, value)
- char *class;
- SV *catalog;
- SV *value;
-PREINIT:
- ea_object_t *ea_obj;
- HV *stash;
-CODE:
- /* Create a new xs_ea_object_t and subsiduary structures. */
- New(0, RETVAL, 1, xs_ea_object_t);
- RETVAL->ea_obj = ea_obj = ea_alloc(sizeof (ea_object_t));
- bzero(ea_obj, sizeof (*ea_obj));
- ea_obj->eo_type = EO_ITEM;
- ea_obj->eo_catalog = catalog_value(catalog);
- INIT_PLAIN_ITEM_FLAGS(RETVAL);
- RETVAL->perl_obj = NULL;
-
- /* Assign the Item's value. */
- switch (ea_obj->eo_catalog & EXT_TYPE_MASK) {
- case EXT_UINT8:
- ea_obj->eo_item.ei_uint8 = SvIV(value);
- ea_obj->eo_item.ei_size = sizeof (uint8_t);
- break;
- case EXT_UINT16:
- ea_obj->eo_item.ei_uint16 = SvIV(value);
- ea_obj->eo_item.ei_size = sizeof (uint16_t);
- break;
- case EXT_UINT32:
- ea_obj->eo_item.ei_uint32 = SvIV(value);
- ea_obj->eo_item.ei_size = sizeof (uint32_t);
- break;
- case EXT_UINT64:
- ea_obj->eo_item.ei_uint64 = SvIV(value);
- ea_obj->eo_item.ei_size = sizeof (uint64_t);
- break;
- case EXT_DOUBLE:
- ea_obj->eo_item.ei_double = SvNV(value);
- ea_obj->eo_item.ei_size = sizeof (double);
- break;
- case EXT_STRING:
- ea_obj->eo_item.ei_string = ea_strdup(SvPV_nolen(value));
- ea_obj->eo_item.ei_size = SvCUR(value) + 1;
- break;
- case EXT_RAW:
- ea_obj->eo_item.ei_size = SvCUR(value);
- ea_obj->eo_item.ei_raw = ea_alloc(ea_obj->eo_item.ei_size);
- bcopy(SvPV_nolen(value), ea_obj->eo_item.ei_raw,
- (size_t)ea_obj->eo_item.ei_size);
- break;
- case EXT_EXACCT_OBJECT:
- /*
- * The ea_obj part is initially empty, and will be populated
- * from the perl_obj part when required.
- */
- stash = SvROK(value) ? SvSTASH(SvRV(value)) : NULL;
- if (stash != Sun_Solaris_Exacct_Object_Item_stash &&
- stash != Sun_Solaris_Exacct_Object_Group_stash) {
- croak("value is not of type " PKGBASE "::Object");
- }
- RETVAL->perl_obj = copy_xs_ea_object(value);
- ea_obj->eo_item.ei_object = NULL;
- ea_obj->eo_item.ei_size = 0;
- INIT_EMBED_ITEM_FLAGS(RETVAL);
- break;
- /*
- * EXT_NONE is an invalid type,
- * EXT_GROUP is created by the Group subclass constructor.
- */
- case EXT_NONE:
- case EXT_GROUP:
- default:
- ea_free(RETVAL->ea_obj, sizeof (RETVAL->ea_obj));
- Safefree(RETVAL);
- croak("Invalid object type");
- break;
- }
-OUTPUT:
- RETVAL
-
-MODULE = Sun::Solaris::Exacct::Object PACKAGE = Sun::Solaris::Exacct::Object::Group
-PROTOTYPES: ENABLE
-
-xs_ea_object_t *
-new(class, catalog, ...)
- char *class;
- SV *catalog;
-PREINIT:
- ea_catalog_t tag;
- ea_object_t *ea_obj;
- AV *tied_av, *av;
- SV *sv, *rv;
- int i;
-CODE:
- tag = catalog_value(catalog);
- if ((tag & EXT_TYPE_MASK) != EXT_GROUP) {
- croak("Invalid object type");
- }
-
- /* Create a new xs_ea_object_t and subsiduary structures. */
- New(0, RETVAL, 1, xs_ea_object_t);
- RETVAL->ea_obj = ea_obj = ea_alloc(sizeof (ea_object_t));
- bzero(ea_obj, sizeof (*ea_obj));
- ea_obj->eo_type = EO_GROUP;
- ea_obj->eo_catalog = tag;
- INIT_GROUP_FLAGS(RETVAL);
- RETVAL->perl_obj = NULL;
-
- /* Create a new AV and copy in all the passed Items. */
- av = newAV();
- av_extend(av, items - 2);
- for (i = 2; i < items; i++) {
- HV *stash;
- stash = SvROK(ST(i)) ? SvSTASH(SvRV(ST(i))) : NULL;
- if (stash != Sun_Solaris_Exacct_Object_Item_stash &&
- stash != Sun_Solaris_Exacct_Object_Group_stash) {
- croak("item is not of type " PKGBASE "::Object");
- }
- av_store(av, i - 2, copy_xs_ea_object(ST(i)));
- }
-
- /* Bless the copied AV and tie it to a new AV */
- rv = newRV_noinc((SV *)av);
- sv_bless(rv, Sun_Solaris_Exacct_Object__Array_stash);
- tied_av = newAV();
- sv_magic((SV *)tied_av, rv, 'P', Nullch, 0);
- SvREFCNT_dec(rv);
- RETVAL->perl_obj = newRV_noinc((SV *)tied_av);
-OUTPUT:
- RETVAL
-
- #
- # Return the contents of the group as a hashref, using the string value of each
- # item's catalog id as the key. There are two forms - as_hash() which stores
- # each hash value as a scalar, and should be used when it is known the group
- # does not contain duplicate catalog tags, and as_hashlist wich stores each
- # hash value as an array of values, and can therefore be used when the group
- # may contain duplicate catalog tags.
- #
-
-SV *
-as_hash(self)
- xs_ea_object_t *self;
-ALIAS:
- as_hashlist = 1
-PREINIT:
- MAGIC *mg;
- HV *hv;
- AV *av;
- int len, i;
-CODE:
- /* Make sure the object is inflated. */
- if (self->perl_obj == NULL) {
- if (! inflate_xs_ea_object(self)) {
- XSRETURN_UNDEF;
- }
- }
-
- /* Find the AV underlying the tie and create the new HV. */
- mg = mg_find(SvRV(self->perl_obj), 'P');
- PERL_ASSERT(mg != NULL);
- av = (AV *)SvRV(mg->mg_obj);
- PERL_ASSERT(av != NULL);
- hv = newHV();
-
- /*
- * Traverse the value array, saving the values in the hash,
- * keyed by the string value of the catalog id field.
- */
- len = av_len(av) + 1;
- for (i = 0; i < len; i++) {
- SV **svp, *val;
- xs_ea_object_t *xs_obj;
- const char *key;
-
- /* Ignore undef values. */
- if ((svp = av_fetch(av, i, FALSE)) == NULL) {
- continue;
- }
- PERL_ASSERT(*svp != NULL);
-
- /* Figure out the key. */
- xs_obj = INT2PTR(xs_ea_object_t *, SvIV(SvRV(*svp)));
- key = catalog_id_str(xs_obj->ea_obj->eo_catalog);
-
- /*
- * For Items, save the perl representation
- * of the underlying ea_object_t.
- */
- if (IS_ITEM(xs_obj)) {
- switch (xs_obj->ea_obj->eo_catalog & EXT_TYPE_MASK) {
- case EXT_UINT8:
- val =
- newSVuv(xs_obj->ea_obj->eo_item.ei_uint8);
- break;
- case EXT_UINT16:
- val =
- newSVuv(xs_obj->ea_obj->eo_item.ei_uint16);
- break;
- case EXT_UINT32:
- val =
- newSVuv(xs_obj->ea_obj->eo_item.ei_uint32);
- break;
- case EXT_UINT64:
- val =
- newSVuv(xs_obj->ea_obj->eo_item.ei_uint64);
- break;
- case EXT_DOUBLE:
- val =
- newSVnv(xs_obj->ea_obj->eo_item.ei_double);
- break;
- case EXT_STRING:
- val =
- newSVpvn(xs_obj->ea_obj->eo_item.ei_string,
- xs_obj->ea_obj->eo_item.ei_size - 1);
- break;
- case EXT_RAW:
- val =
- newSVpvn(xs_obj->ea_obj->eo_item.ei_raw,
- xs_obj->ea_obj->eo_item.ei_size);
- break;
- /*
- * For embedded objects and Groups, return a ref
- * to the perl SV.
- */
- case EXT_EXACCT_OBJECT:
- if (xs_obj->perl_obj == NULL) {
- /* Make sure the object is inflated. */
- if (! inflate_xs_ea_object(xs_obj)) {
- SvREFCNT_dec(hv);
- XSRETURN_UNDEF;
- }
- }
- val = SvREFCNT_inc(xs_obj->perl_obj);
- break;
- case EXT_GROUP:
- val = SvREFCNT_inc(xs_obj->perl_obj);
- break;
- case EXT_NONE:
- default:
- croak("Invalid object type");
- break;
- }
- /*
- * Now we deal with Groups.
- */
- } else {
- /* Make sure the object is inflated. */
- if (xs_obj->perl_obj == NULL) {
- if (! inflate_xs_ea_object(xs_obj)) {
- SvREFCNT_dec(hv);
- XSRETURN_UNDEF;
- }
- }
- val = SvREFCNT_inc(xs_obj->perl_obj);
- }
-
- /*
- * If called as as_hash(), store the value directly in the
- * hash, if called as as_hashlist(), store the value in an
- * array within the hash.
- */
- if (ix == 0) {
- hv_store(hv, key, strlen(key), val, FALSE);
- } else {
- AV *ary;
-
- /* If the key already exists in the hash. */
- svp = hv_fetch(hv, key, strlen(key), TRUE);
- if (SvOK(*svp)) {
- ary = (AV *)SvRV(*svp);
-
- /* Otherwise, add a new array to the hash. */
- } else {
- SV *rv;
- ary = newAV();
- rv = newRV_noinc((SV *)ary);
- sv_setsv(*svp, rv);
- SvREFCNT_dec(rv);
- }
- av_push(ary, val);
- }
- }
- RETVAL = newRV_noinc((SV *)hv);
-OUTPUT:
- RETVAL
-
-MODULE = Sun::Solaris::Exacct::Object PACKAGE = Sun::Solaris::Exacct::Object::_Array
-PROTOTYPES: ENABLE
-
- #
- # Copy the passed list of xs_ea_object_t.
- #
-void
-copy_xs_ea_objects(...)
-PREINIT:
- int i;
-PPCODE:
- EXTEND(SP, items);
- for (i = 0; i < items; i++) {
- HV *stash;
- stash = SvROK(ST(i)) ? SvSTASH(SvRV(ST(i))) : NULL;
- if (stash != Sun_Solaris_Exacct_Object_Item_stash &&
- stash != Sun_Solaris_Exacct_Object_Group_stash) {
- croak("item is not of type " PKGBASE "::Object");
- }
- PUSHs(sv_2mortal(copy_xs_ea_object(ST(i))));
- }
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/README b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/README
deleted file mode 100644
index c9f0178a2c..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/README
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-Licensing
----------
-This module is released under the Perl Artistic License.
-
-Availability
-------------
-This module is only available for Solaris 9 onwards.
-
-Description
------------
-This module provided access to the Solaris Extended Accounting (exacct)
-subsystem, which is part of the Solaris resource management infrastructure.
-
-For more information on Solaris Extended Accounting, see the libexacct(3LIB)
-and acctadm(1M) manpages and the following on-line documentation:
-
-System Administration Guide: Resource Management and Network Services
-Chapter 7 - Extended Accounting
-http://docs.sun.com/db/doc/816-7125, or any later version
-
-An example of how this module might be used is to dump the contents of an
-exacct data file:
-
-use Sun::Solaris::Exacct qw(:EXACCT_ALL);
-die("Usage is dumpexacct <exacct file>\n") unless (@ARGV == 1);
-my $ef = ea_new_file($ARGV[0], &O_RDONLY) || die(ea_error_str());
-printf("Creator: %s\n", $ef->creator());
-printf("Hostname: %s\n\n", $ef->hostname());
-while (my $obj = $ef->get()) {
- ea_dump_object($obj);
-}
-if (ea_error() != EXR_OK && ea_error() != EXR_EOF) {
- printf("\nERROR: %s\n", ea_error_str());
- exit(1);
-}
-exit(0);
-
-Installation
-------------
-
-1. Uncompress and untar the archive
-2. cd to the module directory
-3. perl Makefile.PL; make install
-
-If you are using gcc and wish to build this module against the perl shipped as
-part of Solaris, see the Solaris-PerlGcc module, also available from CPAN.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/README.ON b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/README.ON
deleted file mode 100644
index a280c1fb7e..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/README.ON
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-This module is released as Public Source via the Comprehensive Perl Archive
-Network (http://www.cpan.org). If it is updated for any reason, a new
-release should be pushed to CPAN.
-
-The version number of this module is derived from the $VERSION variable in
-Exacct.pm. If anything under this directory is modified, $VERSION should be
-changed in Exacct.pm to update the module version number correctly. If this
-is not done, it will not be possible to upload the generated archive to CPAN,
-as CPAN requires that uploaded archives have unique names.
-
-To prepare the contents of the directory for release, they should be packaged
-up as a .tar.gz archive. The procedure for this is:
-
-$ /usr/perl5/bin/perl Makefile.PL
-$ make tardist
-
-This will produce the file for upload to CPAN. Contact cpan-support@sun.com
-for details of how to do this.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/exacct_common.xh b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/exacct_common.xh
deleted file mode 100644
index 01d891bbfd..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/exacct_common.xh
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
- *
- * Common includes and defines for Sun::Solaris::Exacct.
- */
-
-#ifndef _EXACCT_COMMON_H
-#define _EXACCT_COMMON_H
-
-/* Exacct related includes. */
-#include <exacct.h>
-
-/*
- * On i386 Solaris defines SP, which conflicts with the perl definition of SP
- * We don't need the Solaris one, so get rid of it to avoid warnings.
- */
-#undef SP
-
-/* Perl XS includes. */
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-/* Root of the Exacct namespace. */
-#define PKGBASE "Sun::Solaris::Exacct"
-
-/* Debugging assertion macros. */
-#ifdef EXACCT_DEBUG
-#define PERL_ASSERT(EXPR) ((void)((EXPR) || \
- (croak("%s(%d) assertion failed: %s", __FILE__, __LINE__, #EXPR), 0), \
- 0))
-#define PERL_ASSERTMSG(EXPR, MSG) ((void)((EXPR) || \
- (croak("%s(%d) %s", __FILE__ __LINE__, MSG), 0), 0))
-#else
-#define PERL_ASSERT(EXP) ((void)0)
-#define PERL_ASSERTMSG(EXP, MSG) ((void)0)
-#endif
-
-/*
- * Object stash pointers - caching these speeds up the creation and
- * typechecking of perl objects by removing the need to do a hash lookup.
- * The peculiar variable names are so that typemaps can generate the correct
- * package name using the typemap '$Package' variable as the root of the name.
- */
-extern HV *Sun_Solaris_Exacct_Catalog_stash;
-extern HV *Sun_Solaris_Exacct_File_stash;
-extern HV *Sun_Solaris_Exacct_Object_Item_stash;
-extern HV *Sun_Solaris_Exacct_Object_Group_stash;
-extern HV *Sun_Solaris_Exacct_Object__Array_stash;
-
-/* Populate the stash pointers, provided by Exacct.xs. */
-extern void init_stashes(void);
-
-/*
- * Pointer to part of the hash tree built by define_catalog_constants in
- * Catalog.xs. This is used by catalog_id_str() in Exacct.xs when mapping
- * from a catalog to an id string.
- */
-extern HV *IdValueHash;
-extern char *catalog_id_str(ea_catalog_t catalog);
-
-/*
- * Structure for holding an ::Exacct::Object. Different bits of this structure
- * will be populated depending on the type of Object (Item or Group), and on
- * how the Object was created (read from file or by the script).
- *
- * Simple Items
- * Only the ea_obj part is populated, and that points to an ea_object_t
- * that is used to hold the Item.
- *
- * Items containing embedded Objects
- * If an Item of this type has been read from file and has not been accessed,
- * just the ea_obj part will be populated. If the object has been accessed, or
- * if it has been created from within the script, the perl_obj part will be
- * populated.
- *
- * Groups
- * If a Group has been read from file and has not been accessed, just the
- * ea_obj part will be populated. If the object has been accessed, or if it has
- * been created from within the script, the perl_obj part will be populated.
- */
-typedef struct {
- ea_object_t *ea_obj; /* Underlying exacct object. */
- SV *perl_obj; /* Underlying perl object. */
- uchar_t flags; /* Object type and status. */
-} xs_ea_object_t;
-
-/* Macros for manipulating flag bits. */
-#define TYPE_MASK 0x03
-#define PLAIN_ITEM 0x00
-#define EMBED_ITEM 0x01
-#define GROUP 0x02
-
-#define GET_TYPE_BITS(X) ((X)->flags & TYPE_MASK)
-#define SET_TYPE_BITS(X, Y) ((X)->flags = (((X)->flags & ~TYPE_MASK) | Y)
-#define SET_PLAIN_ITEM(X) (SET_TYPE_BITS(X, PLAIN_ITEM))
-#define SET_EMBED_ITEM(X) (SET_TYPE_BITS(X, EMBED_ITEM))
-#define SET_GROUP(X) (SET_TYPE_BITS(X, GROUP))
-#define IS_ITEM(X) (GET_TYPE_BITS(X) < GROUP)
-#define IS_PLAIN_ITEM(X) (GET_TYPE_BITS(X) == PLAIN_ITEM)
-#define IS_EMBED_ITEM(X) (GET_TYPE_BITS(X) == EMBED_ITEM)
-#define IS_GROUP(X) (GET_TYPE_BITS(X) == GROUP)
-
-#define INIT_PLAIN_ITEM_FLAGS(X) ((X)->flags = PLAIN_ITEM)
-#define INIT_EMBED_ITEM_FLAGS(X) ((X)->flags = EMBED_ITEM)
-#define INIT_GROUP_FLAGS(X) ((X)->flags = GROUP)
-
-/* Fast way to make catalog objects, provided by Exacct.xs. */
-extern SV *new_catalog(ea_catalog_t cat);
-
-/* Return the integer catalog value from the passed object or SV. */
-extern ea_catalog_t catalog_value(SV *catalog);
-
-/* Fast way to make exacct objects, provided by Exacct.xs. */
-extern SV *new_xs_ea_object(ea_object_t *obj);
-
-/* Deflate an xs_ea_object, provided by Exacct.xs. */
-extern ea_object_t *deflate_xs_ea_object(SV *sv);
-
-/*
- * Structure and associated function for creating perl constants
- * and populating @_Constants, used for constant lookup by the modules.
- * See Exacct.xs for the definition of define_constants().
- */
-typedef enum { other = 0, type, catlg, id } consttype_t;
-typedef struct {
- const char *name;
- const int len;
- const consttype_t consttype;
- const unsigned int value;
-} constval_t;
-extern void define_constants(const char *pkg, constval_t *dvp);
-
-#endif /* _EXACCT_COMMON_H */
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/extract_defines b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/extract_defines
deleted file mode 100644
index a3615bcfc6..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/extract_defines
+++ /dev/null
@@ -1,159 +0,0 @@
-#
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# This script scans the exacct header files and extracts the names of any
-# #defines that are to be exported by the Exacct modules. All such #defines
-# are written out as an array of structs to a file which is subsequently
-# included into the module. Parameters to this script are the name of the
-# module to generate for, and the output file to use.
-#
-
-use warnings;
-use strict;
-
-# Forward declarations
-sub default_typefn;
-sub catalog_typefn;
-
-#
-# Map of module names to files and lists + patterns of macros to declare.
-# Each entry in the hash is keyed by the module name, and the value of each
-# entry is a list of actions, where each action is a (keyword, param) pair.
-# The valid actions are:
-# typefn => <fn_ptr>
-# fn_ptr is a function which when given a constant name,
-# returns the type - see default_typefn and catalog_typefn.
-# declare => [ <constant>, ... ]
-# Add the passed list of constants.
-# scan => [ <file> <regular expression> ]
-# Scan the specified file in /usr/include
-# for #defines that match the passed RE.
-#
-our %ModMap = (
- Exacct => [
- typefn => \&default_typefn,
- declare => [ qw(P_PID P_TASKID P_PROJID) ],
- scan => [ 'sys/exacct.h' =>
- qr/(?:EW|EP|EXR)_\w+/ ],
- ],
- Catalog => [
- typefn => \&catalog_typefn,
- scan => [ 'sys/exacct_catalog.h' =>
- qr/EX[TCD]_\w+/ ],
- ],
- File => [
- typefn => \&default_typefn,
- # From exacct.h.
- declare => [ qw(EO_HEAD EO_TAIL EO_NO_VALID_HDR
- EO_POSN_MSK EO_VALIDATE_MSK) ],
- ],
- Object => [
- typefn => \&default_typefn,
- # From sys/exacct.h.
- declare => [ qw(EO_ERROR EO_NONE EO_ITEM EO_GROUP) ],
- ],
-);
-
-#
-# Constants may have a 'type' associated, currently only used by ::Catalog
-# (see below). For all other cases the type is 'other'.
-#
-sub default_typefn
-{
- return('other');
-}
-
-#
-# ::Catalog uses the 'type' field to determine whether a given constant is a
-# type, a catalog or a data id. This function works out what type of constant
-# has been passed and returns the appropriate type.
-#
-sub catalog_typefn
-{
- my ($define) = @_;
- if ($define =~ /_MASK$/) {
- return('other');
- } elsif ($define =~ /^EXT_/) {
- return('type');
- } elsif ($define =~ /^EXC_/) {
- return('catlg');
- } elsif ($define =~ /^EXD_/) {
- return('id');
- } else {
- return('other');
- }
-}
-
-#
-# Process a C header file, looking for #defines of interest. Candidates are
-# saved in the $defines arrayref. Note nested includes are not processed.
-#
-sub process_file
-{
- my ($file, $filelist, $pattern, $typefn, $defines) = @_;
- my $fh;
- if ($_ = (grep(m{/$file$}, @$filelist))[0]) {
- open($fh, '<', $_) || die("Can't open $_: $!\n");
- } else {
- die("Can't find $file\n");
- }
- my $line;
- while (defined($line = <$fh>)) {
- if ($line =~ /#define\s+\b($pattern)\b/) {
- $defines->{$1} = &$typefn($1);
- }
- }
- close($fh);
-}
-
-#
-# Main routine.
-#
-
-# Check arguments and open the output file.
-die("Usage is extract_defines <module> <output file> <input files...>\n")
- unless (@ARGV >= 2);
-my ($module, $outfile, @filelist) = @ARGV;
-my $mm;
-if (! defined($mm = $ModMap{$module})) {
- die("Don't know how to handle module $module\n")
-}
-my $out;
-if (! open($out, ">$outfile")) {
- die("Can't open $outfile: $!\n");
-}
-
-# Perform the appropriate set of actions from ModMap for the specified module.
-my $defines = {};
-my $tfn = \&default_typefn;
-my $i = 0;
-while ($i < @$mm) {
- my $act = $$mm[$i++];
- my $parm = $$mm[$i++];
- if ($act eq 'typefn') {
- $tfn = $parm;
- } elsif ($act eq 'declare') {
- foreach my $d (@$parm) {
- $defines->{$d} = &$tfn($d);
- }
- } elsif ($act eq 'scan') {
- process_file($parm->[0], \@filelist, $parm->[1], $tfn,
- $defines);
- } else {
- die("Illegal action $act\n");
- }
-}
-
-# Print the structure definition.
-print $out ("static constval_t constants[] = {\n");
-foreach my $def (sort(keys(%$defines))) {
- my $type = $defines->{$def};
- my $len = length($def);
- my $t = "\t" . "\t" x (3 - int(($len + 3) / 8));
- print $out ("\t\"$def\",$t$len,\t$type,\n\t (unsigned int) $def,\n");
-}
-print $out ("\tNULL,\t\t\t\t0,\tother,\n\t 0,\n};\n");
-close($out);
-exit(0);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Catalog.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Catalog.pod
deleted file mode 100644
index 4b6d7f096e..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Catalog.pod
+++ /dev/null
@@ -1,144 +0,0 @@
-#
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Sun::Solaris::Exacct::Catalog documentation.
-#
-
-=head1 NAME
-
-Sun::Solaris::Exacct::Catalog - exacct catalog tag manipulation
-
-=head1 SYNOPSIS
-
- use Sun::Solaris::Exacct::Catalog qw(:ALL);
- my $ea_cat = Sun::Solaris::Exacct::Catalog->new(
- &EXT_UINT64 | &EXC_DEFAULT | &EXD_PROC_PID);
-
-This class provides a wrapper around the 32-bit integer used as a catalog tag.
-The catalog tag is represented as a Perl object blessed into the
-C<Sun::Solaris::Exacct::Catalog> class so that methods can be used to manipulate
-fields in a catalog tag.
-
-=head2 Constants
-
-All the C<EXT_*>, C<EXC_*>, and C<EXD_*> macros are provided as constants.
-Constants passed to the methods below can either be the integer value such as
-C<EXT_UINT8> or the string representation such as C<"EXT_UINT8">.
-
-=head2 Functions
-
-None.
-
-=head2 Class methods
-
-B<C<register($cat_pfx, $catalog_id, $export, @idlist)>>
-
-This method is used to register application-defined C<libexacct(3LIB)>
-catalogs with the exacct Perl library. See
-F</usr/include/sys/exacct_catalog.h> for details of the catalog tag format.
-This method allows symbolic names and strings to be used for manipulating
-application-defined catalogs. The first two parameters define the catalog
-prefix and associated numeric catalog ID. If the C<$export> parameter is true,
-the constants are exported into the caller's package. The final parameter is a
-list of C<(id, name)> pairs that identify the required constants. The
-constants created by this method are formed by appending C<$cat_pfx> and
-C<"_"> to each name in the list, replacing any spaces with underscore
-characters and converting the resulting string to uppercase characters. The
-C<$catalog_name> value is also created as a constant by prefixing it with
-C<EXC_> and converting it to uppercase characters. Its value becomes that of
-C<$catalog_id> shifted left by 24 bits. For example, the following call:
-
- Sun::Solaris::Exacct::Catalog->ea_register("MYCAT", 0x01, 1,
- FIRST => 0x00000001, SECOND => 0x00000010);
-
-results in the definition of the following constants:
-
- EXC_MYCAT 0x01 << 24
- MYCAT_FIRST 0x00000001
- MYCAT_SECOND 0x00000010
-
-Only the catalog ID value of 0x01 is available for application use
-C<(EXC_LOCAL)>. All other values are reserved. While it is possible to use
-values other than 0x01, they might conflict with future extensions to the
-libexacct file format.
-
-If any errors are detected during this method, a string is returned containing
-the appropriate error message. If the call is sucessful, C<undef> is returned.
-
-B<C<new($integer)>>
-
-B<C<new($cat_obj)>>
-
-B<C<new($type, $catalog, $id)>>
-
-This method creates and returns a new Catalog object, which is a wrapper
-around a 32-bit integer catalog tag. Three possible argument lists can be
-given. The first variant is to pass an integer formed by bitwise-inclusive OR
-of the appropriate C<EX[TCD]_*> constants. The second variant is to pass an
-existing Catalog object that will be copied. The final variant is to pass in
-the type, catalog and ID fields as separate values. Each of these values can
-be either an appropriate integer constant or the string representation of the
-constant.
-
-=head2 Object methods
-
-B<C<value()>>
-
-This method allows the value of the catalog tag to be queried. In a scalar
-context it returns the 32-bit integer representing the tag. In a list context
-it returns a C<(type, catalog, id)> triplet, where each member of the triplet
-is a dual-typed scalar.
-
-B<C<type()>>
-
-This method returns the type field of the catalog tag as a dual-typed scalar.
-
-B<C<catalog()>>
-
-This method returns the catalog field of the catalog tag as a dual-typed
-scalar.
-
-B<C<id()>>
-
-This method returns the id field of the catalog tag as a dual-typed scalar.
-
-B<C<type_str()>>
-
-B<C<catalog_str()>>
-
-B<C<id_str()>>
-
-These methods return string representations of the appropriate value. These
-methods can be used for textual output of the various catalog fields. The
-string representations of the constants are formed by removing the C<EXT_>,
-C<EXC_>, or C<EXD_> prefix, replacing any underscore characters with spaces,
-and converting the remaining string to lowercase characters.
-
-=head2 Exports
-
-By default nothing is exported from this module. The following tags can be
-used to selectively import constants and functions defined in this module:
-
- :CONSTANTS EXT_*, EXC_*, and EXD_*
-
- :ALL :CONSTANTS
-
-=head2 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
- | Interface Stability | Evolving |
- |_____________________________|_____________________________|
-
-=head1 SEE ALSO
-
-C<Sun::Solaris::Exacct(3)>, C<Sun::Solaris::Exacct::File(3)>,
-C<Sun::Solaris::Exacct::Object(3)>, C<Sun::Solaris::Exacct::Object::Group(3)>,
-C<Sun::Solaris::Exacct::Object::Item(3)>, C<libexacct(3LIB)>, C<attributes(5)>
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Exacct.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Exacct.pod
deleted file mode 100644
index 892f38ede0..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Exacct.pod
+++ /dev/null
@@ -1,193 +0,0 @@
-#
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Sun::Solaris::Exacct documentation.
-#
-
-=head1 NAME
-
-Sun::Solaris::Exacct - exacct system calls and error handling
-
-=head1 SYNOPSIS
-
- use Sun::Solaris::Exacct qw(:EXACCT_ALL);
- my $ea_rec = getacct(P_PID, $$);
-
-This module provides access to the C<ea_error(3EXACCT)> function and for all the
-extended accounting system calls. Constants from the various C<libexacct(3LIB)>
-header files are also provided.
-
-=head2 Constants
-
-The C<P_PID>, C<P_TASKID>, C<P_PROJID> and all the C<EW_*>, C<EP_*>, C<EXR_*>
-macros are provided as Perl constants.
-
-=head2 Functions
-
-B<C<getacct($idtype, $id)>>
-
-The C<$idtype> parameter must be either C<P_TASKID> or C<P_PID> and C<$id>
-must be a corresponding task or process ID. This function returns an object of
-type C<Sun::Solaris::Exacct::Object>, representing the unpacked accounting
-buffer returned by the underlying C<getacct(2)> system call. In the event of
-error, C<undef> is returned.
-
-B<C<putacct($idtype, $id, $record)>>
-
-The C<$idtype> parameter must be either C<P_TASKID> or C<P_PID> and C<$id>
-must be a corresponding task or process ID. If C<$record> is of type
-C<Sun::Solaris::Exacct::Object>, it is converted to the corresponding packed
-libexacct object and passed to the C<putacct(2)> system call. If C<$record> is
-not of type C<Sun::Solaris::Exacct::Object> it is converted to a string using
-the normal Perl conversion rules and stored as a raw buffer. For predictable
-and endian-independent results, any raw buffers should be constructed using
-the Perl C<pack()> function. This function returns C<true> on success and
-C<false> on failure.
-
-B<C<wracct($idtype, $id, $flags)>>
-
-The C<$idtype> parameter must be either C<P_TASKID> or C<P_PID> and $id must
-be a corresponding task or process ID. The C<$flags> parameter must be either
-C<EW_INTERVAL> or C<EW_PARTIAL>. The parameters are passed directly to the
-underlying C<wracct(2)> system call. This function returns C<true> on success
-and C<false> on failure.
-
-B<C<ea_error()>>
-
-This function provides access to the C<ea_error(3EXACCT)> function. It returns
-a double-typed scalar that in a numeric context will be one of the C<EXR_*>
-constants. In a string context it will be a descriptive error message. This is
-the exacct equivalent to the C<$!> (C<errno>) Perl variable.
-
-B<C<ea_error_str()>>
-
-This function returns a double-typed scalar that in a numeric context will be
-one of the C<EXR_*> constants as returned by C<ea_error>. In a string context
-it describes the value returned by C<ea_error>. If C<ea_error> returns
-C<EXR_SYSCALL_FAIL>, the string value returned is the value returned by
-C<strerror(3C)>. This function is provided as a convenience so that repeated
-blocks of code like the following can be avoided:
-
- if (ea_error() == EXR_SYSCALL_FAIL) {
- print("error: $!\n");
- } else {
- print("error: ", ea_error(), "\n");
- }
-
-B<C<ea_register_catalog($cat_pfx, $catalog_id, $export, @idlist)>>
-
-This convenience function is a wrapper around the
-C<< Sun::Solaris::Exacct::Catalog->register() >> method.
-
-B<C<ea_new_catalog($integer)>>
-
-B<C<ea_new_catalog($cat_obj)>>
-
-B<C<ea_new_catalog($type, $catalog, $id)>>
-
-These convenience functions are wrappers around the
-C<< Sun::Solaris::Exacct::Catalog->new() >> method. See
-C<Sun::Solaris::Exacct::Catalog(3)>.
-
-B<C<< ea_new_file($name, $oflags, creator => $creator,
- aflags => $aflags, mode => $mode) >>>
-
-This convenience function is a wrapper around the
-C<< Sun::Solaris::Exacct::File->new() >> method. See
-C<Sun::Solaris::Exacct::File(3)>.
-
-B<C<ea_new_item($catalog, $value)>>
-
-This convenience function is a wrapper around the
-C<< Sun::Solaris::Exacct::Object::Item->new() >> method. See
-C<Sun::Solaris::Exacct::Object::Item(3)>.
-
-B<C<ea_new_group($catalog, @objects)>>
-
-This convenience function is a wrapper around the
-C<< Sun::Solaris::Exacct::Object::Group->new() >> method. See
-C<Exacct::Object::Group(3)>.
-
-B<C<ea_dump_object($object, $filehandle)>>
-
-This convenience function is a wrapper around the
-C<< Sun::Solaris::Exacct::Object->dump() >> method. See
-C<Sun::Solaris::Exacct::Object(3)>.
-
-=head2 Class methods
-
-None.
-
-=head2 Object methods
-
-None.
-
-=head2 Exports
-
-By default nothing is exported from this module. The following tags can be
-used to selectively import constants and functions defined in this module:
-
- :SYSCALLS getacct(), putacct(), and wracct()
-
- :LIBCALLS ea_error() and ea_error_str()
-
- :CONSTANTS P_PID, P_TASKID, P_PROJID, EW_*, EP_*, and EXR_*
-
- :SHORTHAND ea_register_catalog(), ea_new_catalog(), ea_new_file(),
- ea_new_item(), and ea_new_group()
-
- :ALL :SYSCALLS, :LIBCALLS, :CONSTANTS, and :SHORTHAND
-
- :EXACCT_CONSTANTS :CONSTANTS, plus the :CONSTANTS tags for
- Sun::Solaris::Catalog, Sun::Solaris::File,
- and Sun::Solaris::Object
-
- :EXACCT_ALL :ALL, plus the :ALL tags for Sun::Solaris::Catalog,
- Sun::Solaris::File, and Sun::Solaris::Object
-
-=head1 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
- | Interface Stability | Evolving |
- |_____________________________|_____________________________|
-
-
-=head1 SEE ALSO
-
-C<getacct(2)>, C<putacct(2)>, C<wracct(2)>, C<ea_error(3EXACCT)>,
-C<Sun::Solaris::Exacct::Catalog(3)>, C<Sun::Solaris::Exacct::File(3)>,
-C<Sun::Solaris::Exacct::Object(3)>, C<Sun::Solaris::Exacct::Object::Group(3)>,
-C<Sun::Solaris::Exacct::Object::Item(3)>, C<libexacct(3LIB)>, C<attributes(5)>
-
-=head1 NOTES
-
-The modules described in the C<Sun::Solaris::Exacct> manual pages make
-extensive use of the Perl "double-typed scalar" facility. This facility allows
-a scalar value to behave either as an integer or as a string, depending upon
-context. It is the same behavior as exhibited by the C<$!> Perl variable
-(C<errno>). It is useful because it avoids the need to map from an integer
-value to the corresponding string to display a value. Some examples are
-provided below:
-
- # Assume $obj is a Sun::Solaris::Exacct::Item
- my $type = $obj->type();
-
- # Print "2 EO_ITEM"
- printf("%d %s\n", $type, $type);
-
- # Behave as an integer, $i == 2
- my $i = 0 + $type;
-
- # Behave as a string, $s = "abc EO_ITEM xyx"
- my $s = "abc $type xyz";
-
-Wherever a function or method is documented as returning a double-typed
-scalar, the returned value exhibits this type of behavior.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/File.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/File.pod
deleted file mode 100644
index bca33c1365..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/File.pod
+++ /dev/null
@@ -1,178 +0,0 @@
-#
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Sun::Solaris::Exacct::File documentation.
-#
-
-=head1 NAME
-
-Sun::Solaris::Exacct::File - exacct file manipulation
-
-=head1 SYNOPSIS
-
- use Sun::Solaris::Exacct::File qw(:ALL);
- my $ea_file = Sun::Solaris::Exacct::File->new($myfile, &O_RDONLY);
- my $ea_obj = $ea_file->get();
-
-This module provides access to the C<libexacct(3LIB)> functions that
-manipulate accounting files. The interface is object-oriented and allows the
-creation and reading of libexacct files. The C library calls wrapped by this
-module are C<ea_open(3EAXACCT)>, C<ea_close(3EAXACCT)>,
-C<ea_next_object(3EAXACCT)>, C<ea_previous_object(3EAXACCT)>,
-C<ea_write_object(3EAXACCT)>, C<ea_get_object(3EAXACCT)>,
-C<ea_get_creator(3EAXACCT)>, and C<ea_get_hostname(3EAXACCT)>. The file read
-and write methods all operate on C<Sun::Solaris::Exacct::Object> objects and
-perform all the necessary memory management, packing, unpacking, and structure
-conversions that are required.
-
-=head2 Constants
-
-C<EO_HEAD>, C<EO_TAIL>, C<EO_NO_VALID_HDR>, C<EO_POSN_MSK>, and
-C<EO_VALIDATE_MSK>. Other constants needed by the C<new()> method below are in
-the standard Perl C<Fcntl> module.
-
-=head2 Functions
-
-None.
-
-=head2 Class methods
-
-B<C<< new($name, $oflags, creator => $creator,
- aflags => $aflags, mode => $mode) >>>
-
-This method opens a libexacct file as specified by the mandatory parameters
-C<$name> and C<$oflags>, and returns a C<Sun::Solaris::Exacct::File> object,
-or C<undef> if an error occurs. The parameters C<$creator>, C<$aflags>, and
-C<$mode> are optional and are passed as C<(name => value)> pairs. The only
-valid values for C<$oflags> are the combinations of C<O_RDONLY>, C<O_WRONLY>,
-C<O_RDWR>, and C<O_CREAT> described below.
-
-The C<$creator> parameter is a string describing the creator of the file. If
-it is required (for instance, when writing to a file) but absent, it is set to
-the string representation of the caller's UID. The C<$aflags> parameter
-describes the required positioning in the file for C<O_RDONLY> access: either
-C<EO_HEAD> or C<EO_TAIL> are allowed. If absent, C<EO_HEAD> is assumed. The
-C<$mode> parameter is the file creation mode and is ignored unless C<O_CREAT>
-is specified in C<$oflags>. If C<$mode> is unspecified, the file creation mode
-is set to C<0666> (octal). If an error occurs, it can be retrieved with the
-C<Sun::Solaris::Exacct::ea_error()> function.
-(See C<Sun::Solaris::Exacct(3)>).
-
-B<C< $oflags $aflags Action>>
-
- O_RDONLY Absent or EO_HEAD Open for reading
- at the start of
- the file.
-
- O_RDONLY EO_TAIL Open for reading
- at the end of the
- file.
-
- O_WRONLY Ignored File must exist,
- open for writing
- at the end of the
- file.
-
- O_WRONLY | O_CREAT Ignored Create file if it
- does not exist,
- otherwise truncate
- and open for writing.
-
- O_RDWR Ignored File must exist,
- open for
- reading/writing,
- positioned at the
- end of the file.
-
- O_RDWR | O_CREAT Ignored Create file if it
- does not exist,
- otherwise truncate
- and open for
- reading/writing.
-
-=head2 Object methods
-
-B<Note:> Closing a C<Sun::Solaris::Exacct::File>
-
-There is no explicit C<close()> method for a C<Sun::Solaris::Exacct::File>.
-The file is closed when the file handle object is undefined or reassigned.
-
-B<C<creator()>>
-
-This method returns a string containing the creator of the file or C<undef> if
-the file does not contain the information.
-
-B<C<hostname()>>
-
-This method returns a string containing the hostname on which the file was
-created, or C<undef> if the file does not contain the information.
-
-B<C<next()>>
-
-This method reads the header information of the next record in the file. In a
-scalar context the value of the type field is returned as a dual-typed scalar
-that will be one of C<EO_ITEM>, C<EO_GROUP>, or C<EO_NONE>. In a list context
-it returns a two-element list containing the values of the type and catalog
-fields. The type element is a dual-typed scalar. The catalog element is
-blessed into the C<Sun::Solaris::Exacct::Catalog> class. If an error occurs,
-C<undef> or C<(undef, undef)> is returned depending upon context. The status
-can be accessed with the C<Sun::Solaris::Exacct::ea_error()> function. (See
-C<Sun::Solaris::Exacct(3)>).
-
-B<C<previous()>>
-
-This method reads the header information of the previous record in the file.
-In a scalar context it returns the type field. In a list context it returns
-the two element list containing the values of the type and catalog fields, in
-the same manner as the C<next()> method. Error are also returned in the same
-manner as the C<next()> method.
-
-B<C<get()>>
-
-This method reads in the libexacct record at the current position in the file
-and returns a C<Sun::Solaris::Exacct::Object> containing the unpacked data
-from the file. This object can then be further manipulated using its methods.
-In case of error C<undef> is returned and the error status is made available
-with the C<Sun::Solaris::Exacct::ea_error()> function. After this operation,
-the position in the file is set to the start of the next record in the file.
-
-B<C<write(@ea_obj)>>
-
-This method converts the passed list of C<Sun::Solaris::Exacct::Object>s into
-libexacct file format and appends them to the libexacct file, which must be
-open for writing. This method returns C<true> if successful and C<false>
-otherwise. On failure the error can be examined with the
-C<Sun::Solaris::Exacct::ea_error()> function.
-
-=head2 Exports
-
-By default nothing is exported from this module. The following tags can be
-used to selectively import constants defined in this module:
-
- :CONSTANTS EO_HEAD, EO_TAIL, EO_NO_VALID_HDR, EO_POSN_MSK, and
- EO_VALIDATE_MSK
-
- :ALL :CONSTANTS, Fcntl(:DEFAULT).
-
-=head1 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | SUNWpl5u |
- |_____________________________|_____________________________|
- | Interface Stability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
-
-=head1 SEE ALSO
-
-C<ea_close(3EXACCT)>, C<ea_get_creator(3EXACCT)>, C<ea_get_hostname(3EXACCT)>,
-C<ea_get_object(3EXACCT)>, C<ea_next_object(3EXACCT)>, C<ea_open(3EXACCT)>,
-C<ea_previous_object(3EXACCT)>, C<ea_write_object(3EXACCT)>,
-C<Sun::Solaris::Exacct(3)>, C<Sun::Solaris::Exacct::Catalog(3)>,
-C<Sun::Solaris::Exacct::Object(3)>, C<Sun::Solaris::Exacct::Object::Group(3)>,
-C<Sun::Solaris::Exacct::Object::Item(3)>, C<libexacct(3LIB)>, C<attributes(5)>
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Group.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Group.pod
deleted file mode 100644
index 2e67d6392b..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Group.pod
+++ /dev/null
@@ -1,98 +0,0 @@
-#
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Sun::Solaris::Exacct::Object::Group documentation.
-#
-
-=head1 NAME
-
-Sun::Solaris::Exacct::Object::Group - exacct group manipulation
-
-=head1 SYNOPSIS
-
- use Sun::Solaris::Exacct::Object;
- my $ea_grp = Sun::Solaris::Exacct::Object::Group->new(
- &EXT_GROUP | &EXC_DEFAULT | &EXD_GROUP_PROC);
-
-This module is used for manipulating C<libexacct(3LIB)> Group objects. A
-libexacct Group object is represented as an opaque reference blessed into the
-C<Sun::Solaris::Exacct::Object::Group> class, which is a subclass of the
-C<Sun::Solaris::Exacct::Object> class. The Items within a Group are stored
-inside a Perl array. A reference to the array can be accessed with the
-inherited value() method. The individual Items within a Group can be
-manipulated with the normal Perl array syntax and operators. All data elements
-of the array must be derived from the C<Sun::Solaris::Exacct::Object> class.
-Group objects can also be nested inside each other simply by adding an
-existing Group as a data Item.
-
-=head2 Constants
-
-None.
-
-=head2 Functions
-
-None.
-
-=head2 Class methods
-
-Class methods include those inherited from the C<Sun::Solaris::Exacct::Object>
-base class, plus the following:
-
-B<C<new($catalog, @objects)>>
-
-This method creates and returns a new C<Sun::Solaris::Exacct::Object::Group>.
-The catalog tag can be either an integer or a
-C<Sun::Solaris::Exacct::Catalog>. The catalog tag should be a valid catalog
-tag for a Perl exacct Group object. The C<@objects> parameter is a list of
-C<Sun::Solaris::Exacct::Object> to be stored inside the Group. A copy of all
-the passed Items is taken and any Group objects are recursively copied. The
-contents of the returned Group object can be accessed with the array returned
-by the C<value()> method.
-
-=head2 Object methods
-
-B<C<as_hash()>>
-
-This method returns the contents of the group as a hash reference. It uses the
-string value of each item's catalog ID as the hash entry key and the scalar
-value returned by C<value()> as the hash entry value.
-
-This form should be used if there are no duplicate catalog tags in the group.
-
-This method and its companion C<as_hashlist()> are the fastest ways to access
-the contents of a Group.
-
-B<C<as_hashlist()>>
-
-This method returns the contents of the group as a hash reference. It uses the
-string value of each item's catalog id as the hash entry key and an array of
-the scalar values returned by C<value()> as the hash entry value for all the
-items that share a common key. This form should be used if there might be
-duplicate catalog tags in the group.
-
-This method and its companion C<as_hash()> are the fastest ways to access the
-contents of a Group.
-
-=head2 Exports
-
-None.
-
-=head1 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
- | Interface Stability | Evolving |
- |_____________________________|_____________________________|
-
-=head1 SEE ALSO
-
-C<Sun::Solaris::Exacct(3)>, C<Sun::Solaris::Exacct::Catalog(3)>,
-C<Sun::Solaris::Exacct::File(3)>, C<Sun::Solaris::Exacct::Object(3)>,
-C<Sun::Solaris::Exacct::Object::Item(3)>, C<libexacct(3LIB)>, C<attributes(5)>
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Item.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Item.pod
deleted file mode 100644
index e4ef2f61f5..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Item.pod
+++ /dev/null
@@ -1,94 +0,0 @@
-#
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Sun::Solaris::Exacct::Object::Item documentation.
-#
-
-=head1 NAME
-
-Sun::Solaris::Exacct::Object::Item - exacct item manipulation
-
-=head1 SYNOPSIS
-
- use Sun::Solaris::Exacct::Object;
- my $ea_item = Sun::Solaris::Exacct::Object::Item->new(
- &EXT_UINT64 | &EXC_DEFAULT | &EXD_PROC_PID, $$);
-
-This module is used for manipulating C<libexacct(3LIB)> data Items. A
-libexacct Item is represented as an opaque reference blessed into the
-C<Sun::Solaris::Exacct::Object::Item> class, which is a subclass of the
-C<Sun::Solaris::Exacct::Object> class. The underlying libexacct data types are
-mapped onto Perl types as follows:
-
-B<C< libexacct type Perl internal type>>
-
- EXT_UINT8 IV (integer)
-
- EXT_UINT16 IV (integer)
-
- EXT_UINT32 IV (integer)
-
- EXT_UINT64 IV (integer)
-
- EXT_DOUBLE NV (double)
-
- EXT_STRING PV (string)
-
- EXT_RAW PV (string)
-
- EXT_EXACCT_OBJECT Sun::Solaris::Exacct::Object subclass
-
-=head2 Constants
-
-None.
-
-=head2 Functions
-
-None.
-
-=head2 Class methods
-
-Class methods include those inherited from the C<Sun::Solaris::Exacct::Object>
-base class, plus the following:
-
-B<C<new($catalog, $value)>>
-
-This method creates and returns a new C<Sun::Solaris::Exacct::Object::Item>.
-The catalog tag can be either an integer or a
-C<Sun::Solaris::Exacct::Catalog>. This catalog tag controls the conversion of
-the Perl value to the corresponding Perl exacct data type as described in the
-table above. If the catalog tag has a type field of C<EXT_EXACCT_OBJECT>, the
-value must be a reference to either an Item or a Group object and the passed
-object is recursively copied and stored inside the new Item. Because the
-returned Item is constant, it is impossible, for example, to create an Item
-representing CPU seconds and subsequently modify its value or change its
-catalog value. This behavior is intended to prevent mismatches between the
-catalog tag and the data value.
-
-=head2 Object methods
-
-Object methods are those inherited from the C<Sun::Solaris::Exacct::Object>.
-
-=head2 Exports
-
-None.
-
-=head1 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
- | Interface Stability | Evolving |
- |_____________________________|_____________________________|
-
-=head1 SEE ALSO
-
-C<Sun::Solaris::Exacct(3)>, C<Sun::Solaris::Exacct::Catalog(3)>,
-C<Sun::Solaris::Exacct::File(3)>, C<Sun::Solaris::Exacct::Object(3)>,
-C<Sun::Solaris::Exacct::Object::Group(3)>, C<libexacct(3LIB)>, C<attributes(5)>
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Object.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Object.pod
deleted file mode 100644
index bf10d6f645..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/pod/Object.pod
+++ /dev/null
@@ -1,150 +0,0 @@
-#
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Sun::Solaris::Exacct::Object documentation.
-#
-
-=head1 NAME
-
-Sun::Solaris::Exacct::Object - exacct object manipulation
-
-=head1 SYNOPSIS
-
- use Sun::Solaris::Exacct::Object qw(:ALL);
- print($ea_obj->value(), "\n");
-
-This module is used as a parent of the two possible types of Perl exacct
-objects: Items and Groups. An Item is either a single data value such as the
-number of seconds of user CPU time consumed by a process, an embedded Perl
-exacct object, or a block of raw data. A Group is an ordered collection of
-Perl exacct Items such as all of the resource usage values for a particular
-process or task. If Groups need to be nested within each other, the inner
-Groups can be stored as embedded Perl exacct objects inside the enclosing
-Group.
-
-This module contains methods that are common to both Perl exacct Items and
-Groups. The attributes of C<Sun::Solaris::Exacct::Object> and all classes
-derived from it are read-only after initial creation with new(). This behavior
-prevents the inadvertent modification of the attributes that could produce
-inconsistent catalog tags and data values. The only exception is the array
-used to store the Items inside a Group object, which can be modified using the
-normal Perl array operators. See the C<value()> method below.
-
-=head2 Constants
-
-C<EO_ERROR>, C<EO_NONE>, C<EO_ITEM>, and C<EO_GROUP>.
-
-=head2 Functions
-
-None.
-
-=head2 Class methods
-
-B<C<dump($object, $filehandle)>>
-
-This method dumps formatted text representation of a Perl exacct object to the
-supplied file handle. If no file handle is specified, the text representation
-is dumped to C<STDOUT>. See EXAMPLES below for sample output.
-
-=head2 Object methods
-
-B<C<type()>>
-
-This method returns the type field of the Perl exacct object. The value of the
-type field is returned as a dual-typed scalar and is either C<EO_ITEM>,
-C<EO_GROUP>, or C<EO_NONE>.
-
-B<C<catalog()>>
-
-This method returns the catalog field of the Perl exacct object. The value is
-returned as a C<Sun::Solaris::Exacct::Catalog> object.
-
-B<C<match_catalog($catalog)>>
-
-This method matches the passed catalog tag against the object. C<true> is
-returned of a match occurs. Otherwise C<false> is returned. This method has
-the same behavior as the underlying C<ea_match_object_catalog(3EXACCT)>
-function.
-
-B<C<value()>>
-
-This method returns the value of the Perl exacct object. In the case of an
-Item, this object will normally be a Perl scalar, either a number or string.
-For raw Items, the buffer contained inside the object is returned as a Perl
-string that can be manipulated with the Perl C<unpack()> function. If the Item
-contains either a nested Item or a nested Group, the enclosed Item is returned
-as a reference to an object of the appropriate subtype of the
-C<Sun::Solaris::Exacct::Object> class.
-
-For Group objects, if C<value()> is called in a scalar context, the return
-value is a reference to the underlying array used to store the component Items
-of the Group. Since this array can be manipulated with the normal Perl array
-indexing syntax and array operators, the objects inside the Group can be
-manipulated. All objects in the array must be derived from the
-C<Sun::Solaris::Exacct::Object> class. Any attempt to insert something else
-into the array will generate a fatal runtime error that can be caught with an
-C<eval { }> block.
-
-If C<value()> is called in a list context for a Group object, it returns a
-list of all the objects in the Group. Unlike the array reference returned in a
-scalar context, this list cannot be manipulated to add or delete Items from a
-Group. This mechanism is considerably faster than the array mechanism
-described above and is the preferred mechanism if a Group is being examined in
-a read-only manner.
-
-=head2 Exports
-
-By default nothing is exported from this module. The following tags can be
-used to selectively import constants and functions defined in this module:
-
- :CONSTANTS EO_ERROR, EO_NONE, EO_ITEM, and EO_GROUP
-
- :ALL :CONSTANTS
-
-=head1 EXAMPLES
-
-The following is an example of output of the C<dump()> method for a Perl exacct
-Group object.
-
- GROUP
- Catalog = EXT_GROUP|EXC_DEFAULT|EXD_GROUP_PROC_PARTIAL
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_PID
- Value = 3
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_UID
- Value = 0
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_GID
- Value = 0
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_PROJID
- Value = 0
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_TASKID
- Value = 0
- ITEM
- Catalog = EXT_STRING|EXC_DEFAULT|EXD_PROC_COMMAND
- Value = fsflush
- ENDGROUP
-
-=head1 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
- | Interface Stability | Evolving |
- |_____________________________|_____________________________|
-
-=head1 SEE ALSO
-
-C<ea_match_object_catalog(3EXACCT)>, C<Sun::Solaris::Exacct(3)>,
-C<Sun::Solaris::Exacct::Catalog(3)>, C<Sun::Solaris::Exacct::File(3)>,
-C<Sun::Solaris::Exacct::Object::Group(3)>,
-C<Sun::Solaris::Exacct::Object::Item(3)>, C<libexacct(3LIB)>, C<attributes(5)>
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/README b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/README
deleted file mode 100644
index caebbc0a2b..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/README
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-This directory contains a stress-test harness for the ::Exacct module.
-This will detect bugs in both the perl code and the underlying libexacct
-library. To use, build the ::Exacct module in the parent directory, then:
-
-$ cc -o randtest randtest.c -lexacct
-$ chmod a+x RandTest
-$ ./RandTest
-
-The test script will run until interrupted by SIGINT. If any errors are
-detected, the script will exit and leave diganostic files in /tmp.
-
-Running this under a memory checker, e.g. the WorkShop debugger or libumem
-is also a good way of detecting errors.
-
-If you wish to run this on the installed version of the ::Exacct module,
-remove the 'use blib' statement on line 14 of RandTest.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/RandTest b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/RandTest
deleted file mode 100644
index 8c6e13e982..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/RandTest
+++ /dev/null
@@ -1,227 +0,0 @@
-#!/usr/perl5/bin/perl
-#
-# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# This script is a stress test for ::Exacct and libexacct.
-# See README for details.
-#
-
-use strict;
-use warnings;
-use blib;
-use POSIX qw(:sys_wait_h);
-
-use Sun::Solaris::Exacct qw(:ALL);
-use Sun::Solaris::Exacct::Catalog qw(:ALL);
-use Sun::Solaris::Exacct::Object qw(:ALL);
-use Sun::Solaris::Exacct::File qw(:ALL);
-use Fcntl;
-
-our $exit = 0;
-our $ono = 1;
-our $maxono = 1000; # max = 16777216 (2^24)
-
-#
-# Dump an object.
-#
-sub dump_object
-{
- my ($obj, $fh, $indent) = @_;
- $fh ||= \*STDOUT;
- $indent ||= 0;
- my @cat = $obj->catalog()->value();
- my $istr = ' ' x $indent;
-
- if ($obj->type() == &EO_ITEM) {
- printf $fh ("%sITEM\n%s Catalog = %s|%s|%d\n",
- $istr, $istr, @cat);
- $indent++;
- my $val = $obj->value();
- if (ref($val)) {
- dump_object($val, $fh, $indent);
- } else {
- printf $fh ("%s Value = %s\n", $istr, $val);
- }
- } else {
- printf $fh ("%sGROUP\n%s Catalog = %s|%s|%d\n",
- $istr, $istr, @cat);
- $indent++;
- foreach my $val ($obj->value()) {
- dump_object($val, $fh, $indent);
- }
- printf $fh ("%sENDGROUP\n", $istr);
- }
-}
-
-#
-# Dump a list of objects.
-#
-sub dump_objects
-{
- my ($fh, $objs) = @_;
- foreach my $o (@$objs) {
- dump_object($o, $fh);
- }
-}
-
-#
-# Build up a set of random objects.
-#
-sub gen_objs
-{
- my ($nobjs, $embed) = @_;
- $nobjs += $ono;
- $embed ||= 0;
- my @objs;
- while ($ono < $nobjs) {
- my $rt = int(rand(9)) + 1;
- $rt = 15 if ($rt >= 9); # Group.
- $rt <<= 28;
- if ($rt == &EXT_UINT8) {
- push(@objs, ea_new_item($rt | $ono++, 8));
- } elsif ($rt == &EXT_UINT16) {
- push(@objs, ea_new_item($rt | $ono++, 16));
- } elsif ($rt == &EXT_UINT32) {
- push(@objs, ea_new_item($rt | $ono++, 32));
- } elsif ($rt == &EXT_UINT64) {
- push(@objs, ea_new_item($rt | $ono++, 64));
- } elsif ($rt == &EXT_DOUBLE) {
- push(@objs, ea_new_item($rt | $ono++,
- 123456789.123456789));
- } elsif ($rt == &EXT_STRING) {
- push(@objs, ea_new_item($rt | $ono++, "string"));
- } elsif ($rt == &EXT_EXACCT_OBJECT) {
- my $o = $ono++;
- my $i = int(rand($nobjs - $ono)) + 1;
- push(@objs, ea_new_item($rt | $o, gen_objs($i, 1)));
- } elsif ($rt == &EXT_RAW) {
- push(@objs, ea_new_item($rt | $ono++, "RAWrawRAW"));
- } elsif ($rt == &EXT_GROUP) {
- my $o = $ono++;
- my $i = int(rand($nobjs - $ono + 1));
- push(@objs, ea_new_group($rt | $o, gen_objs($i)));
- }
-
- # If for an embedded object, just return 1 object.
- last if ($embed);
- }
- return(@objs);
-}
-
-#
-# Main routine.
-#
-$| = 1;
-$SIG{INT} = $SIG{TERM} = $SIG{HUP} = sub { $exit = 1; };
-my $iters = 0;
-while (! $exit) {
- print(".");
-
- # Generate and output some random records.
- my $f = ea_new_file("/tmp/wr.$$", &O_RDWR | &O_CREAT | &O_TRUNC)
- || die("\ncreate /tmp/wr.$$ failed: ", ea_error_str(), "\n");
- my @outobjs = gen_objs($maxono);
- $f->write(@outobjs);
- $f = undef;
- open($f, ">/tmp/wr1.$$") || die("\nopen /tmp/wr1.$$ failed: $!\n");
- dump_objects($f, \@outobjs);
- close($f);
- @outobjs = ();
-
- # Scan the file forwards with next.
- $f = ea_new_file("/tmp/wr.$$", &O_RDONLY)
- || die("\nopen /tmp/wr.$$ failed: ", ea_error_str(), "\n");
- while ($f->next()) {
- ;
- }
- die("\nnext /tmp/wr.$$ failed: ", ea_error_str(), "\n")
- unless (ea_error() == EXR_EOF);
- $f = undef;
-
- # Scan the file backwards with previous.
- $f = ea_new_file("/tmp/wr.$$", &O_RDONLY, aflags => &EO_TAIL)
- || die("\nopen /tmp/wr.$$ failed: ", ea_error_str(), "\n");
- while ($f->previous()) {
- ;
- }
- die("\nprevious /tmp/wr.$$ failed: ", ea_error_str(), "\n")
- unless (ea_error() == EXR_EOF);
- $f = undef;
-
- # Read the file forwards with get.
- my @inobjs = ();
- $f = ea_new_file("/tmp/wr.$$", &O_RDONLY)
- || die("\nopen /tmp/wr.$$ failed: ", ea_error_str(), "\n");
- while (my $obj = $f->get()) {
- push(@inobjs, $obj);
- }
- die("\nget /tmp/wr.$$ failed: ", ea_error_str(), "\n")
- unless (ea_error() == EXR_EOF);
- $f = undef;
-
- # Dump the objects and compare with original.
- open($f, ">/tmp/wr2.$$") || die("\nopen /tmp/wr2.$$ failed: $!\n");
- dump_objects($f, \@inobjs);
- close($f);
- if (system("cmp -s /tmp/wr1.$$ /tmp/wr2.$$") != 0) {
- die("\nget cmp failed /tmp/wr2.$$\n");
- }
-
- # Read the file forwards with next and get.
- @inobjs = ();
- $f = ea_new_file("/tmp/wr.$$", &O_RDONLY)
- || die("\nopen /tmp/wr.$$ failed: ", ea_error_str(), "\n");
- while ($f->next()) {
- my $obj = $f->get();
- push(@inobjs, $obj);
- }
- die("\nnext/get /tmp/wr.$$ failed: ", ea_error_str(), "\n")
- unless (ea_error() == EXR_EOF);
- $f = undef;
-
- # Dump the objects and compare with original.
- open($f, ">/tmp/wr2.$$") || die("\nopen /tmp/wr2.$$ failed: $!\n");
- dump_objects($f, \@inobjs);
- close($f);
- if (system("cmp -s /tmp/wr1.$$ /tmp/wr2.$$") != 0) {
- die("\nnext/get cmp failed /tmp/wr2.$$\n");
- }
-
- # Read the file backwards with previous and get.
- @inobjs = ();
- $f = ea_new_file("/tmp/wr.$$", &O_RDONLY, aflags => &EO_TAIL)
- || die("\nopen /tmp/wr.$$ failed: ", ea_error_str(), "\n");
- while ($f->previous()) {
- my $obj = $f->get();
- $f->previous();
- unshift(@inobjs, $obj);
- }
- die("\nprevious/get /tmp/wr.$$ failed: ", ea_error_str(), "\n")
- unless (ea_error() == EXR_EOF);
- $f = undef;
-
- # Dump the objects and compare with original.
- open($f, ">/tmp/wr2.$$") || die("\nopen /tmp/wr2.$$ failed: $!\n");
- dump_objects($f, \@inobjs);
- close($f);
- if (system("cmp -s /tmp/wr1.$$ /tmp/wr2.$$") != 0) {
- die("\nprevious/get cmp failed /tmp/wr2.$$\n");
- }
-
- # Run randtest on the file.
- foreach my $sz (qw(5 10 50 100)) {
- my $s = system ("./randtest 1000 $sz /tmp/wr.$$") >> 8;
- if ($s == 2) {
- $exit = 1;
- } elsif ($s != 0) {
- die("randtest 1000 $sz /tmp/wr.$$ failed $s\n");
- }
- }
-
- $iters++;
-}
-unlink("/tmp/wr.$$", "/tmp/wr1.$$", "/tmp/wr2.$$") ||
- die("\nCan't cleanup: $!\n");
-print("\n$iters iterations completed\n");
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/dummy.t b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/dummy.t
deleted file mode 100644
index 1aee584db1..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/dummy.t
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Dummy test so 'make test' doesn't fail.
-#
-print("1..1\nok \1n");
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/randtest.c b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/randtest.c
deleted file mode 100644
index b6519cb0ba..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/t/randtest.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
- *
- * This program is part of a stress test for ::Exacct and libexacct.
- * See README for details.
- */
-
-/* Turn largefile support on. */
-#define _FILE_OFFSET_BITS 64
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <strings.h>
-#include <signal.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <exacct.h>
-#include <exacct_impl.h>
-
-static char *ea_errstr[] = {
- "EXR_OK",
- "EXR_SYSCALL_FAIL",
- "EXR_CORRUPT_FILE",
- "EXR_EOF",
- "EXR_NO_CREATOR",
- "EXR_INVALID_BUF",
- "EXR_NOTSUPP",
- "EXR_UNKN_VERSION",
- "EXR_INVALID_OBJ",
-};
-
-#define LOGSZ 100
-#define LINESZ 81
-static char log[LOGSZ][LINESZ];
-static int log_op, log_pos;
-
-static char *type_str(ea_object_type_t type)
-{
- switch (type & EXT_TYPE_MASK) {
- case EXT_NONE:
- return ("NONE");
- case EXT_UINT8:
- return ("UINT8");
- case EXT_UINT16:
- return ("UINT16");
- case EXT_UINT32:
- return ("UINT32");
- case EXT_UINT64:
- return ("UINT64");
- case EXT_DOUBLE:
- return ("DOUBLE");
- case EXT_STRING:
- return ("STRING");
- case EXT_EXACCT_OBJECT:
- return ("OBJECT");
- case EXT_RAW:
- return ("RAW");
- case EXT_GROUP:
- return ("GROUP");
- default:
- return ("INVALID");
- }
-}
-
-static void logmsg(const char *msg, char dir, ea_file_t *f, ea_object_t *obj)
-{
- ea_file_impl_t *fi;
- off_t pos;
- char buf[LINESZ];
- char posbuf[10];
-
- fi = (ea_file_impl_t *)f;
- pos = ftello(fi->ef_fp);
- log_op++;
- if (fi->ef_ndeep < 0) {
- (void) strlcpy(posbuf, "0/0", sizeof (posbuf));
- } else {
- (void) snprintf(posbuf, sizeof (posbuf), "%d/%d",
- fi->ef_depth[fi->ef_ndeep].efd_obj + 1,
- fi->ef_depth[fi->ef_ndeep].efd_nobjs);
- }
- (void) snprintf(log[log_pos], LINESZ,
- "%-6d %c off=0x%-5llx depth=%-2d pos=%-7s adv=0x%-3llx %s",
- log_op, dir, pos, fi->ef_ndeep, posbuf, fi->ef_advance, msg);
- if (obj != NULL) {
- if ((obj->eo_type & EXT_TYPE_MASK) == EXT_GROUP) {
- (void) snprintf(buf, LINESZ, " %s #%d len=%d",
- type_str(obj->eo_catalog),
- obj->eo_catalog & EXD_DATA_MASK,
- obj->eo_group.eg_nobjs);
- } else {
- (void) snprintf(buf, LINESZ, " %s #%d",
- type_str(obj->eo_catalog),
- obj->eo_catalog & EXD_DATA_MASK);
- }
- (void) strlcat(log[log_pos], buf, LINESZ);
- }
- log_pos = (log_pos + 1) % LOGSZ;
-}
-
-static void die(ea_file_t *f, const char *msg)
-{
- int i, l;
- char buf[LINESZ];
-
- bzero(buf, sizeof (buf));
- if (ea_error() == EXR_SYSCALL_FAIL) {
- (void) strlcat(buf, strerror(errno), sizeof (buf));
- }
- (void) printf("\nError at offset 0x%lx: %s: %s %s\n",
- ftell(((ea_file_impl_t *)f)->ef_fp), msg,
- ea_errstr[ea_error()], buf);
- (void) printf("Last %d operations:\n", LOGSZ);
- for (i = LOGSZ, l = log_pos; i > 0; i--, l = (l + 1) % LOGSZ) {
- if (log[l][0] != '\0') {
- (void) printf("%s\n", log[l]);
- }
- }
- exit(1);
-}
-
-/* ARGSUSED */
-static void stop(int sig)
-{
- exit(2);
-}
-
-static int
-do_reads(ea_file_t *f, char dir, int sz)
-{
- ea_object_t obj;
- unsigned char act;
-
- bzero(&obj, sizeof (obj));
- while (sz--) {
-
- act = 0x01 << (lrand48() & 0x01);
-
- /* If reading backwards */
- if (dir == 'B') {
- logmsg("> ea_previous_object", dir, f, NULL);
- if (ea_previous_object(f, &obj) == EO_ERROR) {
- if (ea_error() == EXR_EOF) {
- logmsg("! SOF", dir, f, NULL);
- return ('F');
- } else {
- die(f, "ea_previous_object");
- }
- }
- logmsg("< ea_previous_object", dir, f, NULL);
- }
-
- /* Do a ea_next_object 50% of the time */
- if (act & 0x01) {
- logmsg("> ea_next_object", dir, f, NULL);
- if (ea_next_object(f, &obj) == EO_ERROR) {
- if (ea_error() == EXR_EOF) {
- logmsg("! EOF", dir, f, NULL);
- return (dir == 'F' ? 'B' : 'F');
- } else {
- die(f, "ea_next_object");
- }
- }
- logmsg("< ea_next_object", dir, f, NULL);
- }
-
- /* Do a ea_get_object 50% of the time */
- if (act & 0x02) {
- logmsg("> ea_get_object", dir, f, NULL);
- if (ea_get_object(f, &obj) == EO_ERROR) {
- if (ea_error() == EXR_EOF) {
- logmsg("! EOF", dir, f, NULL);
- return (dir == 'F' ? 'B' : 'F');
- } else {
- die(f, "ea_get_object");
- }
- }
- logmsg("< ea_get_object", dir, f, &obj);
- (void) ea_free_item(&obj, EUP_ALLOC);
- }
-
- /* If reading backwards */
- if (dir == 'B') {
- logmsg("> ea_previous_object", dir, f, NULL);
- if (ea_previous_object(f, &obj) == EO_ERROR) {
- if (ea_error() == EXR_EOF) {
- logmsg("! SOF", dir, f, NULL);
- return ('F');
- } else {
- die(f, "ea_get_object");
- }
- }
- logmsg("< ea_previous_object", dir, f, NULL);
- }
- }
- return (' ');
-}
-
-int
-main(int argc, char **argv)
-{
- int iters, maxsz, sz;
- char dir;
- ea_file_t f;
-
- (void) signal(SIGINT, stop);
- (void) signal(SIGTERM, stop);
- (void) signal(SIGHUP, stop);
-
- if (argc != 4) {
- (void) fprintf(stderr,
- "Usage: randtest <iters> <maxsz> <file>\n");
- return (2);
- }
- iters = atoi(argv[1]);
- maxsz = atoi(argv[2]);
- bzero(log, sizeof (log));
- log_pos = log_op = 0;
-
- if (ea_open(&f, argv[3], NULL, EO_HEAD, O_RDONLY, 0) == -1) {
- perror("open failed");
- return (1);
- }
- srand48((long)(gethrtime() & ~0L));
- dir = 'F';
- while (iters--) {
- if (dir == ' ') {
- dir = (lrand48() % 2) ? 'F' : 'B';
- }
- sz = (lrand48() % maxsz) + 1;
- dir = do_reads(&f, dir, sz);
- }
- (void) ea_close(&f);
- return (0);
-}
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/typemap b/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/typemap
deleted file mode 100644
index 828f6eee68..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Exacct/typemap
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Typemap for common exacct types.
-#
-# Note that the Exacct types need to end in REF to make xsubpp do
-# the right thing.
-#
-
-TYPEMAP
- idtype_t T_IV
- id_t T_IV
- taskid_t T_IV
- projid_t T_IV
- xs_ea_object_t * T_XSEAOBJREF
- ea_file_t * T_EAFILEREF
-
-INPUT
-
-#
-# xs_ea_object_t must be blessed into either ::Object::Item or ::Object::Group.
-# The underlying value is a pointer masquerading as an IV.
-#
-T_XSEAOBJREF
- {
- SV *sv = SvRV($arg);
- HV *stash = sv ? SvSTASH(sv) : NULL;
- if (stash == Sun_Solaris_Exacct_Object_Item_stash ||
- stash == Sun_Solaris_Exacct_Object_Group_stash) {
- IV tmp = SvIV(sv);
- $var = INT2PTR($type, tmp);
- } else {
- croak(\"$var is not of type $Package\");
- }
- }
-
-#
-# ea_file_t must be blessed into ::File.
-# The underlying value is a pointer masquerading as an IV.
-#
-T_EAFILEREF
- {
- SV *sv = SvRV($arg);
- HV *stash = sv ? SvSTASH(sv) : NULL;
- if (stash == ${my $p=$Package.'_stash'; $p=~s/::/_/g; \$p}) {
- IV tmp = SvIV(sv);
- $var = INT2PTR($type, tmp);
- } else {
- croak(\"$var is not of type $Package\");
- }
- }
-
-OUTPUT
-
-T_XSEAOBJREF
- if ($var == NULL) {
- sv_setsv($arg, &PL_sv_undef);
- } else {
- sv_setiv(newSVrv($arg, NULL), PTR2IV($var));
- sv_bless($arg, ${my $p=$Package.'_stash'; $p=~s/::/_/g; \$p});
- SvREADONLY_on(SvRV($arg));
- }
-
-T_EAFILEREF
- if ($var == NULL) {
- sv_setsv($arg, &PL_sv_undef);
- } else {
- sv_setiv(newSVrv($arg, NULL), PTR2IV($var));
- sv_bless($arg, ${my $p=$Package.'_stash'; $p=~s/::/_/g; \$p});
- SvREADONLY_on(SvRV($arg));
- }
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/Makefile b/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/Makefile
new file mode 100644
index 0000000000..29a132543e
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/Makefile
@@ -0,0 +1,30 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+MODULE = Intrs
+
+include $(SRC)/cmd/perl/Makefile.perl
+
+CERRWARN += -_gcc=-Wno-unused-variable
+
+MAPFILES = mapfile-vers
+
+include $(SRC)/cmd/perl/Makefile.targ
+
+all: $(PERLEXT) $(PERLMOD)
+
+install: $(ROOTPERLEXT) $(ROOTPERLMOD)
+
+clean clobber:
+ $(RM) -r $(MACH)
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/Makefile.PL
deleted file mode 100644
index fb2b3ba137..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/Makefile.PL
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-#
-# This module uses non-shipping headers - if we ever want to put it on CPAN
-# this Makefile will need to change first - see one of the other contrib
-# Makefile.PL files for a template.
-#
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Intrs',
- VERSION_FROM => 'Intrs.pm',
- DEFINE => exists($ENV{RELEASE_BUILD}) ? '-DNDEBUG' : '',
-
- # ../../../../../../../uts/common can be removed when Perl leaves O/N
-
- # ../../../../../../../uts/common refers to 5.8.4 building in 5.8.4/contrib
- # whereas later versions build in $(VERSION)/
-
- # Must be a relative path to avoid being interpreted as a proto area path.
- INC => "-I../../../../../../../uts/common -I../../../../../../uts/common",
- MAN3PODS => {},
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/inc.flg b/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/inc.flg
deleted file mode 100644
index e1860262a5..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/inc.flg
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# ident "%Z%%M% %I% %E% SMI"
-#
-
-echo_file usr/src/uts/common/sys/pci_tools.h
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/mapfile-vers b/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/mapfile-vers
new file mode 100644
index 0000000000..d2792f805a
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Intrs/mapfile-vers
@@ -0,0 +1,24 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+$mapfile_version 2
+
+SYMBOL_SCOPE {
+ global:
+ boot_Sun__Solaris__Intrs;
+ XS_Sun__Solaris__Intrs_is_apic;
+ XS_Sun__Solaris__Intrs_intrmove;
+ local:
+ *;
+};
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
index 403c95f50b..99556bf1c7 100644
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
@@ -21,6 +21,7 @@
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014 Racktop Systems.
*/
/*
@@ -894,7 +895,6 @@ apply_to_ties(SV *self, ATTCb_t cb, void *arg)
{
HV *hash1;
HE *entry1;
- long s;
int ret;
hash1 = (HV *)SvRV(self);
@@ -902,7 +902,7 @@ apply_to_ties(SV *self, ATTCb_t cb, void *arg)
ret = 1;
/* Iterate over each module */
- while (entry1 = hv_iternext(hash1)) {
+ while ((entry1 = hv_iternext(hash1))) {
HV *hash2;
HE *entry2;
@@ -910,7 +910,7 @@ apply_to_ties(SV *self, ATTCb_t cb, void *arg)
hv_iterinit(hash2);
/* Iterate over each module:instance */
- while (entry2 = hv_iternext(hash2)) {
+ while ((entry2 = hv_iternext(hash2))) {
HV *hash3;
HE *entry3;
@@ -918,10 +918,9 @@ apply_to_ties(SV *self, ATTCb_t cb, void *arg)
hv_iterinit(hash3);
/* Iterate over each module:instance:name */
- while (entry3 = hv_iternext(hash3)) {
+ while ((entry3 = hv_iternext(hash3))) {
HV *hash4;
MAGIC *mg;
- HV *tie;
/* Get the tie */
hash4 = (HV *)SvRV(hv_iterval(hash3, entry3));
@@ -976,7 +975,7 @@ prune_invalid(SV *self, AV *del)
ret = 0;
/* Iterate over each module */
- while (entry1 = hv_iternext(hash1)) {
+ while ((entry1 = hv_iternext(hash1))) {
HV *hash2;
HE *entry2;
@@ -985,7 +984,7 @@ prune_invalid(SV *self, AV *del)
hv_iterinit(hash2);
/* Iterate over each module:instance */
- while (entry2 = hv_iternext(hash2)) {
+ while ((entry2 = hv_iternext(hash2))) {
HV *hash3;
HE *entry3;
@@ -994,7 +993,7 @@ prune_invalid(SV *self, AV *del)
hv_iterinit(hash3);
/* Iterate over each module:instance:name */
- while (entry3 = hv_iternext(hash3)) {
+ while ((entry3 = hv_iternext(hash3))) {
HV *hash4;
MAGIC *mg;
HV *tie;
@@ -1084,7 +1083,7 @@ save_named(HV *self, kstat_t *kp, int strip_str)
break;
default:
PERL_ASSERTMSG(0, "kstat_read: invalid data type");
- break;
+ continue;
}
hv_store(self, knp->name, strlen(knp->name), value, 0);
}
@@ -1625,7 +1624,7 @@ PPCODE:
self = SvRV(self);
read_kstats((HV *)self, FALSE);
hv_iterinit((HV *)self);
- if (he = hv_iternext((HV *)self)) {
+ if ((he = hv_iternext((HV *)self))) {
EXTEND(SP, 1);
PUSHs(hv_iterkeysv(he));
}
@@ -1642,7 +1641,7 @@ PREINIT:
HE *he;
PPCODE:
self = SvRV(self);
- if (he = hv_iternext((HV *)self)) {
+ if ((he = hv_iternext((HV *)self))) {
EXTEND(SP, 1);
PUSHs(hv_iterkeysv(he));
}
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/MANIFEST
deleted file mode 100644
index 5b32c4144a..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/MANIFEST
+++ /dev/null
@@ -1,4 +0,0 @@
-Kstat.pm
-Kstat.xs
-Makefile.PL
-t/Kstat.t
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile
new file mode 100644
index 0000000000..8ee464c25a
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile
@@ -0,0 +1,33 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+MODULE = Kstat
+
+include $(SRC)/cmd/perl/Makefile.perl
+
+LDLIBS += -lkstat
+
+CERRWARN += -_gcc=-Wno-unused-value
+CERRWARN += -_gcc=-Wno-unused-variable
+
+MAPFILES = mapfile-vers
+
+include $(SRC)/cmd/perl/Makefile.targ
+
+all: $(PERLEXT) $(PERLMOD)
+
+install: $(ROOTPERLEXT) $(ROOTPERLMOD)
+
+clean clobber:
+ $(RM) -r $(MACH)
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL
deleted file mode 100644
index 386d8c4c81..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Makefile.PL
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# ident "%Z%%M% %I% %E% SMI"
-#
-
-use ExtUtils::MakeMaker;
-my ($defines, $includes) = ('', '');
-
-# Uncomment this to turn on assertions
-#$defines .= '-DKSTAT_DEBUG ';
-
-# Uncomment this to report unknown binary kstats
-#$defines .= '-DREPORT_UNKNOWN ';
-
-#
-# Because there are still platform specific raw kstats, we need to include the
-# platform specific header files, so work out where they live.
-#
-my $arch = qx{uname -p}; chomp($arch);
-if ($arch eq 'sparc') {
- $includes .= '-I/usr/platform/sun4u/include' .
- ' -I/usr/platform/sun4v/include';
-} elsif ($arch eq 'i386') {
- $includes .= '-I/usr/platform/i86pc/include' .
- ' -I/usr/platform/i86xpv/include';
-} else {
- die("Unknown architecture $arch\n");
-}
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Kstat',
- VERSION_FROM => 'Kstat.pm',
- LIBS => [ '-lkstat' ],
- DEFINE => $defines,
- INC => $includes,
- OBJECT => '$(O_FILES)',
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/mapfile-vers b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/mapfile-vers
new file mode 100644
index 0000000000..e5238fd17a
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/mapfile-vers
@@ -0,0 +1,32 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+$mapfile_version 2
+
+SYMBOL_SCOPE {
+ global:
+ boot_Sun__Solaris__Kstat;
+ XS_Sun__Solaris__Kstat___Stat_CLEAR;
+ XS_Sun__Solaris__Kstat___Stat_DELETE;
+ XS_Sun__Solaris__Kstat___Stat_EXISTS;
+ XS_Sun__Solaris__Kstat___Stat_FETCH;
+ XS_Sun__Solaris__Kstat___Stat_FIRSTKEY;
+ XS_Sun__Solaris__Kstat___Stat_NEXTKEY;
+ XS_Sun__Solaris__Kstat___Stat_STORE;
+ XS_Sun__Solaris__Kstat_DESTROY;
+ XS_Sun__Solaris__Kstat_new;
+ XS_Sun__Solaris__Kstat_update;
+ local:
+ *;
+};
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Lgrp.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Lgrp.pm
index 2aced0329d..8f23b6b311 100644
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Lgrp.pm
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Lgrp.pm
@@ -22,6 +22,7 @@
#
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
+# Copyright (c) 2014 Racktop Systems.
#
#
@@ -30,7 +31,7 @@
#
-require 5.8.4;
+require 5.0010;
use strict;
use warnings;
use Carp;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/MANIFEST
deleted file mode 100644
index ea60af447b..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/MANIFEST
+++ /dev/null
@@ -1,10 +0,0 @@
-Changes
-Makefile.PL
-MANIFEST
-Lgrp.pm
-Lgrp.xs
-README
-typemap
-pod/Lgrp.pod
-t/Lgrp.t
-t/Lgrp_api.t
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Makefile b/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Makefile
new file mode 100644
index 0000000000..f61c8511ec
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Makefile
@@ -0,0 +1,34 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+MODULE = Lgrp
+
+include $(SRC)/cmd/perl/Makefile.perl
+
+LDLIBS += -llgrp
+
+CERRWARN += -_gcc=-Wno-type-limits
+
+XSUBPPFLAGS = -typemap typemap
+
+MAPFILES = mapfile-vers
+
+include $(SRC)/cmd/perl/Makefile.targ
+
+all: $(PERLEXT) $(PERLMOD)
+
+install: $(ROOTPERLEXT) $(ROOTPERLMOD)
+
+clean clobber:
+ $(RM) -r $(MACH)
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Makefile.PL
deleted file mode 100644
index 39773a4358..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/Makefile.PL
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-# #defines.
-my @defines = ( DEFINE => exists($ENV{RELEASE_BUILD}) ? '-DNDEBUG' : '' );
-
-# List of POD pages to install.
-my @man3pods = ( MAN3PODS => {} );
-
-
-#
-# If not building as part of ON.
-#
-if (! exists($ENV{CODEMGR_WS})) {
-
- #
- # Suppress the setting of LD_RUN_PATH. The ON build environment
- # contains a modified MakeMaker that does this automatically, so we
- # only need to do this if we are building outside of ON.
- #
- package MY;
- no warnings qw(once);
-
- # Override const_loadlibs to remove LD_RUN_PATH cruft.
- *const_loadlibs = sub
- {
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
- };
-
- # Override dynamic_lib to get rid of LD_RUN_PATH cruft.
- *dynamic_lib = sub
- {
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
- };
-
- # Turn off debugging.
- @defines = ();
-
- #
- # Install the POD documentation for non-ON builds.
- #
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Lgrp';
- @man3pods = (
- MAN3PODS => { 'pod/Lgrp.pod' => $man3pfx . '.$(MAN3EXT)' }
- );
-}
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Lgrp',
- VERSION_FROM => 'Lgrp.pm',
- LIBS => ['-llgrp '],
- @defines,
- @man3pods,
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/mapfile-vers b/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/mapfile-vers
new file mode 100644
index 0000000000..e2fb809486
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Lgrp/mapfile-vers
@@ -0,0 +1,39 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+$mapfile_version 2
+
+SYMBOL_SCOPE {
+ global:
+ boot_Sun__Solaris__Lgrp;
+ XS_Sun__Solaris__Lgrp_lgrp_affinity_get;
+ XS_Sun__Solaris__Lgrp_lgrp_affinity_set;
+ XS_Sun__Solaris__Lgrp_lgrp_children;
+ XS_Sun__Solaris__Lgrp_lgrp_cookie_stale;
+ XS_Sun__Solaris__Lgrp_lgrp_cpus;
+ XS_Sun__Solaris__Lgrp_lgrp_fini;
+ XS_Sun__Solaris__Lgrp_lgrp_home;
+ XS_Sun__Solaris__Lgrp_lgrp_init;
+ XS_Sun__Solaris__Lgrp_lgrp_latency;
+ XS_Sun__Solaris__Lgrp_lgrp_latency_cookie;
+ XS_Sun__Solaris__Lgrp_lgrp_mem_size;
+ XS_Sun__Solaris__Lgrp_lgrp_nlgrps;
+ XS_Sun__Solaris__Lgrp_lgrp_parents;
+ XS_Sun__Solaris__Lgrp_lgrp_resources;
+ XS_Sun__Solaris__Lgrp_lgrp_root;
+ XS_Sun__Solaris__Lgrp_lgrp_version;
+ XS_Sun__Solaris__Lgrp_lgrp_view;
+ local:
+ *;
+};
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/Changes b/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/Changes
deleted file mode 100644
index 60d7a5f2ba..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/Changes
+++ /dev/null
@@ -1,4 +0,0 @@
-1.1 Mon Jun 07 2004
---------------------
-
-Initial version, derived from Sun::PerlGcc
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/MANIFEST
deleted file mode 100644
index deeab81a1e..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/MANIFEST
+++ /dev/null
@@ -1,7 +0,0 @@
-Changes
-Makefile.PL
-MANIFEST
-perlgcc.PL
-pod/perlgcc.pod
-config/5.8.4/5.11/sparc/Config.pm
-config/5.8.4/5.11/i386/Config.pm
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/Makefile.PL
deleted file mode 100644
index cbd36eb367..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/Makefile.PL
+++ /dev/null
@@ -1,101 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-#
-# Compare OS versions.
-#
-sub cmp_os_ver
-{
- our ($a, $b);
- my @v1 = split(/\./, $a);
- my @v2 = split(/\./, $b);
- my $diff = 0;
- while (@v1 || @v2) {
- last if (($diff = shift(@v1) - shift(@v2)) != 0);
- }
- return ($diff);
-}
-
-# Check we are on a supported OS version.
-my $rel = qx{uname -r}; chomp($rel);
-my $arch = qx{uname -p}; chomp($arch);
-my $pver = sprintf('%vd', $^V);
-
-# Figure out the appropriate Config.pm. Use an older version if necessary.
-my $perlarch = ($arch eq "sparc") ? "sun4-solaris-64int":"i86pc-solaris-64int";
-
-my $configpm = "/usr/perl5/$pver/lib/$perlarch/Config.pm";
-if (! -f $configpm) {
- my $p = "config/$pver";
- my $dh;
- opendir($dh, $p) || die("Can't read directory $_: $!\n");
- my $old_rel = (sort(cmp_os_ver
- grep(-d "$p/$_" && $_ =~ /^\d[\d.]+\d$/, readdir($dh))))[-1];
- closedir($dh);
- if (defined($old_rel)) {
- print(STDERR "Warning: No config file for OS version $rel, " .
- "using $old_rel file\n");
- $rel = $old_rel;
- $configpm = "config/$pver/$rel/$arch/Config.pm";
- } else {
- die("Unsupported version of Perl/OS/Architecture " .
- "$pver/$rel/$arch\n");
- }
-} else {
- open CONFIGPM, "<", $configpm or die $!;
- open CONFIGPM_OUT, ">", "Config.pm" or die $!;
- while(<CONFIGPM>) {
- if (/'cc/) {
- s/=>\s*'cc/=> 'gcc/;
- s/=\s*'cc/='gcc/;
- }
- print CONFIGPM_OUT $_;
- }
- close CONFIGPM;
- close CONFIGPM_OUT;
- $configpm = "Config.pm";
-}
-
-our %man1pods;
-# Only install the pods for onn-ON builds.
-if (! exists($ENV{CODEMGR_WS}) && ! exists($ENV{ENVCPPFLAGS1})) {
- $man1pods{'pod/perlgcc.pod'} = '$(INST_MAN1DIR)/perlgcc.$(MAN1EXT)';
-}
-
-WriteMakefile(
- NAME => 'Sun::Solaris::PerlGcc',
- VERSION_FROM => 'perlgcc.PL',
- PL_FILES => { 'perlgcc.PL' => 'perlgcc' },
- EXE_FILES => [ 'perlgcc' ],
- PM => { $configpm => '$(INST_LIBDIR)/PerlGcc/Config.pm' },
- MAN1PODS => \%man1pods,
- MAN3PODS => { }, # Stop autopodification.
- clean => { FILES => 'perlgcc' },
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/config/5.8.4/5.11/i386/Config.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/config/5.8.4/5.11/i386/Config.pm
deleted file mode 100644
index d00452855d..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/config/5.8.4/5.11/i386/Config.pm
+++ /dev/null
@@ -1,1292 +0,0 @@
-# This file was created by configpm when Perl was built. Any changes
-# made to this file will be lost the next time perl is built.
-
-package Config;
-@EXPORT = qw(%Config);
-@EXPORT_OK = qw(myconfig config_sh config_vars config_re);
-
-my %Export_Cache = map {($_ => 1)} (@EXPORT, @EXPORT_OK);
-
-# Define our own import method to avoid pulling in the full Exporter:
-sub import {
- my $pkg = shift;
- @_ = @EXPORT unless @_;
-
- my @funcs = grep $_ ne '%Config', @_;
- my $export_Config = @funcs < @_ ? 1 : 0;
-
- my $callpkg = caller(0);
- foreach my $func (@funcs) {
- die sprintf qq{"%s" is not exported by the %s module\n},
- $func, __PACKAGE__ unless $Export_Cache{$func};
- *{$callpkg.'::'.$func} = \&{$func};
- }
-
- *{"$callpkg\::Config"} = \%Config if $export_Config;
- return;
-}
-
-die "Perl lib version (v5.8.4) doesn't match executable version ($])"
- unless $^V;
-
-$^V eq v5.8.4
- or die "Perl lib version (v5.8.4) doesn't match executable version (" .
- sprintf("v%vd",$^V) . ")";
-
-##
-## This file was produced by running the Configure script. It holds all the
-## definitions figured out by Configure. Should you modify one of these values,
-## do not forget to propagate your changes by running "Configure -der". You may
-## instead choose to run each of the .SH files by yourself, or "Configure -S".
-##
-#
-## Package name : perl5
-## Source directory : .
-## Configuration time:
-## Configured by : perl-bugs
-## Target system : sunos localhost 5.11 i86pc i386 i86pc
-#
-## Configure command line arguments.
-#PERL_PATCHLEVEL=
-
-our $summary : unique = <<'!END!';
-Summary of my $package (revision $revision $version_patchlevel_string) configuration:
- Platform:
- osname=$osname, osvers=$osvers, archname=$archname
- uname='$myuname'
- config_args='$config_args'
- hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction
- usethreads=$usethreads use5005threads=$use5005threads useithreads=$useithreads usemultiplicity=$usemultiplicity
- useperlio=$useperlio d_sfio=$d_sfio uselargefiles=$uselargefiles usesocks=$usesocks
- use64bitint=$use64bitint use64bitall=$use64bitall uselongdouble=$uselongdouble
- usemymalloc=$usemymalloc, bincompat5005=undef
- Compiler:
- cc='$cc', ccflags ='$ccflags',
- optimize='$optimize',
- cppflags='$cppflags'
- ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers'
- intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder
- d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize
- ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize
- alignbytes=$alignbytes, prototype=$prototype
- Linker and Libraries:
- ld='$ld', ldflags ='$ldflags'
- libpth=$libpth
- libs=$libs
- perllibs=$perllibs
- libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl
- gnulibc_version='$gnulibc_version'
- Dynamic Linking:
- dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags'
- cccdlflags='$cccdlflags', lddlflags='$lddlflags'
-
-!END!
-my $summary_expanded;
-
-sub myconfig {
- return $summary_expanded if $summary_expanded;
- ($summary_expanded = $summary) =~ s{\$(\w+)}
- { my $c = $Config{$1}; defined($c) ? $c : 'undef' }ge;
- $summary_expanded;
-}
-
-our $Config_SH : unique = <<'!END!';
-archlibexp='/usr/perl5/5.8.4/lib/i86pc-solaris-64int'
-archname='i86pc-solaris-64int'
-cc='gcc'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO'
-cppflags=''
-dlsrc='dl_dlopen.xs'
-dynamic_ext='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re'
-installarchlib='/usr/perl5/5.8.4/lib/i86pc-solaris-64int'
-installprivlib='/usr/perl5/5.8.4/lib'
-libpth='/lib /usr/lib /usr/ccs/lib'
-libs='-lsocket -lnsl -ldl -lm -lc'
-osname='solaris'
-osvers='2.11'
-prefix='/usr/perl5/5.8.4'
-privlibexp='/usr/perl5/5.8.4/lib'
-sharpbang='#!'
-shsharp='true'
-so='so'
-startsh='#!/bin/sh'
-static_ext=''
-Author=''
-CONFIG='true'
-Date='$Date'
-Header=''
-Id='$Id'
-Locker=''
-Log='$Log'
-Mcc='Mcc'
-PATCHLEVEL='8'
-PERL_API_REVISION='5'
-PERL_API_SUBVERSION='0'
-PERL_API_VERSION='8'
-PERL_CONFIG_SH='true'
-PERL_REVISION='5'
-PERL_SUBVERSION='4'
-PERL_VERSION='8'
-RCSfile='$RCSfile'
-Revision='$Revision'
-SUBVERSION='4'
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='4'
-ansi2knr=''
-aphostname='/usr/bin/hostname'
-api_revision='5'
-api_subversion='0'
-api_version='8'
-api_versionstring='5.8.0'
-ar='ar'
-archlib='/usr/perl5/5.8.4/lib/i86pc-solaris-64int'
-archname64='64int'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/perl5/5.8.4/bin'
-binexp='/usr/perl5/5.8.4/bin'
-bison='bison'
-byacc='byacc'
-byteorder='12345678'
-c='\c'
-castflags='0'
-cat='cat'
-cccdlflags='-fPIC'
-ccdlflags='-R /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols='__i386=1 __i386__=1 __sun=1 __sun__=1 __SVR4=1 __svr4__=1 __unix=1 __unix__=1 cpu=i386 machine=i386 system=svr4'
-ccversion='GNU gcc'
-cf_by='perl-bugs'
-cf_email='perl-bugs@sun.com'
-cf_time=''
-charsize='1'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-config_arg0='./Configure'
-config_argc='0'
-config_args=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols='i386=1 sun=1 unix=1'
-cpplast='-'
-cppminus='-'
-cpprun='gcc -E'
-cppstdin='gcc -E'
-cppsymbols='_FILE_OFFSET_BITS=64 __i386=1 __i386__=1 _ILP32=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 _LITTLE_ENDIAN=1 __STDC__=1 __sun=1 __sun__=1 __SVR4=1 __svr4__=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='gconvert((x),(n),(t),(b))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='define'
-d_asctime_r='undef'
-d_atolf='undef'
-d_atoll='define'
-d_attribut='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_bzero='define'
-d_casti32='undef'
-d_castneg='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysignl='define'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dirfd='undef'
-d_dirnamlen='undef'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_eunice='undef'
-d_faststdio='define'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fds_bits='define'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='undef'
-d_flockproto='undef'
-d_fork='define'
-d_fp_class='undef'
-d_fpathconf='define'
-d_fpclass='define'
-d_fpclassify='undef'
-d_fpclassl='undef'
-d_fpos64_t='define'
-d_frexpl='define'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_ilogbl='define'
-d_index='undef'
-d_inetaton='undef'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='undef'
-d_isinf='undef'
-d_isnan='define'
-d_isnanl='define'
-d_killpg='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_link='define'
-d_localtime_r='undef'
-d_locconv='define'
-d_lockf='define'
-d_longdbl='define'
-d_longlong='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='define'
-d_mktime='define'
-d_mmap='define'
-d_modfl='define'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='undef'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='undef'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_procselfexe='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_pwage='define'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='define'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='define'
-d_quad='define'
-d_random_r='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_rename='define'
-d_rewinddir='define'
-d_rmdir='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbnl='define'
-d_sched_yield='undef'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='undef'
-d_setresuid='undef'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sockatmark='define'
-d_sockatmarkproto='define'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sqrtl='define'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='define'
-d_stdio_ptr_lval='define'
-d_stdio_ptr_lval_nochange_cnt='define'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='define'
-d_stdiobase='define'
-d_stdstdio='define'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='undef'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='undef'
-d_strxfrm='define'
-d_suidsafe='define'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='undef'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='define'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='undef'
-d_tm_tm_zone='undef'
-d_tmpnam_r='undef'
-d_truncate='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='define'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='define'
-d_vendorbin='define'
-d_vendorlib='define'
-d_vendorscript='define'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcstombs='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extensions='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re Errno'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='8'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='/usr/ccs/bin/ar'
-full_csh='/usr/bin/csh'
-full_sed='/usr/bin/sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion=''
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"ld"'
-gidsign='-1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/local/lib'
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='true'
-h_sysfile='false'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=''
-html1direxp=''
-html3dir=''
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='undef'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_fcntl='define'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='undef'
-i_grp='define'
-i_ieeefp='define'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='undef'
-i_ndbm='define'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_rpcsvcdbm='define'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='undef'
-i_sysfile='undef'
-i_sysfilio='define'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='define'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='define'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='undef'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs=''
-inc_version_list=''
-inc_version_list_init='0'
-incpath=''
-inews=''
-installbin='/usr/perl5/5.8.4/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir='/usr/perl5/5.8.4/man/man1'
-installman3dir='/usr/perl5/5.8.4/man/man3'
-installprefix='/usr/perl5/5.8.4'
-installprefixexp='/usr/perl5/5.8.4'
-installscript='/usr/perl5/5.8.4/bin'
-installsitearch='/usr/perl5/site_perl/5.8.4/i86pc-solaris-64int'
-installsitebin='/usr/perl5/5.8.4/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsitelib='/usr/perl5/site_perl/5.8.4'
-installsiteman1dir='/usr/perl5/5.8.4/man/man1'
-installsiteman3dir='/usr/perl5/5.8.4/man/man3'
-installsitescript='/usr/perl5/5.8.4/bin'
-installstyle='lib'
-installusrbinperl='undef'
-installvendorarch='/usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int'
-installvendorbin='/usr/perl5/5.8.4/bin'
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib='/usr/perl5/vendor_perl/5.8.4'
-installvendorman1dir='/usr/perl5/5.8.4/man/man1'
-installvendorman3dir='/usr/perl5/5.8.4/man/man3'
-installvendorscript='/usr/perl5/5.8.4/bin'
-intsize='4'
-issymlink='test -h'
-ivdformat='"lld"'
-ivsize='8'
-ivtype='long long'
-known_extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re'
-ksh=''
-ld='gcc'
-lddlflags='-G'
-ldflags=''
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc='/lib/libc.so'
-libperl='libperl.so'
-libsdirs='/usr/lib'
-libsfiles='libsocket.so.1 libnsl.so.1 libdl.so.1 libm.so.2 libc.so.1'
-libsfound='/usr/lib/libsocket.so.1 /usr/lib/libnsl.so.1 /usr/lib/libdl.so.1 /usr/lib/libm.so.2 /usr/lib/libc.so.1'
-libspath='/lib /usr/lib /usr/ccs/lib'
-libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db dl dld sun m util c cposix posix bsd BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/usr/bin/ln -s'
-localtime_r_proto='0'
-locincpth='/usr/sfw/include /opt/sfw/include /usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
-loclibpth='/usr/sfw/lib /opt/sfw/lib /usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
-longdblsize='12'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir='/usr/perl5/5.8.4/man/man1'
-man1direxp='/usr/perl5/5.8.4/man/man1'
-man1ext='1'
-man3dir='/usr/perl5/5.8.4/man/man3'
-man3direxp='/usr/perl5/5.8.4/man/man3'
-man3ext='3'
-mips_type=''
-mistrustnm='run'
-mkdir='mkdir'
-mmaptype='caddr_t'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='i86pc-solaris'
-mydomain='.sun.com'
-myhostname='localhost'
-myuname='sunos localhost 5.11 i86pc i386 i86pc'
-n=''
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt='-p'
-nm_so_opt=''
-nonxs_ext='Errno'
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='53'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2 -fno-strict-aliasing'
-orderlib='false'
-otherlibdirs=''
-package='perl5'
-pager='/usr/bin/more'
-passcat='cat /etc/passwd'
-patchlevel='8'
-path_sep=':'
-perl5='/bin/perl'
-perl=''
-perl_patchlevel=''
-perladmin='perl-bugs@sun.com'
-perllibs='-lsocket -lnsl -ldl -lm -lc'
-perlpath='/usr/perl5/5.8.4/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefixexp='/usr/perl5/5.8.4'
-privlib='/usr/perl5/5.8.4/lib'
-procselfexe=''
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rmail=''
-run=''
-runnm='true'
-sPRIEUldbl='"LE"'
-sPRIFUldbl='"LF"'
-sPRIGUldbl='"LG"'
-sPRIXU64='"llX"'
-sPRId64='"lld"'
-sPRIeldbl='"Le"'
-sPRIfldbl='"Lf"'
-sPRIgldbl='"Lg"'
-sPRIi64='"lli"'
-sPRIo64='"llo"'
-sPRIu64='"llu"'
-sPRIx64='"llx"'
-sSCNfldbl='"Lf"'
-sched_yield='undef'
-scriptdir='/usr/perl5/5.8.4/bin'
-scriptdirexp='/usr/perl5/5.8.4/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-sig_count='49'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ WAITING LWP FREEZE THAW CANCEL LOST XRES JVM1 JVM2 RTMIN NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 RTMAX IOT CLD POLL'
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "WAITING", "LWP", "FREEZE", "THAW", "CANCEL", "LOST", "XRES", "JVM1", "JVM2", "RTMIN", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_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 6 18 22'
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 18, 22, 0'
-sig_size='52'
-signal_t='void'
-sitearch='/usr/perl5/site_perl/5.8.4/i86pc-solaris-64int'
-sitearchexp='/usr/perl5/site_perl/5.8.4/i86pc-solaris-64int'
-sitebin='/usr/perl5/5.8.4/bin'
-sitebinexp='/usr/perl5/5.8.4/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib='/usr/perl5/site_perl/5.8.4'
-sitelib_stem='/usr/perl5/site_perl'
-sitelibexp='/usr/perl5/site_perl/5.8.4'
-siteman1dir='/usr/perl5/5.8.4/man/man1'
-siteman1direxp='/usr/perl5/5.8.4/man/man1'
-siteman3dir='/usr/perl5/5.8.4/man/man3'
-siteman3direxp='/usr/perl5/5.8.4/man/man3'
-siteprefix='/usr/perl5/5.8.4'
-siteprefixexp='/usr/perl5/5.8.4'
-sitescript='/usr/perl5/5.8.4/bin'
-sitescriptexp='/usr/perl5/5.8.4/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-sockethdr=''
-socketlib=''
-socksizetype='int'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/perl5/5.8.4/bin/perl'
-stdchar='unsigned char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array='__iob'
-strerror_r_proto='0'
-strings='/usr/include/string.h'
-submit=''
-subversion='4'
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch=''
-tbl=''
-tee=''
-test='test'
-timeincl='/usr/include/sys/time.h'
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"ld"'
-uidsign='-1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='define'
-usecrosscompile='undef'
-usedl='define'
-usefaststdio='define'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usereentrant='undef'
-usesfio='false'
-useshrplib='true'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='define'
-usevfork='false'
-usrinc='/usr/include'
-uuname=''
-uvXUformat='"llX"'
-uvoformat='"llo"'
-uvsize='8'
-uvtype='unsigned long long'
-uvuformat='"llu"'
-uvxformat='"llx"'
-vendorarch='/usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int'
-vendorarchexp='/usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int'
-vendorbin='/usr/perl5/5.8.4/bin'
-vendorbinexp='/usr/perl5/5.8.4/bin'
-vendorhtml1dir=''
-vendorhtml1direxp=''
-vendorhtml3dir=''
-vendorhtml3direxp=''
-vendorlib='/usr/perl5/vendor_perl/5.8.4'
-vendorlib_stem='/usr/perl5/vendor_perl'
-vendorlibexp='/usr/perl5/vendor_perl/5.8.4'
-vendorman1dir='/usr/perl5/5.8.4/man/man1'
-vendorman1direxp='/usr/perl5/5.8.4/man/man1'
-vendorman3dir='/usr/perl5/5.8.4/man/man3'
-vendorman3direxp='/usr/perl5/5.8.4/man/man3'
-vendorprefix='/usr/perl5/5.8.4'
-vendorprefixexp='/usr/perl5/5.8.4'
-vendorscript='/usr/perl5/5.8.4/bin'
-vendorscriptexp='/usr/perl5/5.8.4/bin'
-version='5.8.4'
-version_patchlevel_string='version 8 subversion 4'
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-!END!
-
-# Search for it in the big string
-sub fetch_string {
- my($self, $key) = @_;
-
- my $quote_type = "'";
- my $marker = "$key=";
-
- # Check for the common case, ' delimited
- my $start = index($Config_SH, "\n$marker$quote_type");
- # If that failed, check for " delimited
- if ($start == -1) {
- $quote_type = '"';
- $start = index($Config_SH, "\n$marker$quote_type");
- }
- return undef if ( ($start == -1) && # in case it's first
- (substr($Config_SH, 0, length($marker)) ne $marker) );
- if ($start == -1) {
- # It's the very first thing we found. Skip $start forward
- # and figure out the quote mark after the =.
- $start = length($marker) + 1;
- $quote_type = substr($Config_SH, $start - 1, 1);
- }
- else {
- $start += length($marker) + 2;
- }
-
- my $value = substr($Config_SH, $start,
- index($Config_SH, "$quote_type\n", $start) - $start);
-
- # If we had a double-quote, we'd better eval it so escape
- # sequences and such can be interpolated. Since the incoming
- # value is supposed to follow shell rules and not perl rules,
- # we escape any perl variable markers
- if ($quote_type eq '"') {
- $value =~ s/\$/\\\$/g;
- $value =~ s/\@/\\\@/g;
- eval "\$value = \"$value\"";
- }
-
- # So we can say "if $Config{'foo'}".
- $value = undef if $value eq 'undef';
- $self->{$key} = $value; # cache it
-}
-
-sub fetch_virtual {
- my($self, $key) = @_;
-
- my $value;
-
- if ($key =~ /^((?:cc|ld)flags|libs(?:wanted)?)_nolargefiles/) {
- # These are purely virtual, they do not exist, but need to
- # be computed on demand for largefile-incapable extensions.
- my $new_key = "${1}_uselargefiles";
- $value = $Config{$1};
- my $withlargefiles = $Config{$new_key};
- if ($new_key =~ /^(?:cc|ld)flags_/) {
- $value =~ s/\Q$withlargefiles\E\b//;
- } elsif ($new_key =~ /^libs/) {
- my @lflibswanted = split(' ', $Config{libswanted_uselargefiles});
- if (@lflibswanted) {
- my %lflibswanted;
- @lflibswanted{@lflibswanted} = ();
- if ($new_key =~ /^libs_/) {
- my @libs = grep { /^-l(.+)/ &&
- not exists $lflibswanted{$1} }
- split(' ', $Config{libs});
- $Config{libs} = join(' ', @libs);
- } elsif ($new_key =~ /^libswanted_/) {
- my @libswanted = grep { not exists $lflibswanted{$_} }
- split(' ', $Config{libswanted});
- $Config{libswanted} = join(' ', @libswanted);
- }
- }
- }
- }
-
- $self->{$key} = $value;
-}
-
-sub FETCH {
- my($self, $key) = @_;
-
- # check for cached value (which may be undef so we use exists not defined)
- return $self->{$key} if exists $self->{$key};
-
- $self->fetch_string($key);
- return $self->{$key} if exists $self->{$key};
- $self->fetch_virtual($key);
-
- # Might not exist, in which undef is correct.
- return $self->{$key};
-}
-
-my $prevpos = 0;
-
-sub FIRSTKEY {
- $prevpos = 0;
- substr($Config_SH, 0, index($Config_SH, '=') );
-}
-
-sub NEXTKEY {
- # Find out how the current key's quoted so we can skip to its end.
- my $quote = substr($Config_SH, index($Config_SH, "=", $prevpos)+1, 1);
- my $pos = index($Config_SH, qq($quote\n), $prevpos) + 2;
- my $len = index($Config_SH, "=", $pos) - $pos;
- $prevpos = $pos;
- $len > 0 ? substr($Config_SH, $pos, $len) : undef;
-}
-
-sub EXISTS {
- return 1 if exists($_[0]->{$_[1]});
-
- return(index($Config_SH, "\n$_[1]='") != -1 or
- substr($Config_SH, 0, length($_[1])+2) eq "$_[1]='" or
- index($Config_SH, "\n$_[1]=\"") != -1 or
- substr($Config_SH, 0, length($_[1])+2) eq "$_[1]=\"" or
- $_[1] =~ /^(?:(?:cc|ld)flags|libs(?:wanted)?)_nolargefiles$/
- );
-}
-
-sub STORE { die "\%Config::Config is read-only\n" }
-*DELETE = \&STORE;
-*CLEAR = \&STORE;
-
-
-sub config_sh {
- $Config_SH
-}
-
-sub config_re {
- my $re = shift;
- return map { chomp; $_ } grep /^$re=/, split /^/, $Config_SH;
-}
-
-sub config_vars {
- foreach (@_) {
- if (/\W/) {
- my @matches = config_re($_);
- print map "$_\n", @matches ? @matches : "$_: not found";
- } else {
- my $v = (exists $Config{$_}) ? $Config{$_} : 'UNKNOWN';
- $v = 'undef' unless defined $v;
- print "$_='$v';\n";
- }
- }
-}
-
-sub TIEHASH {
- bless $_[1], $_[0];
-}
-
-# avoid Config..Exporter..UNIVERSAL search for DESTROY then AUTOLOAD
-sub DESTROY { }
-
-my $i = 0;
-foreach my $c (8,7,6,5,4,3,2) { $i |= ord($c); $i <<= 8 }
-$i |= ord(1);
-my $value = join('', unpack('aaaaaaaa', pack('Q', $i)));
-
-
-tie %Config, 'Config', {
- 'archlibexp' => '/usr/perl5/5.8.4/lib/i86pc-solaris-64int',
- 'archname' => 'i86pc-solaris-64int',
- 'cc' => 'gcc',
- 'ccflags' => '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO',
- 'cppflags' => '',
- 'dlsrc' => 'dl_dlopen.xs',
- 'dynamic_ext' => 'B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re',
- 'installarchlib' => '/usr/perl5/5.8.4/lib/i86pc-solaris-64int',
- 'installprivlib' => '/usr/perl5/5.8.4/lib',
- 'libpth' => '/lib /usr/lib /usr/ccs/lib',
- 'libs' => '-lsocket -lnsl -ldl -lm -lc',
- 'osname' => 'solaris',
- 'osvers' => '2.11',
- 'prefix' => '/usr/perl5/5.8.4',
- 'privlibexp' => '/usr/perl5/5.8.4/lib',
- 'sharpbang' => '#!',
- 'shsharp' => 'true',
- 'so' => 'so',
- 'startsh' => '#!/bin/sh',
- 'static_ext' => '',
- byteorder => $value,
-
-};
-
-1;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/config/5.8.4/5.11/sparc/Config.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/config/5.8.4/5.11/sparc/Config.pm
deleted file mode 100644
index 3012988f9d..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/config/5.8.4/5.11/sparc/Config.pm
+++ /dev/null
@@ -1,1292 +0,0 @@
-# This file was created by configpm when Perl was built. Any changes
-# made to this file will be lost the next time perl is built.
-
-package Config;
-@EXPORT = qw(%Config);
-@EXPORT_OK = qw(myconfig config_sh config_vars config_re);
-
-my %Export_Cache = map {($_ => 1)} (@EXPORT, @EXPORT_OK);
-
-# Define our own import method to avoid pulling in the full Exporter:
-sub import {
- my $pkg = shift;
- @_ = @EXPORT unless @_;
-
- my @funcs = grep $_ ne '%Config', @_;
- my $export_Config = @funcs < @_ ? 1 : 0;
-
- my $callpkg = caller(0);
- foreach my $func (@funcs) {
- die sprintf qq{"%s" is not exported by the %s module\n},
- $func, __PACKAGE__ unless $Export_Cache{$func};
- *{$callpkg.'::'.$func} = \&{$func};
- }
-
- *{"$callpkg\::Config"} = \%Config if $export_Config;
- return;
-}
-
-die "Perl lib version (v5.8.4) doesn't match executable version ($])"
- unless $^V;
-
-$^V eq v5.8.4
- or die "Perl lib version (v5.8.4) doesn't match executable version (" .
- sprintf("v%vd",$^V) . ")";
-
-##
-## This file was produced by running the Configure script. It holds all the
-## definitions figured out by Configure. Should you modify one of these values,
-## do not forget to propagate your changes by running "Configure -der". You may
-## instead choose to run each of the .SH files by yourself, or "Configure -S".
-##
-#
-## Package name : perl5
-## Source directory : .
-## Configuration time:
-## Configured by : perl-bugs
-## Target system : sunos localhost 5.11 sun4u sparc SUNW,Ultra-2
-#
-## Configure command line arguments.
-#PERL_PATCHLEVEL=
-
-our $summary : unique = <<'!END!';
-Summary of my $package (revision $revision $version_patchlevel_string) configuration:
- Platform:
- osname=$osname, osvers=$osvers, archname=$archname
- uname='$myuname'
- config_args='$config_args'
- hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction
- usethreads=$usethreads use5005threads=$use5005threads useithreads=$useithreads usemultiplicity=$usemultiplicity
- useperlio=$useperlio d_sfio=$d_sfio uselargefiles=$uselargefiles usesocks=$usesocks
- use64bitint=$use64bitint use64bitall=$use64bitall uselongdouble=$uselongdouble
- usemymalloc=$usemymalloc, bincompat5005=undef
- Compiler:
- cc='$cc', ccflags ='$ccflags',
- optimize='$optimize',
- cppflags='$cppflags'
- ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers'
- intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder
- d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize
- ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize
- alignbytes=$alignbytes, prototype=$prototype
- Linker and Libraries:
- ld='$ld', ldflags ='$ldflags'
- libpth=$libpth
- libs=$libs
- perllibs=$perllibs
- libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl
- gnulibc_version='$gnulibc_version'
- Dynamic Linking:
- dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags'
- cccdlflags='$cccdlflags', lddlflags='$lddlflags'
-
-!END!
-my $summary_expanded;
-
-sub myconfig {
- return $summary_expanded if $summary_expanded;
- ($summary_expanded = $summary) =~ s{\$(\w+)}
- { my $c = $Config{$1}; defined($c) ? $c : 'undef' }ge;
- $summary_expanded;
-}
-
-our $Config_SH : unique = <<'!END!';
-archlibexp='/usr/perl5/5.8.4/lib/sun4-solaris-64int'
-archname='sun4-solaris-64int'
-cc='gcc'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO'
-cppflags=''
-dlsrc='dl_dlopen.xs'
-dynamic_ext='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re'
-installarchlib='/usr/perl5/5.8.4/lib/sun4-solaris-64int'
-installprivlib='/usr/perl5/5.8.4/lib'
-libpth='/lib /usr/lib /usr/ccs/lib'
-libs='-lsocket -lnsl -ldl -lm -lc'
-osname='solaris'
-osvers='2.11'
-prefix='/usr/perl5/5.8.4'
-privlibexp='/usr/perl5/5.8.4/lib'
-sharpbang='#!'
-shsharp='true'
-so='so'
-startsh='#!/bin/sh'
-static_ext=''
-Author=''
-CONFIG='true'
-Date='$Date'
-Header=''
-Id='$Id'
-Locker=''
-Log='$Log'
-Mcc='Mcc'
-PATCHLEVEL='8'
-PERL_API_REVISION='5'
-PERL_API_SUBVERSION='0'
-PERL_API_VERSION='8'
-PERL_CONFIG_SH='true'
-PERL_REVISION='5'
-PERL_SUBVERSION='4'
-PERL_VERSION='8'
-RCSfile='$RCSfile'
-Revision='$Revision'
-SUBVERSION='4'
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/usr/bin/hostname'
-api_revision='5'
-api_subversion='0'
-api_version='8'
-api_versionstring='5.8.0'
-ar='ar'
-archlib='/usr/perl5/5.8.4/lib/sun4-solaris-64int'
-archname64='64int'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/perl5/5.8.4/bin'
-binexp='/usr/perl5/5.8.4/bin'
-bison='bison'
-byacc='byacc'
-byteorder='87654321'
-c='\c'
-castflags='0'
-cat='cat'
-cccdlflags='-fPIC'
-ccdlflags='-R /usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols='__GCC_NEW_VARARGS__=1 __sparc=1 __sparc__=1 __sun=1 __sun__=1 __SVR4=1 __svr4__=1 __unix=1 __unix__=1 cpu=sparc machine=sparc system=svr4 system=unix'
-ccversion='GNU gcc'
-cf_by='perl-bugs'
-cf_email='perl-bugs@sun.com'
-cf_time=''
-charsize='1'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-config_arg0='./Configure'
-config_argc='0'
-config_args=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols='sparc=1 sun=1 unix=1'
-cpplast='-'
-cppminus='-'
-cpprun='gcc -E'
-cppstdin='gcc -E'
-cppsymbols='_BIG_ENDIAN=1 _FILE_OFFSET_BITS=64 __GCC_NEW_VARARGS__=1 _ILP32=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 __sparc=1 __sparc__=1 __STDC__=1 __sun=1 __sun__=1 __SVR4=1 __svr4__=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='gconvert((x),(n),(t),(b))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='define'
-d_asctime_r='undef'
-d_atolf='undef'
-d_atoll='define'
-d_attribut='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_bzero='define'
-d_casti32='define'
-d_castneg='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysignl='define'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dirfd='undef'
-d_dirnamlen='undef'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_eunice='undef'
-d_faststdio='define'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fds_bits='define'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='undef'
-d_flockproto='undef'
-d_fork='define'
-d_fp_class='undef'
-d_fpathconf='define'
-d_fpclass='define'
-d_fpclassify='undef'
-d_fpclassl='undef'
-d_fpos64_t='define'
-d_frexpl='define'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_ilogbl='define'
-d_index='undef'
-d_inetaton='undef'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='undef'
-d_isinf='undef'
-d_isnan='define'
-d_isnanl='define'
-d_killpg='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_link='define'
-d_localtime_r='undef'
-d_locconv='define'
-d_lockf='define'
-d_longdbl='define'
-d_longlong='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='define'
-d_mktime='define'
-d_mmap='define'
-d_modfl='define'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='undef'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='undef'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_procselfexe='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_pwage='define'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='define'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='define'
-d_quad='define'
-d_random_r='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_rename='define'
-d_rewinddir='define'
-d_rmdir='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbnl='define'
-d_sched_yield='undef'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='undef'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='undef'
-d_setresuid='undef'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sockatmark='define'
-d_sockatmarkproto='define'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sqrtl='define'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='define'
-d_stdio_ptr_lval='define'
-d_stdio_ptr_lval_nochange_cnt='define'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='define'
-d_stdiobase='define'
-d_stdstdio='define'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='undef'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='undef'
-d_strxfrm='define'
-d_suidsafe='define'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='undef'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='define'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='undef'
-d_tm_tm_zone='undef'
-d_tmpnam_r='undef'
-d_truncate='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='define'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='define'
-d_vendorbin='define'
-d_vendorlib='define'
-d_vendorscript='define'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcstombs='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extensions='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re Errno'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='8'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='/usr/ccs/bin/ar'
-full_csh='/usr/bin/csh'
-full_sed='/usr/bin/sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion=''
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"ld"'
-gidsign='-1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/local/lib'
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='true'
-h_sysfile='false'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=''
-html1direxp=''
-html3dir=''
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='undef'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_fcntl='define'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='undef'
-i_grp='define'
-i_ieeefp='define'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='undef'
-i_ndbm='define'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_rpcsvcdbm='define'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='undef'
-i_sysfile='undef'
-i_sysfilio='define'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='define'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='define'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='undef'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs=''
-inc_version_list=''
-inc_version_list_init='0'
-incpath=''
-inews=''
-installbin='/usr/perl5/5.8.4/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir='/usr/perl5/5.8.4/man/man1'
-installman3dir='/usr/perl5/5.8.4/man/man3'
-installprefix='/usr/perl5/5.8.4'
-installprefixexp='/usr/perl5/5.8.4'
-installscript='/usr/perl5/5.8.4/bin'
-installsitearch='/usr/perl5/site_perl/5.8.4/sun4-solaris-64int'
-installsitebin='/usr/perl5/5.8.4/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsitelib='/usr/perl5/site_perl/5.8.4'
-installsiteman1dir='/usr/perl5/5.8.4/man/man1'
-installsiteman3dir='/usr/perl5/5.8.4/man/man3'
-installsitescript='/usr/perl5/5.8.4/bin'
-installstyle='lib'
-installusrbinperl='undef'
-installvendorarch='/usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int'
-installvendorbin='/usr/perl5/5.8.4/bin'
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib='/usr/perl5/vendor_perl/5.8.4'
-installvendorman1dir='/usr/perl5/5.8.4/man/man1'
-installvendorman3dir='/usr/perl5/5.8.4/man/man3'
-installvendorscript='/usr/perl5/5.8.4/bin'
-intsize='4'
-issymlink='test -h'
-ivdformat='"lld"'
-ivsize='8'
-ivtype='long long'
-known_extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re'
-ksh=''
-ld='gcc'
-lddlflags='-G'
-ldflags=''
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc='/lib/libc.so'
-libperl='libperl.so'
-libsdirs='/usr/lib'
-libsfiles='libsocket.so.1 libnsl.so.1 libdl.so.1 libm.so.2 libc.so.1'
-libsfound='/usr/lib/libsocket.so.1 /usr/lib/libnsl.so.1 /usr/lib/libdl.so.1 /usr/lib/libm.so.2 /usr/lib/libc.so.1'
-libspath='/lib /usr/lib /usr/ccs/lib'
-libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db dl dld sun m util c cposix posix bsd BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/usr/bin/ln -s'
-localtime_r_proto='0'
-locincpth='/usr/sfw/include /opt/sfw/include /usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
-loclibpth='/usr/sfw/lib /opt/sfw/lib /usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
-longdblsize='16'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir='/usr/perl5/5.8.4/man/man1'
-man1direxp='/usr/perl5/5.8.4/man/man1'
-man1ext='1'
-man3dir='/usr/perl5/5.8.4/man/man3'
-man3direxp='/usr/perl5/5.8.4/man/man3'
-man3ext='3'
-mips_type=''
-mistrustnm='run'
-mkdir='mkdir'
-mmaptype='caddr_t'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='sun4-solaris'
-mydomain='.sun.com'
-myhostname='localhost'
-myuname='sunos localhost 5.11 sun4u sparc SUNW,Ultra-2'
-n=''
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt='-p'
-nm_so_opt=''
-nonxs_ext='Errno'
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='53'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2 -fno-strict-aliasing'
-orderlib='false'
-otherlibdirs=''
-package='perl5'
-pager='/usr/bin/more'
-passcat='cat /etc/passwd'
-patchlevel='8'
-path_sep=':'
-perl5='/bin/perl'
-perl=''
-perl_patchlevel=''
-perladmin='perl-bugs@sun.com'
-perllibs='-lsocket -lnsl -ldl -lm -lc'
-perlpath='/usr/perl5/5.8.4/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefixexp='/usr/perl5/5.8.4'
-privlib='/usr/perl5/5.8.4/lib'
-procselfexe=''
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rmail=''
-run=''
-runnm='true'
-sPRIEUldbl='"LE"'
-sPRIFUldbl='"LF"'
-sPRIGUldbl='"LG"'
-sPRIXU64='"llX"'
-sPRId64='"lld"'
-sPRIeldbl='"Le"'
-sPRIfldbl='"Lf"'
-sPRIgldbl='"Lg"'
-sPRIi64='"lli"'
-sPRIo64='"llo"'
-sPRIu64='"llu"'
-sPRIx64='"llx"'
-sSCNfldbl='"Lf"'
-sched_yield='undef'
-scriptdir='/usr/perl5/5.8.4/bin'
-scriptdirexp='/usr/perl5/5.8.4/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-sig_count='49'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ WAITING LWP FREEZE THAW CANCEL LOST XRES JVM1 JVM2 RTMIN NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 RTMAX IOT CLD POLL'
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "WAITING", "LWP", "FREEZE", "THAW", "CANCEL", "LOST", "XRES", "JVM1", "JVM2", "RTMIN", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_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 6 18 22'
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 18, 22, 0'
-sig_size='52'
-signal_t='void'
-sitearch='/usr/perl5/site_perl/5.8.4/sun4-solaris-64int'
-sitearchexp='/usr/perl5/site_perl/5.8.4/sun4-solaris-64int'
-sitebin='/usr/perl5/5.8.4/bin'
-sitebinexp='/usr/perl5/5.8.4/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib='/usr/perl5/site_perl/5.8.4'
-sitelib_stem='/usr/perl5/site_perl'
-sitelibexp='/usr/perl5/site_perl/5.8.4'
-siteman1dir='/usr/perl5/5.8.4/man/man1'
-siteman1direxp='/usr/perl5/5.8.4/man/man1'
-siteman3dir='/usr/perl5/5.8.4/man/man3'
-siteman3direxp='/usr/perl5/5.8.4/man/man3'
-siteprefix='/usr/perl5/5.8.4'
-siteprefixexp='/usr/perl5/5.8.4'
-sitescript='/usr/perl5/5.8.4/bin'
-sitescriptexp='/usr/perl5/5.8.4/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-sockethdr=''
-socketlib=''
-socksizetype='int'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/perl5/5.8.4/bin/perl'
-stdchar='unsigned char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array='__iob'
-strerror_r_proto='0'
-strings='/usr/include/string.h'
-submit=''
-subversion='4'
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch=''
-tbl=''
-tee=''
-test='test'
-timeincl='/usr/include/sys/time.h'
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"ld"'
-uidsign='-1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='define'
-usecrosscompile='undef'
-usedl='define'
-usefaststdio='define'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usereentrant='undef'
-usesfio='false'
-useshrplib='true'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='define'
-usevfork='false'
-usrinc='/usr/include'
-uuname=''
-uvXUformat='"llX"'
-uvoformat='"llo"'
-uvsize='8'
-uvtype='unsigned long long'
-uvuformat='"llu"'
-uvxformat='"llx"'
-vendorarch='/usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int'
-vendorarchexp='/usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int'
-vendorbin='/usr/perl5/5.8.4/bin'
-vendorbinexp='/usr/perl5/5.8.4/bin'
-vendorhtml1dir=''
-vendorhtml1direxp=''
-vendorhtml3dir=''
-vendorhtml3direxp=''
-vendorlib='/usr/perl5/vendor_perl/5.8.4'
-vendorlib_stem='/usr/perl5/vendor_perl'
-vendorlibexp='/usr/perl5/vendor_perl/5.8.4'
-vendorman1dir='/usr/perl5/5.8.4/man/man1'
-vendorman1direxp='/usr/perl5/5.8.4/man/man1'
-vendorman3dir='/usr/perl5/5.8.4/man/man3'
-vendorman3direxp='/usr/perl5/5.8.4/man/man3'
-vendorprefix='/usr/perl5/5.8.4'
-vendorprefixexp='/usr/perl5/5.8.4'
-vendorscript='/usr/perl5/5.8.4/bin'
-vendorscriptexp='/usr/perl5/5.8.4/bin'
-version='5.8.4'
-version_patchlevel_string='version 8 subversion 4'
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-!END!
-
-# Search for it in the big string
-sub fetch_string {
- my($self, $key) = @_;
-
- my $quote_type = "'";
- my $marker = "$key=";
-
- # Check for the common case, ' delimited
- my $start = index($Config_SH, "\n$marker$quote_type");
- # If that failed, check for " delimited
- if ($start == -1) {
- $quote_type = '"';
- $start = index($Config_SH, "\n$marker$quote_type");
- }
- return undef if ( ($start == -1) && # in case it's first
- (substr($Config_SH, 0, length($marker)) ne $marker) );
- if ($start == -1) {
- # It's the very first thing we found. Skip $start forward
- # and figure out the quote mark after the =.
- $start = length($marker) + 1;
- $quote_type = substr($Config_SH, $start - 1, 1);
- }
- else {
- $start += length($marker) + 2;
- }
-
- my $value = substr($Config_SH, $start,
- index($Config_SH, "$quote_type\n", $start) - $start);
-
- # If we had a double-quote, we'd better eval it so escape
- # sequences and such can be interpolated. Since the incoming
- # value is supposed to follow shell rules and not perl rules,
- # we escape any perl variable markers
- if ($quote_type eq '"') {
- $value =~ s/\$/\\\$/g;
- $value =~ s/\@/\\\@/g;
- eval "\$value = \"$value\"";
- }
-
- # So we can say "if $Config{'foo'}".
- $value = undef if $value eq 'undef';
- $self->{$key} = $value; # cache it
-}
-
-sub fetch_virtual {
- my($self, $key) = @_;
-
- my $value;
-
- if ($key =~ /^((?:cc|ld)flags|libs(?:wanted)?)_nolargefiles/) {
- # These are purely virtual, they do not exist, but need to
- # be computed on demand for largefile-incapable extensions.
- my $new_key = "${1}_uselargefiles";
- $value = $Config{$1};
- my $withlargefiles = $Config{$new_key};
- if ($new_key =~ /^(?:cc|ld)flags_/) {
- $value =~ s/\Q$withlargefiles\E\b//;
- } elsif ($new_key =~ /^libs/) {
- my @lflibswanted = split(' ', $Config{libswanted_uselargefiles});
- if (@lflibswanted) {
- my %lflibswanted;
- @lflibswanted{@lflibswanted} = ();
- if ($new_key =~ /^libs_/) {
- my @libs = grep { /^-l(.+)/ &&
- not exists $lflibswanted{$1} }
- split(' ', $Config{libs});
- $Config{libs} = join(' ', @libs);
- } elsif ($new_key =~ /^libswanted_/) {
- my @libswanted = grep { not exists $lflibswanted{$_} }
- split(' ', $Config{libswanted});
- $Config{libswanted} = join(' ', @libswanted);
- }
- }
- }
- }
-
- $self->{$key} = $value;
-}
-
-sub FETCH {
- my($self, $key) = @_;
-
- # check for cached value (which may be undef so we use exists not defined)
- return $self->{$key} if exists $self->{$key};
-
- $self->fetch_string($key);
- return $self->{$key} if exists $self->{$key};
- $self->fetch_virtual($key);
-
- # Might not exist, in which undef is correct.
- return $self->{$key};
-}
-
-my $prevpos = 0;
-
-sub FIRSTKEY {
- $prevpos = 0;
- substr($Config_SH, 0, index($Config_SH, '=') );
-}
-
-sub NEXTKEY {
- # Find out how the current key's quoted so we can skip to its end.
- my $quote = substr($Config_SH, index($Config_SH, "=", $prevpos)+1, 1);
- my $pos = index($Config_SH, qq($quote\n), $prevpos) + 2;
- my $len = index($Config_SH, "=", $pos) - $pos;
- $prevpos = $pos;
- $len > 0 ? substr($Config_SH, $pos, $len) : undef;
-}
-
-sub EXISTS {
- return 1 if exists($_[0]->{$_[1]});
-
- return(index($Config_SH, "\n$_[1]='") != -1 or
- substr($Config_SH, 0, length($_[1])+2) eq "$_[1]='" or
- index($Config_SH, "\n$_[1]=\"") != -1 or
- substr($Config_SH, 0, length($_[1])+2) eq "$_[1]=\"" or
- $_[1] =~ /^(?:(?:cc|ld)flags|libs(?:wanted)?)_nolargefiles$/
- );
-}
-
-sub STORE { die "\%Config::Config is read-only\n" }
-*DELETE = \&STORE;
-*CLEAR = \&STORE;
-
-
-sub config_sh {
- $Config_SH
-}
-
-sub config_re {
- my $re = shift;
- return map { chomp; $_ } grep /^$re=/, split /^/, $Config_SH;
-}
-
-sub config_vars {
- foreach (@_) {
- if (/\W/) {
- my @matches = config_re($_);
- print map "$_\n", @matches ? @matches : "$_: not found";
- } else {
- my $v = (exists $Config{$_}) ? $Config{$_} : 'UNKNOWN';
- $v = 'undef' unless defined $v;
- print "$_='$v';\n";
- }
- }
-}
-
-sub TIEHASH {
- bless $_[1], $_[0];
-}
-
-# avoid Config..Exporter..UNIVERSAL search for DESTROY then AUTOLOAD
-sub DESTROY { }
-
-my $i = 0;
-foreach my $c (8,7,6,5,4,3,2) { $i |= ord($c); $i <<= 8 }
-$i |= ord(1);
-my $value = join('', unpack('aaaaaaaa', pack('Q', $i)));
-
-
-tie %Config, 'Config', {
- 'archlibexp' => '/usr/perl5/5.8.4/lib/sun4-solaris-64int',
- 'archname' => 'sun4-solaris-64int',
- 'cc' => 'gcc',
- 'ccflags' => '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO',
- 'cppflags' => '',
- 'dlsrc' => 'dl_dlopen.xs',
- 'dynamic_ext' => 'B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re',
- 'installarchlib' => '/usr/perl5/5.8.4/lib/sun4-solaris-64int',
- 'installprivlib' => '/usr/perl5/5.8.4/lib',
- 'libpth' => '/lib /usr/lib /usr/ccs/lib',
- 'libs' => '-lsocket -lnsl -ldl -lm -lc',
- 'osname' => 'solaris',
- 'osvers' => '2.11',
- 'prefix' => '/usr/perl5/5.8.4',
- 'privlibexp' => '/usr/perl5/5.8.4/lib',
- 'sharpbang' => '#!',
- 'shsharp' => 'true',
- 'so' => 'so',
- 'startsh' => '#!/bin/sh',
- 'static_ext' => '',
- byteorder => $value,
-
-};
-
-1;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/perlgcc.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/perlgcc.PL
deleted file mode 100644
index 44f820dd77..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/perlgcc.PL
+++ /dev/null
@@ -1,62 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-use strict;
-use warnings;
-use Config;
-our $VERSION = '1.2';
-
-my $fh;
-open($fh, ">$ARGV[0]") || die("Can't open perlgcc: $!\n");
-
-my $perlver = sprintf('%vd', $^V);
-my $startperl = $Config{startperl};
-my $perlpath = $Config{perlpath};
-my $privlib = "$Config{installprivlib}/Sun/Solaris/PerlGcc";
-
-print $fh <<EOF;
-$startperl
-#
-# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-
-use $perlver;
-use strict;
-use warnings;
-our \$VERSION = '$VERSION';
-
-\$ENV{PERL5_OVERRIDE_CONFIG} = '1';
-if (exists(\$ENV{PERL5LIB})) {
- \$ENV{PERL5LIB} =
- "$privlib:\$ENV{PERL5LIB}";
-} else {
- \$ENV{PERL5LIB} =
- '$privlib';
-}
-exec('$perlpath', \@ARGV)
- || die("Can't exec $perlpath: \$!\\n");
-EOF
-close($fh) || die("Can't open perlgcc: $!\n");
-exit(0);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/pod/perlgcc.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/pod/perlgcc.pod
deleted file mode 100644
index bd939d9469..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/PerlGcc/pod/perlgcc.pod
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License"). You may not use this file except in compliance
-# with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#ident "%Z%%M% %I% %E% SMI"
-#
-
-=head1 NAME
-
-perlgcc - Compile perl modules using gcc.
-
-=head1 SYNOPSIS
-
- perlgcc Makefile.PL; make
-
-=head1 DESCRIPTION
-
-When perl is built it saves the name of the compiler and any compiler flags
-in its configuration files, and then uses these saved settings when any
-additional modules are built. The perl shipped with Solaris is built with the
-Forte compilers rather than gcc.
-
-If add-on modules are built with the Forte compilers, everyting works as
-expected. However, if gcc is used to build add-on modules, the saved
-configuration is incorrect as it assumes that the Forte compiler will be
-present.
-
-This command provides a set of perl configuration files that are configured to
-use gcc as the compiler rather than the Forte compiler. The default
-configuration files are not modified, instead a replacement set of files are
-transparently substituted for the duration of the perlgcc command.
-
-Instead of invoking C<perl Makefile.PL> to generate the makefile needed
-to compile a module, C<perlgcc Makefile.PL> should be used instead.
-All command-line arguments to perlgcc are passed unmodified to C<perl>.
-
-If you use the CPAN.pm module, instead of invoking C<perl -MCPAN -e shell>,
-you should use C<perlgcc -MCPAN -e shell> instead, and use as normal.
-
-=head1 ENVIRONMENT VARIABLES
-
-PERL5LIB
-
-This is modified to point to the location of the replacement perl configuration
-files.
-
-=head2 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
- | Interface Stability | Evolving |
- |_____________________________|_____________________________|
-
-=head1 SEE ALSO
-
-C<perl(1)>, C<perlrun(1)>, C<perlsolaris(1)>.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Pg/Makefile b/usr/src/cmd/perl/contrib/Sun/Solaris/Pg/Makefile
new file mode 100644
index 0000000000..542401b885
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Pg/Makefile
@@ -0,0 +1,29 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+MODULE = Pg
+
+include $(SRC)/cmd/perl/Makefile.perl
+
+# Install module into arch independant directory
+ROOTPERLMODDIR = $(ROOTPERLDIR)/lib/Sun/Solaris
+
+include $(SRC)/cmd/perl/Makefile.targ
+
+all: $(PERLMOD)
+
+install: $(ROOTPERLMOD)
+
+clean clobber:
+ $(RM) -r $(MACH)
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Pg/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Pg/Makefile.PL
deleted file mode 100644
index f45d918f84..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Pg/Makefile.PL
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-# #defines.
-my @defines = ( DEFINE => exists($ENV{RELEASE_BUILD}) ? '-DNDEBUG' : '' );
-
-# List of POD pages to install.
-my @man3pods = ( MAN3PODS => {} );
-
-
-#
-# If not building as part of ON.
-#
-if (! exists($ENV{CODEMGR_WS})) {
-
- #
- # Suppress the setting of LD_RUN_PATH. The ON build environment
- # contains a modified MakeMaker that does this automatically, so we
- # only need to do this if we are building outside of ON.
- #
- package MY;
- no warnings qw(once);
-
- #
- # Install the POD documentation for non-ON builds.
- #
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Pg';
- @man3pods = (
- MAN3PODS => { 'pod/Pg.pod' => $man3pfx . '.$(MAN3EXT)' }
- );
-}
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Pg',
- VERSION_FROM => 'Pg.pm',
- @man3pods,
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Changes b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Changes
deleted file mode 100644
index 7669aa183a..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Changes
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-
-Version 1.1
-Initial Public Source release.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/MANIFEST
deleted file mode 100644
index 185c84ebf5..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/MANIFEST
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-#ident "%Z%%M% %I% %E% SMI"
-#
-Changes
-MANIFEST
-Makefile.PL
-Privilege.pm
-Privilege.xs
-README
-pod/Privilege.pod
-t/Privilege.t
-typemap
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Makefile.PL
deleted file mode 100644
index b610af141c..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Makefile.PL
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Makefile.PL for ::Privilege
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-# #defines.
-my @defines = ( DEFINE => exists($ENV{RELEASE_BUILD}) ? '-DNDEBUG' : '' );
-
-# List of POD pages to install.
-my @man3pods = ( MAN3PODS => {} );
-
-#
-# If not building as part of ON.
-#
-if (! exists($ENV{ENVCPPFLAGS1})) {
-
- #
- # Suppress the setting of LD_RUN_PATH. The ON build environment
- # contains a modified MakeMaker that does this automatically, so we
- # only need to do this if we are building outside of ON.
- #
- package MY;
- no warnings qw(once);
-
- # Override const_loadlibs to remove LD_RUN_PATH cruft.
- *const_loadlibs = sub
- {
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
- };
-
- # Override dynamic_lib to get rid of LD_RUN_PATH cruft.
- *dynamic_lib = sub
- {
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
- };
-
- # Turn off debugging.
- @defines = ();
-
- #
- # Install the POD documentation for non-ON builds.
- #
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Privilege';
- @man3pods = (
- MAN3PODS => { 'pod/Privilege.pod' => $man3pfx . '.$(MAN3EXT)' }
- );
-}
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Privilege',
- VERSION_FROM => 'Privilege.pm',
- @defines,
- @man3pods,
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Privilege.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Privilege.pm
deleted file mode 100644
index 57e90a2898..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Privilege.pm
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Privilege.pm provides the bootstrap for the Sun::Solaris::Privilege module.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-
-package Sun::Solaris::Privilege;
-
-our $VERSION = '1.4';
-
-use XSLoader;
-XSLoader::load(__PACKAGE__, $VERSION);
-
-our (@EXPORT_OK, %EXPORT_TAGS);
-my @constants = qw(PRIV_STR_SHORT PRIV_STR_LIT PRIV_STR_PORT PRIV_ON PRIV_OFF
- PRIV_SET PRIV_AWARE PRIV_AWARE_RESET PRIV_DEBUG PRIV_PFEXEC
- PRIV_XPOLICY NET_MAC_AWARE NET_MAC_AWARE_INHERIT __PROC_PROTECT);
-my @syscalls = qw(setppriv getppriv setpflags getpflags);
-my @libcalls = qw(priv_addset priv_copyset priv_delset
- priv_emptyset priv_fillset priv_intersect priv_inverse priv_ineffect
- priv_isemptyset priv_isequalset priv_isfullset priv_ismember
- priv_issubset priv_union priv_set_to_str priv_str_to_set priv_gettext);
-my @variables = qw(%PRIVILEGES %PRIVSETS);
-
-my @private = qw(priv_getsetbynum priv_getbynum);
-
-use vars qw(%PRIVILEGES %PRIVSETS);
-
-#
-# Dynamically gather all the privilege and privilege set names; they are
-# generated in Privileges.xs::BOOT.
-#
-push @constants, keys %PRIVILEGES, keys %PRIVSETS;
-
-@EXPORT_OK = (@constants, @syscalls, @libcalls, @private, @variables);
-%EXPORT_TAGS = (CONSTANTS => \@constants, SYSCALLS => \@syscalls,
- LIBCALLS => \@libcalls, PRIVATE => \@private, VARIABLES => \@variables,
- ALL => \@EXPORT_OK);
-
-our @ISA = qw(Exporter);
-
-1;
-__END__
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Privilege.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Privilege.xs
deleted file mode 100644
index 90289423d1..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/Privilege.xs
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* Solaris includes. */
-#include <priv.h>
-#include <ctype.h>
-
-/* Perl includes. */
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define IVCONST(s, c) newCONSTSUB(s, #c, newSViv((int)(intptr_t)c));
-#define POFF (sizeof ("PRIV_") - 1)
-
-#define RETPRIVSET(set) \
- ST(0) = sv_newmortal(); \
- sv_setref_pv(ST(0), "Sun::Solaris::Privilege::PrivsetPtr", \
- (void*)(set)); \
- SvREADONLY_on(SvRV(ST(0)))
-
-typedef int sysret;
-
-typedef priv_set_t Sun__Solaris__Privilege__Privset;
-
-static priv_set_t *
-dupset(const priv_set_t *s)
-{
- priv_set_t *new = priv_allocset();
- if (new == NULL)
- return (NULL);
-
- priv_copyset(s, new);
- return (new);
-}
-
-/*
- * Automatically derive the #define constant from the constant value.
- * This is the uppercase value of the constant with "PRIV_" prepended.
- * The (name, value) pair computed in that way is stored twice:
- * once as constant subroutine in the module's hash table.
- * once as (key, value) in a hash table.
- */
-
-static void
-PRIVconst(HV *sym, HV *var, const char *name)
-{
- char upname[128];
- ssize_t len;
- int i;
-
- len = snprintf(upname, sizeof (upname), "PRIV_%s", name);
- if (len >= sizeof (upname))
- return;
-
- for (i = POFF; i < len; i++)
- upname[i] = toupper(upname[i]);
- newCONSTSUB(sym, upname, newSVpv(name, len - POFF));
- hv_store(var, upname, len, newSVpv(name, len - POFF), 0);
-}
-
-/*
- * The XS code exported to perl is below here. Note that the XS preprocessor
- * has its own commenting syntax, so all comments from this point on are in
- * that form.
- *
- * Inside perl, privilege sets are represented as expanded strings;
- * privileges and privilege sets are only known by name.
- */
-
-MODULE = Sun::Solaris::Privilege PACKAGE = Sun::Solaris::Privilege
-PROTOTYPES: ENABLE
-
- #
- # Define any constants that need to be exported. By doing it this way we can
- # avoid the overhead of using the DynaLoader package, and in addition constants
- # defined using this mechanism are eligible for inlining by the perl
- # interpreter at compile time.
- #
-BOOT:
-{
- HV *stash;
- HV *privs;
- HV *privsets;
- const char *p;
- int i;
-
- stash = gv_stashpv("Sun::Solaris::Privilege", TRUE);
-
- /*
- * Global constants
- */
- IVCONST(stash, PRIV_STR_PORT);
- IVCONST(stash, PRIV_STR_LIT);
- IVCONST(stash, PRIV_STR_SHORT);
- IVCONST(stash, PRIV_ALLSETS);
- IVCONST(stash, PRIV_DEBUG);
- IVCONST(stash, PRIV_AWARE);
- IVCONST(stash, PRIV_ON);
- IVCONST(stash, PRIV_OFF);
- IVCONST(stash, PRIV_SET);
-
- /*
- * %PRIVILEGES hash and the privilege constants
- */
- privs = perl_get_hv("Sun::Solaris::Privilege::PRIVILEGES", TRUE);
- for (i = 0; (p = priv_getbynum(i++)) != NULL; )
- PRIVconst(stash, privs, p);
-
- /*
- * %PRIVSETS hash and the privset constants
- */
- privsets = perl_get_hv("Sun::Solaris::Privilege::PRIVSETS", TRUE);
- for (i = 0; (p = priv_getsetbynum(i++)) != NULL; )
- PRIVconst(stash, privsets, p);
-}
-
-
-Sun::Solaris::Privilege::Privset *
-getppriv(which)
- const char *which;
-CODE:
- RETVAL = priv_allocset();
- if (getppriv(which, RETVAL) != 0) {
- priv_freeset(RETVAL);
- XSRETURN_UNDEF;
- } else {
- RETPRIVSET(RETVAL);
- }
-
-sysret
-setppriv(op, which, set)
- int op;
- const char *which;
- Sun::Solaris::Privilege::Privset *set;
-
-Sun::Solaris::Privilege::Privset *
-priv_emptyset()
-CODE:
- RETVAL = priv_allocset();
- if (RETVAL == NULL) {
- XSRETURN_UNDEF;
- }
- priv_emptyset(RETVAL);
- RETPRIVSET(RETVAL);
-
-Sun::Solaris::Privilege::Privset *
-priv_fillset()
-CODE:
- RETVAL = priv_allocset();
- if (RETVAL == NULL) {
- XSRETURN_UNDEF;
- }
- priv_fillset(RETVAL);
- RETPRIVSET(RETVAL);
-
-boolean_t
-priv_isemptyset(set)
- Sun::Solaris::Privilege::Privset *set;
-
-boolean_t
-priv_isfullset(set)
- Sun::Solaris::Privilege::Privset *set;
-
-boolean_t
-priv_isequalset(set1, set2)
- Sun::Solaris::Privilege::Privset *set1;
- Sun::Solaris::Privilege::Privset *set2;
-
-boolean_t
-priv_issubset(set1, set2)
- Sun::Solaris::Privilege::Privset *set1;
- Sun::Solaris::Privilege::Privset *set2;
-
-boolean_t
-priv_ismember(set, priv)
- Sun::Solaris::Privilege::Privset *set;
- const char *priv;
-
-boolean_t
-priv_ineffect(priv)
- const char *priv;
-
-Sun::Solaris::Privilege::Privset *
-priv_intersect(set1, set2)
- Sun::Solaris::Privilege::Privset *set1;
- Sun::Solaris::Privilege::Privset *set2;
-CODE:
- RETVAL = dupset(set2);
- if (RETVAL == NULL) {
- XSRETURN_UNDEF;
- }
- priv_intersect(set1, RETVAL);
- RETPRIVSET(RETVAL);
-
-Sun::Solaris::Privilege::Privset *
-priv_union(set1, set2)
- Sun::Solaris::Privilege::Privset *set1;
- Sun::Solaris::Privilege::Privset *set2;
-CODE:
- RETVAL = dupset(set2);
- if (RETVAL == NULL) {
- XSRETURN_UNDEF;
- }
- priv_union(set1, RETVAL);
- RETPRIVSET(RETVAL);
-
-Sun::Solaris::Privilege::Privset *
-priv_inverse(set1)
- Sun::Solaris::Privilege::Privset *set1;
-CODE:
- RETVAL = dupset(set1);
- if (RETVAL == NULL) {
- XSRETURN_UNDEF;
- }
- priv_inverse(RETVAL);
- RETPRIVSET(RETVAL);
-
-
-sysret
-priv_addset(set, priv)
- Sun::Solaris::Privilege::Privset *set;
- const char *priv;
-
-Sun::Solaris::Privilege::Privset *
-priv_copyset(set1)
- Sun::Solaris::Privilege::Privset *set1;
-CODE:
- RETVAL = dupset(set1);
- if (RETVAL == NULL) {
- XSRETURN_UNDEF;
- }
- RETPRIVSET(RETVAL);
-
-
-sysret
-priv_delset(set, priv)
- Sun::Solaris::Privilege::Privset *set;
- const char *priv;
-
-const char *
-priv_getbynum(i)
- int i;
-
-const char *
-priv_getsetbynum(i)
- int i;
-
-char *
-priv_set_to_str(s, c, f)
- Sun::Solaris::Privilege::Privset *s;
- char c;
- int f;
-CLEANUP:
- free(RETVAL);
-
-Sun::Solaris::Privilege::Privset *
-priv_str_to_set(buf, sep);
- const char *buf;
- const char *sep;
-CODE:
- RETVAL = priv_str_to_set(buf, sep, NULL);
- if (RETVAL == NULL) {
- XSRETURN_UNDEF;
- }
- RETPRIVSET(RETVAL);
-
-char *
-priv_gettext(priv)
- const char *priv
-CLEANUP:
- free(RETVAL);
-
-sysret
-setpflags(flag, val)
- uint_t flag;
- uint_t val;
-
-sysret
-getpflags(flag)
- uint_t flag;
-
-MODULE = Sun::Solaris::Privilege PACKAGE = Sun::Solaris::Privilege::PrivsetPtr PREFIX = Privilege_
-
-void
-Privilege_DESTROY(ps)
- Sun::Solaris::Privilege::Privset *ps;
-CODE:
- priv_freeset(ps);
-
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/README b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/README
deleted file mode 100644
index 1de03a7384..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/README
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-Licensing
----------
-This module is released under the Perl Artistic License.
-
-Availability
-------------
-This module is only available for Solaris 10 onwards.
-
-Description
------------
-This module provides access to the Solaris Privilege subsystem.
-
-See getppriv(2), setppriv(2), priv_str_to_set(3C), priv_set(3C),
-priv_addset(3C), privileges(5).
-
-Installation
-------------
-
-1. Uncompress and untar the archive
-2. cd to the module directory
-3. perl Makefile.PL; make install
-
-If you are using gcc and wish to build this module against the perl shipped as
-part of Solaris, see the Solaris-PerlGcc module, also available from CPAN.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/pod/Privilege.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/pod/Privilege.pod
deleted file mode 100644
index 14a03d4757..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/pod/Privilege.pod
+++ /dev/null
@@ -1,148 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Sun::Solaris::Privilege documentation.
-#
-
-=head1 NAME
-
-Sun::Solaris::Privilege - Perl interface to Privileges
-
-=head1 SYNOPSIS
-
- use Sun::Solaris::Privilege qw(:ALL);
-
-This module provides wrappers for the Privilege-related system and
-library calls. Also provided are constants from the various
-Privilege-related headers and dynamically generated constants for all
-the privileges and privilege sets.
-
-=head2 Functions
-
-B<C<getppriv($which)>>
-
-This function returns the process privilege set specified by $which.
-
-B<C<setppriv($op, $which, $set)>>
-
-This function modified the privilege set specified by $which in the
-as specified by the $op and $set arguments. If $op is PRIV_ON the
-privileges in $set are added to the set specified; if $op is PRIV_OFF,
-the privileges in $set are removed from the set specified; if $op
-is PRIV_SET, the specified set is made equal to $set.
-
-B<C<getpflags($flag)>>
-
-Returns the value associated with process $flag or undef on error.
-Possible values for $flag are PRIV_AWARE and PRIV_DEBUG.
-
-B<C<setppflags($flag, $val)>>
-
-Sets the process flag $flag to $val.
-
-B<C<priv_fillset()>>
-
-This returns a new privilege set with all privileges set.
-
-B<C<priv_emptyset()>>
-
-This returns a new empty privilege set.
-
-B<C<priv_isemptyset($set)>>
-
-This function returns whether $set is empty or not.
-
-B<C<priv_isfullset($set)>>
-
-This function returns whether $set is full or not.
-
-B<C<priv_isequalset($a, $b)>>
-
-This function returns whether sets $a and $b are equal.
-
-B<C<priv_issubset($a, $b)>>
-
-This function returns whether set $a is a subset of $b.
-
-B<C<priv_ismember($set, $priv)>>
-
-This function returns whether $priv is a member of $set.
-
-B<C<priv_ineffect($priv)>>
-
-This function returned whether $priv is in the process' effective set.
-
-B<C<priv_intersect($a, $b)>>
-
-This function returns a new privilege set which is the intersection of $a
-and $b
-
-B<C<priv_union($a, $b)>>
-
-This function returns a new privilege set which is the union of $a
-and $b
-
-B<C<priv_inverse($a)>>
-
-This function returns a new privilege set which is the inverse of $a.
-
-B<C<priv_addset($set, $priv)>>
-
-This functon adds the privilege $priv to $set.
-
-B<C<priv_copyset($a)>>
-
-This function returns a copy of the privilege set $a.
-
-B<C<priv_delset($set, $priv)>>
-
-This function remove the privilege $priv from $set.
-
-=head2 Class methods
-
-None.
-
-=head2 Object methods
-
-None.
-
-=head2 Exports
-
-By default nothing is exported from this module. The following tags can be
-used to selectively import constants and functions defined in this module:
-
- :SYSCALLS getppriv(), setppriv()
-
- :LIBCALLS priv_addset(), priv_copyset(), priv_delset(),
- priv_emptyset(), priv_fillset(), priv_intersect(),
- priv_inverse(), priv_isemptyset(), priv_isequalset(),
- priv_isfullset(), priv_ismember(), priv_issubset(),
- priv_gettext(), priv_union(), priv_set_to_str(),
- priv_str_to_set()
-
- :CONSTANTS PRIV_STR_SHORT PRIV_STR_LIT PRIV_STR_PORT PRIV_ON PRIV_OFF
- PRIV_SET PRIV_ALLSETS PRIV_AWARE PRIV_DEBUG
- plus constant for all privileges and privilege sets.
-
- :VARIABLES %PRIVILEGES, %PRIVSETS
-
- :ALL :SYSCALLS, :LIBCALLS, :CONSTANTS and :VARIABLES
-
-=head1 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
- | Interface Stability | Evolving |
- |_____________________________|_____________________________|
-
-=head1 SEE ALSO
-
-C<getpflags(2)>, C<getppriv(2)>, C<priv_addset(3C)>, C<priv_str_to_set(3C)>,
-C<priv_set(3C)>, C<privileges(5)>, C<attributes(5)>
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/t/Privilege.t b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/t/Privilege.t
deleted file mode 100644
index cc153c4a2a..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/t/Privilege.t
+++ /dev/null
@@ -1,278 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# test script for Sun::Solaris::Privilege
-#
-
-$^W = 1;
-use strict;
-use Data::Dumper;
-$Data::Dumper::Terse = 1;
-$Data::Dumper::Indent = 0;
-
-#
-# Status reporting utils
-#
-
-use vars qw($test);
-$test = 1;
-
-sub pass
-{
- print("ok $test $@\n");
- $test++;
-}
-
-sub fail
-{
- print("not ok $test $@\n");
- $test++;
-}
-
-sub fatal
-{
- print("not ok $test $@\n");
- exit(1);
-}
-
-my $errs;
-
-sub report
-{
- if ($errs) {
- fail();
- } else {
- pass();
- }
- $errs = 0;
-}
-
-#
-# Main body of tests starts here
-#
-
-my ($loaded, $line) = (1, 0);
-my $fh = do { local *FH; *FH; };
-
-# 1. Check the module loads
-BEGIN { $| = 1; print "1..15\n"; }
-END { print "not ok 1\n" unless $loaded; }
-use Sun::Solaris::Privilege qw(:ALL :PRIVATE);
-$loaded = 1;
-pass();
-
-#
-# 2. ppriv -l works
-#
-my $privs = `ppriv -l`;
-if ($privs eq "") {
- fail();
-} else {
- pass();
-}
-my @privs = split(/\s+/, $privs);
-
-#
-# 3. Are all privileges according ppriv -l defined in the privileges hash?
-#
-
-my %sprivs;
-foreach my $p (@privs)
-{
- my $cn = $p;
- $cn =~ s/.*/PRIV_\U$&/;
- $sprivs{$cn} = $p;
- $errs++ if (!defined $PRIVILEGES{$cn} || $PRIVILEGES{$cn} ne $p);
-}
-report();
-
-#
-# 4. And are those all the privileges.
-#
-foreach my $p (keys %PRIVILEGES)
-{
- $errs++ if (!defined $sprivs{$p});
-}
-report();
-
-#
-# 5. Verify that all privileges are part of the full set.
-#
-my $full = priv_fillset();
-
-foreach my $p (keys %PRIVILEGES)
-{
- $errs++ if (!priv_ismember($full, $p));
-}
-report();
-
-#
-# 6. Verify that no privilege is part of the empty set.
-#
-my $empty = priv_emptyset();
-
-foreach my $p (keys %PRIVILEGES)
-{
- $errs++ if (priv_ismember($empty, $p));
-}
-report();
-
-#
-# 7. Verify that priv_delset removes privileges.
-#
-foreach my $p (keys %PRIVILEGES)
-{
- my $testset = priv_fillset();
- $errs++ unless priv_delset($testset, $p);
- $errs++ if priv_ismember($testset, $p);
-
-}
-report();
-
-#
-# 8. Verify getpflags/setpflags.
-#
-my $pflags;
-$errs++ unless ($pflags = getpflags(PRIV_AWARE));
-
-$errs++ unless setpflags(PRIV_AWARE, 0);
-$errs++ unless setpflags(PRIV_DEBUG, 1);
-$errs++ unless (getpflags(PRIV_DEBUG) == 1);
-$errs++ unless setpflags(PRIV_DEBUG, 0);
-$errs++ unless (getpflags(PRIV_DEBUG) == 0);
-
-report();
-
-#
-# 9. Verify getppriv() works.
-#
-my %psets;
-foreach my $s (keys %PRIVSETS)
-{
- $errs++ unless ($psets{$s} = getppriv($s));
-}
-report();
-
-#
-# 10. Verify that we can reset those sets.
-#
-foreach my $s (keys %PRIVSETS)
-{
- $errs++ unless (setppriv(PRIV_SET, $s, $psets{$s}));
-}
-report();
-
-#
-# 11. E/P/I manipulations.
-#
-$errs++ unless setppriv(PRIV_SET, PRIV_EFFECTIVE, priv_emptyset());
-$errs++ unless setppriv(PRIV_SET, PRIV_EFFECTIVE, getppriv(PRIV_PERMITTED));
-$errs++ unless setppriv(PRIV_SET, PRIV_INHERITABLE, priv_emptyset());
-$errs++ unless setppriv(PRIV_SET, PRIV_INHERITABLE, getppriv(PRIV_PERMITTED));
-report();
-#
-# 12. Fork()/exec() tests. See if the setting the privileges actually
-# has an effect.
-#
-my $p;
-priv_delset($p = getppriv(PRIV_PERMITTED), PRIV_PROC_FORK);
-$errs++ unless setppriv(PRIV_SET, PRIV_EFFECTIVE, $p);
-
-my $fr = fork();
-
-# Child of a sucessful fork().
-exit if (defined($fr) && $fr == 0);
-
-$errs++ unless !defined $fr;
-
-# Exec test
-priv_addset($p, PRIV_PROC_FORK);
-priv_delset($p, PRIV_PROC_EXEC);
-$errs++ unless setppriv(PRIV_SET, PRIV_EFFECTIVE, $p);
-my $out = `echo foo 2>/dev/null`;
-$errs++ unless (!defined $out || $out eq "");
-
-# Restore E.
-$errs++ unless setppriv(PRIV_SET, PRIV_EFFECTIVE, getppriv(PRIV_PERMITTED));
-
-report();
-
-#
-# 13. Verify priv_str_to_set, priv_set_to_str
-#
-my $newset = priv_str_to_set(join(",", keys %PRIVILEGES), ",");
-map { $errs++ if (!priv_ismember($newset, $_)); } keys %PRIVILEGES;
-
-$newset = priv_str_to_set("all", ",");
-map { $errs++ if (!priv_ismember($newset, $_)); } keys %PRIVILEGES;
-
-$newset = priv_str_to_set("none", ",");
-map { $errs++ if (priv_ismember($newset, $_)); } keys %PRIVILEGES;
-
-foreach my $p (keys %PRIVILEGES)
-{
- $newset = priv_str_to_set($PRIVILEGES{$p}, ",");
- $errs++ if (!priv_ismember($newset, $p));
- $errs++ if (priv_ismember(priv_inverse($newset), $p));
-}
-
-foreach my $p (keys %PRIVILEGES)
-{
- $newset = priv_str_to_set("all,!" . $PRIVILEGES{$p}, ",");
- $errs++ if (priv_ismember($newset, $p));
- foreach my $p2 (keys %PRIVILEGES)
- {
- next if ($p eq $p2);
- $errs++ if (!priv_ismember($newset, $p2));
- $errs++ if (priv_ismember(priv_inverse($newset), $p2));
- }
-}
-report();
-
-#
-# 14. Check whether PRIV_SET, PRIV_ON, PRIV_OFF work.
-#
-my $perm;
-my @ours = split(/,/,
- priv_set_to_str($perm = getppriv(PRIV_PERMITTED), ",", PRIV_STR_LIT));
-my $set = priv_emptyset();
-
-
-$errs++ unless (setppriv(PRIV_SET, PRIV_EFFECTIVE, $perm));
-priv_addset($set, $ours[0]);
-$errs++ unless (setppriv(PRIV_OFF, PRIV_EFFECTIVE, $set));
-my $new = getppriv(PRIV_EFFECTIVE);
-
-# The new set should be equal to the $perm minus the priv set in $set.
-my $temp = priv_intersect($perm, priv_inverse($set));
-$errs++ unless (priv_isequalset($temp, $new));
-
-# Set the single bit back on.
-$errs++ unless (setppriv(PRIV_ON, PRIV_EFFECTIVE, $set));
-$new = getppriv(PRIV_EFFECTIVE);
-$errs++ unless (priv_isequalset($perm, $new));
-
-# Set the set
-$errs++ unless (setppriv(PRIV_SET, PRIV_EFFECTIVE, $set));
-$new = getppriv(PRIV_EFFECTIVE);
-$errs++ unless (priv_isequalset($set, $new));
-
-# Clear the set
-$errs++ unless (setppriv(PRIV_OFF, PRIV_EFFECTIVE, $set));
-$new = getppriv(PRIV_EFFECTIVE);
-$errs++ unless (priv_isemptyset( $new));
-
-# Set the single bit back on.
-$errs++ unless (setppriv(PRIV_ON, PRIV_EFFECTIVE, $set));
-$new = getppriv(PRIV_EFFECTIVE);
-$errs++ unless (priv_isequalset($set, $new));
-
-report();
-
-#
-# 15. We should be privilege aware by now.
-#
-$errs++ unless (getpflags(PRIV_AWARE) == 1);
-report();
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/typemap b/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/typemap
deleted file mode 100644
index bc103b77ea..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Privilege/typemap
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-TYPEMAP
- const char * T_PV
- const char ** T_PV
- priv_op_t T_IV
- boolean_t T_IV
- uint_t T_IV
- sysret T_SYSRET
- Sun::Solaris::Privilege::Privset * T_PTROBJ
-
-INPUT
-
-OUTPUT
-#
-# System call return.
-#
-T_SYSRET
- {
- if ($var != -1) {
- if ($var == 0)
- sv_setpvn($arg, "0 but true", 10);
- else
- sv_setiv($arg, (IV)$var);
- }
- }
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/MANIFEST
deleted file mode 100644
index 3dc0b3fb7f..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/MANIFEST
+++ /dev/null
@@ -1,9 +0,0 @@
-Changes
-Makefile.PL
-MANIFEST
-pod/Project.pod
-Project.pm
-Project.xs
-README
-t/Project.t
-typemap
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Makefile b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Makefile
new file mode 100644
index 0000000000..2b5627e0b6
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Makefile
@@ -0,0 +1,34 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+MODULE = Project
+
+include $(SRC)/cmd/perl/Makefile.perl
+
+LDLIBS += -lproject -lgen
+
+CERRWARN += -_gcc=-Wno-unused-variable
+
+XSUBPPFLAGS = -typemap typemap
+
+MAPFILES = mapfile-vers
+
+include $(SRC)/cmd/perl/Makefile.targ
+
+all: $(PERLEXT) $(PERLMOD)
+
+install: $(ROOTPERLEXT) $(ROOTPERLMOD)
+
+clean clobber:
+ $(RM) -r $(MACH)
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Makefile.PL
deleted file mode 100644
index 54a5a5df8c..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Makefile.PL
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# Copyright (c) 1999, 2008 Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Makefile.PL for ::Project
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-# #defines.
-my @defines = ( DEFINE => exists($ENV{RELEASE_BUILD}) ? '-DNDEBUG' : '' );
-
-# List of POD pages to install.
-my @man3pods = ( MAN3PODS => {} );
-
-#
-# If not building as part of ON.
-#
-if (! exists($ENV{CODEMGR_WS})) {
-
- #
- # Suppress the setting of LD_RUN_PATH. The ON build environment
- # contains a modified MakeMaker that does this automatically, so we
- # only need to do this if we are building outside of ON.
- #
- package MY;
- no warnings qw(once);
-
- # Override const_loadlibs to remove LD_RUN_PATH cruft.
- *const_loadlibs = sub
- {
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
- };
-
- # Override dynamic_lib to get rid of LD_RUN_PATH cruft.
- *dynamic_lib = sub
- {
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
- };
-
- # Turn off debugging.
- @defines = ();
-
- #
- # Install the POD documentation for non-ON builds.
- #
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Project';
- @man3pods = (
- MAN3PODS => { 'pod/Project.pod' => $man3pfx . '.$(MAN3EXT)' }
- );
-}
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Project',
- VERSION_FROM => 'Project.pm',
- LIBS => '-lproject -lgen',
- @defines,
- @man3pods,
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.pm
index dee5ebe476..aaeff1a450 100644
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.pm
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.pm
@@ -1,5 +1,6 @@
#
# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014 Racktop Systems.
#
#
@@ -8,7 +9,7 @@
# files.
#
################################################################################
-require 5.8.4;
+require 5.0010;
use strict;
use warnings;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.xs
index 10e44e28ed..cc95012a49 100644
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.xs
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/Project.xs
@@ -1,5 +1,6 @@
/*
* Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014 Racktop Systems.
*/
/*
* Project.xs contains XS wrappers for the project database maniplulation
@@ -160,7 +161,7 @@ PREINIT:
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
- if (projp = getprojent(&proj, buf, sizeof (buf))) {
+ if ((projp = getprojent(&proj, buf, sizeof (buf)))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
@@ -180,7 +181,7 @@ PREINIT:
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
- if (projp = getprojbyname(name, &proj, buf, sizeof (buf))) {
+ if ((projp = getprojbyname(name, &proj, buf, sizeof (buf)))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
@@ -194,7 +195,7 @@ PREINIT:
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
- if (projp = getprojbyid(id, &proj, buf, sizeof (buf))) {
+ if ((projp = getprojbyid(id, &proj, buf, sizeof (buf)))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
@@ -208,7 +209,7 @@ PREINIT:
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
- if (projp = getdefaultproj(user, &proj, buf, sizeof (buf))) {
+ if ((projp = getdefaultproj(user, &proj, buf, sizeof (buf)))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
@@ -222,7 +223,7 @@ PREINIT:
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
- if (projp = fgetprojent(fh, &proj, buf, sizeof (buf))) {
+ if ((projp = fgetprojent(fh, &proj, buf, sizeof (buf)))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
@@ -236,6 +237,8 @@ PREINIT:
char buf[PROJECT_BUFSZ];
CODE:
RETVAL = inproj(user, proj, buf, sizeof (buf));
+OUTPUT:
+ RETVAL
int
@@ -268,7 +271,7 @@ PREINIT:
rctlblk_t *tmp = NULL;
rctl_priv_t priv;
rctl_qty_t value;
- int flags;
+ int flags = 0;
int ret;
int err = 0;
char string[24]; /* 24 will always hold a uint64_t */
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Project/mapfile-vers b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/mapfile-vers
new file mode 100644
index 0000000000..647710f85d
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Project/mapfile-vers
@@ -0,0 +1,36 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+$mapfile_version 2
+
+SYMBOL_SCOPE {
+ global:
+ boot_Sun__Solaris__Project;
+ XS_Sun__Solaris__Project_activeprojects;
+ XS_Sun__Solaris__Project_endprojent;
+ XS_Sun__Solaris__Project_fgetprojent;
+ XS_Sun__Solaris__Project_getdefaultproj;
+ XS_Sun__Solaris__Project_getprojbyid;
+ XS_Sun__Solaris__Project_getprojbyname;
+ XS_Sun__Solaris__Project_getprojent;
+ XS_Sun__Solaris__Project_getprojid;
+ XS_Sun__Solaris__Project_getprojidbyname;
+ XS_Sun__Solaris__Project_inproj;
+ XS_Sun__Solaris__Project_pool_exists;
+ XS_Sun__Solaris__Project_rctl_get_info;
+ XS_Sun__Solaris__Project_setproject;
+ XS_Sun__Solaris__Project_setprojent;
+ local:
+ *;
+};
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Task/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/Task/MANIFEST
deleted file mode 100644
index 4cbdd25021..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Task/MANIFEST
+++ /dev/null
@@ -1,8 +0,0 @@
-Changes
-Makefile.PL
-MANIFEST
-pod/Task.pod
-README
-Task.pm
-Task.xs
-typemap
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Makefile b/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Makefile
new file mode 100644
index 0000000000..8192e5717a
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Makefile
@@ -0,0 +1,30 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+MODULE = Task
+
+include $(SRC)/cmd/perl/Makefile.perl
+
+XSUBPPFLAGS = -typemap typemap
+
+MAPFILES = mapfile-vers
+
+include $(SRC)/cmd/perl/Makefile.targ
+
+all: $(PERLEXT) $(PERLMOD)
+
+install: $(ROOTPERLEXT) $(ROOTPERLMOD)
+
+clean clobber:
+ $(RM) -r $(MACH)
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Makefile.PL
deleted file mode 100644
index 31119e79d6..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Makefile.PL
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Makefile.PL for ::Task
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-# #defines.
-my @defines = ( DEFINE => exists($ENV{RELEASE_BUILD}) ? '-DNDEBUG' : '' );
-
-# List of POD pages to install.
-my @man3pods = ( MAN3PODS => {} );
-
-#
-# If not building as part of ON.
-#
-if (! exists($ENV{CODEMGR_WS})) {
-
- #
- # Suppress the setting of LD_RUN_PATH. The ON build environment
- # contains a modified MakeMaker that does this automatically, so we
- # only need to do this if we are building outside of ON.
- #
- package MY;
- no warnings qw(once);
-
- # Override const_loadlibs to remove LD_RUN_PATH cruft.
- *const_loadlibs = sub
- {
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
- };
-
- # Override dynamic_lib to get rid of LD_RUN_PATH cruft.
- *dynamic_lib = sub
- {
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
- };
-
- # Turn off debugging.
- @defines = ();
-
- #
- # Install the POD documentation for non-ON builds.
- #
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Task';
- @man3pods = (
- MAN3PODS => { 'pod/Task.pod' => $man3pfx . '.$(MAN3EXT)' }
- );
-}
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Task',
- VERSION_FROM => 'Task.pm',
- @defines,
- @man3pods,
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Task.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Task.pm
index 51410b0d29..092d7009b3 100644
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Task.pm
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Task/Task.pm
@@ -1,12 +1,13 @@
#
# Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014 Racktop Systems.
#
#
# Task.pm provides the bootstrap for the Sun::Solaris::Task module.
#
-require 5.8.4;
+require 5.0010;
use strict;
use warnings;
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Task/mapfile-vers b/usr/src/cmd/perl/contrib/Sun/Solaris/Task/mapfile-vers
new file mode 100644
index 0000000000..dd0b95d89e
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Task/mapfile-vers
@@ -0,0 +1,24 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+$mapfile_version 2
+
+SYMBOL_SCOPE {
+ global:
+ boot_Sun__Solaris__Task;
+ XS_Sun__Solaris__Task_gettaskid;
+ XS_Sun__Solaris__Task_settaskid;
+ local:
+ *;
+};
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Changes b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Changes
deleted file mode 100644
index 83446b0523..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Changes
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-Version 1.1
-Initial Public Source release.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/MANIFEST
deleted file mode 100644
index 8f3606b312..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/MANIFEST
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-#ident "%Z%%M% %I% %E% SMI"
-#
-Changes
-MANIFEST
-Makefile.PL
-README
-Ucred.pm
-Ucred.xs
-pod/Ucred.pod
-t/Ucred.t
-typemap
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Makefile.PL
deleted file mode 100644
index 2833d7ff10..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Makefile.PL
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# Copyright (c) 2004, 2008 Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Makefile.PL for ::Ucred
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-
-# #defines.
-my @defines = ( DEFINE => exists($ENV{RELEASE_BUILD}) ? '-DNDEBUG' : '' );
-
-# List of POD pages to install.
-my @man3pods = ( MAN3PODS => {} );
-
-#
-# If not building as part of ON.
-#
-if (! exists($ENV{ENVCPPFLAGS1})) {
-
- #
- # Suppress the setting of LD_RUN_PATH. The ON build environment
- # contains a modified MakeMaker that does this automatically, so we
- # only need to do this if we are building outside of ON.
- #
- package MY;
- no warnings qw(once);
-
- # Override const_loadlibs to remove LD_RUN_PATH cruft.
- *const_loadlibs = sub
- {
- my $self = shift(@_);
- delete($self->{LD_RUN_PATH});
- return($self->SUPER::const_loadlibs(@_));
- };
-
- # Override dynamic_lib to get rid of LD_RUN_PATH cruft.
- *dynamic_lib = sub
- {
- my $self = shift(@_);
- my $txt = $self->SUPER::dynamic_lib(@_);
- $txt =~ s/LD_RUN_PATH=\S*\s*//;
- return($txt);
- };
-
- # Turn off debugging.
- @defines = ();
-
- #
- # Install the POD documentation for non-ON builds.
- #
- my $man3pfx = '$(INST_MAN3DIR)/Sun::Solaris::Ucred';
- @man3pods = (
- MAN3PODS => { 'pod/Ucred.pod' => $man3pfx . '.$(MAN3EXT)' }
- );
-}
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Ucred',
- VERSION_FROM => 'Ucred.pm',
- #PREREQ_PM => { 'Sun::Solaris::Privilege' => '1.1' },
-
- @defines,
- @man3pods,
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/README b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/README
deleted file mode 100644
index 2142be033f..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/README
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-Licensing
----------
-This module is released under the Perl Artistic License.
-
-Availability
-------------
-This module is only available for Solaris 10 onwards.
-
-Description
------------
-This module provides access to the Solaris Ucred subsystem.
-
-See getpeerucred(3C), ucred_get(3C).
-
-Installation
-------------
-
-1. Uncompress and untar the archive
-2. cd to the module directory
-3. perl Makefile.PL; make install
-
-If you are using gcc and wish to build this module against the perl shipped as
-part of Solaris, see the Solaris-PerlGcc module, also available from CPAN.
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Ucred.pm b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Ucred.pm
deleted file mode 100644
index 9d8c82ef55..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Ucred.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Ucred.pm provides the bootstrap for the Sun::Solaris::Ucred module.
-#
-
-require 5.8.4;
-use strict;
-use warnings;
-
-package Sun::Solaris::Ucred;
-
-our $VERSION = '1.3';
-use XSLoader;
-XSLoader::load(__PACKAGE__, $VERSION);
-
-our (@EXPORT_OK, %EXPORT_TAGS);
-my @syscalls = qw(getpeerucred ucred_get);
-my @libcalls = qw(ucred_geteuid ucred_getruid ucred_getsuid ucred_getegid
- ucred_getrgid ucred_getsgid ucred_getgroups ucred_getprivset
- ucred_getpflags ucred_getpid ucred_getzoneid ucred_getprojid);
-
-@EXPORT_OK = (@syscalls, @libcalls);
-%EXPORT_TAGS = (SYSCALLS => \@syscalls, LIBCALLS => \@libcalls,
- ALL => \@EXPORT_OK);
-
-require Exporter;
-
-use base qw(Exporter Sun::Solaris::Privilege);
-
-use Sun::Solaris::Utils qw(gettext);
-
-1;
-__END__
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Ucred.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Ucred.xs
deleted file mode 100644
index 4f463b58cd..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/Ucred.xs
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
- */
-/*
- * Ucred.xs contains XS wrappers for the process privilege maniplulation
- * functions.
- */
-
-
-/* Solaris includes. */
-#include <ucred.h>
-#include <priv.h>
-
-/* Perl includes. */
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-typedef int sysret;
-typedef priv_set_t Sun__Solaris__Privilege__Privset;
-typedef ucred_t Sun__Solaris__Ucred__Ucred;
-
-static priv_set_t *
-dupset(const priv_set_t *s)
-{
- priv_set_t *new = priv_allocset();
- if (new == NULL)
- return (NULL);
-
- priv_copyset(s, new);
- return (new);
-}
-
-#define RETPRIVSET(set) \
- ST(0) = sv_newmortal(); \
- sv_setref_pv(ST(0), "Sun::Solaris::Privilege::PrivsetPtr", \
- (void*)(set)); \
- SvREADONLY_on(SvRV(ST(0)))
-
-#define RETUCRED(uc) \
- ST(0) = sv_newmortal(); \
- sv_setref_pv(ST(0), "Sun::Solaris::Ucred::UcredPtr", \
- (void*)(uc)); \
- SvREADONLY_on(SvRV(ST(0)))
-/*
- * The XS code exported to perl is below here. Note that the XS preprocessor
- * has its own commenting syntax, so all comments from this point on are in
- * that form.
- */
-
-MODULE = Sun::Solaris::Ucred PACKAGE = Sun::Solaris::Ucred
-PROTOTYPES: ENABLE
-
-Sun::Solaris::Ucred::Ucred *
-ucred_get(pid);
- pid_t pid;
-
-uid_t
-ucred_geteuid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-uid_t
-ucred_getruid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-uid_t
-ucred_getsuid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-gid_t
-ucred_getegid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-gid_t
-ucred_getrgid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-gid_t
-ucred_getsgid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-pid_t
-ucred_getpid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-zoneid_t
-ucred_getzoneid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-projid_t
-ucred_getprojid(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-
-uint_t
-ucred_getpflags(uc, flags)
- Sun::Solaris::Ucred::Ucred *uc;
- uint_t flags;
-
-Sun::Solaris::Privilege::Privset *
-ucred_getprivset(uc, which)
- Sun::Solaris::Ucred::Ucred *uc;
- const char *which;
-PREINIT:
- const priv_set_t *val;
-CODE:
- /*
- * Since this function returns a pointer into the ucred_t, we need
- * to copy it or perl may free one before the other; and the
- * priv_set_t * returned by it doesn't react kindly to free().
- */
- val = ucred_getprivset(uc, which);
- if (val == NULL || (RETVAL = dupset(val)) == NULL)
- XSRETURN_UNDEF;
- RETPRIVSET(RETVAL);
-
-Sun::Solaris::Ucred::Ucred *
-getpeerucred(fd)
- int fd;
-CODE:
- RETVAL = NULL;
- if (getpeerucred(fd, &RETVAL) != 0)
- XSRETURN_UNDEF;
- RETUCRED(RETVAL);
-
-void
-ucred_getgroups(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-PREINIT:
- const gid_t *gids;
- int n;
-PPCODE:
- n = ucred_getgroups(uc, &gids);
- if (n < 0)
- XSRETURN_UNDEF;
-
- PUTBACK;
- if (GIMME_V == G_SCALAR) {
- EXTEND(SP, 1);
- PUSHs(sv_2mortal(newSViv(n)));
- PUTBACK;
- XSRETURN(1);
- } else if (GIMME_V == G_ARRAY) {
- int i;
- EXTEND(SP, n);
-
- for (i = 0; i < n; i++)
- PUSHs(sv_2mortal(newSViv(gids[i])));
- PUTBACK;
- XSRETURN(n);
- } else {
- PUTBACK;
- XSRETURN(0);
- }
-
-
-
-
-MODULE = Sun::Solaris::Ucred PACKAGE = Sun::Solaris::Ucred::UcredPtr PREFIX = Ucred_
-
-void
-Ucred_DESTROY(uc)
- Sun::Solaris::Ucred::Ucred *uc;
-CODE:
- ucred_free(uc);
-
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/pod/Ucred.pod b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/pod/Ucred.pod
deleted file mode 100644
index 60baaf9cf0..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/pod/Ucred.pod
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# Sun::Solaris::Ucred documentation.
-#
-
-=head1 NAME
-
-Sun::Solaris::Ucred - Perl interface to User Credentials
-
-=head1 SYNOPSIS
-
- use Sun::Solaris::Ucred qw(:ALL);
-
-This module provides wrappers for the Ucred-related system and
-library calls.
-
-=head2 Functions
-
-B<C<ucred_get($pid)>>
-
-This function returns the credential of the process specified by $pid,
-if the process exists and the calling process is permitted to obtain
-the credentials of that process.
-
-B<C<getpeerucred($fd)>>
-
-If $fd is a connected connection oriented TLI endpoint, a connected
-SOCK_STREAM or SOCK_SEQPKT socket, getpeerucred will return the user
-credential of the peer at the time the connection was established,
-if availble.
-
-B<C<ucred_geteuid($ucred)>>
-
-This function returns the effective uid of a user credential, if available.
-
-B<C<ucred_getruid($ucred)>>
-
-This function returns the real uid of a user credential, if available.
-
-B<C<ucred_getsuid($ucred)>>
-
-This function returns the saved uid of a user credential, if available.
-
-B<C<ucred_getegid($ucred)>>
-
-This function returns the effective group of a user credential, if available.
-
-B<C<ucred_getrgid($ucred)>>
-
-This function returns the real group of a user credential, if available.
-
-B<C<ucred_getsgid($ucred)>>
-
-This function returns the saved group of a user credential, if available.
-
-B<C<ucred_getgroups($ucred)>>
-
-This function returns the list of supplemental groups of a user
-credential, if available. An array of groups is returned in ARRAY
-context; the number of groups is returned in SCALAR context.
-
-B<C<ucred_getprivset($ucred, $which)>>
-
-This function returns the privilege set specified by $which of a user
-credential, if available.
-
-B<C<ucred_getpflags($ucred, $flags)>>
-
-This function returns the value of a specific process flag of a user
-credential, if available.
-
-B<C<ucred_getpid($ucred)>>
-
-This function returns the process id of a user credential, if available.
-
-B<C<ucred_getzoneid($ucred)>>
-
-This function returns the zone id of a user credential, if available.
-
-B<C<ucred_getprojid($ucred)>>
-
-This function returns the project id of a user credential, if available.
-
-=head2 Class methods
-
-None.
-
-=head2 Object methods
-
-None.
-
-=head2 Exports
-
-By default nothing is exported from this module. The following tags can be
-used to selectively import constants and functions defined in this module:
-
- :SYSCALLS ucred_get(), getpeerucred()
-
- :LIBCALLS ucred_geteuid(), ucred_getruid(), ucred_getsuid(),
- ucred_getegid(), ucred_getrgid(), ucred_getsgid(),
- ucred_getgroups(), ucred_getprivset(), ucred_getpflags(),
- ucred_getpid(), ucred_getzoneid(), ucred_getprojid()
-
- :CONSTANTS
-
- :VARIABLES %PRIVILEGES, %PRIVSETS
-
- :ALL :SYSCALLS, :LIBCALLS, and :CONSTANTS
-
-=head1 ATTRIBUTES
-
-See C<attributes(5)> for descriptions of the following attributes:
-
- ___________________________________________________________
- | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
- |_____________________________|_____________________________|
- | Availability | CPAN (http://www.cpan.org) |
- |_____________________________|_____________________________|
- | Interface Stability | Evolving |
- |_____________________________|_____________________________|
-
-=head1 SEE ALSO
-
-C<getpeerucred(2)>, C<ucred_get(3C)>, C<attributes(5)>
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/t/Ucred.t b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/t/Ucred.t
deleted file mode 100644
index 3738afa031..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/t/Ucred.t
+++ /dev/null
@@ -1,179 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-#
-# test script for Sun::Solaris::Ucred
-#
-
-$^W = 1;
-use strict;
-use Data::Dumper;
-use English;
-$Data::Dumper::Terse = 1;
-$Data::Dumper::Indent = 0;
-
-
-use Sun::Solaris::Privilege qw(:ALL);
-use Sun::Solaris::Project qw(:ALL);
-
-#
-# Status reporting utils
-#
-
-use vars qw($test);
-$test = 1;
-
-sub pass
-{
- print("ok $test $@\n");
- $test++;
-}
-
-sub fail
-{
- print("not ok $test $@\n");
- $test++;
-}
-
-sub fatal
-{
- print("not ok $test $@\n");
- exit(1);
-}
-
-my $errs;
-
-sub report
-{
- if ($errs) {
- fail();
- } else {
- pass();
- }
- $errs = 0;
-}
-
-sub ucred_verify
-{
- my ($ucred) = @_;
-
- my $pid = ucred_getpid($ucred);
-
- $errs++ unless (!defined $pid || $pid == $$);
- $errs++ unless (ucred_geteuid($ucred) == $EUID);
- $errs++ unless (ucred_getruid($ucred) == $UID);
- $errs++ unless (ucred_getegid($ucred) == $EGID);
- $errs++ unless (ucred_getrgid($ucred) == $GID);
- $errs++ unless (ucred_getprojid($ucred) == getprojid());
- foreach my $f (PRIV_AWARE, PRIV_DEBUG) {
- $errs++ unless (ucred_getpflags($ucred, $f) == getpflags($f));
- }
-
- # Get a sorted list of groups; the real gid is first and we need
- # to shift that one out of the way first.
- my @gr = split(/\s+/, $();
- shift @gr;
- @gr = sort {$a <=> $b} (@gr);
- my @ucgr = sort {$a <=> $b} ucred_getgroups($ucred);
-
- $errs++ unless ("@gr" eq "@ucgr");
-
- foreach my $s (keys %PRIVSETS) {
- my $set = ucred_getprivset($ucred, $s);
- $errs++ unless priv_isequalset($set, getppriv($s));
- }
-}
-
-#
-# Main body of tests starts here
-#
-
-my ($loaded, $line) = (1, 0);
-my $fh = do { local *FH; *FH; };
-
-#
-# 1. Check the module loads
-#
-BEGIN { $| = 1; print "1..5\n"; }
-END { print "not ok 1\n" unless $loaded; }
-use Sun::Solaris::Ucred qw(:ALL);
-$loaded = 1;
-pass();
-
-#
-# 2. ucred_get works.
-#
-
-my $ucred = ucred_get($$);
-
-$errs++ unless defined $ucred;
-
-report();
-
-#
-# 3. Returned ucred matches perl's idea of the process' credentials.
-#
-if (defined $ucred) {
- ucred_verify($ucred);
-}
-report();
-
-#
-# 4. Create a socketpair; make sure that the ucred returned
-# is mine.
-#
-
-use IO::Socket::UNIX;
-
-my ($unix) = new IO::Socket::UNIX;
-my ($s1, $s2) = $unix->socketpair(AF_UNIX, SOCK_STREAM, 0);
-
-if ($ucred = getpeerucred(fileno($s1))) {
- ucred_verify($ucred);
-} else {
- $errs++;
-}
-close($s1);
-close($s2);
-
-($s1, $s2) = $unix->socketpair(AF_UNIX, SOCK_SEQPACKET, 0);
-
-if ($ucred = getpeerucred(fileno($s1))) {
- ucred_verify($ucred);
-} else {
- $errs++;
-}
-close($s1);
-close($s2);
-report();
-
-#
-# 5. Create a AF_INET loopback connected socket and call getpeerucred().
-#
-use IO::Socket::INET;
-
-my $inet = new IO::Socket::INET;
-
-$s1 = $inet->socket(AF_INET, SOCK_STREAM, 0);
-$inet = new IO::Socket::INET;
-$s2 = $inet->socket(AF_INET, SOCK_STREAM, 0);
-
-$s1->bind(0, inet_aton("localhost"));
-$s1->listen(0);
-
-$s2->connect($s1->sockname);
-my $s3 = $s1->accept();
-
-# getpeerucred on the accepter should fail
-$errs++ if getpeerucred(fileno($s1));
-# but on the other two it should succeed.
-
-foreach my $s ($s2, $s3) {
- if ($ucred = getpeerucred(fileno($s))) {
- ucred_verify($ucred);
- } else {
- $errs++;
- }
-}
-report();
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/typemap b/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/typemap
deleted file mode 100644
index fbff9b92f3..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Ucred/typemap
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
-#
-
-TYPEMAP
- Sun::Solaris::Privilege::Privset * T_PTROBJ
- Sun::Solaris::Ucred::Ucred * T_PTROBJ
- const char * T_PV
- const char ** T_PV
- priv_op_t T_IV
- uint_t T_IV
- boolean_t T_IV
- uid_t T_ID_T
- gid_t T_ID_T
- pid_t T_ID_T
- zoneid_t T_ID_T
- projid_t T_ID_T
- sysret T_SYSRET
-
-INPUT
-
-T_ID_T
- $var = (int)SvIV($arg)
-
-OUTPUT
-T_SYSRET
- {
- if ($var != -1) {
- if ($var == 0)
- sv_setpvn($arg, "0 but true", 10);
- else
- sv_setiv($arg, (IV)$var);
- }
- }
-
-T_ID_T
- {
- if ($var != -1) {
- if ($var == 0)
- sv_setpvn($arg, "0 but true", 10);
- else
- sv_setiv($arg, (IV)$var);
- }
- }
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/MANIFEST b/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/MANIFEST
deleted file mode 100644
index 48c5174a4b..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/MANIFEST
+++ /dev/null
@@ -1,4 +0,0 @@
-Makefile.PL
-Utils.pm
-Utils.xs
-t/gmatch.t
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/Makefile b/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/Makefile
new file mode 100644
index 0000000000..747c39f1f3
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/Makefile
@@ -0,0 +1,28 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+MODULE = Utils
+
+include $(SRC)/cmd/perl/Makefile.perl
+
+MAPFILES = mapfile-vers
+
+include $(SRC)/cmd/perl/Makefile.targ
+
+all: $(PERLEXT) $(PERLMOD)
+
+install: $(ROOTPERLEXT) $(ROOTPERLMOD)
+
+clean clobber:
+ $(RM) -r $(MACH)
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/Makefile.PL b/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/Makefile.PL
deleted file mode 100644
index 4d3d21597b..0000000000
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/Makefile.PL
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License"). You may not use this file except in compliance
-# with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright (c) 1999, 2001 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#ident "%Z%%M% %I% %E% SMI"
-#
-# cmd/perl/contrib/Sun/Solaris/Utils/Makefile.PL
-#
-
-use ExtUtils::MakeMaker;
-
-WriteMakefile(
- NAME => 'Sun::Solaris::Utils',
- VERSION_FROM => 'Utils.pm',
- LIBS => [ '-lgen -lintl' ],
- OBJECT => '$(O_FILES)',
-);
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/mapfile-vers b/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/mapfile-vers
new file mode 100644
index 0000000000..e8097a5178
--- /dev/null
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Utils/mapfile-vers
@@ -0,0 +1,28 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+#
+# Copyright (c) 2014 Racktop Systems.
+#
+
+$mapfile_version 2
+
+SYMBOL_SCOPE {
+ global:
+ boot_Sun__Solaris__Utils;
+ XS_Sun__Solaris__Utils_bindtextdomain;
+ XS_Sun__Solaris__Utils_dcgettext;
+ XS_Sun__Solaris__Utils_dgettext;
+ XS_Sun__Solaris__Utils_gettext;
+ XS_Sun__Solaris__Utils_gmatch;
+ XS_Sun__Solaris__Utils_textdomain;
+ local:
+ *;
+};
diff --git a/usr/src/cmd/perl/contrib/copy_contrib.sh b/usr/src/cmd/perl/contrib/copy_contrib.sh
deleted file mode 100644
index 714173866f..0000000000
--- a/usr/src/cmd/perl/contrib/copy_contrib.sh
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/bin/ksh -p
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# ident "%Z%%M% %I% %E% SMI"
-#
-
-#
-# Because we build more than one copy of perl at the same time we need each
-# to have its own copy of the contrib subdirectory so that the concurrent
-# builds don't interfere with each other. Rather than duplicating the contents
-# of the contrib directory under each version of perl we copy the clearfiles
-# from usr/src/cmd/perl/contrib to the appropriate build directory, taking
-# care only to do the copy if necessary so as not to cause unnecessary rebuilds.
-#
-
-function usage
-{
- printf 'copy_contrib: usage is <src dir> <dst dir> <module> ...\n'
- exit 1
-}
-
-# Check arguments.
-typeset -r src=$1
-typeset -r dst=$2
-[[ $src = $dst || ! ( -d $src && -d $dst ) ]] && usage
-shift 2
-typeset -r modules=$*
-[[ -z $modules ]] && usage
-typeset -r pwd=$PWD
-
-#
-# Make sure all the modules have the necessary clearfiles fetched,
-# but only if we have SCCS files (not true for the source product).
-#
-for dir in $(cd $src && find $modules -type d -name SCCS); do
- dir=${dir%/SCCS}
- cd $src/$dir
- for file in SCCS/s.*; do
- file=${file#SCCS/s\.}
- if [[ ! ( -f $file || -f SCCS/p.$file ) ]]; then
- set -e
- printf 'sccs get %s/%s\n' $dir $file
- sccs get $file
- set +e
- fi
- done
- cd $pwd
-done
-
-#
-# Now copy all the clearfiles over to the destination directory, but only if
-# the destination file doesn't exist or is older than the source file.
-# Note we also ignore the Teamware req.flg and inc.flg files, to prevent
-# Teamware bringover and putback warning about them not being in SCCS.
-#
-
-for obj in $(cd $src && find $modules -name SCCS -prune -o -print); do
- # Handle directories.
- if [[ -d $src/$obj ]]; then
- # Create destination directory if required.
- if [[ ! -d $dst/$obj ]]; then
- set -e
- printf 'mkdir -p %s/%s\n' $dst $obj
- mkdir -p $dst/$obj
- set +e
- fi
-
- # Handle plain files.
- elif [[ -f $src/$obj ]]; then
- if [[ $obj != */@(req|inc).flg && \
- $src/$obj -nt $dst/$obj ]]; then
- set -e
- rm -f $dst/$obj
- printf 'cp -p %s/%s %s/%s\n' $src $obj $dst $obj
- cp -p $src/$obj $dst/$obj
- set +e
- fi
-
- # Anything else isn't handled.
- else
- printf 'copy_contrib: ERROR: unable to copy %s/%s' $src $obj
- exit 1
- fi
-done
-exit 0
diff --git a/usr/src/cmd/perl/req.flg b/usr/src/cmd/perl/req.flg
deleted file mode 100644
index e9606e8eab..0000000000
--- a/usr/src/cmd/perl/req.flg
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# ident "%Z%%M% %I% %E% SMI"
-#
-
-echo_file usr/src/lib/Makefile.lib
-echo_file usr/src/lib/Makefile.targ
-find_files "s.*" usr/src/lib/common
diff --git a/usr/src/cmd/perl/skel/Makefile b/usr/src/cmd/perl/skel/Makefile
deleted file mode 100644
index 73f9ebdcbd..0000000000
--- a/usr/src/cmd/perl/skel/Makefile
+++ /dev/null
@@ -1,124 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-include ../../Makefile.cmd
-
-# To turn KEEP_STATE off the following two environment variables must be unset.
-KEEP_STATE_OFF = unset KEEP_STATE SUNPRO_DEPENDENCIES
-
-# Perl installs files we don't want to ship, so we install to a
-# staging area to postprocess and install the result to $(ROOT)
-STAGE = $(SRC)/cmd/perl/$(PERL_VERSION)/staging
-
-PERL=/usr/perl5/$(PERL_VERSION)/bin/perl
-
-PERL_MM_ARGS = INSTALLDIRS=perl CC='$(CC)' LD='$(CC)'
-
-# Prefix for Solaris-specific extensions that are maintained by
-# Sun/Oracle.
-SUN_SOLARIS = Sun/Solaris
-
-# Add any XS extensions here.
-PERL_DYNAMIC_EXT = \
- $(SUN_SOLARIS)/Utils \
- $(SUN_SOLARIS)/Kstat \
- $(SUN_SOLARIS)/Intrs \
- $(SUN_SOLARIS)/Project \
- $(SUN_SOLARIS)/Task \
- $(SUN_SOLARIS)/Exacct \
- $(SUN_SOLARIS)/Privilege \
- $(SUN_SOLARIS)/Lgrp \
- $(SUN_SOLARIS)/Ucred
-
-# Add any pure-perl extensions here.
-PERL_NONXS_EXT = \
- $(SUN_SOLARIS)/BSM \
- $(SUN_SOLARIS)/PerlGcc \
- $(SUN_SOLARIS)/Pg
-
-PERL_EXT = $(PERL_DYNAMIC_EXT) $(PERL_NONXS_EXT)
-PERL_EXT_MAKEFILES = $(PERL_EXT:%=%/Makefile)
-
-all: copy_contrib $(PERL_EXT_MAKEFILES) $(PERL_EXT)
-
-.PARALLEL: $(PERL_EXT_MAKEFILES) $(PERL_EXT)
-
-install: all
- for ext in $(PERL_EXT); do \
- if [ -d $$ext ]; then \
- ( \
- cd $$ext; pwd; \
- $(KEEP_STATE_OFF); $(MAKE) $(PERL_MM_ARGS) \
- DESTDIR=$(STAGE) install; \
- cd $(STAGE); \
- find . \( -name ".packlist" -o -name "perllocal.pod" \) \
- -exec $(RM) {} \; ; \
- /usr/bin/pax -rw -pe ./* ${ROOT} ; \
- ) \
- else \
- /bin/false; \
- fi \
- done
-
-#
-# copy_contrib copies the clearfiles from ../contrib to here.
-#
-copy_contrib:
- @ $(KSH93) ../contrib/copy_contrib.sh ../contrib . $(PERL_EXT)
-
-clean:
- for ext in $(PERL_EXT); do \
- if [ -d $$ext ]; then \
- ( \
- cd $$ext; pwd; \
- $(KEEP_STATE_OFF); $(MAKE) clean; \
- ) \
- fi \
- done
-
-# Remove Sun/Solaris
-clobber:
- @ $(RM) -r Sun
-
-test: all
- for ext in $(PERL_EXT); do \
- ( \
- cd $$ext; pwd; \
- $(KEEP_STATE_OFF); $(MAKE) test; \
- ) \
- done
-
-#
-# Ensure that the extension's makefile is built before
-# trying to build the extension
-#
-%/Makefile: %/Makefile.PL $(PERL_CONFIGDEP)
- @ cd $(@D); pwd; $(PERL) $(<F) $(PERL_MM_ARGS) 2>&1 /dev/null
-
-# Pattern-matching rule for extensions.
-$(SUN_SOLARIS)/%: $(SUN_SOLARIS)/%/Makefile FRC
- @ cd $@; pwd; $(KEEP_STATE_OFF) ; \
- $(PERL_MM_ARGS) $(MAKE) DESTDIR=$(STAGE) all
-
-FRC:
diff --git a/usr/src/man/man3perl/Exacct.3perl b/usr/src/man/man3perl/Exacct.3perl
deleted file mode 100644
index 5a0aa40be3..0000000000
--- a/usr/src/man/man3perl/Exacct.3perl
+++ /dev/null
@@ -1,325 +0,0 @@
-'\" te
-.\" Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH EXACCT 3PERL "Dec 1, 2002"
-.SH NAME
-Exacct \- exacct system calls and error handling
-.SH SYNOPSIS
-.LP
-.nf
-use Sun::Solaris::Exacct qw(:EXACCT_ALL);
-my $ea_rec = getacct(P_PID, $$);
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-This module provides access to the \fBea_error\fR(3EXACCT) function and for all
-the extended accounting system calls. Constants from the various
-\fBlibexacct\fR(3LIB) header files are also provided.
-.SS "Constants"
-.sp
-.LP
-The \fBP_PID\fR, \fBP_TASKID\fR, \fBP_PROJID\fR and all the \fBEW_*\fR,
-\fBEP_*\fR, \fBEXR_*\fR macros are provided as Perl constants.
-.SS "Functions"
-.sp
-.ne 2
-.na
-\fB\fBgetacct($idtype, $id)\fR\fR
-.ad
-.sp .6
-.RS 4n
-The \fB$idtype\fR parameter must be either \fBP_TASKID\fR or \fBP_PID\fR and
-\fB$id\fR must be a corresponding task or process ID. This function returns an
-object of type \fBSun::Solaris::Exacct::Object\fR, representing the unpacked
-accounting buffer returned by the underlying \fBgetacct\fR(2) system call. In
-the event of error, \fBundef\fR is returned.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBputacct($idtype, $id, $record)\fR\fR
-.ad
-.sp .6
-.RS 4n
-The \fB$idtype\fR parameter must be either \fBP_TASKID\fR or \fBP_PID\fR and
-\fB$id\fR must be a corresponding task or process ID. If $record is of type
-Sun::Solaris::Exacct::Object, it is converted to the corresponding packed
-\fBlibexacct\fR object and passed to the \fBputacct\fR(2) system call. If
-\fB$record\fR is not of type \fBSun::Solaris::Exacct::Object\fR it is converted
-to a string using the normal Perl conversion rules and stored as a raw buffer.
-For predictable and endian-independent results, any raw buffers should be
-constructed using the Perl \fBpack()\fR function. This function returns true on
-success and false on failure.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBwracct($idtype, $id, $flags)\fR\fR
-.ad
-.sp .6
-.RS 4n
-The \fB$idtype\fR parameter must be either \fBP_TASKID\fR or \fBP_PID\fR and
-\fB$id\fR must be a corresponding task or process ID. The \fB$flags\fR
-parameter must be either \fBEW_INTERVAL\fR or \fBEW_PARTIAL\fR. The parameters
-are passed directly to the underlying \fBwracct\fR(2) system call. This
-function returns true on success and false on failure.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBea_error()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function provides access to the \fBea_error\fR(3EXACCT) function. It
-returns a double-typed scalar that becomes one of the EXR_* constants. In a
-string context it becomes a descriptive error message. This is the exacct
-equivalent to the \fB$!(errno)\fR Perl variable.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBea_error_str()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns a double-typed scalar that in a numeric context will be
-one of the EXR_* constants as returned by ea_error. In a string context it
-describes the value returned by ea_error. If ea_error returns EXR_SYSCALL_FAIL,
-the string value returned is the value returned by \fBstrerror\fR(3C). This
-function is provided as a convenience so that repeated blocks of code like the
-following can be avoided:
-.sp
-.in +2
-.nf
-if (ea_error() == EXR_SYSCALL_FAIL) {
- print("error: $!\en");
-} else {
- print("error: ", ea_error(), "\en");
-}
-.fi
-.in -2
-
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBea_register_catalog($cat_pfx, $catalog_id, $export, @idlist)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This convenience function is a wrapper around the
-\fBSun::Solaris::Exacct::Catalog->register()\fR method.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBea_new_catalog($integer)\fR\fR
-.ad
-.br
-.na
-\fB\fBea_new_catalog($cat_obj)\fR\fR
-.ad
-.br
-.na
-\fB\fBea_new_catalog($type, $catalog, $id)\fR\fR
-.ad
-.sp .6
-.RS 4n
-These convenience functions are wrappers around the
-\fBSun::Solaris::Exacct::Catalog->new()\fR method. See
-\fBExacct::Catalog\fR(3PERL).
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBea_new_file($name, $oflags, creator => $creator, aflags => $aflags, mode
-=> $mode)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This convenience function is a wrapper around the
-\fBSun::Solaris::Exacct::File->new()\fR method. See \fBExacct::File\fR(3PERL).
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBea_new_item($catalog, $value)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This convenience function is a wrapper around the
-\fBSun::Solaris::Exacct::Object::Item->new()\fR method. See
-\fBExacct::Object::Item\fR(3PERL).
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBea_new_group($catalog, @objects)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This convenience function is a wrapper around the
-\fBSun::Solaris::Exacct::Object::Group->new()\fR method. See
-\fBExacct::Object::Group\fR(3PERL).
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBea_dump_object($object, $filehandle)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This convenience function is a wrapper around the
-\fBSun::Solaris::Exacct::Object->dump()\fR method. See
-\fBExacct::Object\fR(3PERL).
-.RE
-
-.SS "Class methods"
-.sp
-.LP
-None.
-.SS "Object methods"
-.sp
-.LP
-None.
-.SS "Exports"
-.sp
-.LP
-By default nothing is exported from this module. The following tags can be used
-to selectively import constants and functions defined in this module:
-.sp
-.ne 2
-.na
-\fB\fB:SYSCALLS\fR\fR
-.ad
-.RS 21n
-\fBgetacct()\fR, \fBputacct()\fR, and \fBwracct()\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:LIBCALLS\fR\fR
-.ad
-.RS 21n
-\fBea_error()\fR and \fBea_error_str()\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:CONSTANTS\fR\fR
-.ad
-.RS 21n
-\fBP_PID\fR, \fBP_TASKID\fR, \fBP_PROJID\fR, \fBEW_*\fR, \fBEP_*\fR, and
-\fBEXR_*\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:SHORTHAND\fR\fR
-.ad
-.RS 21n
-\fBea_register_catalog()\fR, \fBea_new_catalog()\fR, \fBea_new_file()\fR,
-\fBea_new_item()\fR, and \fBea_new_group()\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:ALL\fR\fR
-.ad
-.RS 21n
-\fB:SYSCALLS\fR, \fB:LIBCALLS\fR, \fB:CONSTANTS\fR, and \fB:SHORTHAND\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:EXACCT_CONSTANTS\fR\fR
-.ad
-.RS 21n
-\fB:CONSTANTS\fR, plus the \fB:CONSTANTS\fR tags for
-\fBSun::Solaris::Catalog\fR, \fBSun::Solaris::File\fR, and
-\fBSun::Solaris::Object\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:EXACCT_ALL\fR\fR
-.ad
-.RS 21n
-\fB:ALL\fR, plus the \fB:ALL\fR tags for \fBSun::Solaris::Catalog\fR,
-\fBSun::Solaris::File\fR, and \fBSun::Solaris::Object\fR
-.RE
-
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Evolving
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBgetacct\fR(2), \fBputacct\fR(2), \fBwracct\fR(2), \fBea_error\fR(3EXACCT),
-\fBExacct::Catalog\fR(3PERL), \fBExacct::File\fR(3PERL),
-\fBExacct::Object\fR(3PERL), \fBExacct::Object::Group\fR(3PERL),
-\fBExacct::Object::Item\fR(3PERL), \fBlibexacct\fR(3LIB), \fBattributes\fR(5)
-.SH NOTES
-.sp
-.LP
-The modules described in the section 3PERL manual pages make extensive use of
-the Perl "double-typed scalar" facility. This facility allows a scalar value to
-behave either as an integer or as a string, depending upon context. It is the
-same behavior as exhibited by the \fB$!\fR Perl variable (\fBerrno\fR). It is
-useful because it avoids the need to map from an integer value to the
-corresponding string to display a value. Some examples are provided below:
-.sp
-.in +2
-.nf
-# Assume $obj is a Sun::Solaris::Item
-my $type = $obj->type();
-
-# Print "2 EO_ITEM"
-printf("%d %s\en", $type, $type);
-
-# Behave as an integer, $i == 2
-my $i = 0 + $type;
-
-# Behave as a string, $s = "abc EO_ITEM xyx"
-my $s = "abc $type xyz";
-.fi
-.in -2
-
-.sp
-.LP
-Wherever a function or method is documented as returning a double-typed scalar,
-the returned value exhibits this type of behavior.
diff --git a/usr/src/man/man3perl/Exacct::Catalog.3perl b/usr/src/man/man3perl/Exacct::Catalog.3perl
deleted file mode 100644
index 115636b55b..0000000000
--- a/usr/src/man/man3perl/Exacct::Catalog.3perl
+++ /dev/null
@@ -1,217 +0,0 @@
-'\" te
-.\" Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH EXACCT::CATALOG 3PERL "Dec 1, 2002"
-.SH NAME
-Exacct::Catalog \- exacct catalog tag manipulation
-.SH SYNOPSIS
-.LP
-.nf
-use Sun::Solaris::Exacct::Catalog qw(:ALL);
-my $ea_cat = Sun::Solaris::Exacct::Catalog->new(
- &EXT_UINT64 | &EXC_DEFAULT | &EXD_PROC_PID);
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-This class provides a wrapper around the 32-bit integer used as a catalog tag.
-The catalog tag is represented as a Perl object blessed into the
-\fBSun::Solaris::Exacct::Catalog\fR class so that methods can be used to
-manipulate fields in a catalog tag.
-.SS "Constants"
-.sp
-.LP
-All the \fBEXT_\fR*, \fBEXC_\fR*, and \fBEXD_\fR* macros are provided as
-constants. Constants passed to the methods below can either be the integer
-value such as \fBEXT_UINT8\fR or the string representation such as
-"\fBEXT_UINT8\fR".
-.SS "Functions"
-.sp
-.LP
-None.
-.SS "Class methods"
-.sp
-.ne 2
-.na
-\fB\fBregister($cat_pfx, $catalog_id, $export, @idlist)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method is used to register application-defined \fBlibexacct\fR(3LIB)
-catalogs with the exacct Perl library. See
-<\fB/usr/include/sys/exacct_catalog.h\fR> for details of the catalog tag
-format. This method allows symbolic names and strings to be used for
-manipulating application-defined catalogs. The first two parameters define the
-catalog prefix and associated numeric catalog ID. If the \fB$export\fR
-parameter is true, the constants are exported into the caller's package. The
-final parameter is a list of (\fBid\fR, \fBname\fR) pairs that identify the
-required constants. The constants created by this method are formed by
-appending \fB$cat_pfx\fR and "_" to each name in the list, replacing any spaces
-with underscore characters and converting the resulting string to uppercase
-characters. The \fB$catalog_name\fR value is also created as a constant by
-prefixing it with\fB EXC_\fR and converting it to uppercase characters. Its
-value becomes that of \fB$catalog_id\fR shifted left by 24 bits. For example,
-the following call:
-.sp
-.in +2
-.nf
-Sun::Solaris::Exacct::Catalog->ea_register("MYCAT", 0x01, 1,
- FIRST => 0x00000001, SECOND => 0x00000010);
-.fi
-.in -2
-
-results in the definition of the following constants:
-.sp
-.in +2
-.nf
-EXC_MYCAT 0x01 << 24
-MYCAT_FIRST 0x00000001
-MYCAT_SECOND 0x00000010
-.fi
-.in -2
-
-Only the catalog ID value of 0x01 is available for application use
-(\fBEXC_LOCAL\fR). All other values are reserved. While it is possible to use
-values other than 0x01, they might conflict with future extensions to the
-\fBlibexacct\fR file format.
-.sp
-If any errors are detected during this method, a string is returned containing
-the appropriate error message. If the call is sucessful, \fBundef\fR is
-returned.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBnew($integer)\fR\fR
-.ad
-.br
-.na
-\fB\fBnew($cat_obj)\fR\fR
-.ad
-.br
-.na
-\fB\fBnew($type, $catalog, $id)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method creates and returns a new Catalog object, which is a wrapper around
-a 32-bit integer catalog tag. Three possible argument lists can be given. The
-first variant is to pass an integer formed by bitwise-inclusive OR of the
-appropriate \fBEX[TCD]_\fR* constants. The second variant is to pass an
-existing Catalog object that will be copied. The final variant is to pass in
-the type, catalog and ID fields as separate values. Each of these values can be
-either an appropriate integer constant or the string representation of the
-constant.
-.RE
-
-.SS "Object methods"
-.sp
-.ne 2
-.na
-\fB\fBvalue()\fR\fR
-.ad
-.RS 17n
-This method allows the value of the catalog tag to be queried. In a scalar
-context it returns the 32-bit integer representing the tag. In a list context
-it returns a (\fBtype\fR, \fBcatalog\fR, \fBid\fR) triplet, where each member
-of the triplet is a dual-typed scalar.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBtype()\fR\fR
-.ad
-.RS 17n
-This method returns the type field of the catalog tag as a dual-typed scalar.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBcatalog()\fR\fR
-.ad
-.RS 17n
-This method returns the catalog field of the catalog tag as a dual-typed
-scalar.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBid()\fR\fR
-.ad
-.RS 17n
-This method returns the id field of the catalog tag as a dual-typed scalar.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBtype_str()\fR\fR
-.ad
-.br
-.na
-\fB\fBcatalog_str()\fR\fR
-.ad
-.br
-.na
-\fB\fBid_str()\fR\fR
-.ad
-.RS 17n
-These methods return string representations of the appropriate value. These
-methods can be used for textual output of the various catalog fields. The
-string representations of the constants are formed by removing the \fBEXT_\fR,
-\fBEXC_\fR, or \fBEXD_\fR prefix, replacing any underscore characters with
-spaces, and converting the remaining string to lowercase characters.
-.RE
-
-.SS "Exports"
-.sp
-.LP
-By default nothing is exported from this module. The following tags can be used
-to selectively import constants and functions defined in this module:
-.sp
-.ne 2
-.na
-\fB\fB:CONSTANTS\fR\fR
-.ad
-.RS 14n
-\fBEXT_\fR*, \fBEXC_\fR*, and \fBEXD_\fR*
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:ALL\fR\fR
-.ad
-.RS 14n
-\fB:CONSTANTS\fR
-.RE
-
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Evolving
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBExacct\fR(3PERL), \fBExacct::File\fR(3PERL), \fBExacct::Object\fR(3PERL),
-\fBExacct::Object::Group\fR(3PERL), \fBExacct::Object::Item\fR(3PERL),
-\fBlibexacct\fR(3LIB), \fBattributes\fR(5)
diff --git a/usr/src/man/man3perl/Exacct::File.3perl b/usr/src/man/man3perl/Exacct::File.3perl
deleted file mode 100644
index 4f3b18a3e4..0000000000
--- a/usr/src/man/man3perl/Exacct::File.3perl
+++ /dev/null
@@ -1,234 +0,0 @@
-'\" te
-.\" Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH EXACCT::FILE 3PERL "Dec 1, 2002"
-.SH NAME
-Exacct::File \- exacct file manipulation
-.SH SYNOPSIS
-.LP
-.nf
-use Sun::Solaris::Exacct::File qw(:ALL);
-my $ea_file = Sun::Solaris::Exacct::File->new($myfile, &O_RDONLY);
-my $ea_obj = $ea_file->get();
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-This module provides access to the \fBlibexacct\fR(3LIB) functions that
-manipulate accounting files. The interface is object-oriented and allows the
-creation and reading of \fBlibexacct\fR files. The C library calls wrapped by
-this module are \fBea_open\fR(3EXACCT), \fBea_close\fR(3EXACCT),
-\fBea_next_object\fR(3EXACCT), \fBea_previous_object\fR(3EXACCT),
-\fBea_write_object\fR(3EXACCT), \fBea_get_object\fR(3EXACCT),
-\fBea_get_creator\fR(3EXACCT), and \fBea_get_hostname\fR(3EXACCT). The file
-read and write methods all operate on \fBSun::Solaris::Exacct::Object\fR
-objects and perform all the necessary memory management, packing, unpacking,
-and structure conversions that are required.
-.SS "Constants"
-.sp
-.LP
-\fBEO_HEAD\fR, \fBEO_TAIL\fR, \fBEO_NO_VALID_HDR\fR, \fBEO_POSN_MSK\fR, and
-\fBEO_VALIDATE_MSK\fR. Other constants needed by the \fBnew()\fR method below
-are in the standard Perl Fcntl module.
-.SS "Functions"
-.sp
-.LP
-None.
-.SS "Class methods"
-.sp
-.ne 2
-.na
-\fB\fBnew($name, $oflags, creator => $creator,\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method opens a \fBlibexacct\fR file as specified by the mandatory
-parameters \fB$name\fR and \fB$oflags\fR, and returns a
-\fBSun::Solaris::Exacct::File\fR object, or \fBundef\fR if an error occurs. The
-parameters \fB$creator\fR, \fB$aflags\fR, and \fB$mode\fR are optional and are
-passed as (\fBname\fR => \fBvalue\fR) pairs. The only valid values for
-\fB$oflags\fR are the combinations of \fBO_RDONLY\fR, \fBO_WRONLY\fR,
-\fBO_RDWR\fR, and \fBO_CREAT\fR described below.
-.sp
-The \fB$creator\fR parameter is a string describing the creator of the file. If
-it is required (for instance, when writing to a file) but absent, it is set to
-the string representation of the caller's UID. The \fB$aflags\fR parameter
-describes the required positioning in the file for \fBO_RDONLY\fR access:
-either \fBEO_HEAD\fR or \fBEO_TAIL\fR are allowed. If absent, \fBEO_HEAD\fR is
-assumed. The \fB$mode\fR parameter is the file creation mode and is ignored
-unless \fBO_CREAT\fR is specified in \fB$oflags\fR. If \fB$mode\fR is
-unspecified, the file creation mode is set to 0666 (octal). If an error occurs,
-it can be retrieved with the \fBSun::Solaris::Exacct::ea_error()\fR function.
-See \fBExacct\fR(3PERL).
-.sp
-
-.sp
-.TS
-c c c
-l l l .
-\fB$oflags\fR \fB$aflags\fR Action
-\fBO_RDONLY\fR Absent or \fBEO_HEAD\fR T{
-Open for reading at the start of the file.
-T}
-\fBO_RDONLY\fR \fBEO_TAIL\fR Open for reading at the end of the file.
-\fBO_WRONLY\fR Ignored T{
-File must exist, open for writing at the end of the file.
-T}
-\fBO_WRONLY\fR | \fBO_CREAT\fR Ignored T{
-Create file if it does not exist, otherwise truncate and open for writing.
-T}
-\fBO_RDWR\fR Ignored T{
-File must exist, open for reading/writing, positioned at the end of the file.
-T}
-\fBO_RDWR\fR | \fBO_CREAT\fR Ignored T{
-Create file if it does not exist, otherwise truncate and open for reading/writing.
-T}
-.TE
-
-.RE
-
-.SS "Object methods"
-.sp
-.LP
-There is no explicit \fBclose()\fR method for a
-\fBSun::Solaris::Exacct::File\fR. The file is closed when the file handle
-object is undefined or reassigned.
-.sp
-.ne 2
-.na
-\fB\fBcreator()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method returns a string containing the creator of the file or \fBundef\fR
-if the file does not contain the information.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBhostname()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method returns a string containing the hostname on which the file was
-created, or \fBundef\fR if the file does not contain the information.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBnext()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method reads the header information of the next record in the file. In a
-scalar context the value of the type field is returned as a dual-typed scalar
-that will be one of \fBEO_ITEM\fR, \fBEO_GROUP\fR, or \fBEO_NONE\fR. In a list
-context it returns a two-element list containing the values of the type and
-catalog fields. The type element is a dual-typed scalar. The catalog element is
-blessed into the \fBSun::Solaris::Exacct::Catalog\fR class. If an error occurs,
-\fBundef\fR or (\fBundef\fR, \fBundef\fR) is returned depending upon context.
-The status can be accessed with the \fBSun::Solaris::Exacct::ea_error()\fR
-function.See \fBExacct\fR(3PERL).
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBprevious()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method reads the header information of the previous record in the file. In
-a scalar context it returns the type field. In a list context it returns the
-two-element list containing the values of the type and catalog fields, in the
-same manner as the \fBnext()\fR method. Error are also returned in the same
-manner as the \fBnext()\fR method.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBget()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method reads in the \fBlibexacct\fR record at the current position in the
-file and returns a \fBSun::Solaris::Exacct::Object\fR containing the unpacked
-data from the file. This object can then be further manipulated using its
-methods. In case of error undef is returned and the error status is made
-available with the \fBSun::Solaris::Exacct::ea_error()\fR function. After this
-operation, the position in the file is set to the start of the next record in
-the file.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBwrite(@ea_obj)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This method converts the passed list of Sun::Solaris::Exacct::Objects into
-\fBlibexacct\fR file format and appends them to the \fBlibexacct\fR file, which
-must be open for writing. This method returns true if successful and false
-otherwise. On failure the error can be examined with the
-\fBSun::Solaris::Exacct::ea_error()\fR function.
-.RE
-
-.SS "Exports"
-.sp
-.LP
-By default nothing is exported from this module. The following tags can be used
-to selectively import constants defined in this module:
-.sp
-.ne 2
-.na
-\fB\fB:CONSTANTS\fR\fR
-.ad
-.sp .6
-.RS 4n
-\fBEO_HEAD\fR, \fBEO_TAIL\fR, \fBEO_NO_VALID_HDR\fR, \fBEO_POSN_MSK\fR, and
-\fBEO_VALIDATE_MSK\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:ALL\fR\fR
-.ad
-.sp .6
-.RS 4n
-\fB:CONSTANTS\fR, Fcntl(\fB:DEFAULT\fR).
-.RE
-
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Evolving
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBea_close\fR(3EXACCT), \fBea_get_creator\fR(3EXACCT),
-\fBea_get_hostname\fR(3EXACCT), \fBea_get_object\fR(3EXACCT),
-\fBea_next_object\fR(3EXACCT), \fBea_open\fR(3EXACCT),
-\fBea_previous_object\fR(3EXACCT), \fBea_write_object\fR(3EXACCT),
-\fBExacct\fR(3PERL), \fBExacct::Catalog\fR(3PERL), \fBExacct::Object\fR(3PERL),
-\fBExacct::Object::Group\fR(3PERL), \fBExacct::Object::Item\fR(3PERL),
-\fBlibexacct\fR(3LIB), \fBattributes\fR(5)
diff --git a/usr/src/man/man3perl/Exacct::Object.3perl b/usr/src/man/man3perl/Exacct::Object.3perl
deleted file mode 100644
index eb8fae94bc..0000000000
--- a/usr/src/man/man3perl/Exacct::Object.3perl
+++ /dev/null
@@ -1,201 +0,0 @@
-'\" te
-.\" Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH EXACCT::OBJECT 3PERL "Dec 1, 2002"
-.SH NAME
-Exacct::Object \- exacct object manipulation
-.SH SYNOPSIS
-.LP
-.nf
-use Sun::Solaris::Exacct::Object qw(:ALL);
-print($ea_obj->value(), "\en");
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-This module is used as a parent of the two possible types of Perl exacct
-objects: Items and Groups. An Item is either a single data value such as the
-number of seconds of user CPU time consumed by a process, an embedded Perl
-exacct object, or a block of raw data. A Group is an ordered collection of
-Perl exacct Items such as all of the resource usage values for a particular
-process or task. If Groups need to be nested within each other, the inner
-Groups can be stored as embedded Perl exacct objects inside the enclosing
-Group.
-.sp
-.LP
-This module contains methods that are common to both Perl exacct Items and
-Groups. The attributes of \fBSun::Solaris::Exacct::Object\fR and all classes
-derived from it are read-only after initial creation with \fBnew()\fR. This
-behavior prevents the inadvertent modification of the attributes that could
-produce inconsistent catalog tags and data values. The only exception is the
-array used to store the Items inside a Group object, which can be modified
-using the normal Perl array operators. See the \fBvalue()\fR method below.
-.SS "Constants"
-.sp
-.LP
-\fBEO_ERROR\fR, \fBEO_NONE\fR, \fBEO_ITEM\fR, and \fBEO_GROUP\fR.
-.SS "Functions"
-.sp
-.LP
-None.
-.SS "Class methods"
-.sp
-.ne 2
-.na
-\fB\fBdump($object, $filehandle)\fR\fR
-.ad
-.RS 30n
-This method dumps formatted text representation of a Perl exacct object to the
-supplied file handle. If no file handle is specified, the text representation
-is dumped to \fBSTDOUT\fR. See EXAMPLES below for sample output.
-.RE
-
-.SS "Object methods"
-.sp
-.ne 2
-.na
-\fB\fBtype()\fR\fR
-.ad
-.RS 27n
-This method returns the type field of the Perl exacct object. The value of the
-type field is returned as a dual-typed scalar and is either \fBEO_ITEM\fR,
-\fBEO_GROUP\fR, or \fBEO_NONE\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBcatalog()\fR\fR
-.ad
-.RS 27n
-This method returns the catalog field of the Perl exacct object. The value is
-returned as a \fBSun::Solaris::Exacct::Catalog\fR object.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBmatch_catalog($catalog)\fR\fR
-.ad
-.RS 27n
-This method matches the passed catalog tag against the object. True is returned
-of a match occurs. Otherwise false is returned. This method has the same
-behavior as the underlying \fBea_match_object_catalog\fR(3EXACCT) function.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBvalue()\fR\fR
-.ad
-.RS 27n
-This method returns the value of the Perl exacct object. In the case of an
-Item, this object will normally be a Perl scalar, either a number or string.
-For raw Items, the buffer contained inside the object is returned as a Perl
-string that can be manipulated with the Perl \fBunpack()\fR function. If the
-Item contains either a nested Item or a nested Group, the enclosed Item is
-returned as a reference to an object of the appropriate subtype of the
-\fBSun::Solaris::Exacct::Object\fR class.
-.sp
-For Group objects, if \fBvalue()\fR is called in a scalar context, the return
-value is a reference to the underlying array used to store the component Items
-of the Group. Since this array can be manipulated with the normal Perl array
-indexing syntax and array operators, the objects inside the Group can be
-manipulated. All objects in the array must be derived from the
-\fBSun::Solaris::Exacct::Object\fR class. Any attempt to insert something else
-into the array will generate a fatal runtime error that can be caught with an
-\fBeval { }\fR block.
-.sp
-If \fBvalue()\fR is called in a list context for a Group object, it returns a
-list of all the objects in the Group. Unlike the array reference returned in a
-scalar context, this list cannot be manipulated to add or delete Items from a
-Group. This mechanism is considerably faster than the array mechanism described
-above and is the preferred mechanism if a Group is being examined in a
-read-only manner.
-.RE
-
-.SS "Exports"
-.sp
-.LP
-By default nothing is exported from this module. The following tags can be used
-to selectively import constants and functions defined in this module:
-.sp
-.ne 2
-.na
-\fB\fB:CONSTANTS\fR\fR
-.ad
-.RS 14n
-\fBEO_ERROR\fR, \fBEO_NONE\fR, \fBEO_ITEM\fR, and \fBEO_GROUP\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:ALL\fR\fR
-.ad
-.RS 14n
-\fB:CONSTANTS\fR
-.RE
-
-.SH EXAMPLES
-.LP
-\fBExample 1 \fROutput of the \fBdump()\fR method for a Perl exacct Group
-object.
-.sp
-.LP
-The following is an example of output of the \fBdump()\fR method for a Perl
-exacct Group object.
-
-.sp
-.in +2
-.nf
-GROUP
- Catalog = EXT_GROUP|EXC_DEFAULT|EXD_GROUP_PROC_PARTIAL
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_PID
- Value = 3
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_UID
- Value = 0
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_GID
- Value = 0
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_PROJID
- Value = 0
- ITEM
- Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_TASKID
- Value = 0
- ITEM
- Catalog = EXT_STRING|EXC_DEFAULT|EXD_PROC_COMMAND
- Value = fsflush
-ENDGROUP
-.fi
-.in -2
-
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Evolving
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBea_match_object_catalog\fR(3EXACCT), \fBExacct\fR(3PERL),
-\fBExacct::Catalog\fR(3PERL), \fBExacct::File\fR(3PERL),
-\fBExacct::Object::Group\fR(3PERL), \fBExacct::Object::Item\fR(3PERL),
-\fBlibexacct\fR(3LIB), \fBattributes\fR(5)
diff --git a/usr/src/man/man3perl/Exacct::Object::Group.3perl b/usr/src/man/man3perl/Exacct::Object::Group.3perl
deleted file mode 100644
index aef4d35fab..0000000000
--- a/usr/src/man/man3perl/Exacct::Object::Group.3perl
+++ /dev/null
@@ -1,116 +0,0 @@
-'\" te
-.\" Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH EXACCT::OBJECT::GROUP 3PERL "Dec 1, 2002"
-.SH NAME
-Exacct::Object::Group \- exacct group manipulation
-.SH SYNOPSIS
-.LP
-.nf
-use Sun::Solaris::Exacct::Object;
-my $ea_grp = Sun::Solaris::Exacct::Object::Group->new(
- & EXT_GROUP | &EXC_DEFAULT | &EXD_GROUP_PROC);
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-This module is used for manipulating \fBlibexacct\fR(3LIB) Group objects. A
-\fBlibexacct\fR Group object is represented as an opaque reference blessed into
-the \fBSun::Solaris::Exacct::Object::Group\fR class, which is a subclass of the
-\fBSun::Solaris::Exacct::Object\fR class. The Items within a Group are stored
-inside a Perl array. A reference to the array can be accessed with the
-inherited \fBvalue()\fR method. The individual Items within a Group can be
-manipulated with the normal Perl array syntax and operators. All data elements
-of the array must be derived from the \fBSun::Solaris::Exacct::Object\fR class.
-Group objects can also be nested inside each other simply by adding an existing
-Group as a data Item.
-.SS "Constants"
-.sp
-.LP
-None.
-.SS "Functions"
-.sp
-.LP
-None.
-.SS "Class methods"
-.sp
-.LP
-Class methods include those inherited from the
-\fBSun::Solaris::Exacct::Object\fR base class, plus the following:
-.sp
-.ne 2
-.na
-\fB\fBnew($catalog, @objects)\fR\fR
-.ad
-.RS 27n
-This method creates and returns a new
-\fBSun::Solaris::Exacct::Object::Group\fR. The catalog tag can be either an
-integer or a \fBSun::Solaris::Exacct::Catalog\fR. The catalog tag should be a
-valid catalog tag for a Perl exacct Group object. The \fB@objects\fR parameter
-is a list of \fBSun::Solaris::Exacct::Object\fR to be stored inside the Group.
-A copy of all the passed Items is taken and any Group objects are recursively
-copied. The contents of the returned Group object can be accessed with the
-array returned by the value method.
-.RE
-
-.SS "Object methods"
-.sp
-.ne 2
-.na
-\fB\fBas_hash()\fR\fR
-.ad
-.RS 17n
-This method returns the contents of the group as a hash reference. It uses the
-string value of each item's catalog ID as the hash entry key and the scalar
-value returned by \fBvalue()\fR as the hash entry value. This form should be
-used if there are no duplicate catalog tags in the group.
-.sp
-This method and its companion \fBas_hashlist()\fR are the fastest ways to
-access the contents of a Group.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBas_hashlist()\fR\fR
-.ad
-.RS 17n
-This method returns the contents of the group as a hash reference. It uses the
-string value of each item's catalog id as the hash entry key and an array of
-the scalar values returned by \fBvalue()\fR as the hash entry value for all the
-items that share a common key. This form should be used if there might be
-duplicate catalog tags in the group.
-.sp
-This method and its companion \fBas_hash()\fR are the fastest ways to access
-the contents of a Group.
-.RE
-
-.SS "Exports"
-.sp
-.LP
-None.
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Evolving
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBExacct\fR(3PERL), \fBExacct::Catalog\fR(3PERL), \fBExacct::File\fR(3PERL),
-\fBExacct::Object\fR(3PERL), \fBExacct::Object::Item\fR(3PERL),
-\fBlibexacct\fR(3LIB), \fBattributes\fR(5)
diff --git a/usr/src/man/man3perl/Exacct::Object::Item.3perl b/usr/src/man/man3perl/Exacct::Object::Item.3perl
deleted file mode 100644
index 2372acd484..0000000000
--- a/usr/src/man/man3perl/Exacct::Object::Item.3perl
+++ /dev/null
@@ -1,103 +0,0 @@
-'\" te
-.\" Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH EXACCT::OBJECT::ITEM 3PERL "Dec 1, 2002"
-.SH NAME
-Exacct::Object::Item \- exacct item manipulation
-.SH SYNOPSIS
-.LP
-.nf
-use Sun::Solaris::Exacct::Object;
-my $ea_item = Sun::Solaris::Exacct::Object::Item->new(
- &EXT_UINT64 | &EXC_DEFAULT | &EXD_PROC_PID, $$);
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-This module is used for manipulating \fBlibexacct\fR(3LIB) data Items. A
-\fBlibexacct\fR Item is represented as an opaque reference blessed into the
-\fBSun::Solaris::Exacct::Object::Item\fR class, which is a subclass of the
-\fBSun::Solaris::Exacct::Object\fR class. The underlying \fBlibexacct\fR data
-types are mapped onto Perl types as follows:
-.sp
-
-.sp
-.TS
-c c
-l l .
-libexacct type Perl internal type
-\fBEXT_UINT8\fR IV (integer)
-\fBEXT_UINT16\fR IV (integer)
-\fBEXT_UINT32\fR IV (integer)
-\fBEXT_UINT64\fR IV (integer)
-\fBEXT_DOUBLE\fR NV (double)
-\fBEXT_STRING\fR PV (string)
-\fBEXT_RAW\fR PV (string)
-\fBEXT_EXACCT_OBJECT\fR \fBSun::Solaris::Exacct::Object subclass\fR
-.TE
-
-.SS "Constants"
-.sp
-.LP
-None.
-.SS "Functions"
-.sp
-.LP
-None.
-.SS "Class methods"
-.sp
-.LP
-Class methods include those inherited from the
-\fBSun::Solaris::Exacct::Object\fR base class, plus the following:
-.sp
-.ne 2
-.na
-\fB\fBnew($catalog, $value)\fR\fR
-.ad
-.RS 25n
-This method creates and returns a new \fBSun::Solaris::Exacct::Object::Item\fR.
-The catalog tag can be either an integer or a
-\fBSun::Solaris::Exacct::Catalog\fR. This catalog tag controls the conversion
-of the Perl value to the corresponding Perl exacct data type as described in
-the table above. If the catalog tag has a type field of
-\fBEXT_EXACCT_OBJECT\fR, the value must be a reference to either an Item or a
-Group object and the passed object is recursively copied and stored inside the
-new Item. Because the returned Item is constant, it is impossible, for example,
-to create an Item representing CPU seconds and subsequently modify its value or
-change its catalog value. This behavior is intended to prevent mismatches
-between the catalog tag and the data value.
-.RE
-
-.SS "Object methods"
-.sp
-.LP
-Object methods are those inherited from the \fBSun::Solaris::Exacct::Object\fR.
-.SS "Exports"
-.sp
-.LP
-None.
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Evolving
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBExacct\fR(3PERL), \fBExacct::Catalog\fR(3PERL), \fBExacct::File\fR(3PERL),
-\fBExacct::Object\fR(3PERL), \fBExacct::Object::Group\fR(3PERL),
-\fBlibexacct\fR(3LIB), \fBattributes\fR(5)
diff --git a/usr/src/man/man3perl/Makefile b/usr/src/man/man3perl/Makefile
index a0e1935095..909c8291b5 100644
--- a/usr/src/man/man3perl/Makefile
+++ b/usr/src/man/man3perl/Makefile
@@ -12,44 +12,20 @@
#
# Copyright 2011, Richard Lowe
# Copyright 2013 Nexenta Systems, Inc. All rights reserved.
+# Copyright (c) 2014 Racktop Systems.
#
include $(SRC)/Makefile.master
MANSECT= 3perl
-MANFILES= Exacct.3perl \
- Exacct\:\:Catalog.3perl \
- Exacct\:\:File.3perl \
- Exacct\:\:Object.3perl \
- Exacct\:\:Object\:\:Group.3perl \
- Exacct\:\:Object\:\:Item.3perl \
- Kstat.3perl \
+MANFILES= Kstat.3perl \
Lgrp.3perl \
- Privilege.3perl \
Project.3perl \
- Task.3perl \
- Ucred.3perl
+ Task.3perl
.KEEP_STATE:
include $(SRC)/man/Makefile.man
-#
-# When KEEP_STATE is in effect and a target has a colon in the name (like the
-# Exacct::* pages above, dmake will write them to the state file unescaped,
-# creating a file which then cannot be reparsed, breaking any build other than
-# the first in this directory:
-#
-# See CR 6987108 make will write un-escaped :'s to .make.state, break itself
-#
-# As a workaround, install the files manually in a FRC target.
-CMD= $(INS) -s -m $(FILEMODE) -f $(ROOTMAN)/man$(MANSECT)
-install: FRC
- @for file in $(MANFILES); do \
- if [[ $$file -nt $(ROOTMAN)/man$(MANSECT)/$$file ]]; then \
- $(ECHO) $(CMD) $$file; \
- $(RM) $(ROOTMAN)/man$(MANSECT)/$$file; \
- $(CMD) $$file; \
- fi \
- done;
+install: $(ROOTMANFILES) $(ROOTMANLINKS)
diff --git a/usr/src/man/man3perl/Privilege.3perl b/usr/src/man/man3perl/Privilege.3perl
deleted file mode 100644
index 0b0ad0548d..0000000000
--- a/usr/src/man/man3perl/Privilege.3perl
+++ /dev/null
@@ -1,303 +0,0 @@
-'\" te
-.\" Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved.
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH PRIVILEGE 3PERL "Jan 30, 2004"
-.SH NAME
-Privilege \- Perl interface to Privileges
-.SH SYNOPSIS
-.LP
-.nf
-use Sun::Solaris::Privilege qw(:ALL);
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-This module provides wrappers for the Privilege-related system and library
-calls. Also provided are constants from the various Privilege-related headers
-and dynamically-generated constants for all the privileges and privilege sets.
-.SS "Constants"
-.sp
-.LP
-\fBPRIV_STR_SHORT\fR, \fBPRIV_STR_LIT\fR, \fBPRIV_STR_PORT\fR, \fBPRIV_ON\fR,
-\fBPRIV_OFF\fR, \fBPRIV_SET\fR, \fBPRIV_AWARE\fR, and \fBPRIV_DEBUG\fR.
-.SS "Functions"
-.sp
-.ne 2
-.na
-\fB\fBgetppriv($which)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the process privilege set specified by
-\fB\fR\fB$which\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBsetppriv($op, $which, $set)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function modified the privilege set specified by $which in the as
-specified by the \fB$op\fR and \fB$set\fR arguments. If \fB$op\fR is
-\fBPRIV_ON\fR, the privileges in \fB$set\fR are added to the set specified. If
-\fB$op\fR is \fBPRIV_OFF\fR, the privileges in \fB$set\fR are removed from the
-set specified. If \fB$op\fR is \fBPRIV_SET\fR, the specified set is made equal
-to \fB$set\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBgetpflags($flag)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the value associated with process \fB$flag\fR or
-\fBundef\fR on error. Possible values for \fB$flag\fR are \fBPRIV_AWARE\fR and
-\fBPRIV_DEBUG\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBsetppflags($flag, $val)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function sets the process flag \fB$flag\fR to \fB$val\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_fillset()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns a new privilege set with all privileges set.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_emptyset()\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns a new empty privilege set.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_isemptyset($set)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns whether or not \fB$set\fR is empty.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_isfullset($set)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns whether or not \fB$set\fR is full.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_isequalset($a, $b)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns whether sets \fB$a\fR and \fB$b\fR are equal.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_issubset($a, $b)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns whether set \fB$a\fR is a subset of \fB$b\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_ismember($set, $priv)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns whether \fB$priv\fR is a member of \fB$set\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_ineffect($priv)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returned whether \fB$priv\fR is in the process's effective set.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_intersect($a, $b)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns a new privilege set which is the intersection of \fB$a\fR
-and \fB$b\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_union($a, $b)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns a new privilege set which is the union of \fB$a\fR and
-\fB$b\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_inverse($a)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns a new privilege set which is the inverse of \fB$a\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_addset($set, $priv)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This functon adds the privilege \fB$priv\fR to \fB$set\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_copyset($a)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns a copy of the privilege set \fB$a\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBpriv_delset($set, $priv)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function remove the privilege \fB$priv\fR from \fB$set\fR.
-.RE
-
-.SS "Class methods"
-.sp
-.LP
-None.
-.SS "Object methods"
-.sp
-.LP
-None.
-.SS "Exports"
-.sp
-.LP
-By default nothing is exported from this module. The following tags can be used
-to selectively import constants and functions defined in this module:
-.sp
-.ne 2
-.na
-\fB\fB:SYSCALLS\fR\fR
-.ad
-.RS 14n
-\fBgetppriv()\fR, \fBsetppriv()\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:LIBCALLS\fR\fR
-.ad
-.RS 14n
-\fBpriv_addset()\fR, \fBpriv_copyset()\fR, \fBpriv_delset()\fR,
-\fBpriv_emptyset()\fR, \fBpriv_fillset()\fR, \fBpriv_intersect()\fR,
-\fBpriv_inverse()\fR, \fBpriv_isemptyset()\fR, \fBpriv_isequalset()\fR,
-\fBpriv_isfullset()\fR, \fBpriv_ismember()\fR, \fBpriv_issubset()\fR,
-\fBpriv_gettext()\fR, \fBpriv_union()\fR, \fBpriv_set_to_str()\fR,
-\fBpriv_str_to_set()\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:CONSTANTS\fR\fR
-.ad
-.RS 14n
-\fBPRIV_STR_SHORT\fR, \fBPRIV_STR_LIT\fR, \fBPRIV_STR_PORT\fR, \fBPRIV_ON\fR,
-\fBPRIV_OFF\fR, \fBPRIV_SET\fR, \fBPRIV_AWARE\fR, \fBPRIV_DEBUG\fR, plus
-constants for all privileges and privilege sets.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:VARIABLES\fR\fR
-.ad
-.RS 14n
-\fB%PRIVILEGES\fR, \fB%PRIVSETS\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:ALL\fR\fR
-.ad
-.RS 14n
-\fB:SYSCALLS\fR, \fB:LIBCALLS\fR, \fB:CONSTANTS\fR, \fB:VARIABLES\fR
-.RE
-
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Evolving
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBgetpflags\fR(2), \fBgetppriv\fR(2), \fBpriv_addset\fR(3C),
-\fBpriv_set\fR(3C), \fBpriv_str_to_set\fR(3C), \fBattributes\fR(5),
-\fBprivileges\fR(5)
diff --git a/usr/src/man/man3perl/Ucred.3perl b/usr/src/man/man3perl/Ucred.3perl
deleted file mode 100644
index e6b55d99da..0000000000
--- a/usr/src/man/man3perl/Ucred.3perl
+++ /dev/null
@@ -1,235 +0,0 @@
-'\" te
-.\" Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved.
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH UCRED 3PERL "Jan 30, 2004"
-.SH NAME
-Ucred \- Perl interface to User Credentials
-.SH SYNOPSIS
-.LP
-.nf
-use Sun::Solaris::Ucred qw(:ALL);
-.fi
-
-.SH DESCRIPTION
-.sp
-.LP
-This module provides wrappers for the Ucred-related system and library calls.
-.SS "Constants"
-.sp
-.LP
-None.
-.SS "Functions"
-.sp
-.ne 2
-.na
-\fB\fBucred_get($pid)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the credential of the process specified by \fB$pid\fR if
-the process exists and the calling process is permitted to obtain the
-credentials of that process.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBgetpeerucred($fd)\fR\fR
-.ad
-.sp .6
-.RS 4n
-If \fB$fd\fR is a connected connection-oriented TLI endpoint, a connected
-\fBSOCK_STREAM\fR, or a \fBSOCK_SEQPKT\fR socket, \fBgetpeerucred()\fR returns
-the user credential of the peer at the time the connection was established, if
-availble.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_geteuid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the effective uid of a user credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getruid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the real uid of a user credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getsuid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the saved uid of a user credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getegid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the effective group of a user credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getrgid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the real group of a user credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getsgid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the saved group of a user credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getgroups($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the list of supplemental groups of a user credential, if
-available.An array of groups is returned in \fBARRAY\fR context; the number of
-groups is returned in \fBSCALAR\fR context.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getprivset($ucred, $which)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the privilege set specified by \fB$which\fR of a user
-credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getpflags($ucred, $flags)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the value of a specific process flag of a user
-credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getpid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the process ID of a user credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getprojid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the project ID of a user credential, if available.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBucred_getzoneid($ucred)\fR\fR
-.ad
-.sp .6
-.RS 4n
-This function returns the zone ID of a user credential, if available.
-.RE
-
-.SS "Class methods"
-.sp
-.LP
-None.
-.SS "Object methods"
-.sp
-.LP
-None.
-.SS "Exports"
-.sp
-.LP
-By default nothing is exported from this module. The following tags can be used
-to selectively import constants and functions defined in this module:
-.sp
-.ne 2
-.na
-\fB\fB:SYSCALLS\fR\fR
-.ad
-.RS 13n
-\fBucred_get()\fR, \fBgetpeerucred()\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:LIBCALLS\fR\fR
-.ad
-.RS 13n
-\fBucred_geteuid()\fR, \fBucred_getruid()\fR, \fBucred_getsuid()\fR,
-\fBucred_getegid()\fR, \fBucred_getrgid()\fR, \fBucred_getsgid()\fR,
-\fBucred_getgroups()\fR, \fBucred_getprivset()\fR, \fBucred_getpflags()\fR,
-\fBucred_getpid()\fR, \fBucred_getzone()\fR
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fB:ALL\fR\fR
-.ad
-.RS 13n
-\fB:SYSCALLS()\fR, \fB:LIBCALLS()\fR
-.RE
-
-.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-ATTRIBUTE TYPE ATTRIBUTE VALUE
-_
-Interface Stability Evolving
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBgetpeerucred\fR(3C), \fBucred_get\fR(3C), \fBattributes\fR(5)
diff --git a/usr/src/pkg/manifests/runtime-perl-510-module-sun-solaris.mf b/usr/src/pkg/manifests/runtime-perl-510-module-sun-solaris.mf
index e3899310ef..74097f1b7e 100644
--- a/usr/src/pkg/manifests/runtime-perl-510-module-sun-solaris.mf
+++ b/usr/src/pkg/manifests/runtime-perl-510-module-sun-solaris.mf
@@ -21,6 +21,7 @@
#
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014 Racktop Systems.
#
$(i386_ONLY)<transform file dir path=.*PLAT.* -> edit path PLAT i86pc>
@@ -35,120 +36,50 @@ set name=info.classification \
value=org.opensolaris.category.2008:Development/Perl
set name=variant.arch value=$(ARCH)
dir path=usr group=sys
-dir path=usr/bin
dir path=usr/perl5
dir path=usr/perl5/5.10.0
-dir path=usr/perl5/5.10.0/bin
dir path=usr/perl5/5.10.0/lib
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris
-dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Exacct
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris
-dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/BSM
-dir \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/BSM/_BSMparse
-dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct
-dir \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/Catalog
-dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/File
-dir \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/Object
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Intrs
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Kstat
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Lgrp
-dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/PerlGcc
-dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Pg
-dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Privilege
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Project
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Task
-dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Ucred
dir path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Utils
dir path=usr/perl5/5.10.0/lib/Sun
dir path=usr/perl5/5.10.0/lib/Sun/Solaris
dir path=usr/perl5/5.10.0/lib/Sun/Solaris/BSM
-dir path=usr/perl5/5.10.0/lib/Sun/Solaris/PerlGcc
dir path=usr/share/man
dir path=usr/share/man/man3perl
-file path=usr/perl5/5.10.0/bin/perlgcc mode=0555
-file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Exacct.pm
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Exacct/Catalog.pm
-file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Exacct/File.pm
-file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Exacct/Object.pm
file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Intrs.pm
file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Kstat.pm
file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Lgrp.pm
-file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Privilege.pm
file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Project.pm
file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Task.pm
-file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Ucred.pm
file path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/Sun/Solaris/Utils.pm
file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/Catalog/Catalog.bs
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/Catalog/Catalog.so
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/Exacct.bs
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/Exacct.so
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/File/File.bs
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/File/File.so
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/Object/Object.bs
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Exacct/Object/Object.so
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Intrs/Intrs.bs
-file \
path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Intrs/Intrs.so
file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Kstat/Kstat.bs
-file \
path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Kstat/Kstat.so
file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Lgrp/Lgrp.bs
-file \
path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Lgrp/Lgrp.so
file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Privilege/Privilege.bs
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Privilege/Privilege.so
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Project/Project.bs
-file \
path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Project/Project.so
file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Task/Task.bs
-file \
path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Task/Task.so
file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Ucred/Ucred.bs
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Ucred/Ucred.so
-file \
- path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Utils/Utils.bs
-file \
path=usr/perl5/5.10.0/lib/PLAT-solaris-64int/auto/Sun/Solaris/Utils/Utils.so
file path=usr/perl5/5.10.0/lib/Sun/Solaris/BSM/_BSMparse.pm
-file path=usr/perl5/5.10.0/lib/Sun/Solaris/PerlGcc/Config.pm
file path=usr/perl5/5.10.0/lib/Sun/Solaris/Pg.pm
-file path=usr/share/man/man3perl/Exacct.3perl
-file path=usr/share/man/man3perl/Exacct::Catalog.3perl
-file path=usr/share/man/man3perl/Exacct::File.3perl
-file path=usr/share/man/man3perl/Exacct::Object.3perl
-file path=usr/share/man/man3perl/Exacct::Object::Group.3perl
-file path=usr/share/man/man3perl/Exacct::Object::Item.3perl
file path=usr/share/man/man3perl/Kstat.3perl
file path=usr/share/man/man3perl/Lgrp.3perl
-file path=usr/share/man/man3perl/Privilege.3perl
file path=usr/share/man/man3perl/Project.3perl
file path=usr/share/man/man3perl/Task.3perl
-file path=usr/share/man/man3perl/Ucred.3perl
license cr_Sun license=cr_Sun
license usr/src/cmd/perl/THIRDPARTYLICENSE \
license=usr/src/cmd/perl/THIRDPARTYLICENSE