summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2009-04-12 15:05:04 +0100
committerNicholas Clark <nick@ccl4.org>2009-04-12 15:05:04 +0100
commit48462a74af687743eb1706910f2a17ba4180660d (patch)
tree8370a38a93edf2091d8c7a91c3c61819156cdbc6
parent42f6aa011acc35d253b243e5e9990e254b882076 (diff)
downloadperl-48462a74af687743eb1706910f2a17ba4180660d.tar.gz
Convert xsutils.c and lib/attributes.pm to a regular XS extension.
-rwxr-xr-xCross/Makefile-cross-SH4
-rwxr-xr-xCross/cflags-cross-arm1
-rw-r--r--Cross/config.sh-arm-linux6
-rw-r--r--Cross/config.sh-arm-linux-n7706
-rw-r--r--MANIFEST4
-rw-r--r--Makefile.SH4
-rw-r--r--Makefile.micro5
-rw-r--r--NetWare/Makefile17
-rw-r--r--NetWare/config.wc2
-rw-r--r--Porting/config.sh6
-rw-r--r--README.symbian2
-rwxr-xr-xcflags.SH1
-rw-r--r--embed.fnc2
-rw-r--r--embed.h2
-rw-r--r--epoc/config.sh2
-rw-r--r--ext/attributes/attributes.pm (renamed from lib/attributes.pm)20
-rw-r--r--ext/attributes/attributes.xs (renamed from xsutils.c)95
-rw-r--r--hints/uwin.sh4
-rw-r--r--hints/vmesa.sh2
-rw-r--r--perl.c1
-rw-r--r--plan9/config_sh.sample6
-rw-r--r--plan9/mkfile2
-rw-r--r--proto.h1
-rw-r--r--symbian/config.pl2
-rw-r--r--symbian/install.cfg1
-rw-r--r--vms/descrip_mms.template6
-rw-r--r--win32/Makefile5
-rw-r--r--win32/Makefile.ce6
-rw-r--r--win32/config.bc2
-rw-r--r--win32/config.ce2
-rw-r--r--win32/config.gc2
-rw-r--r--win32/config.vc2
-rw-r--r--win32/config.vc642
-rw-r--r--win32/makefile.mk5
34 files changed, 79 insertions, 151 deletions
diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH
index a078988f3c..806bc09494 100755
--- a/Cross/Makefile-cross-SH
+++ b/Cross/Makefile-cross-SH
@@ -358,7 +358,7 @@ h = $(h1) $(h2) $(h3) $(h4) $(h5)
c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c
c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
-c3 = taint.c toke.c util.c deb.c run.c universal.c xsutils.c pad.c globals.c
+c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c
c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c
c5 = $(madlysrc) $(mallocsrc)
@@ -366,7 +366,7 @@ c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c
obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT)
obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) perl$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
-obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) xsutils$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
+obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
diff --git a/Cross/cflags-cross-arm b/Cross/cflags-cross-arm
index d33b1136de..acec8cc80f 100755
--- a/Cross/cflags-cross-arm
+++ b/Cross/cflags-cross-arm
@@ -108,7 +108,6 @@ for file do
usersub) ;;
utf8) ;;
util) ;;
- xsutils) ;;
*) ;;
esac
diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index 0c9262b5d6..d054b59f36 100644
--- a/Cross/config.sh-arm-linux
+++ b/Cross/config.sh-arm-linux
@@ -546,7 +546,7 @@ doublesize='8'
drand01='drand48()'
drand48_r_proto='0'
dtrace=''
-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 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap re threads threads/shared'
+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 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attributes re threads threads/shared'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
@@ -561,7 +561,7 @@ 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 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap re threads threads/shared Errno'
+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 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attributes re threads threads/shared Errno'
extras=''
fflushNULL='define'
fflushall='undef'
@@ -751,7 +751,7 @@ issymlink='/usr/bin/test -h'
ivdformat='"ld"'
ivsize='4'
ivtype='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 Time/HiRes Unicode/Normalize XS/APItest XS/Typemap re threads threads/shared'
+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 Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attributes re threads threads/shared'
ksh=''
ld='cc'
lddlflags='-shared -L/usr/local/lib'
diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770
index 4461b93982..6c2fd8f59a 100644
--- a/Cross/config.sh-arm-linux-n770
+++ b/Cross/config.sh-arm-linux-n770
@@ -531,7 +531,7 @@ dlsrc='dl_dlopen.xs'
doublesize='8'
drand01='drand48()'
drand48_r_proto='0'
-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 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap re threads threads/shared'
+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 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attributes re threads threads/shared'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
@@ -546,7 +546,7 @@ 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 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap re threads threads/shared Errno'
+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 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attributes re threads threads/shared Errno'
extras=''
fflushNULL='define'
fflushall='undef'
@@ -736,7 +736,7 @@ issymlink='/usr/bin/test -h'
ivdformat='"ld"'
ivsize='4'
ivtype='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 Time/HiRes Unicode/Normalize XS/APItest XS/Typemap re threads threads/shared'
+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 Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attributes re threads threads/shared'
ksh=''
ld='arm-none-linux-gnueabi-gcc'
lddlflags='-shared -L/usr/local/lib'
diff --git a/MANIFEST b/MANIFEST
index b44b0213d7..e51cc33a32 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -88,6 +88,8 @@ ext/Attribute-Handlers/t/constants.t Test constants and Attribute::Handlers
ext/Attribute-Handlers/t/data_convert.t Test attribute data conversion
ext/Attribute-Handlers/t/linerep.t See if Attribute::Handlers works
ext/Attribute-Handlers/t/multi.t See if Attribute::Handlers works
+ext/attributes/attributes.pm For "sub foo : attrlist"
+ext/attributes/attributes.xs For "sub foo : attrlist"
ext/B/B/Concise.pm Compiler Concise backend
ext/B/B/Debug.pm Compiler Debug backend
ext/B/B/Deparse.pm Compiler Deparse backend
@@ -1768,7 +1770,6 @@ lib/Archive/Tar/t/src/short/bar.tar.packed Archive::Tar tests
lib/Archive/Tar/t/src/short/foo.tbz.packed Archive::Tar tests
lib/Archive/Tar/t/src/short/foo.tgz.packed Archive::Tar tests
lib/assert.pl assertion and panic with stack trace
-lib/attributes.pm For "sub foo : attrlist"
lib/autodie/exception.pm Exception class for autodie
lib/autodie/exception/system.pm Exception class for autodying system()
lib/autodie.pm Functions suceed or die with lexical scope
@@ -4522,4 +4523,3 @@ x2p/util.c Utility routines
x2p/util.h Public declarations for the above
x2p/walk.c Parse tree walker
XSUB.h Include file for extension subroutines
-xsutils.c Additional bundled package methods not in UNIVERSAL::
diff --git a/Makefile.SH b/Makefile.SH
index 0b8003900e..dd4ea3f6f0 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -439,7 +439,7 @@ h = $(h1) $(h2) $(h3) $(h4) $(h5)
c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c
c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
-c3 = taint.c toke.c util.c deb.c run.c universal.c xsutils.c pad.c globals.c
+c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c
c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c
c5 = $(madlysrc) $(mallocsrc)
@@ -448,7 +448,7 @@ c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c perlmini.c
obj0 = op$(OBJ_EXT) perl$(OBJ_EXT)
obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT)
obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
-obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) xsutils$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
+obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
diff --git a/Makefile.micro b/Makefile.micro
index 39b8c3dc39..86113322d7 100644
--- a/Makefile.micro
+++ b/Makefile.micro
@@ -21,7 +21,7 @@ O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udump$(_O) \
uregcomp$(_O) uregexec$(_O) urun$(_O) \
uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \
unumeric$(_O) ulocale$(_O) umathoms$(_O) \
- uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) uxsutils$(_O)
+ uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O)
microperl: $(O)
$(LD) -o $@ $(O) $(LDFLAGS) $(LIBS)
@@ -170,9 +170,6 @@ uutil$(_O): $(HE) util.c
uperlapi$(_O): $(HE) perlapi.c perlapi.h
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlapi.c
-uxsutils$(_O): $(HE) xsutils.c
- $(CC) $(CCFLAGS) -o $@ $(CFLAGS) xsutils.c
-
uudmap.h: generate_uudmap$(_X)
$(RUN) ./generate_uudmap$(_X) >uudmap.h
diff --git a/NetWare/Makefile b/NetWare/Makefile
index 6a5b2ac638..f22161698f 100644
--- a/NetWare/Makefile
+++ b/NetWare/Makefile
@@ -312,6 +312,7 @@ IO_NLM = $(AUTODIR)\IO\IO.NLM
OPCODE_NLM = $(AUTODIR)\Opcode\Opcode.NLM
SDBM_FILE_NLM = $(AUTODIR)\SDBM_File\SDBM_File.NLM
POSIX_NLM = $(AUTODIR)\POSIX\POSIX.NLM
+ATTRIBUTES_NLM = $(AUTODIR)\attributes\attributes.NLM
B_NLM = $(AUTODIR)\B\B.NLM
DUMPER_NLM = $(AUTODIR)\Data\Dumper\Dumper.NLM
PEEK_NLM = $(AUTODIR)\Devel\Peek\Peek.NLM
@@ -335,6 +336,7 @@ EXTENSION_NLM = \
$(SOCKET_NLM) \
$(OPCODE_NLM) \
$(B_NLM) \
+ $(ATTRIBUTES_NLM) \
$(SDBM_FILE_NLM) \
$(POSIX_NLM) \
$(DUMPER_NLM) \
@@ -722,8 +724,7 @@ MICROCORE_SRC = \
..\toke.c \
..\universal.c \
..\utf8.c \
- ..\util.c \
- ..\xsutils.c
+ ..\util.c
#EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
@@ -786,7 +787,7 @@ CORE_H = $(CORE_NOCFG_H) .\config.h
DLL_OBJ = $(DLL_SRC:.c=.obj)
X2P_OBJ = $(X2P_SRC:.c=.obj)
-DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX B re \
+DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
Storable/Storable List/Util MIME/Base64/Base64 XS/APItest/APItest \
XS/Typemap/Typemap Unicode/Normalize/Normalize Sys/Hostname
@@ -801,6 +802,7 @@ OPCODE = $(EXTDIR)\Opcode\Opcode
SDBM_FILE = $(EXTDIR)\SDBM_File\SDBM_File
IO = $(EXTDIR)\IO\IO
POSIX = $(EXTDIR)\POSIX\POSIX
+ATTRIBUTES = $(EXTDIR)\attributes\attributes
B = $(EXTDIR)\B\B
RE = $(EXTDIR)\re\re
DUMPER = $(EXTDIR)\Data\Dumper\Dumper
@@ -827,6 +829,7 @@ EXTENSION_C = \
$(SDBM_FILE).c \
$(IO).c \
$(POSIX).c \
+ $(ATTRIBUTES).c \
$(RE).c \
$(DUMPER).c \
$(PEEK).c \
@@ -1222,6 +1225,12 @@ $(POSIX_NLM):
$(MAKE)
cd ..\..\netware
+$(ATTRIBUTES_NLM):
+ cd $(EXTDIR)\$(*B)
+ ..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
+ $(MAKE)
+ cd ..\..\netware
+
$(SDBM_FILE_NLM):
cd $(EXTDIR)\$(*B)
..\..\miniperl -I..\..\lib Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
@@ -1387,7 +1396,7 @@ distclean: clean nwclean
-del /f /q $(EXTDIR)\DynaLoader\dl_win32.xs
-del /f /q $(EXTDIR)\DynaLoader\DynaLoader.pm
-del /f /q $(EXTDIR)\DynaLoader\XSLoader.pm
- -del /f /q $(LIBDIR)\.exists $(LIBDIR)\DynaLoader.pm
+ -del /f /q $(LIBDIR)\.exists $(LIBDIR)\attributes.pm $(LIBDIR)\DynaLoader.pm
-del /f /q $(LIBDIR)\XSLoader.pm
-del /f /q $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
-del /f /q $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm
diff --git a/NetWare/config.wc b/NetWare/config.wc
index 93fbb152ff..533a59fcd9 100644
--- a/NetWare/config.wc
+++ b/NetWare/config.wc
@@ -538,7 +538,7 @@ doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='Socket IO Fcntl Opcode SDBM_File'
+dynamic_ext='Socket IO Fcntl Opcode SDBM_File attributes'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
diff --git a/Porting/config.sh b/Porting/config.sh
index 8db9703456..1356481074 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -560,7 +560,7 @@ doublesize='8'
drand01='drand48()'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='B Compress/Raw/Zlib Cwd Data/Dumper DB_File Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util Math/BigInt/FastCalc MIME/Base64 NDBM_File ODBM_File Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex threads Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/Typemap threads/shared Hash/Util/FieldHash'
+dynamic_ext='attributes B Compress/Raw/Zlib Cwd Data/Dumper DB_File Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util Math/BigInt/FastCalc MIME/Base64 NDBM_File ODBM_File Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex threads Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/Typemap threads/shared Hash/Util/FieldHash'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
@@ -575,7 +575,7 @@ endservent_r_proto='0'
eunicefix=':'
exe_ext=''
expr='expr'
-extensions='B Compress/Raw/Zlib Cwd Data/Dumper DB_File Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util Math/BigInt/FastCalc MIME/Base64 NDBM_File ODBM_File Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex threads Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/Typemap threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Module/Pluggable Test/Harness'
+extensions='attributes B Compress/Raw/Zlib Cwd Data/Dumper DB_File Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util Math/BigInt/FastCalc MIME/Base64 NDBM_File ODBM_File Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex threads Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/Typemap threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Module/Pluggable Test/Harness'
extern_C='extern'
extras=''
fflushNULL='define'
@@ -767,7 +767,7 @@ issymlink='test -h'
ivdformat='"Ld"'
ivsize='8'
ivtype='long long'
-known_extensions='B Compress/Raw/Zlib Cwd Data/Dumper DB_File Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util Math/BigInt/FastCalc MIME/Base64 NDBM_File ODBM_File Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex threads Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap threads/shared Hash/Util/FieldHash'
+known_extensions='attributes B Compress/Raw/Zlib Cwd Data/Dumper DB_File Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util Math/BigInt/FastCalc MIME/Base64 NDBM_File ODBM_File Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex threads Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap threads/shared Hash/Util/FieldHash'
ksh=''
ld='cc'
lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'
diff --git a/README.symbian b/README.symbian
index 22b63852a8..341c0269fb 100644
--- a/README.symbian
+++ b/README.symbian
@@ -360,7 +360,7 @@ The Symbian port is licensed under the same terms as Perl itself.
DynaLoader Exporter File::Spec integer lib strict Symbol
vars warnings XSLoader
- The following extensions are available:
- Compress::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 DynaLoader
+ attributes Compress::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 DynaLoader
Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64
PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes
- The following extensions are missing for various technical reasons:
diff --git a/cflags.SH b/cflags.SH
index ef1c8b5b37..a5d71b928c 100755
--- a/cflags.SH
+++ b/cflags.SH
@@ -319,7 +319,6 @@ for file do
usersub) ;;
utf8) ;;
util) ;;
- xsutils) ;;
*) ;;
esac
diff --git a/embed.fnc b/embed.fnc
index 27dd26a396..7dae7636d1 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -1278,8 +1278,6 @@ Apr |void |newMYSUB |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NU
#endif
: Used in perly.y
p |OP * |my_attrs |NN OP *o|NULLOK OP *attrs
-: Only used in perl.c
-p |void |boot_core_xsutils
#if defined(USE_ITHREADS)
ApR |PERL_CONTEXT*|cx_dup |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param
ApR |PERL_SI*|si_dup |NULLOK PERL_SI* si|NN CLONE_PARAMS* param
diff --git a/embed.h b/embed.h
index 8e100f222f..09af299b1a 100644
--- a/embed.h
+++ b/embed.h
@@ -1113,7 +1113,6 @@
#endif
#ifdef PERL_CORE
#define my_attrs Perl_my_attrs
-#define boot_core_xsutils Perl_boot_core_xsutils
#endif
#if defined(USE_ITHREADS)
#define cx_dup Perl_cx_dup
@@ -3444,7 +3443,6 @@
#endif
#ifdef PERL_CORE
#define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b)
-#define boot_core_xsutils() Perl_boot_core_xsutils(aTHX)
#endif
#if defined(USE_ITHREADS)
#define cx_dup(a,b,c,d) Perl_cx_dup(aTHX_ a,b,c,d)
diff --git a/epoc/config.sh b/epoc/config.sh
index dc884a25ab..5d41313332 100644
--- a/epoc/config.sh
+++ b/epoc/config.sh
@@ -529,7 +529,7 @@ endservent_r_proto='0'
eunicefix=':'
exe_ext=''
expr='expr'
-extensions='Data/Dumper Digest/MD5 Errno Fcntl File/Glob Filter/Util/Call IO List/Util MIME/Base64 Opcode PerlIO/scalar Socket Storable Sys/Hostname Unicode/Storable re'
+extensions='Data/Dumper Digest/MD5 Errno Fcntl File/Glob Filter/Util/Call IO List/Util MIME/Base64 Opcode PerlIO/scalar Socket Storable Sys/Hostname Unicode/Storable attributes re'
fflushNULL='undef'
fflushall='define'
find=''
diff --git a/lib/attributes.pm b/ext/attributes/attributes.pm
index 216583a62b..701ff1b8e9 100644
--- a/lib/attributes.pm
+++ b/ext/attributes/attributes.pm
@@ -1,6 +1,6 @@
package attributes;
-our $VERSION = 0.10;
+our $VERSION = 0.11;
@EXPORT_OK = qw(get reftype);
@EXPORT = ();
@@ -18,16 +18,6 @@ sub carp {
goto &Carp::carp;
}
-## forward declaration(s) rather than wrapping the bootstrap call in BEGIN{}
-#sub reftype ($) ;
-#sub _fetch_attrs ($) ;
-#sub _guess_stash ($) ;
-#sub _modify_attrs ;
-#
-# The extra trips through newATTRSUB in the interpreter wipe out any savings
-# from avoiding the BEGIN block. Just do the bootstrap now.
-BEGIN { bootstrap attributes }
-
sub import {
@_ > 2 && ref $_[2] or do {
require Exporter;
@@ -73,8 +63,8 @@ sub get ($) {
@_ == 1 && ref $_[0] or
croak 'Usage: '.__PACKAGE__.'::get $ref';
my $svref = shift;
- my $svtype = uc reftype $svref;
- my $stash = _guess_stash $svref;
+ my $svtype = uc reftype($svref);
+ my $stash = _guess_stash($svref);
$stash = caller unless defined $stash;
my $pkgmeth;
$pkgmeth = UNIVERSAL::can($stash, "FETCH_${svtype}_ATTRIBUTES")
@@ -87,6 +77,9 @@ sub get ($) {
sub require_version { goto &UNIVERSAL::VERSION }
+require XSLoader;
+XSLoader::load('attributes', $VERSION);
+
1;
__END__
#The POD goes here
@@ -479,4 +472,3 @@ which this module replaces;
L<perlfunc/use> for details on the normal invocation mechanism.
=cut
-
diff --git a/xsutils.c b/ext/attributes/attributes.xs
index baf3858fc4..35ded7bd81 100644
--- a/xsutils.c
+++ b/ext/attributes/attributes.xs
@@ -17,43 +17,13 @@
#include "EXTERN.h"
-#define PERL_IN_XSUTILS_C
#include "perl.h"
+#include "XSUB.h"
/*
* Contributed by Spider Boardman (spider.boardman@orb.nashua.nh.us).
*/
-/* package attributes; */
-PERL_XS_EXPORT_C void XS_attributes_reftype(pTHX_ CV *cv);
-PERL_XS_EXPORT_C void XS_attributes__modify_attrs(pTHX_ CV *cv);
-PERL_XS_EXPORT_C void XS_attributes__guess_stash(pTHX_ CV *cv);
-PERL_XS_EXPORT_C void XS_attributes__fetch_attrs(pTHX_ CV *cv);
-PERL_XS_EXPORT_C void XS_attributes_bootstrap(pTHX_ CV *cv);
-
-
-/*
- * Note that only ${pkg}::bootstrap definitions should go here.
- * This helps keep down the start-up time, which is especially
- * relevant for users who don't invoke any features which are
- * (partially) implemented here.
- *
- * The various bootstrap definitions can take care of doing
- * package-specific newXS() calls. Since the layout of the
- * bundled *.pm files is in a version-specific directory,
- * version checks in these bootstrap calls are optional.
- */
-
-static const char file[] = __FILE__;
-
-void
-Perl_boot_core_xsutils(pTHX)
-{
- newXS("attributes::bootstrap", XS_attributes_bootstrap, file);
-}
-
-#include "XSUB.h"
-
static int
modify_SV_attributes(pTHX_ SV *sv, SV **retlist, SV **attrlist, int numattrs)
{
@@ -142,31 +112,13 @@ modify_SV_attributes(pTHX_ SV *sv, SV **retlist, SV **attrlist, int numattrs)
return nret;
}
+MODULE = attributes PACKAGE = attributes
-
-/* package attributes; */
-
-XS(XS_attributes_bootstrap)
-{
- dVAR;
- dXSARGS;
-
- if( items > 1 )
- croak_xs_usage(cv, "$module");
-
- newXS("attributes::_modify_attrs", XS_attributes__modify_attrs, file);
- newXSproto("attributes::_guess_stash", XS_attributes__guess_stash, file, "$");
- newXSproto("attributes::_fetch_attrs", XS_attributes__fetch_attrs, file, "$");
- newXSproto("attributes::reftype", XS_attributes_reftype, file, "$");
-
- XSRETURN(0);
-}
-
-XS(XS_attributes__modify_attrs)
-{
- dVAR;
- dXSARGS;
+void
+_modify_attrs(...)
+ PREINIT:
SV *rv, *sv;
+ PPCODE:
if (items < 1) {
usage:
@@ -181,22 +133,19 @@ usage:
XSRETURN(modify_SV_attributes(aTHX_ sv, &ST(0), &ST(1), items-1));
XSRETURN(0);
-}
-XS(XS_attributes__fetch_attrs)
-{
- dVAR;
- dXSARGS;
+void
+_fetch_attrs(...)
+ PREINIT:
SV *rv, *sv;
cv_flags_t cvflags;
-
+ PPCODE:
if (items != 1) {
usage:
croak_xs_usage(cv, "$reference");
}
rv = ST(0);
- SP -= items;
if (!(SvOK(rv) && SvROK(rv)))
goto usage;
sv = SvRV(rv);
@@ -222,15 +171,13 @@ usage:
}
PUTBACK;
-}
-XS(XS_attributes__guess_stash)
-{
- dVAR;
- dXSARGS;
+void
+_guess_stash(...)
+ PREINIT:
SV *rv, *sv;
dXSTARG;
-
+ PPCODE:
if (items != 1) {
usage:
croak_xs_usage(cv, "$reference");
@@ -270,15 +217,13 @@ usage:
SvSETMAGIC(TARG);
XSRETURN(1);
-}
-XS(XS_attributes_reftype)
-{
- dVAR;
- dXSARGS;
+void
+reftype(...)
+ PREINIT:
SV *rv, *sv;
dXSTARG;
-
+ PPCODE:
if (items != 1) {
usage:
croak_xs_usage(cv, "$reference");
@@ -294,8 +239,6 @@ usage:
SvSETMAGIC(TARG);
XSRETURN(1);
-}
-
/*
* Local variables:
* c-indentation-style: bsd
@@ -304,4 +247,4 @@ usage:
* End:
*
* ex: set ts=8 sts=4 sw=4 noet:
- */
+ */ \ No newline at end of file
diff --git a/hints/uwin.sh b/hints/uwin.sh
index 64357c29e6..5e50179e9f 100644
--- a/hints/uwin.sh
+++ b/hints/uwin.sh
@@ -32,7 +32,7 @@
#b # compile/link flags
#b ldflags=-g
#b optimize=-g
-#b static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter::Util::Call IO IPC/SysV MIME::Base64 Opcode PerlIO::scalar POSIX SDBM_File Socket Storable Unicode::Normalize re"
+#b static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter::Util::Call IO IPC/SysV MIME::Base64 Opcode PerlIO::scalar POSIX SDBM_File Socket Storable Unicode::Normalize attributes re"
#b #static_ext=none
#b # dynamic loading needs work
#b usedl=undef
@@ -109,7 +109,7 @@ optimize=-g
# Original, with :: separators, cause make to choke.
# No longer seems to be necessary at all.
-# static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter/Util/Call IO IPC/SysV MIME/Base64 Opcode PerlIO/scalar POSIX SDBM_File Socket Storable Unicode/Normalize re"
+# static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter/Util/Call IO IPC/SysV MIME/Base64 Opcode PerlIO/scalar POSIX SDBM_File Socket Storable Unicode/Normalize attributes re"
# perl malloc will not work
usemymalloc=n
diff --git a/hints/vmesa.sh b/hints/vmesa.sh
index 27ab123303..430ded9c48 100644
--- a/hints/vmesa.sh
+++ b/hints/vmesa.sh
@@ -322,7 +322,7 @@ 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,2
sizetype='size_t'
so='.a'
ssizetype='ssize_t'
-static_ext='Data/Dumper Digest/MD5 Fcntl Filter/Util/Call GDBM_File IO IPC/SysV List/Util MIME/Base64 NDBM_File Opcode PerlIO/scalar POSIX Socket Storable Time/HiRes Time/Piece re'
+static_ext='Data/Dumper Digest/MD5 Fcntl Filter/Util/Call GDBM_File IO IPC/SysV List/Util MIME/Base64 NDBM_File Opcode PerlIO/scalar POSIX Socket Storable Time/HiRes Time/Piece attributes re'
stdchar='char'
stdio_cnt='(fp)->__countIn'
stdio_ptr='(fp)->__bufPtr'
diff --git a/perl.c b/perl.c
index 32c0a48562..701b010484 100644
--- a/perl.c
+++ b/perl.c
@@ -2028,7 +2028,6 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
boot_core_PerlIO();
boot_core_UNIVERSAL();
- boot_core_xsutils();
boot_core_mro();
if (xsinit)
diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample
index 2228c61d1e..eda91c1f00 100644
--- a/plan9/config_sh.sample
+++ b/plan9/config_sh.sample
@@ -560,7 +560,7 @@ 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 IO List/Util MIME/Base64 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize re threads threads/shared Encode/Byte Encode/CN Encode/EBCDIC Encode/JP Encode/KR Encode/Symbol Encode/TW Encode/Unicode Errno'
+extensions='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO List/Util MIME/Base64 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize attributes re threads threads/shared Encode/Byte Encode/CN Encode/EBCDIC Encode/JP Encode/KR Encode/Symbol Encode/TW Encode/Unicode Errno'
extras=''
fflushNULL='define'
fflushall='undef'
@@ -733,7 +733,7 @@ issymlink='/bin/test -h'
ivdformat='"ld"'
ivsize='4'
ivtype='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 Time/HiRes Unicode/Normalize XS/APItest XS/Typemap re threads threads/shared'
+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 Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attributes re threads threads/shared'
ksh=''
ld='ld'
lddlflags=''
@@ -933,7 +933,7 @@ src='.'
ssizetype='ssize_t'
startperl='#!/bin/perl'
startsh='#!/bin/sh'
-static_ext='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO List/Util MIME/Base64 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize re threads threads/shared Encode/Byte Encode/CN Encode/EBCDIC Encode/JP Encode/KR Encode/Symbol Encode/TW Encode/Unicode'
+static_ext='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO List/Util MIME/Base64 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize attributes re threads threads/shared Encode/Byte Encode/CN Encode/EBCDIC Encode/JP Encode/KR Encode/Symbol Encode/TW Encode/Unicode'
stdchar='char'
stdio_base='((fp)->_base)'
stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
diff --git a/plan9/mkfile b/plan9/mkfile
index 54ea5a8dd5..47866d5ef4 100644
--- a/plan9/mkfile
+++ b/plan9/mkfile
@@ -35,7 +35,7 @@ ext_xs = IO.xs Socket.xs Opcode.xs dl_none.xs Fcntl.xs POSIX.xs
ext_c = ${ext_xs:%.xs=%.c}
ext_obj = ${ext_xs:%.xs=%.$O}
-obj = av.$O deb.$O doio.$O doop.$O dump.$O globals.$O gv.$O hv.$O locale.$O malloc.$O mathoms.$O mg.$O numeric.$O op.$O pad.$O perlapi.$O perlio.$O perly.$O pp.$O pp_ctl.$O pp_hot.$O pp_pack.$O pp_sort.$O pp_sys.$O reentr.$O regcomp.$O regexec.$O run.$O scope.$O sv.$O taint.$O toke.$O universal.$O utf8.$O util.$O xsutils.$O
+obj = av.$O deb.$O doio.$O doop.$O dump.$O globals.$O gv.$O hv.$O locale.$O malloc.$O mathoms.$O mg.$O numeric.$O op.$O pad.$O perlapi.$O perlio.$O perly.$O pp.$O pp_ctl.$O pp_hot.$O pp_pack.$O pp_sort.$O pp_sys.$O reentr.$O regcomp.$O regexec.$O run.$O scope.$O sv.$O taint.$O toke.$O universal.$O utf8.$O util.$O
OBJS = perl.$O plan9.$O $obj
diff --git a/proto.h b/proto.h
index 552b9f66d9..520b6fae93 100644
--- a/proto.h
+++ b/proto.h
@@ -4028,7 +4028,6 @@ PERL_CALLCONV OP * Perl_my_attrs(pTHX_ OP *o, OP *attrs)
#define PERL_ARGS_ASSERT_MY_ATTRS \
assert(o)
-PERL_CALLCONV void Perl_boot_core_xsutils(pTHX);
#if defined(USE_ITHREADS)
PERL_CALLCONV PERL_CONTEXT* Perl_cx_dup(pTHX_ PERL_CONTEXT* cx, I32 ix, I32 max, CLONE_PARAMS* param)
__attribute__warn_unused_result__
diff --git a/symbian/config.pl b/symbian/config.pl
index 09c316faba..22a42c4058 100644
--- a/symbian/config.pl
+++ b/symbian/config.pl
@@ -717,7 +717,7 @@ perl${VERSION}lib.sis perllib.sis: \$(PM)
perl${VERSION}ext.sis perlext.sis: perldll_arm buildext_sis
perl symbian\\makesis.pl perl${VERSION}ext
-EXT = Compress::Raw::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes XSLoader
+EXT = Compress::Raw::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes XSLoader attributes
buildext: perldll symbian\\xsbuild.pl lib\\Config.pm
perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) \$(EXT)
diff --git a/symbian/install.cfg b/symbian/install.cfg
index cdfe80a266..4b86b8211e 100644
--- a/symbian/install.cfg
+++ b/symbian/install.cfg
@@ -69,6 +69,7 @@ lib warnings/register.pm
#
# Extensions.
#
+ext attributes
ext Compress/Raw/Zlib -zlib-src
ext Cwd
ext Data/Dumper
diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template
index 6595a318ad..b8ea2c11b0 100644
--- a/vms/descrip_mms.template
+++ b/vms/descrip_mms.template
@@ -281,14 +281,14 @@ FULLLIBS2 = $(LIBS2)|$(THRLIBS1)|$(THRLIBS2)
c0 = $(MALLOC_C) $(SOCKC) av.c deb.c doio.c doop.c dump.c globals.c gv.c hv.c mro.c
c1 = mg.c locale.c mathoms.c miniperlmain.c numeric.c op.c pad.c perl.c perlapi.c perlio.c
c2 = perly.c pp.c pp_ctl.c pp_hot.c pp_pack.c pp_sort.c pp_sys.c regcomp.c regexec.c reentr.c
-c3 = run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c vms.c xsutils.c
+c3 = run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c vms.c
c = $(c0) $(c1) $(c2) $(c3)
obj0 = perl$(O)
obj1 = $(MALLOC_O) $(SOCKO) av$(O) deb$(O) doio$(O) doop$(O) dump$(O) mro$(O) globals$(O) gv$(O) hv$(O)
obj2 = locale$(O) mathoms$(O) mg$(O) miniperlmain$(O) numeric$(O) op$(O) pad$(O) perlapi$(O) perlio$(O)
obj3 = perly$(O) pp$(O) pp_ctl$(O) pp_hot$(O) reentr$(O) pp_pack$(O) pp_sort$(O) pp_sys$(O) regcomp$(O)
-obj4 = regexec$(O) run$(O) scope$(O) sv$(O) taint$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O) xsutils$(O)
+obj4 = regexec$(O) run$(O) scope$(O) sv$(O) taint$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O)
mini_obj = perlmini$(O) $(obj1) $(obj2) $(obj3) $(obj4)
obj = $(obj0) $(obj1) $(obj2) $(obj3) $(obj4)
@@ -1743,8 +1743,6 @@ util$(O) : util.c $(h)
$(CC) $(CORECFLAGS) $(MMS$SOURCE)
vms$(O) : vms.c $(h)
$(CC) $(CORECFLAGS) $(MMS$SOURCE)
-xsutils$(O) : xsutils.c $(h)
- $(CC) $(CORECFLAGS) $(MMS$SOURCE)
[.x2p]hash$(O) : [.x2p]hash.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h $(SOCKH)
$(CC) $(X2PCFLAGS) $(MMS$SOURCE)
diff --git a/win32/Makefile b/win32/Makefile
index a72448263f..3de30cb2ea 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -688,8 +688,7 @@ MICROCORE_SRC = \
..\toke.c \
..\universal.c \
..\utf8.c \
- ..\util.c \
- ..\xsutils.c
+ ..\util.c
EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
@@ -1154,7 +1153,7 @@ distclean: realclean
-del /f $(EXTDIR)\DynaLoader\XSLoader.pm
-del /f $(LIBDIR)\Encode.pm $(LIBDIR)\encoding.pm $(LIBDIR)\Errno.pm
-del /f $(LIBDIR)\Config.pod $(LIBDIR)\POSIX.pod $(LIBDIR)\threads.pm
- -del /f $(LIBDIR)\.exists $(LIBDIR)\DynaLoader.pm
+ -del /f $(LIBDIR)\.exists $(LIBDIR)\attributes.pm $(LIBDIR)\DynaLoader.pm
-del /f $(LIBDIR)\XSLoader.pm $(LIBDIR)\lib.pm
-del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
-del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm
diff --git a/win32/Makefile.ce b/win32/Makefile.ce
index cb96f332b8..7b5c2bcdab 100644
--- a/win32/Makefile.ce
+++ b/win32/Makefile.ce
@@ -593,8 +593,7 @@ MICROCORE_SRC = \
..\toke.c \
..\universal.c \
..\utf8.c \
- ..\util.c \
- ..\xsutils.c
+ ..\util.c
EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
@@ -654,7 +653,7 @@ CORE_NOCFG_H = \
.\include\sys\socket.h \
.\win32.h
-DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX B re \
+DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
Sys/Hostname
@@ -822,7 +821,6 @@ $(DLLDIR)\win32thread.obj \
$(DLLDIR)\wince.obj \
$(DLLDIR)\win32io.obj \
$(DLLDIR)\wincesck.obj \
-$(DLLDIR)\xsutils.obj \
$(DLLDIR)\perllib.obj \
$(DLLDIR)\DynaLoader.obj
!IF "$(PERL_MALLOC)" == "define"
diff --git a/win32/config.bc b/win32/config.bc
index 37cc9c6781..6743f14de7 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -534,7 +534,7 @@ doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='Socket IO Fcntl Opcode SDBM_File'
+dynamic_ext='Socket IO Fcntl Opcode SDBM_File attributes'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
diff --git a/win32/config.ce b/win32/config.ce
index 6cb5b37643..cee1175077 100644
--- a/win32/config.ce
+++ b/win32/config.ce
@@ -536,7 +536,7 @@ doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='Socket IO Fcntl Opcode SDBM_File'
+dynamic_ext='Socket IO Fcntl Opcode SDBM_File attributes'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
diff --git a/win32/config.gc b/win32/config.gc
index 64e97423f1..018f17499f 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -534,7 +534,7 @@ doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='Socket IO Fcntl Opcode SDBM_File'
+dynamic_ext='Socket IO Fcntl Opcode SDBM_File attributes'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
diff --git a/win32/config.vc b/win32/config.vc
index c893c9100e..e0c6354051 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -534,7 +534,7 @@ doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='Socket IO Fcntl Opcode SDBM_File'
+dynamic_ext='Socket IO Fcntl Opcode SDBM_File attributes'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
diff --git a/win32/config.vc64 b/win32/config.vc64
index a8e409b22b..44ab7f297c 100644
--- a/win32/config.vc64
+++ b/win32/config.vc64
@@ -534,7 +534,7 @@ doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
dtrace=''
-dynamic_ext='Socket IO Fcntl Opcode SDBM_File'
+dynamic_ext='Socket IO Fcntl Opcode SDBM_File attributes'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 78c546ebf5..915d8b9e9e 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -846,8 +846,7 @@ MICROCORE_SRC = \
..\toke.c \
..\universal.c \
..\utf8.c \
- ..\util.c \
- ..\xsutils.c
+ ..\util.c
EXTRACORE_SRC += perllib.c
@@ -1476,7 +1475,7 @@ distclean: realclean
-del /f $(EXTDIR)\DynaLoader\XSLoader.pm
-del /f $(LIBDIR)\Encode.pm $(LIBDIR)\encoding.pm $(LIBDIR)\Errno.pm
-del /f $(LIBDIR)\Config.pod $(LIBDIR)\POSIX.pod $(LIBDIR)\threads.pm
- -del /f $(LIBDIR)\.exists $(LIBDIR)\DynaLoader.pm
+ -del /f $(LIBDIR)\.exists $(LIBDIR)\attributes.pm $(LIBDIR)\DynaLoader.pm
-del /f $(LIBDIR)\XSLoader.pm $(LIBDIR)\lib.pm
-del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
-del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm