Changeset 793258c
- Timestamp:
- Aug 21, 2006, 10:38:49 PM (18 years ago)
- Children:
- 132e0fa
- Parents:
- d7bb8c7
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
final-system/mips64-chapter.xml
rd7bb8c7 r793258c 38 38 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-n32.xml"/> 39 39 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-64bit.xml"/> 40 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl.xml"/> 41 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-n32.xml"/> 40 42 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-64bit.xml"/> 41 43 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline.xml"/> -
final-system/multilib/perl-64bit.xml
rd7bb8c7 r793258c 9 9 <?dbhtml filename="perl-64bit.html"?> 10 10 11 <title>Perl-&perl-version; </title>11 <title>Perl-&perl-version; 64 Bit</title> 12 12 13 13 <indexterm zone="ch-system-perl"> … … 22 22 <title>Installation of Perl</title> 23 23 24 <para os="m1">In multilib builds we install compilers and libraries for each available25 architecture. The description below says that perl installs several hundred26 libraries, but they are used by invoking <command>perl</command>, not by linking27 to them with <command>ld</command>. Although it is possible to install perl for28 32 bits, move it to a different name, and then install the 64-bit version, it is29 almost always invoked as just <command>perl</command>. That means only the30 libraries and modules for the last version installed will be accessible. We31 therefore only install one version.</para>32 33 24 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 34 25 href="../common/perl.xml" … … 40 31 41 32 <para os="p3">Perl does not, by default, know about library directories with names other 42 than lib, such as lib64. The following patch will allow it to install to lib64:</para>33 than lib, The following patch will allow it to install to other directories:</para> 43 34 44 35 <screen os="p4"><userinput>patch -Np1 -i ../&perl-multilib-patch;</userinput></screen> 45 36 46 <para os=" p5">There is a further (possibly cosmetic) anomaly - if we install perl and37 <para os="s1">There is a further (possibly cosmetic) anomaly - if we install perl and 47 38 then run <command>perl -V</command> it will claim that libc is in /lib. The 48 following patchfixes this, but only takes effect when <command>make install39 following sed fixes this, but only takes effect when <command>make install 49 40 </command> is run:</para> 50 41 51 <screen os=" p6"><userinput>patch -Np1 -i ../&perl-lib64-patch;</userinput></screen>42 <screen os="s2"><userinput>sed -i "/libc/s@/lib@/lib64@" hints/linux.sh</userinput></screen> 52 43 53 44 <para os="m2">We still need to tell perl to actually use lib64:</para> … … 119 110 xpointer="xpointer(//*[@os='k'])"/> 120 111 112 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 113 href="perl.xml" 114 xpointer="xpointer(//*[@os='l'])"/> 115 116 <screen os="m"><userinput>mv /usr/bin/perl{,-64}</userinput></screen> 117 118 <para os="n">Now we need to create a multilib wrapper that lets us choose 119 which perl installation to use.</para> 120 121 <screen os="o"><userinput>cat > perl_wrapper.c << "EOF" 122 #include <stdio.h> 123 #include <stdlib.h> 124 #include <string.h> 125 #include <unistd.h> 126 #include <errno.h> 127 128 int main (int argc, char *argv[]) 129 { 130 char *perl_arch; 131 if ((perl_arch = getenv("PERL_ARCH")) == NULL) 132 perl_arch = "64"; 133 134 char *filename = malloc(strlen(argv[0]) + strlen(perl_arch) + 2); 135 strcpy(filename, argv[0]); 136 strcat(filename, "-"); 137 strcat(filename, perl_arch); 138 139 int ret = 0; 140 ret = execvp(filename, argv); 141 if ((ret != 0)&&(errno != 0)) 142 { 143 char *errmsg = malloc(strlen(filename) + 19); 144 strcpy(errmsg, "Unable to execute "); 145 strcat(errmsg, filename); 146 perror(errmsg); 147 free(errmsg); 148 } 149 150 free(filename); 151 152 return ret; 153 } 154 EOF 155 gcc ${BUILD64} perl_wrapper.c -o /usr/bin/perl</userinput></screen> 156 121 157 </sect2> 122 158 -
final-system/ppc64-chapter.xml
rd7bb8c7 r793258c 34 34 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="ppc64/libtool.xml"/> 35 35 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-64bit.xml"/> 36 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl.xml"/> 36 37 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-64bit.xml"/> 37 38 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline.xml"/> -
final-system/sparc64-chapter.xml
rd7bb8c7 r793258c 34 34 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="sparc64/libtool.xml"/> 35 35 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-64bit.xml"/> 36 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl.xml"/> 36 37 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-64bit.xml"/> 37 38 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline.xml"/> -
final-system/x86_64-chapter.xml
rd7bb8c7 r793258c 34 34 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="x86_64/libtool.xml"/> 35 35 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/libtool-64bit.xml"/> 36 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl.xml"/> 36 37 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/perl-64bit.xml"/> 37 38 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="multilib/readline.xml"/> -
introduction/common/changelog.xml
rd7bb8c7 r793258c 41 41 <itemizedlist> 42 42 <listitem> 43 <para>[jciccone] - Added a multilib perl setup that has a multilib 44 wrapper. The multilib wrapper checks for the value of PERL_ARCH and 45 executes the cooresponding perl binary.</para> 46 </listitem> 47 <listitem> 43 48 <para>[ken] - Remove include/net from instructions for headers.</para> 44 49 </listitem> -
materials/mips64/patches.xml
rd7bb8c7 r793258c 69 69 xpointer="xpointer(//*[@os='perl-multilib-patch'])"/> 70 70 71 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"72 href="../x86_64/patches.xml"73 xpointer="xpointer(//*[@os='perl-lib64-patch'])"/>74 75 71 <varlistentry os="util-linux-mips64-patch"> 76 72 <term>Util-linux MIPS64 Patch - <token>&util-linux-mips64-patch-size;</token>:</term> -
materials/ppc64/patches.xml
rd7bb8c7 r793258c 56 56 xpointer="xpointer(//*[@os='perl-multilib-patch'])"/> 57 57 58 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"59 href="../x86_64/patches.xml"60 xpointer="xpointer(//*[@os='perl-lib64-patch'])"/>61 62 58 <varlistentry> 63 59 <term>Powerpc-utils Fixes Patch - <token>&powerpcutils64-patch-size;</token>:</term> -
materials/sparc64/patches.xml
rd7bb8c7 r793258c 38 38 39 39 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 40 href="../x86_64/patches.xml"41 xpointer="xpointer(//*[@os='perl-lib64-patch'])"/>42 43 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"44 40 href="../sparc/patches.xml" 45 41 xpointer="xpointer(//*[@os='silo-fixes-patch'])"/> -
materials/x86_64/patches.xml
rd7bb8c7 r793258c 52 52 </varlistentry> 53 53 54 <varlistentry os="perl-lib64-patch">55 <term>Perl Libc lib64 Patch - <token>&perl-lib64-patch-size;</token>:</term>56 <listitem>57 <para>Download: <ulink58 url="&patches-root;&perl-lib64-patch;"/></para>59 <para>MD5 sum: <literal>&perl-lib64-patch-md5;</literal></para>60 </listitem>61 </varlistentry>62 63 54 </variablelist> 64 55 -
patches.ent
rd7bb8c7 r793258c 151 151 <!ENTITY perl-multilib-patch-size "1.4 KB"> 152 152 153 <!ENTITY perl-lib64-patch "perl-&perl-version;-libc_lib64-1.patch">154 <!ENTITY perl-lib64-patch-md5 "c503928cad589ba5211c0b3f999a37bd">155 <!ENTITY perl-lib64-patch-size "1 KB">156 157 153 <!-- Start of Pure64 patches --> 158 154
Note:
See TracChangeset
for help on using the changeset viewer.