Author: jim Date: 2006-08-22 01:46:50 -0600 (Tue, 22 Aug 2006) New Revision: 2249
Added: trunk/BOOK/final-system/multilib/perl-n32.xml trunk/BOOK/final-system/multilib/perl.xml Modified: / trunk/BOOK/final-system/mips64-chapter.xml trunk/BOOK/final-system/multilib/perl-64bit.xml trunk/BOOK/final-system/ppc64-chapter.xml trunk/BOOK/final-system/sparc64-chapter.xml trunk/BOOK/final-system/x86_64-chapter.xml trunk/BOOK/introduction/common/changelog.xml trunk/BOOK/materials/mips64/patches.xml trunk/BOOK/materials/ppc64/patches.xml trunk/BOOK/materials/sparc64/patches.xml trunk/BOOK/materials/x86_64/patches.xml trunk/BOOK/patches.ent Log: [EMAIL PROTECTED] (orig r2379): jciccone | 2006-08-21 22:38:49 -0700 Added a multilib wrapper to perl on multilib builds. Property changes on: ___________________________________________________________________ Name: svk:merge - b6734a72-470d-0410-b049-f317dca95413:/:2378 + b6734a72-470d-0410-b049-f317dca95413:/:2379 Modified: trunk/BOOK/final-system/mips64-chapter.xml =================================================================== --- trunk/BOOK/final-system/mips64-chapter.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/final-system/mips64-chapter.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -37,6 +37,8 @@ <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-n32.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-64bit.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-n32.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-64bit.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline-n32.xml"/> Modified: trunk/BOOK/final-system/multilib/perl-64bit.xml =================================================================== --- trunk/BOOK/final-system/multilib/perl-64bit.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/final-system/multilib/perl-64bit.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -8,7 +8,7 @@ <sect1 id="ch-system-perl" role="wrap"> <?dbhtml filename="perl-64bit.html"?> - <title>Perl-&perl-version;</title> + <title>Perl-&perl-version; 64 Bit</title> <indexterm zone="ch-system-perl"> <primary sortas="a-Perl">Perl</primary> @@ -21,15 +21,6 @@ <sect2 role="installation"> <title>Installation of Perl</title> - <para os="m1">In multilib builds we install compilers and libraries for each available - architecture. The description below says that perl installs several hundred - libraries, but they are used by invoking <command>perl</command>, not by linking - to them with <command>ld</command>. Although it is possible to install perl for - 32 bits, move it to a different name, and then install the 64-bit version, it is - almost always invoked as just <command>perl</command>. That means only the - libraries and modules for the last version installed will be accessible. We - therefore only install one version.</para> - <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../common/perl.xml" xpointer="xpointer(//[EMAIL PROTECTED]'p1'])"/> @@ -39,16 +30,16 @@ xpointer="xpointer(//[EMAIL PROTECTED]'p2'])"/> <para os="p3">Perl does not, by default, know about library directories with names other - than lib, such as lib64. The following patch will allow it to install to lib64:</para> + than lib, The following patch will allow it to install to other directories:</para> <screen os="p4"><userinput>patch -Np1 -i ../&perl-multilib-patch;</userinput></screen> - <para os="p5">There is a further (possibly cosmetic) anomaly - if we install perl and + <para os="s1">There is a further (possibly cosmetic) anomaly - if we install perl and then run <command>perl -V</command> it will claim that libc is in /lib. The - following patch fixes this, but only takes effect when <command>make install + following sed fixes this, but only takes effect when <command>make install </command> is run:</para> -<screen os="p6"><userinput>patch -Np1 -i ../&perl-lib64-patch;</userinput></screen> +<screen os="s2"><userinput>sed -i "/libc/s@/lib@/lib64@" hints/linux.sh</userinput></screen> <para os="m2">We still need to tell perl to actually use lib64:</para> @@ -118,6 +109,51 @@ href="../common/perl.xml" xpointer="xpointer(//[EMAIL PROTECTED]'k'])"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'l'])"/> + +<screen os="m"><userinput>mv /usr/bin/perl{,-64}</userinput></screen> + + <para os="n">Now we need to create a multilib wrapper that lets us choose + which perl installation to use.</para> + +<screen os="o"><userinput>cat > perl_wrapper.c << "EOF" +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <errno.h> + +int main (int argc, char *argv[]) +{ + char *perl_arch; + if ((perl_arch = getenv("PERL_ARCH")) == NULL) + perl_arch = "64"; + + char *filename = malloc(strlen(argv[0]) + strlen(perl_arch) + 2); + strcpy(filename, argv[0]); + strcat(filename, "-"); + strcat(filename, perl_arch); + + int ret = 0; + ret = execvp(filename, argv); + if ((ret != 0)&&(errno != 0)) + { + char *errmsg = malloc(strlen(filename) + 19); + strcpy(errmsg, "Unable to execute "); + strcat(errmsg, filename); + perror(errmsg); + free(errmsg); + } + + free(filename); + + return ret; +} +EOF +gcc ${BUILD64} perl_wrapper.c -o /usr/bin/perl</userinput></screen> + </sect2> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" Added: trunk/BOOK/final-system/multilib/perl-n32.xml =================================================================== --- trunk/BOOK/final-system/multilib/perl-n32.xml (rev 0) +++ trunk/BOOK/final-system/multilib/perl-n32.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-perl-n32" role="wrap"> + <?dbhtml filename="perl-n32.html"?> + + <title>Perl-&perl-version; N32 Libraries</title> + + <indexterm zone="ch-system-perl-n32"> + <primary sortas="a-Perl">Perl</primary> + <secondary>N32</secondary> + </indexterm> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'package'])"/> + + <sect2 role="installation"> + <title>Installation of Perl</title> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'p1'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'p2'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="perl-64bit.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'p3'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="perl-64bit.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'p4'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="perl-64bit.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'s1'])"/> + +<screen os="s2"><userinput>sed -i "/libc/s@/lib@/lib32@" hints/linux.sh</userinput></screen> + + <para os="m2">We still need to tell perl to actually use lib32:</para> + +<screen os="m3"><userinput>echo 'installstyle="lib32/perl5"' >>hints/linux.sh</userinput></screen> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'a00'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'a01'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'a'])"/> + +<screen os="b"><userinput>./configure.gnu --prefix=/usr \ + -Dman1dir=/usr/share/man/man1 \ + -Dman3dir=/usr/share/man/man3 \ + -Dpager="/bin/less -isR" \ + -Dlibpth="/usr/local/lib32 /lib32 /usr/lib32" \ + -Dcc="gcc ${BUILDN32}" \ + -Dusethreads</userinput></screen> + + <variablelist os="m4"> + <title>The meaning of the new configure option:</title> + + <varlistentry> + <term><parameter>-Dlibpth="/usr/local/lib32 /lib32 /usr/lib32"</parameter></term> + <listitem> + <para>This tells Perl to link against the N32 libraries.</para> + </listitem> + </varlistentry> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'c1'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'c2'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'c3'])"/> + + </variablelist> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'d'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'e'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'h'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'j'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'k'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'l'])"/> + +<screen os="m"><userinput>mv /usr/bin/perl{,-n32}</userinput></screen> + + </sect2> + + <sect2 role="content"> + <title/> + + <para>Details on this package are located in <xref + linkend="contents-perl" role="."/></para> + + </sect2> + +</sect1> Added: trunk/BOOK/final-system/multilib/perl.xml =================================================================== --- trunk/BOOK/final-system/multilib/perl.xml (rev 0) +++ trunk/BOOK/final-system/multilib/perl.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-perl-32" role="wrap"> + <?dbhtml filename="perl.html"?> + + <title>Perl-&perl-version; 32 Bit Libraries</title> + + <indexterm zone="ch-system-perl-32"> + <primary sortas="a-Perl">Perl</primary> + <secondary>32 Bit</secondary> + </indexterm> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'package'])"/> + + <sect2 role="installation"> + <title>Installation of Perl</title> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'p1'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'p2'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'a00'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'a01'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'a'])"/> + +<screen os="b"><userinput>./configure.gnu --prefix=/usr \ + -Dman1dir=/usr/share/man/man1 \ + -Dman3dir=/usr/share/man/man3 \ + -Dpager="/bin/less -isR" \ + -Dcc="gcc ${BUILD32}" \ + -Dusethreads</userinput></screen> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'c'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'d'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'e'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'h'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'j'])"/> + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../common/perl.xml" + xpointer="xpointer(//[EMAIL PROTECTED]'k'])"/> + + <para os="l">Add a suffix to the perl binary which the multilib wrapper + installed later will take advantage of.</para> + +<screen os="m"><userinput>mv /usr/bin/perl{,-32}</userinput></screen> + + </sect2> + + <sect2 role="content"> + <title/> + + <para>Details on this package are located in <xref + linkend="contents-perl" role="."/></para> + + </sect2> +</sect1> Modified: trunk/BOOK/final-system/ppc64-chapter.xml =================================================================== --- trunk/BOOK/final-system/ppc64-chapter.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/final-system/ppc64-chapter.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -33,6 +33,7 @@ <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/sed.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="ppc64/libtool.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-64bit.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-64bit.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline-64bit.xml"/> Modified: trunk/BOOK/final-system/sparc64-chapter.xml =================================================================== --- trunk/BOOK/final-system/sparc64-chapter.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/final-system/sparc64-chapter.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -33,6 +33,7 @@ <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/sed.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sparc64/libtool.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-64bit.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-64bit.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline-64bit.xml"/> Modified: trunk/BOOK/final-system/x86_64-chapter.xml =================================================================== --- trunk/BOOK/final-system/x86_64-chapter.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/final-system/x86_64-chapter.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -33,6 +33,7 @@ <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/sed.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="x86_64/libtool.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-64bit.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-64bit.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline-64bit.xml"/> Modified: trunk/BOOK/introduction/common/changelog.xml =================================================================== --- trunk/BOOK/introduction/common/changelog.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/introduction/common/changelog.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -40,6 +40,11 @@ <para>August 21, 2006</para> <itemizedlist> <listitem> + <para>[jciccone] - Added a multilib perl setup that has a multilib + wrapper. The multilib wrapper checks for the value of PERL_ARCH and + executes the cooresponding perl binary.</para> + </listitem> + <listitem> <para>[ken] - Remove include/net from instructions for headers.</para> </listitem> </itemizedlist> Modified: trunk/BOOK/materials/mips64/patches.xml =================================================================== --- trunk/BOOK/materials/mips64/patches.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/materials/mips64/patches.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -68,10 +68,6 @@ href="../x86_64/patches.xml" xpointer="xpointer(//[EMAIL PROTECTED]'perl-multilib-patch'])"/> - <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" - href="../x86_64/patches.xml" - xpointer="xpointer(//[EMAIL PROTECTED]'perl-lib64-patch'])"/> - <varlistentry os="util-linux-mips64-patch"> <term>Util-linux MIPS64 Patch - <token>&util-linux-mips64-patch-size;</token>:</term> <listitem> Modified: trunk/BOOK/materials/ppc64/patches.xml =================================================================== --- trunk/BOOK/materials/ppc64/patches.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/materials/ppc64/patches.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -55,10 +55,6 @@ href="../x86_64/patches.xml" xpointer="xpointer(//[EMAIL PROTECTED]'perl-multilib-patch'])"/> - <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" - href="../x86_64/patches.xml" - xpointer="xpointer(//[EMAIL PROTECTED]'perl-lib64-patch'])"/> - <varlistentry> <term>Powerpc-utils Fixes Patch - <token>&powerpcutils64-patch-size;</token>:</term> <listitem> Modified: trunk/BOOK/materials/sparc64/patches.xml =================================================================== --- trunk/BOOK/materials/sparc64/patches.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/materials/sparc64/patches.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -37,10 +37,6 @@ xpointer="xpointer(//[EMAIL PROTECTED]'perl-multilib-patch'])"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" - href="../x86_64/patches.xml" - xpointer="xpointer(//[EMAIL PROTECTED]'perl-lib64-patch'])"/> - - <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../sparc/patches.xml" xpointer="xpointer(//[EMAIL PROTECTED]'silo-fixes-patch'])"/> Modified: trunk/BOOK/materials/x86_64/patches.xml =================================================================== --- trunk/BOOK/materials/x86_64/patches.xml 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/materials/x86_64/patches.xml 2006-08-22 07:46:50 UTC (rev 2249) @@ -51,15 +51,6 @@ </listitem> </varlistentry> - <varlistentry os="perl-lib64-patch"> - <term>Perl Libc lib64 Patch - <token>&perl-lib64-patch-size;</token>:</term> - <listitem> - <para>Download: <ulink - url="&patches-root;&perl-lib64-patch;"/></para> - <para>MD5 sum: <literal>&perl-lib64-patch-md5;</literal></para> - </listitem> - </varlistentry> - </variablelist> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" Modified: trunk/BOOK/patches.ent =================================================================== --- trunk/BOOK/patches.ent 2006-08-21 11:46:52 UTC (rev 2248) +++ trunk/BOOK/patches.ent 2006-08-22 07:46:50 UTC (rev 2249) @@ -150,10 +150,6 @@ <!ENTITY perl-multilib-patch-md5 "1f79780e26bc3493f7891e12841c38ed"> <!ENTITY perl-multilib-patch-size "1.4 KB"> -<!ENTITY perl-lib64-patch "perl-&perl-version;-libc_lib64-1.patch"> -<!ENTITY perl-lib64-patch-md5 "c503928cad589ba5211c0b3f999a37bd"> -<!ENTITY perl-lib64-patch-size "1 KB"> - <!-- Start of Pure64 patches --> <!ENTITY gcc-specs_pure64-patch "gcc-&gcc-version;-pure64_specs-1.patch"> -- http://linuxfromscratch.org/mailman/listinfo/cross-lfs FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page
