summaryrefslogtreecommitdiff
path: root/debian/README.cross
blob: a732926abeab402e76f963059868e519a318ed86 (plain)
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
Cross building Perl XS module packages
======================================

Since version 5.30.0-7, the Perl packages provide a virtual package
called perl-xs-dev that XS module packages should build-depend on. This
will pull in Config.pm for the host architecture in the directory
/usr/lib/<triplet>/perl/cross-config-<version> (also symlinked to
/usr/lib/<triplet>/perl/cross-config since 5.30.0-8) that can be put on
the Perl search path for cross compilation.

This is done automatically by debhelper dh_auto_* build systems for
ExtUtils::MakeMaker and Module::Build based builds since version 12.7.

Cross building packages that link against libperl
=================================================

Since version 5.22.1-7, libperl-dev no longer depends on perl of the
same architecture.  This should make it possible to cross build packages
build depending on libperl-dev, by replacing ExtUtils::Embed calls like

 perl -MExtUtils::Embed -e ccopts
 perl -MExtUtils::Embed -e ldopts

with something like

 perl -I /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/perl/cross-config-$(perl -MConfig -e 'print $Config{version}') -MExtUtils::Embed [...]

or more simply, since 5.30.0-8,

 perl -I /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/perl/cross-config -MExtUtils::Embed [...]

so that Config.pm for the host (target) architecture gets loaded and
provides the right header and linker paths.

This support is currently very much experimental. Success or failure
reports are welcome at <perl@packages.debian.org>.

See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813384#10 for more
information.

 -- Niko Tyni <ntyni@debian.org>  Sun, 20 Oct 2019 14:47:41 +0300