diff --git a/README.md b/README.md index f8ec12e..ea9c5f5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,9 @@ # perl +Perl is a high-level programming language with roots in C, sed, awk and shell scripting. +Perl is good at handling processes and files, and is especially good at handling text. +Perl's hallmarks are practicality and efficiency. +While it is used to do a lot of different things, Perl's most common applications (and what it excels at) are probably system administration utilities and web programming. +A large proportion of the CGI scripts on the web are written in Perl. +You need the perl package installed on your system so that your system can handle Perl scripts. + diff --git a/perl-5.10.1-cross_compile.patch b/perl-5.10.1-cross_compile.patch new file mode 100644 index 0000000..5eb0054 --- /dev/null +++ b/perl-5.10.1-cross_compile.patch @@ -0,0 +1,2435 @@ +diff -Nru perl-5.10.1.orig//Cross/config perl-5.10.1/Cross/config +--- perl-5.10.1.orig//Cross/config 2009-02-12 23:58:10.000000000 +0100 ++++ perl-5.10.1/Cross/config 2010-03-25 01:27:05.469300943 +0100 +@@ -14,7 +14,7 @@ + #ARCH = ppc + + ## Specific arm +-CONFIG_TARGET_ARM_SA11X0 = 1 ++#CONFIG_TARGET_ARM_SA11X0 = 1 + #CONFIG_TARGET_ARM_XSCALE = 1 + + ### Target OS +diff -Nru perl-5.10.1.orig//Cross/config.sh-arm-openmamba-linux-gnu perl-5.10.1/Cross/config.sh-arm-openmamba-linux-gnu +--- perl-5.10.1.orig//Cross/config.sh-arm-openmamba-linux-gnueabi 1970-01-01 01:00:00.000000000 +0100 ++++ perl-5.10.1/Cross/config.sh-arm-openmamba-linux-gnueabi 2010-03-25 01:26:55.133056494 +0100 +@@ -0,0 +1,1110 @@ ++#!/bin/sh ++# ++# This file was produced by running the Configure script. It holds all the ++# definitions figured out by Configure. Should you modify one of these values, ++# do not forget to propagate your changes by running "Configure -der". You may ++# instead choose to run each of the .SH files by yourself, or "Configure -S". ++# ++ ++# Package name : perl5 ++# Source directory : . ++# Configuration time: Wed Mar 24 22:46:46 CET 2010 ++# Configured by : openmamba ++# Target system : linux tao 2.6.31mamba-64gb #1 smp preempt thu mar 11 19:13:37 cet 2010 i686 i686 i386 gnulinux ++ ++: Configure command line arguments. ++config_arg0='Configure' ++config_args='-des -Darchname=arm-linux -Dcc=arm-openmamba-linux-gnueabi-gcc -Doptimize=-O2 -fomit-frame-pointer -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr -Dman3ext=3pm -Dcf_by=openmamba -Dmyhostname=localhost -Dperladmin=root@localhost -Dd_dosuid -Ud_csh=undef -Duseshrplib -Dinstallprefix=/var/tmp/perl-root/usr -Dusethreads' ++config_argc=16 ++config_arg1='-des' ++config_arg2='-Darchname=arm-linux' ++config_arg3='-Dcc=arm-openmamba-linux-gnueabi-gcc' ++config_arg4='-Doptimize=-O2 -fomit-frame-pointer' ++config_arg5='-Dprefix=/usr' ++config_arg6='-Dvendorprefix=/usr' ++config_arg7='-Dsiteprefix=/usr' ++config_arg8='-Dman3ext=3pm' ++config_arg9='-Dcf_by=openmamba' ++config_arg10='-Dmyhostname=localhost' ++config_arg11='-Dperladmin=root@localhost' ++config_arg12='-Dd_dosuid' ++config_arg13='-Ud_csh=undef' ++config_arg14='-Duseshrplib' ++config_arg15='-Dinstallprefix=/var/tmp/perl-root/usr' ++config_arg16='-Dusethreads' ++ ++Author='' ++Date='$Date' ++Header='' ++Id='$Id' ++Locker='' ++Log='$Log' ++RCSfile='$RCSfile' ++Revision='$Revision' ++Source='' ++State='' ++_a='.a' ++_exe='' ++_o='.o' ++afs='false' ++afsroot='/afs' ++alignbytes='4' ++ansi2knr='' ++aphostname='' ++api_revision='5' ++api_subversion='0' ++api_version='10' ++api_versionstring='5.10.0' ++ar='ar' ++archlib='/usr/lib/perl5/5.10.1/arm-linux-thread-multi' ++archlibexp='/usr/lib/perl5/5.10.1/arm-linux-thread-multi' ++archname64='' ++archname='arm-linux-thread-multi' ++archobjs='' ++asctime_r_proto='REENTRANT_PROTO_B_SB' ++awk='awk' ++baserev='5.0' ++bash='' ++bin='/usr/bin' ++binexp='/usr/bin' ++bison='bison' ++byacc='byacc' ++byteorder='1234' ++c='' ++castflags='0' ++cat='cat' ++cc='arm-openmamba-linux-gnueabi-gcc' ++cccdlflags='-fPIC' ++ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.10.1/arm-linux-thread-multi/CORE' ++ ++ccflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ++ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ++ccname='gcc' ++ccsymbols='' ++ccversion='' ++cf_by='openmamba' ++cf_email='openmamba@localhost.localdomain' ++cf_time='Wed Mar 24 22:46:46 CET 2010' ++chgrp='' ++chmod='chmod' ++chown='' ++clocktype='clock_t' ++comm='comm' ++compress='' ++contains='grep' ++cp='cp' ++cpio='' ++cpp='cpp' ++cpp_stuff='42' ++cppccsymbols='' ++cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -fstack-protector -I/usr/local/include' ++cpplast='-' ++cppminus='-' ++cpprun='arm-openmamba-linux-gnueabi-gcc -E' ++cppstdin='arm-openmamba-linux-gnueabi-gcc -E' ++cppsymbols='_FILE_OFFSET_BITS=64 _GNU_SOURCE=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 _REENTRANT=1 _XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1 __BIGGEST_ALIGNMENT__=16 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __DBL_DENORM_MIN__=4.9406564584124654e-324 __DBL_DIG__=15 __DBL_EPSILON__=2.2204460492503131e-16 __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX_EXP__=1024 __DBL_MAX__=1.7976931348623157e+308 __DBL_MIN_10_EXP__=(-307) __DBL_MIN_EXP__=(-1021) __DBL_MIN__=2.2250738585072014e-308 __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX_EXP__=6145 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MIN_EXP__=(-6142) __DEC128_MIN__=1E-6143DL __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX_EXP__=97 __DEC32_MAX__=9.999999E96DF __DEC32_MIN_EXP__=(-94) __DEC32_MIN__=1E-95DF __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX_EXP__=385 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MIN_EXP__=(-382) __DEC64_MIN__=1E-383DD __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __DEC_EVAL_METHOD__=2 __ELF__=1 __FINITE_MATH_ONLY__=0 __FLT_DENORM_MIN__=1.40129846e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209290e-7F __FLT_EVAL_METHOD__=2 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX_EXP__=128 __FLT_MAX__=3.40282347e+38F __FLT_MIN_10_EXP__=(-37) __FLT_MIN_EXP__=(-125) __FLT_MIN__=1.17549435e-38F __FLT_RADIX__=2 __GLIBC_MINOR__=11 __GLIBC__=2 __GNUC_GNU_INLINE__=1 __GNUC_MINOR__=4 __GNUC_PATCHLEVEL__=3 __GNUC__=4 __GNU_LIBRARY__=6 __GXX_ABI_VERSION=1002 __INTMAX_MAX__=9223372036854775807LL __INTMAX_TYPE__=long\ long\ int __INT_MAX__=2147483647 __LDBL_DENORM_MIN__=3.64519953188247460253e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443401e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX_EXP__=16384 __LDBL_MAX__=1.18973149535723176502e+4932L __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN_EXP__=(-16381) __LDBL_MIN__=3.36210314311209350626e-4932L __LONG_LONG_MAX__=9223372036854775807LL __LONG_MAX__=2147483647L __PTRDIFF_TYPE__=int __REGISTER_PREFIX__= __SCHAR_MAX__=127 __SHRT_MAX__=32767 __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT__=4 __SIZEOF_INT__=4 __SIZEOF_LONG_DOUBLE__=12 __SIZEOF_LONG_LONG__=8 __SIZEOF_LONG__=4 __SIZEOF_POINTER__=4 __SIZEOF_PTRDIFF_T__=4 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=4 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_TYPE__=unsigned\ int __STDC_HOSTED__=1 __STDC__=1 __UINTMAX_TYPE__=long\ long\ unsigned\ int __USER_LABEL_PREFIX__= __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_POSIX=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __VERSION__="4.4.3" __WCHAR_MAX__=2147483647 __WCHAR_TYPE__=long\ int __WINT_TYPE__=unsigned\ int __gnu_linux__=1 __arm=1 __linux=1 __linux__=1 __unix=1 __unix__=1 linux=1 unix=1' ++crypt_r_proto='REENTRANT_PROTO_B_CCS' ++cryptlib='' ++csh='csh' ++ctermid_r_proto='0' ++ctime_r_proto='REENTRANT_PROTO_B_SB' ++d_Gconvert='gcvt((x),(n),(b))' ++d_PRIEUldbl='define' ++d_PRIFUldbl='define' ++d_PRIGUldbl='define' ++d_PRIXU64='define' ++d_PRId64='define' ++d_PRIeldbl='define' ++d_PRIfldbl='define' ++d_PRIgldbl='define' ++d_PRIi64='define' ++d_PRIo64='define' ++d_PRIu64='define' ++d_PRIx64='define' ++d_SCNfldbl='define' ++d__fwalk='undef' ++d_access='define' ++d_accessx='undef' ++d_aintl='undef' ++d_alarm='define' ++d_archlib='define' ++d_asctime64='undef' ++d_asctime_r='define' ++d_atolf='undef' ++d_atoll='define' ++d_attribute_deprecated='define' ++d_attribute_format='define' ++d_attribute_malloc='define' ++d_attribute_nonnull='define' ++d_attribute_noreturn='define' ++d_attribute_pure='define' ++d_attribute_unused='define' ++d_attribute_warn_unused_result='define' ++d_bcmp='define' ++d_bcopy='define' ++d_bsd='undef' ++d_bsdgetpgrp='undef' ++d_bsdsetpgrp='undef' ++d_builtin_choose_expr='define' ++d_builtin_expect='define' ++d_bzero='define' ++d_c99_variadic_macros='define' ++d_casti32='undef' ++d_castneg='define' ++d_charvspr='undef' ++d_chown='define' ++d_chroot='define' ++d_chsize='undef' ++d_class='undef' ++d_clearenv='define' ++d_closedir='define' ++d_cmsghdr_s='define' ++d_const='define' ++d_copysignl='define' ++d_cplusplus='undef' ++d_crypt='define' ++d_crypt_r='define' ++d_csh='define' ++d_ctermid='define' ++d_ctermid_r='undef' ++d_ctime64='undef' ++d_ctime_r='define' ++d_cuserid='define' ++d_dbl_dig='define' ++d_dbminitproto='define' ++d_difftime64='undef' ++d_difftime='define' ++d_dir_dd_fd='undef' ++d_dirfd='define' ++d_dirnamlen='undef' ++d_dlerror='define' ++d_dlopen='define' ++d_dlsymun='undef' ++d_dosuid='define' ++d_drand48_r='define' ++d_drand48proto='define' ++d_dup2='define' ++d_eaccess='define' ++d_endgrent='define' ++d_endgrent_r='undef' ++d_endhent='define' ++d_endhostent_r='undef' ++d_endnent='define' ++d_endnetent_r='undef' ++d_endpent='define' ++d_endprotoent_r='undef' ++d_endpwent='define' ++d_endpwent_r='undef' ++d_endsent='define' ++d_endservent_r='undef' ++d_eofnblk='define' ++d_eunice='undef' ++d_faststdio='define' ++d_fchdir='define' ++d_fchmod='define' ++d_fchown='define' ++d_fcntl='define' ++d_fcntl_can_lock='define' ++d_fd_macros='define' ++d_fd_set='define' ++d_fds_bits='define' ++d_fgetpos='define' ++d_finite='define' ++d_finitel='define' ++d_flexfnam='define' ++d_flock='define' ++d_flockproto='define' ++d_fork='define' ++d_fp_class='undef' ++d_fpathconf='define' ++d_fpclass='undef' ++d_fpclassify='undef' ++d_fpclassl='undef' ++d_fpos64_t='undef' ++d_frexpl='define' ++d_fs_data_s='undef' ++d_fseeko='define' ++d_fsetpos='define' ++d_fstatfs='define' ++d_fstatvfs='define' ++d_fsync='define' ++d_ftello='define' ++d_ftime='undef' ++d_futimes='define' ++d_gdbm_ndbm_h_uses_prototypes='undef' ++d_gdbmndbm_h_uses_prototypes='undef' ++d_getaddrinfo='define' ++d_getcwd='define' ++d_getespwnam='undef' ++d_getfsstat='undef' ++d_getgrent='define' ++d_getgrent_r='define' ++d_getgrgid_r='define' ++d_getgrnam_r='define' ++d_getgrps='define' ++d_gethbyaddr='define' ++d_gethbyname='define' ++d_gethent='define' ++d_gethname='define' ++d_gethostbyaddr_r='define' ++d_gethostbyname_r='define' ++d_gethostent_r='define' ++d_gethostprotos='define' ++d_getitimer='define' ++d_getlogin='define' ++d_getlogin_r='define' ++d_getmnt='undef' ++d_getmntent='define' ++d_getnameinfo='define' ++d_getnbyaddr='define' ++d_getnbyname='define' ++d_getnent='define' ++d_getnetbyaddr_r='define' ++d_getnetbyname_r='define' ++d_getnetent_r='define' ++d_getnetprotos='define' ++d_getpagsz='define' ++d_getpbyname='define' ++d_getpbynumber='define' ++d_getpent='define' ++d_getpgid='define' ++d_getpgrp2='undef' ++d_getpgrp='define' ++d_getppid='define' ++d_getprior='define' ++d_getprotobyname_r='define' ++d_getprotobynumber_r='define' ++d_getprotoent_r='define' ++d_getprotoprotos='define' ++d_getprpwnam='undef' ++d_getpwent='define' ++d_getpwent_r='define' ++d_getpwnam_r='define' ++d_getpwuid_r='define' ++d_getsbyname='define' ++d_getsbyport='define' ++d_getsent='define' ++d_getservbyname_r='define' ++d_getservbyport_r='define' ++d_getservent_r='define' ++d_getservprotos='define' ++d_getspnam='define' ++d_getspnam_r='define' ++d_gettimeod='define' ++d_gmtime64='undef' ++d_gmtime_r='define' ++d_gnulibc='define' ++d_grpasswd='define' ++d_hasmntopt='define' ++d_htonl='define' ++d_ilogbl='define' ++d_inc_version_list='define' ++d_index='undef' ++d_inetaton='define' ++d_inetntop='define' ++d_inetpton='define' ++d_int64_t='define' ++d_isascii='define' ++d_isfinite='undef' ++d_isinf='define' ++d_isnan='define' ++d_isnanl='define' ++d_killpg='define' ++d_lchown='define' ++d_ldbl_dig='define' ++d_libm_lib_version='define' ++d_link='define' ++d_localtime64='undef' ++d_localtime_r='define' ++d_localtime_r_needs_tzset='define' ++d_locconv='define' ++d_lockf='define' ++d_longdbl='define' ++d_longlong='define' ++d_lseekproto='define' ++d_lstat='define' ++d_madvise='define' ++d_malloc_good_size='undef' ++d_malloc_size='undef' ++d_mblen='define' ++d_mbstowcs='define' ++d_mbtowc='define' ++d_memchr='define' ++d_memcmp='define' ++d_memcpy='define' ++d_memmove='define' ++d_memset='define' ++d_mkdir='define' ++d_mkdtemp='define' ++d_mkfifo='define' ++d_mkstemp='define' ++d_mkstemps='define' ++d_mktime64='undef' ++d_mktime='define' ++d_mmap='define' ++d_modfl='define' ++d_modfl_pow32_bug='undef' ++d_modflproto='define' ++d_mprotect='define' ++d_msg='define' ++d_msg_ctrunc='define' ++d_msg_dontroute='define' ++d_msg_oob='define' ++d_msg_peek='define' ++d_msg_proxy='define' ++d_msgctl='define' ++d_msgget='define' ++d_msghdr_s='define' ++d_msgrcv='define' ++d_msgsnd='define' ++d_msync='define' ++d_munmap='define' ++d_mymalloc='undef' ++d_ndbm='define' ++d_ndbm_h_uses_prototypes='undef' ++d_nice='define' ++d_nl_langinfo='define' ++d_nv_preserves_uv='define' ++d_nv_zero_is_allbits_zero='define' ++d_off64_t='define' ++d_old_pthread_create_joinable='undef' ++d_oldpthreads='undef' ++d_oldsock='undef' ++d_open3='define' ++d_pathconf='define' ++d_pause='define' ++d_perl_otherlibdirs='undef' ++d_phostname='undef' ++d_pipe='define' ++d_poll='define' ++d_portable='define' ++d_printf_format_null='define' ++d_procselfexe='define' ++d_pseudofork='undef' ++d_pthread_atfork='define' ++d_pthread_attr_setscope='define' ++d_pthread_yield='define' ++d_pwage='undef' ++d_pwchange='undef' ++d_pwclass='undef' ++d_pwcomment='undef' ++d_pwexpire='undef' ++d_pwgecos='define' ++d_pwpasswd='define' ++d_pwquota='undef' ++d_qgcvt='define' ++d_quad='define' ++d_random_r='define' ++d_readdir64_r='define' ++d_readdir='define' ++d_readdir_r='define' ++d_readlink='define' ++d_readv='define' ++d_recvmsg='define' ++d_rename='define' ++d_rewinddir='define' ++d_rmdir='define' ++d_safebcpy='undef' ++d_safemcpy='undef' ++d_sanemcmp='define' ++d_sbrkproto='define' ++d_scalbnl='define' ++d_sched_yield='define' ++d_scm_rights='define' ++d_seekdir='define' ++d_select='define' ++d_sem='define' ++d_semctl='define' ++d_semctl_semid_ds='define' ++d_semctl_semun='define' ++d_semget='define' ++d_semop='define' ++d_sendmsg='define' ++d_setegid='define' ++d_seteuid='define' ++d_setgrent='define' ++d_setgrent_r='undef' ++d_setgrps='define' ++d_sethent='define' ++d_sethostent_r='undef' ++d_setitimer='define' ++d_setlinebuf='define' ++d_setlocale='define' ++d_setlocale_r='undef' ++d_setnent='define' ++d_setnetent_r='undef' ++d_setpent='define' ++d_setpgid='define' ++d_setpgrp2='undef' ++d_setpgrp='define' ++d_setprior='define' ++d_setproctitle='undef' ++d_setprotoent_r='undef' ++d_setpwent='define' ++d_setpwent_r='undef' ++d_setregid='define' ++d_setresgid='define' ++d_setresuid='define' ++d_setreuid='define' ++d_setrgid='undef' ++d_setruid='undef' ++d_setsent='define' ++d_setservent_r='undef' ++d_setsid='define' ++d_setvbuf='define' ++d_sfio='undef' ++d_shm='define' ++d_shmat='define' ++d_shmatprototype='define' ++d_shmctl='define' ++d_shmdt='define' ++d_shmget='define' ++d_sigaction='define' ++d_signbit='define' ++d_sigprocmask='define' ++d_sigsetjmp='define' ++d_sitearch='define' ++d_snprintf='define' ++d_sockatmark='define' ++d_sockatmarkproto='define' ++d_socket='define' ++d_socklen_t='define' ++d_sockpair='define' ++d_socks5_init='undef' ++d_sprintf_returns_strlen='define' ++d_sqrtl='define' ++d_srand48_r='define' ++d_srandom_r='define' ++d_sresgproto='define' ++d_sresuproto='define' ++d_statblks='define' ++d_statfs_f_flags='undef' ++d_statfs_s='define' ++d_statvfs='define' ++d_stdio_cnt_lval='undef' ++d_stdio_ptr_lval='define' ++d_stdio_ptr_lval_nochange_cnt='undef' ++d_stdio_ptr_lval_sets_cnt='define' ++d_stdio_stream_array='undef' ++d_stdiobase='define' ++d_stdstdio='define' ++d_strchr='define' ++d_strcoll='define' ++d_strctcpy='define' ++d_strerrm='strerror(e)' ++d_strerror='define' ++d_strerror_r='define' ++d_strftime='define' ++d_strlcat='undef' ++d_strlcpy='undef' ++d_strtod='define' ++d_strtol='define' ++d_strtold='define' ++d_strtoll='define' ++d_strtoq='define' ++d_strtoul='define' ++d_strtoull='define' ++d_strtouq='define' ++d_strxfrm='define' ++d_suidsafe='undef' ++d_symlink='define' ++d_syscall='define' ++d_syscallproto='define' ++d_sysconf='define' ++d_sysernlst='' ++d_syserrlst='define' ++d_system='define' ++d_tcgetpgrp='define' ++d_tcsetpgrp='define' ++d_telldir='define' ++d_telldirproto='define' ++d_time='define' ++d_timegm='define' ++d_times='define' ++d_tm_tm_gmtoff='define' ++d_tm_tm_zone='define' ++d_tmpnam_r='define' ++d_truncate='define' ++d_ttyname_r='define' ++d_tzname='define' ++d_u32align='undef' ++d_ualarm='define' ++d_umask='define' ++d_uname='define' ++d_union_semun='undef' ++d_unordered='undef' ++d_unsetenv='define' ++d_usleep='define' ++d_usleepproto='define' ++d_ustat='define' ++d_vendorarch='define' ++d_vendorbin='define' ++d_vendorlib='define' ++d_vendorscript='define' ++d_vfork='undef' ++d_void_closedir='undef' ++d_voidsig='define' ++d_voidtty='' ++d_volatile='define' ++d_vprintf='define' ++d_vsnprintf='define' ++d_wait4='define' ++d_waitpid='define' ++d_wcstombs='define' ++d_wctomb='define' ++d_writev='define' ++d_xenix='undef' ++date='date' ++db_hashtype='u_int32_t' ++db_prefixtype='size_t' ++db_version_major='4' ++db_version_minor='7' ++db_version_patch='25' ++defvoidused='15' ++direntrytype='struct dirent' ++dlext='so' ++dlsrc='dl_dlopen.xs' ++doublesize='8' ++drand01='drand48()' ++drand48_r_proto='REENTRANT_PROTO_I_ST' ++dtrace='' ++dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IO/Compress IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/Typemap attrs mro re threads threads/shared' ++eagain='EAGAIN' ++ebcdic='undef' ++echo='echo' ++egrep='egrep' ++emacs='' ++endgrent_r_proto='0' ++endhostent_r_proto='0' ++endnetent_r_proto='0' ++endprotoent_r_proto='0' ++endpwent_r_proto='0' ++endservent_r_proto='0' ++eunicefix=':' ++exe_ext='' ++expr='expr' ++extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IO/Compress IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/Typemap attrs mro re threads threads/shared Attribute/Handlers Errno Module/Pluggable Safe Test/Harness' ++extern_C='extern' ++extras='' ++fflushNULL='define' ++fflushall='undef' ++find='' ++firstmakefile='makefile' ++flex='' ++fpossize='16' ++fpostype='fpos_t' ++freetype='void' ++from=':' ++full_ar='/usr/bin/ar' ++full_csh='/bin/csh' ++full_sed='/bin/sed' ++gccansipedantic='' ++gccosandvers='' ++gccversion='4.4.3' ++getgrent_r_proto='REENTRANT_PROTO_I_SBWR' ++getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR' ++getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR' ++gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE' ++gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE' ++gethostent_r_proto='REENTRANT_PROTO_I_SBWRE' ++getlogin_r_proto='REENTRANT_PROTO_I_BW' ++getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE' ++getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE' ++getnetent_r_proto='REENTRANT_PROTO_I_SBWRE' ++getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR' ++getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR' ++getprotoent_r_proto='REENTRANT_PROTO_I_SBWR' ++getpwent_r_proto='REENTRANT_PROTO_I_SBWR' ++getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR' ++getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR' ++getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR' ++getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR' ++getservent_r_proto='REENTRANT_PROTO_I_SBWR' ++getspnam_r_proto='REENTRANT_PROTO_I_CSBWR' ++gidformat='"lu"' ++gidsign='1' ++gidsize='4' ++gidtype='gid_t' ++glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib /lib64 /usr/lib64 /usr/local/lib64 ' ++gmake='gmake' ++gmtime_r_proto='REENTRANT_PROTO_S_TS' ++gnulibc_version='2.11.1' ++grep='grep' ++groupcat='cat /etc/group' ++groupstype='gid_t' ++gzip='gzip' ++h_fcntl='false' ++h_sysfile='true' ++hint='recommended' ++hostcat='cat /etc/hosts' ++html1dir=' ' ++html1direxp='' ++html3dir=' ' ++html3direxp='' ++i16size='2' ++i16type='short' ++i32size='4' ++i32type='long' ++i64size='8' ++i64type='long long' ++i8size='1' ++i8type='signed char' ++i_arpainet='define' ++i_assert='define' ++i_bsdioctl='' ++i_crypt='define' ++i_db='define' ++i_dbm='define' ++i_dirent='define' ++i_dld='undef' ++i_dlfcn='define' ++i_fcntl='undef' ++i_float='define' ++i_fp='undef' ++i_fp_class='undef' ++i_gdbm='define' ++i_gdbm_ndbm='undef' ++i_gdbmndbm='undef' ++i_grp='define' ++i_ieeefp='undef' ++i_inttypes='define' ++i_langinfo='define' ++i_libutil='undef' ++i_limits='define' ++i_locale='define' ++i_machcthr='undef' ++i_malloc='define' ++i_mallocmalloc='undef' ++i_math='define' ++i_memory='undef' ++i_mntent='define' ++i_ndbm='define' ++i_netdb='define' ++i_neterrno='undef' ++i_netinettcp='define' ++i_niin='define' ++i_poll='define' ++i_prot='undef' ++i_pthread='define' ++i_pwd='define' ++i_rpcsvcdbm='undef' ++i_sfio='undef' ++i_sgtty='undef' ++i_shadow='define' ++i_socks='undef' ++i_stdarg='define' ++i_stddef='define' ++i_stdlib='define' ++i_string='define' ++i_sunmath='undef' ++i_sysaccess='undef' ++i_sysdir='define' ++i_sysfile='define' ++i_sysfilio='undef' ++i_sysin='undef' ++i_sysioctl='define' ++i_syslog='define' ++i_sysmman='define' ++i_sysmode='undef' ++i_sysmount='define' ++i_sysndir='undef' ++i_sysparam='define' ++i_syspoll='define' ++i_sysresrc='define' ++i_syssecrt='undef' ++i_sysselct='define' ++i_syssockio='undef' ++i_sysstat='define' ++i_sysstatfs='define' ++i_sysstatvfs='define' ++i_systime='define' ++i_systimek='undef' ++i_systimes='define' ++i_systypes='define' ++i_sysuio='define' ++i_sysun='define' ++i_sysutsname='define' ++i_sysvfs='define' ++i_syswait='define' ++i_termio='undef' ++i_termios='define' ++i_time='define' ++i_unistd='define' ++i_ustat='define' ++i_utime='define' ++i_values='define' ++i_varargs='undef' ++i_varhdr='stdarg.h' ++i_vfork='undef' ++ignore_versioned_solibs='y' ++inc_version_list='5.10.0/arm-linux-thread-multi 5.10.0 5.8.8 5.8.7 5.8.6 5.8.5 5.8.3' ++inc_version_list_init='"5.10.0/arm-linux-thread-multi","5.10.0","5.8.8","5.8.7","5.8.6","5.8.5","5.8.3",0' ++incpath='' ++inews='' ++initialinstalllocation='/usr/bin' ++installarchlib='/var/tmp/perl-root/usr/lib/perl5/5.10.1/arm-linux-thread-multi' ++installbin='/var/tmp/perl-root/usr/bin' ++installhtml1dir='' ++installhtml3dir='' ++installman1dir='/var/tmp/perl-root/usr/share/man/man1' ++installman3dir='/var/tmp/perl-root/usr/share/man/man3' ++installprefix='/var/tmp/perl-root/usr' ++installprefixexp='/var/tmp/perl-root/usr' ++installprivlib='/var/tmp/perl-root/usr/lib/perl5/5.10.1' ++installscript='/var/tmp/perl-root/usr/bin' ++installsitearch='/var/tmp/perl-root/usr/lib/perl5/site_perl/5.10.1/arm-linux-thread-multi' ++installsitebin='/var/tmp/perl-root/usr/bin' ++installsitehtml1dir='' ++installsitehtml3dir='' ++installsitelib='/var/tmp/perl-root/usr/lib/perl5/site_perl/5.10.1' ++installsiteman1dir='/var/tmp/perl-root/usr/share/man/man1' ++installsiteman3dir='/var/tmp/perl-root/usr/share/man/man3' ++installsitescript='/var/tmp/perl-root/usr/bin' ++installstyle='lib/perl5' ++installusrbinperl='undef' ++installvendorarch='/var/tmp/perl-root/usr/lib/perl5/vendor_perl/5.10.1/arm-linux-thread-multi' ++installvendorbin='/var/tmp/perl-root/usr/bin' ++installvendorhtml1dir='' ++installvendorhtml3dir='' ++installvendorlib='/var/tmp/perl-root/usr/lib/perl5/vendor_perl/5.10.1' ++installvendorman1dir='/var/tmp/perl-root/usr/share/man/man1' ++installvendorman3dir='/var/tmp/perl-root/usr/share/man/man3' ++installvendorscript='/var/tmp/perl-root/usr/bin' ++intsize='4' ++issymlink='test -h' ++ivdformat='"ld"' ++ivsize='4' ++ivtype='long' ++known_extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IO/Compress IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs mro re threads threads/shared' ++ksh='' ++ld='arm-openmamba-linux-gnueabi-gcc' ++lddlflags='-shared -O2 -fomit-frame-pointer -fstack-protector -L/usr/arm-openmamba-linux-gnueabi/lib' ++ldflags=' -fstack-protector -L/usr/arm-openmamba-linux-gnueabi/lib' ++ldflags_uselargefiles='' ++ldlibpthname='LD_LIBRARY_PATH' ++less='less' ++lib_ext='.a' ++libc='/lib/libc-2.11.1.so' ++libperl='libperl.so' ++libpth='/usr/local/lib /lib /usr/lib /usr/lib64' ++libs='-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lgdbm_compat' ++libsdirs=' /usr/lib' ++libsfiles=' libnsl.so libgdbm.so libdb.so libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so libgdbm_compat.so' ++libsfound=' /usr/lib/libnsl.so /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libpthread.so /usr/lib/libc.so /usr/lib/libgdbm_compat.so' ++libspath=' /usr/local/lib /lib /usr/lib /usr/lib64' ++libswanted='sfio socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD gdbm_compat' ++libswanted_uselargefiles='' ++line='' ++lint='' ++lkflags='' ++ln='ln' ++lns='/bin/ln -s' ++localtime_r_proto='REENTRANT_PROTO_S_TS' ++locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include' ++loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib' ++longdblsize='12' ++longlongsize='8' ++longsize='4' ++lp='' ++lpr='' ++ls='ls' ++lseeksize='8' ++lseektype='off_t' ++mad='undef' ++madlyh='' ++madlyobj='' ++madlysrc='' ++mail='' ++mailx='' ++make='make' ++make_set_make='#' ++mallocobj='' ++mallocsrc='' ++malloctype='void *' ++man1dir='/usr/share/man/man1' ++man1direxp='/usr/share/man/man1' ++man1ext='1' ++man3dir='/usr/share/man/man3' ++man3direxp='/usr/share/man/man3' ++man3ext='3pm' ++mips_type='' ++mistrustnm='' ++mkdir='mkdir' ++mmaptype='void *' ++modetype='mode_t' ++more='more' ++multiarch='undef' ++mv='' ++myarchname=arm-openmamba-linux-gnueabi' ++mydomain='.localdomain' ++myhostname='localhost' ++myuname='linux tao 2.6.31mamba-64gb #1 smp preempt thu mar 11 19:13:37 cet 2010 i686 i686 i386 gnulinux ' ++n='-n' ++need_va_copy='undef' ++netdb_hlen_type='size_t' ++netdb_host_type='const void *' ++netdb_name_type='const char *' ++netdb_net_type='in_addr_t' ++nm='nm' ++nm_opt='' ++nm_so_opt='--dynamic' ++nonxs_ext='Attribute/Handlers Errno Module/Pluggable Safe Test/Harness' ++nroff='nroff' ++nvEUformat='"E"' ++nvFUformat='"F"' ++nvGUformat='"G"' ++nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0' ++nv_preserves_uv_bits='32' ++nveformat='"e"' ++nvfformat='"f"' ++nvgformat='"g"' ++nvsize='8' ++nvtype='double' ++o_nonblock='O_NONBLOCK' ++obj_ext='.o' ++old_pthread_create_joinable='' ++optimize='-O2 -fomit-frame-pointer' ++orderlib='false' ++osname='linux' ++osvers='2.6.31mamba-64gb' ++otherlibdirs=' ' ++package='perl5' ++pager='/bin/less' ++passcat='cat /etc/passwd' ++patchlevel='10' ++path_sep=':' ++perl5='/usr/bin/perl' ++perl='' ++perl_patchlevel='' ++perladmin='root@localhost' ++perllibs='-lnsl -ldl -lm -lcrypt -lutil -lpthread' ++perlpath='/usr/bin/perl' ++pg='pg' ++phostname='' ++pidtype='pid_t' ++plibpth='' ++pmake='' ++pr='' ++prefix='/usr' ++prefixexp='/usr' ++privlib='/usr/lib/perl5/5.10.1' ++privlibexp='/usr/lib/perl5/5.10.1' ++procselfexe='"/proc/self/exe"' ++prototype='define' ++ptrsize='4' ++quadkind='3' ++quadtype='long long' ++randbits='48' ++randfunc='drand48' ++random_r_proto='REENTRANT_PROTO_I_St' ++randseedtype='long' ++ranlib=':' ++rd_nodata='-1' ++readdir64_r_proto='REENTRANT_PROTO_I_TSR' ++readdir_r_proto='REENTRANT_PROTO_I_TSR' ++revision='5' ++rm='rm' ++rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*' ++rmail='' ++run='' ++runnm='false' ++sGMTIME_max='2147483647' ++sGMTIME_min='-2147483648' ++sLOCALTIME_max='2147483647' ++sLOCALTIME_min='-2147483648' ++sPRIEUldbl='"LE"' ++sPRIFUldbl='"LF"' ++sPRIGUldbl='"LG"' ++sPRIXU64='"LX"' ++sPRId64='"Ld"' ++sPRIeldbl='"Le"' ++sPRIfldbl='"Lf"' ++sPRIgldbl='"Lg"' ++sPRIi64='"Li"' ++sPRIo64='"Lo"' ++sPRIu64='"Lu"' ++sPRIx64='"Lx"' ++sSCNfldbl='"Lf"' ++sched_yield='sched_yield()' ++scriptdir='/usr/bin' ++scriptdirexp='/usr/bin' ++sed='sed' ++seedfunc='srand48' ++selectminbits='32' ++selecttype='fd_set *' ++sendmail='' ++setgrent_r_proto='0' ++sethostent_r_proto='0' ++setlocale_r_proto='0' ++setnetent_r_proto='0' ++setprotoent_r_proto='0' ++setpwent_r_proto='0' ++setservent_r_proto='0' ++sh='/bin/sh' ++shar='' ++sharpbang='#!' ++shmattype='void *' ++shortsize='2' ++shrpenv='' ++shsharp='true' ++sig_count='65' ++sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED ' ++sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "NUM33", "RTMIN", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0' ++sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 6 17 29 31 ' ++sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0' ++sig_size='69' ++signal_t='void' ++sitearch='/usr/lib/perl5/site_perl/5.10.1/arm-linux-thread-multi' ++sitearchexp='/usr/lib/perl5/site_perl/5.10.1/arm-linux-thread-multi' ++sitebin='/usr/bin' ++sitebinexp='/usr/bin' ++sitehtml1dir='' ++sitehtml1direxp='' ++sitehtml3dir='' ++sitehtml3direxp='' ++sitelib='/usr/lib/perl5/site_perl/5.10.1' ++sitelib_stem='/usr/lib/perl5/site_perl' ++sitelibexp='/usr/lib/perl5/site_perl/5.10.1' ++siteman1dir='/usr/share/man/man1' ++siteman1direxp='/usr/share/man/man1' ++siteman3dir='/usr/share/man/man3' ++siteman3direxp='/usr/share/man/man3' ++siteprefix='/usr' ++siteprefixexp='/usr' ++sitescript='/usr/bin' ++sitescriptexp='/usr/bin' ++sizesize='4' ++sizetype='size_t' ++sleep='' ++smail='' ++so='so' ++sockethdr='' ++socketlib='' ++socksizetype='socklen_t' ++sort='sort' ++spackage='Perl5' ++spitshell='cat' ++srand48_r_proto='REENTRANT_PROTO_I_LS' ++srandom_r_proto='REENTRANT_PROTO_I_TS' ++src='.' ++ssizetype='ssize_t' ++startperl='#!/usr/bin/perl' ++startsh='#!/bin/sh' ++static_ext=' ' ++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='' ++strerror_r_proto='REENTRANT_PROTO_B_IBW' ++strings='/usr/include/string.h' ++submit='' ++subversion='1' ++sysman='/usr/share/man/man1' ++tail='' ++tar='' ++targetarch='' ++tbl='' ++tee='' ++test='test' ++timeincl='/usr/include/sys/time.h /usr/include/time.h ' ++timetype='time_t' ++tmpnam_r_proto='REENTRANT_PROTO_B_B' ++to=':' ++touch='touch' ++tr='tr' ++trnl='\n' ++troff='' ++ttyname_r_proto='REENTRANT_PROTO_I_IBW' ++u16size='2' ++u16type='unsigned short' ++u32size='4' ++u32type='unsigned long' ++u64size='8' ++u64type='unsigned long long' ++u8size='1' ++u8type='unsigned char' ++uidformat='"lu"' ++uidsign='1' ++uidsize='4' ++uidtype='uid_t' ++uname='uname' ++uniq='uniq' ++uquadtype='unsigned long long' ++use5005threads='undef' ++use64bitall='undef' ++use64bitint='undef' ++usecrosscompile='undef' ++usedevel='undef' ++usedl='define' ++usedtrace='undef' ++usefaststdio='undef' ++useithreads='define' ++uselargefiles='define' ++uselongdouble='undef' ++usemallocwrap='define' ++usemorebits='undef' ++usemultiplicity='define' ++usemymalloc='n' ++usenm='false' ++useopcode='true' ++useperlio='define' ++useposix='true' ++usereentrant='undef' ++userelocatableinc='undef' ++usesfio='false' ++useshrplib='true' ++usesitecustomize='undef' ++usesocks='undef' ++usethreads='define' ++usevendorprefix='define' ++usevfork='false' ++usrinc='/usr/include' ++uuname='' ++uvXUformat='"lX"' ++uvoformat='"lo"' ++uvsize='4' ++uvtype='unsigned long' ++uvuformat='"lu"' ++uvxformat='"lx"' ++vendorarch='/usr/lib/perl5/vendor_perl/5.10.1/arm-linux-thread-multi' ++vendorarchexp='/usr/lib/perl5/vendor_perl/5.10.1/arm-linux-thread-multi' ++vendorbin='/usr/bin' ++vendorbinexp='/usr/bin' ++vendorhtml1dir=' ' ++vendorhtml1direxp='' ++vendorhtml3dir=' ' ++vendorhtml3direxp='' ++vendorlib='/usr/lib/perl5/vendor_perl/5.10.1' ++vendorlib_stem='/usr/lib/perl5/vendor_perl' ++vendorlibexp='/usr/lib/perl5/vendor_perl/5.10.1' ++vendorman1dir='/usr/share/man/man1' ++vendorman1direxp='/usr/share/man/man1' ++vendorman3dir='/usr/share/man/man3' ++vendorman3direxp='/usr/share/man/man3' ++vendorprefix='/usr' ++vendorprefixexp='/usr' ++vendorscript='/usr/bin' ++vendorscriptexp='/usr/bin' ++version='5.10.1' ++version_patchlevel_string='version 10 subversion 1' ++versiononly='undef' ++vi='' ++voidflags='15' ++xlibpth='/usr/lib/386 /lib/386' ++yacc='yacc' ++yaccflags='' ++zcat='' ++zip='zip' ++PERL_REVISION=5 ++PERL_VERSION=10 ++PERL_SUBVERSION=1 ++PERL_API_REVISION=5 ++PERL_API_VERSION=10 ++PERL_API_SUBVERSION=0 ++PERL_PATCHLEVEL='' ++PERL_CONFIG_SH=true ++: Variables propagated from previous config.sh file. ++libdb_needs_pthread='N' +diff -Nru perl-5.10.1.orig//Cross/Makefile-cross-SH perl-5.10.1/Cross/Makefile-cross-SH +--- perl-5.10.1.orig//Cross/Makefile-cross-SH 2009-06-23 21:41:51.000000000 +0200 ++++ perl-5.10.1/Cross/Makefile-cross-SH 2010-03-25 01:26:38.762301058 +0100 +@@ -1,13 +1,25 @@ + #! /bin/sh ++case $PERL_CONFIG_SH in ++'') ++ if test -f config.sh ++ then TOP=. ++ else ++ echo "Can't find config.sh."; exit 1 ++ fi ++ . $TOP/config.sh ++ ;; ++esac + +-# This file is used to create generic Makefile for cross-compile +-# (borrowed from Makefile.SH) +-# (now only small changes are done to establish cross-compilation) +-# miniperl removed from here, as this is built on HOST +- +-Makefile=Makefile-cross-$CROSS_NAME +- +-. Cross/config-${CROSS_NAME}.sh ++case $CROSS_NAME in ++'') ++ Makefile=Makefile ++ ;; ++*) ++ # if cross-compilation, the Makefile named accordingly ++ Makefile=Makefile-cross-$CROSS_NAME ++ . Cross/config-${CROSS_NAME}.sh ++ ;; ++esac + + # H.Merijn Brand [17 Feb 2004] + # This comment is just to ensure that Configure will find variables that +@@ -35,9 +47,11 @@ + esac + + linklibperl='$(LIBPERL)' ++linklibperl_nonshr='' + shrpldflags='$(LDDLFLAGS)' + ldlibpth='' + DPERL_EXTERNAL_GLOB='-DPERL_EXTERNAL_GLOB' ++DPERL_IS_MINIPERL='-DPERL_IS_MINIPERL' + case "$useshrplib" in + true) + # Prefix all runs of 'miniperl' and 'perl' with +@@ -67,7 +81,8 @@ + -install_name \$(shrpdir)/\$@" + ;; + cygwin*) +- linklibperl="-lperl" ++ shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000" ++ linklibperl="-L. -lperl" + ;; + sunos*) + linklibperl="-lperl" +@@ -79,19 +94,33 @@ + linklibperl="-L. -lperl" + shrpldflags="$shrpldflags -Wl,--image-base,0x57000000" + ;; +- linux*) +- shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" +- ;; + aix*) +- shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp" +- case "$osvers" in +- 3*) shrpldflags="$shrpldflags -e _nostart" ++ case "$cc" in ++ gcc*) ++ shrpldflags="-shared -Wl,-H512 -Wl,-T512 -Wl,-bhalt:4 -Wl,-bM:SRE -Wl,-bE:perl.exp" ++ case "$osvers" in ++ 3*) shrpldflags="$shrpldflags -e _nostart" ++ ;; ++ *) shrpldflags="$shrpldflags -Wl,-bnoentry" ++ ;; ++ esac ++ shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" ++ linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" ++ linklibperl_nonshr='-lperl_nonshr' + ;; +- *) shrpldflags="$shrpldflags -b noentry" ++ *) ++ shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp" ++ case "$osvers" in ++ 3*) shrpldflags="$shrpldflags -e _nostart" ++ ;; ++ *) shrpldflags="$shrpldflags -b noentry" ++ ;; ++ esac ++ shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" ++ linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" ++ linklibperl_nonshr='-lperl_nonshr' + ;; + esac +- shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" +- linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" + ;; + hpux*) + linklibperl="-L `pwd | sed 's/\/UU$//'` -Wl,+s -Wl,+b$archlibexp/CORE -lperl" +@@ -131,18 +160,7 @@ + # INSTALL file, under "Building a shared perl library". + # If there is no pre-existing $libperl, we don't need + # to do anything further. +- if test -f $archlib/CORE/$libperl; then +- rm -f preload +- cat <<'EOT' > preload +-#! /bin/sh +-lib=$1 +-shift +-test -r $lib && export LD_PRELOAD="$lib $LD_PRELOAD" +-exec "$@" +-EOT +- chmod 755 preload +- ldlibpth="$ldlibpth `pwd`/preload `pwd`/$libperl" +- fi ++ echo linux libraries overwritten by cross-compile patches + ;; + os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth" + ;; +@@ -166,7 +184,7 @@ + + : Parallel makes reveal that we have some interdependencies + case $f in +- Math/BigInt/FastCalc) extra_dep="$extra_dep ++ Math/BigInt/FastCalc|Devel/NYTProf) extra_dep="$extra_dep + $this_target: lib/auto/List/Util/Util.$dlext" ;; + Unicode/Normalize) extra_dep="$extra_dep + $this_target: uni.data" ;; +@@ -177,20 +195,38 @@ + for f in $static_ext; do + base=`echo "$f" | sed 's/.*\///'` + static_list="$static_list lib/auto/$f/$base\$(LIB_EXT)" ++ : Parallel makes reveal that we have some interdependencies ++ this_target="lib/auto/$f/$base\$(LIB_EXT)" ++ case $f in ++ Math/BigInt/FastCalc|Devel/NYTProf) extra_dep="$extra_dep ++$this_target: lib/auto/List/Util/Util\$(LIB_EXT)" ;; ++ Unicode/Normalize) extra_dep="$extra_dep ++$this_target: uni.data" ;; ++ esac + done + + nonxs_list=' ' + for f in $nonxs_ext; do +- base=`echo "$f" | sed 's/.*\///'` +- nonxs_list="$nonxs_list ext/$f/pm_to_blib" ++ p=`echo "$f" | tr / -` ++ nonxs_list="$nonxs_list ext/$p/pm_to_blib" + done + ++dtrace_h='' ++dtrace_o='' ++case "$usedtrace" in ++define|true) ++ dtrace_h='perldtrace.h' ++ $dtrace -G -s perldtrace.d -o perldtrace.tmp >/dev/null 2>&1 \ ++ && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' ++ ;; ++esac ++ + echo "Extracting $Makefile (with variable substitutions)" + $spitshell >$Makefile <>$Makefile <>$Makefile <<'!NO!SUBS!' ++ ++CCCMD = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@` ++ ++CCCMDSRC = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $<` + +-CCCMD = \`sh \$(shellflags) cflags-cross-${CROSS_NAME} "optimize='\$(OPTIMIZE)'" \$@\` ++CONFIGPM_FROM_CONFIG_SH = lib/Config.pm lib/Config_heavy.pl ++CONFIGPM = $(CONFIGPM_FROM_CONFIG_SH) lib/Config_git.pl + +-CCCMDSRC = \`sh \$(shellflags) cflags-cross-${CROSS_NAME} "optimize='\$(OPTIMIZE)'" \$<\` ++CONFIGPOD = lib/Config.pod ++ ++CONFIGH = config.h ++!NO!SUBS! ++ ;; ++*) ++ # if cross-compilation ++$spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' + +-CONFIGPM = xlib/$(CROSS_NAME)/Config.pm ++private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h + +-private = preplibrary $(CONFIGPM) $(CROSS_LIB)/Config.pod ++# Files to be built with variable substitution before miniperl ++# is available. ++sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \ ++ makedir.SH myconfig.SH writemain.SH pod/Makefile.SH + + shextract = Makefile cflags config.h makeaperl makedepend \ + makedir myconfig writemain pod/Makefile +@@ -354,11 +432,11 @@ + # Directories of Unicode data files generated by mktables + unidatadirs = lib/unicore/To lib/unicore/lib + +-h1 = EXTERN.h INTERN.h XSUB.h av.h xconfig.h cop.h cv.h dosish.h ++h1 = EXTERN.h INTERN.h XSUB.h av.h $(CONFIGH) cop.h cv.h dosish.h + h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h opcode.h + h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h + h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h +-h5 = utf8.h warnings.h ++h5 = utf8.h warnings.h mydtrace.h + 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 +@@ -367,13 +445,19 @@ + c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c + c5 = $(madlysrc) $(mallocsrc) + +-c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c ++c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c perlmini.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) ++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) + +-obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) ++mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) ++ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) ++obj = $(ndt_obj) $(DTRACE_O) ++ ++perltoc_pod_prereqs = extra.pods pod/perlapi.pod pod/perldelta.pod pod/perlintern.pod pod/perlmodlib.pod ++generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs) + + lintflags = \ + -b \ +@@ -433,20 +517,54 @@ + + splintfiles = $(c1) + +-.c$(OBJ_EXT): +- $(CCCMD) -I$(CROSS_LIB) $(PLDLFLAGS) $*.c ++.c$(OBJ_EXT): ++ $(CCCMD) $(PLDLFLAGS) $*.c + +-.c.i: ++.c.i: + $(CCCMDSRC) -E $*.c > $*.i + + .c.s: + $(CCCMDSRC) -S $*.c + +-all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make +- @echo " "; +- @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." ++#all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) miniperl $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make ++# @echo " "; ++# @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." ++ ++all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) ++ mv miniperl miniperl-arm ++ ln -s /usr/bin/perl miniperl ++ ++more: extra.pods $(private) $(public) ++ ++more2: $(dynamic_ext) + +-.PHONY: all ++more3: $(nonxs_ext) ++ ++more4: extras.make ++ ++sperl$(OBJ_EXT): perl.c $(h) ++ $(RMS) sperl.c ++ $(LNS) perl.c sperl.c ++ $(CCCMD) -DIAMSUID sperl.c ++ $(RMS) sperl.c ++ ++sperl.i: perl.c $(h) ++ $(CCCMDSRC) -DIAMSUID -E perl.c > sperl.i ++ ++.PHONY: all translators utilities ++ ++lib/Config_git.pl git_version.h: make_patchnum.pl ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_patchnum.pl ++ ++# make sure that we recompile perl.c if the git version changes ++perl$(OBJ_EXT): git_version.h ++sperl$(OBJ_EXT): git_version.h ++ ++translators: $(CONFIGPM) FORCE ++ @echo " "; echo " Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all ++ ++utilities: $(CONFIGPM) $(plextract) lib/lib.pm FORCE ++ @echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all + + + # This is now done by installman only if you actually want the man pages. +@@ -471,8 +589,23 @@ + opmini\$(OBJ_EXT): opmini.c + \$(CCCMD) \$(PLDLFLAGS) $DPERL_EXTERNAL_GLOB opmini.c + +-globals\$(OBJ_EXT): ++perlmini.c: perl.c ++ \$(RMS) perlmini.c ++ \$(CPS) perl.c perlmini.c ++ ++perlmini\$(OBJ_EXT): perlmini.c ++ \$(CCCMD) \$(PLDLFLAGS) $DPERL_IS_MINIPERL perlmini.c ++ ++globals\$(OBJ_EXT): uudmap.h + ++uudmap.h: generate_uudmap\$(HOST_EXE_EXT) ++ \$(RUN) ./generate_uudmap\$(HOST_EXE_EXT) >uudmap.h ++ ++generate_uudmap\$(HOST_EXE_EXT): generate_uudmap\$(OBJ_EXT) ++ \$(HOSTCC) -o generate_uudmap\$(EXE_EXT) \$(LDFLAGS) generate_uudmap\$(OBJ_EXT) \$(libs) ++ ++#generate_uudmap\$(OBJ_EXT): generate_uudmap.c ++# \$(HOSTCC) $(PLDLFLAGS) $*.c + !GROK!THIS! + $spitshell >>$Makefile <<'!NO!SUBS!' + miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h +@@ -481,19 +614,9 @@ + perlmain.c: miniperlmain.c config.sh $(FIRSTMAKEFILE) + sh writemain $(DYNALOADER) $(static_ext) > perlmain.c + +-!NO!SUBS! +-case "$osname" in +-cygwin) +- ;; # Let cygwin/Makefile.SHs do its work. +-*) +- $spitshell >>$Makefile <<'!NO!SUBS!' + perlmain$(OBJ_EXT): perlmain.c + $(CCCMD) $(PLDLFLAGS) $*.c + +-!NO!SUBS! +- ;; +-esac +-$spitshell >>$Makefile <<'!NO!SUBS!' + # The file ext.libs is a list of libraries that must be linked in + # for static extensions, e.g. -lm -lgdbm, etc. The individual + # static extension Makefile's add to it. +@@ -531,9 +654,9 @@ + $(RMS) $(LIBPERL_NONSHR) + $(AR) rcu $(LIBPERL_NONSHR) $(obj) + +-$(MINIPERL_NONSHR): $(LIBPERL_NONSHR) miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) ++$(MINIPERL_NONSHR): $(LIBPERL_NONSHR) miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) + $(CC) $(LDFLAGS) -o $(MINIPERL_NONSHR) miniperlmain$(OBJ_EXT) \ +- opmini$(OBJ_EXT) $(LIBPERL_NONSHR) $(LIBS) ++ opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(LIBPERL_NONSHR) $(LIBS) + + MINIPERLEXP = $(MINIPERL_NONSHR) + +@@ -566,15 +689,48 @@ + + !NO!SUBS! + ;; ++cygwin) ++ $spitshell >>$Makefile <<'!NO!SUBS!' ++cygwin.c: cygwin/cygwin.c ++ $(LNS) cygwin/cygwin.c ++ ++LIBPERL_NONSHR = libperl$(LIB_EXT) ++ ++$(LIBPERL_NONSHR): $(obj) ++ $(RMS) $(LIBPERL_NONSHR) ++ $(AR) rcu $(LIBPERL_NONSHR) $(obj) ++ ++!NO!SUBS! ++ ;; + esac + +-if test -r $Makefile_s ; then ++if test -s $Makefile_s ; then + . $Makefile_s + $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' ++$(DTRACE_H): perldtrace.d ++ $(DTRACE) -h -s perldtrace.d -o $(DTRACE_H) ++ ++mydtrace.h: $(DTRACE_H) ++ ++!NO!SUBS! ++ ;; ++ esac ++ case "$dtrace_o" in ++ ?*) ++ $spitshell >>$Makefile <<'!NO!SUBS!' ++$(DTRACE_O): perldtrace.d ++ $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj) ++ ++!NO!SUBS! ++ ;; ++ esac + $spitshell >>$Makefile <<'!NO!SUBS!' + $(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT) + !NO!SUBS! +@@ -616,13 +772,63 @@ + + !NO!SUBS! + ++ case "${osname}${osvers}" in ++ aix*|beos*) ++ $spitshell >>$Makefile <<'!NO!SUBS!' ++miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) ++ $(CC) -o miniperl$(EXE_EXT) $(CLDFLAGS) \ ++ $(mini_obj) \ ++ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) ++ $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest ++!NO!SUBS! ++ ;; ++ next4*) ++ $spitshell >>$Makefile <<'!NO!SUBS!' ++miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(mini_obj) perlmini$(OBJ_EXT) opmini$(OBJ_EXT) ++ $(CC) -o miniperl$(EXE_EXT) $(mini_obj) \ ++ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) ++ $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest ++!NO!SUBS! ++ ;; ++ darwin*) ++ case "$osvers" in ++ [1-6].*) ;; ++ *) case "$ldflags" in ++ *"-flat_namespace"*) ;; ++ *) # to allow opmini.o to override stuff in libperl.dylib ++ $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' ++miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) ++ -@rm -f miniperl.xok ++ $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o miniperl$(EXE_EXT) \ ++ $(mini_obj) \ ++ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) ++ $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest ++!NO!SUBS! ++ ;; ++ *) ++ $spitshell >>$Makefile <<'!NO!SUBS!' ++miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) ++ -@rm -f miniperl.xok ++ $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl$(EXE_EXT) \ ++ $(mini_obj) \ ++ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) ++# $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest ++!NO!SUBS! ++ ;; ++ esac + + $spitshell >>$Makefile <<'!NO!SUBS!' + + perl$(EXE_EXT): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) + -@rm -f miniperl.xok +- $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX)dyn$(EXE_EXT) $(PERL_PROFILE_LDFLAGS) $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) +- $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX)$(EXE_EXT) $(PERL_PROFILE_LDFLAGS) $(CLDFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) ++ $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX) $(PERL_PROFILE_LDFLAGS) $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) + + # Purify/Quantify Perls. + +@@ -730,91 +936,128 @@ + # checks as well as the special code to validate that the script in question + # has been invoked correctly. + ++!NO!SUBS! ++ ++case "${osname}" in ++aix*) ++$spitshell >>$Makefile <<'!NO!SUBS!' ++suidperl$(EXE_EXT): $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) ++ $(SHRPENV) $(LDLIBPTH) $(CC) -o suidperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(static_ext) $(LLIBPERL_NONSHR) $(LLIBPERL) `cat ext.libs` $(libs) ++ ++!NO!SUBS! ++;; ++*) ++$spitshell >>$Makefile <<'!NO!SUBS!' + suidperl$(EXE_EXT): $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) + $(SHRPENV) $(LDLIBPTH) $(CC) -o suidperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) + + !NO!SUBS! ++;; ++esac + + fi + ++# Some environment have no system(), which mkpport uses. ++# Let's try running the commands with shell. ++case "${osname}" in ++catamount) ++$spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' ++.PHONY: makeppport ++makeppport: $(CONFIGPM) ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib mkppport + +-sperl$(OBJ_EXT): perl.c $(h) +- $(RMS) sperl.c +- $(LNS) perl.c sperl.c +- $(CCCMD) -DIAMSUID sperl.c +- $(RMS) sperl.c ++!NO!SUBS! ++;; ++esac ++ ++$spitshell >>$Makefile <<'!NO!SUBS!' + + # We have to call our ./makedir because Ultrix 4.3 make can't handle the line + # test -d lib/auto || mkdir lib/auto + # We need to autosplit in two steps because VOS can't handle so many args + # + .PHONY: preplibrary +-preplibrary: miniperl $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL) ++preplibrary: $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL) + @sh ./makedir lib/auto + @echo " AutoSplitting perl library" +- $(LDLIBPTH) ./miniperl -Ilib -MCross -e 'use AutoSplit; \ +- autosplit_lib_modules(@ARGV)' lib/*.pm +- $(LDLIBPTH) ./miniperl -Ilib -MCross -e 'use AutoSplit; \ +- autosplit_lib_modules(@ARGV)' lib/*/*.pm ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib -MAutoSplit -MFile::Find -e 'find ({no_chdir=>1, wanted => sub {autosplit_lib_modules($$_) if /\.pm$$/}}, "lib")' + $(MAKE) lib/re.pm + +-.PHONY: makeppport +-makeppport: miniperl$(EXE_EXT) $(CONFIGPM) +- $(LDLIBPTH) ./miniperl$(EXE_EXT) -Ilib mkppport ++$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh configpm Porting/Glossary lib/Config_git.pl ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib configpm + +-$(CROSS_LIB)/Config.pod: config.sh miniperl configpm Porting/Glossary +- $(LDLIBPTH) ./miniperl -Ilib configpm --cross=$(CROSS_NAME) +- cp *.h $(CROSS_LIB)/ +- cp ext/re/re.pm $(LIBDIR)/ +- +-$(CONFIGPM): $(CROSS_LIB)/Config.pod xconfig.h ++lib/ExtUtils/Miniperl.pm: miniperlmain.c minimod.pl $(CONFIGPM) ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) minimod.pl > lib/ExtUtils/Miniperl.pm + + lib/re.pm: ext/re/re.pm + @-rm -f $@ + cp ext/re/re.pm lib/re.pm + +-$(plextract): miniperl $(CONFIGPM) x2p/s2p ++$(plextract): $(CONFIGPM) x2p/s2p + @-rm -f $@ +- $(LDLIBPTH) ./miniperl -I`pwd`/lib $@.PL ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -I"`pwd`/lib" $@.PL ++ ++x2p/s2p: $(CONFIGPM) x2p/s2p.PL ++ cd x2p; $(LDLIBPTH) $(MAKE) s2p + +-lib/lib.pm: miniperl $(CONFIGPM) ++lib/lib.pm: $(CONFIGPM) + @-rm -f $@ +- $(LDLIBPTH) ./miniperl -Ilib -MCross lib/lib_pm.PL ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib lib/lib_pm.PL + + unidatafiles $(unidatafiles): uni.data + +-uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables +- cd lib/unicore && $(LDLIBPTH) ../../miniperl -I../../lib mktables -w ++uni.data: $(CONFIGPM) lib/unicore/mktables ++ cd lib/unicore && $(LDLIBPTH) $(RUN) ../../miniperl$(EXE_EXT) -I../../lib mktables -w + touch uni.data + +-extra.pods: miniperl ++# perl$(EXE_EXT) and ext because buildtoc uses Text::Wrap uses re ++# But also this ensures that all extensions are built before we try to scan ++# them, which picks up Devel::PPPort's documentation. ++pod/perltoc.pod: $(perltoc_pod_prereqs) perl$(EXE_EXT) $(ext) pod/buildtoc ++ $(LDLIBPTH) $(RUN) ./perl$(EXE_EXT) -Ilib pod/buildtoc --build-toc -q ++ ++pod/perlapi.pod pod/perlintern.pod: autodoc.pl embed.fnc ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib autodoc.pl ++ ++pod/perlmodlib.pod: pod/perlmodlib.PL MANIFEST ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib pod/perlmodlib.PL -q ++ ++pod/perldelta.pod: pod/perl5101delta.pod ++ $(LNS) perl5101delta.pod pod/perldelta.pod ++ ++extra.pods: + -@test ! -f extra.pods || rm -f `cat extra.pods` + -@rm -f extra.pods + -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ + nx=`echo $$x | sed -e "s/README\.//"`; \ +- cd pod ; $(LNS) ../$$x "perl"$$nx".pod" ; cd .. ; \ ++ $(LNS) ../$$x "pod/perl"$$nx".pod" ; \ + echo "pod/perl"$$nx".pod" >> extra.pods ; \ + done +- -@rm -f pod/perlvms.pod +- -@test -f vms/perlvms.pod && cd pod && $(LNS) ../vms/perlvms.pod perlvms.pod && cd .. && echo "pod/perlvms.pod" >> extra.pods +- -@rm -f pod/perldelta.pod +- -@test -f pod/perl5100delta.pod && cd pod && $(LNS) perl5100delta.pod perldelta.pod && cd .. && echo "pod/perldelta.pod" >> extra.pods # See buildtoc + + extras.make: perl$(EXE_EXT) +- -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst` ++ -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) $(RUN) ./perl -Ilib -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst` + + extras.test: perl$(EXE_EXT) +- -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&test(@ARGV)' `cat extras.lst` ++ -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) $(RUN) ./perl -Ilib -MCPAN -e '@ARGV&&test(@ARGV)' `cat extras.lst` + + extras.install: perl$(EXE_EXT) +- -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` ++ -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) $(RUN) ./perl -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` + + .PHONY: install install-strip install-all install-verbose install-silent \ + no-install install.perl install.man install.html + + META.yml: Porting/makemeta Porting/Maintainers.pl Porting/Maintainers.pm +- $(LDLIBPTH) ./miniperl -Ilib Porting/makemeta ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib Porting/makemeta + + install-strip: + $(MAKE) STRIPFLAGS=-s install DESTDIR="$(DESTDIR)" +@@ -835,17 +1078,13 @@ + INSTALL_DEPENDENCE = all + + install.perl: $(INSTALL_DEPENDENCE) installperl +- $(LDLIBPTH) ./perl installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) +- -@test ! -s extras.lst || $(MAKE) extras.install +- +-install.man: all installman +- $(LDLIBPTH) ./perl installman --destdir=$(DESTDIR) $(INSTALLFLAGS) ++ /usr/bin/perl -Ifake_config_library -MConfig installperl $(INSTALLFLAGS) $(STRIPFLAGS) + + # XXX Experimental. Hardwired values, but useful for testing. + # Eventually Configure could ask for some of these values. + install.html: all installhtml + -@test -f README.vms && cd vms && $(LNS) ../README.vms README_vms.pod && cd .. +- $(LDLIBPTH) ./perl installhtml \ ++ $(LDLIBPTH) $(RUN) ./perl installhtml \ + --podroot=. --podpath=. --recurse \ + --htmldir=$(privlib)/html \ + --htmlroot=$(privlib)/html \ +@@ -909,16 +1148,19 @@ + + .PHONY: regen_headers regen_all + +-regen regen_headers: FORCE ++regen: FORCE + -perl regen.pl + ++regen_headers: FORCE ++ -perl regen.pl -v ++ + regen_all: regen + + .PHONY: manisort manicheck + + manisort: FORCE +- LC_ALL=C sort -fdc MANIFEST || (echo "WARNING: re-sorting MANIFEST"; \ +- LC_ALL=C sort -fdo MANIFEST MANIFEST) ++ @perl Porting/manisort -q || (echo "WARNING: re-sorting MANIFEST"; \ ++ perl Porting/manisort -q -o MANIFEST; sh -c true) + + manicheck: FORCE + perl Porting/manicheck +@@ -933,34 +1175,17 @@ + # + # DynaLoader may be needed for extensions that use Makefile.PL. + +-###$(DYNALOADER).c: $(EXTDIR)/DynaLoader/dl_dld.xs $(CONFIGPM) +-### if not exist $(AUTODIR) mkdir $(AUTODIR) +-### cd $(EXTDIR)\$(*B) +-### $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) $(*B)_pm.PL +-### $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) XSLoader_pm.PL +-### cd ..\..\win32 +-### $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL) +-### $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL) +-### cd $(EXTDIR)\$(*B) +-### $(XSUBPP) dl_win32.xs > $(*B).c +-### cd ..\..\win32 +-### +-###$(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs +-### $(COPY) dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs +- +- +- + $(DYNALOADER): preplibrary FORCE +- @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) + +-d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE +- @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic ++d_dummy $(dynamic_ext): preplibrary makeppport $(DYNALOADER) FORCE ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic + +-s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE +- @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) ++s_dummy $(static_ext): preplibrary makeppport $(DYNALOADER) FORCE ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) + +-n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE +- @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) ++n_dummy $(nonxs_ext): preplibrary FORCE ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + !NO!SUBS! + + $spitshell >>$Makefile </dev/null 2>&1; then \ +- $(MAKE) TEST_ARGS=$(TEST_ARGS) TESTFILE=$(TESTFILE) _test_tty ; \ ++ $(MAKE) TEST_ARGS='$(TEST_ARGS)' TESTFILE=$(TESTFILE) _test_tty ; \ + else \ +- $(MAKE) TEST_ARGS=$(TEST_ARGS) TESTFILE=$(TESTFILE) _test_notty ; \ ++ $(MAKE) TEST_ARGS='$(TEST_ARGS)' TESTFILE=$(TESTFILE) _test_notty ; \ + fi + @echo "Ran tests" > t/rantests + +@@ -1185,7 +1412,7 @@ + + minitest.utf16: minitest.prep + - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \ +- && $(LDLIBPTH) ./perl TEST -minitest -utf16 base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t tags + + ctags: +- ctags -f Tags -N --totals --languages=c --langmap=c:+.h --exclude=opmini.c *.c *.h ++ ctags -f Tags -N --totals --languages=c --langmap=c:+.h --exclude=opmini.c --exclude=perlmini.c *.c *.h + + # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE + # If this runs make out of memory, delete /usr/include lines. + !NO!SUBS! + +-$eunicefix $Makefile ++$eunicefix Makefile + case `pwd` in + *SH) +- $rm -f ../$Makefile +- $ln $Makefile ../$Makefile ++ $rm -f ../Makefile ++ $ln Makefile ../Makefile + ;; + esac + $rm -f $firstmakefile +diff -Nru perl-5.10.1.orig//Cross/Makefile.SH.patch perl-5.10.1/Cross/Makefile.SH.patch +--- perl-5.10.1.orig//Cross/Makefile.SH.patch 2009-02-12 23:58:10.000000000 +0100 ++++ perl-5.10.1/Cross/Makefile.SH.patch 2010-03-25 01:28:53.907175434 +0100 +@@ -1,6 +1,6 @@ +---- ../Makefile.SH +-+++ ../Makefile.SH +-@@ -129,18 +129,7 @@ ++--- ../Makefile.SH 2009-08-03 22:43:30.000000000 +0200 +++++ Makefile-cross-SH 2010-03-25 01:26:38.762301058 +0100 ++@@ -160,18 +160,7 @@ + # INSTALL file, under "Building a shared perl library". + # If there is no pre-existing $libperl, we don't need + # to do anything further. +@@ -20,14 +20,14 @@ + ;; + os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth" + ;; +-@@ -389,9 +378,21 @@ ++@@ -537,9 +526,21 @@ + .c.s: + $(CCCMDSRC) -S $*.c + +--all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make ++-all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) miniperl $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make + - @echo " "; + - @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." +-+#all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make +++#all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) miniperl $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make + +# @echo " "; + +# @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." + + +@@ -43,11 +43,19 @@ + + + +more4: extras.make + +- .PHONY: all compile translators utilities +- +-@@ -401,10 +402,10 @@ +- cd x2p; $(MAKE) compile; +- cd pod; $(MAKE) compile; ++ sperl$(OBJ_EXT): perl.c $(h) ++ $(RMS) sperl.c ++@@ -552,17 +553,17 @@ ++ ++ .PHONY: all translators utilities ++ ++-lib/Config_git.pl git_version.h: miniperl$(EXE_EXT) make_patchnum.pl +++lib/Config_git.pl git_version.h: make_patchnum.pl ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_patchnum.pl ++ ++ # make sure that we recompile perl.c if the git version changes ++ perl$(OBJ_EXT): git_version.h ++ sperl$(OBJ_EXT): git_version.h + + -translators: miniperl$(EXE_EXT) $(CONFIGPM) FORCE + +translators: $(CONFIGPM) FORCE +@@ -58,25 +66,37 @@ + @echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all + + +-@@ -579,7 +580,7 @@ +- $(CC) -o miniperl $(CLDFLAGS) \ +- `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \ +- miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs) +-- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest +-+# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest ++@@ -601,8 +602,10 @@ ++ \$(RUN) ./generate_uudmap\$(HOST_EXE_EXT) >uudmap.h ++ ++ generate_uudmap\$(HOST_EXE_EXT): generate_uudmap\$(OBJ_EXT) ++- \$(CC) -o generate_uudmap\$(EXE_EXT) \$(LDFLAGS) generate_uudmap\$(OBJ_EXT) \$(libs) +++ \$(HOSTCC) -o generate_uudmap\$(EXE_EXT) \$(LDFLAGS) generate_uudmap\$(OBJ_EXT) \$(libs) ++ +++#generate_uudmap\$(OBJ_EXT): generate_uudmap.c +++# \$(HOSTCC) $(PLDLFLAGS) $*.c ++ !GROK!THIS! ++ $spitshell >>$Makefile <<'!NO!SUBS!' ++ miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h ++@@ -816,7 +819,7 @@ ++ $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl$(EXE_EXT) \ ++ $(mini_obj) \ ++ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) ++- $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest +++# $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest + !NO!SUBS! + ;; +- next4*) +-@@ -587,7 +588,7 @@ +- miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT) +- $(CC) -o miniperl `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \ +- miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs) +-- $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest +-+# $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest ++ esac ++@@ -970,7 +973,7 @@ ++ *) ++ $spitshell >>$Makefile <<'!NO!SUBS!' ++ .PHONY: makeppport ++-makeppport: miniperl$(EXE_EXT) $(CONFIGPM) +++makeppport: $(CONFIGPM) ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib mkppport ++ + !NO!SUBS! +- ;; +- darwin*) +-@@ -754,7 +755,7 @@ ++@@ -984,36 +987,36 @@ + # We need to autosplit in two steps because VOS can't handle so many args + # + .PHONY: preplibrary +@@ -84,28 +104,25 @@ + +preplibrary: $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL) + @sh ./makedir lib/auto + @echo " AutoSplitting perl library" +- $(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \ +-@@ -763,35 +764,35 @@ +- autosplit_lib_modules(@ARGV)' lib/*/*.pm ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib -MAutoSplit -MFile::Find -e 'find ({no_chdir=>1, wanted => sub {autosplit_lib_modules($$_) if /\.pm$$/}}, "lib")' + $(MAKE) lib/re.pm + +--lib/Config.pod: config.sh miniperl$(EXE_EXT) configpm Porting/Glossary +-+lib/Config.pod: config.sh configpm Porting/Glossary +- $(LDLIBPTH) ./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl lib/Config.pm +- +- $(CONFIGPM): lib/Config.pod ++-$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh miniperl$(EXE_EXT) configpm Porting/Glossary lib/Config_git.pl +++$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh configpm Porting/Glossary lib/Config_git.pl ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib configpm + + -lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl $(CONFIGPM) + +lib/ExtUtils/Miniperl.pm: miniperlmain.c minimod.pl $(CONFIGPM) +- $(LDLIBPTH) ./miniperl minimod.pl > lib/ExtUtils/Miniperl.pm ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) minimod.pl > lib/ExtUtils/Miniperl.pm + + lib/re.pm: ext/re/re.pm ++ @-rm -f $@ + cp ext/re/re.pm lib/re.pm + + -$(plextract): miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p + +$(plextract): $(CONFIGPM) x2p/s2p + @-rm -f $@ +- $(LDLIBPTH) ./miniperl -I`pwd`/lib $@.PL ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -I"`pwd`/lib" $@.PL + + -x2p/s2p: miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p.PL + +x2p/s2p: $(CONFIGPM) x2p/s2p.PL +@@ -114,62 +131,70 @@ + -lib/lib.pm: miniperl$(EXE_EXT) $(CONFIGPM) + +lib/lib.pm: $(CONFIGPM) + @-rm -f $@ +- $(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib lib/lib_pm.PL + + unidatafiles $(unidatafiles): uni.data + + -uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables + +uni.data: $(CONFIGPM) lib/unicore/mktables +- cd lib/unicore && $(LDLIBPTH) ../../miniperl -I../../lib mktables -w ++ cd lib/unicore && $(LDLIBPTH) $(RUN) ../../miniperl$(EXE_EXT) -I../../lib mktables -w + touch uni.data + ++@@ -1023,16 +1026,16 @@ ++ pod/perltoc.pod: $(perltoc_pod_prereqs) perl$(EXE_EXT) $(ext) pod/buildtoc ++ $(LDLIBPTH) $(RUN) ./perl$(EXE_EXT) -Ilib pod/buildtoc --build-toc -q ++ ++-pod/perlapi.pod pod/perlintern.pod: miniperl$(EXE_EXT) autodoc.pl embed.fnc +++pod/perlapi.pod pod/perlintern.pod: autodoc.pl embed.fnc ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib autodoc.pl ++ ++-pod/perlmodlib.pod: miniperl$(EXE_EXT) pod/perlmodlib.PL MANIFEST +++pod/perlmodlib.pod: pod/perlmodlib.PL MANIFEST ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib pod/perlmodlib.PL -q ++ ++ pod/perldelta.pod: pod/perl5101delta.pod ++ $(LNS) perl5101delta.pod pod/perldelta.pod ++ + -extra.pods: miniperl$(EXE_EXT) + +extra.pods: +- -@test -f extra.pods && rm -f `cat extra.pods` ++ -@test ! -f extra.pods || rm -f `cat extra.pods` + -@rm -f extra.pods + -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ +-@@ -837,18 +838,7 @@ ++@@ -1075,11 +1078,7 @@ + INSTALL_DEPENDENCE = all + + install.perl: $(INSTALL_DEPENDENCE) installperl +-- if [ -n "$(COMPILE)" ]; \ +-- then \ +-- cd utils; $(MAKE) compile; \ +-- cd ../x2p; $(MAKE) compile; \ +-- cd ../pod; $(MAKE) compile; \ +-- else :; \ +-- fi +-- $(LDLIBPTH) ./perl installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) +-- $(MAKE) extras.install ++- $(LDLIBPTH) $(RUN) ./perl installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) ++- -@test ! -s extras.lst || $(MAKE) extras.install + - + -install.man: all installman +-- $(LDLIBPTH) ./perl installman --destdir=$(DESTDIR) $(INSTALLFLAGS) ++- $(LDLIBPTH) $(RUN) ./perl installman --destdir=$(DESTDIR) $(INSTALLFLAGS) + + /usr/bin/perl -Ifake_config_library -MConfig installperl $(INSTALLFLAGS) $(STRIPFLAGS) + + # XXX Experimental. Hardwired values, but useful for testing. + # Eventually Configure could ask for some of these values. +-@@ -950,16 +940,16 @@ ++@@ -1176,16 +1175,16 @@ + # + # DynaLoader may be needed for extensions that use Makefile.PL. + + -$(DYNALOADER): miniperl$(EXE_EXT) preplibrary FORCE + +$(DYNALOADER): preplibrary FORCE +- @$(LDLIBPTH) sh ext/util/make_ext $(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) + +--d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE +-+d_dummy $(dynamic_ext): preplibrary $(DYNALOADER) FORCE +- @$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) +- +--s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE +-+s_dummy $(static_ext): preplibrary $(DYNALOADER) FORCE +- @$(LDLIBPTH) sh ext/util/make_ext $(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) +- +--n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE +-+n_dummy $(nonxs_ext): preplibrary $(DYNALOADER) FORCE +- @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) ++-d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE +++d_dummy $(dynamic_ext): preplibrary makeppport $(DYNALOADER) FORCE ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic ++ ++-s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE +++s_dummy $(static_ext): preplibrary makeppport $(DYNALOADER) FORCE ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) ++ ++-n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary FORCE +++n_dummy $(nonxs_ext): preplibrary FORCE ++ $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) ++ !NO!SUBS! + +- .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \ +-@@ -1101,7 +1091,7 @@ ++@@ -1358,7 +1357,7 @@ + + test_prep_pre: preplibrary utilities $(nonxs_ext) + +@@ -178,12 +203,12 @@ + PERL=./perl $(MAKE) _test_prep + + _test_tty: +-@@ -1214,7 +1204,7 @@ ++@@ -1472,7 +1471,7 @@ + + # Can't depend on lib/Config.pm because that might be where miniperl + # is crashing. + -minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep + +minitest: lib/re.pm minitest.prep + - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \ +- && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t ) { die "You must run as root to install suidperl\n"; } +- + $installbin || die "No installbin directory in config.sh\n"; + -d $installbin || mkpath($installbin, $opts{verbose}, 0777); + -d $installbin || $opts{notify} || die "$installbin is not a directory\n"; diff --git a/perl-5.8.7-can_2005_0448.patch b/perl-5.8.7-can_2005_0448.patch new file mode 100644 index 0000000..a981401 --- /dev/null +++ b/perl-5.8.7-can_2005_0448.patch @@ -0,0 +1,280 @@ +--- perl-5.8.7/lib/File/Path.pm 2005-05-05 18:00:32.000000000 +0200 ++++ perl-5.8.7-fix/lib/File/Path.pm 2005-06-06 11:19:45.000000000 +0200 +@@ -72,33 +72,17 @@ + + =item * + +-a boolean value, which if TRUE will cause C to +-skip any files to which you do not have delete access +-(if running under VMS) or write access (if running +-under another OS). This will change in the future when +-a criterion for 'delete permission' under OSs other +-than VMS is settled. (defaults to FALSE) ++a boolean value, which if FALSE (the default for non-root users) will ++cause C to adjust the mode of directories (if required) prior ++to attempting to remove the contents. Note that on interruption or ++failure of C, directories may be left with more permissive ++modes for the owner. + + =back + + It returns the number of files successfully deleted. Symlinks are + simply deleted and not followed. + +-B There are race conditions internal to the implementation of +-C making it unsafe to use on directory trees which may be +-altered or moved while C is running, and in particular on any +-directory trees with any path components or subdirectories potentially +-writable by untrusted users. +- +-Additionally, if the third parameter is not TRUE and C is +-interrupted, it may leave files and directories with permissions altered +-to allow deletion (and older versions of this module would even set +-files and directories to world-read/writable!) +- +-Note also that the occurrence of errors in C can be determined I +-by trapping diagnostic messages using C<$SIG{__WARN__}>; it is not apparent +-from the return value. +- + =head1 DIAGNOSTICS + + =over 4 +@@ -124,6 +108,7 @@ + use Exporter (); + use strict; + use warnings; ++use Cwd 'getcwd'; + + our $VERSION = "1.07"; + our @ISA = qw( Exporter ); +@@ -172,111 +157,128 @@ + @created; + } + +-sub rmtree { +- my($roots, $verbose, $safe) = @_; +- my(@files); +- my($count) = 0; +- $verbose ||= 0; +- $safe ||= 0; +- +- if ( defined($roots) && length($roots) ) { +- $roots = [$roots] unless ref $roots; +- } +- else { +- carp "No root path(s) specified\n"; +- return 0; +- } +- +- my($root); +- foreach $root (@{$roots}) { +- if ($Is_MacOS) { +- $root = ":$root" if $root !~ /:/; +- $root =~ s#([^:])\z#$1:#; +- } else { +- $root =~ s#/\z##; ++sub _rmtree; ++sub _rmtree ++{ ++ my ($path, $prefix, $up, $up_dev, $up_ino, $verbose, $safe) = @_; ++ ++ my ($dev, $ino) = lstat $path or return 0; ++ unless (-d _) ++ { ++ print "unlink $prefix$path\n" if $verbose; ++ unless (unlink $path) ++ { ++ carp "Can't remove file $prefix$path ($!)"; ++ return 0; + } +- (undef, undef, my $rp) = lstat $root or next; +- $rp &= 07777; # don't forget setuid, setgid, sticky bits +- if ( -d _ ) { +- # notabene: 0700 is for making readable in the first place, +- # it's also intended to change it to writable in case we have +- # to recurse in which case we are better than rm -rf for +- # subtrees with strange permissions +- chmod($rp | 0700, ($Is_VMS ? VMS::Filespec::fileify($root) : $root)) +- or carp "Can't make directory $root read+writeable: $!" +- unless $safe; +- +- if (opendir my $d, $root) { +- no strict 'refs'; +- if (!defined ${"\cTAINT"} or ${"\cTAINT"}) { +- # Blindly untaint dir names +- @files = map { /^(.*)$/s ; $1 } readdir $d; +- } else { +- @files = readdir $d; +- } +- closedir $d; +- } +- else { +- carp "Can't read $root: $!"; +- @files = (); +- } ++ return 1; ++ } + +- # Deleting large numbers of files from VMS Files-11 filesystems +- # is faster if done in reverse ASCIIbetical order +- @files = reverse @files if $Is_VMS; +- ($root = VMS::Filespec::unixify($root)) =~ s#\.dir\z## if $Is_VMS; +- if ($Is_MacOS) { +- @files = map("$root$_", @files); +- } else { +- @files = map("$root/$_", grep $_!~/^\.{1,2}\z/s,@files); +- } +- $count += rmtree(\@files,$verbose,$safe); +- if ($safe && +- ($Is_VMS ? !&VMS::Filespec::candelete($root) : !-w $root)) { +- print "skipped $root\n" if $verbose; +- next; +- } +- chmod $rp | 0700, $root +- or carp "Can't make directory $root writeable: $!" +- if $force_writeable; +- print "rmdir $root\n" if $verbose; +- if (rmdir $root) { +- ++$count; +- } +- else { +- carp "Can't remove directory $root: $!"; +- chmod($rp, ($Is_VMS ? VMS::Filespec::fileify($root) : $root)) +- or carp("and can't restore permissions to " +- . sprintf("0%o",$rp) . "\n"); +- } +- } +- else { +- if ($safe && +- ($Is_VMS ? !&VMS::Filespec::candelete($root) +- : !(-l $root || -w $root))) +- { +- print "skipped $root\n" if $verbose; +- next; +- } +- chmod $rp | 0600, $root +- or carp "Can't make file $root writeable: $!" +- if $force_writeable; +- print "unlink $root\n" if $verbose; +- # delete all versions under VMS +- for (;;) { +- unless (unlink $root) { +- carp "Can't unlink file $root: $!"; +- if ($force_writeable) { +- chmod $rp, $root +- or carp("and can't restore permissions to " +- . sprintf("0%o",$rp) . "\n"); +- } +- last; +- } +- ++$count; +- last unless $Is_VMS && lstat $root; +- } ++ unless (chdir $path) ++ { ++ carp "Can't chdir to $prefix$path ($!)"; ++ return 0; ++ } ++ ++ # avoid a race condition where a directory may be replaced by a ++ # symlink between the lstat and the chdir ++ my ($new_dev, $new_ino, $perm) = stat '.'; ++ unless ("$new_dev:$new_ino" eq "$dev:$ino") ++ { ++ croak "Directory $prefix$path changed before chdir, aborting"; ++ } ++ ++ $perm &= 07777; ++ my $nperm = $perm | 0700; ++ unless ($safe or $nperm == $perm or chmod $nperm, '.') ++ { ++ carp "Can't make directory $prefix$path read+writeable ($!)"; ++ $nperm = $perm; ++ } ++ ++ my $count = 0; ++ if (opendir my $dir, '.') ++ { ++ my $entry; ++ while (defined ($entry = readdir $dir)) ++ { ++ next if $entry =~ /^\.\.?$/; ++ $entry =~ /^(.*)$/s; $entry = $1; # untaint ++ $count += _rmtree $entry, "$prefix$path/", '..', $dev, $ino, ++ $verbose, $safe; + } ++ ++ closedir $dir; ++ } ++ ++ # restore directory permissions if required (in case the rmdir ++ # below fails) now, while we're still in the directory and may do ++ # so without a race via '.' ++ unless ($nperm == $perm or chmod $perm, '.') ++ { ++ carp "Can't restore permissions on directory $prefix$path ($!)"; ++ } ++ ++ # don't leave the caller in an unexpected directory ++ unless (chdir $up) ++ { ++ croak "Can't return to $up from $prefix$path ($!)"; ++ } ++ ++ # ensure that a chdir .. didn't take us somewhere other than ++ # where we expected (see CVE-2002-0435) ++ unless (($new_dev, $new_ino) = stat '.' ++ and "$new_dev:$new_ino" eq "$up_dev:$up_ino") ++ { ++ croak "Previous directory $up changed since entering $prefix$path"; ++ } ++ ++ print "rmdir $prefix$path\n" if $verbose; ++ if (rmdir $path) ++ { ++ $count++; ++ } ++ else ++ { ++ carp "Can't remove directory $prefix$path ($!)"; ++ } ++ ++ return $count; ++} ++ ++sub rmtree ++{ ++ my ($p, $verbose, $safe) = @_; ++ $p = [] unless defined $p and length $p; ++ $p = [ $p ] unless ref $p; ++ my @paths = grep defined && length, @$p; ++ ++ # default to "unsafe" for non-root (will chmod dirs) ++ $safe = $> ? 0 : 1 unless defined $safe; ++ ++ unless (@paths) ++ { ++ carp "No root path(s) specified"; ++ return; ++ } ++ ++ my $oldpwd = getcwd or do { ++ carp "Can't fetch initial working directory"; ++ return; ++ }; ++ ++ my ($dev, $ino) = stat '.' or do { ++ carp "Can't stat initial working directory"; ++ return; ++ }; ++ ++ # untaint ++ for ($oldpwd) { /^(.*)$/s; $_ = $1 } ++ ++ my $count = 0; ++ for my $path (@paths) ++ { ++ $count += _rmtree $path, '', $oldpwd, $dev, $ino, $verbose, $safe; + } + + $count; diff --git a/perl-5.8.7-can_2005_3962.patch b/perl-5.8.7-can_2005_3962.patch new file mode 100644 index 0000000..cd1f7b5 --- /dev/null +++ b/perl-5.8.7-can_2005_3962.patch @@ -0,0 +1,14 @@ +--- perl-5.8.7/sv.c 2005-05-27 12:38:11.000000000 +0200 ++++ perl-5.8.7/sv.c_secfix 2006-01-17 09:22:10.000000000 +0100 +@@ -8519,7 +8519,10 @@ + if (EXPECT_NUMBER(q, width)) { + if (*q == '$') { + ++q; +- efix = width; ++ if (width > INT_MAX) ++ efix=INT_MAX; ++ else ++ efix = width; + } else { + goto gotwidth; + } diff --git a/perl-5.8.8-can_2007_5116.patch b/perl-5.8.8-can_2007_5116.patch new file mode 100644 index 0000000..b316c8f --- /dev/null +++ b/perl-5.8.8-can_2007_5116.patch @@ -0,0 +1,59 @@ +--- perl-5.8.8/regcomp.c.orig 2007-11-07 09:45:20.000000000 +0100 ++++ perl-5.8.8/regcomp.c 2007-11-07 09:54:17.000000000 +0100 +@@ -135,7 +135,8 @@ typedef struct RExC_state_t { + I32 extralen; + I32 seen_zerolen; + I32 seen_evals; +- I32 utf8; ++ I32 utf8; /* pattern is utf8 or not */ ++ I32 orig_utf8; /* pattern was originally utf8 */ + #if ADD_TO_REGEXEC + char *starttry; /* -Dr: where regtry was called. */ + #define RExC_starttry (pRExC_state->starttry) +@@ -161,6 +162,7 @@ typedef struct RExC_state_t { + #define RExC_seen_zerolen (pRExC_state->seen_zerolen) + #define RExC_seen_evals (pRExC_state->seen_evals) + #define RExC_utf8 (pRExC_state->utf8) ++#define RExC_orig_utf8 (pRExC_state->orig_utf8) + + #define ISMULT1(c) ((c) == '*' || (c) == '+' || (c) == '?') + #define ISMULT2(s) ((*s) == '*' || (*s) == '+' || (*s) == '?' || \ +@@ -1749,15 +1751,17 @@ Perl_pregcomp(pTHX_ char *exp, char *xen + if (exp == NULL) + FAIL("NULL regexp argument"); + +- RExC_utf8 = pm->op_pmdynflags & PMdf_CMP_UTF8; ++ RExC_orig_utf8 = RExC_utf8 = pm->op_pmdynflags & PMdf_CMP_UTF8; + +- RExC_precomp = exp; + DEBUG_r({ + if (!PL_colorset) reginitcolors(); + PerlIO_printf(Perl_debug_log, "%sCompiling REx%s `%s%*s%s'\n", + PL_colors[4],PL_colors[5],PL_colors[0], +- (int)(xend - exp), RExC_precomp, PL_colors[1]); ++ (int)(xend - exp), exp, PL_colors[1]); + }); ++ ++redo_first_pass: ++ RExC_precomp = exp; + RExC_flags = pm->op_pmflags; + RExC_sawback = 0; + +@@ -1783,6 +1787,17 @@ Perl_pregcomp(pTHX_ char *exp, char *xen + RExC_precomp = Nullch; + return(NULL); + } ++ if (RExC_utf8 && !RExC_orig_utf8) { ++ STRLEN len = xend-exp; ++ DEBUG_r(PerlIO_printf(Perl_debug_log, ++ "UTF8 mismatch! Converting to utf8 for resizing and compile\n")); ++ exp = (char*)Perl_bytes_to_utf8(aTHX_ (U8*)exp, &len); ++ xend = exp + len; ++ RExC_orig_utf8 = RExC_utf8; ++ SAVEFREEPV(exp); ++ goto redo_first_pass; ++ } ++ + DEBUG_r(PerlIO_printf(Perl_debug_log, "size %"IVdf" ", (IV)RExC_size)); + + /* Small enough for pointer-storage convention? diff --git a/perl-5.8.8-fix_makedepend.patch b/perl-5.8.8-fix_makedepend.patch new file mode 100644 index 0000000..e45475a --- /dev/null +++ b/perl-5.8.8-fix_makedepend.patch @@ -0,0 +1,12 @@ +diff -Nru perl-5.8.8.orig/makedepend.SH perl-5.8.8/makedepend.SH +--- perl-5.8.8.orig/makedepend.SH 2003-06-05 20:11:10.000000000 +0200 ++++ perl-5.8.8/makedepend.SH 2007-06-29 04:06:56.000000000 +0200 +@@ -166,7 +166,7 @@ + -e '/^#.*/d' \ + -e '/^#.*/d' \ + -e '/^#.*/d' \ +- -e '/^#.*/d' \ ++ -e '/^#.*/d' \ + -e '/^#.*"-"/d' \ + -e '/: file path prefix .* never used$/d' \ + -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \ diff --git a/perl.spec b/perl.spec new file mode 100644 index 0000000..4062a86 --- /dev/null +++ b/perl.spec @@ -0,0 +1,452 @@ +%define threading 1 +%define MAJver %(echo %version | cut -d. -f1) + +%if %threading +%define thread_arch -thread-multi +%else +%define thread_arch %{nil} +%endif + +%if "%{_host_cpu}" == "i586" +%define perl_host i386 +%else +%define perl_host %{_host_cpu} +%endif + +%if "%{_build_cpu}" == "i586" +%define perl_build i386 +%else +%define perl_build %{_build_cpu} +%endif + +%define full_arch %{perl_host}-%{_os}%{thread_arch} +# don't change to %{_libdir} as perl is clean and has arch-dependent subdirs +%define perl_root %{_prefix}/lib/perl5 + +# Bootstrap build (no first stage deps): +# rpm -ba --define='bootstrap 1' perl.spec + +Name: perl +Version: 5.16.3 +Release: 2mamba +Epoch: 2 +Summary: Practical Extraction and Report Language +Group: Development/Libraries/Perl +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.perl.com +Source: http://www.cpan.org/src/%{MAJver}.0/perl-%{version}.tar.gz +Patch0: %{name}-5.10.1-norootcheck.patch +Patch1: %{name}-5.8.7-can_2005_0448.patch +Patch2: %{name}-5.8.7-can_2005_3962.patch +Patch3: %{name}-5.8.8-fix_makedepend.patch +Patch4: %{name}-5.8.8-can_2007_5116.patch +Patch5: %{name}-5.10.1-cross_compile.patch +License: GPL, Artistic +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libdb51-devel +BuildRequires: libgdbm-devel +## AUTOBUILDREQ-END +BuildRequires: sed >= 4.1.4 +BuildRequires: man-db +%if "%{?bootstrap}" != "1" +BuildRequires: libgdbm-devel >= 1.8.3 +Requires: libgdbm >= 1.8.3 +%endif +Provides: perl-base +Provides: perl(getopts.pl) +Provides: perl(ctime.pl) +Provides: perl(flush.pl) +Provides: perl(find.pl) +Provides: perl(bigint.pl) +Provides: perl(timelocal.pl) +#Provides: perl(attributes) +#Provides: perl(fields) +#Provides: perl(locale) +#Provides: perl(subs) +Provides: perl(Carp::Heavy) +Obsoletes: perl-Test-Builder-Tester +Provides: perl-Archive-Tar +Obsoletes: perl-Archive-Tar +Provides: perl-Module-Build +Obsoletes: perl-Module-Build +Provides: perl-Pod-Escapes +Obsoletes: perl-Pod-Escapes +Provides: perl-Pod-Simple +Obsoletes: perl-Pod-Simple +Provides: perl-version +Obsoletes: perl-version +Provides: perl-ExtUtils-CBuilder +Obsoletes: perl-ExtUtils-CBuilder +Provides: perl-IO-Compress-Base +Obsoletes: perl-IO-Compress-Base +Provides: perl-Compress-Raw-Zlib +Obsoletes: perl-Compress-Raw-Zlib +Provides: perl-IO-Compress-Zlib +Obsoletes: perl-IO-Compress-Zlib +Provides: perl-Compress-Zlib +Obsoletes: perl-Compress-Zlib +Provides: perl-IO-Compress-Bzip2 +Obsoletes: perl-IO-Compress-Bzip2 +Provides: perl-Compress-Raw-Bzip2 +Obsoletes: perl-Compress-Raw-Bzip2 +Provides: perl-IO-Zlib +Obsoletes: perl-IO-Zlib +Provides: perl-Test-Builder-Tester +Provides: perl-CGI +Obsoletes: perl-CGI +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} +BuildRoot: %{_tmppath}/perl-root + +%description +Perl is a high-level programming language with roots in C, sed, awk and shell scripting. +Perl is good at handling processes and files, and is especially good at handling text. +Perl's hallmarks are practicality and efficiency. +While it is used to do a lot of different things, Perl's most common applications (and what it excels at) are probably system administration utilities and web programming. +A large proportion of the CGI scripts on the web are written in Perl. +You need the perl package installed on your system so that your system can handle Perl scripts. + +%package -n lib%{name} +Group: System/Libraries +Summary: Shared library and architecture dependent modules for %{name} + +%description -n lib%{name} +This package contains shared library and architecture dependent modules for %{name}. + +%package -n perl-devel +Summary: Static libraries and header for %{name} +Group: Development/Libraries/Perl +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description -n perl-devel +Perl is a high-level programming language with roots in C, sed, awk and shell scripting. +Perl is good at handling processes and files, and is especially good at handling text. +Perl's hallmarks are practicality and efficiency. +While it is used to do a lot of different things, Perl's most common applications (and what it excels at) are probably system administration utilities and web programming. +A large proportion of the CGI scripts on the web are written in Perl. +You need the perl package installed on your system so that your system can handle Perl scripts. + +This is the devel package for perl. + +%prep +%setup -q +#-D -T +#:<< ___EOF +#%patch0 -p1 +#%patch1 -p1 -b .can_2005_0448 +%patch2 -p1 -b .can_2005_3962 +#%patch3 -p1 +#%patch4 -p1 -b .can_2007_5116 + +# Warning: don't replace perl with %{name} below +%define __perl_requires %{_builddir}/perl-%{version}/perl_requires.sh +# don't require any perl module +cat > perl_requires.sh << _EOF +#! /bin/sh +%{_prefix}/lib/rpm/find-requires %{buildroot} %{_target_cpu} | grep -v "perl" +_EOF + +chmod +x perl_requires.sh + +%build +#:<< ___EOF +cd %{_builddir}/%{name}-%{version} +#%if "%{_host}" != "%{_build}" +## unrepoducible ugly hacks to cross-compile perl +#%{_build}-gcc -DPERL_CORE -c -fexpensive-optimizations -fomit-frame-pointer -O2 -std=c89 -O2 \ +#-fomit-frame-pointer -pipe -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels \ +#-Wc++-compat -o generate_uudmap.o -fexpensive-optimizations -fomit-frame-pointer -O2 generate_uudmap.c +#cd Cross +#make patch +#make perl OS="%{_target_vendor}-%{_target_os}%{?_gnu}" HOSTCC="%{_build}-gcc" || { +#cd .. +##mv lib/auto/File/Glob/Glob.so lib/auto/File/Glob/Glob.so.arm +#cp %{_libdir}/perl5/%{version}/%{perl_build}-linux-thread-multi/auto/File/Glob/Glob.so lib/auto/File/Glob/Glob.so +#make more2 more3 more4 +#} +#%else +sh Configure -des \ + -Darchname=%{perl_host}-%{_os} \ + -Dcc='%{_host}-gcc' \ + -Doptimize="%{optflags}" \ + -Dprefix=%{_prefix} \ + -Dvendorprefix=%{_prefix} \ + -Dsiteprefix=%{_prefix} \ + -Dman3ext=3pm \ + -Dcf_by=openmamba \ + -Dmyhostname=localhost \ + -Dperladmin=root@localhost \ + -Ud_csh=undef \ + -Duseshrplib \ + -Dinstallprefix=%{buildroot}%{_prefix} \ +%if %threading + -Dusethreads +%endif +# -Dinc_version_list="5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0" + +make lib/Config.pm + +./configure.gnu --prefix=%{_prefix} + +make +%if "%{_host}" == "%{build}" +make test +%endif + +%install +cd %{_builddir}/%{name}-%{version} +[ "%{buildroot}" != / ] && rm -rf %{buildroot} +#mv -f lib/Config.pm lib/Config.pm.orig +#mv -f lib/Config.pm.4install lib/Config.pm + +make install + +#% if "%{_host}" != "%{_build}" +#chmod +w %{buildroot}%{_libdir}/perl5/%{version}/%{perl_host}-linux-thread-multi/auto/File/Glob/Glob.so +#cp lib/auto/File/Glob/Glob.so.%{perl_host} %{buildroot}%{_libdir}/perl5/%{version}/%{perl_host}-linux-thread-multi/auto/File/Glob/Glob.so +#chmod -w %{buildroot}%{_libdir}/perl5/%{version}/%{perl_host}-linux-thread-multi/auto/File/Glob/Glob.so +#% endif + +find %{buildroot} -type f -name ".packlist" | xargs -r rm -f + +#mv -f lib/Config.pm lib/Config.pm.4install +#mv -f lib/Config.pm.orig lib/Config.pm +cp -f lib/Config.pm %{buildroot}%{perl_root}/%{version}/%{full_arch}/Config.pm + +(cd %{buildroot} +find usr/ -type f -not -name *.h -and -not -name *.a -printf "/%p\n" | \ + grep 'perl5/' > %{_tmppath}/perl-mainpkg +find usr/ -type f -name *.h -printf "/%p\n" -or -name *.a -printf "/%p\n" | \ + grep "perl5/" > %{_tmppath}/perl-develpkg +) + +# add libperl.so symlink in /usr/lib +%ifarch x86_64 +install -d %{buildroot}%{_libdir} +%endif +ln -s %{perl_root}/%{version}/%{full_arch}/CORE/libperl.so %{buildroot}%{_libdir} + +ln -sf perl5 %{buildroot}%{_bindir}/perl +ln -sf perl%{version} %{buildroot}%{_bindir}/perl5 + +## added sperl link to sperl%{version} +#ln -s /usr/bin/sperl%{version} %{buildroot}/usr/bin/sperl + +# strip 'buildroot' paths from perl configuration files +for f in Config.pm Config_heavy.pl CORE/config.h; do + sed -i "s,%{buildroot},,g" \ + %{buildroot}/usr/lib/perl5/%{version}/%{perl_host}-%{_os}-thread-multi/$f +done + +%clean +[ "%{buildroot}" != / ] && rm -rf %{buildroot} +rm %{_tmppath}/{perl-mainpkg,perl-develpkg} + +%post -n lib%{name} -p /sbin/ldconfig +%postun -n lib%{name} -p /sbin/ldconfig + +%files -f %{_tmppath}/perl-mainpkg +%defattr(-,root,root) +%{_bindir}/a2p +%{_bindir}/config_data +%{_bindir}/corelist +%{_bindir}/cpan +%{_bindir}/cpan2dist +%{_bindir}/cpanp +%{_bindir}/cpanp-run-perl +%{_bindir}/find2perl +%{_bindir}/instmodsh +%{_bindir}/json_pp +%{_bindir}/perl +%{_bindir}/perl5 +%{_bindir}/perl%{version} +%{_bindir}/perlbug +%{_bindir}/perldoc +%{_bindir}/perlivp +%{_bindir}/perlthanks +%{_bindir}/pod2html +%{_bindir}/pod2latex +%{_bindir}/pod2man +%{_bindir}/pod2text +%{_bindir}/prove +%{_bindir}/psed +%{_bindir}/ptar +%{_bindir}/ptardiff +%{_bindir}/ptargrep +%{_bindir}/s2p +%{_bindir}/shasum +#%{_bindir}/sperl +#%attr(4711,root,root) %{_bindir}/sperl%{version} +%{_bindir}/splain +%{_bindir}/zipdetails +#%{_bindir}/suidperl +%dir %{perl_root} +#% if "%{_host_cpu}" == "%{_build_cpu}" +%{_mandir}/man?/* +#% endif +%exclude %{_prefix}/lib/perl5/%{version}/%{perl_host}-%{_os}-thread-multi + +%files -n libperl +%defattr(-,root,root) +%{_libdir}/libperl.so +%dir %{_prefix}/lib/perl5/%{version}/%{perl_host}-%{_os}-thread-multi +%{_prefix}/lib/perl5/%{version}/%{perl_host}-%{_os}-thread-multi/* +%doc Artistic AUTHORS + +%files -n perl-devel -f %{_tmppath}/perl-develpkg +%defattr(-,root,root) +%{_bindir}/c2ph +#%{_bindir}/dprofpp +%{_bindir}/enc2xs +%{_bindir}/h2ph +%{_bindir}/h2xs +%{_bindir}/libnetcfg +#%{_bindir}/perlcc +%{_bindir}/piconv +%{_bindir}/pl2pm +%{_bindir}/pod2usage +%{_bindir}/podchecker +%{_bindir}/podselect +%{_bindir}/pstruct +%{_bindir}/xsubpp +%doc Changes README + +%changelog +* Sat Apr 12 2014 Silvan Calarco 5.16.3-2mamba +- move libperl.so and %{perl_vendorarm} modules under libperl package + +* Mon Mar 18 2013 Automatic Build System 5.16.3-1mamba +- update to 5.16.3 + +* Fri Nov 02 2012 Automatic Build System 5.16.2-1mamba +- automatic version update by autodist + +* Thu Aug 09 2012 Automatic Build System 5.16.1-1mamba +- automatic version update by autodist + +* Wed May 23 2012 Automatic Build System 5.16.0-1mamba +- automatic version update by autodist + +* Tue Sep 27 2011 Automatic Build System 5.14.2-1mamba +- automatic version update by autodist + +* Fri Jun 17 2011 Automatic Build System 5.14.1-1mamba +- automatic update by autodist + +* Wed Jun 15 2011 Automatic Build System 5.14.0-1mamba +- automatic update by autodist + +* Tue Jan 25 2011 Automatic Build System 5.12.3-1mamba +- automatic update by autodist + +* Wed Sep 08 2010 Automatic Build System 5.12.2-1mamba +- automatic update to 5.12.2 by autodist + +* Tue May 18 2010 Automatic Build System 5.12.1-1mamba +- automatic update to 5.12.1 by autodist + +* Mon May 10 2010 Automatic Build System 5.12.0-1mamba +- automatic update to 5.12.0 by autodist + +* Tue Feb 16 2010 Silvan Calarco 5.10.1-3mamba +- obsolete perl-CGI + +* Thu Oct 01 2009 Silvan Calarco 5.10.1-2mamba +- obsolete perl-IO-Compress-Bzip2 + +* Sat Sep 26 2009 Automatic Build System 5.10.1-1mamba +- automatic update to 5.10.1 by autodist + +* Thu Jun 11 2009 Automatic Build System 5.10.0-4mamba +- obsolete perl-IO-Zlib + +* Wed Jun 10 2009 Automatic Build System 5.10.0-3mamba +- automatic rebuild by autodist + +* Thu Oct 30 2008 Silvan Calarco 5.10.0-2mamba +- obsolete packages that have been integrated in this release + +* Wed Oct 29 2008 Silvan Calarco 5.10.0-1mamba +- automatic update to 5.10.0 by autodist + +* Wed Nov 07 2007 Aleph0 5.8.8-4mamba +- security fix CVE-2007-5116 + +* Fri Jun 29 2007 Silvan Calarco 5.8.8-3mamba +- add provide for perl(timelocal.pl) + +* Wed Mar 28 2007 Silvan Calarco 5.8.8-2mamba +- rebuilt with the openmamba toolchain + +* Wed Apr 12 2006 Davide Madrisan 5.8.8-1qilnx +- update to version 5.8.8 by autospec +- obsoletes perl-Test-Builder-Tester + +* Tue Jan 17 2006 Davide Madrisan 5.8.7-4qilnx +- security fix: CAN-2005-3962 (qibug#86) + +* Wed Jan 11 2006 Davide Madrisan 5.8.7-3qilnx +- fixed requirement for the devel package +- fixed license + +* Tue Jun 07 2005 Davide Madrisan 5.8.7-2qilnx +- fixed user/group for sperl binary +- added license, readme and changelog files +- don't require perl in specfile to allow bootstrap builds +- fixes and cleanups for other archs build + +* Mon Jun 06 2005 Davide Madrisan 5.8.7-1qilnx +- update to version 5.8.7 by autospec +- also solves a pair of exploits in suidperl involving debugging code +- updated patch for security issue can-2005-0448 +- disable root check to let non-root packagers create perl rpms +- strip 'buildroot' paths from 'Config_heavy.pl' + +* Mon May 02 2005 Davide Madrisan 5.8.6-3qilnx +- security fix QSA-2005-058 (CAN-2005-0448) +- provides 'perl(find.pl)' +- strip %%buildroot paths from perl configuration files +- added sperl symlink + +* Tue Jan 25 2005 Davide Madrisan 5.8.6-2qilnx +- fix architecture compatilibity problems with previous release +- removed `.packlist' + +* Wed Jan 19 2005 Silvan Calarco 5.8.6-1qilnx +- update to version 5.8.6 by autospec +- epoch set to 2, removed provides for perl = 0:5.008 and perl = 1:5 +- added libperl.so symlink in /usr/lib + +* Mon Nov 22 2004 Silvan Calarco 5.8.5-2qilnx +- add manually provides for perl(Carp::Heavy) + +* Mon Jul 26 2004 Davide Madrisan 5.8.5-1qilnx +- update to 5.8.5 + +* Fri May 07 2004 Silvan Calarco 5.8.3-2qilnx +- db4 build requirement added + +* Mon Apr 05 2004 Davide Madrisan 5.8.3-1qilnx +- new version rebuild + +* Wed Jan 07 2004 Davide Madrisan 5.8.2-1qilnx +- rebuilt with Perl version 5.8.2 +- provides -- removed: getopts.pl +- added: perl = 0:5.008, perl = 1:5 requirements + +* Mon Apr 28 2003 Mirko Cortillaro +- added perl-base provide + +* Wed Apr 17 2003 Mirko Cortillaro +- removed Prefix definition + +* Wed Apr 16 2003 Mirko Cortillaro +- modified file list package perl-devel + +* Mon Apr 14 2003 Mirko Cortillaro +- modified file list + +* Thu Apr 10 2003 Mirko Cortillaro +- write a spec file for perl