summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-05-31 21:37:31 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-05-31 21:37:31 +0000
commit12ae5dfcd4fd6f54af051c41b2e122532efce8d3 (patch)
tree2fe5b75e9e17313b9f06548e1f8abc866cbaee6d
parentd6c1400008ffe28d0a765e9fe60d23dbeab89dda (diff)
downloadperl-12ae5dfcd4fd6f54af051c41b2e122532efce8d3.tar.gz
microperl changes from Simon Cozens; Makefile for microperl
written from scratch; few casts added as microperl compilation doesn't have all prototypes available. p4raw-id: //depot/cfgperl@6174
-rwxr-xr-xConfigure2
-rw-r--r--MAINTAIN4
-rw-r--r--MANIFEST4
-rw-r--r--Makefile.micro125
-rw-r--r--README.micro9
-rw-r--r--Todo.micro15
-rw-r--r--config_h.SH28
-rw-r--r--doop.c2
-rw-r--r--op.c7
-rw-r--r--perl.h22
-rw-r--r--perlio.c6
-rwxr-xr-xuconfig.sh550
-rw-r--r--unixish.h4
-rw-r--r--utf8.c2
-rw-r--r--util.c17
15 files changed, 771 insertions, 26 deletions
diff --git a/Configure b/Configure
index fc3ea300c0..19c83a0434 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Wed May 31 01:51:16 EET DST 2000 [metaconfig 3.0 PL70]
+# Generated on Wed May 31 23:34:04 EET DST 2000 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.com)
cat >/tmp/c1$$ <<EOF
diff --git a/MAINTAIN b/MAINTAIN
index 60ed01e42a..ae4df30f83 100644
--- a/MAINTAIN
+++ b/MAINTAIN
@@ -31,6 +31,7 @@ INSTALL
INTERN.h
MANIFEST
Makefile.SH
+Makefile.micro simon
objXSUB.h
Policy_sh.SH
Porting/* cfg
@@ -56,6 +57,7 @@ README.dos dos
README.hpux hpux
README.lexwarn lexwarn
README.machten machten
+README.micro simon
README.mpeix mpeix
README.os2 os2
README.os390 mvs
@@ -69,6 +71,7 @@ README.vos vos
README.win32 win32
Todo
Todo-5.005
+Todo.micro simon
XSlock.h
XSUB.h
av.c
@@ -845,6 +848,7 @@ taint.c
thrdvar.h
thread.h
toke.c
+uconfig.sh simon
universal.c
unixish.h
utf* lwall
diff --git a/MANIFEST b/MANIFEST
index e671b82950..5a85148838 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -16,6 +16,7 @@ INTERN.h Included before domestic .h files
MAINTAIN Who maintains which files
MANIFEST This list of files
Makefile.SH A script that generates Makefile
+Makefile.micro microperl Makefile
Policy_sh.SH Hold site-wide preferences between Configure runs.
Porting/Contract Social contract for contributed modules in Perl core
Porting/Glossary Glossary of config.sh variables
@@ -42,6 +43,7 @@ README.epoc Notes about EPOC port
README.hpux Notes about HP-UX port
README.hurd Notes about GNU/Hurd port
README.machten Notes about Power MachTen port
+README.micro Notes about microperl
README.mint Notes about Atari MiNT port
README.mpeix Notes about MPE/iX port
README.os2 Notes about OS/2 port
@@ -56,6 +58,7 @@ README.vos Notes about Stratus VOS port
README.win32 Notes about Win32 port
Todo The Wishlist
Todo-5.6 What needs doing before/during the 5.6.x release cycle
+Todo.micro The Wishlist for microperl
XSUB.h Include file for extension subroutines
apollo/netinet/in.h Apollo DomainOS port: C header file frontend
av.c Array value code
@@ -1560,6 +1563,7 @@ taint.c Tainting code
thrdvar.h Per-thread variables
thread.h Threading header
toke.c The tokener
+uconfig.sh COnfiguration for microperl
universal.c The default UNIVERSAL package methods
unixish.h Defines that are assumed on Unix
utf8.c Unicode routines
diff --git a/Makefile.micro b/Makefile.micro
new file mode 100644
index 0000000000..1ac87b4ed7
--- /dev/null
+++ b/Makefile.micro
@@ -0,0 +1,125 @@
+CC = cc
+LD = $(CC)
+DEFINES = -DPERL_CORE -DPERL_MICRO
+CFLAGS = $(DEFINES)
+LIBS = -lm
+_O = .o
+
+all: microperl
+
+O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udump$(_O) \
+ uglobals$(_O) ugv$(_O) uhv$(_O) \
+ umg$(_O) uperlmain$(_O) uop$(_O) \
+ uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
+ upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) \
+ uregcomp$(_O) uregexec$(_O) urun$(_O) \
+ uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \
+ uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O)
+
+microperl: $(O)
+ $(LD) -o $@ $(O) $(LIBS)
+
+H = av.h uconfig.h cop.h cv.h embed.h embedvar.h form.h gv.h handy.h \
+ hv.h intrpvar.h iperlsys.h mg.h op.h opcode.h opnames.h patchlevel.h \
+ perl.h perlsdio.h perlvars.h perly.h pp.h pp_proto.h proto.h \
+ regexp.h scope.h sv.h thrdvar.h thread.h unixish.h utf8.h util.h \
+ warnings.h
+
+HE = $(H) EXTERN.h
+
+clean:
+ -rm -f $(O) microperl
+
+distclean: clean
+ -rm -f uconfig.h
+
+uconfig.h: uconfig.sh config_h.SH
+ CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH
+
+uav$(_O): $(HE) av.c
+ $(CC) -c -o $@ $(CFLAGS) av.c
+
+udeb$(_O): $(HE) deb.c
+ $(CC) -c -o $@ $(CFLAGS) deb.c
+
+udoio$(_O): $(HE) doio.c
+ $(CC) -c -o $@ $(CFLAGS) doio.c
+
+udoop$(_O): $(HE) doop.c
+ $(CC) -c -o $@ $(CFLAGS) doop.c
+
+udump$(_O): $(HE) dump.c regcomp.h regnodes.h
+ $(CC) -c -o $@ $(CFLAGS) dump.c
+
+uglobals$(_O): $(H) globals.c INTERN.h perlapi.h
+ $(CC) -c -o $@ $(CFLAGS) globals.c
+
+ugv$(_O): $(HE) gv.c
+ $(CC) -c -o $@ $(CFLAGS) gv.c
+
+uhv$(_O): $(HE) hv.c
+ $(CC) -c -o $@ $(CFLAGS) hv.c
+
+umg$(_O): $(HE) mg.c
+ $(CC) -c -o $@ $(CFLAGS) mg.c
+
+uperlmain$(_O): $(HE) miniperlmain.c
+ $(CC) -c -o $@ $(CFLAGS) miniperlmain.c
+
+uop$(_O): $(HE) op.c keywords.h
+ $(CC) -c -o $@ $(CFLAGS) op.c
+
+uperl$(_O): $(HE) perl.c
+ $(CC) -c -o $@ $(CFLAGS) perl.c
+
+uperlio$(_O): $(HE) perlio.c
+ $(CC) -c -o $@ $(CFLAGS) perlio.c
+
+uperly$(_O): $(HE) perly.c
+ $(CC) -c -o $@ $(CFLAGS) perly.c
+
+upp$(_O): $(HE) pp.c
+ $(CC) -c -o $@ $(CFLAGS) pp.c
+
+upp_ctl$(_O): $(HE) pp_ctl.c
+ $(CC) -c -o $@ $(CFLAGS) pp_ctl.c
+
+upp_hot$(_O): $(HE) pp_hot.c
+ $(CC) -c -o $@ $(CFLAGS) pp_hot.c
+
+upp_sys$(_O): $(HE) pp_sys.c
+ $(CC) -c -o $@ $(CFLAGS) pp_sys.c
+
+uregcomp$(_O): $(HE) regcomp.c regcomp.h regnodes.h INTERN.h
+ $(CC) -c -o $@ $(CFLAGS) regcomp.c
+
+uregexec$(_O): $(HE) regexec.c regcomp.h regnodes.h
+ $(CC) -c -o $@ $(CFLAGS) regexec.c
+
+urun$(_O): $(HE) run.c
+ $(CC) -c -o $@ $(CFLAGS) run.c
+
+uscope$(_O): $(HE) scope.c
+ $(CC) -c -o $@ $(CFLAGS) scope.c
+
+usv$(_O): $(HE) sv.c
+ $(CC) -c -o $@ $(CFLAGS) sv.c
+
+utaint$(_O): $(HE) taint.c
+ $(CC) -c -o $@ $(CFLAGS) taint.c
+
+utoke$(_O): $(HE) toke.c keywords.h
+ $(CC) -c -o $@ $(CFLAGS) toke.c
+
+uuniversal$(_O): $(HE) universal.c objXSUB.h XSUB.h
+ $(CC) -c -o $@ $(CFLAGS) universal.c
+
+uutf8$(_O): $(HE) utf8.c
+ $(CC) -c -o $@ $(CFLAGS) utf8.c
+
+uutil$(_O): $(HE) util.c
+ $(CC) -c -o $@ $(CFLAGS) util.c
+
+uperlapi$(_O): $(HE) perlapi.c perlapi.h
+ $(CC) -c -o $@ $(CFLAGS) perlapi.c
+
diff --git a/README.micro b/README.micro
new file mode 100644
index 0000000000..da84453bf6
--- /dev/null
+++ b/README.micro
@@ -0,0 +1,9 @@
+microperl is supposed to be able a really minimal perl, even more
+minimal than miniperl. No Configure is needed to build microperl,
+on the other hand this means that interfaces between Perl and your
+operating system are left very -- minimal.
+
+All this is experimental. If you don't know what to do with microperl
+you probably shouldn't.
+
+
diff --git a/Todo.micro b/Todo.micro
new file mode 100644
index 0000000000..a01e8287a7
--- /dev/null
+++ b/Todo.micro
@@ -0,0 +1,15 @@
+- make creating uconfig.sh automatic (by pumpkin)
+
+- make creating Makefile.micro automatic (by pumpkin)
+
+- clean up compilation warnings as much as possible:
+ most of them seem to stem from not including enough headers (this is okay)
+ to have enough prototypes, these may be correctible with some simple casts
+
+- do away with signals? (not very portable outside UNIX lands)
+ (missing signal API prototypes cause the majority of the compilation
+ warnings anyway) do away with fork?
+
+- some of the micro/config.sh really needs to be probed in buildtime:
+ (uConfigure? :-) native datatype widths and endianness come to mind
+
diff --git a/config_h.SH b/config_h.SH
index c535105027..122cabe262 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -1,29 +1,35 @@
+case "$CONFIG_SH" in
+'') CONFIG_SH=config.sh ;;
+esac
+case "$CONFIG_H" in
+'') CONFIG_H=config.h ;;
+esac
case $CONFIG in
'')
- if test -f config.sh; then TOP=.;
- elif test -f ../config.sh; then TOP=..;
- elif test -f ../../config.sh; then TOP=../..;
- elif test -f ../../../config.sh; then TOP=../../..;
- elif test -f ../../../../config.sh; then TOP=../../../..;
+ if test -f $CONFIG_SH; then TOP=.;
+ elif test -f ../$CONFIG_SH; then TOP=..;
+ elif test -f ../../$CONFIG_SH; then TOP=../..;
+ elif test -f ../../../$CONFIG_SH; then TOP=../../..;
+ elif test -f ../../../../$CONFIG_SH; then TOP=../../../..;
else
- echo "Can't find config.sh."; exit 1
+ echo "Can't find $CONFIG_SH."; exit 1
fi
- . $TOP/config.sh
+ . $TOP/$CONFIG_SH
;;
esac
case "$0" in
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
esac
-echo "Extracting config.h (with variable substitutions)"
-sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
+echo "Extracting $CONFIG_H (with variable substitutions)"
+sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
/*
* This file was produced by running the config_h.SH script, which
- * gets its values from config.sh, which is generally produced by
+ * gets its values from $CONFIG_SH, which is generally produced by
* running Configure.
*
* Feel free to modify any of this as the need arises. Note, however,
* that running config_h.SH again will wipe out any changes you've made.
- * For a more permanent change edit config.sh and rerun config_h.SH.
+ * For a more permanent change edit $CONFIG_SH and rerun config_h.SH.
*
* \$Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $
*/
diff --git a/doop.c b/doop.c
index 4224b0ea13..c79b435171 100644
--- a/doop.c
+++ b/doop.c
@@ -851,7 +851,7 @@ Perl_do_vecset(pTHX_ SV *sv)
len = (offset + size + 7) / 8; /* required number of bytes */
if (len > targlen) {
s = (unsigned char*)SvGROW(targ, len + 1);
- (void)memzero(s + targlen, len - targlen + 1);
+ (void)memzero((char *)(s + targlen), len - targlen + 1);
SvCUR_set(targ, len);
}
diff --git a/op.c b/op.c
index c7da1c58eb..39a9b18ad9 100644
--- a/op.c
+++ b/op.c
@@ -2645,12 +2645,13 @@ Perl_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
}
if (!squash) {
if (to_utf && from_utf) { /* only counting characters */
- if (t == r || (tlen == rlen && memEQ(t, r, tlen)))
+ if (t == r ||
+ (tlen == rlen && memEQ((char *)t, (char *)r, tlen)))
o->op_private |= OPpTRANS_IDENTICAL;
}
else { /* straight latin-1 translation */
- if (tlen == 4 && memEQ(t, "\0\377\303\277", 4) &&
- rlen == 4 && memEQ(r, "\0\377\303\277", 4))
+ if (tlen == 4 && memEQ((char *)t, "\0\377\303\277", 4) &&
+ rlen == 4 && memEQ((char *)r, "\0\377\303\277", 4))
o->op_private |= OPpTRANS_IDENTICAL;
}
}
diff --git a/perl.h b/perl.h
index 386010752e..b26d6f4f04 100644
--- a/perl.h
+++ b/perl.h
@@ -21,7 +21,11 @@
#endif /* PERL_FOR_X2P */
#define VOIDUSED 1
-#include "config.h"
+#ifdef PERL_MICRO
+# include "uconfig.h"
+#else
+# include "config.h"
+#endif
#if defined(USE_ITHREADS) && defined(USE_5005THREADS)
# include "error: USE_ITHREADS and USE_5005THREADS are incompatible"
@@ -460,6 +464,10 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER));
#undef METHOD
#endif
+#ifdef PERL_MICRO
+# define NO_LOCALE
+#endif
+
#ifdef I_LOCALE
# include <locale.h>
#endif
@@ -593,6 +601,7 @@ struct perl_mstats {
# endif
# endif
#else
+# undef memset
# define memset(d,c,l) my_memset(d,c,l)
#endif /* HAS_MEMSET */
@@ -812,6 +821,12 @@ struct perl_mstats {
# endif
#endif
+#ifdef PERL_MICRO
+# ifndef DIR
+# define DIR void
+# endif
+#endif
+
#ifdef FPUTS_BOTCH
/* work around botch in SunOS 4.0.1 and 4.0.2 */
# ifndef fputs
@@ -1597,6 +1612,11 @@ typedef struct ptr_tbl PTR_TBL_t;
# endif
#endif
+#ifdef PERL_MICRO
+# undef HAS_PASSWD
+# undef HAS_GROUP
+#endif
+
#ifndef PERL_SYS_INIT3
# define PERL_SYS_INIT3(argvp,argcp,envp) PERL_SYS_INIT(argvp,argcp)
#endif
diff --git a/perlio.c b/perlio.c
index 6945a75069..a88daa5e02 100644
--- a/perlio.c
+++ b/perlio.c
@@ -9,7 +9,11 @@
#define VOIDUSED 1
-#include "config.h"
+#ifdef PERL_MICRO
+# include "uconfig.h"
+#else
+# include "config.h"
+#endif
#define PERLIO_NOT_STDIO 0
#if !defined(PERLIO_IS_STDIO) && !defined(USE_SFIO)
diff --git a/uconfig.sh b/uconfig.sh
new file mode 100755
index 0000000000..7b821459f3
--- /dev/null
+++ b/uconfig.sh
@@ -0,0 +1,550 @@
+#!/bin/sh
+_a='.a'
+_o='.o'
+afs='false'
+alignbytes='4'
+apiversion='5.00563'
+archlib='/usr/local/lib/perl5/5.00563/unknown'
+archlibexp='/usr/local/lib/perl5/5.00563/unknown'
+archname='unknown'
+bin='/usr/local/bin'
+bincompat5005='define'
+byteorder='12'
+castflags='0'
+charsize='1'
+clocktype='clock_t'
+cpp_stuff='42'
+crosscompile='undef'
+d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+d_PRIEldbl='undef'
+d_PRIFldbl='undef'
+d_PRIGldbl='undef'
+d_PRIX64='undef'
+d_PRId64='undef'
+d_PRIeldbl='undef'
+d_PRIfldbl='undef'
+d_PRIgldbl='undef'
+d_PRIi64='undef'
+d_PRIo64='undef'
+d_PRIu64='undef'
+d_PRIx64='undef'
+d_access='undef'
+d_accessx='undef'
+d_alarm='undef'
+d_archlib='undef'
+d_atolf='undef'
+d_atoll='undef'
+d_attribut='undef'
+d_bcmp='undef'
+d_bcopy='undef'
+d_bincompat5005='undef'
+d_bsd='undef'
+d_bsdgetpgrp='undef'
+d_bsdsetpgrp='undef'
+d_bzero='undef'
+d_casti32='undef'
+d_castneg='undef'
+d_charvspr='undef'
+d_chown='undef'
+d_chroot='undef'
+d_chsize='undef'
+d_closedir='undef'
+d_const='undef'
+d_crypt='undef'
+d_csh='undef'
+d_cuserid='undef'
+d_dbl_dig='undef'
+d_difftime='undef'
+d_dirnamlen='undef'
+d_dlerror='undef'
+d_dlopen='undef'
+d_dlsymun='undef'
+d_dosuid='undef'
+d_drand48proto='undef'
+d_dup2='undef'
+d_eaccess='undef'
+d_endgrent='undef'
+d_endhent='undef'
+d_endnent='undef'
+d_endpent='undef'
+d_endpwent='undef'
+d_endsent='undef'
+d_endspent='undef'
+d_eofnblk='undef'
+d_eunice='undef'
+d_fchmod='undef'
+d_fchown='undef'
+d_fcntl='undef'
+d_fd_macros='undef'
+d_fd_set='undef'
+d_fds_bits='undef'
+d_fgetpos='undef'
+d_flexfnam='undef'
+d_flock='undef'
+d_fork='define'
+d_fpathconf='undef'
+d_fpos64_t='undef'
+d_fs_data_s='undef'
+d_fseeko='undef'
+d_fsetpos='undef'
+d_fstatfs='undef'
+d_fstatvfs='undef'
+d_ftello='undef'
+d_ftime='undef'
+d_getcwd='undef'
+d_getgrent='undef'
+d_getgrps='undef'
+d_gethbyaddr='undef'
+d_gethbyname='undef'
+d_gethent='undef'
+d_gethname='undef'
+d_gethostprotos='undef'
+d_getlogin='undef'
+d_getmnt='undef'
+d_getmntent='undef'
+d_getnbyaddr='undef'
+d_getnbyname='undef'
+d_getnent='undef'
+d_getnetprotos='undef'
+d_getpbyname='undef'
+d_getpbynumber='undef'
+d_getpent='undef'
+d_getpgid='undef'
+d_getpgrp2='undef'
+d_getpgrp='undef'
+d_getppid='undef'
+d_getprior='undef'
+d_getprotoprotos='undef'
+d_getpwent='undef'
+d_getsbyname='undef'
+d_getsbyport='undef'
+d_getsent='undef'
+d_getservprotos='undef'
+d_getspent='undef'
+d_getspnam='undef'
+d_gettimeod='undef'
+d_gnulibc='undef'
+d_grpasswd='undef'
+d_hasmntopt='undef'
+d_htonl='undef'
+d_iconv='undef'
+d_index='undef'
+d_inetaton='undef'
+d_int64t='undef'
+d_isascii='undef'
+d_killpg='undef'
+d_lchown='undef'
+d_ldbl_dig='undef'
+d_link='undef'
+d_locconv='undef'
+d_lockf='undef'
+d_longdbl='undef'
+d_longlong='undef'
+d_lstat='undef'
+d_mblen='undef'
+d_mbstowcs='undef'
+d_mbtowc='undef'
+d_memchr='undef'
+d_memcmp='undef'
+d_memcpy='undef'
+d_memmove='undef'
+d_memset='undef'
+d_mkdir='undef'
+d_mkdtemp='undef'
+d_mkfifo='undef'
+d_mkstemp='undef'
+d_mkstemps='undef'
+d_mktime='undef'
+d_mprotect='undef'
+d_msg='undef'
+d_msg_ctrunc='undef'
+d_msg_dontroute='undef'
+d_msg_oob='undef'
+d_msg_peek='undef'
+d_msg_proxy='undef'
+d_msgctl='undef'
+d_msgget='undef'
+d_msgrcv='undef'
+d_msgsnd='undef'
+d_msync='undef'
+d_munmap='undef'
+d_mymalloc='undef'
+d_nice='undef'
+d_nv_preserves_uv='undef'
+d_off64_t='undef'
+d_old_pthread_create_joinable='undef'
+d_oldpthreads='undef'
+d_oldsock='undef'
+d_open3='undef'
+d_pathconf='undef'
+d_pause='undef'
+d_phostname='undef'
+d_pipe='undef'
+d_poll='undef'
+d_portable='undef'
+d_pthread_yield='undef'
+d_pwage='undef'
+d_pwchange='undef'
+d_pwclass='undef'
+d_pwcomment='undef'
+d_pwexpire='undef'
+d_pwgecos='undef'
+d_pwpasswd='undef'
+d_pwquota='undef'
+d_quad='undef'
+d_readdir='undef'
+d_readlink='undef'
+d_rename='undef'
+d_rewinddir='undef'
+d_rmdir='undef'
+d_safebcpy='undef'
+d_safemcpy='undef'
+d_sanemcmp='undef'
+d_sched_yield='undef'
+d_scm_rights='undef'
+d_seekdir='undef'
+d_select='undef'
+d_sem='undef'
+d_semctl='undef'
+d_semctl_semid_ds='undef'
+d_semctl_semun='undef'
+d_semget='undef'
+d_semop='undef'
+d_setegid='undef'
+d_seteuid='undef'
+d_setgrent='undef'
+d_setgrps='undef'
+d_sethent='undef'
+d_setlinebuf='undef'
+d_setlocale='undef'
+d_setnent='undef'
+d_setpent='undef'
+d_setpgid='undef'
+d_setpgrp2='undef'
+d_setpgrp='undef'
+d_setprior='undef'
+d_setpwent='undef'
+d_setregid='undef'
+d_setresgid='undef'
+d_setresuid='undef'
+d_setreuid='undef'
+d_setrgid='undef'
+d_setruid='undef'
+d_setsent='undef'
+d_setsid='undef'
+d_setspent='undef'
+d_setvbuf='undef'
+d_sfio='undef'
+d_shm='undef'
+d_shmat='undef'
+d_shmatprototype='undef'
+d_shmctl='undef'
+d_shmdt='undef'
+d_shmget='undef'
+d_sigaction='undef'
+d_sigsetjmp='undef'
+d_socket='undef'
+d_sockpair='undef'
+d_sqrtl='undef'
+d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
+d_statvfs='undef'
+d_stdio_cnt_lval='undef'
+d_stdio_ptr_lval='undef'
+d_stdio_stream_array='undef'
+d_stdiobase='undef'
+d_stdstdio='undef'
+d_strchr='undef'
+d_strcoll='undef'
+d_strctcpy='undef'
+d_strerrm='strerror(e)'
+d_strerror='undef'
+d_strtod='undef'
+d_strtol='undef'
+d_strtold='undef'
+d_strtoll='undef'
+d_strtoul='undef'
+d_strtoull='undef'
+d_strtouq='undef'
+d_strxfrm='undef'
+d_suidsafe='undef'
+d_symlink='undef'
+d_syscall='undef'
+d_sysconf='undef'
+d_sysernlst=''
+d_syserrlst='undef'
+d_system='undef'
+d_tcgetpgrp='undef'
+d_tcsetpgrp='undef'
+d_telldir='undef'
+d_telldirproto='undef'
+d_time='undef'
+d_times='undef'
+d_truncate='undef'
+d_tzname='undef'
+d_umask='undef'
+d_uname='undef'
+d_union_semun='undef'
+d_ustat='undef'
+d_vendorbin='undef'
+d_vendorlib='undef'
+d_vfork='undef'
+d_void_closedir='undef'
+d_voidsig='undef'
+d_voidtty=''
+d_volatile='undef'
+d_vprintf='define'
+d_wait4='undef'
+d_waitpid='undef'
+d_wcstombs='undef'
+d_wctomb='undef'
+d_xenix='undef'
+db_hashtype='u_int32_t'
+db_prefixtype='size_t'
+defvoidused=1
+direntrytype='struct dirent'
+doublesize=1
+drand01="((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15))"
+eagain='EAGAIN'
+ebcdic='undef'
+fflushNULL='undef'
+fflushall='undef'
+firstmakefile='makefile'
+fpossize='4'
+fpostype=int
+freetype=int
+gidformat='"lu"'
+gidsign='1'
+gidsize='4'
+gidtype=int
+groupstype=int
+h_fcntl='false'
+h_sysfile='true'
+i16size='2'
+i16type='short'
+i32size='4'
+i32type='long'
+i64size='8'
+i64type='int64_t'
+i8size='1'
+i8type='char'
+i_arpainet='undef'
+i_bsdioctl=''
+i_db='undef'
+i_dbm='undef'
+i_dirent='undef'
+i_dld='undef'
+i_dlfcn='undef'
+i_fcntl='undef'
+i_float='undef'
+i_gdbm='undef'
+i_grp='undef'
+i_iconv='undef'
+i_inttypes='undef'
+i_limits='undef'
+i_locale='undef'
+i_machcthr='undef'
+i_malloc='undef'
+i_math='undef'
+i_memory='undef'
+i_mntent='undef'
+i_ndbm='undef'
+i_netdb='undef'
+i_neterrno='undef'
+i_netinettcp='undef'
+i_niin='undef'
+i_poll='undef'
+i_pthread='undef'
+i_pwd='undef'
+i_rpcsvcdbm='undef'
+i_sfio='undef'
+i_sgtty='undef'
+i_shadow='undef'
+i_socks='undef'
+i_stdarg='define'
+i_stddef='undef'
+i_stdlib='undef'
+i_string='define'
+i_sysaccess='undef'
+i_sysdir='undef'
+i_sysfile='undef'
+i_sysfilio='undef'
+i_sysin='undef'
+i_sysioctl='undef'
+i_syslog='undef'
+i_sysmount='undef'
+i_sysndir='undef'
+i_sysparam='undef'
+i_sysresrc='undef'
+i_syssecrt='undef'
+i_sysselct='undef'
+i_syssockio=''
+i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
+i_systime='undef'
+i_systimek='undef'
+i_systimes='undef'
+i_systypes='undef'
+i_sysuio='undef'
+i_sysun='undef'
+i_sysvfs='undef'
+i_syswait='undef'
+i_termio='undef'
+i_termios='undef'
+i_time='define'
+i_unistd='undef'
+i_ustat='undef'
+i_utime='undef'
+i_values='undef'
+i_varargs='undef'
+i_varhdr='stdarg.h'
+i_vfork='undef'
+ignore_versioned_solibs='y'
+installstyle='lib/perl5'
+installusrbinperl='undef'
+intsize='4'
+intsize=1
+ivdformat='"ld"'
+ivsize='4'
+ivtype='long'
+lib_ext='.a'
+longdblsize=1
+longlongsize=1
+longsize=1
+lseeksize=1
+lseektype=int
+malloctype='int*'
+malloctype='void *'
+modetype='mode_t'
+modetype=int
+multiarch='undef'
+myarchname='unknown'
+myuname='unknown'
+netdb_hlen_type='int'
+netdb_host_type='const char *'
+netdb_name_type='const char *'
+netdb_net_type='unsigned long'
+nroff='nroff'
+nvsize='8'
+nvtype='double'
+o_nonblock='O_NONBLOCK'
+obj_ext='.o'
+optimize='-O2'
+orderlib='false'
+osname='unknown'
+phostname='hostname'
+pidtype=int
+pm_apiversion='5.005'
+privlib='/usr/local/lib/perl5/5.00563'
+privlibexp='/usr/local/lib/perl5/5.00563'
+prototype='undef'
+ptrsize=1
+quadkind='4'
+quadtype='int64_t'
+randbits='48'
+randfunc='drand48'
+randseedtype='int'
+rd_nodata='-1'
+sPRIEldbl='"llE"'
+sPRIFldbl='"llF"'
+sPRIGldbl='"llG"'
+sPRIX64='"LX"'
+sPRId64='"Ld"'
+sPRIeldbl='"lle"'
+sPRIfldbl='"llf"'
+sPRIgldbl='"llg"'
+sPRIi64='"Li"'
+sPRIo64='"Lo"'
+sPRIu64='"Lu"'
+sPRIx64='"Lx"'
+sched_yield='sched_yield()'
+scriptdir='/usr/local/bin'
+scriptdirexp='/usr/local/bin'
+seedfunc='srand'
+selectminbits='32'
+selecttype=int
+shmattype='void *'
+shortsize=1
+sig_count='64'
+sig_name_init='0'
+sig_num_init='0'
+signal_t=int
+sizetype=int
+sizesize=1
+ssizetype=int
+stdchar=char
+stdio_base='((fp)->_IO_read_base)'
+stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)'
+stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
+stdio_filbuf=''
+stdio_ptr='((fp)->_IO_read_ptr)'
+stdio_stream_array=''
+timetype=int
+touch='touch'
+u16size='2'
+u16type='unsigned short'
+u32size='4'
+u32type='unsigned long'
+u64size='8'
+u64type='uint64_t'
+u8size='1'
+u8type='unsigned char'
+uidformat='"lu"'
+uidsign='1'
+uidsize='4'
+uidtype=int
+uquadtype='uint64_t'
+use5005threads='undef'
+use64bits='undef'
+usedl='undef'
+useithreads='undef'
+uselargefiles='undef'
+uselongdouble='undef'
+uselonglong='undef'
+usemorebits='undef'
+usemultiplicity='undef'
+usemymalloc='n'
+usenm='false'
+useopcode='true'
+useperlio='undef'
+useposix='true'
+usesfio='false'
+useshrplib='false'
+usesocks='undef'
+usethreads='undef'
+usevendorprefix='undef'
+usevfork='false'
+uvoformat='"lo"'
+uvsize='4'
+uvtype='unsigned long'
+uvuformat='"lu"'
+uvxformat='"lx"'
+voidflags=1
+xs_apiversion='5.005'
+d_getfsstat='undef'
+d_int64_t='undef'
+d_lseekproto='undef'
+d_madvise='undef'
+d_mmap='undef'
+use64bitint='undef'
+use64bitall='undef'
+d_vendorarch='undef'
+d_vendorarch='undef'
+i_ieeefp='undef'
+i_sunmath='undef'
+i_sysmode='undef'
+i_sysutsname='undef'
+d_frexpl='undef'
+d_modfl='undef'
+d_getespwnam='undef'
+d_getprpwnam='undef'
+d_isnan='undef'
+d_isnanl='undef'
+i_prot='undef'
+d_perl_otherlibdirs='undef'
+inc_version_list_init='NULL'
+socksizetype='int'
+
+
diff --git a/unixish.h b/unixish.h
index 1168d297b6..6e6f1d38d9 100644
--- a/unixish.h
+++ b/unixish.h
@@ -5,6 +5,8 @@
* here.
*/
+#ifndef PERL_MICRO
+
/* HAS_IOCTL:
* This symbol, if defined, indicates that the ioctl() routine is
* available to set I/O characteristics
@@ -33,6 +35,8 @@
#define HAS_KILL
#define HAS_WAIT
+
+#endif
/* USEMYBINMODE
* This symbol, if defined, indicates that the program should
diff --git a/utf8.c b/utf8.c
index 223f5ac634..76eb932f2d 100644
--- a/utf8.c
+++ b/utf8.c
@@ -791,7 +791,7 @@ Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr)
if (hv == PL_last_swash_hv &&
klen == PL_last_swash_klen &&
- (!klen || memEQ(ptr,PL_last_swash_key,klen)) )
+ (!klen || memEQ((char *)ptr,(char *)PL_last_swash_key,klen)) )
{
tmps = PL_last_swash_tmps;
slen = PL_last_swash_slen;
diff --git a/util.c b/util.c
index a5cd95419d..91ca89a4d6 100644
--- a/util.c
+++ b/util.c
@@ -87,7 +87,7 @@ Perl_safesysmalloc(MEM_SIZE size)
if ((long)size < 0)
Perl_croak_nocontext("panic: malloc");
#endif
- ptr = PerlMem_malloc(size?size:1); /* malloc(0) is NASTY on our system */
+ ptr = (Malloc_t)PerlMem_malloc(size?size:1); /* malloc(0) is NASTY on our system */
PERL_ALLOC_CHECK(ptr);
DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) malloc %ld bytes\n",PTR2UV(ptr),(long)PL_an++,(long)size));
if (ptr != Nullch)
@@ -131,7 +131,7 @@ Perl_safesysrealloc(Malloc_t where,MEM_SIZE size)
if ((long)size < 0)
Perl_croak_nocontext("panic: realloc");
#endif
- ptr = PerlMem_realloc(where,size);
+ ptr = (Malloc_t)PerlMem_realloc(where,size);
PERL_ALLOC_CHECK(ptr);
DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) rfree\n",PTR2UV(where),(long)PL_an++));
@@ -184,7 +184,7 @@ Perl_safesyscalloc(MEM_SIZE count, MEM_SIZE size)
Perl_croak_nocontext("panic: calloc");
#endif
size *= count;
- ptr = PerlMem_malloc(size?size:1); /* malloc(0) is NASTY on our system */
+ ptr = (Malloc_t)PerlMem_malloc(size?size:1); /* malloc(0) is NASTY on our system */
PERL_ALLOC_CHECK(ptr);
DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) calloc %ld x %ld bytes\n",PTR2UV(ptr),(long)PL_an++,(long)count,(long)size));
if (ptr != Nullch) {
@@ -1000,7 +1000,8 @@ Perl_fbm_instr(pTHX_ unsigned char *big, register unsigned char *bigend, SV *lit
if ( SvTAIL(littlestr)
&& (bigend - big == littlelen - 1)
&& (littlelen == 1
- || (*big == *little && memEQ(big, little, littlelen - 1))))
+ || (*big == *little &&
+ memEQ((char *)big, (char *)little, littlelen - 1))))
return (char*)big;
return Nullch;
}
@@ -1168,7 +1169,8 @@ Perl_fbm_instr(pTHX_ unsigned char *big, register unsigned char *bigend, SV *lit
}
check_end:
if ( s == bigend && (table[-1] & FBMcf_TAIL)
- && memEQ(bigend - littlelen, oldlittle - littlelen, littlelen) )
+ && memEQ((char *)(bigend - littlelen),
+ (char *)(oldlittle - littlelen), littlelen) )
return (char*)bigend - littlelen;
return Nullch;
}
@@ -1283,7 +1285,8 @@ Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift
return (char*)big;
big -= stop_pos;
if (*big == first
- && ((stop_pos == 1) || memEQ(big + 1, little, stop_pos - 1)))
+ && ((stop_pos == 1) ||
+ memEQ((char *)(big + 1), (char *)little, stop_pos - 1)))
return (char*)big;
return Nullch;
}
@@ -3661,7 +3664,7 @@ Perl_get_opargs(pTHX)
PPADDR_t*
Perl_get_ppaddr(pTHX)
{
- return &PL_ppaddr;
+ return (PPADDR_t*)PL_ppaddr;
}
#ifndef HAS_GETENV_LEN