This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
microperl changes from Simon Cozens; Makefile for microperl
authorJarkko Hietaniemi <jhi@iki.fi>
Wed, 31 May 2000 21:37:31 +0000 (21:37 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Wed, 31 May 2000 21:37:31 +0000 (21:37 +0000)
written from scratch; few casts added as microperl compilation
doesn't have all prototypes available.

p4raw-id: //depot/cfgperl@6174

15 files changed:
Configure
MAINTAIN
MANIFEST
Makefile.micro [new file with mode: 0644]
README.micro [new file with mode: 0644]
Todo.micro [new file with mode: 0644]
config_h.SH
doop.c
op.c
perl.h
perlio.c
uconfig.sh [new file with mode: 0755]
unixish.h
utf8.c
util.c

index fc3ea30..19c83a0 100755 (executable)
--- 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
index 60ed01e..ae4df30 100644 (file)
--- 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
index e671b82..5a85148 100644 (file)
--- 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 (file)
index 0000000..1ac87b4
--- /dev/null
@@ -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 (file)
index 0000000..da84453
--- /dev/null
@@ -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 (file)
index 0000000..a01e828
--- /dev/null
@@ -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
+
index c535105..122cabe 100644 (file)
@@ -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 4224b0e..c79b435 100644 (file)
--- 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 c7da1c5..39a9b18 100644 (file)
--- 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 3860107..b26d6f4 100644 (file)
--- a/perl.h
+++ b/perl.h
 #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
index 6945a75..a88daa5 100644 (file)
--- 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 (executable)
index 0000000..7b82145
--- /dev/null
@@ -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'
+
+
index 1168d29..6e6f1d3 100644 (file)
--- 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 223f5ac..76eb932 100644 (file)
--- 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 a5cd954..91ca89a 100644 (file)
--- 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