'\" t .\" Title: PERL-CROSS-STAGING .\" Author: Neil Williams .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 05/19/2013 .\" Manual: perl-cross-staging User Manual .\" Source: perl-cross-staging .\" Language: English .\" .TH "PERL\-CROSS\-STAGING" "1" "05/19/2013" "perl-cross-staging" "perl-cross-staging User Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" perl-cross-staging \- Long term maintenance of cross\-build support for the Debian configuration of perl .SH "SYNOPSIS" .HP \w'\fBperl\-cross\-staging\fR\ 'u \fBperl\-cross\-staging\fR .PP \fBperl\-cross\-staging\fR takes no commands or options\&. .SH "DESCRIPTION" .PP \fBperl\-cross\-staging\fR supports the long term maintenance of cross\-build support for the Debian configuration of perl\&. .PP \fBperl\-cross\-staging\fR assists in the producuction of config files from the current perl build tree to update existing perl\-cross\-debian support by staging native builds of perl patched to support \fBperl\-cross\-staging\fR\&. .PP Config files generated by \fBperl\-cross\-staging\fR need substantial manual editing and updating before being usable for a cross\-build or inclusion into \fBperl\-cross\-debian\fR\&. .SH "UPDATING CROSS CONFIG FILES" .PP Each new version of perl introduces and rearranges the existing config values and the config\&.h and config\&.sh files for each variant need to be updated\&. .PP Some sections simply need to be moved around within the file for easier comparison, some sections will be new (and may need adjustment if the new values are architecture\-sensitive) and some may need to be removed\&. Some values include the version string of the perl version being built\&. Some values include the name of the compiler or preprocessor\&. There are values which specify the original build directory and these need to be replaced with PERL_BUILD_DIR: .sp .if n \{\ .RS 4 .\} .nf installarchlib=\*(AqPERL_BUILD_DIR/debian/tmp/usr/lib/perl/5\&.16\*(Aq .fi .if n \{\ .RE .\} .PP Missing values will be easiest to spot as these cause the build to fail with invalid preprocessing directives\&. .sp .if n \{\ .RS 4 .\} .nf config\&.h:2229:3: error: invalid preprocessing directive #HAS_STATIC_INLINE config\&.h:2766:3: error: invalid preprocessing directive #HAS_SOCKADDR_SA_LEN config\&.h:2773:3: error: invalid preprocessing directive #HAS_SIN6_SCOPE_ID config\&.h:3614:3: error: invalid preprocessing directive #HAS_PRCTL config\&.h:3615:3: error: invalid preprocessing directive #HAS_PRCTL_SET_NAME .fi .if n \{\ .RE .\} .PP Probably the biggest problem is reorganisation of the files which arises because the files are all generated, rather than edited\&. This can easily lead to sections being added in one place of the file and being repeated (with differing values) elsewhere\&. Use a comparison tool like \fBmeld\fR to push snippets in and out of the staged files with usable previous/next search/find regexp support\&. .PP Once one of the variant files has been updated, merge the changes into the other staged variants before comparing those with the files from the previous version of perl\&. .PP Old perl version strings also need to be updated\&. .SH "ARCHITECTURE" .PP Typically, \fBperl\-cross\-staging\fR is run for the native architecture on the expectation that most of the updates to the staged files will include changes for the cross architecture\&. e\&.g\&. updates for 5\&.16\&.2 were prepared by staging amd64 and porting the updates into the cross architecture files for 5\&.14\&.2\&. .PP \fBperl\-cross\-staging\fR does support attempting to stage a cross build but this has not been tested\&. Please report success or failure\&. .SH "UPSTREAM SUPPORT" .PP Note that work is ongoing to get perl cross\-building upstream and this is not complete\&. \fBperl\-cross\-staging\fR will need changes once this work is complete\&. The aim is to make it easier to obtain the configuration value cache for architectures where real hardware or an emulation model can be accessed over a network\&. This work takes place at https://github\&.com/codehelp/perl/tree/jrobinson/configure\-for\-cross which is intermittently pulled into the main cross\-configure branch at https://github\&.com/castaway/perl/tree/jrobinson/configure\-for\-cross .SH "BUGS" .PP Currently \fBperl\-cross\-staging\fR does not substitute the working directory for PERL_BUILD_DIR in the \&.sh scripts \- this is left as one of the manual steps required before including the generated files into \fBperl\-cross\-debian\fR\&. .SH "AUTHOR" .PP \fBNeil Williams\fR <\&codehelp@debian\&.org\&> .RS 4 Wrote this manpage for the Debian system\&. .RE .SH "COPYRIGHT" .br Copyright \(co 2012 Neil Williams .br .PP This manual page was written for the Debian system (and may be used by others)\&. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or (at your option) any later version published by the Free Software Foundation\&. .PP On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL\&. .sp