This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: building perl 5.8.8 (was run-time problems with cygwin-1.5.24-2)


Todd Brunhoff schrieb:
    * From: Reini Urban <rurban at x-ray dot at>
    * Subject: Re: run-time problems with cygwin-1.5.24-2

------------------------------------------------------------------------
Todd Brunhoff schrieb:

    ...In an effort to see what the problem might be, I focussed on
    perl (although interesting, this info may not be helpful):
    - I loaded source for perl 5.8.8, ran Configure, but the compile
    fails because of conflicting vsprintf declarations.

If you follow the directions of the README and download the src package you would be able to build your perl.
A Policy file helps and the correct Configure line is required.

This isn't helpful. You allude to a "correct Configure" line, both implying that I picked the wrong one, and that you know the right one, but that I should ask nicely to get it.

No, you should follow the usual path by getting the src package and look how perl is built and then follow the instructions how to build perl.
There are also vendor patches.


$ perl -V
Locally applied patches:
CYG01 - hints.cygwin.sh ldflags -s
CYG02 - lib-ExtUtils-Embed insensitive against leading \s
CYG03 - lib-Test-Harness-Straps $ENV{PERL5LIB} = ''
CYG04 - major.version.cygwin.sh cygperl-5_8.dll and not cygperl-5_8_x.dll
CYG05 - add Win32CORE to core
CYG07 - File-Spec-Cygwin-TMPDIR.patch
Bug#38628 - allow legacy Cwd->cwd()
Bug#40103 - File-Spec-case_tolerant.patch from 5.9.5


Attached is the build and Policy script for your convenience but you really need the src package to get everything.
We use:
Configure -de \
-Dmksymlinks \
-Duse64bitint \
-Dusethreads \
-Uusemymalloc \
-Doptimize='-O3' \
-Dman3ext='3pm' \
-Dusesitecustomize \
-Dusedevel


Why the simpliest Configure -des failed is still in
investigation and needs to be fixed upstream of course.
But right now we are very busy before the 5.10 release.
There are still some showstoppers.

Your report is very much appreciated. Esp. for perl5-porters, not here.
If I happen to not react fast enough, please report it upstream at perl5-porters by yourself. Jerry Hedden or me are there most of the time.


The README.cygwin says to simply run Configure, and only makes the suggestion that to accept all the defaults, -de could be used. And so... I've attached the output from "Configure -des" and "make -k". You'll note that there are three compile-time errors. I can fix the last one "perlio.c:5059: error: conflicting types for 'vprintf'" by uncommenting "#define HAS_VPRINTF" in config.h. Perhaps you could suggest options for Configure that will fix all the problems. I'd like that.
--
Reini Urban
http://phpwiki.org/  http://murbreak.at/
http://helsinki.at/  http://spacemovie.mur.at/
#!/bin/sh
# wget http://search.cpan.org/CPAN/authors/id/N/NW/NWCLARK/perl-5.8.8.tar.gz

set -x
## M$ sucks
unset LIB
unset INCLUDE
export CYGWIN=server

## run the build with ntsec on if possible...
pkg=perl
ver=5.8.8
major=5.8
release=-4
dir=`pwd`
shortver=`echo ${ver}${release} | sed 's/-.*//'`
buildperl=buildperl

## check prereqs
set +x
for i in ${pkg}-${ver}.tar.gz ${pkg}-${ver}-ext-Win32CORE.tar.bz2 Policy.sh; 
    do test -e $i || (echo preq $i not found && exit); 
done
exts="Win32API-File-0.1001 \
	Pod-Escapes-1.04 Pod-Simple-3.05 Test-Pod-1.26 Devel-Symdump-2.07 Pod-Coverage-0.18 Test-Pod-Coverage-1.08 \
	IO-Compress-Base-2.005 \
	Compress-Raw-Zlib-2.005 IO-Compress-Zlib-2.005 Compress-Zlib-2.005 \
	Compress-Raw-Bzip2-2.005 IO-Compress-Bzip2-2.005 Compress-Bzip2-2.09 \
        IO-Zlib-1.05	\
        IO-String-1.08	\
        MD5-2.03 \
        Archive-Tar-1.32 Archive-Zip-1.20 \
	Math-BigInt-FastCalc-0.15 \
	Term-ReadLine-Perl-1.0302 Term-ReadLine-Gnu-1.16 TermReadKey-2.30 \
        XML-NamespaceSupport-1.09 XML-SAX-0.15 XML-LibXML-Common-0.13 XML-LibXML-1.63 \
	XML-Parser-2.34	\
	Proc-ProcessTable-0.41 \
	File-Temp-0.18 YAML-0.62 \
	Config-Tiny-2.10 File-Copy-Recursive-0.33 IPC-Run3-0.037 Probe-Perl-0.01 \
    	Tee-0.13 IO-CaptureOutput-1.03 File-pushd-0.99 File-HomeDir-0.65 \
	Digest-SHA-5.45 \
	Module-Signature-0.55 \
        URI-1.35 HTML-Tagset-3.10 HTML-Parser-3.56 libwww-perl-5.805 \
	CPAN-1.9102 \
	Test-Reporter-1.27 CPAN-Reporter-0.44 \
	Net-Telnet-3.03	\
	Module-ScanDeps-0.75 PAR-Dist-0.23 \
	ExtUtils-CBuilder-0.19 ExtUtils-ParseXS-2.18 Regexp-Common-2.120 \
	  version-0.7203 podlators-2.0.5 Pod-Readme-0.09 Module-Build-0.2808 \
	B-Generate-1.09 PadWalker-1.5 Alias-2.32"
# PAR not because of /usr/bin/pp
# Algorithm-Diff-1.1902 Text-Diff-0.35 not needed because we removed usr/bin/ptardiff
for i in $exts; do test -e $i.tar.gz || echo preq $i.tar.gz not found; done
for i in $exts; do test -e $i.tar.gz || exit; done
set -x

exit

## checkout builddir
rm -rf ${dir}/${buildperl} 2> /dev/null
sleep 2
mkdir -p -m 777 ${dir}/${buildperl}

## unpack
rm -rf ${pkg}-${ver} 2> /dev/null
sleep 2
tar xfz ${pkg}-${ver}.tar.gz
tar xjvf ${pkg}-${ver}-ext-Win32CORE.tar.bz2
mkdir -p /usr/share/doc/${pkg}-${ver}
/bin/install -m 644 ${pkg}-${ver}/Artistic ${pkg}-${ver}/Copying ${pkg}-${ver}/Changes* ${pkg}-${ver}/README /usr/share/doc/${pkg}-${ver}

# pl-hints.cygwin.sh.patch must be before pl-win32CORE.patch
for p in pl-*.patch; do
  (cd ${pkg}-${ver}; patch -p1 -bu <../$p; cd -)
done
# patch bug: chmod 0000 => 0444
cd ${pkg_ver}; find . -name \*.orig -exec chmod 0444 \{\} \;

## configure perl
cd ${dir}/${buildperl}
set +x

cp ${dir}/Policy.sh ${dir}/${buildperl}

sh ${dir}/${pkg}-${ver}/Configure -de	\
		-Dmksymlinks	\
		-Duse64bitint	\
		-Dusethreads	\
		-Uusemymalloc   \
		-Doptimize='-O3'	\
		-Dman3ext='3pm'	\
		-Dusesitecustomize \
		-Dusedevel \
		2>&1 | tee ${dir}/log.configure

# Implied by usethreads
#		-Dusemultiplicity	\
#		-Uusemymalloc	\

## build perl
make -j1 2>&1 | tee ${dir}/log.make

#cp /usr/bin/cygcrypt-0.dll .

## make the tests
export PERLIO=perlio
make -j1 test 2>&1 | tee ${dir}/log.test
grep '\.\.skip' ${dir}/log.test > ${dir}/log.test.skipped
egrep -i '(\.#|\..FAIL| Fail)' ${dir}/log.test > ${dir}/log.test.failed
if test -s ${dir}/log.test.failed; then
  (cd t; ./perl harness) 2>&1 | tee ${dir}/log.harness
fi

#rm -f cygcrypt-0.dll

## install
make -j1 install-strip DESTDIR="" 2>&1 | tee ${dir}/log.install

cd ${dir}
rm ${dir}/log.make_vendor ${dir}/log.install_vendor 2> /dev/null
# introduce some old and new vendor_perl libs
for i in $exts;
do rm -rf ${i}; \
  (tar xzf ${i}.tar.gz 2>&1 | tee -a ${dir}/log.make_vendor &&	\
    (cd ${i} &&	\
    if test -f ../$i.patch; then \
	patch -b -p1 < ../$i.patch 2>&1 | tee -a ${dir}/log.make_vendor; \
	find -name \*.orig -exec chmod 0444 \{\} \; ; \
    fi &&  \
    ${dir}/${buildperl}/perl Makefile.PL | tee -a ${dir}/log.make_vendor && \
    make -j1 2>&1 | tee -a ${dir}/log.make_vendor &&	\
    make -j1 install_vendor UNINST=1 2>&1 | tee -a ${dir}/log.make_vendor)); \
done
#Compress::Raw::Zlib requires an invisible y here


#!/bin/sh

# Policy file for perl-5.8.8-2

# Where things will be.
prefix='/usr'
siteprefix='/usr'
vendorprefix='/usr'

man1dir='/usr/share/man/man1'
man3dir='/usr/share/man/man3'
siteman1dir='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
vendorman1dir='/usr/share/man/man1'
vendorman3dir='/usr/share/man/man3'

privlib='/usr/lib/perl5/5.8'
privlibexp='/usr/lib/perl5/5.8'
archlib='/usr/lib/perl5/5.8/cygwin'
archlibexp='/usr/lib/perl5/5.8/cygwin'

sitelib='/usr/lib/perl5/site_perl/5.8'
#sitelib_stem='/usr/lib/perl5/site_perl'
sitelibexp='/usr/lib/perl5/site_perl/5.8'
sitearch='/usr/lib/perl5/site_perl/5.8/cygwin'
sitearchexp='/usr/lib/perl5/site_perl/5.8/cygwin'

vendorlib='/usr/lib/perl5/vendor_perl/5.8'
#vendorlib_stem='/usr/lib/perl5/vendor_perl'
vendorlibexp='/usr/lib/perl5/vendor_perl/5.8'
vendorarch='/usr/lib/perl5/vendor_perl/5.8/cygwin'
vendorarchexp='/usr/lib/perl5/vendor_perl/5.8/cygwin'

inc_version_list="5.8/cygwin 5.8 cygwin"

# The maintainer.
mydomain='.x-ray.at'
myhostname='reini'
perladmin='rurban@x-ray.at'
cf_by='rurban'
cf_email='cygwin@cygwin.com'

# 2007-07-08 04:01:29 rurban

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]