delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/09/09/16:05:18

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <46E451FF.7050208@x-ray.at>
Date: Sun, 09 Sep 2007 22:05:19 +0200
From: Reini Urban <rurban AT x-ray DOT at>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: building perl 5.8.8 (was run-time problems with cygwin-1.5.24-2)
References: <46DC59AE DOT 40502 AT nvr DOT com>
In-Reply-To: <46DC59AE.40502@nvr.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--------------030108000905090101070704
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

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/

--------------030108000905090101070704
Content-Type: text/plain;
 name="build.sh"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="build.sh"

#!/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



--------------030108000905090101070704
Content-Type: text/plain;
 name="Policy.sh"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="Policy.sh"

#!/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 AT x-ray DOT at'
cf_by='rurban'
cf_email='cygwin AT cygwin DOT com'

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


--------------030108000905090101070704
Content-Type: text/plain; charset=us-ascii

--
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/
--------------030108000905090101070704--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019