xenial (1) perl-cross-staging.1.gz

Provided by: perl-cross-debian_0.0.5_all bug

NAME

       perl-cross-staging - Long term maintenance of cross-build support for the Debian configuration of perl

SYNOPSIS

       perl-cross-staging

       perl-cross-staging takes no commands or options.

DESCRIPTION

       perl-cross-staging supports the long term maintenance of cross-build support for the Debian configuration
       of perl.

       perl-cross-staging 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
       perl-cross-staging.

       Config files generated by perl-cross-staging need substantial manual editing and updating before being
       usable for a cross-build or inclusion into perl-cross-debian.

UPDATING CROSS CONFIG FILES

       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.

       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:

           installarchlib='PERL_BUILD_DIR/debian/tmp/usr/lib/perl/5.16'

       Missing values will be easiest to spot as these cause the build to fail with invalid preprocessing
       directives.

           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

       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 meld to push snippets in and
       out of the staged files with usable previous/next search/find regexp support.

       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.

       Old perl version strings also need to be updated.

ARCHITECTURE

       Typically, perl-cross-staging 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.

       perl-cross-staging does support attempting to stage a cross build but this has not been tested. Please
       report success or failure.

UPSTREAM SUPPORT

       Note that work is ongoing to get perl cross-building upstream and this is not complete.
       perl-cross-staging 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

BUGS

       Currently perl-cross-staging 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
       perl-cross-debian.

AUTHOR

       Neil Williams <codehelp@debian.org>
           Wrote this manpage for the Debian system.

       Copyright © 2012 Neil Williams

       This manual page was written for the Debian system (and may be used by others).

       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.

       On Debian systems, the complete text of the GNU General Public License can be found in
       /usr/share/common-licenses/GPL.